Skip to content

container_workspace_required remediation is blocked by WORKSPACE_NO_CLAIMED_TODO #568

@worldofgeese

Description

@worldofgeese

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:

decapod validate -v

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:

  1. 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.
  2. decapod validate should not mark container_workspace_required as auto-remediable with an impossible command path.
  3. 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.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions