fix(brief): a brief with no research topics prints its next steps instead of entering the auto-only phase
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
95eaa8dc57
commit
8f9b0abfad
3 changed files with 35 additions and 3 deletions
|
|
@ -494,3 +494,32 @@ for (const rel of ['README.md', 'docs/operations.md']) {
|
|||
assert.doesNotMatch(p, /stats/i, `${rel}: the profile paragraph still names stats`);
|
||||
});
|
||||
}
|
||||
|
||||
// --- #47 ---------------------------------------------------------------------------
|
||||
// /trekbrief Phase 5 said "Skip this phase if research_topics = 0. Proceed
|
||||
// directly to Phase 6.", so a brief with no research topics walked into the
|
||||
// auto-only research dispatch nobody opted into. It now prints the manual
|
||||
// next steps without the /trekresearch lines, runs Phase 7 and stops.
|
||||
|
||||
test('[#47] Phase 5: a brief with no research topics prints /trekplan --project and stops, never proceeds to Phase 6', () => {
|
||||
const text = read('commands/trekbrief.md');
|
||||
const p5 = flat(section(text, '## Phase 5 — Auto-orchestration opt-in (if research_topics > 0)'));
|
||||
assert.doesNotMatch(p5, /Skip this phase if research_topics = 0/, 'Phase 5 still skips straight on with zero topics');
|
||||
const opening = partAt('commands/trekbrief.md', '## Phase 5 — Auto-orchestration opt-in', (l) => l.startsWith('Ask the user'));
|
||||
assert.doesNotMatch(opening, /proceed directly to Phase 6/i, 'a zero-topic brief still proceeds directly to Phase 6');
|
||||
assert.match(opening, /\*\*With research_topics = 0\*\*, print the manual-path output below without the `\/trekresearch` lines \(Brief, then `\/trekplan --project \{PROJECT_DIR\}`, then `\/trekexecute --project \{PROJECT_DIR\}`\), then run Phase 7 and stop\./);
|
||||
assert.match(opening, /Phase 6 is never entered without the operator's opt-in\./);
|
||||
const manual = flat(section(text, '### Manual path (default)'));
|
||||
assert.match(manual, /Then: \/trekplan --project \{PROJECT_DIR\} Then: \/trekexecute --project \{PROJECT_DIR\}/);
|
||||
assert.match(manual, /Stop\. Do not continue to Phase 6\./);
|
||||
});
|
||||
|
||||
test('[#47] Phase 6 runs only after the operator opted into auto mode and Phase 4h approved the intent', () => {
|
||||
const p6 = flat(section(read('commands/trekbrief.md'), '## Phase 6 — Auto research dispatch (auto path only)'));
|
||||
assert.match(p6, /^## Phase 6 — Auto research dispatch \(auto path only\) \*\*Runs only when user opted into auto mode,? and only after Phase 4h approved the intent\.\*\*/);
|
||||
});
|
||||
|
||||
test('keep: /trekbrief\'s auto path still requires an approved intent', () => {
|
||||
assert.equal(partAt('commands/trekbrief.md', '**Auto requires an approved intent.**', toBlank),
|
||||
'**Auto requires an approved intent.** If Phase 4h ended "Leave unapproved", the auto chain would halt at `/trekplan` anyway — print the manual-path output instead and stop.');
|
||||
});
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue