test: register wave-4 carves (office-hours ext, design-html, design-shotgun) — 20 carved skills

Both design entries carry requiredReads + loading-eval scenarios (D3A
condition). office-hours phase sections are mode-exclusive, so only the
always-reached design/handoff section is a deterministic requiredRead.
Baselines and ratchet recaptured.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Garry Tan
2026-08-25 18:05:54 +00:00
co-authored by Claude Fable 5
parent 4fce22d708
commit 64f55cc0b1
4 changed files with 91 additions and 31 deletions
+3 -3
View File
@@ -14,9 +14,9 @@
"context-save": 9551, "context-save": 9551,
"cso": 14524, "cso": 14524,
"design-consultation": 12985, "design-consultation": 12985,
"design-html": 15001, "design-html": 12841,
"design-review": 23567, "design-review": 23567,
"design-shotgun": 14031, "design-shotgun": 13028,
"devex-review": 14924, "devex-review": 14924,
"diagram": 3847, "diagram": 3847,
"document-generate": 11679, "document-generate": 11679,
@@ -36,7 +36,7 @@
"landing-report": 8844, "landing-report": 8844,
"learn": 8514, "learn": 8514,
"make-pdf": 4957, "make-pdf": 4957,
"office-hours": 21191, "office-hours": 17468,
"open-gstack-browser": 4429, "open-gstack-browser": 4429,
"openclaw/skills/gstack-openclaw-ceo-review": 2764, "openclaw/skills/gstack-openclaw-ceo-review": 2764,
"openclaw/skills/gstack-openclaw-investigate": 1429, "openclaw/skills/gstack-openclaw-investigate": 1429,
+19 -19
View File
@@ -1,10 +1,10 @@
{ {
"tag": "v1.69.1.0", "tag": "v1.69.1.0",
"capturedAt": "2026-08-25T17:36:29.077Z", "capturedAt": "2026-08-25T18:01:18.758Z",
"capturedFromCommit": "706091cb", "capturedFromCommit": "3bc3b5d5",
"capturedFromBranch": "prompt-token-load-reduction", "capturedFromBranch": "prompt-token-load-reduction",
"totalSkills": 53, "totalSkills": 53,
"totalCorpusBytes": 2810742, "totalCorpusBytes": 2814663,
"estTotalCatalogTokens": 4195, "estTotalCatalogTokens": 4195,
"topHeaviest": [ "topHeaviest": [
{ {
@@ -29,10 +29,10 @@
}, },
{ {
"skill": "office-hours", "skill": "office-hours",
"skillMdBytes": 116652, "skillMdBytes": 118175,
"skillMdLines": 1322, "skillMdLines": 1134,
"estTokens": 29163, "estTokens": 29544,
"tmplBytes": 30566, "tmplBytes": 15409,
"descriptionLen": 860, "descriptionLen": 860,
"hasGateEval": true, "hasGateEval": true,
"hasPeriodicEval": false "hasPeriodicEval": false
@@ -221,10 +221,10 @@
}, },
"design-html": { "design-html": {
"skill": "design-html", "skill": "design-html",
"skillMdBytes": 57411, "skillMdBytes": 58940,
"skillMdLines": 1122, "skillMdLines": 903,
"estTokens": 14353, "estTokens": 14735,
"tmplBytes": 22567, "tmplBytes": 17680,
"descriptionLen": 235, "descriptionLen": 235,
"hasGateEval": true, "hasGateEval": true,
"hasPeriodicEval": false "hasPeriodicEval": false
@@ -241,10 +241,10 @@
}, },
"design-shotgun": { "design-shotgun": {
"skill": "design-shotgun", "skill": "design-shotgun",
"skillMdBytes": 53700, "skillMdBytes": 54569,
"skillMdLines": 984, "skillMdLines": 915,
"estTokens": 13425, "estTokens": 13642,
"tmplBytes": 13331, "tmplBytes": 13378,
"descriptionLen": 788, "descriptionLen": 788,
"hasGateEval": true, "hasGateEval": true,
"hasPeriodicEval": false "hasPeriodicEval": false
@@ -431,10 +431,10 @@
}, },
"office-hours": { "office-hours": {
"skill": "office-hours", "skill": "office-hours",
"skillMdBytes": 116652, "skillMdBytes": 118175,
"skillMdLines": 1322, "skillMdLines": 1134,
"estTokens": 29163, "estTokens": 29544,
"tmplBytes": 30566, "tmplBytes": 15409,
"descriptionLen": 860, "descriptionLen": 860,
"hasGateEval": true, "hasGateEval": true,
"hasPeriodicEval": false "hasPeriodicEval": false
+67 -7
View File
@@ -249,16 +249,17 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
}, },
'office-hours': { 'office-hours': {
skill: 'office-hours', skill: 'office-hours',
expectedSections: ['design-and-handoff.md'], expectedSections: ['design-and-handoff.md', 'phase-2a-startup-diagnostic.md', 'phase-2b-builder-brainstorm.md'],
// Phase sections are mode-exclusive (a session runs exactly one of 2A/2B),
// so only the always-reached design/handoff section is a deterministic read.
requiredReads: ['design-and-handoff.md'], requiredReads: ['design-and-handoff.md'],
scenario: scenario:
'Run office hours for this product idea through to the end: have the diagnostic conversation, explore alternatives, then write the design doc and run the relationship handoff (Phases 5-6).', 'Run office hours for this product idea through to the end: have the diagnostic conversation, explore alternatives, then write the design doc and run the relationship handoff (Phases 5-6).',
staticInvariants: { staticInvariants: {
mustStayInSkeleton: [], mustStayInSkeleton: [],
mustMoveToSection: [], mustMoveToSection: ['### The Six Forcing Questions', '### Pushback Patterns', 'Anti-Sycophancy Rules', 'Wild exemplar'],
// office-hours is conversational; the design-doc/handoff section has no mustPrecedeStop: ['**Mode mapping:**'],
// post-STOP review gate in the skeleton. gateAfterStop: '## Section self-check',
gateAfterStop: undefined,
}, },
behavioral: 'prompt', behavioral: 'prompt',
// v1.2.0 activation lift: first-run-guidance section in the shared preamble, // v1.2.0 activation lift: first-run-guidance section in the shared preamble,
@@ -270,8 +271,8 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
// the #538 opt-out + D1 evidence directive — ratio 1.104 measured. // the #538 opt-out + D1 evidence directive — ratio 1.104 measured.
// #2499 project-scope MCP jq in the brain-sync block grew every tier-2+ // #2499 project-scope MCP jq in the brain-sync block grew every tier-2+
// skeleton ~1.5KB (entry resolution emitted once per SKILL.md). // skeleton ~1.5KB (entry resolution emitted once per SKILL.md).
maxSkeletonBytes: 82_900, // token-reduction Phases 1-2 (v1.69.x branch): preamble bash -> bin/gstack-skill-start, onboarding -> gated emission; measured 82,304 maxSkeletonBytes: 68_200, // token-reduction Phase 4 wave 4 (v1.69.x branch): 2A/2B carved out; measured 66,852
minUnionBytes: 106_000, // token-reduction Phases 1-2 (v1.69.x branch); measured union 117,855 minUnionBytes: 115_800, // Phase 4 wave 4; measured union 118,175
mustContain: ['design doc', 'problem statement'], mustContain: ['design doc', 'problem statement'],
maxSizeRatio: 1.12, maxSizeRatio: 1.12,
}, },
@@ -621,6 +622,65 @@ export const CARVE_GUARDS: Record<string, CarveGuard> = {
minUnionBytes: 66_000, // measured union 73,496 minUnionBytes: 66_000, // measured union 73,496
mustContain: ['retrospective', '45-minute gap', 'Ship of the week', 'Praise'], mustContain: ['retrospective', '45-minute gap', 'Ship of the week', 'Praise'],
}, },
// ── Token-reduction Phase 4 wave 4 (v1.69.x branch): design doctrine carve ──
// (D3A: read-on-demand doctrine, requiredReads-guarded + loading eval)
'design-html': {
skill: 'design-html',
expectedSections: ['doctrine.md', 'pretext-patterns.md'],
requiredReads: ['doctrine.md', 'pretext-patterns.md'],
scenario:
'Walk /design-html in SIMULATION — do not run bash, start servers, launch a browser, or take screenshots. Treat Step 0 as already resolved: no CEO plan, no approved mockup, no variants, no DESIGN.md, no prior finalized.html — freeform mode (Case C option D), screen name "pricing", the user wants a pricing page for a developer-tools SaaS (dark, dense, three tiers, monospace-leaning). Do NOT use AskUserQuestion — proceed with the stated assumptions. Read each pointed section before doing its step, then execute Steps 1-3: produce the implementation spec, state the chosen Pretext tier and why, and generate the complete Pretext-native HTML — include the HTML in your report instead of writing files. Stop there: skip Step 3.5, Step 4, and Step 5.',
staticInvariants: {
mustStayInSkeleton: [
'## Step 0: Input Detection',
'## Step 2: Smart Pretext API Routing',
'### HTML Generation',
'AI slop blacklist',
'## Step 4: Preview + Refinement Loop',
'## Important Rules',
],
mustPrecedeStop: ['## DESIGN SETUP'],
mustMoveToSection: [
'### The Three Laws of Usability',
'### The Goodwill Reservoir',
'### Pretext Wiring Patterns',
'### Pretext API Reference',
],
gateAfterStop: undefined, // operational skill, no plan-mode gate
},
behavioral: 'prompt',
maxSkeletonBytes: 49_900, // Phase 4 wave 4; measured 48,886
minUnionBytes: 57_500, // Phase 4 wave 4; measured union 58,682
mustContain: ["Don't make me think", "Users scan, they don't read", 'The Goodwill Reservoir', 'PRETEXT API CHEATSHEET', 'Pattern 3: Text around obstacles'],
},
'design-shotgun': {
skill: 'design-shotgun',
expectedSections: ['doctrine.md'],
requiredReads: ['doctrine.md'],
scenario:
'Walk /design-shotgun in SIMULATION — do not run bash, launch a browser, call the design binary, or spawn agents. Treat Step 0 as NO_PREVIOUS_SESSIONS and Step 1 context as fully gathered: a landing page for an open-source CLI tool, audience = developers evaluating it from a GitHub README link, no DESIGN.md, no taste profile or prior approved.json (Step 2 finds nothing). Do NOT use AskUserQuestion — proceed with the stated assumptions. Read each pointed section before doing its step, then run Step 3a at full depth: write three distinct variant concepts with their full variant-specific generation briefs, apply the anti-convergence check, and produce the concept list plus briefs as the report. Stop before Step 3b.',
staticInvariants: {
mustStayInSkeleton: [
'## Step 0: Session Detection',
'## Step 2: Taste Memory',
'Anti-convergence directive',
'### Step 3b: Concept Confirmation',
'## Important Rules',
],
mustPrecedeStop: ['## DESIGN SETUP'],
mustMoveToSection: [
'### The Three Laws of Usability',
'### The Goodwill Reservoir',
"Users scan, they don't read",
],
gateAfterStop: undefined,
},
behavioral: 'prompt',
maxSkeletonBytes: 50_600, // Phase 4 wave 4; measured 49,578
minUnionBytes: 53_200, // Phase 4 wave 4; measured union 54,290
mustContain: ["Don't make me think", "Users scan, they don't read", 'trunk test', '44px minimum'],
},
}; };
/** Sorted carved-skill names. Consumers derive their lists from this — no parallel lists. */ /** Sorted carved-skill names. Consumers derive their lists from this — no parallel lists. */
+2 -2
View File
@@ -139,7 +139,7 @@ export const E2E_TOUCHFILES: Record<string, string[]> = {
// devex, office-hours + future PR2 carves). One file iterating CARVE_GUARDS; // devex, office-hours + future PR2 carves). One file iterating CARVE_GUARDS;
// the selector sets GSTACK_CARVE_SKILL=<name> to scope cost to the changed // the selector sets GSTACK_CARVE_SKILL=<name> to scope cost to the changed
// skill (D-CODEX A). Touching the registry/helper or sections.ts runs all. // skill (D-CODEX A). Touching the registry/helper or sections.ts runs all.
'carve-section-loading': ['qa/**', 'browse/**', 'retro/**', 'autoplan/**', 'spec/**', 'setup-gbrain/**', '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'], 'carve-section-loading': ['design-html/**', 'design-shotgun/**', 'qa/**', 'browse/**', 'retro/**', 'autoplan/**', 'spec/**', 'setup-gbrain/**', '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'], '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'], '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'],
@@ -415,7 +415,7 @@ export const E2E_TOUCHFILES: Record<string, string[]> = {
// frontmatter. Touched by anything that changes resolver output, gen // frontmatter. Touched by anything that changes resolver output, gen
// pipeline, detection helper, refresh subcommand, or the on-demand // pipeline, detection helper, refresh subcommand, or the on-demand
// docs the resolver points to. // docs the resolver points to.
'office-hours-brain-writeback': [ 'office-hours-brain-writeback': ['office-hours/sections/**',
'scripts/resolvers/gbrain.ts', 'scripts/resolvers/gbrain.ts',
'scripts/gen-skill-docs.ts', 'scripts/gen-skill-docs.ts',
'bin/gstack-gbrain-detect', 'bin/gstack-gbrain-detect',