You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* fix(workflow-state): add missing phases and result field mappings
Add 'pre-review-gates' and 'docs-update' to the PHASES array so that
completePhase() correctly advances through the full workflow sequence.
Add result field mappings for pre-review-gates, delivery-validation,
and docs-update so phase results are stored properly.
* fix(orchestrate-review): use completePhase instead of updateFlow
Replace workflowState.updateFlow({ reviewResult: ... }) with
workflowState.completePhase({ ... }) so the review-loop phase
properly advances to delivery-validation when done.
* fix(next-task): enforce strict review loop exit conditions
Add startPhase('review-loop') at the beginning of Phase 9 across all
3 platform command files. Remove the "orchestrator may override after
3+ iterations" escape hatch. The review loop now only exits on:
openCount===0, stall detection (same hash 2x), or 5-iteration hard
limit. This ensures all issues are actually resolved before delivery.
* test(workflow-state): add tests for new phase transitions
Verify that completePhase correctly advances through the new phases:
implementation -> pre-review-gates -> review-loop -> delivery-validation
-> docs-update -> shipping. Also test that result fields (preReviewResult,
reviewResult, deliveryResult, docsResult) are stored correctly.
* fix(review-loop): address review findings from iteration 1
- Guard completePhase against unknown current phase (returns null instead of
silently resetting to first phase)
- Fix truthy check to use !== null && !== undefined for result storage
- Add completePhase() call at end of Phase 9 in all 3 platform command files
- Fix no-shortcuts-policy table: "3 iterations" -> "5 iterations, stall-safe"
- Add PHASES ordering assertions to test suite
- Add blocked review-loop test case (stall-detected path)
- Add shipping -> complete boundary test
- Add completePhase-with-unknown-phase guard test
* fix(review-loop): address review findings from iteration 2
- Fix MAX_STALLS=1 to match documented behavior: stall triggers after 2
consecutive identical-hash iterations (was 3 with MAX_STALLS=2)
- Add [WARN] log before completePhase null return on unknown phase
- Hoist RESULT_FIELD_MAP to module scope (eliminates per-call allocation)
- Add iteration-limit blocked reason test
- Add falsy result storage test (validates result !== null fix)
* fix(review-loop): address review findings from iteration 3
- Add completePhase() call at end of Phase 8 (pre-review-gates) in all
platform command files so preReviewResult is stored in flow.json
- Add completePhase extraction to adapter-transforms.js so OpenCode adapter
preserves the completePhase instruction (was silently dropped by transformer)
- Regenerate all affected OpenCode adapters with completePhase instructions
* docs: add CHANGELOG entry for review loop fix (#235)
Document the Phase 9 review loop exit condition fixes: MAX_STALLS
reduction (2→1), completePhase usage in orchestrate-review, and new
workflow-state phases (pre-review-gates, docs-update).
* chore(enhance): add version field to orchestrate-review skill
Per enhance analysis: add missing version: 5.1.0 to
plugins/next-task/skills/orchestrate-review/SKILL.md and regenerate
adapters to propagate to adapters/opencode/skills/orchestrate-review/SKILL.md
* fix(adapter-transforms): ensure completePhase triggers JS block transform
Move completePhase check to outer conditional so code blocks containing
only workflowState.completePhase() (without other JS keywords) are still
transformed to prose instructions in OpenCode adapters.
Fixes Gemini code review comment on PR #238.
* fix(review-loop): address PR review comments
- console.error → console.warn for [WARN] log in completePhase (Copilot #4)
- Phase 8: derive passed from actual gate results; include coverageResult
in completePhase payload (Copilot #5, Codex #2)
- Blocked review loop: ask user before advancing to delivery-validation
with AskUserQuestion override/abort prompt (Copilot #6)
* fix(orchestrate-review): use correct AskUserQuestion answer key
Access blocked-path user response via response.answers[question] using
the full question text as key (not the header label), with fallback for
both old and new AskUserQuestion response shapes.
Copy file name to clipboardExpand all lines: CHANGELOG.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -11,6 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
11
11
12
12
### Fixed
13
13
14
+
-**`/next-task` review loop exit conditions** — The Phase 9 review loop now continues iterating until all issues are resolved or a stall is detected (MAX_STALLS reduced from 2 to 1: two consecutive identical-hash iterations = stall). The `orchestrate-review` skill now uses `completePhase()` instead of `updateFlow()` to properly advance workflow state. Added `pre-review-gates` and `docs-update` to the `PHASES` array and `RESULT_FIELD_MAP` in `workflow-state.js`, ensuring these phases can be tracked and resumed correctly. Fixes issue #235.
15
+
14
16
-**`/debate` command inline orchestration** — The `/debate` command now manages the full debate workflow directly (parse → resolve → execute → verdict), following the `/consult` pattern. The `debate-orchestrator` agent is now the programmatic entry point for other agents/workflows that need to spawn a debate via `Task()`. Fixes issue #231.
0 commit comments