diff --git a/skills/skill-optimizer/SKILL.md b/skills/skill-optimizer/SKILL.md index a7c7a9087..1b0eb7e12 100644 --- a/skills/skill-optimizer/SKILL.md +++ b/skills/skill-optimizer/SKILL.md @@ -89,7 +89,7 @@ When invoked, this skill produces: - `skills//skillopt/rejected.json` — bounded LRU of rejected edits - `~/.gbrain/audit/skillopt-YYYY-Www.jsonl` — ISO-week-rotated audit trail -## Anti-patterns +## Anti-Patterns - **Don't bypass the validation gate.** The median-of-3 + epsilon=0.05 is load-bearing; without it, the optimizer accepts noise as improvement. diff --git a/test/phase-scope-coverage.test.ts b/test/phase-scope-coverage.test.ts index 547e9ba3b..503b2449d 100644 --- a/test/phase-scope-coverage.test.ts +++ b/test/phase-scope-coverage.test.ts @@ -41,14 +41,15 @@ describe('PHASE_SCOPE coverage', () => { expect(invalid).toEqual([]); }); - test('all 20 phases covered (regression on accidental omission)', () => { + test('all 21 phases covered (regression on accidental omission)', () => { // Pin the count so a future PR that adds a phase to ALL_PHASES // without updating PHASE_SCOPE notices here too. The v0.39.1.0 // master merge brought in the 17th phase (`schema-suggest`); v0.41 // adds 'extract_atoms' + 'synthesize_concepts' (T9 lens packs) + - // 'conversation_facts_backfill' (v0.41.11.0) for a total of 20. - expect(ALL_PHASES.length).toBe(20); - expect(Object.keys(PHASE_SCOPE).length).toBe(20); + // 'conversation_facts_backfill' (v0.41.11.0) for 20. v0.42.0.0 + // adds 'skillopt' (self-evolving skills cycle phase) for a total of 21. + expect(ALL_PHASES.length).toBe(21); + expect(Object.keys(PHASE_SCOPE).length).toBe(21); }); test('embed remains global (the headline brain-wide phase)', () => {