Verified AgentReady.md certificate
Issued sig: b27aeed8f27bbdac Verify →

Analyzed URL

https://backlogs.m7kni.io

Measured yesterday

Analyze another URL

AI-Ready Score

Good

out of 100

Token Savings

HTML tokens 5873
Markdown tokens 60
Savings 99%

Score Breakdown

Accessibility 88/100
AI Discoverability 85/100
Structured Data 83/100
Semantic HTML 100/100
Content Efficiency 70/100

Emerging protocols

0 of 6 detected

Well-known endpoints AI agents look for. Detected here means an agent can discover and connect to your service automatically.

  • OAuth Protected Resource RFC 9728
    /.well-known/oauth-protected-resource
  • OAuth Discovery RFC 8414
    /.well-known/oauth-authorization-server
  • MCP Server Card SEP-1649 draft
    /.well-known/mcp/server-card.json
  • A2A Agent Card A2A v1.0
    /.well-known/agent-card.json
  • API Catalog RFC 9727
    /.well-known/api-catalog
  • Agent Skills index Discovery RFC v0.2.0 draft
    /.well-known/agent-skills/index.json

Doesn't stay fixed by itself. Monitoring isn't built yet — join the list and we'll tell you when it is.

You're on the list! We'll notify you when it launches.

What we measured Content ratio: 1.2% (241 content chars / 20419 HTML bytes)

Your page has a low ratio of actual content to total HTML. Much of the page weight is markup, scripts, or styles rather than content.

How to implement

Move CSS to external stylesheets, remove inline styles, minimize JavaScript, and ensure the HTML focuses on content structure.

Paste into a coding agent to make the fix

What we measured Application level — Content negotiation, <link> tag

Your site supports Markdown for Agents only in part — "what we measured", above, lists the mechanisms you already have. Adding the rest lets more agents request markdown instead of parsing HTML, cutting token usage by ~80%.

How to implement

  • Serve a Markdown twin at a second URL, e.g. /page.md alongside /page.
  • Add a Link HTTP header pointing at the Markdown version: Link: <…>; rel="alternate"; type="text/markdown".
Paste into a coding agent to make the fix
Markdown tokens: 60
## graph2otel

Exports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready.

7 open1 doneGo3 days ago
Backlogs - m7kni.io

[▭Backlogsm7kni.io](https://backlogs.m7kni.io/)

Project workspace

# What I am working on.

Every public repository here keeps its plan in the repository itself, as Backlog.md Markdown. This publishes those trackers as they are: 25 projects,148 open tasks, 698 completed. Read-only, and the repository is always the source of truth.

[All open work](https://backlogs.m7kni.io/open/) ·[Recent activity](https://backlogs.m7kni.io/activity/) ·[Statistics](https://backlogs.m7kni.io/stats/) ·[Search](https://backlogs.m7kni.io/search/)

[## backlog-publishing

Publishes every public rknightion Backlog.md tracker at backlogs.m7kni.io

0 open9 doneAstrotoday](https://backlogs.m7kni.io/backlog-publishing/)[## opnsense2otel

OpenTelemetry and Prometheus observability for OPNsense firewalls. 65 collectors, 1006 metrics, native OTLP metrics and logs, syslog receiver, NetFlow and Zenarmor flow-log processing.

4 open109 doneGotoday](https://backlogs.m7kni.io/opnsense2otel/)[## tailscale2otel

Tailscale exporter for OpenTelemetry and Prometheus. Device fleet, network flow logs and audit logs as OTLP metrics & logs. Single Go binary, Grafana Cloud ready. Headscale supported.

2 open152 doneGotoday](https://backlogs.m7kni.io/tailscale2otel/)[## grafana-cloud-vending-machine

Provision Grafana Cloud stacks at scale, with style. Declarative request API, Argo CD owns Git, Crossplane reconciles the cloud.

8 open80 doneGoyesterday](https://backlogs.m7kni.io/grafana-cloud-vending-machine/)[## rfc6035-2otel

RFC 6035 SIP voice-quality (vq-rtcpxr) reports to OpenTelemetry metrics and logs

2 open1 doneGo3 days ago](https://backlogs.m7kni.io/rfc6035-2otel/)[## sagemcom-f3896-py

Client for the Sagemcom f3896/Ziggo SmartWifi modem (black)

1 open1 donePython3 days ago](https://backlogs.m7kni.io/sagemcom-f3896-py/)[## sf2loki

Streams Salesforce Event Monitoring into Grafana Loki — Pub/Sub API, SOQL and EventLogFile ingestion, cardinality-disciplined by default.

71 open2 donePython3 days ago](https://backlogs.m7kni.io/sf2loki/)[## synthkit

Composable synthetic-telemetry generator. One YAML blueprint emits structurally-correct metrics, traces, logs and RUM to Prometheus, Loki and Grafana Cloud over OTLP.

3 open174 doneGo3 days ago](https://backlogs.m7kni.io/synthkit/)[## transceiver-exporter

Prometheus exporter for optical transceiver diagnostics — SFP, SFP+ and QSFP Digital Optical Monitoring (DOM) data read over ethtool.

0 open9 doneGo3 days ago](https://backlogs.m7kni.io/transceiver-exporter/)[## meraki-dashboard-exporter

Prometheus exporter and OpenTelemetry collector for the Cisco Meraki Dashboard API. Scrape-ready metrics, OTLP export and Grafana dashboards included.

2 open66 donePython3 days ago](https://backlogs.m7kni.io/meraki-dashboard-exporter/)[## meraki-dashboard-ha

Home Assistant custom integration for Cisco Meraki MT sensors — temperature, humidity, air quality, water and door status via the Meraki Dashboard API. Installable through HACS.

5 open2 donePython3 days ago](https://backlogs.m7kni.io/meraki-dashboard-ha/)[## openbao-plugin-secrets-github

OpenBao secrets engine for short-lived, scoped GitHub App installation tokens. Fork of martinbaillie/vault-plugin-secrets-github ported to the OpenBao SDK.

0 open2 doneGo3 days ago](https://backlogs.m7kni.io/openbao-plugin-secrets-github/)[## paperless-ngx-dedupe

Find and remove duplicate documents in paperless-ngx. MinHash/LSH fuzzy matching catches near-duplicates that exact hashing misses, with optional AI metadata suggestions.

2 open2 doneTypeScript3 days ago](https://backlogs.m7kni.io/paperless-ngx-dedupe/)[## polylens2otel

OpenTelemetry-native exporter for Poly Lens and Poly desk phones — metrics, logs and traces over OTLP

4 open0 doneGo3 days ago](https://backlogs.m7kni.io/polylens2otel/)[## fleet-management-operator

Kubernetes operator for Grafana Cloud Fleet Management — declare Alloy collector pipelines as custom resources and reconcile them continuously.

5 open1 doneGo3 days ago](https://backlogs.m7kni.io/fleet-management-operator/)[## genai-otel-bridge

Turn Portkey and LangSmith LLM traffic into OpenTelemetry metrics and logs. Vendor-neutral OTLP to Grafana Cloud or any collector — leader-elected and content-free.

13 open3 doneGo3 days ago](https://backlogs.m7kni.io/genai-otel-bridge/)[## grafana-cloud-org-insights

Business value & operational insights from your Grafana Cloud stack

8 open28 donePython3 days ago](https://backlogs.m7kni.io/grafana-cloud-org-insights/)[## graph2otel

Exports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready.

7 open1 doneGo3 days ago](https://backlogs.m7kni.io/graph2otel/)[## grotTrack

Time tracking for the easily distracted — a native macOS menu-bar app with a Chrome extension and native messaging host.

1 open1 doneSwift3 days ago](https://backlogs.m7kni.io/grotTrack/)[## intune-assignments-manager

Visualise and bulk-manage Microsoft Intune app and configuration-profile assignments across devices, users and groups. Runs entirely in your browser — credentials never leave it.

0 open2 doneSvelte3 days ago](https://backlogs.m7kni.io/intune-assignments-manager/)[## autopi-ha

Home Assistant custom integration for AutoPi.io vehicle telematics — GPS position, trip data and OBD vehicle metrics as native entities. Installable through HACS.

0 open1 donePython3 days ago](https://backlogs.m7kni.io/autopi-ha/)[## bumblebee-catalog

Rolling OSV exposure catalog for Bumblebee (public threat-intel, regenerated every 4h)

3 open1 donePython3 days ago](https://backlogs.m7kni.io/bumblebee-catalog/)[## bumblebee-intune

Reference Microsoft Intune deployment for Bumblebee — configuration profiles, policies and deployment guidance

4 open1 donePython3 days ago](https://backlogs.m7kni.io/bumblebee-intune/)[## codexlb2otel

codexlb2otel adds deep observability for OpenAI Codex CLI sessions running through codex-lb. It turns captured Codex conversations and websocket traffic into OpenTelemetry metrics and traces, Loki logs, and Grafana Cloud agento11y.

0 open48 doneGo3 days ago](https://backlogs.m7kni.io/codexlb2otel/)[## .github

Shared GitHub config + reusable security/CI workflows for the rknightion repos

3 open2 donePython3 weeks ago](https://backlogs.m7kni.io/dot-github/)

Upload this file as /index.md on your server so AI agents can access a clean version of your page. You can also configure Accept: text/markdown content negotiation to serve it automatically.

Our recommendation

Download llms.txt
# backlogs.m7kni.io

> Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.

## Documentation
- [llms.txt](https://backlogs.m7kni.io/llms.txt)

## Main
- [Backlogs - m7kni.io](https://backlogs.m7kni.io): Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.
- [▭Backlogsm7kni.io](https://backlogs.m7kni.io/)
- [Open](https://backlogs.m7kni.io/open/)
- [Activity](https://backlogs.m7kni.io/activity/)
- [Stats](https://backlogs.m7kni.io/stats/)
- [Search](https://backlogs.m7kni.io/search/)
- [llms.txt](https://backlogs.m7kni.io/llms.txt)

Full llms.txt requires domain-wide analysis (coming soon)

Upload this file to https://backlogs.m7kni.io/llms.txt at the root of your domain. AI agents like ChatGPT, Claude, and Perplexity check this file to understand your site structure.

This site already has a llms.txt file.

Valid format
# Backlogs - m7kni.io

> Public Backlog.md trackers for 25 open-source repositories owned by rknightion: 148 open tasks, 698 completed, plus 75 tracker documents and 2 decisions. Read-only. Each repository is the source of truth and this site is generated from it.

Every page here is also available as Markdown: request it with the `Accept: text/markdown` header and the edge converts it. Individual record pages are `noindex` and are deliberately absent from the sitemap; the boards and the indexes below reach all of them.

## Site

- [Project index](https://backlogs.m7kni.io/): every published tracker, most recently changed first.
- [All open work](https://backlogs.m7kni.io/open/): every open task across every tracker, on one page.
- [Recent activity](https://backlogs.m7kni.io/activity/): the most recently changed records, newest first.
- [Statistics](https://backlogs.m7kni.io/stats/): completion over time and the type and priority mix.
- [Search](https://backlogs.m7kni.io/search/): full text across every record, filterable by project, status, type and priority.

## Projects

- [backlog-publishing](https://backlogs.m7kni.io/backlog-publishing/): Publishes every public rknightion Backlog.md tracker at backlogs.m7kni.io 0 open, 9 completed, last changed 2026-09-20. Source: https://github.com/rknightion/backlog-publishing. Pages: board https://backlogs.m7kni.io/backlog-publishing/; completed https://backlogs.m7kni.io/backlog-publishing/completed/.
- [opnsense2otel](https://backlogs.m7kni.io/opnsense2otel/): OpenTelemetry and Prometheus observability for OPNsense firewalls. 65 collectors, 1006 metrics, native OTLP metrics and logs, syslog receiver, NetFlow and Zenarmor flow-log processing. 4 open, 109 completed, last changed 2026-09-20. Source: https://github.com/rknightion/opnsense2otel. Pages: board https://backlogs.m7kni.io/opnsense2otel/; completed https://backlogs.m7kni.io/opnsense2otel/completed/; milestones https://backlogs.m7kni.io/opnsense2otel/milestones/; documents https://backlogs.m7kni.io/opnsense2otel/docs/.
- [tailscale2otel](https://backlogs.m7kni.io/tailscale2otel/): Tailscale exporter for OpenTelemetry and Prometheus. Device fleet, network flow logs and audit logs as OTLP metrics & logs. Single Go binary, Grafana Cloud ready. Headscale supported. 2 open, 152 completed, last changed 2026-09-19. Source: https://github.com/rknightion/tailscale2otel. Pages: board https://backlogs.m7kni.io/tailscale2otel/; completed https://backlogs.m7kni.io/tailscale2otel/completed/; milestones https://backlogs.m7kni.io/tailscale2otel/milestones/; documents https://backlogs.m7kni.io/tailscale2otel/docs/.
- [grafana-cloud-vending-machine](https://backlogs.m7kni.io/grafana-cloud-vending-machine/): Provision Grafana Cloud stacks at scale, with style. Declarative request API, Argo CD owns Git, Crossplane reconciles the cloud. 8 open, 80 completed, last changed 2026-09-18. Source: https://github.com/rknightion/grafana-cloud-vending-machine. Pages: board https://backlogs.m7kni.io/grafana-cloud-vending-machine/; completed https://backlogs.m7kni.io/grafana-cloud-vending-machine/completed/; documents https://backlogs.m7kni.io/grafana-cloud-vending-machine/docs/; decisions https://backlogs.m7kni.io/grafana-cloud-vending-machine/decisions/.
- [rfc6035-2otel](https://backlogs.m7kni.io/rfc6035-2otel/): RFC 6035 SIP voice-quality (vq-rtcpxr) reports to OpenTelemetry metrics and logs 2 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/rfc6035-2otel. Pages: board https://backlogs.m7kni.io/rfc6035-2otel/; completed https://backlogs.m7kni.io/rfc6035-2otel/completed/; documents https://backlogs.m7kni.io/rfc6035-2otel/docs/.
- [sagemcom-f3896-py](https://backlogs.m7kni.io/sagemcom-f3896-py/): Client for the Sagemcom f3896/Ziggo SmartWifi modem (black) 1 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/sagemcom-f3896-py. Pages: board https://backlogs.m7kni.io/sagemcom-f3896-py/; completed https://backlogs.m7kni.io/sagemcom-f3896-py/completed/; documents https://backlogs.m7kni.io/sagemcom-f3896-py/docs/.
- [sf2loki](https://backlogs.m7kni.io/sf2loki/): Streams Salesforce Event Monitoring into Grafana Loki — Pub/Sub API, SOQL and EventLogFile ingestion, cardinality-disciplined by default. 71 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/sf2loki. Pages: board https://backlogs.m7kni.io/sf2loki/; completed https://backlogs.m7kni.io/sf2loki/completed/; milestones https://backlogs.m7kni.io/sf2loki/milestones/; documents https://backlogs.m7kni.io/sf2loki/docs/.
- [synthkit](https://backlogs.m7kni.io/synthkit/): Composable synthetic-telemetry generator. One YAML blueprint emits structurally-correct metrics, traces, logs and RUM to Prometheus, Loki and Grafana Cloud over OTLP. 3 open, 174 completed, last changed 2026-09-16. Source: https://github.com/rknightion/synthkit. Pages: board https://backlogs.m7kni.io/synthkit/; completed https://backlogs.m7kni.io/synthkit/completed/; documents https://backlogs.m7kni.io/synthkit/docs/.
- [transceiver-exporter](https://backlogs.m7kni.io/transceiver-exporter/): Prometheus exporter for optical transceiver diagnostics — SFP, SFP+ and QSFP Digital Optical Monitoring (DOM) data read over ethtool. 0 open, 9 completed, last changed 2026-09-16. Source: https://github.com/rknightion/transceiver-exporter. Pages: board https://backlogs.m7kni.io/transceiver-exporter/; completed https://backlogs.m7kni.io/transceiver-exporter/completed/; documents https://backlogs.m7kni.io/transceiver-exporter/docs/.
- [meraki-dashboard-exporter](https://backlogs.m7kni.io/meraki-dashboard-exporter/): Prometheus exporter and OpenTelemetry collector for the Cisco Meraki Dashboard API. Scrape-ready metrics, OTLP export and Grafana dashboards included. 2 open, 66 completed, last changed 2026-09-16. Source: https://github.com/rknightion/meraki-dashboard-exporter. Pages: board https://backlogs.m7kni.io/meraki-dashboard-exporter/; completed https://backlogs.m7kni.io/meraki-dashboard-exporter/completed/; documents https://backlogs.m7kni.io/meraki-dashboard-exporter/docs/.
- [meraki-dashboard-ha](https://backlogs.m7kni.io/meraki-dashboard-ha/): Home Assistant custom integration for Cisco Meraki MT sensors — temperature, humidity, air quality, water and door status via the Meraki Dashboard API. Installable through HACS. 5 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/meraki-dashboard-ha. Pages: board https://backlogs.m7kni.io/meraki-dashboard-ha/; completed https://backlogs.m7kni.io/meraki-dashboard-ha/completed/; documents https://backlogs.m7kni.io/meraki-dashboard-ha/docs/.
- [openbao-plugin-secrets-github](https://backlogs.m7kni.io/openbao-plugin-secrets-github/): OpenBao secrets engine for short-lived, scoped GitHub App installation tokens. Fork of martinbaillie/vault-plugin-secrets-github ported to the OpenBao SDK. 0 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/openbao-plugin-secrets-github. Pages: board https://backlogs.m7kni.io/openbao-plugin-secrets-github/; completed https://backlogs.m7kni.io/openbao-plugin-secrets-github/completed/; documents https://backlogs.m7kni.io/openbao-plugin-secrets-github/docs/.
- [paperless-ngx-dedupe](https://backlogs.m7kni.io/paperless-ngx-dedupe/): Find and remove duplicate documents in paperless-ngx. MinHash/LSH fuzzy matching catches near-duplicates that exact hashing misses, with optional AI metadata suggestions. 2 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/paperless-ngx-dedupe. Pages: board https://backlogs.m7kni.io/paperless-ngx-dedupe/; completed https://backlogs.m7kni.io/paperless-ngx-dedupe/completed/; documents https://backlogs.m7kni.io/paperless-ngx-dedupe/docs/.
- [polylens2otel](https://backlogs.m7kni.io/polylens2otel/): OpenTelemetry-native exporter for Poly Lens and Poly desk phones — metrics, logs and traces over OTLP 4 open, 0 completed, last changed 2026-09-16. Source: https://github.com/rknightion/polylens2otel. Pages: board https://backlogs.m7kni.io/polylens2otel/; documents https://backlogs.m7kni.io/polylens2otel/docs/.
- [fleet-management-operator](https://backlogs.m7kni.io/fleet-management-operator/): Kubernetes operator for Grafana Cloud Fleet Management — declare Alloy collector pipelines as custom resources and reconcile them continuously. 5 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/fleet-management-operator. Pages: board https://backlogs.m7kni.io/fleet-management-operator/; completed https://backlogs.m7kni.io/fleet-management-operator/completed/; documents https://backlogs.m7kni.io/fleet-management-operator/docs/.
- [genai-otel-bridge](https://backlogs.m7kni.io/genai-otel-bridge/): Turn Portkey and LangSmith LLM traffic into OpenTelemetry metrics and logs. Vendor-neutral OTLP to Grafana Cloud or any collector — leader-elected and content-free. 13 open, 3 completed, last changed 2026-09-16. Source: https://github.com/rknightion/genai-otel-bridge. Pages: board https://backlogs.m7kni.io/genai-otel-bridge/; completed https://backlogs.m7kni.io/genai-otel-bridge/completed/; documents https://backlogs.m7kni.io/genai-otel-bridge/docs/.
- [grafana-cloud-org-insights](https://backlogs.m7kni.io/grafana-cloud-org-insights/): Business value & operational insights from your Grafana Cloud stack 8 open, 28 completed, last changed 2026-09-16. Source: https://github.com/rknightion/grafana-cloud-org-insights. Pages: board https://backlogs.m7kni.io/grafana-cloud-org-insights/; completed https://backlogs.m7kni.io/grafana-cloud-org-insights/completed/; documents https://backlogs.m7kni.io/grafana-cloud-org-insights/docs/.
- [graph2otel](https://backlogs.m7kni.io/graph2otel/): Exports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready. 7 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/graph2otel. Pages: board https://backlogs.m7kni.io/graph2otel/; completed https://backlogs.m7kni.io/graph2otel/completed/; documents https://backlogs.m7kni.io/graph2otel/docs/.
- [grotTrack](https://backlogs.m7kni.io/grotTrack/): Time tracking for the easily distracted — a native macOS menu-bar app with a Chrome extension and native messaging host. 1 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/grotTrack. Pages: board https://backlogs.m7kni.io/grotTrack/; completed https://backlogs.m7kni.io/grotTrack/completed/; documents https://backlogs.m7kni.io/grotTrack/docs/.
- [intune-assignments-manager](https://backlogs.m7kni.io/intune-assignments-manager/): Visualise and bulk-manage Microsoft Intune app and configuration-profile assignments across devices, users and groups. Runs entirely in your browser — credentials never leave it. 0 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/intune-assignments-manager. Pages: board https://backlogs.m7kni.io/intune-assignments-manager/; completed https://backlogs.m7kni.io/intune-assignments-manager/completed/; documents https://backlogs.m7kni.io/intune-assignments-manager/docs/.
- [autopi-ha](https://backlogs.m7kni.io/autopi-ha/): Home Assistant custom integration for AutoPi.io vehicle telematics — GPS position, trip data and OBD vehicle metrics as native entities. Installable through HACS. 0 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/autopi-ha. Pages: board https://backlogs.m7kni.io/autopi-ha/; completed https://backlogs.m7kni.io/autopi-ha/completed/; documents https://backlogs.m7kni.io/autopi-ha/docs/.
- [bumblebee-catalog](https://backlogs.m7kni.io/bumblebee-catalog/): Rolling OSV exposure catalog for Bumblebee (public threat-intel, regenerated every 4h) 3 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/bumblebee-catalog. Pages: board https://backlogs.m7kni.io/bumblebee-catalog/; completed https://backlogs.m7kni.io/bumblebee-catalog/completed/; documents https://backlogs.m7kni.io/bumblebee-catalog/docs/.
- [bumblebee-intune](https://backlogs.m7kni.io/bumblebee-intune/): Reference Microsoft Intune deployment for Bumblebee — configuration profiles, policies and deployment guidance 4 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/bumblebee-intune. Pages: board https://backlogs.m7kni.io/bumblebee-intune/; completed https://backlogs.m7kni.io/bumblebee-intune/completed/; documents https://backlogs.m7kni.io/bumblebee-intune/docs/.
- [codexlb2otel](https://backlogs.m7kni.io/codexlb2otel/): codexlb2otel adds deep observability for OpenAI Codex CLI sessions running through codex-lb. It turns captured Codex conversations and websocket traffic into OpenTelemetry metrics and traces, Loki logs, and Grafana Cloud agento11y. 0 open, 48 completed, last changed 2026-09-16. Source: https://github.com/rknightion/codexlb2otel. Pages: board https://backlogs.m7kni.io/codexlb2otel/; completed https://backlogs.m7kni.io/codexlb2otel/completed/; documents https://backlogs.m7kni.io/codexlb2otel/docs/.
- [.github](https://backlogs.m7kni.io/dot-github/): Shared GitHub config + reusable security/CI workflows for the rknightion repos 3 open, 2 completed, last changed 2026-08-29. Source: https://github.com/rknightion/.github. Pages: board https://backlogs.m7kni.io/dot-github/; completed https://backlogs.m7kni.io/dot-github/completed/; documents https://backlogs.m7kni.io/dot-github/docs/.

Accessibility

Content available without JavaScript (100/100)

Content available without JavaScript

Content appears early in HTML (50/100)

Main content starts at 44% of HTML

Reasonable page size (100/100)

Page size: 20KB

AI Discoverability

Robots.txt allows AI bots (100/100)

All major AI search bots allowed

Markdown for Agents support (45/100) Application
✓ Accept: text/markdown ✗ .md URL ✓ <link> tag ✗ Link header YAML frontmatter (enriched)
Has sitemap.xml (100/100)

Sitemap found

Has robots.txt file (100/100)

robots.txt exists

Has llms.txt file (100/100)

llms.txt exists and is valid

Has Content-Signal (robots.txt or HTTP headers) (60/100)
✓ robots.txt ✗ HTTP header ✗ Policy

Structured Data

Has Schema.org / JSON-LD (50/100)

JSON-LD found but basic types: CollectionPage

Has Open Graph tags (100/100)

All OG tags present

Has meta description (100/100)

Meta description: 90 chars

Has canonical URL (100/100)

Canonical URL present

Has lang attribute (100/100)

lang="en"

Semantic HTML

Proper heading hierarchy (100/100)

Clean heading hierarchy

Uses article or main element (100/100)

Has <main>

Uses semantic HTML elements (100/100)

29 semantic elements, 3 divs (ratio: 91%)

Meaningful image alt texts (100/100)

No images found

Low div nesting depth (100/100)

Avg div depth: 0.0, max: 0

Content Efficiency

Good token reduction ratio (100/100)

99% token reduction (HTML→Markdown)

Good content-to-noise ratio (0/100)

Content ratio: 1.2% (241 content chars / 20419 HTML bytes)

Reasonable page weight (100/100)

HTML size: 20KB

Minimal inline styles (100/100)

0/255 elements with inline styles (0.0%)

{
  "url": "https://backlogs.m7kni.io",
  "timestamp": 1789930392057,
  "fetch": {
    "mode": "simple",
    "timeMs": 105,
    "htmlSizeBytes": 20419,
    "supportsMarkdown": true,
    "markdownAgents": {
      "contentNegotiation": true,
      "mdUrl": {
        "found": false,
        "url": null
      },
      "linkTag": {
        "found": true,
        "url": "https://backlogs.m7kni.io/"
      },
      "linkHeader": {
        "found": false,
        "url": null
      },
      "responseHeaders": {
        "contentSignal": "ai-train=yes, search=yes, ai-input=yes",
        "xMarkdownTokens": null,
        "vary": "accept-encoding, accept"
      },
      "frontmatter": {
        "present": true,
        "fields": [
          "description",
          "title",
          "image"
        ],
        "level": "enriched"
      },
      "level": "application",
      "contentNegotiationMediaType": "text/markdown",
      "properMediaType": true
    },
    "statusCode": 200
  },
  "extraction": {
    "title": "Backlogs - m7kni.io",
    "excerpt": "Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.",
    "byline": null,
    "siteName": null,
    "lang": "en",
    "contentLength": 241,
    "metadata": {
      "description": "Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.",
      "ogTitle": "Backlogs - m7kni.io",
      "ogDescription": "Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.",
      "ogImage": "https://backlogs.m7kni.io/og/site.png",
      "ogType": "website",
      "canonical": "https://backlogs.m7kni.io/",
      "lang": "en",
      "schemas": [
        {
          "@context": "https://schema.org",
          "@type": "CollectionPage",
          "name": "Backlogs - m7kni.io",
          "description": "Public project trackers for 25 open-source repositories.",
          "url": "https://backlogs.m7kni.io/",
          "mainEntity": {
            "@type": "ItemList",
            "numberOfItems": 25,
            "itemListElement": [
              {
                "@type": "ListItem",
                "position": 1,
                "name": "backlog-publishing",
                "description": "Publishes every public rknightion Backlog.md tracker at backlogs.m7kni.io",
                "url": "https://backlogs.m7kni.io/backlog-publishing/"
              },
              {
                "@type": "ListItem",
                "position": 2,
                "name": "opnsense2otel",
                "description": "OpenTelemetry and Prometheus observability for OPNsense firewalls. 65 collectors, 1006 metrics, native OTLP metrics and logs, syslog receiver, NetFlow and Zenarmor flow-log processing.",
                "url": "https://backlogs.m7kni.io/opnsense2otel/"
              },
              {
                "@type": "ListItem",
                "position": 3,
                "name": "tailscale2otel",
                "description": "Tailscale exporter for OpenTelemetry and Prometheus. Device fleet, network flow logs and audit logs as OTLP metrics & logs. Single Go binary, Grafana Cloud ready. Headscale supported.",
                "url": "https://backlogs.m7kni.io/tailscale2otel/"
              },
              {
                "@type": "ListItem",
                "position": 4,
                "name": "grafana-cloud-vending-machine",
                "description": "Provision Grafana Cloud stacks at scale, with style. Declarative request API, Argo CD owns Git, Crossplane reconciles the cloud.",
                "url": "https://backlogs.m7kni.io/grafana-cloud-vending-machine/"
              },
              {
                "@type": "ListItem",
                "position": 5,
                "name": "rfc6035-2otel",
                "description": "RFC 6035 SIP voice-quality (vq-rtcpxr) reports to OpenTelemetry metrics and logs",
                "url": "https://backlogs.m7kni.io/rfc6035-2otel/"
              },
              {
                "@type": "ListItem",
                "position": 6,
                "name": "sagemcom-f3896-py",
                "description": "Client for the Sagemcom f3896/Ziggo SmartWifi modem (black)",
                "url": "https://backlogs.m7kni.io/sagemcom-f3896-py/"
              },
              {
                "@type": "ListItem",
                "position": 7,
                "name": "sf2loki",
                "description": "Streams Salesforce Event Monitoring into Grafana Loki — Pub/Sub API, SOQL and EventLogFile ingestion, cardinality-disciplined by default.",
                "url": "https://backlogs.m7kni.io/sf2loki/"
              },
              {
                "@type": "ListItem",
                "position": 8,
                "name": "synthkit",
                "description": "Composable synthetic-telemetry generator. One YAML blueprint emits structurally-correct metrics, traces, logs and RUM to Prometheus, Loki and Grafana Cloud over OTLP.",
                "url": "https://backlogs.m7kni.io/synthkit/"
              },
              {
                "@type": "ListItem",
                "position": 9,
                "name": "transceiver-exporter",
                "description": "Prometheus exporter for optical transceiver diagnostics — SFP, SFP+ and QSFP Digital Optical Monitoring (DOM) data read over ethtool.",
                "url": "https://backlogs.m7kni.io/transceiver-exporter/"
              },
              {
                "@type": "ListItem",
                "position": 10,
                "name": "meraki-dashboard-exporter",
                "description": "Prometheus exporter and OpenTelemetry collector for the Cisco Meraki Dashboard API. Scrape-ready metrics, OTLP export and Grafana dashboards included.",
                "url": "https://backlogs.m7kni.io/meraki-dashboard-exporter/"
              },
              {
                "@type": "ListItem",
                "position": 11,
                "name": "meraki-dashboard-ha",
                "description": "Home Assistant custom integration for Cisco Meraki MT sensors — temperature, humidity, air quality, water and door status via the Meraki Dashboard API. Installable through HACS.",
                "url": "https://backlogs.m7kni.io/meraki-dashboard-ha/"
              },
              {
                "@type": "ListItem",
                "position": 12,
                "name": "openbao-plugin-secrets-github",
                "description": "OpenBao secrets engine for short-lived, scoped GitHub App installation tokens. Fork of martinbaillie/vault-plugin-secrets-github ported to the OpenBao SDK.",
                "url": "https://backlogs.m7kni.io/openbao-plugin-secrets-github/"
              },
              {
                "@type": "ListItem",
                "position": 13,
                "name": "paperless-ngx-dedupe",
                "description": "Find and remove duplicate documents in paperless-ngx. MinHash/LSH fuzzy matching catches near-duplicates that exact hashing misses, with optional AI metadata suggestions.",
                "url": "https://backlogs.m7kni.io/paperless-ngx-dedupe/"
              },
              {
                "@type": "ListItem",
                "position": 14,
                "name": "polylens2otel",
                "description": "OpenTelemetry-native exporter for Poly Lens and Poly desk phones — metrics, logs and traces over OTLP",
                "url": "https://backlogs.m7kni.io/polylens2otel/"
              },
              {
                "@type": "ListItem",
                "position": 15,
                "name": "fleet-management-operator",
                "description": "Kubernetes operator for Grafana Cloud Fleet Management — declare Alloy collector pipelines as custom resources and reconcile them continuously.",
                "url": "https://backlogs.m7kni.io/fleet-management-operator/"
              },
              {
                "@type": "ListItem",
                "position": 16,
                "name": "genai-otel-bridge",
                "description": "Turn Portkey and LangSmith LLM traffic into OpenTelemetry metrics and logs. Vendor-neutral OTLP to Grafana Cloud or any collector — leader-elected and content-free.",
                "url": "https://backlogs.m7kni.io/genai-otel-bridge/"
              },
              {
                "@type": "ListItem",
                "position": 17,
                "name": "grafana-cloud-org-insights",
                "description": "Business value & operational insights from your Grafana Cloud stack",
                "url": "https://backlogs.m7kni.io/grafana-cloud-org-insights/"
              },
              {
                "@type": "ListItem",
                "position": 18,
                "name": "graph2otel",
                "description": "Exports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready.",
                "url": "https://backlogs.m7kni.io/graph2otel/"
              },
              {
                "@type": "ListItem",
                "position": 19,
                "name": "grotTrack",
                "description": "Time tracking for the easily distracted — a native macOS menu-bar app with a Chrome extension and native messaging host.",
                "url": "https://backlogs.m7kni.io/grotTrack/"
              },
              {
                "@type": "ListItem",
                "position": 20,
                "name": "intune-assignments-manager",
                "description": "Visualise and bulk-manage Microsoft Intune app and configuration-profile assignments across devices, users and groups. Runs entirely in your browser — credentials never leave it.",
                "url": "https://backlogs.m7kni.io/intune-assignments-manager/"
              },
              {
                "@type": "ListItem",
                "position": 21,
                "name": "autopi-ha",
                "description": "Home Assistant custom integration for AutoPi.io vehicle telematics — GPS position, trip data and OBD vehicle metrics as native entities. Installable through HACS.",
                "url": "https://backlogs.m7kni.io/autopi-ha/"
              },
              {
                "@type": "ListItem",
                "position": 22,
                "name": "bumblebee-catalog",
                "description": "Rolling OSV exposure catalog for Bumblebee (public threat-intel, regenerated every 4h)",
                "url": "https://backlogs.m7kni.io/bumblebee-catalog/"
              },
              {
                "@type": "ListItem",
                "position": 23,
                "name": "bumblebee-intune",
                "description": "Reference Microsoft Intune deployment for Bumblebee — configuration profiles, policies and deployment guidance",
                "url": "https://backlogs.m7kni.io/bumblebee-intune/"
              },
              {
                "@type": "ListItem",
                "position": 24,
                "name": "codexlb2otel",
                "description": "codexlb2otel adds deep observability for OpenAI Codex CLI sessions running through codex-lb. It turns captured Codex conversations and websocket traffic into OpenTelemetry metrics and traces, Loki logs, and Grafana Cloud agento11y.",
                "url": "https://backlogs.m7kni.io/codexlb2otel/"
              },
              {
                "@type": "ListItem",
                "position": 25,
                "name": ".github",
                "description": "Shared GitHub config + reusable security/CI workflows for the rknightion repos",
                "url": "https://backlogs.m7kni.io/dot-github/"
              }
            ]
          }
        }
      ],
      "robotsMeta": "index, follow, max-snippet:-1, max-image-preview:large",
      "author": null,
      "generator": null,
      "markdownAlternateHref": "https://backlogs.m7kni.io/"
    }
  },
  "markdown": "## graph2otel\n\nExports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready.\n\n7 open1 doneGo3 days ago\n",
  "fullPageMarkdown": "Backlogs - m7kni.io\n\n[▭Backlogsm7kni.io](https://backlogs.m7kni.io/)\n\nProject workspace\n\n# What I am working on.\n\nEvery public repository here keeps its plan in the repository itself, as Backlog.md Markdown. This publishes those trackers as they are: 25 projects,148 open tasks, 698 completed. Read-only, and the repository is always the source of truth.\n\n[All open work](https://backlogs.m7kni.io/open/) ·[Recent activity](https://backlogs.m7kni.io/activity/) ·[Statistics](https://backlogs.m7kni.io/stats/) ·[Search](https://backlogs.m7kni.io/search/)\n\n[## backlog-publishing\n\nPublishes every public rknightion Backlog.md tracker at backlogs.m7kni.io\n\n0 open9 doneAstrotoday](https://backlogs.m7kni.io/backlog-publishing/)[## opnsense2otel\n\nOpenTelemetry and Prometheus observability for OPNsense firewalls. 65 collectors, 1006 metrics, native OTLP metrics and logs, syslog receiver, NetFlow and Zenarmor flow-log processing.\n\n4 open109 doneGotoday](https://backlogs.m7kni.io/opnsense2otel/)[## tailscale2otel\n\nTailscale exporter for OpenTelemetry and Prometheus. Device fleet, network flow logs and audit logs as OTLP metrics & logs. Single Go binary, Grafana Cloud ready. Headscale supported.\n\n2 open152 doneGotoday](https://backlogs.m7kni.io/tailscale2otel/)[## grafana-cloud-vending-machine\n\nProvision Grafana Cloud stacks at scale, with style. Declarative request API, Argo CD owns Git, Crossplane reconciles the cloud.\n\n8 open80 doneGoyesterday](https://backlogs.m7kni.io/grafana-cloud-vending-machine/)[## rfc6035-2otel\n\nRFC 6035 SIP voice-quality (vq-rtcpxr) reports to OpenTelemetry metrics and logs\n\n2 open1 doneGo3 days ago](https://backlogs.m7kni.io/rfc6035-2otel/)[## sagemcom-f3896-py\n\nClient for the Sagemcom f3896/Ziggo SmartWifi modem (black)\n\n1 open1 donePython3 days ago](https://backlogs.m7kni.io/sagemcom-f3896-py/)[## sf2loki\n\nStreams Salesforce Event Monitoring into Grafana Loki — Pub/Sub API, SOQL and EventLogFile ingestion, cardinality-disciplined by default.\n\n71 open2 donePython3 days ago](https://backlogs.m7kni.io/sf2loki/)[## synthkit\n\nComposable synthetic-telemetry generator. One YAML blueprint emits structurally-correct metrics, traces, logs and RUM to Prometheus, Loki and Grafana Cloud over OTLP.\n\n3 open174 doneGo3 days ago](https://backlogs.m7kni.io/synthkit/)[## transceiver-exporter\n\nPrometheus exporter for optical transceiver diagnostics — SFP, SFP+ and QSFP Digital Optical Monitoring (DOM) data read over ethtool.\n\n0 open9 doneGo3 days ago](https://backlogs.m7kni.io/transceiver-exporter/)[## meraki-dashboard-exporter\n\nPrometheus exporter and OpenTelemetry collector for the Cisco Meraki Dashboard API. Scrape-ready metrics, OTLP export and Grafana dashboards included.\n\n2 open66 donePython3 days ago](https://backlogs.m7kni.io/meraki-dashboard-exporter/)[## meraki-dashboard-ha\n\nHome Assistant custom integration for Cisco Meraki MT sensors — temperature, humidity, air quality, water and door status via the Meraki Dashboard API. Installable through HACS.\n\n5 open2 donePython3 days ago](https://backlogs.m7kni.io/meraki-dashboard-ha/)[## openbao-plugin-secrets-github\n\nOpenBao secrets engine for short-lived, scoped GitHub App installation tokens. Fork of martinbaillie/vault-plugin-secrets-github ported to the OpenBao SDK.\n\n0 open2 doneGo3 days ago](https://backlogs.m7kni.io/openbao-plugin-secrets-github/)[## paperless-ngx-dedupe\n\nFind and remove duplicate documents in paperless-ngx. MinHash/LSH fuzzy matching catches near-duplicates that exact hashing misses, with optional AI metadata suggestions.\n\n2 open2 doneTypeScript3 days ago](https://backlogs.m7kni.io/paperless-ngx-dedupe/)[## polylens2otel\n\nOpenTelemetry-native exporter for Poly Lens and Poly desk phones — metrics, logs and traces over OTLP\n\n4 open0 doneGo3 days ago](https://backlogs.m7kni.io/polylens2otel/)[## fleet-management-operator\n\nKubernetes operator for Grafana Cloud Fleet Management — declare Alloy collector pipelines as custom resources and reconcile them continuously.\n\n5 open1 doneGo3 days ago](https://backlogs.m7kni.io/fleet-management-operator/)[## genai-otel-bridge\n\nTurn Portkey and LangSmith LLM traffic into OpenTelemetry metrics and logs. Vendor-neutral OTLP to Grafana Cloud or any collector — leader-elected and content-free.\n\n13 open3 doneGo3 days ago](https://backlogs.m7kni.io/genai-otel-bridge/)[## grafana-cloud-org-insights\n\nBusiness value & operational insights from your Grafana Cloud stack\n\n8 open28 donePython3 days ago](https://backlogs.m7kni.io/grafana-cloud-org-insights/)[## graph2otel\n\nExports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready.\n\n7 open1 doneGo3 days ago](https://backlogs.m7kni.io/graph2otel/)[## grotTrack\n\nTime tracking for the easily distracted — a native macOS menu-bar app with a Chrome extension and native messaging host.\n\n1 open1 doneSwift3 days ago](https://backlogs.m7kni.io/grotTrack/)[## intune-assignments-manager\n\nVisualise and bulk-manage Microsoft Intune app and configuration-profile assignments across devices, users and groups. Runs entirely in your browser — credentials never leave it.\n\n0 open2 doneSvelte3 days ago](https://backlogs.m7kni.io/intune-assignments-manager/)[## autopi-ha\n\nHome Assistant custom integration for AutoPi.io vehicle telematics — GPS position, trip data and OBD vehicle metrics as native entities. Installable through HACS.\n\n0 open1 donePython3 days ago](https://backlogs.m7kni.io/autopi-ha/)[## bumblebee-catalog\n\nRolling OSV exposure catalog for Bumblebee (public threat-intel, regenerated every 4h)\n\n3 open1 donePython3 days ago](https://backlogs.m7kni.io/bumblebee-catalog/)[## bumblebee-intune\n\nReference Microsoft Intune deployment for Bumblebee — configuration profiles, policies and deployment guidance\n\n4 open1 donePython3 days ago](https://backlogs.m7kni.io/bumblebee-intune/)[## codexlb2otel\n\ncodexlb2otel adds deep observability for OpenAI Codex CLI sessions running through codex-lb. It turns captured Codex conversations and websocket traffic into OpenTelemetry metrics and traces, Loki logs, and Grafana Cloud agento11y.\n\n0 open48 doneGo3 days ago](https://backlogs.m7kni.io/codexlb2otel/)[## .github\n\nShared GitHub config + reusable security/CI workflows for the rknightion repos\n\n3 open2 donePython3 weeks ago](https://backlogs.m7kni.io/dot-github/)\n",
  "markdownStats": {
    "images": 0,
    "links": 0,
    "tables": 0,
    "codeBlocks": 0,
    "headings": 1
  },
  "tokens": {
    "htmlTokens": 5873,
    "markdownTokens": 60,
    "reduction": 5813,
    "reductionPercent": 99
  },
  "score": {
    "score": 86,
    "grade": "B",
    "rubricVersion": 3,
    "dimensions": {
      "accessibility": {
        "score": 88,
        "weight": 30,
        "grade": "B",
        "checks": {
          "content_without_js": {
            "score": 100,
            "weight": 55,
            "evidence": "proven",
            "details": "Content available without JavaScript"
          },
          "fast_content_position": {
            "score": 50,
            "weight": 25,
            "evidence": "plausible",
            "details": "Main content starts at 44% of HTML"
          },
          "reasonable_page_size": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Page size: 20KB"
          }
        }
      },
      "aiDiscoverability": {
        "score": 85,
        "weight": 25,
        "grade": "B",
        "checks": {
          "robots_allows_ai_bots": {
            "score": 100,
            "weight": 35,
            "evidence": "proven",
            "details": "All major AI search bots allowed"
          },
          "supports_markdown_negotiation": {
            "score": 45,
            "weight": 20,
            "evidence": "plausible",
            "details": "Application level — Content negotiation, <link> tag",
            "mechanisms": {
              "negotiation": true,
              "mdUrl": false,
              "linkTag": true,
              "linkHeader": false
            }
          },
          "has_sitemap": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Sitemap found"
          },
          "has_robots_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "robots.txt exists"
          },
          "has_llms_txt": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "llms.txt exists and is valid"
          },
          "has_content_signals": {
            "score": 60,
            "weight": 10,
            "evidence": "speculative",
            "details": "robots.txt: search=yes, ai-input=yes, ai-train=yes",
            "mechanisms": {
              "robotsTxt": true,
              "httpHeader": false,
              "policy": false
            }
          }
        }
      },
      "structuredData": {
        "score": 83,
        "weight": 20,
        "grade": "B",
        "checks": {
          "has_schema_org": {
            "score": 50,
            "weight": 35,
            "evidence": "proven",
            "details": "JSON-LD found but basic types: CollectionPage"
          },
          "has_open_graph": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "All OG tags present"
          },
          "has_meta_description": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "Meta description: 90 chars"
          },
          "has_canonical_url": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "Canonical URL present"
          },
          "has_lang_attribute": {
            "score": 100,
            "weight": 10,
            "evidence": "plausible",
            "details": "lang=\"en\""
          }
        }
      },
      "semanticHtml": {
        "score": 100,
        "weight": 15,
        "grade": "A",
        "checks": {
          "proper_heading_hierarchy": {
            "score": 100,
            "weight": 30,
            "evidence": "plausible",
            "details": "Clean heading hierarchy"
          },
          "uses_article_or_main": {
            "score": 100,
            "weight": 25,
            "evidence": "plausible",
            "details": "Has <main>"
          },
          "semantic_elements": {
            "score": 100,
            "weight": 20,
            "evidence": "plausible",
            "details": "29 semantic elements, 3 divs (ratio: 91%)"
          },
          "meaningful_alt_texts": {
            "score": 100,
            "weight": 15,
            "evidence": "plausible",
            "details": "No images found"
          },
          "low_div_nesting": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "Avg div depth: 0.0, max: 0"
          }
        }
      },
      "contentEfficiency": {
        "score": 70,
        "weight": 10,
        "grade": "C",
        "checks": {
          "token_reduction_ratio": {
            "score": 100,
            "weight": 40,
            "evidence": "speculative",
            "details": "99% token reduction (HTML→Markdown)"
          },
          "content_to_noise_ratio": {
            "score": 0,
            "weight": 30,
            "evidence": "speculative",
            "details": "Content ratio: 1.2% (241 content chars / 20419 HTML bytes)"
          },
          "reasonable_page_weight": {
            "score": 100,
            "weight": 20,
            "evidence": "speculative",
            "details": "HTML size: 20KB"
          },
          "minimal_inline_styles": {
            "score": 100,
            "weight": 10,
            "evidence": "speculative",
            "details": "0/255 elements with inline styles (0.0%)"
          }
        }
      }
    }
  },
  "recommendations": [
    {
      "id": "improve_content_ratio",
      "priority": "high",
      "category": "contentEfficiency",
      "titleKey": "rec.improve_content_ratio.title",
      "descriptionKey": "rec.improve_content_ratio.description",
      "howToKey": "rec.improve_content_ratio.howto",
      "howToStepKeys": null,
      "effort": "moderate",
      "estimatedImpact": 3,
      "maxImpact": 3,
      "evidence": "speculative",
      "checkScore": 0,
      "checkDetails": "Content ratio: 1.2% (241 content chars / 20419 HTML bytes)"
    },
    {
      "id": "add_markdown_negotiation",
      "priority": "high",
      "category": "aiDiscoverability",
      "titleKey": "rec.add_markdown_negotiation.title",
      "descriptionKey": "rec.add_markdown_negotiation.description_partial",
      "howToKey": "rec.add_markdown_negotiation.howto",
      "howToStepKeys": [
        "rec.add_markdown_negotiation.step.md_url",
        "rec.add_markdown_negotiation.step.link_header"
      ],
      "effort": "significant",
      "estimatedImpact": 2.8,
      "maxImpact": 5,
      "evidence": "plausible",
      "checkScore": 45,
      "checkDetails": "Application level — Content negotiation, <link> tag"
    }
  ],
  "llmsTxtPreview": "# backlogs.m7kni.io\n\n> Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.\n\n## Documentation\n- [llms.txt](https://backlogs.m7kni.io/llms.txt)\n\n## Main\n- [Backlogs - m7kni.io](https://backlogs.m7kni.io): Public project trackers for 25 open-source repositories: 148 open tasks and 698 completed.\n- [▭Backlogsm7kni.io](https://backlogs.m7kni.io/)\n- [Open](https://backlogs.m7kni.io/open/)\n- [Activity](https://backlogs.m7kni.io/activity/)\n- [Stats](https://backlogs.m7kni.io/stats/)\n- [Search](https://backlogs.m7kni.io/search/)\n- [llms.txt](https://backlogs.m7kni.io/llms.txt)\n\n",
  "llmsTxtExisting": "# Backlogs - m7kni.io\n\n> Public Backlog.md trackers for 25 open-source repositories owned by rknightion: 148 open tasks, 698 completed, plus 75 tracker documents and 2 decisions. Read-only. Each repository is the source of truth and this site is generated from it.\n\nEvery page here is also available as Markdown: request it with the `Accept: text/markdown` header and the edge converts it. Individual record pages are `noindex` and are deliberately absent from the sitemap; the boards and the indexes below reach all of them.\n\n## Site\n\n- [Project index](https://backlogs.m7kni.io/): every published tracker, most recently changed first.\n- [All open work](https://backlogs.m7kni.io/open/): every open task across every tracker, on one page.\n- [Recent activity](https://backlogs.m7kni.io/activity/): the most recently changed records, newest first.\n- [Statistics](https://backlogs.m7kni.io/stats/): completion over time and the type and priority mix.\n- [Search](https://backlogs.m7kni.io/search/): full text across every record, filterable by project, status, type and priority.\n\n## Projects\n\n- [backlog-publishing](https://backlogs.m7kni.io/backlog-publishing/): Publishes every public rknightion Backlog.md tracker at backlogs.m7kni.io 0 open, 9 completed, last changed 2026-09-20. Source: https://github.com/rknightion/backlog-publishing. Pages: board https://backlogs.m7kni.io/backlog-publishing/; completed https://backlogs.m7kni.io/backlog-publishing/completed/.\n- [opnsense2otel](https://backlogs.m7kni.io/opnsense2otel/): OpenTelemetry and Prometheus observability for OPNsense firewalls. 65 collectors, 1006 metrics, native OTLP metrics and logs, syslog receiver, NetFlow and Zenarmor flow-log processing. 4 open, 109 completed, last changed 2026-09-20. Source: https://github.com/rknightion/opnsense2otel. Pages: board https://backlogs.m7kni.io/opnsense2otel/; completed https://backlogs.m7kni.io/opnsense2otel/completed/; milestones https://backlogs.m7kni.io/opnsense2otel/milestones/; documents https://backlogs.m7kni.io/opnsense2otel/docs/.\n- [tailscale2otel](https://backlogs.m7kni.io/tailscale2otel/): Tailscale exporter for OpenTelemetry and Prometheus. Device fleet, network flow logs and audit logs as OTLP metrics & logs. Single Go binary, Grafana Cloud ready. Headscale supported. 2 open, 152 completed, last changed 2026-09-19. Source: https://github.com/rknightion/tailscale2otel. Pages: board https://backlogs.m7kni.io/tailscale2otel/; completed https://backlogs.m7kni.io/tailscale2otel/completed/; milestones https://backlogs.m7kni.io/tailscale2otel/milestones/; documents https://backlogs.m7kni.io/tailscale2otel/docs/.\n- [grafana-cloud-vending-machine](https://backlogs.m7kni.io/grafana-cloud-vending-machine/): Provision Grafana Cloud stacks at scale, with style. Declarative request API, Argo CD owns Git, Crossplane reconciles the cloud. 8 open, 80 completed, last changed 2026-09-18. Source: https://github.com/rknightion/grafana-cloud-vending-machine. Pages: board https://backlogs.m7kni.io/grafana-cloud-vending-machine/; completed https://backlogs.m7kni.io/grafana-cloud-vending-machine/completed/; documents https://backlogs.m7kni.io/grafana-cloud-vending-machine/docs/; decisions https://backlogs.m7kni.io/grafana-cloud-vending-machine/decisions/.\n- [rfc6035-2otel](https://backlogs.m7kni.io/rfc6035-2otel/): RFC 6035 SIP voice-quality (vq-rtcpxr) reports to OpenTelemetry metrics and logs 2 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/rfc6035-2otel. Pages: board https://backlogs.m7kni.io/rfc6035-2otel/; completed https://backlogs.m7kni.io/rfc6035-2otel/completed/; documents https://backlogs.m7kni.io/rfc6035-2otel/docs/.\n- [sagemcom-f3896-py](https://backlogs.m7kni.io/sagemcom-f3896-py/): Client for the Sagemcom f3896/Ziggo SmartWifi modem (black) 1 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/sagemcom-f3896-py. Pages: board https://backlogs.m7kni.io/sagemcom-f3896-py/; completed https://backlogs.m7kni.io/sagemcom-f3896-py/completed/; documents https://backlogs.m7kni.io/sagemcom-f3896-py/docs/.\n- [sf2loki](https://backlogs.m7kni.io/sf2loki/): Streams Salesforce Event Monitoring into Grafana Loki — Pub/Sub API, SOQL and EventLogFile ingestion, cardinality-disciplined by default. 71 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/sf2loki. Pages: board https://backlogs.m7kni.io/sf2loki/; completed https://backlogs.m7kni.io/sf2loki/completed/; milestones https://backlogs.m7kni.io/sf2loki/milestones/; documents https://backlogs.m7kni.io/sf2loki/docs/.\n- [synthkit](https://backlogs.m7kni.io/synthkit/): Composable synthetic-telemetry generator. One YAML blueprint emits structurally-correct metrics, traces, logs and RUM to Prometheus, Loki and Grafana Cloud over OTLP. 3 open, 174 completed, last changed 2026-09-16. Source: https://github.com/rknightion/synthkit. Pages: board https://backlogs.m7kni.io/synthkit/; completed https://backlogs.m7kni.io/synthkit/completed/; documents https://backlogs.m7kni.io/synthkit/docs/.\n- [transceiver-exporter](https://backlogs.m7kni.io/transceiver-exporter/): Prometheus exporter for optical transceiver diagnostics — SFP, SFP+ and QSFP Digital Optical Monitoring (DOM) data read over ethtool. 0 open, 9 completed, last changed 2026-09-16. Source: https://github.com/rknightion/transceiver-exporter. Pages: board https://backlogs.m7kni.io/transceiver-exporter/; completed https://backlogs.m7kni.io/transceiver-exporter/completed/; documents https://backlogs.m7kni.io/transceiver-exporter/docs/.\n- [meraki-dashboard-exporter](https://backlogs.m7kni.io/meraki-dashboard-exporter/): Prometheus exporter and OpenTelemetry collector for the Cisco Meraki Dashboard API. Scrape-ready metrics, OTLP export and Grafana dashboards included. 2 open, 66 completed, last changed 2026-09-16. Source: https://github.com/rknightion/meraki-dashboard-exporter. Pages: board https://backlogs.m7kni.io/meraki-dashboard-exporter/; completed https://backlogs.m7kni.io/meraki-dashboard-exporter/completed/; documents https://backlogs.m7kni.io/meraki-dashboard-exporter/docs/.\n- [meraki-dashboard-ha](https://backlogs.m7kni.io/meraki-dashboard-ha/): Home Assistant custom integration for Cisco Meraki MT sensors — temperature, humidity, air quality, water and door status via the Meraki Dashboard API. Installable through HACS. 5 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/meraki-dashboard-ha. Pages: board https://backlogs.m7kni.io/meraki-dashboard-ha/; completed https://backlogs.m7kni.io/meraki-dashboard-ha/completed/; documents https://backlogs.m7kni.io/meraki-dashboard-ha/docs/.\n- [openbao-plugin-secrets-github](https://backlogs.m7kni.io/openbao-plugin-secrets-github/): OpenBao secrets engine for short-lived, scoped GitHub App installation tokens. Fork of martinbaillie/vault-plugin-secrets-github ported to the OpenBao SDK. 0 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/openbao-plugin-secrets-github. Pages: board https://backlogs.m7kni.io/openbao-plugin-secrets-github/; completed https://backlogs.m7kni.io/openbao-plugin-secrets-github/completed/; documents https://backlogs.m7kni.io/openbao-plugin-secrets-github/docs/.\n- [paperless-ngx-dedupe](https://backlogs.m7kni.io/paperless-ngx-dedupe/): Find and remove duplicate documents in paperless-ngx. MinHash/LSH fuzzy matching catches near-duplicates that exact hashing misses, with optional AI metadata suggestions. 2 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/paperless-ngx-dedupe. Pages: board https://backlogs.m7kni.io/paperless-ngx-dedupe/; completed https://backlogs.m7kni.io/paperless-ngx-dedupe/completed/; documents https://backlogs.m7kni.io/paperless-ngx-dedupe/docs/.\n- [polylens2otel](https://backlogs.m7kni.io/polylens2otel/): OpenTelemetry-native exporter for Poly Lens and Poly desk phones — metrics, logs and traces over OTLP 4 open, 0 completed, last changed 2026-09-16. Source: https://github.com/rknightion/polylens2otel. Pages: board https://backlogs.m7kni.io/polylens2otel/; documents https://backlogs.m7kni.io/polylens2otel/docs/.\n- [fleet-management-operator](https://backlogs.m7kni.io/fleet-management-operator/): Kubernetes operator for Grafana Cloud Fleet Management — declare Alloy collector pipelines as custom resources and reconcile them continuously. 5 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/fleet-management-operator. Pages: board https://backlogs.m7kni.io/fleet-management-operator/; completed https://backlogs.m7kni.io/fleet-management-operator/completed/; documents https://backlogs.m7kni.io/fleet-management-operator/docs/.\n- [genai-otel-bridge](https://backlogs.m7kni.io/genai-otel-bridge/): Turn Portkey and LangSmith LLM traffic into OpenTelemetry metrics and logs. Vendor-neutral OTLP to Grafana Cloud or any collector — leader-elected and content-free. 13 open, 3 completed, last changed 2026-09-16. Source: https://github.com/rknightion/genai-otel-bridge. Pages: board https://backlogs.m7kni.io/genai-otel-bridge/; completed https://backlogs.m7kni.io/genai-otel-bridge/completed/; documents https://backlogs.m7kni.io/genai-otel-bridge/docs/.\n- [grafana-cloud-org-insights](https://backlogs.m7kni.io/grafana-cloud-org-insights/): Business value & operational insights from your Grafana Cloud stack 8 open, 28 completed, last changed 2026-09-16. Source: https://github.com/rknightion/grafana-cloud-org-insights. Pages: board https://backlogs.m7kni.io/grafana-cloud-org-insights/; completed https://backlogs.m7kni.io/grafana-cloud-org-insights/completed/; documents https://backlogs.m7kni.io/grafana-cloud-org-insights/docs/.\n- [graph2otel](https://backlogs.m7kni.io/graph2otel/): Exports OTLP metrics and logs from Microsoft Entra ID, Intune, Defender, M365 and Purview via Microsoft Graph, Azure Storage blobs and the O365 Management Activity API. Single Go binary, Grafana Cloud ready. 7 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/graph2otel. Pages: board https://backlogs.m7kni.io/graph2otel/; completed https://backlogs.m7kni.io/graph2otel/completed/; documents https://backlogs.m7kni.io/graph2otel/docs/.\n- [grotTrack](https://backlogs.m7kni.io/grotTrack/): Time tracking for the easily distracted — a native macOS menu-bar app with a Chrome extension and native messaging host. 1 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/grotTrack. Pages: board https://backlogs.m7kni.io/grotTrack/; completed https://backlogs.m7kni.io/grotTrack/completed/; documents https://backlogs.m7kni.io/grotTrack/docs/.\n- [intune-assignments-manager](https://backlogs.m7kni.io/intune-assignments-manager/): Visualise and bulk-manage Microsoft Intune app and configuration-profile assignments across devices, users and groups. Runs entirely in your browser — credentials never leave it. 0 open, 2 completed, last changed 2026-09-16. Source: https://github.com/rknightion/intune-assignments-manager. Pages: board https://backlogs.m7kni.io/intune-assignments-manager/; completed https://backlogs.m7kni.io/intune-assignments-manager/completed/; documents https://backlogs.m7kni.io/intune-assignments-manager/docs/.\n- [autopi-ha](https://backlogs.m7kni.io/autopi-ha/): Home Assistant custom integration for AutoPi.io vehicle telematics — GPS position, trip data and OBD vehicle metrics as native entities. Installable through HACS. 0 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/autopi-ha. Pages: board https://backlogs.m7kni.io/autopi-ha/; completed https://backlogs.m7kni.io/autopi-ha/completed/; documents https://backlogs.m7kni.io/autopi-ha/docs/.\n- [bumblebee-catalog](https://backlogs.m7kni.io/bumblebee-catalog/): Rolling OSV exposure catalog for Bumblebee (public threat-intel, regenerated every 4h) 3 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/bumblebee-catalog. Pages: board https://backlogs.m7kni.io/bumblebee-catalog/; completed https://backlogs.m7kni.io/bumblebee-catalog/completed/; documents https://backlogs.m7kni.io/bumblebee-catalog/docs/.\n- [bumblebee-intune](https://backlogs.m7kni.io/bumblebee-intune/): Reference Microsoft Intune deployment for Bumblebee — configuration profiles, policies and deployment guidance 4 open, 1 completed, last changed 2026-09-16. Source: https://github.com/rknightion/bumblebee-intune. Pages: board https://backlogs.m7kni.io/bumblebee-intune/; completed https://backlogs.m7kni.io/bumblebee-intune/completed/; documents https://backlogs.m7kni.io/bumblebee-intune/docs/.\n- [codexlb2otel](https://backlogs.m7kni.io/codexlb2otel/): codexlb2otel adds deep observability for OpenAI Codex CLI sessions running through codex-lb. It turns captured Codex conversations and websocket traffic into OpenTelemetry metrics and traces, Loki logs, and Grafana Cloud agento11y. 0 open, 48 completed, last changed 2026-09-16. Source: https://github.com/rknightion/codexlb2otel. Pages: board https://backlogs.m7kni.io/codexlb2otel/; completed https://backlogs.m7kni.io/codexlb2otel/completed/; documents https://backlogs.m7kni.io/codexlb2otel/docs/.\n- [.github](https://backlogs.m7kni.io/dot-github/): Shared GitHub config + reusable security/CI workflows for the rknightion repos 3 open, 2 completed, last changed 2026-08-29. Source: https://github.com/rknightion/.github. Pages: board https://backlogs.m7kni.io/dot-github/; completed https://backlogs.m7kni.io/dot-github/completed/; documents https://backlogs.m7kni.io/dot-github/docs/.",
  "emergingProtocols": {
    "oauthProtectedResource": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/oauth-protected-resource"
    },
    "oauthDiscovery": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/oauth-authorization-server"
    },
    "mcpServerCard": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/mcp/server-card.json",
      "draft": true
    },
    "a2aAgentCard": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/agent-card.json"
    },
    "apiCatalog": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/api-catalog"
    },
    "agentSkills": {
      "exists": false,
      "url": "https://backlogs.m7kni.io/.well-known/agent-skills/index.json",
      "draft": true
    },
    "count": 0,
    "total": 6
  },
  "botAccess": {
    "probed": true,
    "bot": "OAI-SearchBot",
    "controlStatus": 200,
    "botStatus": 200,
    "discriminates": false,
    "refusedAsBot": false,
    "edge": "Cloudflare",
    "verifiable": false,
    "detail": "This origin answers OAI-SearchBot exactly as it answers any other client (200). No edge-level filtering of AI crawlers observed."
  },
  "snippets": [
    {
      "id": "add_markdown_negotiation",
      "title": "Support Markdown for Agents",
      "description": "Let AI agents request a clean Markdown version of any page via content negotiation, .md alternate URLs, link tags or Link headers.",
      "language": "html",
      "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">",
      "filename": "<head>",
      "stacks": [
        {
          "id": "html",
          "label": "HTML <head>",
          "language": "html",
          "filename": "<head>",
          "code": "<!-- Mechanism 3: link tag advertising the .md alternate -->\n<link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        },
        {
          "id": "express",
          "label": "Express",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\napp.get('/page', (req, res) => {\n  res.setHeader('Vary', 'Accept');\n  res.setHeader('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    res.type('text/markdown; charset=utf-8');\n    return res.send(renderMarkdown('page'));\n  }\n  res.render('page');\n});"
        },
        {
          "id": "fastify",
          "label": "Fastify",
          "language": "javascript",
          "filename": "server.js",
          "code": "// Mechanisms 1 + 4: content negotiation + Link header\nfastify.get('/page', async (req, reply) => {\n  reply.header('Vary', 'Accept');\n  reply.header('Link', '</page.md>; rel=\"alternate\"; type=\"text/markdown\"');\n  if ((req.headers.accept || '').includes('text/markdown')) {\n    return reply.type('text/markdown; charset=utf-8').send(renderMarkdown('page'));\n  }\n  return reply.view('/page.ejs');\n});"
        },
        {
          "id": "nextjs",
          "label": "Next.js",
          "language": "typescript",
          "filename": "app/page/route.ts",
          "code": "// Next.js App Router — Route Handler returning Markdown\nimport { NextRequest } from 'next/server';\nimport { renderMarkdown } from '@/lib/md';\nexport async function GET(req: NextRequest) {\n  const accept = req.headers.get('accept') || '';\n  if (accept.includes('text/markdown')) {\n    return new Response(await renderMarkdown('page'), {\n      headers: {\n        'Content-Type': 'text/markdown; charset=utf-8',\n        'Vary': 'Accept',\n      },\n    });\n  }\n  // Fall through to the page component\n  return new Response(null, { status: 404 });\n}"
        },
        {
          "id": "wordpress",
          "label": "WordPress",
          "language": "php",
          "filename": "functions.php",
          "code": "<?php\n// Mechanism 1: respond to Accept: text/markdown on the same URL\nadd_action('template_redirect', function () {\n    if (!is_singular()) return;\n    $accept = $_SERVER['HTTP_ACCEPT'] ?? '';\n    if (strpos($accept, 'text/markdown') === false) return;\n    header('Content-Type: text/markdown; charset=utf-8');\n    header('Vary: Accept');\n    $post = get_queried_object();\n    echo \"# \" . get_the_title($post) . \"\\n\\n\";\n    echo wp_strip_all_tags(apply_filters('the_content', $post->post_content));\n    exit;\n});"
        },
        {
          "id": "static",
          "label": "Hugo / Jekyll / Astro",
          "language": "txt",
          "filename": "static/page.md",
          "code": "# Mechanism 2: serve .md alongside .html\n# Hugo: place page.md in /static/ — built unchanged\n# Jekyll: drop page.md in /assets/ — copied as-is\n# Astro: src/pages/page.md.ts that exports a GET returning markdown\n\n# Then advertise with mechanism 3 in <head>:\n#   <link rel=\"alternate\" type=\"text/markdown\" href=\"/page.md\">"
        }
      ]
    }
  ]
}

Use our API to get this programmatically (coming soon)

This JSON is for internal use — unlike the Markdown and llms.txt files, it's not meant to be uploaded to your site. Save it as a baseline to track your score over time, share it with your dev team, or integrate it into your CI/CD pipeline.

Want a second opinion?

Cloudflare runs a free scanner too, and it asks a different question. It scores what your site publishes for agents to call — MCP server cards, Agent Skills, API catalogs, DNS records. We score whether an agent can reach, read and understand your content. A site can do well on one and poorly on the other, so expect two different numbers: they are answers to two different questions, and both are worth knowing.

Scan backlogs.m7kni.io with Cloudflare

Embed your badge

Add this badge to your site. It updates automatically as your AI-readiness score changes.

AgentReady.md score for backlogs.m7kni.io
Script Recommended
<script src="https://agentready.md/badge.js" data-id="c833a8ca-f69c-42bb-99af-d22f69fc536e" data-domain="backlogs.m7kni.io"></script>
Markdown
[![AgentReady.md score for backlogs.m7kni.io](https://agentready.md/badge/backlogs.m7kni.io.svg)](https://agentready.md/r/backlogs.m7kni.io)

Coming soon: Full Domain Analysis

Crawl your entire domain, generate llms.txt, and monitor your AI-readiness score over time. Join the waitlist to be notified.

You're on the list! We'll notify you when it launches.