MCAF: Feature Spec
Trigger On
- add or change non-trivial behaviour
- behaviour is under-specified and engineers are guessing
- tests need a stable behavioural source of truth
Value
- produce a concrete project delta: code, docs, config, tests, CI, or review artifact
- reduce ambiguity through explicit planning, verification, and final validation skills
- leave reusable project context so future tasks are faster and safer
Do Not Use For
- architecture decisions that need alternatives and trade-offs
- tiny typo or cosmetic-only changes with no behavioural impact
Inputs
docs/Architecture.md- the nearest
AGENTS.md - current user flows, business rules, and acceptance expectations
- the
MCAF-ARCH-001canonical slice name and in-repository backend/frontend/contracts/tests/docs paths - the
MCAF-REQ-001requirement, acceptance, ADR, task, test, and evidence traceability contract
Quick Start
- Read the nearest
AGENTS.mdand confirm scope and constraints. - Run this skill's
Workflowthrough theRalph Loopuntil outcomes are acceptable. - Return the
Required Result Formatwith concrete artifacts and verification evidence.
Workflow
- Define scope first: in scope, out of scope, boundaries touched.
- Confirm
MCAF-ARCH-001: choose one canonical slice name and map every applicable backend, frontend, contract, test, infrastructure, and documentation path inside this repository. Mark a non-applicable surfaceN/Awith a reason. - Read
references/requirements-adr-traceability.mdand applyMCAF-REQ-001before implementation. - If the feature doc is missing, scaffold from
references/feature-template.md. - Keep the spec executable:
- stable
REQ-*requirements with type, priority, rationale, pass, and fail conditions - stable
AC-*acceptance criteria mapped to requirements - an explicit ADR link or
N/Awith a concrete reason - main flow
- edge and failure flows
- system behaviour
- verification steps
- Definition of Done
- stable
- For non-trivial implementation, define the
MCAF-AI-001task graph: role/model tier, exact read/write ownership, requirements, dependencies, artifacts, verification, completion state, and join condition. - Maintain the traceability matrix from every
REQ-*throughAC-*, ADR,TASK-*, automated test, and evidence. - Make the spec concrete enough that tests and worker instruction packets can be written without guessing.
- Create or update an ADR before implementation when boundaries, public contracts, data, dependencies, security, deployment, or cross-cutting standards change.
Deliver
docs/Features/feature-name.md- a feature spec that engineers and agents can implement directly
Validate
- rules are testable, not aspirational
- edge cases are captured where they matter
- verification steps match the intended behaviour
- the doc can drive implementation without hidden tribal knowledge
- the feature stays within one repository-wide slice and uses the same canonical name and structure across all applicable surfaces
- every requirement is traceable to acceptance criteria, ADR decision, implementation task, test, and evidence
- every required ADR contains an implementation contract and its status matches reality
- non-trivial multi-agent work records model tiers, disjoint ownership, dependencies, completion states, waiting, and final lead review
Ralph Loop
Use the Ralph Loop for every task, including docs, architecture, testing, and tooling work.
- Brainstorm first (mandatory):
- analyze current state
- define the problem, target outcome, constraints, and risks
- generate options and think through trade-offs before committing
- capture the recommended direction and open questions
- Plan second (mandatory):
- write a detailed execution plan from the chosen direction
- list final validation skills to run at the end, with order and reason
- Execute one planned step and produce a concrete delta.
- Review the result and capture findings with actionable next fixes.
- Apply fixes in small batches and rerun the relevant checks or review steps.
- Update the plan after each iteration.
- Repeat until outcomes are acceptable or only explicit exceptions remain.
- If a dependency is missing, bootstrap it or return
status: not_applicablewith explicit reason and fallback path.
Required Result Format
status:complete|clean|improved|configured|not_applicable|blockedplan: concise plan and current iteration stepactions_taken: concrete changes madevalidation_skills: final skills run, or skipped with reasonsverification: commands, checks, or review evidence summaryremaining: top unresolved items ornone
For setup-only requests with no execution, return status: configured and exact next commands.
Load References
- read
references/requirements-adr-traceability.mdfirst for every non-trivial feature - use
references/feature-template.mdfor scaffolding
Example Requests
- "Write a feature spec for the new checkout retry flow."
- "Document the behaviour before coding this API change."
- "Turn this loose requirement into an executable feature doc."