Unified document lifecycle management. Defines terminal statuses, unified numbering via .next-id, close procedures, and orphan detection. Load at session start.
Manages document state transitions, unified numbering, and automated closure across all agent-output directories.
Every work chain shares a single ID. When Analyst creates analysis 080, the downstream plan, implementation, QA, UAT, and critique all use ID 080. This enables human traceability across the entire lifecycle.
Documents in terminal status belong in closed/ subfolders. Active work stays visible; completed work is archived but accessible.
These statuses trigger document closure (move to closed/):
| Status | Meaning | Closed By |
|---|---|---|
Committed |
Changes committed to git (awaiting release) | DevOps |
Released |
Successfully pushed/published | DevOps |
Abandoned |
Explicitly dropped, will not proceed | User (manual) |
Deferred |
Postponed indefinitely | User (manual) |
Superseded |
Replaced by a newer document | User (manual) |
Resolved |
All findings addressed (critiques only) | Critic |
.next-id FileLocation: agent-output/.next-id
Contents: Single integer (e.g., 081)
Rules:
Every document in agent-output/ MUST include:
---
ID: 080 # Global sequence number
Origin: 080 # Chain origin (same as ID for originating docs)
UUID: a3f7c2b1 # 8-char random hex for collision-proofing
Status: Active # Current lifecycle state
---
| Scenario | Action |
|---|---|
| Analyst starts new investigation | Read .next-id, increment, use as ID, write back |
| Planner creates plan from analysis | Inherit ID/Origin from analysis doc |
| Planner creates plan from user request (no analysis) | Read .next-id, increment, use as ID, write back |
| Implementer/QA/UAT/Critic work on plan | Inherit ID/Origin from plan doc |
| Retrospective reviews plan | Inherit ID/Origin from plan doc |
When a document reaches terminal status:
| YYYY-MM-DD | [Agent] | Document closed | Status: [status] |mkdir -p agent-output/<domain>/closed/mv agent-output/<domain>/NNN-name.md agent-output/<domain>/closed/When referencing a closed document from another document, use relative paths:
../closed/080-feature.md./080-feature.md (same folder)Before starting work, each agent MUST:
agent-output/qa/) excluding closed/closed/Roadmap agent performs comprehensive sweep when reviewing roadmap:
agent-output/*/ directories (excluding closed/)closed/closed/ folders| Agent | Role | Closure Trigger |
|---|---|---|
| Analyst | Originate IDs | Planner closes when plan created |
| Planner | Originate or inherit | DevOps closes after commit |
| Implementer | Inherit | DevOps closes after commit |
| QA | Inherit | DevOps closes after commit |
| UAT | Inherit | DevOps closes after commit |
| Critic | Inherit | Self-closes when findings resolved |
| DevOps | N/A | Self-closes after release |
| Retrospective | Inherit | PI closes after processing |
| PI | N/A | Self-closes own analysis |
| Architect | N/A | Evergreen docs, no closure |
| Roadmap | N/A | Orphan sweep responsibility |
| Security | Inherit | Self-check only |
# Read current ID
NEXT_ID=$(cat agent-output/.next-id)
# Increment for next use
echo $((NEXT_ID + 1)) > agent-output/.next-id
# Use $NEXT_ID as your document ID
# Update Status in document header to terminal status
# Add changelog entry
mkdir -p agent-output/<domain>/closed/
mv agent-output/<domain>/NNN-name.md agent-output/<domain>/closed/
Before starting work:
1. List agent-output/<my-domain>/*.md (excluding closed/)
2. For each file, check Status field
3. If Status in [Committed, Released, Abandoned, Deferred, Superseded, Resolved]:
→ Move to closed/