Summary
decapod validate reports a single auto-remediable failure, container_workspace_required, and tells the agent to rerun through decapod workspace ensure --container. That remediation path then fails with WORKSPACE_NO_CLAIMED_TODO, requiring decapod todo claim before spawning a container workspace.
This creates a control-plane deadlock for repositories that intentionally use an external task tracker instead of Decapod todos. In this repo, project overrides require Beads (bd) for task tracking and explicitly supersede decapod todo operations, but Decapod still hard-requires a claimed Decapod todo for the container workspace remediation.
Environment
- Decapod:
v0.48.6 (decapod version)
- OS: Linux
- Container runtime: Docker-compatible runtime available (
decapod workspace status reports docker_available: true; this machine uses rootless Podman/Docker-compatible tooling)
- Repository context: already inside a Decapod-managed git worktree on non-protected branch
agent/unknown/test-01ks5pf9r46a1t6e
decapod workspace status:
{"blockers":0,"can_work":true,"container_image":null,"docker_available":true,"git_branch":"agent/unknown/test-01ks5pf9r46a1t6e","git_has_local_mods":false,"git_is_protected":false,"in_container":false,"required_actions":[]}
Reproduction
From an existing Decapod worktree with an active session and clean git state:
Observed failure:
summary pass=174 fail=1 warn=5
issues AUTOREMEDIABLE_VALIDATION_ERROR code=container_workspace_required severity=transient auto_remediable=true audience=agent agent_action="Agent: rerun through `decapod workspace ensure --container` ..."
! validation needs attention
Then follow the remediation:
decapod workspace ensure --container
Observed result:
session: auto-acquired for agent 'unknown'.
Error: ValidationError("AUTOREMEDIABLE_VALIDATION_ERROR code=WORKSPACE_NO_CLAIMED_TODO severity=transient auto_remediable=true audience=agent agent_action=\"claim a todo with `decapod todo claim --id <task-id>` before spawning a worktree\" user_note=\"No todo is assigned to this agent; the agent should claim an open task first.\"
No claimed or open todo assigned to agent 'unknown'. Agent must claim a todo before spawning a worktree.")
Expected behavior
One of these should be possible:
decapod workspace ensure --container should provide a remediation path that does not require Decapod todos when a repo uses an external task tracker or a project override supersedes Decapod todos.
decapod validate should not mark container_workspace_required as auto-remediable with an impossible command path.
- Decapod should expose a supported way to satisfy/waive the claimed-work requirement using an external tracker claim, or project-level override metadata.
Actual behavior
The only advertised remediation for container_workspace_required requires decapod workspace ensure --container, but that command is blocked by a Decapod-todo precondition. In a repo where Decapod todos are explicitly superseded by Beads, following the remediation would violate the repo’s operating contract.
Why this matters
Agents cannot truthfully claim decapod validate passes, and they also cannot follow the suggested remediation without violating project policy. The result is a persistent validation failure even when all application-level proof gates pass and the work is being tracked/claimed in the project’s approved tracker.
Summary
decapod validatereports a single auto-remediable failure,container_workspace_required, and tells the agent to rerun throughdecapod workspace ensure --container. That remediation path then fails withWORKSPACE_NO_CLAIMED_TODO, requiringdecapod todo claimbefore spawning a container workspace.This creates a control-plane deadlock for repositories that intentionally use an external task tracker instead of Decapod todos. In this repo, project overrides require Beads (
bd) for task tracking and explicitly supersededecapod todooperations, but Decapod still hard-requires a claimed Decapod todo for the container workspace remediation.Environment
v0.48.6(decapod version)decapod workspace statusreportsdocker_available: true; this machine uses rootless Podman/Docker-compatible tooling)agent/unknown/test-01ks5pf9r46a1t6edecapod workspace status:{"blockers":0,"can_work":true,"container_image":null,"docker_available":true,"git_branch":"agent/unknown/test-01ks5pf9r46a1t6e","git_has_local_mods":false,"git_is_protected":false,"in_container":false,"required_actions":[]}Reproduction
From an existing Decapod worktree with an active session and clean git state:
Observed failure:
Then follow the remediation:
Observed result:
Expected behavior
One of these should be possible:
decapod workspace ensure --containershould provide a remediation path that does not require Decapod todos when a repo uses an external task tracker or a project override supersedes Decapod todos.decapod validateshould not markcontainer_workspace_requiredas auto-remediable with an impossible command path.Actual behavior
The only advertised remediation for
container_workspace_requiredrequiresdecapod workspace ensure --container, but that command is blocked by a Decapod-todo precondition. In a repo where Decapod todos are explicitly superseded by Beads, following the remediation would violate the repo’s operating contract.Why this matters
Agents cannot truthfully claim
decapod validatepasses, and they also cannot follow the suggested remediation without violating project policy. The result is a persistent validation failure even when all application-level proof gates pass and the work is being tracked/claimed in the project’s approved tracker.