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 commands/seob717/nunchi/reportgit clone --depth 1 https://github.com/seob717/nunchiWrote 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/commands/seob717/nunchi/report)<a href="https://agentmods.dev/commands/seob717/nunchi/report"><img src="https://agentmods.dev/badge/commands/seob717/nunchi/report.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 | $0.00015 | $0.00668 |
| Opus 5 | $0.00008 | $0.00334 |
| Sonnet 5 | $0.00003 | $0.00134 |
| Haiku 4.5 | $0.00002 | $0.00067 |
Grade A, and why
report 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 3d 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.
What it actually says
/nunchi:report
-
Run from the project root:
PYTHONPATH="${CLAUDE_PLUGIN_ROOT}" python3 -m core.report -
Organize the output into a table and explain the following:
- Rules with a high deny (delivery) count: the regex may be too broad and over-triggering — suggest narrowing the pattern.
- Rules that never triggered: these are dead rules — either the trigger is wrong or the action never happened. Suggest checking them. A dead rule can also mean trigger drift: the team's tooling changed (e.g.
gh→glab) without the source document changing, so nothing else flags it — this stat is the only signal. - 재컴파일 후보 lines: rules whose
sourcedocument is newer on disk than the compiled rule file. Content-only refinements need no recompile (deliveries read the source fresh every time), so relay this as a prompt to check: if the change added a rule for a new action, rebound a rule to a different action, or changed strength, run/nunchi:compile <source path>. Caveat: mtimes are approximate (a fresh clone/checkout resets them), so absence of the line is not proof of freshness. - Column semantics by strength:
require-readrules should show deny ≈ 통과 (each delivery followed by a passing retry — a deny with no matching 통과 means the model changed course instead of retrying).blockrules always show 통과 0 (no retry pass exists).injectrules only ever count in the 주입(inject) column — they never deny. - rearm line: if a "컴팩션 재활성화(rearm)" line appears, that's how many times compaction reset delivery state — deliveries after it are re-deliveries, not over-triggering.
- [컨텍스트 절약 추정] line: session-start savings if the rule source docs were moved out of CLAUDE.md
@imports(docs total vs one-line rule bodies), plus actual delivery spend from the logs. Caveat to relay: the saving only applies to docs whose content is action-bindable — a doc that still carries always-on guidance should keep its@reference, and delivered bytes are approximated with current doc sizes. - Session count semantics: if the line mentions "InstructionsLoaded 훅 전수 관측", sessions since that hook was adopted are counted exactly (one
session-startlog line per session); sessions from before adoption only appear if they had a delivery, so the total is still a lower bound for the pre-adoption period.
-
If there is no log, report that "there are no delivery records yet."
-
Only if the report shows the mechanism working (at least one rule delivered, no anomalies to flag), end with this single line (once — never repeat it later in the session):
nunchi delivered your rules on time. If that's worth a ⭐: https://github.com/seob717/nunchi
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.
- 3d ago First seen · 20 lines · 15 tokens per session scan A d501ecd36dcc
report is a command published in the GitHub repository seob717/nunchi (8 stars, last pushed 7d ago), licensed MIT. It adds 15 tokens to every session and 668 once invoked, about $0.0001 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 commands, from other repositories
patterns
List makoto's integrity pattern catalog (read-only).
show
Read makoto's results ledger by key (read-only).
presence-reset
Wipe presence state for the current project, all projects, or specific subsystems. Asks for confirmation before destructive action.
presence-doctor
Show presence diagnostic report. Active preset, warnings, error counts, state sizes, integrity status. Run this when something seems off.
presence-status
Quick presence status. Active preset, current repo id, model size, recent reverts. Pass --zerotrust for the full Zero-Trust controls checklist.
presence-curate
Compress the project model. Invokes the model-curator subagent to consolidate observations in model.md into a tighter form.