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 agentmods add skills/mh4gf/claude-code/narrative-reviewnpx skills add MH4GF/claude-code --skill narrative-reviewgit clone --depth 1 https://github.com/MH4GF/claude-codeWrote 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/mh4gf/claude-code/narrative-review)<a href="https://agentmods.dev/skills/mh4gf/claude-code/narrative-review"><img src="https://agentmods.dev/badge/skills/mh4gf/claude-code/narrative-review.svg" alt="Measured on agentmods" 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.00100 | $0.01735 |
| Opus 5 | $0.00050 | $0.00868 |
| Sonnet 5 | $0.00020 | $0.00347 |
| Haiku 4.5 | $0.00010 | $0.00173 |
Grade A, and why
narrative-review 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 5d 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 — 118 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ナラティブ レビュー (markdown / script / 設定の差分)
main ブランチとの diff を下記ルールで判定する。ファイル編集は行わない。修正判断は呼び出し元に委ねる。
対象
git diff --name-only origin/main...HEAD -- \
'*.md' '**/*.md' \
'*.sh' '**/*.sh' \
'*.sb' '**/*.sb' \
'*.json' '**/*.json'
出力が空なら PASS (no target files changed) を返して終了する。
ファイル種別ごとに適用ルールが変わる。次の表のとおり
*.md— 文量バランス (4 観点) と経緯コメント検出 (5 観点目) の両方*.sh/*.sb/*.json— 経緯コメント検出のみ
ルール
文量バランス (markdown 専用)
SKILL.md / CLAUDE.md / commands/*.md の散文肥大化を 4 観点で検出する。README.md 等の一般 docs には緩く適用する。
- 判定 / 分岐ロジックがコマンド節 (実行可能 snippet) に集約されているか
- description / 目的 / 手順が最小置換で済んでいるか
- 手順への補足が 1 行に圧縮されているか
- 差分の経緯解説が本文に残っていないか (経緯は
commitメッセージ / PR description 側にあるべき)
経緯コメント検出 (markdown / script / 設定共通)
経緯コメントとは、現在の挙動や設計意図でなく、過去の状態や廃止された案を残した記述。git history で追える情報のため、コード / docs 本体には残さない。
何を「経緯」と判定するか
次の signal のうち 1 つ以上に当たると「経緯コメント」と判定する。トリガー語そのものを禁止リスト化するのではなく、文の 指示対象 を読む
- 過去状態への言及 — 「もとは X だった」「以前は X」「これまでは X」「当初は X」「従来は X」「以前の実装」「previously」「originally」「used to」
- 廃止 / 移行 / 削除に至った理由 — 「X を廃止した」「X から Y へ移行した」「X を整理 / trim / 統一した」「X を捨てた理由」
- 過去の方針への言及 — 「過去の方針」「廃止背景」「廃止理由」「以前の判断」「経緯」
- 比較対象が現存しない過去案 — 「A 案ではなく B にした」「X だと Y で困るので Z」(X が既に存在しない時)
- 変更時刻に紐づく説明 — 「2026-06-XX に変更」「PR #XYZ で変わった」「コミット XXXXXX で」
トリガー語を避けた言い換えも、指示対象が過去であれば経緯として扱う。例:
- 「もとは〜だった」
- 「当初の意図は」
何を「正当」と判定するか
次に当たる記述は「経緯」に該当せず、コード / docs 本体へ残してよい。git history で補えない情報のため
- 現在の挙動 / 意図の説明 — 「X は Y を保証する」「この関数は Z 用」
- 現在有効な制約 / 不変条件 — 「
modeはreadかwriteのいずれか」「ここで lock を握る」 - 既知の落とし穴 / 警告 — 「
N >= 100で O(N^2) になるため注意」「この path は IPv4 のみ受け取る」 - 設計判断のうち 今も生きている 根拠 — 「順序依存があるため逐次実行」「冪等性確保のため UUID 採用」(過去案との対比ではなく現在の制約)
- 引用 / 外部仕様への参照 — 「RFC 1234 セクション 3.2 に従う」「
man 5 sudoers参照」
判別の核は 時制と指示対象。「現在こうである」を述べる文は残す。「過去こうだった」「過去こうしたから今こう」を述べる文は剥がす。
例
経緯コメント (FAIL すべき)
# もともと Obsidian Sync を使っていたが、サブスク解約のため git clone へ移行。
# SSH key は当時の認証で必要だった。
{
// 廃止理由: 旧 API は rate limit が低かったため v2 に切り替え。
"endpoint": "v2"
}
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.
- 5d ago First seen · 118 lines · 100 tokens per session scan A c14ff877d252
narrative-review is a skill published in the GitHub repository MH4GF/claude-code (2 stars, last pushed yesterday), licensed MIT. It adds 100 tokens to every session and 1,735 once invoked, about $0.0005 per session on Opus 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-08-31.
Other skills, from other repositories
systematic-debugging
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.
local-ai-agents
Build local-first AI agents that run entirely on a developer workstation with Microsoft Foundry Local and Qwen function-calling models. Covers Small Language Models (SLMs), the OpenAI-compatible local endpoint, sandboxed local tools, local RAG with Chroma, local MCP servers, hybrid cloud/local routing, and the…
next-cache-components-adoption
Turn on Cache Components in a Next.js app and resolve the blocking routes it surfaces. Use when the user wants to enable, adopt, or migrate to Cache Components, flip the cacheComponents flag, work through a flood of blocking-prerender / instant validation errors, run the cache-components-instant-false codemod, or…
next-cache-components-optimizer
Drive a Next.js route to instant navigation by setting up an agentic loop, under Cache Components / PPR, on initial load (hard navigation) and client-side navigation (soft navigation). Encode the goal as a failing @next/playwright instant() e2e and work it to green, one verified route at a time; the shipped test then…
next-partial-prefetching-adoption
Turn on Partial Prefetching in a Next.js app and work through the insights it surfaces. Use when the user wants to enable or adopt Partial Prefetching, flip the partialPrefetching flag, opt routes in with export const prefetch = 'partial', audit Link prefetch={true} behavior, preserve existing prefetched UI with…
chronicle
Analyze Copilot session history for standup reports, usage tips, session search, and session reindexing. Use when the user asks for a standup, daily summary, usage tips, workflow recommendations, wants to search or find past sessions by keyword/file/PR, wants to reindex their session store, or asks about deleting…