Design: write spec.md
The design stage converts an accepted intent.md into a committed spec.md with requirements, architecture, acceptance criteria, and flagged policy concerns. A product owner accepts the outcome, while technical or policy owners resolve high-risk questions before an implementation plan or application code is allowed to start.
Traditional: Requirements and design are separate phases run by separate teams. Analysts formalize the idea; designers parse those back into a design. The separation exists for accountability, but it is slow and lossy.
AI-native: Both phases happen in one prompted session. The agent takes intent.md and produces a requirements and design spec, constrained by the organization’s skills, with areas of concern flagged.
For UI work, create a mock from intent.md with an approved design tool, configured Figma integration, or image input. Iterate, record human acceptance, then hand the versioned artifact to the coding agent. The four-artifact composition lives in the Design pipeline.
Before you begin
Section titled “Before you begin”- An accepted
intent.md - Brand, security, compliance, and UX policies written as skills
- Product-owner access to Claude, Cursor, or Codex — no engineering skill required
Prerequisites: Plan (intent.md) and at least one policy skill.
Produce the spec
Section titled “Produce the spec”-
Open a session with the organization’s skills available and attach
intent.md. -
Point the prompt at
intent.md, name the constraints, and demand flagged concerns.Run this by hand at first. Then encode it as an organization-level slash command or skill. From there, make acceptance of
intent.mdthe trigger: a non-interactive job fires on the merge, runs the pass with skills loaded, and opensspec.mdas a pull request. The product owner’s first involvement is then the review. -
Review the spec against the idea.
Does the spec solve the stated problem? Are the open questions from
intent.mdanswered or carried forward? -
Work through flagged concerns first.
These are the points an analyst would have escalated. Resolve each one with its policy owner before engineering sees the spec.
-
Commit
spec.mdalongsideintent.md.The file pair records what was asked for and what was decided.
-
Decide whether the spec and intent progress to build.
Consult a technical lead for anything the organization classes as higher risk. A human teammate always makes this call. Accepting the spec starts plan mode in Build.
Use the following prompt (replace nothing except the attached file):
Read the attached intent.md and produce a requirements and design specfor integrating it into our existing codebase. Apply the skills availableto you so the plan conforms to our brand guidelines, security policies,and UX standards. Document the spec fully as spec.md, ready to hand tothe engineering team. Describe clearly any areas of concern, especiallywhere you cannot satisfy contradicting policies.Stay in plan mode (Shift+Tab) until the spec is accepted:
Read intent/FEATURE.md. Produce spec.md using our skills for brand,security, and UX. Flag contradictions. Do not edit application code.Stay in Ask or Plan mode. Attach intent.md and the skill files under .cursor/skills/ (Cursor also reads .claude/skills/).
Use /plan and attach intent.md. Encode the same policy as skills under .agents/skills/ or ~/.agents/skills/.
Governance
Section titled “Governance”Live policy is read and applied while the spec is written. Skills are constraints on the spec. The spec, the prompt that produced it, and the skill versions in force are all logged in version control. The product owner signs off the spec and routes flagged concerns to named policy owners.
A skill is advisory. A policy that must always hold also needs a deterministic check later (a hook or a review pass). See Build and Deploy.
Verify
Section titled “Verify”spec.mdis committed next to the acceptedintent.md.- Every flagged concern has an owner or is carried forward as an open question.
- A human has accepted the spec before any implementation plan starts.
Leading indicator: elapsed time between the intent.md commit and the spec.md commit for the same change.
Lagging indicator: requirements rework after build starts — spec.md commits dated after the first plan.md commit for the same change.
Apply the play in your tool
Section titled “Apply the play in your tool”Hand the accepted spec to build
Section titled “Hand the accepted spec to build”Hand the accepted pair to engineering and continue with Build.