mirror of
https://github.com/garrytan/gstack.git
synced 2026-09-15 17:35:29 +02:00
feat(review): carve adversarial, plan-completion, and review-army into sections
The three resolver macros ship already carves as siblings now load on demand for /review too: skeleton 100.2KB -> 55.0KB (-45%), union 93.4KB. Resolvers stay the single source of truth (sections wrap the macros). Step 0/1, scope drift, critical pass, confidence calibration, and fix-first stay always-loaded. Fixtures and pins follow the moved content (codex-hardening wrapped-sites, review-army E2E fixture builds skeleton+sections with an empty-fixture guard). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5
parent
c7488f7e38
commit
3a78bf7c1d
@@ -169,15 +169,30 @@ describe('real-skill pins: section lists used by E2E fixtures', () => {
|
||||
expect(out.length).toBeLessThan(full.length * 0.5);
|
||||
});
|
||||
|
||||
test('REVIEW_ARMY_E2E_SECTIONS extracts from review/SKILL.md', () => {
|
||||
const out = extractSkillSections(path.join(ROOT, 'review'), REVIEW_ARMY_E2E_SECTIONS);
|
||||
// The army tests reference the Plan Completion Audit (inside Step 1.5)
|
||||
// and the Step 4.5 merge machinery (quality score, JSON schema, consensus).
|
||||
expect(out).toContain('PLAN COMPLETION AUDIT');
|
||||
expect(out).toContain('## Step 4.5: Review Army — Specialist Dispatch');
|
||||
expect(out).toContain('quality_score');
|
||||
expect(out).toContain('MULTI-SPECIALIST CONFIRMED');
|
||||
test('REVIEW_ARMY_E2E_SECTIONS extracts from review/SKILL.md + carved sections', () => {
|
||||
// /review is carved (T9): the Step 4.5 dispatch body lives in
|
||||
// sections/review-army.md and the Plan Completion Audit in
|
||||
// sections/plan-completion.md — the skeleton keeps only STOP-Read pointers.
|
||||
// The E2E fixture (test/skill-e2e-review-army.test.ts) extracts the
|
||||
// skeleton H2s minus Step 4.5, then appends both section files; this pin
|
||||
// mirrors that exact construction so a section rename or an empty carve
|
||||
// still fails FREE before a paid E2E setup throw.
|
||||
const skeletonSections = REVIEW_ARMY_E2E_SECTIONS.filter(
|
||||
(s) => !s.startsWith('Step 4.5'),
|
||||
);
|
||||
const out = extractSkillSections(path.join(ROOT, 'review'), skeletonSections);
|
||||
expect(out).toContain('## Step 1.5: Scope Drift Detection');
|
||||
expect(out).not.toContain('## Telemetry (run last)');
|
||||
|
||||
const planCompletion = fs.readFileSync(
|
||||
path.join(ROOT, 'review', 'sections', 'plan-completion.md'), 'utf-8');
|
||||
expect(planCompletion).toContain('PLAN COMPLETION AUDIT');
|
||||
|
||||
const army = fs.readFileSync(
|
||||
path.join(ROOT, 'review', 'sections', 'review-army.md'), 'utf-8');
|
||||
expect(army).toContain('## Step 4.5: Review Army — Specialist Dispatch');
|
||||
expect(army).toContain('quality_score');
|
||||
expect(army).toContain('MULTI-SPECIALIST CONFIRMED');
|
||||
});
|
||||
|
||||
test('RETRO_E2E_SECTIONS extracts from retro/SKILL.md', () => {
|
||||
|
||||
Reference in New Issue
Block a user