How-To: Drive an Issue End-to-End
This guide provides a practical checklist for steering a feature or complex bugfix from an initial GitHub Issue to a ready-to-merge feature/* -> dev Pull Request, including optional overrides and failure recovery.
1. Launching the Plan (/epure plan)
Loading interactive Archify blueprint…
- Open a GitHub Issue describing the goal, user problem, or feature scope.
- Post
/epure planin a comment. - Wait for the
epure-issue-commandworkflow to post Grill Round 1.
Tips for Answering the Grill
- Reply in plain Markdown: You do not need to prefix your answers with
/epurewhile the issue is in phasegrilling. - Multiple comments are safe: Thanks to the batch cursor (
last_processed_comment_id), if you add a second comment with an extra constraint while a run is queued, EPURE will process both comments in order. - Short-circuiting the Grill (Optional): If you feel the questions are already answered and want to jump straight to specification generation, comment
/epure to-spec.
2. Generating & Reviewing the Specification (/epure to-spec & /epure to-tickets)
Once the Grill decision frontier is resolved (frontier_resolved: true), EPURE posts a Settled Decisions Summary and pauses in grilling (awaiting_human_approval).
- Generate the Specification (
/epure to-spec): Comment/epure to-specto run the zero-context Goldfish Specification Audit (runGoldfishSpecAudit) and commitGLOSSARY.md,docs/adr/NNNN-*.md,DESIGN.md(if UI is involved), anddocs/specs/<slug>.md(includingEpicGoalContract) ontoplan/<issue>-<slug>. The issue transitions tospec(awaiting_human_approval). - Revise or Validate the Specification:
- Inspect
GLOSSARY.md,docs/adr/, anddocs/specs/<slug>.mdonplan/<issue>-<slug>. - To request adjustments to the specification before creating tickets, reply directly in a comment (without a slash command).
- Inspect
- Generate the Ticket DAG (
/epure to-tickets): Once the specification is approved, comment/epure to-tickets. EPURE decomposes the spec into an acyclic dependency-ordered GitHub Issue DAG (blocked_by,ready-for-agent), wires native GitHubsub_issuesanddependencies/blocked_bygraph links, and pauses intickets(awaiting_human_approval) awaiting/epure approve.
3. Approving, Event-Driven CI Continuation & Branch Sync (/epure approve, /epure status & /epure sync)
Post /epure approve on the tracking issue to directly integrate the plan/* artifacts into feature/<issue>-<slug>, lock spec_sha, and start executing the ticket DAG.
- Event-Driven External CI Waiting (
waiting_ticket_ci/waiting_feature_ci):- Whenever EPURE opens a
task/* -> feature/*PR (waiting_ticket_ci) or the finalfeature/* -> devPR (waiting_feature_ci), the orchestrator records the active PR andhead_shainrefs/epure/state/<issue>and immediately exits0to release the GitHub Actions runner (async_ci_continuation: true). - As soon as external CI workflows complete (
check_suite.completedorworkflow_run.completed), EPURE automatically wakes up to run Stage 3 multi-agent review, AI semantic squash, or unified auto-remediation. You can also manually nudge continuation at any time by commenting/epure continue.
- Whenever EPURE opens a
- Synchronizing with
dev(/epure sync//epure rebase):- If other PRs land on
devwhile your feature is in progress, comment/epure sync(or/epure rebase). EPURE mergesdev -> feature/<issue>-<slug>(and cascadesfeature/* -> active_task_branch) with additiveGLOSSARY.mdmerging, monotonic ADR renumbering, 3-way LLM conflict resolution, and mandatory Stage 1 Kernel Sandbox verification before committing.
- If other PRs land on
- Inspecting Live Progress (
/epure status):- Comment
/epure statusor check the EPURE Status Dashboard pinned at the top of the issue body. - Inside the GitHub Actions run logs, expand the structured
::group::sections to inspect Stage 1 kernel sandbox test/build output, read-only reviewer tool calls (read_file,search_code), and per-reviewer verdicts (approvedvs.changes_requested).
- Comment
4. Handling needs-human Escalations, /epure continue & Phase 2 Convergence Tickets
EPURE pauses and applies the needs-human label (status: "suspended") when human judgment is required:
- Sensitive Path Modification: A
task/*branch modified.github/workflows/**,.github/agents.yml, the reviewer roster directory (<reviewers_dir>/**, default.agents/reviewers/**), orCODEOWNERS.- Resolution: Inspect the diff. If legitimate, add the
approved-sensitive-changelabel to the PR and comment/epure continue(or/epure approve) on the tracking issue.
- Resolution: Inspect the diff. If legitimate, add the
- Remediation Cap Reached (
max_code_fix_attempts = 3): A ticket failed Stage 1 tests, external CI, or reviewermust_fixchecks 3 times in a row.- Resolution: Push a manual fix commit to the
task/*orfeature/*branch (or post a clarifying comment), then comment/epure continueon the tracking issue. EPURE removesneeds-human, restoresstatus: "active", skips all already-closed tickets, and resumes from the current milestone.
- Resolution: Push a manual fix commit to the
- Zero-Context
EpicConvergenceAudit& Automatic Phase 2 Tickets (max_epic_phases):- After all Phase 1 tickets are squashed into
feature/*, EPURE runs a zero-contextEpicConvergenceAudit(runEpicConvergenceAudit) against the specification'sEpicGoalContract. - If the audit finds unwired
required_entrypointsor lingeringforbidden_stubs(verdict: "INCOMPLETE") andepic_phase < max_epic_phases(default2), EPURE automatically creates, links, and executes bounded[Phase 2 - Ticket N]convergence tickets before opening the finalfeature/* -> devPR. If gaps still remain aftermax_epic_phases, EPURE escalates toneeds-human(epic_convergence_exhausted), where you can push a fix and comment/epure continue.
- After all Phase 1 tickets are squashed into
- Missing Model Configuration or Invalid
.github/agents.yml: A command that calls an LLM found neither the actionmodelinput nor one ofmodels.planning,models.implementation, ormodels.review(model_config_missing, the comment names the missing keys), or.github/agents.ymlondevfails to parse (internal_error, the comment quotes the parser message). EPURE has no fallback model.- Resolution: Fix or complete
.github/agents.ymlondev(or re-runsetup-repo, which fills in missingmodels.*keys), then re-post the original/epurecommand;/epure continueonly resumes implementation-phase runs.
- Resolution: Fix or complete

