Background
Claude Code's plugin manifest (.claude-plugin/plugin.json) supports a monitors key that registers background monitors auto-armed at session start or on skill invocation. This is a real, documented field as of April 2026 (plugins-reference).
Proposed use for Flow
Wire a Beads-state monitor that:
- Watches
.beads/state.json (or the active backend's state file) for changes during an active Claude session
- On change, automatically runs
/flow-sync to keep spec.md aligned with Beads — eliminating the current MANDATORY-but-easily-forgotten manual sync step after every Beads state change
- No-ops when Flow is not active in the current project (no
.agents/ directory)
Why now
The repo's CLAUDE.md and skill rules mark /flow-sync after Beads state changes as CRITICAL. Today this discipline depends on the agent (or user) remembering. A monitors entry would convert the discipline into a passive guarantee.
Out of scope for this issue
- Cross-host parity. Codex / OpenCode / Gemini do not currently expose an equivalent monitor primitive — this is Claude-only, evaluated as part of the broader April 2026 host-mandate audit (see commit history of fix/codex-marketplace branch).
Acceptance criteria
Background
Claude Code's plugin manifest (
.claude-plugin/plugin.json) supports amonitorskey that registers background monitors auto-armed at session start or on skill invocation. This is a real, documented field as of April 2026 (plugins-reference).Proposed use for Flow
Wire a Beads-state monitor that:
.beads/state.json(or the active backend's state file) for changes during an active Claude session/flow-syncto keepspec.mdaligned with Beads — eliminating the current MANDATORY-but-easily-forgotten manual sync step after every Beads state change.agents/directory)Why now
The repo's CLAUDE.md and skill rules mark
/flow-syncafter Beads state changes as CRITICAL. Today this discipline depends on the agent (or user) remembering. Amonitorsentry would convert the discipline into a passive guarantee.Out of scope for this issue
Acceptance criteria
.claude-plugin/plugin.jsondeclares amonitorsentry for the Beads state file/flow-sync(or the equivalent skill action) only when.agents/exists in the project root