feat(gstack2)!: remove /design skill — canonical surface is now 5 (plan/qa/debug/review/ship) - #28
Conversation
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Remove the four design-only bug-fix overlays (garrytan#696, garrytan#1777, garrytan#1920, garrytan#2189), prune design modules from the multi-target garrytan#2030 overlay, and lower the overlay count guards from 29 to 25. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Delete the six design skill source dirs (design-consultation, design-shotgun, design-html, plan-design-review, design-review, ios-design-review) and diagram/, plus make-pdf's skill template (its runtime binary source is kept). De-reference the removed skills from the free-suite tests and skill-list helpers, dropping the public surface from six dispatchers to five (plan, qa, debug, review, ship). The design/diagram/pdf runtime capability binaries are intentionally kept: they are mandatory runtime payloads wired through runtime/install.js and asserted by RUNTIME.md parity guards and the runtime test suite, which the skill removal does not touch. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Regenerate the GStack 2 tree for the five-skill surface: update assertInventory and parity count guards (47 sources, 25 mandatory, 14 sections, 19 scenarios, 25 overlays, 48 compat files, 47 aliases), recompute EXPECTED_PARITY_CHECKS to 4336, drop the eight design source keys from the immutable baseline render oracle, and remove the design-html pretext asset. A ported-render transform in render-legacy de-references autoplan's removed plan-design-review Phase 2 so the canonical carve never packages a deleted module; the immutable baseline render (renderLegacyBody) is byte-unchanged. The five surviving dispatchers and their module render hashes are unchanged apart from autoplan's intentional de-reference and the removed design sources. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Update the public-surface contract, dispatcher tree, and inventory counts in CLAUDE.md, README.md, docs/gstack-2/ARCHITECTURE.md, and docs/gstack-2/STATUS.md to describe five skills (plan, qa, debug, review, ship). The retained 1.x review-army/design-voice prose (Garry's voice, community-PR guarded) and the kept design/diagram/PDF runtime-capability evidence are left intact. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ests Drop design from the browser-provider TREES list (five skills) and move the stale-pruning fixture's planted asset from the removed skills/design tree to a surviving tree (skills/qa) so regeneration still prunes it. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reconcile branch worktree-agent-ae65a7436747fff7e (design removal, 6→5 dispatchers) onto current main. Resolve source files as a union of both intents and regenerate all generated output. - Keep main's founder-resources overlay garrytan#538 and its case in evaluateBugFixRegression; keep VERSION 1.61.2.0, the founder_resources config key, and the /plan empty-target fast path. - Drop the /design dispatcher, its 8 source modules, 6 routing scenarios, 2 carved sections, and 4 design-only overlays (garrytan#696/garrytan#1777/garrytan#1920/garrytan#2189); prune design targets from garrytan#2030. - Net counts: 5 dispatchers, 47 source modules, 14 sections, 19 scenarios, 26 judgment overlays, 4341 parity checks. - Regenerated skills/, compat/, evals/parity/, and docs/gstack-2 evidence via gen:skill-docs + gen:gstack2. Design runtime binaries (design/src, make-pdf/src, lib/diagram-render) kept as mandatory runtime payloads. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Bugbot is not enabled for your account, so this pull request was not reviewed. Enable Bugbot in the Cursor dashboard to get automatic reviews on future PRs. |
There was a problem hiding this comment.
12 issues found across 183 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="scripts/gstack2/render-legacy.ts">
<violation number="1" location="scripts/gstack2/render-legacy.ts:225">
P2: Some legacy `/plan-design-review` pointers still survive the new retirement rewrite, so generated docs can reference a removed module path. Expanding this neutralization to all known path forms (host root, `~/.claude/...`, and `$CLAUDE_SKILL_DIR` variants) would keep the five-skill surface consistent and avoid dangling `references/legacy/plan-design-review.md` links.</violation>
</file>
<file name="docs/gstack-2/ARCHITECTURE.md">
<violation number="1" location="docs/gstack-2/ARCHITECTURE.md:9">
P2: Repository agents still receive a conflicting six-skill contract and may try to route through the removed `/design` tree. Update `AGENTS.md` to list the five canonical skills and remove its `/design` requirements in the same change.</violation>
<violation number="2" location="docs/gstack-2/ARCHITECTURE.md:39">
P3: The architecture now gives conflicting section inventory/evidence totals: 14 carved sections here versus 16 later. Refresh the downstream parity/semantic counts, or distinguish the inventories explicitly if they intentionally measure different section sets.</violation>
</file>
<file name="scripts/gstack2/host-adversarial.ts">
<violation number="1" location="scripts/gstack2/host-adversarial.ts:434">
P3: The mismatch error message is manually tied to today’s skill count instead of the actual PUBLIC_SKILLS set. Using PUBLIC_SKILLS.length keeps this guard accurate when canonical skills change again.</violation>
</file>
<file name="scripts/gstack2/generate-skill-tree.ts">
<violation number="1" location="scripts/gstack2/generate-skill-tree.ts:767">
P3: Generated migration docs now undercount bug-fix overlay sources, which can mislead maintainers during parity/audit review. The template string still says "24 upstream PRs" even though the generator enforces 26 overlays; updating the literal keeps docs aligned with actual inventory.</violation>
<violation number="2" location="scripts/gstack2/generate-skill-tree.ts:788">
P3: The parity summary text now reports fewer regression ports than are actually generated. Changing this hardcoded count to 26 prevents stale inventory claims in `JUDGMENT-PARITY.md`.</violation>
<violation number="3" location="scripts/gstack2/generate-skill-tree.ts:947">
P2: The generated provenance manifest will advertise `bug_fix_ports: 24` while containing 26 bug-fix overlays, creating inconsistent machine-readable metadata for downstream checks. Aligning `counts.bug_fix_ports` with the actual overlay set avoids false drift and parsing ambiguity.</violation>
</file>
<file name="test/skill-validation.test.ts">
<violation number="1" location="test/skill-validation.test.ts:9">
P3: The public surface is now five dispatchers, but this test is still named for six, which makes failure output and test coverage documentation misleading. Updating the title to “five public dispatchers” would keep the validation suite self-consistent.</violation>
</file>
<file name="docs/gstack-2/STATUS.md">
<violation number="1" location="docs/gstack-2/STATUS.md:50">
P2: The new inventory still undercounts regression definitions: the surviving overlay source and generated fixtures both contain 26, not 25. Both changed `25 ... regression definitions` claims should be updated together.</violation>
<violation number="2" location="docs/gstack-2/STATUS.md:55">
P2: The status underreports the parity result by five checks, conflicting with both the executable oracle and parity document. This should read 4,341.</violation>
<violation number="3" location="docs/gstack-2/STATUS.md:57">
P2: The authoritative status now contradicts its linked evidence documents and its own Evidence index, so readers cannot verify the new post-design counts. Regenerating/updating those evidence rows and documents alongside this claim would keep the gate evidence coherent.</violation>
</file>
<file name="CLAUDE.md">
<violation number="1" location="CLAUDE.md:5">
P2: Agent routing is now contradictory: `CLAUDE.md` presents five canonical skills while `AGENTS.md` still instructs agents that `/design` is a sixth public skill and routes design aliases to it. Updating the canonical contract without updating `AGENTS.md` can cause agents to discover or invoke the retired dispatcher.</violation>
</file>
Tip: instead of fixing issues one by one fix them all with cubic
Re-trigger cubic
| '$GSTACK_ROOT/plan-design-review/SKILL.md', | ||
| 'the retired design-review phase (removed from the five public skills; skip it)', | ||
| ) |
There was a problem hiding this comment.
P2: Some legacy /plan-design-review pointers still survive the new retirement rewrite, so generated docs can reference a removed module path. Expanding this neutralization to all known path forms (host root, ~/.claude/..., and $CLAUDE_SKILL_DIR variants) would keep the five-skill surface consistent and avoid dangling references/legacy/plan-design-review.md links.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/render-legacy.ts, line 225:
<comment>Some legacy `/plan-design-review` pointers still survive the new retirement rewrite, so generated docs can reference a removed module path. Expanding this neutralization to all known path forms (host root, `~/.claude/...`, and `$CLAUDE_SKILL_DIR` variants) would keep the five-skill surface consistent and avoid dangling `references/legacy/plan-design-review.md` links.</comment>
<file context>
@@ -209,9 +209,26 @@ function portLegacyText(value: string, source: string): string {
+ // dangling module pointer is neutralized rather than repackaged.
+ body = body
+ .replaceAll(
+ '$GSTACK_ROOT/plan-design-review/SKILL.md',
+ 'the retired design-review phase (removed from the five public skills; skip it)',
+ )
</file context>
| '$GSTACK_ROOT/plan-design-review/SKILL.md', | |
| 'the retired design-review phase (removed from the five public skills; skip it)', | |
| ) | |
| '$GSTACK_ROOT/plan-design-review/SKILL.md', | |
| 'the retired design-review phase (removed from the five public skills; skip it)', | |
| ) | |
| .replaceAll( | |
| '~/.claude/skills/gstack/plan-design-review/SKILL.md', | |
| 'the retired design-review phase (removed from the five public skills; skip it)', | |
| ) | |
| .replaceAll( | |
| '${CLAUDE_SKILL_DIR}/../plan-design-review/SKILL.md', | |
| 'the retired design-review phase (removed from the five public skills; skip it)', | |
| ) | |
| .replaceAll( | |
| '$CLAUDE_SKILL_DIR/../plan-design-review/SKILL.md', | |
| 'the retired design-review phase (removed from the five public skills; skip it)', | |
| ) |
| ## Product boundary | ||
|
|
||
| GStack 2 is an engineering judgment layer with exactly six public skills: | ||
| GStack 2 is an engineering judgment layer with exactly five public skills: |
There was a problem hiding this comment.
P2: Repository agents still receive a conflicting six-skill contract and may try to route through the removed /design tree. Update AGENTS.md to list the five canonical skills and remove its /design requirements in the same change.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/gstack-2/ARCHITECTURE.md, line 9:
<comment>Repository agents still receive a conflicting six-skill contract and may try to route through the removed `/design` tree. Update `AGENTS.md` to list the five canonical skills and remove its `/design` requirements in the same change.</comment>
<file context>
@@ -6,10 +6,10 @@ The authoritative gate state is [STATUS.md](./STATUS.md).
## Product boundary
-GStack 2 is an engineering judgment layer with exactly six public skills:
+GStack 2 is an engineering judgment layer with exactly five public skills:
```text
</file context>
| base_sha: GSTACK2_BASE_SHA, | ||
| public_skills: [...TREE_NAMES], | ||
| counts: { public_skills: 6, mandatory_inputs: 31, templates: 55, section_templates: 16, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 25, bug_fix_ports: 28, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length }, | ||
| counts: { public_skills: 5, mandatory_inputs: 25, templates: 47, section_templates: 14, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 19, bug_fix_ports: 24, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length }, |
There was a problem hiding this comment.
P2: The generated provenance manifest will advertise bug_fix_ports: 24 while containing 26 bug-fix overlays, creating inconsistent machine-readable metadata for downstream checks. Aligning counts.bug_fix_ports with the actual overlay set avoids false drift and parsing ambiguity.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/generate-skill-tree.ts, line 947:
<comment>The generated provenance manifest will advertise `bug_fix_ports: 24` while containing 26 bug-fix overlays, creating inconsistent machine-readable metadata for downstream checks. Aligning `counts.bug_fix_ports` with the actual overlay set avoids false drift and parsing ambiguity.</comment>
<file context>
@@ -945,7 +944,7 @@ function main(): void {
base_sha: GSTACK2_BASE_SHA,
public_skills: [...TREE_NAMES],
- counts: { public_skills: 6, mandatory_inputs: 31, templates: 55, section_templates: 16, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 25, bug_fix_ports: 28, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length },
+ counts: { public_skills: 5, mandatory_inputs: 25, templates: 47, section_templates: 14, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 19, bug_fix_ports: 24, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length },
sources: sourceRecords,
sections: sectionRecords,
</file context>
| counts: { public_skills: 5, mandatory_inputs: 25, templates: 47, section_templates: 14, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 19, bug_fix_ports: 24, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length }, | |
| counts: { public_skills: 5, mandatory_inputs: 25, templates: 47, section_templates: 14, packaged_section_copies: sectionCopies.length, internal_execution_adapters: 1, scenarios: 19, bug_fix_ports: 26, assets: assets.length, dependency_copies: dependencyCopies.length, runtime_helpers: runtimeHelpers.length }, |
| @@ -23,8 +23,9 @@ PR, or PR-ready claim is authorized by this status. | |||
| them candidate regressions. | |||
There was a problem hiding this comment.
P2: The new inventory still undercounts regression definitions: the surviving overlay source and generated fixtures both contain 26, not 25. Both changed 25 ... regression definitions claims should be updated together.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/gstack-2/STATUS.md, line 50:
<comment>The new inventory still undercounts regression definitions: the surviving overlay source and generated fixtures both contain 26, not 25. Both changed `25 ... regression definitions` claims should be updated together.</comment>
<file context>
@@ -34,27 +35,27 @@ PR, or PR-ready claim is authorized by this status.
+ 1.x baseline of about 1,100 token-equivalents; `test/gstack2-skills.test.ts`
+ enforces the 75%-below ceiling on every run.
+- [x] Generated inventory contains 47 preserved modules, 14 carved sections,
+ 19 scenarios, 25 regression definitions, and 72 assets.
+- [x] Compatibility aliases remain opt-in and outside default five-skill
discovery; each prints its replacement and contains no copied judgment.
</file context>
| @@ -23,8 +23,9 @@ PR, or PR-ready claim is authorized by this status. | |||
| them candidate regressions. | |||
There was a problem hiding this comment.
P2: The authoritative status now contradicts its linked evidence documents and its own Evidence index, so readers cannot verify the new post-design counts. Regenerating/updating those evidence rows and documents alongside this claim would keep the gate evidence coherent.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/gstack-2/STATUS.md, line 57:
<comment>The authoritative status now contradicts its linked evidence documents and its own Evidence index, so readers cannot verify the new post-design counts. Regenerating/updating those evidence rows and documents alongside this claim would keep the gate evidence coherent.</comment>
<file context>
@@ -34,27 +35,27 @@ PR, or PR-ready claim is authorized by this status.
- executions, 15 comparison dimensions, 16 carved sections, and nine
+- [x] The regenerated parity rerun is green: 4,336 checks covering
+ 47 modules, 14 sections, 19 scenarios, 25 regressions, and 72 assets.
+- [x] Deterministic semantic parity is green: 238 checks across 11 suites, 12
+ executions, 15 comparison dimensions, 14 carved sections, and eight
authority-policy unit cases, including unsupported numeric claims. Exact
</file context>
| @@ -6,10 +6,10 @@ The authoritative gate state is [STATUS.md](./STATUS.md). | |||
|
|
|||
There was a problem hiding this comment.
P3: The architecture now gives conflicting section inventory/evidence totals: 14 carved sections here versus 16 later. Refresh the downstream parity/semantic counts, or distinguish the inventories explicitly if they intentionally measure different section sets.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At docs/gstack-2/ARCHITECTURE.md, line 39:
<comment>The architecture now gives conflicting section inventory/evidence totals: 14 carved sections here versus 16 later. Refresh the downstream parity/semantic counts, or distinguish the inventories explicitly if they intentionally measure different section sets.</comment>
<file context>
@@ -35,8 +35,8 @@ compat/*.md internal aliases, never default skills
-`scripts/gstack2/generate-skill-tree.ts` mechanically renders 55 pinned legacy
-modules, inlines 16 carved sections, and carries 78 assets. The generator
+`scripts/gstack2/generate-skill-tree.ts` mechanically renders 47 pinned legacy
+modules, inlines 14 carved sections, and carries 72 assets. The generator
records source Git blob IDs and normalized render hashes. It adds only reviewed
upstream bug-fix overlays, each with a PR link, stable anchor, and regression fixture. The parity
</file context>
| const entries = fs.readdirSync(destinationRoot).sort(); | ||
| if (stableJson(entries) !== stableJson([...PUBLIC_SKILLS].sort())) { | ||
| throw new Error(`Installed skill tree must contain exactly six skills, got: ${entries.join(', ')}`); | ||
| throw new Error(`Installed skill tree must contain exactly five skills, got: ${entries.join(', ')}`); |
There was a problem hiding this comment.
P3: The mismatch error message is manually tied to today’s skill count instead of the actual PUBLIC_SKILLS set. Using PUBLIC_SKILLS.length keeps this guard accurate when canonical skills change again.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/host-adversarial.ts, line 434:
<comment>The mismatch error message is manually tied to today’s skill count instead of the actual PUBLIC_SKILLS set. Using PUBLIC_SKILLS.length keeps this guard accurate when canonical skills change again.</comment>
<file context>
@@ -431,7 +431,7 @@ export function copyCanonicalSkills(canonicalRoot: string, destinationRoot: stri
const entries = fs.readdirSync(destinationRoot).sort();
if (stableJson(entries) !== stableJson([...PUBLIC_SKILLS].sort())) {
- throw new Error(`Installed skill tree must contain exactly six skills, got: ${entries.join(', ')}`);
+ throw new Error(`Installed skill tree must contain exactly five skills, got: ${entries.join(', ')}`);
}
return snapshotTree(destinationRoot);
</file context>
| throw new Error(`Installed skill tree must contain exactly five skills, got: ${entries.join(', ')}`); | |
| throw new Error(`Installed skill tree must contain exactly ${PUBLIC_SKILLS.length} skills, got: ${entries.join(', ')}`); |
| Parity is executable, not a prose claim. Run \`bun run scripts/gstack2/run-parity.ts\` or the dedicated Bun tests. | ||
|
|
||
| The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 55 specialist sources, 16 carved sections, 25 routing scenarios, 28 regression ports, and **${assetCount} assets**. | ||
| The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 47 specialist sources, 14 carved sections, 19 routing scenarios, 24 regression ports, and **${assetCount} assets**. |
There was a problem hiding this comment.
P3: The parity summary text now reports fewer regression ports than are actually generated. Changing this hardcoded count to 26 prevents stale inventory claims in JUDGMENT-PARITY.md.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/generate-skill-tree.ts, line 788:
<comment>The parity summary text now reports fewer regression ports than are actually generated. Changing this hardcoded count to 26 prevents stale inventory claims in `JUDGMENT-PARITY.md`.</comment>
<file context>
@@ -786,16 +785,16 @@ function parityDoc(assetCount: number): string {
Parity is executable, not a prose claim. Run \`bun run scripts/gstack2/run-parity.ts\` or the dedicated Bun tests.
-The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 55 specialist sources, 16 carved sections, 25 routing scenarios, 28 regression ports, and **${assetCount} assets**.
+The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 47 specialist sources, 14 carved sections, 19 routing scenarios, 24 regression ports, and **${assetCount} assets**.
The suite verifies:
</file context>
| The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 47 specialist sources, 14 carved sections, 19 routing scenarios, 24 regression ports, and **${assetCount} assets**. | |
| The pinned release inventory passes **${EXPECTED_PARITY_CHECKS.toLocaleString('en-US')} checks** across 47 specialist sources, 14 carved sections, 19 routing scenarios, 26 regression ports, and **${assetCount} assets**. |
| - \`JUDGMENT_PRESERVING_CARVE\`: pinned specialist workflow with the retired shared onboarding wrapper excluded, retired invocations resolved to six public routes, host/runtime paths normalized, and large carved phases loaded lazily from package-local pinned references. | ||
| - \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 28 upstream PRs and issues and its regression fixture. | ||
| - \`JUDGMENT_PRESERVING_CARVE\`: pinned specialist workflow with the retired shared onboarding wrapper excluded, retired invocations resolved to five public routes, host/runtime paths normalized, and large carved phases loaded lazily from package-local pinned references. | ||
| - \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 24 upstream PRs and issues and its regression fixture. |
There was a problem hiding this comment.
P3: Generated migration docs now undercount bug-fix overlay sources, which can mislead maintainers during parity/audit review. The template string still says "24 upstream PRs" even though the generator enforces 26 overlays; updating the literal keeps docs aligned with actual inventory.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At scripts/gstack2/generate-skill-tree.ts, line 767:
<comment>Generated migration docs now undercount bug-fix overlay sources, which can mislead maintainers during parity/audit review. The template string still says "24 upstream PRs" even though the generator enforces 26 overlays; updating the literal keeps docs aligned with actual inventory.</comment>
<file context>
@@ -764,16 +763,16 @@ ${rows}
-- \`JUDGMENT_PRESERVING_CARVE\`: pinned specialist workflow with the retired shared onboarding wrapper excluded, retired invocations resolved to six public routes, host/runtime paths normalized, and large carved phases loaded lazily from package-local pinned references.
-- \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 28 upstream PRs and issues and its regression fixture.
+- \`JUDGMENT_PRESERVING_CARVE\`: pinned specialist workflow with the retired shared onboarding wrapper excluded, retired invocations resolved to five public routes, host/runtime paths normalized, and large carved phases loaded lazily from package-local pinned references.
+- \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 24 upstream PRs and issues and its regression fixture.
- Asset relocation is byte-for-byte from the pinned Git blob and is indexed per tree.
`;
</file context>
| - \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 24 upstream PRs and issues and its regression fixture. | |
| - \`BUG_FIX\`: the canonical carved body plus a clearly delimited judgment overlay sourced from one of the 26 upstream PRs and issues and its regression fixture. |
| @@ -6,7 +6,7 @@ import * as fs from 'fs'; | |||
| import * as path from 'path'; | |||
|
|
|||
| const ROOT = path.resolve(import.meta.dir, '..'); | |||
| const PUBLIC_SKILLS = ['debug', 'design', 'plan', 'qa', 'review', 'ship'] as const; | |||
| const PUBLIC_SKILLS = ['debug', 'plan', 'qa', 'review', 'ship'] as const; | |||
There was a problem hiding this comment.
P3: The public surface is now five dispatchers, but this test is still named for six, which makes failure output and test coverage documentation misleading. Updating the title to “five public dispatchers” would keep the validation suite self-consistent.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/skill-validation.test.ts, line 9:
<comment>The public surface is now five dispatchers, but this test is still named for six, which makes failure output and test coverage documentation misleading. Updating the title to “five public dispatchers” would keep the validation suite self-consistent.</comment>
<file context>
@@ -6,7 +6,7 @@ import * as fs from 'fs';
const ROOT = path.resolve(import.meta.dir, '..');
-const PUBLIC_SKILLS = ['debug', 'design', 'plan', 'qa', 'review', 'ship'] as const;
+const PUBLIC_SKILLS = ['debug', 'plan', 'qa', 'review', 'ship'] as const;
function publicSkillPath(skill: string): string {
</file context>
Removes the
/designskill entirely. Canonical surface 6→5.skills/design/+ 4 design-only overlays (feat(design-review): add Phase 7 - Thinking Fast and Slow - Cognitive Load (S1/S2) audit garrytan/gstack#696/fix(taste): rejected preferences must carry rejection-strength confidence garrytan/gstack#1777/feat(design-review): capture the design system before auditing + domain/register copy checks garrytan/gstack#1920/fix: accept thesis framing in design eval garrytan/gstack#2189); keeps /office-hours -- kill the glazing in the final step garrytan/gstack#538 + prunes design from v1.60.0.0 feat(learnings): signal-gated capture + helpful/harmful counters garrytan/gstack#2030 → 26 overlays.🤖 Generated with Claude Code
Summary by cubic
Remove the
/designdispatcher and all design skills, making the public surface five skills:/plan,/qa,/debug,/review, and/ship. Parity for surviving skills is unchanged; only the eight design sources were dropped.Refactors
scripts/gstack2/*.Migration
/design*invocations and references; only/plan,/qa,/debug,/review,/shipare supported./designentry point.Written for commit 83ce3a0. Summary will update on new commits.