Skip to content

feat(atb2): handle_issue: a design pass, then a fix pass in the sandbox; PR body; outcome; agents run on Fable - #4636

Draft
ATX24 wants to merge 1 commit into
baml/feedback-part-3b-gatefrom
baml/feedback-part-3c-agent
Draft

feat(atb2): handle_issue: a design pass, then a fix pass in the sandbox; PR body; outcome; agents run on Fable#4636
ATX24 wants to merge 1 commit into
baml/feedback-part-3b-gatefrom
baml/feedback-part-3c-agent

Conversation

@ATX24

@ATX24 ATX24 commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

The stage itself. For an Easy/Medium issue: a read-only design pass
investigates and writes the plan; a fix pass implements it, encodes the
repros as tests (routed per TEST_INSTRUCTIONS.md from the repros'
expectations) and runs targeted checks; the pipeline re-runs the gate,
writes the PR body in the team's shape (Problem / After this PR /
Behavioral boundaries / Tests / Validation) and, in Live mode, lifts the
worktree's push guard for the one push and opens (or updates) a draft
PR. DryRun stops before the push: what the evals run. For a Hard
issue the design pass's output becomes Issue.design_doc for the
shepherd; no code change.

The Claude Code CLI is run directly (claude -p ... --output-format stream-json), writing its own transcript so the record survives a kill
at the budget; implement_fix / write_design_doc are LLM functions only so
their $render_prompt / $parse companions render and parse. Both passes
run on claude-fable-5 (ATB2_MODEL overrides); time budgets were
recalibrated from the first eval (Easy 3600s, Medium 7200s).

Every run leaves ~/.atb2/runs//outcome.json: kind (fixed / hard
/ gate_failed / agent_stopped), why the agent stopped, turns, seconds,
the gate and the report.

Stack (bottom to top)

  1. feat(atb2): sandbox for handle_issue: worktree lifecycle, allowlisted env, repro pre-check on canary #4634 sandbox: worktree lifecycle, allowlisted env, repro pre-check
  2. feat(atb2): the gate: fmt, clippy, changed-crate tests, nextest, insta, the baml corpus; judged by exit code #4635 the gate: re-run by the pipeline, judged by exit code
  3. feat(atb2): handle_issue: a design pass, then a fix pass in the sandbox; PR body; outcome; agents run on Fable #4636 handle_issue: design pass, fix pass, PR body, outcome
  4. feat(atb2): handle_issue evals; run_tests.sh picks a pipeline stage; //# headers for the playground graph #4637 evals, run_tests.sh, //# headers

Each PR passes baml check / baml fmt / baml test on its own; the top of the stack reproduces the reviewed baml/feedback-part-3 tools/atb2 exactly. Supersedes baml/feedback-part-3.

…box; PR body; outcome; agents run on Fable

The stage itself. For an Easy/Medium issue: a read-only design pass
investigates and writes the plan; a fix pass implements it, encodes the
repros as tests (routed per TEST_INSTRUCTIONS.md from the repros'
expectations) and runs targeted checks; the pipeline re-runs the gate,
writes the PR body in the team's shape (Problem / After this PR /
Behavioral boundaries / Tests / Validation) and, in Live mode, lifts the
worktree's push guard for the one push and opens (or updates) a draft
PR. DryRun stops before the push — what the evals run. For a Hard
issue the design pass's output becomes `Issue.design_doc` for the
shepherd; no code change.

The Claude Code CLI is run directly (`claude -p ... --output-format
stream-json`), writing its own transcript so the record survives a kill
at the budget; implement_fix / write_design_doc are LLM functions only so
their $render_prompt / $parse companions render and parse. Both passes
run on claude-fable-5 (ATB2_MODEL overrides); time budgets were
recalibrated from the first eval (Easy 3600s, Medium 7200s).

Every run leaves ~/.atb2/runs/<branch>/outcome.json: kind (fixed / hard
/ gate_failed / agent_stopped), why the agent stopped, turns, seconds,
the gate and the report.
@vercel

vercel Bot commented Aug 31, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
beps Ready Ready Preview Aug 31, 2026 2:15am
promptfiddle2 Ready Ready Preview Aug 31, 2026 2:15am

Request Review

@coderabbitai

coderabbitai Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

Important

Draft PR not reviewed

Draft PRs are not automatically reviewed by default.

  • Trigger a manual review

To automatically review draft PRs, update your CodeRabbit configuration:

reviews:
  auto_review:
    drafts: true

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown

⏭️ Performance benchmarks were skipped

Perf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to canary/main.

To run them on this PR, do any of the following, then push a commit (or re-run CI):

  • Add RUN_CODSPEED=1 to the PR description, or
  • Include run-perf or /perf in the PR title or any commit message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant