mirror of
https://github.com/garrytan/gstack.git
synced 2026-05-08 21:49:45 +08:00
feat: SELECTIVE EXPANSION + smarter ship gates (v0.5.3) (#134)
* feat: SELECTIVE EXPANSION mode + user control for CEO review Add 4th mode to /plan-ceo-review: SELECTIVE EXPANSION holds current scope as baseline but surfaces expansion opportunities one by one for cherry-picking. All modes now present every scope-expanding idea as individual AskUserQuestion calls — user opts in or out of each one. EXPANSION recommends enthusiastically, SELECTIVE recommends neutrally. CEO plan persistence writes decisions to disk. * feat: review dashboard — eng required, CEO/design optional Only Eng Review gates shipping. CEO Review recommended for big product changes, Design Review for UI work — both informational only. Adds skip_eng_review global config to disable the gate entirely. * chore: bump version and changelog (v0.5.3) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -666,6 +666,36 @@ describe('Planted-bug fixture validation', () => {
|
||||
});
|
||||
});
|
||||
|
||||
// --- CEO review mode validation ---
|
||||
|
||||
describe('CEO review mode validation', () => {
|
||||
const content = fs.readFileSync(path.join(ROOT, 'plan-ceo-review', 'SKILL.md'), 'utf-8');
|
||||
|
||||
test('has all four CEO review modes defined', () => {
|
||||
const modes = ['SCOPE EXPANSION', 'SELECTIVE EXPANSION', 'HOLD SCOPE', 'SCOPE REDUCTION'];
|
||||
for (const mode of modes) {
|
||||
expect(content).toContain(mode);
|
||||
}
|
||||
});
|
||||
|
||||
test('has CEO plan persistence step', () => {
|
||||
expect(content).toContain('ceo-plans');
|
||||
expect(content).toContain('status: ACTIVE');
|
||||
});
|
||||
|
||||
test('has docs/designs promotion section', () => {
|
||||
expect(content).toContain('docs/designs');
|
||||
expect(content).toContain('PROMOTED');
|
||||
});
|
||||
|
||||
test('mode quick reference has four columns', () => {
|
||||
expect(content).toContain('EXPANSION');
|
||||
expect(content).toContain('SELECTIVE');
|
||||
expect(content).toContain('HOLD SCOPE');
|
||||
expect(content).toContain('REDUCTION');
|
||||
});
|
||||
});
|
||||
|
||||
// --- gstack-slug helper ---
|
||||
|
||||
describe('gstack-slug', () => {
|
||||
|
||||
Reference in New Issue
Block a user