diff --git a/plan-ceo-review/SKILL.md.tmpl b/plan-ceo-review/SKILL.md.tmpl index 7d83703fd..72628bade 100644 --- a/plan-ceo-review/SKILL.md.tmpl +++ b/plan-ceo-review/SKILL.md.tmpl @@ -407,7 +407,7 @@ Follow the preamble's session rules; `CONDUCTOR_SESSION: true` changes transport wins. When `QUESTION_TUNING: true`, include ``. These modes differ in kind, not coverage; do NOT score completeness. -4. **Mode handoff:** After selection, before other tools or further questions, run `~/.claude/skills/gstack/bin/gstack-ceo-mode-handoff "" --decisions ""` (add `--auto` for `plan-ceo-review-mode: AUTO_DECIDE`). It prints the matching line below. Then send brief chat beginning with that line: the mode's application and rationale; every governing approved row's ID, answer reference and accepted scope. Keep rows separate. +4. **Mode handoff:** After selection, before other tools or further questions, run `~/.claude/skills/gstack/bin/gstack-ceo-mode-handoff "" --decisions ""` (add `--auto` for `plan-ceo-review-mode: AUTO_DECIDE`). It prints the matching line below. Then send brief chat beginning with that line, before any other tool call, plan write or section load, and never skip the helper: the mode's application and rationale; every governing approved row's ID, answer reference and accepted scope. Keep rows separate. - `plan-ceo-review-mode: AUTO_DECIDE`: `Auto-decided review mode → (your preference). Change with /plan-tune. Approved decisions: . .` - Other selections: `Mode: ; approved decisions: . .` diff --git a/test/skill-ceo-section-ordering.test.ts b/test/skill-ceo-section-ordering.test.ts index 8b6949ffa..31e512378 100644 --- a/test/skill-ceo-section-ordering.test.ts +++ b/test/skill-ceo-section-ordering.test.ts @@ -131,6 +131,15 @@ test('CEO handoff carries all answered rows instead of one synthetic approach', expect(handoff).not.toContain(''); }); +// ci-37176837432 paid-slice-3 HOLD SCOPE skipped the helper and paraphrased ("holding scope"); +// ci-37198445662 paid-slice-3 HOLD SCOPE ran it, then wrote the plan, loaded sections and probed Codex +// for 114 s before the posture chat. Both spent the case's 240 s post-selection window. +test('CEO mode handoff chat follows the helper before any other tool call', () => { + const selection = between(skeletonSource(), '### 0E. Mode Selection', '### 0F.'); + const instruction = selection.slice(selection.indexOf('4. **Mode handoff:**')).split('\n')[0]!; + expect(instruction).toContain('Then send brief chat beginning with that line, before any other tool call, plan write or section load, and never skip the helper'); +}); + // Guards the public handoff instruction, not model compliance or posture detection. test('CEO mode handoff applies the selected mode before the next question', () => { const selection = between(skeletonSource(), '### 0E. Mode Selection', '### 0F.');