fix: pass the issue title+body to the dev agent so agent/dev works without a plan #20

Merged
ellen merged 1 commit from fix/dev-prompt-includes-issue into main 2026-07-31 18:54:37 +00:00
Member

Problem

dev.yaml builds the model prompt from two sources only: the
## Implementation plan (agent) comment and the tester's ## Test findings
comment. The issue's own title and body are never passed.

That is fine on the designed path (agent/plan → plan/approved → implement),
but it makes agent/dev unusable as a standalone trigger. Label a fresh issue
agent/dev and $PLAN is empty, so the agent is told "implement the approved
plan below"
with nothing below it and no other statement of the task. It
produces no commit, the progress=no branch fires, and the issue is parked to
needs/human.

This matters for queueing work ahead of a usage reset: agent/dev is the label
you would reach for to queue a small, already-understood change without spending
a planning run on it.

Change

  • Fetch the issue title + body and always include them in the prompt as an
    === ISSUE #N === section, ahead of the plan.
  • When $PLAN is empty, substitute an explicit instruction to work from the
    issue text and keep the change tightly scoped, instead of emitting an empty
    section.
  • CHECKPOINT now logs the issue title, so the run log shows what the agent was
    actually given.

No behaviour change on the plan/approved path — the plan is still the primary
instruction there, now with the issue as framing.

Merge order

Cut from main. It touches only the build step's prompt region, so it merges
cleanly with feat/runner-injected-credentials (which touches the credentials
region of the same file) in either order. Note that until that branch is merged,
no route runs at all — every route file on main still carries the secrets:
block under on.workflow_call that makes the file unparseable.

### Problem `dev.yaml` builds the model prompt from two sources only: the `## Implementation plan (agent)` comment and the tester's `## Test findings` comment. The issue's own title and body are never passed. That is fine on the designed path (`agent/plan` → `plan/approved` → implement), but it makes `agent/dev` unusable as a standalone trigger. Label a fresh issue `agent/dev` and `$PLAN` is empty, so the agent is told *"implement the approved plan below"* with nothing below it and no other statement of the task. It produces no commit, the `progress=no` branch fires, and the issue is parked to `needs/human`. This matters for queueing work ahead of a usage reset: `agent/dev` is the label you would reach for to queue a small, already-understood change without spending a planning run on it. ### Change - Fetch the issue title + body and always include them in the prompt as an `=== ISSUE #N ===` section, ahead of the plan. - When `$PLAN` is empty, substitute an explicit instruction to work from the issue text and keep the change tightly scoped, instead of emitting an empty section. - `CHECKPOINT` now logs the issue title, so the run log shows what the agent was actually given. No behaviour change on the `plan/approved` path — the plan is still the primary instruction there, now with the issue as framing. ### Merge order Cut from `main`. It touches only the build step's prompt region, so it merges cleanly with `feat/runner-injected-credentials` (which touches the credentials region of the same file) in either order. Note that until that branch is merged, no route runs at all — every route file on `main` still carries the `secrets:` block under `on.workflow_call` that makes the file unparseable.
fix: pass the issue title+body to the dev agent so agent/dev works without a plan
Some checks failed
coordinate.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (push) Failing after 0s
dev.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (push) Failing after 0s
plan.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (push) Failing after 0s
reflect.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (push) Failing after 0s
test.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (push) Failing after 0s
coordinate.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (pull_request) Failing after 0s
dev.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (pull_request) Failing after 0s
plan.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (pull_request) Failing after 0s
reflect.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (pull_request) Failing after 0s
test.yaml / fix: pass the issue title+body to the dev agent so agent/dev works without a plan (pull_request) Failing after 0s
coordinate.yaml / Merge pull request 'fix: pass the issue title+body to the dev agent so agent/dev works without a plan' (#20) from fix/dev-prompt-includes-issue into main (pull_request) Failing after 0s
dev.yaml / Merge pull request 'fix: pass the issue title+body to the dev agent so agent/dev works without a plan' (#20) from fix/dev-prompt-includes-issue into main (pull_request) Failing after 0s
plan.yaml / Merge pull request 'fix: pass the issue title+body to the dev agent so agent/dev works without a plan' (#20) from fix/dev-prompt-includes-issue into main (pull_request) Failing after 0s
reflect.yaml / Merge pull request 'fix: pass the issue title+body to the dev agent so agent/dev works without a plan' (#20) from fix/dev-prompt-includes-issue into main (pull_request) Failing after 0s
test.yaml / Merge pull request 'fix: pass the issue title+body to the dev agent so agent/dev works without a plan' (#20) from fix/dev-prompt-includes-issue into main (pull_request) Failing after 0s
agent / tick (pull_request) Has been skipped
agent / resolve (pull_request) Successful in 13s
agent / implement (pull_request) Successful in 0s
agent / dev (pull_request) Has been skipped
agent / dev-bounce (pull_request) Successful in 0s
agent / dispatch (pull_request) Successful in 0s
agent / plan (pull_request) Has been skipped
agent / test (pull_request) Has been skipped
agent / coordinate (pull_request) Has been skipped
agent / reflect (pull_request) Successful in 0s
55fb22eb40
ellen merged commit dd99e6a2da into main 2026-07-31 18:54:37 +00:00
ellen deleted branch fix/dev-prompt-includes-issue 2026-07-31 18:54:37 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
valssi-public/agent-workflows!20
No description provided.