Task Management System
Tasks are fully accessible to subagents via direct JSON manipulation. No API boundary exists - subagents can read/write/create tasks at will.
Tasks are fully accessible to subagents via direct JSON manipulation, stored in a session-scoped filesystem with no API boundary or locking mechanism.
How It Works
The task management system persists tasks as JSON files at ~/.claude/tasks/{session-id}/{task-id}.json. Each task record contains an ID, subject, description, status (pending / in_progress / completed), and arrays for blocks and blockedBy dependencies. Subagents have full read-write access to the filesystem: they create tasks by writing JSON directly, update by modifying files, and delete by removing files. No API layer exists. The system supports arbitrary metadata fields for extension and stores tasks in a session namespace, isolating task lists across independent Claude Code sessions.
What the Test Found
Ten runtime tests verified the core CRUD operations, dependency tracking, and access model. Basic task creation, status transitions, and multiple blocker semantics all passed. The critical finding was total transparency: subagents can access and mutate tasks at will, with no permission checks or boundaries. However, the system revealed significant gaps. No referential integrity checking allows blockedBy to reference non-existent tasks or create circular dependencies (both tasks blocked forever). No locking mechanism means concurrent writes trigger last-write-wins data loss. No validation enforces schema, no timestamps track changes, and no cascade deletion cleans orphaned references when a blocking task is deleted.
Why It Matters
This design trades safety for simplicity and flexibility. Subagents can extend task records with custom metadata, implement their own dependency logic, and manage work queues without API overhead. The absence of an API boundary lets multiple agents coordinate directly over a shared persistent layer. For single-threaded orchestration or simple DAGs, the system works reliably.
Caveats
The system is unsuitable for multi-agent concurrent workflows or audit-critical pipelines. Operator code must detect cycles before creation, validate task references, serialize concurrent modifications (via ownership or locking), and clean up orphaned references manually. Storage lives at the filesystem layer with no built-in recovery, audit trail, or conflict resolution. Production use requires a wrapper layer for permissions, locking, and schema enforcement.
- file2.1.16/tests/01-task-management/TEST-RESULTS.md
primitive_6705809ac3f6a35715dd97c6ed255199b87705613b1e2fd064d57fa75a6b679d2856ceafad6b1daa8f982493871b6ddcff914056ddfd64e8702fd22b1f1befc9df9c2c0279f77bea80696c5f3c25d136ee0e7edce84ec038a0fdc9126dfa8feb6d325e5e11b8945492966512251e407Signed with an ed25519 key held off the repo. Anyone can verify against the published public key; nobody without the secret key can forge it. Click verify: it recomputes the signature in your browser. The signature proves integrity and authorship of this exact content — not a third-party timestamp or that the underlying claim is objectively true. signedAt is when the @f3/attest pipeline ran, not when the work happened; the evidence refs carry the source dates.
- instance-of Scheduler / IPC Class
- introduces (in) 2.1.16 Battle Test (2.1.16) Release
- verifies (in) Task Management System — runtime test Test