Documentation

Implementing Features

With your feature tree planned, agents can start implementing. Manifest tracks state and records history as work progresses.

Feature lifecycle

Proposed
In Progress
Implemented

Features can also be blocked when they depend on other features that must be implemented first. Blocked features automatically return to proposed when all their blockers are implemented.

Finding work

What's next?

The agent finds the highest-priority proposed feature from the Next version.

Starting work

Implement OAuth

Manifest records:

  • State transitions to in_progress (○)
  • Other agents see this feature is claimed

Spec gate

start_feature blocks if a leaf feature has no details. The agent must write a spec first using update_feature before it can begin implementation. This prevents agents from building without a clear specification.

If the feature has details but lacks acceptance criteria, the agent receives a warning and is encouraged to add criteria before or during implementation.

Testing & proof

Manifest uses test-driven development as a first-class workflow. Agents write failing tests before implementation and record evidence with prove_feature.

  1. Write failing tests based on acceptance criteria
  2. Call prove_feature to record the red state
  3. Implement the feature
  4. Call prove_feature again to record the green state
  5. Call complete_feature (requires passing proof)

See Testing & Proof for the full guide on test adapters, the evidence panel, and the completion gate.

Completing work

When the agent finishes, Manifest records:

  • State transitions to implemented (●)
  • History entry with summary of what was done
  • Links to commits from the session
  • Test evidence from prove_feature recordings
Feature: OAuth Integration (●)

History:
  2024-03-20 - Implemented Google OAuth with token refresh
               - Added OAuth config and providers
               - Built token storage with encryption
               Commits: abc123, def456

Proposed changes

Agents can suggest spec changes via desired_details for human review rather than modifying the spec directly. The proposed changes appear in the app's Diff tab on the feature detail view, where you can accept or discard them.

update_feature(
  feature_id: "...",
  desired_details: "## Story\nAs a user, I can..."  // proposed, not applied
)

Slash commands

Claude Code plugin provides shortcuts:

CommandDescription
/manifest:nextShow highest-priority feature ready for work
/manifest:feature [query]Search for and display feature details
/manifest:start [feature]Begin work on a feature (or next priority if omitted)
/manifest:completeComplete current in-progress feature with summary

Next step

Continue to Testing & Proof.