Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add s977043/river-review --skill logging-observabilitygit clone --depth 1 https://github.com/s977043/river-reviewWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/s977043/river-review/logging-observability)<a href="https://agentmods.dev/skills/s977043/river-review/logging-observability"><img src="https://agentmods.dev/badge/skills/s977043/river-review/logging-observability/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/s977043/river-review/logging-observability"><img src="https://agentmods.dev/badge/skills/s977043/river-review/logging-observability.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00023 | $0.01252 |
| Opus 5.5 | $0.00009 | $0.00501 |
| Sonnet 5.5 | $0.00005 | $0.00250 |
| Haiku 4.5 | $0.00002 | $0.00125 |
Grade A, and why
Logging and Observability Guard scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 68 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pattern declaration
Primary pattern: Reviewer Secondary patterns: Inversion Why: ログ・メトリクス・トレースの品質をチェックリスト型で評価するが、可観測性に無関係な変更では実行不要
Guidance
- Flag swallowed exceptions or catch blocks without logging/propagation.
- Require structured logs/metrics/traces with request IDs and minimal PII on new error paths.
- Ensure retries/fallbacks/cache branches emit signals for hit/miss/attempt counts.
- Highlight noisy or contextless logs that hinder debugging.
- 既存マスク不変条件の迂回: 新設の debug/log/artifact 出力・保持経路(例: パース失敗調査用に raw レスポンスを
debug.*へ格納する、新しい診断ログを追加する)が、同種データの既存経路(パース済み・表示用データ)が通しているマスク処理(redact/mask 関数)を迂回していないか確認する。検出の問い: 「この diff が新設する出力・保持経路は、同種データの既存経路が通しているマスク処理を通っているか」。修正の定石は出力側(print/log 文)ではなく格納段階(値を変数やオブジェクトのプロパティへ代入する時点)で redact 関数を適用すること — これにより将来の全ての消費者(CI ログ、artifact export 等)が一律にマスク済みの値を受け取る。詳細は Origin を参照。
Non-goals
- ログ基盤の選定や詳細設計の議論は避ける。
- 既存のログ出力に対する一般論的な「secret をログに出すな」指摘(マスク処理の迂回を伴わないもの)は対象外。プロジェクト固有の secret パターン検出は
security-basic/ secret 検出系スキルが担う。本項目は新設の出力経路が既存のマスク不変条件を迂回しているかという差分固有の観点に限定する。
Origin / 由来
debug.rawLlmOutputが #1529 で追加された際、パース失敗調査のために raw な LLM レスポンスを格納したが、parseLineCommentsがパースした表示用コメントには既に適用されていたredactSecretsを経由せず、raw レスポンスをそのまま格納していた。CI ログ出力(printDebugInfo)を経由して secret が露出する経路になっていた。gemini のセキュリティレビューコメントで発見され、テストでは検知されなかった。修正は出力側ではなく格納時点(src/lib/review-engine.mjsの代入行)でredactSecretsを適用する形(debug.rawLlmOutput = redactSecrets(output))に是正された(fix commitca7eaa3b)。- 出典:
AGENT_LEARNINGS.md2026-07-12 エントリ3、PR #1529(gemini security-high レビューコメントと修正コミット)。
Pre-execution Gate / 実行前ゲート
このスキルは以下の条件がすべて満たされない限りNO_REVIEWを返す。
- 差分にアプリケーションコード(
src/,lib/,*.js,*.mjs,*.ts,*.tsx)の変更が含まれている - 差分にエラーハンドリング、ログ出力、リトライ/フォールバック/キャッシュのいずれかに関連するコードが含まれている
- inputContextにdiffが含まれている
ゲート不成立時の出力: NO_REVIEW: logging-observability — 可観測性に関連するアプリケーションコード変更が検出されない
False-positive guards
- テスト用の意図的な無視や既に文脈付きで再 throw している場合は指摘しない。
- 新設の debug/log/artifact 出力経路が、値の格納段階で既に redact/mask 関数(
redactSecrets等)を通した後の値を保持・出力している場合は指摘しない(例:debug.rawX = redactSecrets(raw)のように代入時点でマスク済み)。
What ships with it
17 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- eval/promptfoo.yaml 2.6 KB
- fixtures/01-silent-catch-happy.md 621 B
- fixtures/01-silent-catch.diff 340 B
- fixtures/02-proper-error-handling.diff 406 B
- fixtures/02-proper-error-handling.md 720 B
- fixtures/03-missing-context.diff 354 B
- fixtures/04-debug-output-bypasses-redaction-should-detect.diff 660 B
- fixtures/04-debug-output-bypasses-redaction-should-detect.md 1.6 KB
- fixtures/05-debug-output-redacted-at-storage-should-not-detect.diff 760 B
- fixtures/05-debug-output-redacted-at-storage-should-not-detect.md 1.4 KB
- golden/01-silent-catch-happy.md 302 B
- golden/02-proper-error-handling.md 127 B
- golden/04-debug-output-bypasses-redaction-should-detect.md 659 B
- golden/05-debug-output-redacted-at-storage-should-not-detect.md 292 B
- prompt/system.md 3.5 KB
- prompt/user.md 2.1 KB
- README.md 3.1 KB
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 68 lines · 23 tokens per session scan A 94e75e28bae3
Logging and Observability Guard is a skill published in the GitHub repository s977043/river-review (7 stars, last pushed today), licensed MIT. It adds 23 tokens to every session and 1,252 once invoked, about $0.0001 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-09-03.
Other skills, from other repositories
vigil-instrument
Instrument a service with OpenTelemetry — RED metrics, structured logs, distributed tracing, and health checks. Outputs actual code and config, not a plan. Use when asked to "add monitoring", "instrument this", "add logging", "set up tracing", or "observability".
review-all
Multi-agent code review for diffs (project-agnostic). Covers standards, bugs, security, DRY, smells, perf, tests, API contracts, a11y/i18n. Verifies each finding to eliminate false positives. Use for /review-all, pre-PR/pre-commit review, or auditing uncommitted/staged changes.
vigil-incident
Incident response — diagnose production issues, find root cause, propose fix with rollback. Use when asked about "something is broken", "production issue", "why is this down", "incident", or "debug production".
logic-review
Find logic bugs in a single file or function via semi-formal execution tracing (Premises → Trace → Divergence → Trigger → Remedy). Trigger when a user shares code and suspects something is wrong without naming a concrete failure — phrases like "review this", "does this look right", "check this function", "audit this…
logic-fix-all
Autonomous repository-wide audit-and-fix pipeline: health → review → locate/explain → fix → diff-verify → iterate until clean. Starts with a mandatory consent prompt (token-intensive); after consent runs hands-free. Trigger when the user wants ALL logic issues found and fixed — "fix everything", "fix all logic…
logic-health
Sweep a directory, module, or full codebase for logic correctness and produce a scored health dashboard with systemic patterns. Trigger when the user requests a health view — "audit the whole codebase", "health check", "health overview", "logic health overview", "audit src/", "audit auth and payments modules", "where…