Guidance for agents working on this repository — what it is, the philosophy behind it, and how to improve its skills and assets.
A personal PRP (Product Requirement Prompt) framework — an agentic-engineering workflow packaged as Claude Code Agent Skills. It is not an application: its "source" is prompts and assets — skills, agents, templates, and curated docs.
PRP = PRD + curated codebase intelligence + agent/runbook — the minimum context an AI needs to ship a vertical slice of working software in one pass.
This framework is load-bearing: it's used on real, active projects every day. Treat changes accordingly — preserve behavior, stay conservative, and don't destabilize working skills for the sake of elegance.
The principles that govern everything here:
- Context is King — give the agent all the context it needs (inline, in references, or fetched at runtime), curated, never dumped.
- Validation loops — workflow skills ship executable gates the agent loops on until green; prefer an authoritative external check over a self-reported "done."
- Information dense — real patterns, real
file:line, real commands; no filler, no restating what the model already knows. - Progressive success — ship the lean spine first, validate, then enrich.
- Prescribe the craft, not the content — be strict on how a skill is built; stay agnostic about what a given skill or its output should contain (that's per-project, the author's call). The one deliberate escape hatch is a free-form "Agent Notes" canvas.
- One source of truth — a skill lives in one place; if it must exist in two, generate/sync one from the other rather than hand-maintaining both.
- Structure implies a maintainer — never add a stateful section (status markers, lifecycle, amendments) that nothing keeps current.
- Fidelity first — when porting or refactoring, preserve behavior exactly and prove it, then optimize.
.claude/skills/— the skills, and the working source of truth. Each is a self-contained Agent Skill: aSKILL.mdspine plus optionalreferences/,templates/,scripts/.~/.prp/<key>/— per-project artifacts and runtime state, stored out-of-repo and shared across the project's worktrees. Artifact-writing skills resolve it with the canonical inline convention block;$PRP_HOMEoverrides the store root.plugins/prp-core/— the same skills + agents (+ plugin-only hooks) packaged as a distributable plugin. Itsskills/andagents/are generated from.claude/byscripts/sync_plugin.py— never edit them directly; edit the.claude/source and regenerate. The script owns intentional launcher-path rewrites for bundled skill scripts and excludes personal agents (gpui-researcher).hooks/,README.md, and.claude-plugin/are plugin-only and hand-maintained..agents/skills/,.codex/agents/— the OpenAI Codex CLI render of the pack, also generated byscripts/sync_plugin.py— never edit directly. Skills minus the Claude-only ones (prp-orchestrate,prp-meta-skill,prp-research-team), with Claude-isms rewritten (Task-tool dispatch → "spawn the X subagent",prp-core:namespace dropped,/prp-x→$prp-xmentions, an Arguments note replacing$ARGUMENTSsubstitution); agents converted to Codex custom-agent TOML..claude/agents/,plugins/prp-core/agents/— advisory review/research subagents. Report-only by prompt (they never modify files or commit), not enforced viatools:allowlists.claude_md_files/— framework-specificCLAUDE.mdexamples (Rust, Python, Node, React, …).old-prp-commands/— the retired slash-command generation, including its oldPRPs/templates/andPRPs/ai_docs/. Reference only — do not maintain or extend it.
- Author or refactor with
prp-meta-skill(/prp-core:prp-meta-skill). It encodes the craft: leanSKILL.md, detail inreferences/, output shapes intemplates/, a third-person trigger-richdescription, an imperative body, no duplication, and self-containment (no cross-skill file references). - Classify the skill type (workflow / artifact-generator / knowledge / tool-wrapper) and apply only the principles that fit — don't force phases or validation loops onto a knowledge skill.
- Regenerate the distribution targets (Claude plugin + Codex render) whenever you touch a skill or agent:
python3 scripts/sync_plugin.py(verify with--check). - Bundled scripts must be location-agnostic — derive the project root from git/cwd, never from
__file__; the script operates on the user's project, not the skill directory. - Validate the change: skills are markdown (nothing to build);
prp_loop.pymust passpython3 -m py_compile;python3 scripts/sync_plugin.py --checkmust pass; the real test is triggering the skill and exercising it end-to-end.
- Agent naming: skills always reference the pack's subagents with the plugin namespace —
prp-core:code-reviewer,prp-core:codebase-explorer, … — never bare names. This assumes the prp-core plugin is enabled wherever the skills run (including this repo). - Commits & PRs: conventional style (
feat(prp-core): …,refactor(…): …), written as a human would — no AI attribution, noCo-Authored-By: Claude. - Branches: work on a feature branch;
mainanddevelopmentare the primary branches and are kept in sync. - Contributing: see
CONTRIBUTING.md— changes are scrutinized because the skills are load-bearing.
- Don't treat this as an application — there are no app build/test/deploy gates to add here.
- Don't maintain or extend
old-prp-commands/. - Don't break a working skill's behavior for a refactor — fidelity first.
- Don't add cross-skill file references — it breaks self-containment and the plugin sync.