Skip to content

fix(backend): give the implementer the full issue body, not just the title#9

Merged
Svaag merged 1 commit into
mainfrom
fix/loop-carries-full-issue-body
Jun 15, 2026
Merged

fix(backend): give the implementer the full issue body, not just the title#9
Svaag merged 1 commit into
mainfrom
fix/loop-carries-full-issue-body

Conversation

@Svaag

@Svaag Svaag commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

Context

Dogfooding the first loop code task (hyrule-cloud#28, VPS launch-proof) surfaced a substrate bug: the loop implements against the issue title only, not the body.

Root cause

assemble_backend_prompt set the prompt's ## Request to:

task_spec.intent.rstrip() or task_spec.request.rstrip() or "(no request text supplied)"

The planner sets intent to the issue's first line truncated to 300 chars (nodes.py:317-320) — usually the title — so the or short-circuited and the full body (task_spec.request, populated from feature_request at backend.py:819) was never included. The model never saw the action items, constraints (no generic payment engine), or acceptance.

Fix

Prefer the full request body over the truncated intent in the prompt (fall back to intent, then placeholder). One line + a regression test asserting body content (action items + constraints) reaches the prompt when intent is just a title.

Out of scope (noted)

The planner's formal acceptance_criteria are still a generic 3-item template (nodes.py:336-339), graded by role judgment + human PR review. Deriving criteria from the issue body is a separate, larger enhancement — the dominant bug was the body never reaching the implementer at all.

Validation

  • uvx ruff check src tests — clean
  • uv run --group dev mypy --strict src — clean
  • uv run --group dev pytest -q176 passed (+1)
  • evals run --strict — 15/15

Next

Merge → bump the loop pin on loop → re-run #28; the loop will then implement against the real spec.

…title

assemble_backend_prompt built the "## Request" section as
`intent or request`. The planner sets `intent` to the issue's truncated first
line (often just the title), so the `or` short-circuited and the full request
body — action items, constraints, acceptance — never reached the backend. The
loop was effectively implementing against the issue title alone.

task_spec_from_state already carries the full body in TaskSpec.request; prefer
it over the one-line intent (fall back to intent, then a placeholder).

Surfaced dogfooding the VPS launch-proof issue (hyrule-cloud#28): the loop
produced a title-only plan because it never saw the detailed spec.

Note: the planner's formal acceptance_criteria remain a generic template
(graded by role judgment + human PR review); deriving criteria from the issue
body is a separate, larger enhancement.

Validation: ruff clean, mypy --strict clean, 176 passed (+1), evals 15/15.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@Svaag Svaag added the agentic-isp AS215932/Hyrule agentic ISP operating-loop work label Jun 15, 2026
@Svaag Svaag marked this pull request as ready for review June 15, 2026 20:26
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@Svaag Svaag merged commit 5f0a84e into main Jun 15, 2026
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

agentic-isp AS215932/Hyrule agentic ISP operating-loop work

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant