@agent-forge/plugin-todo-set
Todo-set capability plugin for Agent Forge, extracted from the host's
src/capabilities/todo-set.ts (D-075 S4, first B-class batch). It registers a single tool, todo_update: a
self-contained todo state machine whose planId field softly references a plan by plain id.
Todos persist as append-only todo.state session entries and every change is announced as a todo.changed event. The
soft reference is advisory (#10): an unknown planId never fails the write — the tool response carries a warning
field instead, read from the session branch's latest plan.state snapshot through the shared session entry protocol.
Status contract
A todo record carries one of four statuses:
pending— open work.blocked— temporarily obstructed and recoverable (may return topending).done— completed with evidence. Terminal: furthertodo_updatecalls on the id are rejected.cancelled— voided: judged no longer needed, permanently retired from execution. Terminal, with the same no-further-update guard asdone.
Both done and cancelled require at least one evidence reference (two independent gates, one error message each;
for cancelled, cite the user's words that retired the todo): done's evidence guards against fabricated completion,
cancelled's evidence guards against unmandated cancellation. The /todo count line lists its non-zero segments in
done → blocked → cancelled order (e.g. todos: 6 (2 done, 1 cancelled)) and each record line shows its status
marker, so a cancelled todo renders as - <id> [cancelled → <planId>] <title>.
Install
# from a local checkout
agent-forge plugin install ./plugins/todo-set
# from npm
agent-forge plugin install @ai-agent-forge/plugin-todo-set
Suites declare the capability through the builtin.todo-set short id; after the S4 split that id is assembled from
this package through the install store (bootstrap factory manifest or manual install).