metrics — quantify a project's token/cost profile
Surfaces the numbers an audit should give you, framed around cost. A multi-stack project (website + game server + client + tools) has no single number, so everything is broken down per component.
python -m skills.metrics.cli <project>
python -m skills.metrics.cli <project> --porthos reports/<proj>/audit-report.json --json
What it reports
- LOC by language and by top-level component (with bars).
- Duplicate-function groups (stdlib AST, free).
- Directive health + always-on context cost: instruction tokens × turns — e.g. a 2.3k-token CLAUDE.md ≈ 70k tokens/session just re-sending rules.
- Local-routing posture: backends present → cheap work at 0 cloud tokens.
- Skill-search tokens avoided by
find_skills(catalog × ~150 tok). - The audit's own cost:
analysis_llm_tokens = 0— the scans are deterministic Python; only synthesis by the orchestrating model costs tokens. - Deep audit summary (health / dead code / secrets) if a Porthos
audit-report.jsonis reachable (.botte/or--porthos).
Why this framing
The headline an audit should produce: "analysis cost 0 tokens; your always-on instructions cost ~70k/session; local routing can move cheap work to 0 cloud tokens." That's the number that justifies the toolkit.
Exposed via [[llm_mcp]] as the metrics tool. Related: [[infra_advisor]]
(auto audit), [[directives_audit]], [[skill_finder]], [[bootstrap]].