requirement-ledger
Use when a task needs a durable active requirement queue and archive workflow. Captures only real user requests or requirements with close original wording, source pointers, category, intent, status, and next action; avoids noisy transcript dumps without erasing user intent.
install
source · Clone the upstream repo
git clone https://github.com/VRSEN/agency-swarm
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/VRSEN/agency-swarm "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.codex/skills/requirement-ledger" ~/.claude/skills/vrsen-agency-swarm-requirement-ledger && rm -rf "$T"
manifest:
.codex/skills/requirement-ledger/SKILL.mdsource content
Requirement Ledger
Use this skill when task state must survive beyond the current chat or when a request has several requirements that can drift.
Workflow
- Record only real user requests, explicit requirements, blockers, or decisions that change the work.
- Preserve user wording close to the original in
; summarize only inoriginal
after the auditable wording is captured.intent - Add a source pointer for each item, such as
,chat:2026-04-15 user#2
, orPR#123 comment 456
.docs/foo.md:42 - Plan the strategy for tackling the active queue before editing it, then reread the full active ledger and reprioritize deliberately at each task boundary.
- Keep active unfulfilled work in strategic chronological order; do not randomize, convenience-sort, or group items away from their original sequence.
- Before presenting a revised ledger, list every active unfulfilled requirement with
and source pointers.original - When an item is done, run
so it moves out of the active queue and into the archive.complete - If a ledger revision is rejected, run
; failed revision output is not source of truth and must be rebuilt from original sources.reject - Register every active artifact you touch as a ledger-linked item or note: repos, worktrees, branches, PRs, conflicted states, temp artifacts, and generated review artifacts that still matter.
- Treat every unshipped or undiscarded artifact as a blocker; do not let it fall out of the active queue until it is shipped, explicitly discarded, or archived with resolution.
- Before opening a new PR for ongoing work, record the existing related PR and why it cannot be reused; if that reason is missing, reuse the existing PR instead.
CLI
Run the bundled script from the repository root:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py --help
Default files:
- Active queue:
.codex/requirements-ledger/active.json - Archive:
.codex/requirements-ledger/archive.jsonl
Use
--ledger-dir <path> for a temporary or task-specific ledger.
Commands
Add an item:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py add \ --category tooling \ --title "Build reusable requirement ledger skill" \ --original "build a durable active requirement queue and archive workflow" \ --intent "Future agents need a compact active queue and archive workflow." \ --next-action "Create the skill files and run a CLI smoke test." \ --source-pointer "chat:2026-04-15 user#2"
Update active state:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py update REQ-20260415-001 \ --status in_progress \ --next-action "Run the focused smoke test."
Move finished work to the archive:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py complete REQ-20260415-001 \ --resolution "Skill and CLI smoke test completed."
Mark rejected ledger revision as failed:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py reject REQ-20260415-001 \ --resolution "Ledger revision was rejected and must be rebuilt from original sources."
List current state:
python .codex/skills/requirement-ledger/scripts/requirement_ledger.py list --archive
Rules
- Do not add raw user-message dumps, images, logs, stack traces, or private data unless the exact text is required.
- Noise reduction may remove non-requirement chatter and duplicates, but it must not delete, flatten, or overcompress the user's actual request.
- Keep the tooling simple: validate required fields, but avoid arbitrary caps or normalization that distorts user wording.
- Never rewrite the whole queue file. Use item-level
,add
,update
, orcomplete
operations so source pointers, original wording, and order survive.reject - Avoid vague one-off labels such as "cleanup"; name the exact requirement set, source range, and intended ledger change.
- Prefer one item per requirement; do not mix status notes, design choices, and implementation steps in one item.
- Use
only when the next action truly needs a user decision or missing external input.blocked - Use
orcomplete
instead of setting active items to a terminal status; the archive is the terminal-work record.reject - Keep artifact state current at task boundaries so the ledger always reflects the real critical path, not a stale memory of it.