telemetry-canary
Skill15 starsChanged 6 days agoApache-2.0View on GitHub
Observability and structured logging canary — checks for structured logs (JSON), OpenTelemetry metrics/traces, proper error stack traces, flags empty catches or silent log swallowing, and flags sensitive data written to logs. Triggers on keywords: "/telemetry-canary", "telemetry-canary", "observability audit", "structured logging". Use when adding or changing logging, metrics, tracing, or error-handling code.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- HetCreep/CoalMineword for word, first seen Nov 8, 2026
Other versions1 project uses a version of this.
Word for word · 1
- HetCreep/CoalMine★ 15100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- drift-canarySkill
- gold-standardSkill
- resilience-auditSkill
- rot-canarySkill
- scale-canarySkill
- source-groundingSkill
- supply-chain-auditSkill
- testability-canarySkill
The file
Files
Telemetry Canary (Observability & Logging Audit)
<!-- SHARED:LANGUAGE_HEADER -->Audit code for proper telemetry instrumentation — ensure the app is not a black box in production, and that what it logs does not leak.
Auditing Categories
- Empty / Silent Catch — catch blocks that swallow exceptions without logging a stack trace or forwarding the error.
- Unstructured Logs — plain-string logging in server code (prefer JSON / structured key-value for cloud queries).
- No Correlation ID — operations crossing boundaries (HTTP/gRPC/threads) without propagating a trace/correlation ID.
- Missing Metrics — critical transactions (checkout, auth, errors) lacking counter/histogram instrumentation.
- No Stack Traces — errors logged without stack context (
logger.error(e.message)instead oflogger.error(e)). - Sensitive data in logs — a log call in code a runtime loads whose argument is a request body, an
Authorization/Cookie/Set-Cookieheader (or the whole headers object), or a prompt or output value; logs that leave the machine keep it.
Per-stack grep patterns and right/wrong shapes per category: read references/checks.md before scanning.
Fix mode (choice-gated)
In Agent Context, after the report, present via ask_question:
- Apply safe logs: insert error logging into empty catch blocks (standard logger template) + stack-trace mapping. Each fix: checkpoint (copy the touched file(s) aside, or use an isolated worktree — never
git stash/git commit, which can hide or include unrelated staged/unstaged user work) → record a build+test BASELINE → apply → build + tests → auto-revert only if a NEW failure appeared versus the baseline. - Let me pick: user selects which telemetry gaps to resolve.
- Report only: exit unchanged.
Grants & denials (CLASSIFY-BLOCK)
| class | step it powers | grant | on denial |
| read | scan logging/metrics/error paths for the categories above | Read·Grep·Glob | refuse that file, name it — never a clean bill |
| write | Fix mode's safe-log apply, incl. checkpoint → baseline → build+tests → auto-revert only on a NEW failure | Edit·Bash (checkpoint/build/revert need exec) | report the fix as NOT applied AND the checkpoint/revert as NOT available, never claim done |
<!-- SHARED:CLASSIFY_BLOCK -->Output
| file:line | category | severity | finding | recommendation |
Severity: CRITICAL (swallowed error with state mutation; a confirmed secret value written to a log) · HIGH (missing stack trace in error logs; sensitive data logged where the Worker config ships logs off the machine) · MEDIUM (unstructured log in API boundary; sensitive data logged where logs are only seen live) · LOW (minor trace gaps)
<!-- SHARED:REPORTING_FOOTER --><!-- SHARED:ORCHESTRATION --><!-- SHARED:ESCALATION_FOOTER -->Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

