Manifest

Living documentation for feature-driven product engineering

Keep humans and coding agents in the loop with always up-to-date context of your app

brew install manifestdocs/tap/manifest

Why Manifest? Because yesterday's workflows don't work for AI

Specs die on day one

AI makes it easy to iterate... away from your spec which is out of date after a few commits.

Change happens too fast

Agents are quick, managing them via Jira or Github Issues is the path to madness.

Agents get confused

Without past context or a roadmap for the future, agents sling the wrong thing.

Manifest is a better way to define and track coding agents' work

▣ MyApp
├── ▪ Auth
│   ├── ● OAuth Login
│   └── ● Password Reset
├── ▪ Store
│   ├── ○ Shopping Cart
│   ├── ⊘ Checkout
│   └── ◇ Order History
├── ◇ Analytics
├── ◇ Email Alerts
├── ◇ User Profile
└── ◇ Notifications

Features, not tickets

Features describe what your system does (or will do), living capabilities that evolve, not work items to close and forget.

● OAuth Login · 4a2f1b3
  2026-01-15 · claude
  Implemented Google OAuth with session-based auth.

  - Skipped Apple login: not in scope for v0.2
  - Chose sessions over JWT; simpler for SSR
  - Refresh token rotation deferred to v0.3

● Password Reset · b3f7a92
  2026-01-14 · claude
  Used email + time-limited token, not SMS.

A record of why, not just what

Git tells you what changed. Manifest captures why: the decisions made, constraints, and tradeoffs considered along the way.

> What's next?

  ◇ Checkout Flow
  Version 0.2.0 · Priority 1

  As a user, I can complete
  purchases via Stripe.

  AC:
  - Cart totals display correctly
  - Stripe payment succeeds
  - Confirmation email sent

Agents always know what's next

Ask any connected agent "what's next?" and it picks up the highest-priority feature with full context.

Prove it! Make agents show their work

◇ Checkout Flow
  Version 0.2.0 · Priority 1

  AC:
  - Cart totals display correctly
  - Stripe payment succeeds
  - Confirmation email sent

  → Extract test requirements:
  ✓ cart_displays_correct_totals
  ✓ stripe_payment_succeeds
  ✓ sends_confirmation_email

Specs become tests

Agents extract testable requirements directly from the feature spec. Acceptance criteria become test cases.

prove_feature             ← red

tests/checkout_spec.rs
  ✗ cart_displays_correct_totals
  ✗ stripe_payment_succeeds
  ✗ sends_confirmation_email

Verification recorded - exit code 1

prove_feature             ← green

tests/checkout_spec.rs
  ✓ cart_displays_correct_totals
  ✓ stripe_payment_succeeds
  ✓ sends_confirmation_email

Verification recorded - exit code 0

Red, green, done

Write failing tests, implement until they pass, prove again. Manifest records each run along the way.

complete_feature("Checkout Flow")

Cannot complete feature: no proof
recorded. Call prove_feature with
your test results first.

prove_feature  ← 3 passed, exit 0
complete_feature("Checkout Flow")

Completed 'Checkout Flow'
  - recorded 3 commits
Verification:
  ✓ 3 passed

No proof, no ship

The server rejects completion without a passing proof. No completion without a passing test suite.

Step back from the terminal: Edit, Plan, and review Activity in the Web UI

Edit

Browse your feature tree and write specs in a Markdown editor. Feature state, acceptance criteria, and notes stay current as you build.

Plan

Map features to release versions in a matrix view. See at a glance what ships next, what's planned, and what's still in the backlog.

Activity

A timeline of completed work. See what agents built, which commits landed, and how each feature was implemented.

Read the Docs