Project Spec
When to Use
When all Research decisions are approved and the project needs a Spec.
Inputs
- Project path (
{Dept}/Projects/{Project}/) - Vision document
- Research document
Prerequisite
HARD GATE: Verify {Project}_Vision.md exists and contains R-numbered Requirements (R1, R2, …) and V-numbered Success Criteria (V1, V2, …). If the file is missing or lacks R-numbers/V-criteria, STOP and report: “Vision document is missing or not a valid Vision (no R-numbered requirements found). Create the Vision first.”
Context Boundary
Read only: Vision and Research. Plans and State do not exist yet.
Procedure
- Read Vision and Research documents
- Verify all decision points in Research are resolved. If there are pending decisions, let the user know and stop.
- Copy
Forge/Forge_Project/Skills/Project_Create/templates/Spec_Template.mdto{Project}_Spec.mdin the project folder - Update
{Project}_Phase.md: setPhase: Spec_Started - Write the Spec as a declarative description of the ideal final state, organized by major areas
- If there are procedural steps in Research that you want to refer to, put the minimum information required in a file in
{Project}/References/and link to it - Validate: every Requirement is addressed, the Spec is self-contained, it describes what not how, and exact content from Research is linked via
References/not paraphrased - Add sidebar entry by spawning the Page Manager bot via
spawnAgentwith{ botGroup: 'forge', botHandle: 'page-manager' } - Set document status to
review - Update
{Project}_Phase.md: setPhase: Spec_Completed - Build, commit, push
- Proceed directly to Spec_Eval — do not wait for user approval before evaluation. Spawn the Project Evaluator.
- After Spec_Eval converges (no findings, or all findings auto-resolved), present the final Spec to the user for approval
- Iterate on any remaining user feedback
- Set document status to
approved - Update README.md and AGENTS.md
- Build, commit, push
Rules
- Declarative, not procedural — describes the target state and behaviors, not the steps to build them. Describing what a command/tool produces (inputs → outputs → guarantees) is behavioral description, not implementation procedure
- Self-contained — a reader can understand the target system from the Spec alone and linked references
- Exact content preserved — when Research or Vision specifies exact text (prompts, configs, messages), link to it via
References/rather than paraphrasing. A reader must never need to re-invent precise content from a description - May reference the Research document. Extract the exact needed content into the Spec or a
References/file — only what the Spec requires, nothing more - Updated retroactively when evaluation reveals necessary deviations (Spec is evergreen)
- Can be repurposed as permanent documentation after project completion