diff --git a/test/fixtures/context-budget.json b/test/fixtures/context-budget.json index 10d6b40ac..fe12de202 100644 --- a/test/fixtures/context-budget.json +++ b/test/fixtures/context-budget.json @@ -9,7 +9,7 @@ "browser-skills/hackernews-frontpage": 371, "canary": 9921, "careful": 919, - "codex": 21188, + "codex": 14412, "context-restore": 8934, "context-save": 9551, "cso": 14524, @@ -27,12 +27,12 @@ "guard": 889, "health": 10133, "investigate": 10785, - "ios-clean": 8310, - "ios-design-review": 8490, - "ios-fix": 8263, + "ios-clean": 8038, + "ios-design-review": 8218, + "ios-fix": 7991, "ios-qa": 10560, - "ios-sync": 8433, - "land-and-deploy": 23798, + "ios-sync": 8161, + "land-and-deploy": 14559, "landing-report": 8844, "learn": 8514, "make-pdf": 4957, @@ -51,7 +51,7 @@ "qa": 17873, "qa-only": 12355, "retro": 19313, - "review": 23737, + "review": 14374, "scrape": 3939, "setup-browser-cookies": 3119, "setup-deploy": 9674, diff --git a/test/fixtures/parity-baseline-v1.69.1.0.json b/test/fixtures/parity-baseline-v1.69.1.0.json index 375e9c167..16752b1dc 100644 --- a/test/fixtures/parity-baseline-v1.69.1.0.json +++ b/test/fixtures/parity-baseline-v1.69.1.0.json @@ -1,17 +1,17 @@ { "tag": "v1.69.1.0", - "capturedAt": "2026-08-25T16:05:43.563Z", - "capturedFromCommit": "7f780ef5", + "capturedAt": "2026-08-25T16:33:17.541Z", + "capturedFromCommit": "c7488f7e", "capturedFromBranch": "prompt-token-load-reduction", "totalSkills": 53, - "totalCorpusBytes": 2791573, + "totalCorpusBytes": 2798083, "estTotalCatalogTokens": 4195, "topHeaviest": [ { "skill": "ship", - "skillMdBytes": 200215, + "skillMdBytes": 200261, "skillMdLines": 1087, - "estTokens": 50054, + "estTokens": 50065, "tmplBytes": 29080, "descriptionLen": 293, "hasGateEval": true, @@ -19,9 +19,9 @@ }, { "skill": "plan-ceo-review", - "skillMdBytes": 136097, + "skillMdBytes": 136143, "skillMdLines": 1111, - "estTokens": 34024, + "estTokens": 34036, "tmplBytes": 29028, "descriptionLen": 764, "hasGateEval": true, @@ -29,9 +29,9 @@ }, { "skill": "office-hours", - "skillMdBytes": 116606, + "skillMdBytes": 116652, "skillMdLines": 1322, - "estTokens": 29152, + "estTokens": 29163, "tmplBytes": 30566, "descriptionLen": 860, "hasGateEval": true, @@ -39,9 +39,9 @@ }, { "skill": "plan-eng-review", - "skillMdBytes": 109661, + "skillMdBytes": 109707, "skillMdLines": 693, - "estTokens": 27415, + "estTokens": 27427, "tmplBytes": 13955, "descriptionLen": 201, "hasGateEval": true, @@ -49,9 +49,9 @@ }, { "skill": "plan-devex-review", - "skillMdBytes": 109584, + "skillMdBytes": 109630, "skillMdLines": 1095, - "estTokens": 27396, + "estTokens": 27408, "tmplBytes": 18598, "descriptionLen": 220, "hasGateEval": true, @@ -59,9 +59,9 @@ }, { "skill": "plan-design-review", - "skillMdBytes": 109044, + "skillMdBytes": 109090, "skillMdLines": 1132, - "estTokens": 27261, + "estTokens": 27273, "tmplBytes": 18463, "descriptionLen": 218, "hasGateEval": true, @@ -69,51 +69,51 @@ }, { "skill": "land-and-deploy", - "skillMdBytes": 91035, - "skillMdLines": 1619, - "estTokens": 22759, - "tmplBytes": 54352, + "skillMdBytes": 94191, + "skillMdLines": 966, + "estTokens": 23548, + "tmplBytes": 21056, "descriptionLen": 160, "hasGateEval": true, "hasPeriodicEval": false }, { "skill": "review", - "skillMdBytes": 90801, - "skillMdLines": 1485, - "estTokens": 22700, - "tmplBytes": 14141, + "skillMdBytes": 93357, + "skillMdLines": 925, + "estTokens": 23339, + "tmplBytes": 14178, "descriptionLen": 205, "hasGateEval": true, "hasPeriodicEval": false }, { "skill": "design-review", - "skillMdBytes": 90148, + "skillMdBytes": 90194, "skillMdLines": 1636, - "estTokens": 22537, + "estTokens": 22549, "tmplBytes": 11674, "descriptionLen": 306, "hasGateEval": true, "hasPeriodicEval": false }, { - "skill": "autoplan", - "skillMdBytes": 83668, - "skillMdLines": 1487, - "estTokens": 20917, - "tmplBytes": 46355, - "descriptionLen": 336, + "skill": "codex", + "skillMdBytes": 84304, + "skillMdLines": 886, + "estTokens": 21076, + "tmplBytes": 16072, + "descriptionLen": 187, "hasGateEval": true, - "hasPeriodicEval": true + "hasPeriodicEval": false } ], "skills": { "autoplan": { "skill": "autoplan", - "skillMdBytes": 83668, + "skillMdBytes": 83714, "skillMdLines": 1487, - "estTokens": 20917, + "estTokens": 20929, "tmplBytes": 46355, "descriptionLen": 336, "hasGateEval": true, @@ -151,9 +151,9 @@ }, "canary": { "skill": "canary", - "skillMdBytes": 37921, + "skillMdBytes": 37967, "skillMdLines": 663, - "estTokens": 9480, + "estTokens": 9492, "tmplBytes": 8033, "descriptionLen": 180, "hasGateEval": true, @@ -171,19 +171,19 @@ }, "codex": { "skill": "codex", - "skillMdBytes": 81044, - "skillMdLines": 1356, - "estTokens": 20261, - "tmplBytes": 43658, + "skillMdBytes": 84304, + "skillMdLines": 886, + "estTokens": 21076, + "tmplBytes": 16072, "descriptionLen": 187, "hasGateEval": true, "hasPeriodicEval": false }, "context-restore": { "skill": "context-restore", - "skillMdBytes": 34146, + "skillMdBytes": 34192, "skillMdLines": 554, - "estTokens": 8537, + "estTokens": 8548, "tmplBytes": 7092, "descriptionLen": 238, "hasGateEval": true, @@ -191,9 +191,9 @@ }, "context-save": { "skill": "context-save", - "skillMdBytes": 36506, + "skillMdBytes": 36552, "skillMdLines": 639, - "estTokens": 9127, + "estTokens": 9138, "tmplBytes": 9293, "descriptionLen": 168, "hasGateEval": true, @@ -201,9 +201,9 @@ }, "cso": { "skill": "cso", - "skillMdBytes": 70130, + "skillMdBytes": 70176, "skillMdLines": 896, - "estTokens": 17533, + "estTokens": 17544, "tmplBytes": 21724, "descriptionLen": 196, "hasGateEval": true, @@ -211,9 +211,9 @@ }, "design-consultation": { "skill": "design-consultation", - "skillMdBytes": 71003, + "skillMdBytes": 71049, "skillMdLines": 841, - "estTokens": 17751, + "estTokens": 17762, "tmplBytes": 9554, "descriptionLen": 890, "hasGateEval": true, @@ -221,9 +221,9 @@ }, "design-html": { "skill": "design-html", - "skillMdBytes": 57365, + "skillMdBytes": 57411, "skillMdLines": 1122, - "estTokens": 14341, + "estTokens": 14353, "tmplBytes": 22567, "descriptionLen": 235, "hasGateEval": true, @@ -231,9 +231,9 @@ }, "design-review": { "skill": "design-review", - "skillMdBytes": 90148, + "skillMdBytes": 90194, "skillMdLines": 1636, - "estTokens": 22537, + "estTokens": 22549, "tmplBytes": 11674, "descriptionLen": 306, "hasGateEval": true, @@ -241,9 +241,9 @@ }, "design-shotgun": { "skill": "design-shotgun", - "skillMdBytes": 53654, + "skillMdBytes": 53700, "skillMdLines": 984, - "estTokens": 13414, + "estTokens": 13425, "tmplBytes": 13331, "descriptionLen": 788, "hasGateEval": true, @@ -251,9 +251,9 @@ }, "devex-review": { "skill": "devex-review", - "skillMdBytes": 57072, + "skillMdBytes": 57118, "skillMdLines": 917, - "estTokens": 14268, + "estTokens": 14280, "tmplBytes": 7984, "descriptionLen": 201, "hasGateEval": false, @@ -271,9 +271,9 @@ }, "document-generate": { "skill": "document-generate", - "skillMdBytes": 44650, + "skillMdBytes": 44696, "skillMdLines": 863, - "estTokens": 11163, + "estTokens": 11174, "tmplBytes": 15940, "descriptionLen": 334, "hasGateEval": false, @@ -281,9 +281,9 @@ }, "document-release": { "skill": "document-release", - "skillMdBytes": 61769, + "skillMdBytes": 61815, "skillMdLines": 572, - "estTokens": 15442, + "estTokens": 15454, "tmplBytes": 6688, "descriptionLen": 192, "hasGateEval": true, @@ -321,9 +321,9 @@ }, "health": { "skill": "health", - "skillMdBytes": 38732, + "skillMdBytes": 38778, "skillMdLines": 687, - "estTokens": 9683, + "estTokens": 9695, "tmplBytes": 11617, "descriptionLen": 184, "hasGateEval": true, @@ -331,9 +331,9 @@ }, "investigate": { "skill": "investigate", - "skillMdBytes": 41230, + "skillMdBytes": 41276, "skillMdLines": 687, - "estTokens": 10308, + "estTokens": 10319, "tmplBytes": 11566, "descriptionLen": 1241, "hasGateEval": true, @@ -341,9 +341,9 @@ }, "ios-clean": { "skill": "ios-clean", - "skillMdBytes": 31755, - "skillMdLines": 485, - "estTokens": 7939, + "skillMdBytes": 30760, + "skillMdLines": 467, + "estTokens": 7690, "tmplBytes": 3743, "descriptionLen": 254, "hasGateEval": false, @@ -351,9 +351,9 @@ }, "ios-design-review": { "skill": "ios-design-review", - "skillMdBytes": 32447, - "skillMdLines": 488, - "estTokens": 8112, + "skillMdBytes": 31452, + "skillMdLines": 470, + "estTokens": 7863, "tmplBytes": 4417, "descriptionLen": 209, "hasGateEval": false, @@ -361,9 +361,9 @@ }, "ios-fix": { "skill": "ios-fix", - "skillMdBytes": 31576, - "skillMdLines": 484, - "estTokens": 7894, + "skillMdBytes": 30581, + "skillMdLines": 466, + "estTokens": 7645, "tmplBytes": 3574, "descriptionLen": 187, "hasGateEval": false, @@ -371,9 +371,9 @@ }, "ios-qa": { "skill": "ios-qa", - "skillMdBytes": 40367, + "skillMdBytes": 40413, "skillMdLines": 641, - "estTokens": 10092, + "estTokens": 10103, "tmplBytes": 12370, "descriptionLen": 223, "hasGateEval": true, @@ -381,9 +381,9 @@ }, "ios-sync": { "skill": "ios-sync", - "skillMdBytes": 32229, - "skillMdLines": 482, - "estTokens": 8057, + "skillMdBytes": 31234, + "skillMdLines": 464, + "estTokens": 7809, "tmplBytes": 4220, "descriptionLen": 269, "hasGateEval": true, @@ -391,19 +391,19 @@ }, "land-and-deploy": { "skill": "land-and-deploy", - "skillMdBytes": 91035, - "skillMdLines": 1619, - "estTokens": 22759, - "tmplBytes": 54352, + "skillMdBytes": 94191, + "skillMdLines": 966, + "estTokens": 23548, + "tmplBytes": 21056, "descriptionLen": 160, "hasGateEval": true, "hasPeriodicEval": false }, "landing-report": { "skill": "landing-report", - "skillMdBytes": 33801, + "skillMdBytes": 33847, "skillMdLines": 530, - "estTokens": 8450, + "estTokens": 8462, "tmplBytes": 6847, "descriptionLen": 195, "hasGateEval": false, @@ -411,9 +411,9 @@ }, "learn": { "skill": "learn", - "skillMdBytes": 32538, + "skillMdBytes": 32584, "skillMdLines": 564, - "estTokens": 8135, + "estTokens": 8146, "tmplBytes": 5594, "descriptionLen": 178, "hasGateEval": true, @@ -431,9 +431,9 @@ }, "office-hours": { "skill": "office-hours", - "skillMdBytes": 116606, + "skillMdBytes": 116652, "skillMdLines": 1322, - "estTokens": 29152, + "estTokens": 29163, "tmplBytes": 30566, "descriptionLen": 860, "hasGateEval": true, @@ -451,9 +451,9 @@ }, "pair-agent": { "skill": "pair-agent", - "skillMdBytes": 41532, + "skillMdBytes": 41578, "skillMdLines": 764, - "estTokens": 10383, + "estTokens": 10395, "tmplBytes": 13368, "descriptionLen": 167, "hasGateEval": false, @@ -461,9 +461,9 @@ }, "plan-ceo-review": { "skill": "plan-ceo-review", - "skillMdBytes": 136097, + "skillMdBytes": 136143, "skillMdLines": 1111, - "estTokens": 34024, + "estTokens": 34036, "tmplBytes": 29028, "descriptionLen": 764, "hasGateEval": true, @@ -471,9 +471,9 @@ }, "plan-design-review": { "skill": "plan-design-review", - "skillMdBytes": 109044, + "skillMdBytes": 109090, "skillMdLines": 1132, - "estTokens": 27261, + "estTokens": 27273, "tmplBytes": 18463, "descriptionLen": 218, "hasGateEval": true, @@ -481,9 +481,9 @@ }, "plan-devex-review": { "skill": "plan-devex-review", - "skillMdBytes": 109584, + "skillMdBytes": 109630, "skillMdLines": 1095, - "estTokens": 27396, + "estTokens": 27408, "tmplBytes": 18598, "descriptionLen": 220, "hasGateEval": true, @@ -491,9 +491,9 @@ }, "plan-eng-review": { "skill": "plan-eng-review", - "skillMdBytes": 109661, + "skillMdBytes": 109707, "skillMdLines": 693, - "estTokens": 27415, + "estTokens": 27427, "tmplBytes": 13955, "descriptionLen": 201, "hasGateEval": true, @@ -501,9 +501,9 @@ }, "plan-tune": { "skill": "plan-tune", - "skillMdBytes": 53871, + "skillMdBytes": 53917, "skillMdLines": 1024, - "estTokens": 13468, + "estTokens": 13479, "tmplBytes": 26922, "descriptionLen": 327, "hasGateEval": true, @@ -511,9 +511,9 @@ }, "qa": { "skill": "qa", - "skillMdBytes": 68357, + "skillMdBytes": 68403, "skillMdLines": 1326, - "estTokens": 17089, + "estTokens": 17101, "tmplBytes": 12701, "descriptionLen": 218, "hasGateEval": true, @@ -521,9 +521,9 @@ }, "qa-only": { "skill": "qa-only", - "skillMdBytes": 47237, + "skillMdBytes": 47283, "skillMdLines": 867, - "estTokens": 11809, + "estTokens": 11821, "tmplBytes": 3851, "descriptionLen": 165, "hasGateEval": true, @@ -531,9 +531,9 @@ }, "retro": { "skill": "retro", - "skillMdBytes": 73867, + "skillMdBytes": 73913, "skillMdLines": 1426, - "estTokens": 18467, + "estTokens": 18478, "tmplBytes": 42589, "descriptionLen": 838, "hasGateEval": true, @@ -541,10 +541,10 @@ }, "review": { "skill": "review", - "skillMdBytes": 90801, - "skillMdLines": 1485, - "estTokens": 22700, - "tmplBytes": 14141, + "skillMdBytes": 93357, + "skillMdLines": 925, + "estTokens": 23339, + "tmplBytes": 14178, "descriptionLen": 205, "hasGateEval": true, "hasPeriodicEval": false @@ -571,9 +571,9 @@ }, "setup-deploy": { "skill": "setup-deploy", - "skillMdBytes": 36979, + "skillMdBytes": 37025, "skillMdLines": 606, - "estTokens": 9245, + "estTokens": 9256, "tmplBytes": 7805, "descriptionLen": 197, "hasGateEval": true, @@ -581,9 +581,9 @@ }, "setup-gbrain": { "skill": "setup-gbrain", - "skillMdBytes": 75265, + "skillMdBytes": 75311, "skillMdLines": 1501, - "estTokens": 18816, + "estTokens": 18828, "tmplBytes": 48298, "descriptionLen": 325, "hasGateEval": true, @@ -591,9 +591,9 @@ }, "ship": { "skill": "ship", - "skillMdBytes": 200215, + "skillMdBytes": 200261, "skillMdLines": 1087, - "estTokens": 50054, + "estTokens": 50065, "tmplBytes": 29080, "descriptionLen": 293, "hasGateEval": true, @@ -601,9 +601,9 @@ }, "skillify": { "skill": "skillify", - "skillMdBytes": 44041, + "skillMdBytes": 44087, "skillMdLines": 837, - "estTokens": 11010, + "estTokens": 11022, "tmplBytes": 15338, "descriptionLen": 233, "hasGateEval": true, @@ -611,9 +611,9 @@ }, "spec": { "skill": "spec", - "skillMdBytes": 65359, + "skillMdBytes": 65405, "skillMdLines": 1229, - "estTokens": 16340, + "estTokens": 16351, "tmplBytes": 32196, "descriptionLen": 282, "hasGateEval": true, @@ -621,9 +621,9 @@ }, "sync-gbrain": { "skill": "sync-gbrain", - "skillMdBytes": 50862, + "skillMdBytes": 50908, "skillMdLines": 865, - "estTokens": 12716, + "estTokens": 12727, "tmplBytes": 23886, "descriptionLen": 246, "hasGateEval": false, diff --git a/test/helpers/carve-guards.ts b/test/helpers/carve-guards.ts index ad4d95523..b87738185 100644 --- a/test/helpers/carve-guards.ts +++ b/test/helpers/carve-guards.ts @@ -371,6 +371,91 @@ export const CARVE_GUARDS: Record = { // v1.64+v1.65 merge sums both waves' preamble growth; measured 1.073. maxSizeRatio: 1.08, }, + // ── Token-reduction Phase 4 wave 1 (v1.69.x branch) ────────────────────── + review: { + skill: 'review', + expectedSections: ['plan-completion.md', 'review-army.md', 'adversarial.md'], + requiredReads: ['plan-completion.md', 'review-army.md'], + scenario: + "The working tree has a real diff against the base branch (assume Step 1's git checks passed; the diff implements the PLAN.md cache layer). Run the /review flow: the scope-drift and plan-completion deep pass against PLAN.md, then the critical pass, then the Review Army specialist dispatch — apply the specialist checklists yourself instead of launching subagents. Produce the review report. Do NOT commit, push, or create a PR.", + staticInvariants: { + mustStayInSkeleton: [ + '## Step 0: Detect platform and base branch', + '## Step 1: Check branch', + '## Step 1.5: Scope Drift Detection', + '## Step 4: Critical pass (core review)', + '## Confidence Calibration', + '## Step 5: Fix-First Review', + '## Important Rules', + 'Persist Eng Review result', + ], + mustPrecedeStop: ['## Step 0: Detect platform and base branch'], + mustMoveToSection: [ + 'Plan File Discovery', + 'MULTI-SPECIALIST CONFIRMED', + 'Cross-model synthesis', + 'codex review --base', + ], + gateAfterStop: undefined, // operational multi-STOP skill, like ship + }, + behavioral: 'plan', + maxSkeletonBytes: 55_600, // Phase 4 wave 1; measured 55,010 + minUnionBytes: 89_000, // Phase 4 wave 1; measured union 93,357 + mustContain: ['confidence', 'P1', 'P2', 'Review Army', 'adversarial'], + }, + codex: { + skill: 'codex', + expectedSections: ['review-mode.md', 'challenge-mode.md', 'consult-mode.md'], + requiredReads: ['review-mode.md', 'consult-mode.md'], + scenario: + "Run the /codex skill twice: first Review mode against this branch's diff (produce the GATE verdict), then Consult mode with the follow-up 'is the strongest finding worth fixing before ship?'. Follow the Step 1 dispatch and read each selected mode's section before executing it; if the codex CLI is unavailable, still walk the mode instructions and report what you would run.", + staticInvariants: { + mustStayInSkeleton: [ + '## Step 1: Detect mode', + '## Filesystem Boundary', + 'Synthesis recommendation (REQUIRED)', + 'Recommendation: because', + 'UNDER_CODEX', + ], + mustPrecedeStop: ['## Step 1: Detect mode', '## Filesystem Boundary'], + mustMoveToSection: [ + 'The gate FAILS CLOSED', + 'Think like an attacker and a chaos engineer', + 'codex exec resume', + ], + gateAfterStop: 'EXIT PLAN MODE GATE', + }, + behavioral: 'prompt', + maxSkeletonBytes: 55_760, // Phase 4 wave 1; measured 55,155 + minUnionBytes: 83_400, // Phase 4 wave 1; measured union 84,304 + mustContain: ['GATE: PASS', 'CROSS-MODEL ANALYSIS', 'codex exec resume', 'sandbox_mode="read-only"', 'mktemp'], + maxSizeRatio: 1.06, // measured 1.040 vs the v1.64.1.0 parity baseline + }, + 'land-and-deploy': { + skill: 'land-and-deploy', + expectedSections: ['first-run-validation.md', 'readiness-gate.md', 'merge-and-deploy.md'], + requiredReads: ['readiness-gate.md', 'merge-and-deploy.md'], + scenario: + 'This project has a confirmed prior /land-and-deploy run (treat the Step 1.5 check as CONFIRMED). A PR exists for this branch and CI is green. Simulate — do not run gh or actually merge: run the pre-merge readiness gate and produce the readiness report, then walk the merge and deploy-strategy steps, stating which merge path and deploy strategy you would take. Do NOT use AskUserQuestion.', + staticInvariants: { + mustStayInSkeleton: [ + 'land-deploy-confirmed', + '## Step 3.4: VERSION drift detection', + '## Step 6: Wait for deploy', + ], + mustPrecedeStop: ['land-deploy-confirmed'], + mustMoveToSection: [ + 'PRE-MERGE READINESS REPORT', + 'gh pr merge --squash --auto --delete-branch', + 'DEPLOY INFRASTRUCTURE VALIDATION', + ], + gateAfterStop: undefined, // operational skill + }, + behavioral: 'prompt', + maxSkeletonBytes: 57_500, // Phase 4 wave 1; estimated ~56.2KB rendered — re-measured at regen + minUnionBytes: 91_000, // Phase 4 wave 1; estimated union ~94.9KB + mustContain: ['readiness', 'merge', 'canary', 'revert', 'staging'], + }, }; /** Sorted carved-skill names. Consumers derive their lists from this — no parallel lists. */ diff --git a/test/helpers/parity-harness.ts b/test/helpers/parity-harness.ts index 75477aaed..6825a6f0c 100644 --- a/test/helpers/parity-harness.ts +++ b/test/helpers/parity-harness.ts @@ -206,19 +206,8 @@ export function runParityChecks(opts: { */ const MONOLITH_INVARIANTS: ParityInvariant[] = [ // cso is now carved — its invariant is generated from CARVE_GUARDS below. - { - skill: 'review', - mustContain: ['confidence', 'P1', 'P2'], - mustHaveHeadings: ['## Preamble', '## When to invoke'], - // The adversarial step swapped its bare `command -v codex` check for the shared - // codexPreflight() block (install + auth tri-state + CODEX_MODE branch prose), - // landing ~6.3% over the v1.53.0.0 baseline. Intentional: it adds proper - // not-installed vs not-authed handling, not slop. - // v1.64+v1.65 merge: both waves grew the shared preamble (evidence - // directive + telemetry failure flags); measured 1.094. - maxSizeRatio: 1.10, - minBytes: 70_000, - }, + // review, codex, and land-and-deploy carved in token-reduction Phase 4 + // wave 1 (v1.69.x branch) — their invariants generate from CARVE_GUARDS too. { skill: 'qa', mustContain: ['bug', 'browse', 'fix'], diff --git a/test/helpers/touchfiles-data.ts b/test/helpers/touchfiles-data.ts index 65ebcc171..9069a0684 100644 --- a/test/helpers/touchfiles-data.ts +++ b/test/helpers/touchfiles-data.ts @@ -111,7 +111,7 @@ export const E2E_TOUCHFILES: Record = { // skills with no prior plan-mode test: 'office-hours-auto-mode': ['bin/gstack-skill-start', 'bin/gstack-skill-end', 'office-hours/**', 'scripts/resolvers/preamble/generate-completion-status.ts', 'scripts/resolvers/question-tuning.ts', 'scripts/resolvers/preamble/generate-ask-user-format.ts', 'scripts/resolvers/preamble.ts', 'test/helpers/claude-pty-runner.ts', 'test/skill-e2e-office-hours-auto-mode.test.ts'], 'office-hours-phase4-fork': ['bin/gstack-skill-start', 'bin/gstack-skill-end', 'office-hours/**', 'scripts/resolvers/preamble/generate-ask-user-format.ts', 'scripts/resolvers/preamble/generate-completion-status.ts', 'scripts/resolvers/preamble.ts', 'scripts/resolvers/question-tuning.ts', 'test/helpers/llm-judge.ts', 'test/skill-e2e-office-hours-phase4.test.ts'], - 'llm-judge-recommendation': ['test/helpers/llm-judge.ts', 'test/llm-judge-recommendation.test.ts', 'scripts/resolvers/preamble/generate-ask-user-format.ts', 'codex/SKILL.md.tmpl', 'scripts/resolvers/review.ts'], + 'llm-judge-recommendation': ['codex/**', 'test/helpers/llm-judge.ts', 'test/llm-judge-recommendation.test.ts', 'scripts/resolvers/preamble/generate-ask-user-format.ts', 'codex/SKILL.md.tmpl', 'scripts/resolvers/review.ts'], // v1.21+ AUTO_DECIDE preserve eval (periodic). Verifies the Tool resolution // fix doesn't trip the legitimate /plan-tune opt-in path: when the user has // written a never-ask preference, AUQ should still auto-decide rather than @@ -139,7 +139,7 @@ export const E2E_TOUCHFILES: Record = { // devex, office-hours + future PR2 carves). One file iterating CARVE_GUARDS; // the selector sets GSTACK_CARVE_SKILL= to scope cost to the changed // skill (D-CODEX A). Touching the registry/helper or sections.ts runs all. - 'carve-section-loading': ['plan-eng-review/**', 'plan-design-review/**', 'plan-devex-review/**', 'office-hours/**', 'document-release/**', 'design-consultation/**', 'cso/**', 'test/helpers/carve-guards.ts', 'scripts/resolvers/sections.ts', 'scripts/gen-skill-docs.ts', 'test/helpers/auq-sdk-capture.ts', 'test/helpers/session-runner.ts'], + 'carve-section-loading': ['review/**', 'codex/**', 'land-and-deploy/**', 'plan-eng-review/**', 'plan-design-review/**', 'plan-devex-review/**', 'office-hours/**', 'document-release/**', 'design-consultation/**', 'cso/**', 'test/helpers/carve-guards.ts', 'scripts/resolvers/sections.ts', 'scripts/gen-skill-docs.ts', 'test/helpers/auq-sdk-capture.ts', 'test/helpers/session-runner.ts'], 'autoplan-chain-pty': ['autoplan/**', 'plan-ceo-review/**', 'plan-design-review/**', 'plan-eng-review/**', 'plan-devex-review/**', 'test/fixtures/plans/ui-heavy-feature.md', 'test/helpers/claude-pty-runner.ts', 'test/skill-e2e-autoplan-chain.test.ts'], 'e2e-harness-audit': ['bin/gstack-skill-start', 'bin/gstack-skill-end', 'plan-ceo-review/**', 'plan-eng-review/**', 'plan-design-review/**', 'plan-devex-review/**', 'scripts/resolvers/preamble/generate-completion-status.ts', 'test/helpers/agent-sdk-runner.ts', 'test/helpers/claude-pty-runner.ts'], @@ -783,7 +783,7 @@ export const LLM_JUDGE_TOUCHFILES: Record = { 'office-hours/SKILL.md design sketch': ['office-hours/SKILL.md', 'office-hours/SKILL.md.tmpl', 'scripts/gen-skill-docs.ts'], // Deploy skills - 'land-and-deploy/SKILL.md workflow': ['land-and-deploy/SKILL.md', 'land-and-deploy/SKILL.md.tmpl'], + 'land-and-deploy/SKILL.md workflow': ['land-and-deploy/SKILL.md', 'land-and-deploy/SKILL.md.tmpl', 'land-and-deploy/sections/**'], 'canary/SKILL.md monitoring loop': ['canary/SKILL.md', 'canary/SKILL.md.tmpl'], 'benchmark/SKILL.md perf collection': ['benchmark/SKILL.md', 'benchmark/SKILL.md.tmpl'], 'setup-deploy/SKILL.md platform setup': ['setup-deploy/SKILL.md', 'setup-deploy/SKILL.md.tmpl'],