feat(opencode): one-task-per-run model + 9 routing fixes (ADRs 13-21)
Captures the design grilling outcome. Adds ADRs 13-21 covering: - run-level plan_rework_remaining counter to bound P3<->P5.5/P7/P8 thrash - non-resumable workflow with throwaway-worktree recovery procedure - @simplify advisory at every gate (not just Phase 8) - Phase 8 fix specs go to disk as task-fix-N.md (preserves ADR-6) - Phase 5.5 BLOCK protocol: orchestrator edits plan, decrements counter, re-enters P4 - Phase 8 NOT_TESTABLE manifest in reviewer prompt - unified Implementation Incomplete diagnosis (test_design / production_logic / split_needed) - Phase 1 working-tree cleanliness + depends-on enforcement - one-task-per-run pivot: Phase 5 still splits N tasks, only task-1 runs; tasks 2..N filed as sub-issues with rich seed bodies; split_needed at P7 aborts to Failure Handler (one-task-per-run = no salvageable prior work) Auto-resolves big-diff Phase 8 reviews, cross-task regression-within-run, and mid-flight task-split routing. Rewrites routing matrix and three Mermaid diagrams; updates @pm (depends-on frontmatter, split-time filing), @check (third diagnosis verdict), @make (escalate: split_needed flag).
This commit is contained in:
parent
0b15944d1c
commit
af6481a5a7
5 changed files with 342 additions and 130 deletions
|
|
@ -48,6 +48,7 @@ title: Implement a special stage type
|
|||
status: Done
|
||||
parent: GAL-38
|
||||
labels: [gameplay, advanced-mechanics]
|
||||
depends-on: [GAL-37]
|
||||
---
|
||||
|
||||
# GAL-39: Implement a special stage type
|
||||
|
|
@ -80,6 +81,7 @@ Free-form markdown describing the problem and context. Spans as many paragraphs
|
|||
- `status` — one of: `Todo`, `In Progress`, `Done`. (No other values; the old `Backlog`/`In Review`/`Cancelled` set is gone.)
|
||||
- `parent` — either `null` (top-level issue) or another issue ID (e.g. `GAL-38`). Sub-issues belong to their parent's `## Sub-issues` list.
|
||||
- `labels` — YAML list of strings, e.g. `[gameplay, advanced-mechanics]`. May be `[]`.
|
||||
- `depends-on` — *optional* YAML list of issue IDs that must reach `status: Done` before this issue can be started. Used by `/workflow`'s Phase 1 sanity check to hard-block runs whose dependencies aren't satisfied (per ADR-21). Omit the field entirely when there are no dependencies; do not write `depends-on: []`. Cycles are not detected by this agent — the caller is responsible for not creating a cycle.
|
||||
|
||||
**Body rules:**
|
||||
- The first heading is `# <ID>: <title>` (matches frontmatter).
|
||||
|
|
@ -172,9 +174,24 @@ For list output, return an array of `{id, title, status, parent, labels}` object
|
|||
### When creating issues
|
||||
- Default `status: Todo` unless the caller says otherwise.
|
||||
- Title: short, imperative ("Add retry logic to ingest worker", not "retry stuff").
|
||||
- Frontmatter must be complete: `id`, `title`, `status`, `parent`, `labels`.
|
||||
- Frontmatter must be complete: `id`, `title`, `status`, `parent`, `labels`. Add `depends-on:` when the caller specifies dependencies.
|
||||
- Always update the dependent index (README.md for top-level, parent file for sub-issues) so the new issue is visible.
|
||||
|
||||
### Split-time sub-issue creation (rich-body filings)
|
||||
|
||||
When the `/workflow` orchestrator dispatches you mid-run to file a sub-issue from a Phase 5.5 task split (per ADR-21), the caller passes a structured body containing more than the usual minimum. Treat the body as already-finalized — write it verbatim into the new issue file. Common sections you'll see:
|
||||
|
||||
- `## What to implement` — one-line + brief description.
|
||||
- `## Acceptance criteria` — checkboxes; preserve `- [ ]` state (newly filed sub-issues start with all AC unchecked).
|
||||
- `## Code Context` — code snippets carried over from the split-time task spec.
|
||||
- `## Integration with sibling sub-issues` — narrative; the structural dependencies belong in the `depends-on:` frontmatter list, which the caller will pass alongside the body.
|
||||
- `## Plan rationale` — slice of the parent's plan.
|
||||
- `## Test design` — when present.
|
||||
|
||||
Use the rendered ordering: H1 → description (the "Discovered during run on …" attribution paragraph that ends the body counts as part of the description) → `## Sub-issues` (omit; sub-issues won't have their own children at filing time) → `## Acceptance criteria` → `## Integration test hints` (omit unless caller passed it) → `## Comments` (omit until first comment is appended).
|
||||
|
||||
Add the `split-from-run` label to the labels list when the caller specifies it, alongside any propagated parent labels.
|
||||
|
||||
### When updating status
|
||||
- Confirm the change (e.g. "GAL-39 status: In Progress → Done").
|
||||
- A status change to `Done` is only valid if all acceptance-criteria checkboxes (when the section exists) are checked. If they are not, report which ones remain and ask for confirmation before forcing the change.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue