Phase 6 of 6

Run /visionaire:start

15–50 executable specs per session. $20 each. Everything your developer needs to open on Monday morning.

Takes the approved architecture and translates it into implementation-ready feature contracts — given/when/then acceptance criteria, explicit scope boundaries, dependency ordering — one file per feature, in the order they should be built.

Start my spec session — $297
$297 early access — first 100 builders  ·  Becomes $447 after
See how it works  →
One payment. Keep it forever. Runs locally. No telemetry.
06
Features
F-001...F-N
The last gate before implementation begins.
F-001-user-authentication.md
FEATURES-outline.md
ARCHITECTURE.md
1# F-001 · User Authentication — ScopeGuard
2Type: Full-stack · Status: Draft · Journey: First sign in
3
4## Scope
5In: email/password sign in, session creation, sign out
6Out: OAuth, password reset (F-007), 2FA (post-v1)
7
8## Dependencies
9None — first feature in dependency chain.
10
11## Acceptance Criteria
12Given a user submits valid email and password
13When the sign-in form is submitted
14Then a session is created and user sees their dashboard
15
16Given a user submits an unrecognized email
17When the form is submitted
18Then an inline error appears, no session is created
19
20Given an authenticated user closes and reopens the app
21When fewer than 30 days have elapsed
22Then session is restored, no re-authentication required
23
24✓ WHAT-only — no implementation details
25✓ Given/when/then — observable, not subjective
26✓ Scope boundary explicit — no ambiguity
27✓ All 10 contract criteria satisfied
28→ F-001 APPROVED · F-002 may begin
If you skip this phase
  • You will write tickets that seem clear to you and are genuinely ambiguous to everyone else.
  • Your developer will make reasonable implementation choices that aren't what you wanted.
  • You will not find out until review, at which point changing it costs more than building it right did.

None of this is theoretical. These are the patterns that show up every time.

Developers interpret ambiguous tickets. You get something that works but isn't what you meant.

Architecture defines the system. It doesn't tell a developer what to build first, where the scope ends, or what "done" means for each piece of work. Every gap in that handoff becomes a decision made in code — fast, invisible, and expensive to revisit once it's been shipped.

Scope confusion at velocity
Product says: "Build user management." Three engineers interpret it three different ways. Week 3: a 90-minute alignment meeting to reconcile three implementations of the same vague requirement. No code ships. The spec that should have existed was six lines. It would have saved six hours — and three weeks of divergent code.
Dependencies discovered mid-build
Day 2 of "Export Dashboard Data": the feature requires Report Generation, which requires Data Aggregation Service, which doesn't exist yet. Three options — scope explosion, timeline collapse, or a workaround that needs rewriting. The dependency was in the architecture. Nobody named it in a feature spec. Nobody ordered it.
Acceptance criteria nobody can measure
"User can filter project list." The engineer implements it. QA passes it. It ships. Users complain: can't combine filters, can't save presets, too slow. "Dashboard should be fast" is not a test. "Dashboard renders all widgets within 2 seconds on a 4G connection" is. One is a hope. The other is a gate.
Implementation leaking into requirements
Your feature spec says: "Add a POST /api/login endpoint. Use bcrypt." Six months later you need Argon2 for security compliance. The spec explicitly mandated bcrypt. Requirements and implementation are now coupled. Changing the implementation means updating the requirements — every one that referenced it.
AI agents that halt mid-feature
You pass an agent: "Build the complete admin system." The context window fills after the first three files. Partial implementation, broken state, no clear stopping point. You didn't have an execution problem — you had a scoping problem. Features too large for context can't be implemented in one pass. Good scoping is a prerequisite for autonomous implementation.

3–8 hours of rework per ambiguity gap. A typical handoff from architecture to implementation carries 12–20 unresolved gaps. That's a sprint before a line of real code ships.

From approved architecture to implementation-ready specs — without losing the decisions that led here.

The Features Phase reads what the previous five phases produced and converts the system design into concrete, ordered, testable work units.

Before Features
ARCHITECTURE.md approved build user management scope unclear order unclear done = ? agent context overflow dependencies assumed
F-001...F-N
F-001 — auth. No deps. Acceptance criteria defined.
F-002 — scope baseline. Depends on F-001.
F-003 — change tracking. Depends on F-002.
Out of scope — time tracking, invoicing, SSO deferred.
Stage gate — all 10 criteria PASS before build begins.

What every spec is required to contain — and what it's not allowed to say.

WHAT is required. HOW is forbidden. Scope boundaries explicit. Dependencies named and ordered. Acceptance criteria observable — not a hope, a gate. These rules are enforced by the stage gate, not by convention.

01
Context window as a hard constraint
Every feature is scoped to fit within 180k tokens of context. If a feature is too large, it gets split into sub-features with explicit dependencies. Implementable is a requirement, not a preference — it is what makes autonomous agents work.
02
One feature per file — always
No combining. No grouping for convenience. F-001-user-authentication.md and F-002-scope-baseline.md are always separate files. This rule exists because dependency tracking, review, and implementation sequencing depend on it being non-negotiable.
03
Dependency ordering via numbering
F-001 before F-002, F-002 before F-003. Feature numbers express dependency sequence. If F-003 depends on F-001, that relationship is explicit — in the number and in the Dependencies section. Ordering is never left to developer judgment.
04
WHAT-only specification
No task lists, no database schemas, no API endpoint definitions, no file paths, no framework-specific patterns. Features define what must be built. Implementation decides how. This boundary is mechanically enforced in the stage gate — any HOW in a feature spec triggers REJECTED.
05
9-section feature contract
Every feature follows the same complete template: header, scope, dependencies, user interaction, constraints, acceptance criteria, assumptions, examples, related documentation. No section is optional without an explicit declaration. Missing sections trigger rejection.
06
All-or-nothing review verdict
All features are reviewed together. If any single feature fails any single criterion, the entire batch is REJECTED. No partial approvals. No "mostly good." The implementation team receives complete specifications — or nothing at all.
07
Autonomous generation from approved docs
No outline approval loop. Unlike earlier phases that required your active input, Features are derived from already-approved documents. The agent reads Product Brief, UI/UX, and Architecture — then produces final feature files directly. You review the result, not the process.
08
Observable, testable acceptance criteria
"Dashboard should be fast" fails the review. "Dashboard renders all widgets within 2 seconds on a 4G connection" passes. Every acceptance criterion can be independently observed and verified — no subjective interpretation required, no developer discretion in what counts as done.
The last gate before implementation starts

Feature ambiguity costs 3–5 weeks of implementation misalignment.

Every unresolved scope question, every unnamed dependency, every vague acceptance criterion becomes a decision made in code under pressure — and a conversation weeks later about whether to rewrite it.

Start my spec session — $297
$297 early access — first 100 builders  ·  Becomes $447 after

Architecture to feature specs in 4 steps.

The agent reads the three approved documents — Product Brief, UI/UX, Architecture — and derives the complete, ordered feature set without requiring your input during generation. You review the output, not the process.

01

Read all approved documents

The agent reads BRIEF.md, UIUX.md, and ARCHITECTURE.md completely. It extracts user-facing capabilities from the journeys, system capabilities from the architecture components, integration requirements, constraints, and the explicit out-of-scope decisions from each document.

02

Identify features and dependency order

Distinct, independently testable units of work are identified. Each feature must deliver incremental value, fit within 180k token context, and have explicit prerequisite relationships. Features are sequenced — F-001 before anything that depends on it. No circular dependencies pass this step.

03

Write the 9-section feature contracts

Each feature receives the full template: header, scope with explicit in/out, dependencies, user interaction with all states, constraints traced to UIUX.md or ARCHITECTURE.md, observable acceptance criteria, assumptions, examples marked illustrative, and related document links. WHAT-only language enforced throughout.

04

Stage gate review and verdict

An autonomous review agent evaluates every feature against all 10 contract criteria. If any feature fails any criterion — even one — the entire batch is REJECTED. The writer revises and resubmits. APPROVED means all criteria pass across all features. Implementation can begin immediately.

Final Stage Gate

This is the last formal gate in the Visionaire workflow. Features Review APPROVED means implementation can begin with zero ambiguity — scope defined, dependencies named and ordered, acceptance criteria testable, no HOW embedded in the requirements. If the gate rejects, the batch is revised and reviewed again. Nothing goes to implementation on an incomplete spec.

What happens when the stage gate rejects — and why that's the point.

Rejection is precision. It names the exact gap that would have become a sprint of rework. Here's what that looks like in practice.

Scenario 01

The stage gate rejects a feature you thought was clear

The feature seemed obvious: "Change Request Tracking." The agent wrote it. You read it — looks fine. The stage gate comes back REJECTED: "Acceptance criteria contain implementation detail. 'Stores change request in database' is HOW, not WHAT. 'User receives confirmation that the change request was submitted' is WHAT." Two criteria flagged across three features.

The rejection specifies exactly what to fix. The writer revises the three flagged features, resubmits the full batch. Second review returns APPROVED. The total additional time: 12 minutes. The alternative — discovering the implementation coupling six weeks into build — would have cost a sprint of refactoring.

What you walk away with

A revised feature batch that passes all 10 criteria across all features — including clean WHAT/HOW separation that keeps implementation decisions open for your engineering team.

Scenario 02

A feature is too large for autonomous implementation

Sarah's ScopeGuard needs a client portal — a substantial feature with multiple views, approval flows, notification states, and permission rules. The agent flags it during feature identification: estimated implementation context exceeds the 180k token limit. The feature as specified would cause an AI agent to halt mid-implementation.

The feature gets split: F-007 covers the portal authentication and basic view, F-008 covers the approval workflow, F-009 covers the notification system. Each is independently completable. Dependencies are made explicit — F-008 depends on F-007, F-009 depends on F-008. The split also makes the features independently reviewable and independently shippable.

What you walk away with

Three implementation-ready features in place of one that would have failed mid-execution, with explicit dependencies that preserve the correct build sequence.

Scenario 03

The architecture implied something Vision explicitly ruled out

During feature generation, the agent surfaces a conflict: the architecture's notification service implies real-time email delivery, but BRIEF.md explicitly ruled out email infrastructure as out of scope for v1. The feature spec for "Change Request Notifications" can't be written without resolving this — the scope boundary in Vision contradicts the system design in Architecture.

The conflict is flagged before any feature is written. You review the two documents, confirm the intent — notifications should be in-app only for v1 — and the constraint is updated in the feature spec to trace back to BRIEF.md. The architecture's email service is marked as a future dependency, not a v1 requirement. The conflict is resolved in the spec, not in a code review six weeks later.

What you walk away with

A feature spec that correctly reflects the v1 scope boundary, with the conflict documented so the team understands why in-app-only was chosen and what the email infrastructure is being held for.

Phase 6 of six. The last gate before implementation.

Every phase before this one produced a definition. Architecture defined the system. Features define the work. Features Review APPROVED is the signal that implementation can begin — nothing left ambiguous, nothing left to interpret at the keyboard.

Phase 01
Idea
IDEA.md
Phase 02
Product Brief
BRIEF.md
Phase 03
Market Validation
MARKET-analysis.md
Phase 04
UI/UX Design
UIUX.md
Phase 05
Architecture
ARCHITECTURE.md
Phase 06
Features
You are here

Features is also the final stage gate. When Features Review approves, the six-phase definition process is complete. Implementation begins with a full document chain — IDEA.md through F-001...F-N — tracing every decision from concept to specification.

You can skip this and move straight to implementation.

Teams do it. The tradeoffs are the same every time.

Without Feature Specifications

Faster start, invisible debt

  • Engineers interpret scope differently — implementations diverge before anyone notices
  • Dependencies discovered when they block — scope explosion, timeline collapse, or workarounds
  • "Done" means technically functional, not user-valuable — criteria were never defined
  • Implementation details leak into requirements — future changes couple code and spec
  • AI agents halt mid-feature — context overflow with no defined stopping point
  • No traceable line from architecture decision to feature behavior — debugging is archaeology
With Feature Specifications

Clearer start, zero interpretation

  • Scope boundaries explicit — no developer interpretation required at any point
  • Dependencies named, ordered, and verified before implementation begins
  • Completion is measurable — observable criteria with specific thresholds
  • WHAT and HOW separated — implementation decisions remain open until build
  • Every feature fits in context — autonomous implementation possible end-to-end
  • Every feature traces back to Product Brief, UI/UX, and Architecture — full chain of decisions
The Reframe

The choice isn't between specification and speed. It's between ambiguity resolved now — in a document, before a line of code is written — and ambiguity resolved later, in code, under pressure, during the sprint that was supposed to ship. $297 is not the cost of a spec. It's the cost of not rewriting the first sprint.

Two principles that shaped every decision in this phase.

"The hardest single part of building a software system is deciding precisely what to build."

— Fred Brooks · The Mythical Man-Month (1975)
Brooks wrote this half a century ago about teams of human engineers. The constraint is more acute with AI agents. A human engineer encountering an ambiguous requirement can ask a question, use judgment, find a reasonable path. An AI agent encountering an ambiguous requirement fills in the gap with the most statistically likely interpretation — which may be consistent, plausible, and completely wrong. Precise specification is the prerequisite that makes autonomous implementation possible, not just preferable.

"If you can't describe what you are doing as a process, you don't know what you're doing."

— W. Edwards Deming · Out of the Crisis
Deming applied this to manufacturing quality. It applies directly to feature specifications. "I know what this feature needs to do" is not the same as being able to write an observable acceptance criterion for it. The process of writing the 9-section contract surfaces what you don't yet know. When a field can't be filled — when the scope's "Out of Scope" section is empty, when acceptance criteria are vague — that's the gap that becomes a sprint if it survives into implementation.

I built this phase because the most expensive conversations I've seen in engineering weren't about hard technical problems — they were about what "done" meant, who owned which edge case, and which dependency somebody assumed would already exist. None of those conversations needed to happen. They were spec failures, not engineering failures. This phase eliminates them before the first pull request opens.

— Robert Evans

$20 per spec. Everything a developer needs to start Monday.

15–50 specs per session. Scope defined. Dependencies ordered. Acceptance criteria testable. No interpretation required, no alignment meetings mid-sprint, no ambiguity resolved in code.

$297 < 1 sprint of rework · prevents 3–5 weeks of implementation misalignment
Start my spec session — $297
$297 early access — first 100 builders  ·  Becomes $447 after
One payment. Yours forever. Runs locally in Claude Code. 30-day guarantee.