Reconcile the task_text_path carrier contract with implement-loop's inline task-text handoff #34

Open
opened 2026-07-21 19:25:17 +02:00 by claude · 0 comments
Collaborator

The implement-loop agent definitions document a file-based task-text carrier that the workflow script does not implement. Both sides are in this repo and disagree:

What the agent docs say. implement/agents/implementer.md:57 defines a carrier field task_text_path — "Absolute path to a file (typically /tmp/iter-<iter_id>/task-<N>.md) containing the verbatim task block extracted from the plan. Read this file as your first action." — and calls this row "the authoritative definition". The field recurs at implement/agents/implementer.md:129 and implement/agents/implementer.md:256-258 (a Red Flags entry about the file "at task_text_path"). implement/agents/spec-reviewer.md:68 mirrors it ("The same file the implementer received … Read this file as your first action"), implement/agents/spec-reviewer.md:72 keys a refusal path on "task_text_path is missing", and implement/agents/spec-reviewer.md:90 and :155 instruct reading that file.

What the script does. implement/workflows/implement-loop.js never writes such a file and passes no such field. The verbatim task text is inlined directly into each dispatch prompt as TASK ${task.id} — ${task.title}\n${task.text}: implementer at implement/workflows/implement-loop.js:841, spec-reviewer at :869, quality re-loop at :882 and :999. grep -n task_text_path implement/workflows/implement-loop.js returns nothing.

Effect. Both agents are instructed to perform a first action that can never succeed (read a file that is never written); spec-reviewer's documented missing-task_text_path refusal branch is nominally always live. In practice the agents evidently fall back to the inlined task text and the loop works, but the documented carrier contract and the actual mechanism have diverged, and the docs' authority claim points at a mechanism that does not exist.

Resolution is one of two directions: the script writes the per-task file and passes its path, or the agent docs document the inline-prompt carrier as the actual contract.

The implement-loop agent definitions document a file-based task-text carrier that the workflow script does not implement. Both sides are in this repo and disagree: **What the agent docs say.** `implement/agents/implementer.md:57` defines a carrier field `task_text_path` — "Absolute path to a file (typically `/tmp/iter-<iter_id>/task-<N>.md`) containing the verbatim task block extracted from the plan. Read this file as your first action." — and calls this row "the authoritative definition". The field recurs at `implement/agents/implementer.md:129` and `implement/agents/implementer.md:256-258` (a Red Flags entry about the file "at `task_text_path`"). `implement/agents/spec-reviewer.md:68` mirrors it ("The same file the implementer received … Read this file as your first action"), `implement/agents/spec-reviewer.md:72` keys a refusal path on "`task_text_path` is missing", and `implement/agents/spec-reviewer.md:90` and `:155` instruct reading that file. **What the script does.** `implement/workflows/implement-loop.js` never writes such a file and passes no such field. The verbatim task text is inlined directly into each dispatch prompt as `TASK ${task.id} — ${task.title}\n${task.text}`: implementer at `implement/workflows/implement-loop.js:841`, spec-reviewer at `:869`, quality re-loop at `:882` and `:999`. `grep -n task_text_path implement/workflows/implement-loop.js` returns nothing. **Effect.** Both agents are instructed to perform a first action that can never succeed (read a file that is never written); spec-reviewer's documented missing-`task_text_path` refusal branch is nominally always live. In practice the agents evidently fall back to the inlined task text and the loop works, but the documented carrier contract and the actual mechanism have diverged, and the docs' authority claim points at a mechanism that does not exist. Resolution is one of two directions: the script writes the per-task file and passes its path, or the agent docs document the inline-prompt carrier as the actual contract.
claude added the bug label 2026-07-21 19:25:17 +02:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Brummel/Skills#34