json-feature-ledger
Skill0 starsChanged 2 months agoMITView on GitHub
Use when planning multi-session work or multi-feature tasks (>5 acceptance criteria). Creates feature_list.json — Anthropic Labs canonical pattern where each criterion is {passes:false} until verifier flips it with cited evidence. Token-efficient durable contract between proof-loop agents (70-85% verifier→fixer handoff savings). Composes with services/test-results-mcp + task-spec-freezer agent.
In this repository9 other files it gives its agents.
- agent-mvp-blueprintSkill
- close-taskSkill
- context-prepSkill
- handoffSkill
- improve-codebase-architectureSkill
- overnight-task-queueSkill
- restricted-tool-subagentSkill
- retrievalSkill
- router-lite-mcpSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 1 is distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
When you'd otherwise write the evidence.md + verdict.json + problems.md trio
- Very specific: line 51
Only test-results-mcp.mark_pass(task_id, feature_id, evidence_ref) may flip passes: false → true.
- Distinctive: line 74
Instead of fixer re-reading 5-25 KB markdown each iteration, it calls:
- Very specific: line 86
Long-running multi-session tasks: prefer feature_list.json from start (durability matters more)
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
JSON Feature Ledger
A durable JSON ledger contract for multi-feature / multi-session work. Replaces ad-hoc markdown evidence files with a structured feature_list.json that agents can only mutate per defined rules.
When to invoke
- Planning a task with >5 acceptance criteria
- Multi-session work where agents will pick up across context boundaries
- Proof-loop pipeline orchestration (composes with
task-spec-freezer.md) - When you'd otherwise write the evidence.md + verdict.json + problems.md trio
- Trigger phrases (EN):
feature list,json ledger,durable contract,feature_list.json,passes flag - Trigger phrases (RU):
json-реестр,feature_list,леджер фич
When NOT to invoke
- Single-AC tasks (overkill)
- Short-lived single-session work
- Documentation-only changes
- Throwaway prototypes
Schema
{
"task_id": "kebab-case-task-id",
"created_at": "2026-05-21T00:00:00.000Z",
"schema_version": 1,
"features": [
{
"id": "AC1",
"description": "Acceptance criterion text",
"evidence_required": ["test passes", "screenshot diff < 1%"],
"passes": false,
"passed_at": null,
"evidence_ref": null,
"last_attempt_error": null
}
]
}evidence_required is optional. All other fields required. The ledger is written to <rootDir>/.agent/tasks/<task_id>/feature_list.json.
Mutation rules
Only test-results-mcp.mark_pass(task_id, feature_id, evidence_ref) may flip passes: false → true. This enforces:
- Only verifier role flips (test-results-mcp is designed to be called by
task-verifier.mdwhich has read-onlytools: Read, Grep, Glob, Bash) - Every pass cites concrete evidence (URL / file path / artifact ID)
- Immutability lock: re-marking a passed feature throws (caller bug — durable ledger means the value of
passesis the single source of truth)
Other fields:
last_attempt_error: may be set by fixer on failed attempts (direct file write, or future MCPmark_failuretool)description+evidence_required+id: immutable after init (use newtask_idfor criterion changes)
See codified rule: the project rule (see your repo rules).
Why Anthropic Labs canonical
Per "Effective harnesses for long-running agents" (Nov 2025):
"The model is less likely to inappropriately change or overwrite JSON files compared to Markdown files."
Markdown evidence trails invite agents to "improve" them mid-loop. JSON with explicit schema + mutation rules is structurally harder to corrupt.
Token economy
Instead of fixer re-reading 5-25 KB markdown each iteration, it calls:
list_failing(task_id)→ ~200-800 tokens (compact list of failing IDs)get_feature(task_id, feature_id)→ ~500 tokens (single feature drill-down)
Estimated savings: 70-85% on verifier→fixer handoff vs current markdown-based pattern.
Migration from evidence.json
HWAI proof-loop currently uses .agent/tasks/<TASK_ID>/evidence.json (ad-hoc schema). Migration path:
- New tasks: spec-freezer emits
feature_list.json(perthe project rule (see your repo rules)) - Existing tasks:
evidence.jsonstays as legacy format until task completes - Long-running multi-session tasks: prefer
feature_list.jsonfrom start (durability matters more)
Composition
test-results-mcp (see mcp-token-savers repo)— the MCP exposing 4 tools (init_feature_list,mark_pass,list_failing,get_feature) operating on this schematask-spec-freezer.md— emitsfeature_list.jsonalongsidespec.mdtask-implementer.md— reads ledger viaget_feature; never mutatestask-verifier.md— flips passes withmark_pass(read-only tools enforce that this is the ONLY mutation path)task-fixer.md— readslist_failing+get_featurefor drill-down
Sample workflow
1. task-spec-freezer creates feature_list.json with N criteria, all passes:false
2. task-test-author writes failing tests, verifies red
3. task-implementer reads ledger via get_feature(AC1), implements, runs tests
4. task-verifier runs verification in fresh context, calls mark_pass(AC1, evidence_ref)
5. proof-loop checks if all features pass; if not, calls task-fixer
6. task-fixer calls list_failing → returns [{id: 'AC2', description: '...', last_attempt_error: null}]
7. task-fixer calls get_feature(AC2), applies smallest fix
8. task-verifier re-verifies; mark_pass(AC2) if proven
9. Loop until all features.passes === true OR 3 fix cycles exhaustedSources
- Anthropic Labs canonical: "Effective harnesses for long-running agents" (Nov 2025)
- HWAI research SSOT:
TDD research notes§ Diamond #4 - HWAI adoption plan:
TDD gap analysis notes§ Bucket 2.6 - Codified rule:
the project rule (see your repo rules) - Companion MCP:
test-results-mcp (see mcp-token-savers repo)(PR #856 + public PR #45-#46)
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

