FRED
FRED = Feature Requirement Document. One implementation slice per file.
This skill is methodology + generators. The consuming project's entrypoint, index, architecture, and code are authority — never this skill's templates once those files exist.
0. Session start (always)
Before other work this session:
- Find and READ the project agent entrypoint. Prefer, in order:
docs/agent-guides/00-AGENT-ENTRYPOINT.mdAGENTS.md(root ordocs/)- a README / AGENTS.md pointer to the entrypoint
- If found: follow that file. Do not overlay skill defaults on top of it.
- If missing and the user is starting or growing a product/codebase: offer to bootstrap (see references/bootstrap.md). Do not dump templates into an unrelated repo without asking.
- Then read
docs/features/OPEN-FRED-INDEX.mdwhen the task is implementation or “what next.” - Read a FRED file when implementing or specifying that slice. Read architecture docs only as linked from the entrypoint/FRED — not as a substitute for the index.
Do not paste this skill's templates into the conversation as product truth. Generate into the project only during bootstrap, then edit the project copies.
Recommend consuming repos add a one-liner in AGENTS.md or README so teammates without this skill still load the contract:
Agent contract: read docs/agent-guides/00-AGENT-ENTRYPOINT.md at session start.
Typical user asks
| They say | You do |
|---|---|
| Plain-language feature / "add a FRED for…" | Allocate next NNN from the index; write docs/features/{NNN}-….md from the project template |
| "What's the next feature?" / "implement next" | First open index row whose dependencies are shipped (or an allowed fake) |
| "Add a new feature" while implementing in this repo | Spec into a FRED (or deepen a draft) before coding that slice |
Missing entrypoint / docs/features/ |
Offer bootstrap; do not write templates until they agree |
Unrelated "features" of some other product or website: do not hijack. Stay on the current repo's software work.
Git, deploy, PRs
Follow the project entrypoint. If it is silent: do not commit, push, open PRs, or deploy unless the user asks. Entrypoint wins.
Authority
| Layer | Owns |
|---|---|
| Product / architecture docs (as linked from the entrypoint) | Product intent, stack/layout for this repo |
| Code | What actually runs |
| FREDs | How to implement one slice |
| Open index | Sequence, status, dependencies — not filename sort |
IDs (NNN) are stable identity. Execution order is the index table.
Do not invent shipped surfaces. Label local proposals as proposals. Docs browsing ≠ live provider/SDK validation. Do not claim third-party APIs from training memory — verify installed versions and current docs. Record blocked probes honestly.
FRED files
- Path:
docs/features/{NNN}-{kebab-slug}.md - One slice per file. Next
NNNfrom the index, not from guessing. - Header: status, dependencies, derived-from, specification references.
- Depth: drafts may state outcomes/acceptance; before coding, fill feature-owned contracts (schema, events, guards, timeouts, recovery) against implemented dependencies.
- Close-out: follow the checklist below. Do not leave a stub in
docs/features/.
Full skeleton (all 11 numbered sections): templates/feature.md. Methodology: references/methodology.md. Workflow: references/agent-workflow.md.
Close-out checklist
When the slice is shipped (acceptance done, or the user asked to close):
- Move
docs/features/{NNN}-{slug}.md→docs/features/implemented/(same filename). No stub, redirect, or leftover copy in the open folder. - Fix links that still use the old path: the moved FRED (relative
../vs../../),OPEN-FRED-INDEX.md,implemented/README.md, other FREDs, the agent entrypoint, architecture/README pointers. - Index: drop the open-table row; add a Recently closed line (date + notes); bump Open / Implemented header counts if present; refresh the Updated blurb.
- DAG: if the index has mermaid/flowchart, move that ID off the open chain (shipped side or drop).
- implemented/README.md: add a Closed-table row linking
./{NNN}-{slug}.md.
Illustration only (not a required script):
mv docs/features/NNN-slug.md docs/features/implemented/
rg -n 'NNN-slug\.md|docs/features/NNN-slug' --glob '*.md'
Project copies win: templates/implemented-README.md, references/methodology.md.
Optional patterns (use when they fit; not law)
- Simulator / fake adapter before live third-party writes.
- Labeled fixtures for UI/modules that are not real yet.
- Feature-owned schema vs shared contracts — later slices own their tables; do not migrate the world in one FRED.
- Cross-cutting controls (pause, budgets, retention) ship with the feature that needs them, not as folklore.
- Human operator checklists for secrets, DNS, dashboards — do not pretend the agent can complete those.
Bootstrap (only if FRED docs are missing)
Generate from templates with {{PLACEHOLDERS}} filled from this repo. Never copy another product's FREDs.
Creates:
docs/agent-guides/00-AGENT-ENTRYPOINT.mddocs/features/template.mddocs/features/OPEN-FRED-INDEX.mddocs/features/implemented/README.md- optional root
AGENTS.mdpointer
Details: references/bootstrap.md.
Do not
- Treat this skill as product/stack law (no required Next/Clerk/Neon/etc.).
- Override existing FRED docs with skill defaults.
- Encode another product's hierarchy, publication order, or FRED 001–N contents.
- Trust remembered SDK shapes over lockfile + docs.