Drop-in starter kit for any multi-module project. Wings/rooms/drawers decentralized docs, task routing, dev-team workflow, cross-cutting reference layer.
p3-fenix-3.2.0/
├── README.md ← this file
├── runbook.md ← main runbook (full operational details)
├── LICENSE
├── P-3 (Fenix)- READ BEFORE FIRST.md ← full reference for commands/agents/workflows
├── scripts/
│ ├── setup.sh ← installer (manifest-driven, idempotent)
│ ├── install-online.sh ← one-command online installer
│ └── upgrades/ ← pairwise <from>-to-<to>.json upgrade configs
├── claude-commands/
│ ├── fx-init.md ← /fx-init
│ ├── fx-info.md ← /fx-info
│ ├── fx-doc.md ← /fx-doc audit | update | freshness
│ ├── fx-task.md ← /fx-task <description> | new <description>
│ ├── fx-agent.md ← /fx-agent rules | list
│ └── fx-uninstall.md ← /fx-uninstall (manifest-driven removal)
├── claude-agents/
│ ├── architect.md ← designs implementation plans (read-only on code)
│ ├── architect-rules.md ← architect behavioral rules
│ ├── worker.md ← executes plans (only writer of project code)
│ ├── worker-rules.md ← worker behavioral rules
│ ├── tester.md ← reviews worker output (read-only on code)
│ ├── tester-rules.md ← tester behavioral rules
│ ├── module-auditor.md ← per-module stub-fill + staleness (used by /fx-doc)
│ ├── module-auditor-rules.md ← auditor behavioral rules
│ ├── module-discoverer.md ← per-module structure proposal (used by /fx-init)
│ ├── module-discoverer-rules.md ← discoverer behavioral rules
│ ├── freshness-scanner.md ← frontmatter staleness check
│ ├── freshness-scanner-rules.md ← scanner behavioral rules
│ ├── reference-linker.md ← auto-links new reference/ files
│ ├── reference-linker-rules.md ← linker behavioral rules
│ └── _topology.md ← shared vocabulary reference (not auto-loaded)
└── templates/
├── CLAUDE.md ← repo-root file with bootstrap + routing rule
├── DISCLAIMER.md ← docs/DISCLAIMER.md (editable bootstrap ritual)
├── info.md ← docs/info.md template
├── STYLE.md ← docs/STYLE.md (conventions)
├── hint_index_map.md ← docs/hint_index_map.md (with Reference docs section)
├── task-router.md ← docs/task-router.md stub
├── wing-README.md ← per-module wing template
├── room.md ← room template
├── drawer.md ← drawer template
├── reference.md ← reference doc template (with extended frontmatter)
└── task.md, architect-plan.md, worker-log.md, tester-review.md, outcome.md, doc-audit.md
← dev-workflow artifact templates
- Delta-gated audits —
/fx-doc audit/updatenow spawn amodule-auditoronly for modules whose documented sources actually changed, or that still hold unfilled stubs. Unchanged modules are settled from a cheap cache with no subagent. On a stabilized codebase this turns "N auditors every run" into "0–2 per PR." docs-meta/.fenix-cache.json— a derived index of every doc's frontmatter (documents:,last_reviewed_commit,is_stub). The orchestrator decides who to audit from one cheap per-docgit logpass (each doc against its ownlast_reviewed_commit) instead of reading wings. Re-sync any time with/fx-doc audit --rebuild-cache.- Diff-scoped staleness — when a doc is stale, the auditor reads
git diff <last_reviewed_commit>..HEAD -- <documents:>instead of re-reading the whole module. - Cheaper defaults —
/fx-doc freshnessis the routine, code-free "what's stale" check;/fx-doc update --only <module>is the targeted expensive path;--allforces a full re-audit;--suggest-drawersgates the unconditionalsrc/walk. - Reliable manifest writes —
setup.sh's manifest append passes values through the environment (no fragile string interpolation) and fails loudly instead of swallowing errors, so/fx-uninstallnever skips files it should have recorded.
- Karpathy-aligned agent rules — architect surfaces assumptions and resists scope creep, worker resists overcomplication, tester demands verifiable success criteria. Adapted from the Karpathy guidelines skill (MIT).
- AI-optimized doc output —
module-auditoremits bullets + verbatim signatures instead of prose. Faster for agents to scan; smaller token footprint. - 70-line cap on doc files — wing READMEs, rooms, and drawers each capped at 70 lines. Oversize wings split into thin indexes + per-component drawers.
/clearnudge on task close —/fx-task newends with a prompt to clear context, so finished tasks don't bleed tokens into the next conversation.- Reshaped templates —
wing-README.md,room.md,drawer.md, andSTYLE.mdupdated to match the AI-optimized format.
- All commands prefixed with
fenix-— no collision with built-ins, consistent namespace. - Dev-team agents —
architect,worker,testerfor the architect → worker → tester workflow via/fx-task new. - Per-agent rules files — every agent has a
<name>-rules.mdsibling for editable behavior. Run/fx-agent rulesto see them. - Reference docs layer —
reference/folder for cross-cutting docs (architecture, decisions, conventions). Auto-linked into the index and router on/fx-doc updatevia thereference-linkersubagent. - Extended frontmatter — reference files carry
applies_to_categories:andapplies_to_wings:to bind them to the task router.
Run from the root directory of your project — the same directory where you launch Claude Code (
claude). The installer writes into$(pwd).
curl -fsSL https://raw.githubusercontent.com/ablack13/p-3-fenix/main/scripts/install-online.sh | bashThis downloads the latest release zip into a temp dir, extracts it, runs the installer against your repo root, and cleans up after itself.
Pin a specific version:
FENIX_VERSION=3.2.0 bash -c "$(curl -fsSL https://raw.githubusercontent.com/ablack13/p-3-fenix/main/scripts/install-online.sh)"Want to inspect the installer before running? Read it at https://github.com/ablack13/p-3-fenix/blob/main/scripts/install-online.sh.
curl -LO https://github.com/ablack13/p-3-fenix/releases/download/3.2.0/p3-fenix-3.2.0.zip
unzip p3-fenix-3.2.0.zip
./p3-fenix-3.2.0/scripts/setup.sh
rm -rf p3-fenix-3.2.0 p3-fenix-3.2.0.zipOpen Claude Code in this project and run:
/fx-init
It scaffolds wings, drafts info.md, populates CLAUDE.md placeholders, generates task-router.md, and creates reference/.
- Copies the kit into
.claude/,docs/,docs-meta/,reference/,tasks/and writes a freshCLAUDE.md. - If your project already has a
CLAUDE.mdor.claude/folder, it moves them aside into_claude_backup/(with anIGNORE_THIS_FOLDER.mddisclaimer so Claude leaves the backup alone). - Records every action in
.fenix-manifest.jsonso/fx-uninstallcan reverse the install cleanly.
Two ways:
From inside Claude Code (recommended for 3.1.0+):
/fx-init upgrade
Reads .fenix-manifest.json, queries GitHub for the latest release, shows a plan, and runs the installer on approval. Pin a target version with /fx-init upgrade 3.2.0.
From the shell — re-run the installer (one-command or manual) and it auto-detects the upgrade:
- The installer reads
.fenix-manifest.jsonto detect your current version. - It loads
scripts/upgrades/<from>-to-<to>.jsonfor the transition (e.g.3.1.0-to-3.2.0.json). - Files marked
replaceare overwritten with the new version. The previous copy is moved to_claude_backup/<new-version>-upgrade/<path>so you can diff or recover. - Files marked
preserve(yourCLAUDE.md,docs/info.md,docs/task-router.md,docs/hint_index_map.md) are left untouched. - New files added in the target version (e.g.
docs/DISCLAIMER.mdin 3.1.0) are installed only if missing. - Files removed in the target version are moved to the same backup folder.
If no upgrade path exists between your installed version and the kit's version, the installer stops with an error rather than silently merging.
/fx-uninstall walks the manifest, removes everything Fenix installed, restores _claude_backup/ contents to their original locations, and deletes the manifest. Uninstall does not revert an upgrade to the previous version — it removes Fenix entirely. To restore pre-upgrade copies of replaced files, look under _claude_backup/<version>-upgrade/.
unzip,python3(manifest writes), bash 4+ or zsh.
If you keep the zip / unzipped folder in your project root briefly during install, make sure they don't get committed:
# P-3 (Fenix) distribution artifacts (clean up after install)
p3-fenix-*.zip
p3-fenix-*/
# Per-install backup (only present after install on a non-empty repo)
_claude_backup/
# Derived /fx-doc cache (rebuilt on demand) and audit drafts
docs-meta/.fenix-cache.json
docs/_pending/
# Per-user Claude Code settings
.claude/settings.local.json
| Question | Default |
|---|---|
| Module path prefix | Auto-detect from manifest |
| Per-module docs folder | docs/ |
| Auditor scope | Delta-gated — only modules with changed sources or stubs; --all for a full re-audit |
| Drawer suggestions | Off — enable per run with --suggest-drawers |
| Staleness gate | Per-doc git log since each doc's last_reviewed_commit, on every audit (cheap, intrinsic); --stubs-only to skip. Standalone report: /fx-doc freshness |
| Re-stamp authority | Anyone touching the module |
/fx-init on partial repos |
Leave existing files, only fill gaps |
| Worker write authority | Worker only — architect and tester are read-only |
| Tester escalation | Human-only — no auto-retry |
| Reference linking | Auto via /fx-doc update, gated by Phase 2 approval |
To change a default, edit runbook.md or the relevant agent rules file.
MIT — see LICENSE.
Copyright © 2026 Dumb Quokka. You may use, copy, modify, and redistribute this kit, provided the copyright notice and license text are preserved. Original repository: https://github.com/ablack13/p-3-fenix.
Per-agent behavioral rules (architect, worker, tester) include guidance adapted from the Karpathy guidelines skill by multica-ai (MIT licensed). Inline attribution is preserved in each claude-agents/*-rules.md file. The original skill derives from Andrej Karpathy's observations on LLM coding pitfalls.
Last updated for: 3.2.0