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 kitchen-engineer42/joharnessburg --skill phase-designgit clone --depth 1 https://github.com/kitchen-engineer42/joharnessburgWrote 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/kitchen-engineer42/joharnessburg/phase-design)<a href="https://agentmods.dev/skills/kitchen-engineer42/joharnessburg/phase-design"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/phase-design/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/kitchen-engineer42/joharnessburg/phase-design"><img src="https://agentmods.dev/badge/skills/kitchen-engineer42/joharnessburg/phase-design.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.00069 | $0.02363 |
| Opus 5 | $0.00034 | $0.01182 |
| Sonnet 5 | $0.00014 | $0.00473 |
| Haiku 4.5 | $0.00007 | $0.00236 |
Grade A, and why
phase-design 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 8d 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 — 134 lines — stays where its author put it; the contents beside it link to each section on GitHub.
phase-design
You are the John-equipped agent designing phases for the user's project. The phases will live in <project>/PLAN.md and drive every loop iteration via [[ralph-loop]].
Phases are suggestions, not enforcement. John's stance is phases-as-skills with template override room — the engine doesn't gate on phase boundaries; the floor is disk-verifiable artifacts (see [[workspace-discipline]]). You're designing scaffolding that helps work decompose cleanly, not laws that punish deviation. Templates may radically reshape the phase list; users may request changes mid-flight; corpora may surprise you. Stay wide.
A phase is a unit of work with three properties:
- An intent. One sentence. "Extract all rules from the regulation corpus." "Build the runtime UI shell." If you can't say the intent in a sentence, the phase is too big or too unclear.
- Disk-verifiable done criteria. Specific paths/files that must exist, with optional content checks. Not "feels done." Not "the agent says it's done." See [[workspace-discipline]]. For fan-out phases that produce knowledge entries, the done criteria should name an expected entry count or range (derived from the corpus survey, recorded in PLAN.md) — that number feeds the reducer's deterministic count gate (
reduce_events.py --expect-entries, see [[event-log-and-reducer]]), which refuses phase advancement on a large shortfall. - A clean compaction point. When you finish a phase, the world is in a state where context could compact (or the session could restart) and the next iteration could pick up cleanly from disk.
Phases that don't have all three are not phases — they're tasks within a phase, or arbitrary stopping points, or something else.
How many phases
For the knowledge phases (knowledge engineering): typically 4-8 phases. The starter from John (parse → survey → schema-design → chunk → extract → rewrite → package) is 7. You can drop or merge — for example, a corpus that arrives pre-chunked skips "parse" and "chunk."
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.
- 8d ago First seen · 134 lines · 69 tokens per session scan A c25882ca0597
phase-design is a skill published in the GitHub repository kitchen-engineer42/joharnessburg (9 stars, last pushed 2mo ago), licensed MIT. It adds 69 tokens to every session and 2,363 once invoked, about $0.0003 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
tackle-issue
Start-of-work triage in this monorepo. Trigger on: a GitHub issue number ("tackle issue 99", "work on #42", bare #N), pasted proposal/spec text ("investigate this", "pressure-test this", "scope this"), or picker phrasing ("tackle the next issue", "what should I work on"). Read-only investigation that tries to falsify…
stale-proposals
Audit this repository's local proposal queue for stale entries: proposals still marked proposed, deferred, or accepted even though the work already shipped, plus old proposals whose subject has become inert. Reconcile proposals against plugin changelogs and first-parent Git history, automatically resolve only…
add-source
Interactively add a new source to feed-sources.md with type inference, https and name-uniqueness validation, and category checking against feed-categories.md. Appends a formatted row to the Active Sources table. Invoke with /feed-hermit:add-source.
source-scout
Gap-driven discovery of new RSS/web sources for feed-sources.md. Interactive runs WebFetch-verify candidates and auto-add them; --scheduled runs queue unverified candidates for operator review (no WebFetch, per the domain-allowlist rule). Complements source-health (removal) with discovery (addition). Invoke with…
plan-to-tasks
Transform a plancreation planv{N}.md into a structured tasks.yaml + per-WP workpackages/.yaml using parallel Sonnet sub-agents. Use after plan-creation finishes when you need execution-friendly task structure.
debt-ops-add
Register a deferred decision in the tech-debt registry. Trigger by judgment, not a marker scan, whenever a future reader would ask "why this way?": an unmade decision, stub, loosened type, bypassed check, swallowed error, a default picked "for now", or a TODO/FIXME/HACK/XXX marker. Trigger immediately whenever you…