@hegemonart/get-design-done 1.28.5 → 1.28.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (71) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +102 -0
  4. package/README.md +2 -0
  5. package/package.json +1 -1
  6. package/reference/registry.json +0 -140
  7. package/reference/skill-authoring-contract.md +40 -9
  8. package/scripts/install.cjs +7 -0
  9. package/scripts/lib/install/converters/antigravity.cjs +48 -0
  10. package/scripts/lib/install/converters/augment.cjs +68 -0
  11. package/scripts/lib/install/converters/cline.cjs +206 -0
  12. package/scripts/lib/install/converters/codebuddy.cjs +55 -0
  13. package/scripts/lib/install/converters/codex.cjs +61 -0
  14. package/scripts/lib/install/converters/copilot.cjs +47 -0
  15. package/scripts/lib/install/converters/cursor.cjs +49 -0
  16. package/scripts/lib/install/converters/gemini.cjs +116 -0
  17. package/scripts/lib/install/converters/kilo.cjs +62 -0
  18. package/scripts/lib/install/converters/opencode.cjs +64 -0
  19. package/scripts/lib/install/converters/qwen.cjs +51 -0
  20. package/scripts/lib/install/converters/shared.cjs +377 -0
  21. package/scripts/lib/install/converters/trae.cjs +47 -0
  22. package/scripts/lib/install/converters/windsurf.cjs +47 -0
  23. package/scripts/lib/install/installer.cjs +529 -47
  24. package/scripts/lib/install/merge.cjs +31 -1
  25. package/scripts/lib/install/runtime-artifact-layout.cjs +431 -0
  26. package/scripts/lib/install/runtime-homes.cjs +225 -0
  27. package/scripts/lib/install/runtime-slash.cjs +172 -0
  28. package/scripts/lib/install/runtimes.cjs +25 -32
  29. package/skills/apply-reflections/SKILL.md +1 -1
  30. package/skills/cache-manager/SKILL.md +2 -2
  31. package/skills/compare/SKILL.md +8 -8
  32. package/skills/connections/SKILL.md +9 -9
  33. package/skills/darkmode/SKILL.md +8 -8
  34. package/skills/debug/SKILL.md +3 -3
  35. package/skills/design/SKILL.md +6 -6
  36. package/skills/discover/SKILL.md +7 -7
  37. package/skills/explore/SKILL.md +6 -6
  38. package/skills/health/SKILL.md +2 -2
  39. package/skills/new-cycle/SKILL.md +1 -1
  40. package/skills/peer-cli-add/SKILL.md +6 -6
  41. package/skills/peer-cli-customize/SKILL.md +5 -5
  42. package/skills/peers/SKILL.md +2 -2
  43. package/skills/plan/SKILL.md +10 -10
  44. package/skills/quality-gate/SKILL.md +1 -1
  45. package/skills/router/SKILL.md +3 -3
  46. package/skills/scan/SKILL.md +17 -17
  47. package/skills/start/SKILL.md +1 -1
  48. package/skills/style/SKILL.md +5 -5
  49. package/skills/turn-closeout/SKILL.md +1 -1
  50. package/skills/verify/SKILL.md +10 -10
  51. package/skills/warm-cache/SKILL.md +2 -2
  52. /package/{reference → skills/apply-reflections}/apply-reflections-procedure.md +0 -0
  53. /package/{reference → skills/cache-manager}/cache-policy.md +0 -0
  54. /package/{reference → skills/compare}/compare-rubric.md +0 -0
  55. /package/{reference → skills/connections}/connections-onboarding.md +0 -0
  56. /package/{reference → skills/darkmode}/darkmode-audit-procedure.md +0 -0
  57. /package/{reference → skills/debug}/debug-feedback-loops.md +0 -0
  58. /package/{reference → skills/design}/design-procedure.md +0 -0
  59. /package/{reference → skills/discover}/discover-procedure.md +0 -0
  60. /package/{reference → skills/explore}/explore-procedure.md +0 -0
  61. /package/{reference → skills/health}/health-mcp-detection.md +0 -0
  62. /package/{reference → skills/health}/health-skill-length-report.md +0 -0
  63. /package/{reference → skills/new-cycle}/milestone-completeness-rubric.md +0 -0
  64. /package/{reference → skills/peer-cli-add}/peer-cli-protocol.md +0 -0
  65. /package/{reference → skills/plan}/plan-procedure.md +0 -0
  66. /package/{reference → skills/quality-gate}/threat-modeling.md +0 -0
  67. /package/{reference → skills/router}/router-rules.md +0 -0
  68. /package/{reference → skills/scan}/scan-procedure.md +0 -0
  69. /package/{reference → skills/start}/start-procedure.md +0 -0
  70. /package/{reference → skills/style}/style-doc-procedure.md +0 -0
  71. /package/{reference → skills/verify}/verify-procedure.md +0 -0
@@ -5,14 +5,14 @@
5
5
  },
6
6
  "metadata": {
7
7
  "description": "Get Design Done — 5-stage agent-orchestrated design pipeline with 9 connections, handoff-first workflow, bidirectional Figma write-back, 22+ specialized agents, queryable knowledge layer (intel store, dependency analysis, learnings extraction), and a self-improvement loop (reflector, frontmatter + budget feedback, global-skills layer). v1.20.0 ships the SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream, and resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) for rate-limit + 429 + context-overflow recovery. Full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation (auto-tag + GitHub Release + release-time smoke test).",
8
- "version": "1.28.5"
8
+ "version": "1.28.7"
9
9
  },
10
10
  "plugins": [
11
11
  {
12
12
  "name": "get-design-done",
13
13
  "source": "./",
14
14
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), Claude Design handoff, bidirectional Figma write-back, and a queryable intel store (.design/intel/) for dependency and learnings queries. Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows) and release automation. Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain.",
15
- "version": "1.28.5",
15
+ "version": "1.28.7",
16
16
  "author": {
17
17
  "name": "hegemonart"
18
18
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "get-design-done",
3
3
  "short_name": "gdd",
4
- "version": "1.28.5",
4
+ "version": "1.28.7",
5
5
  "description": "Agent-orchestrated 5-stage design pipeline: Brief → Explore → Plan → Design → Verify. 22+ specialized agents, 9 connections (Figma, Refero, Preview, Storybook, Chromatic, Figma Writer, Graphify, Pinterest, Claude Design), handoff-first workflow via Claude Design bundles, bidirectional Figma write-back (annotations, Code Connect), queryable intel store (`.design/intel/`) for O(1) design surface lookups, and self-improvement loop (reflector agent, frontmatter + budget feedback, global-skills layer at `~/.claude/gdd/global-skills/`). Standalone commands: style, darkmode, compare, figma-write, graphify, handoff, analyze-dependencies, skill-manifest, extract-learnings, reflect, apply-reflections. Embeds NNG heuristics, WCAG thresholds, typographic systems, motion framework, and anti-pattern catalog. Ships with a full CI/CD pipeline (Node 22/24 × Linux/macOS/Windows, lint + schema + frontmatter + stale-ref + shellcheck + gitleaks + injection-scan + blocking size-budget) and release automation (auto-tag + GitHub Release + release-time smoke test). Optimization layer (v1.0.4.1, retroactive): gdd-router + gdd-cache-manager skills, PreToolUse budget-enforcer hook, tier-aware agent frontmatter, lazy checker gates, streaming synthesizer, /gdd:warm-cache + /gdd:optimize commands, and cost telemetry at .design/telemetry/costs.jsonl — targeting 50-70% per-task token-cost reduction with no quality-floor regression. v1.20.0 SDK foundation: gdd-state MCP server (11 typed tools), lockfile-safe STATE.md mutations, event stream at .design/telemetry/events.jsonl, resilience primitives (jittered-backoff, rate-guard, error-classifier, iteration-budget) with rate-limit + 429 + context-overflow recovery, and TypeScript toolchain. v1.27.7 ships gdd-mcp (Phase 27.7): 12 read-only MCP tools for sub-3s priming. v1.28.0 (Phase 28): Foundational References Tier 2 — 5 new reference files (color-theory, composition, proportion-systems, i18n, contrast-advanced), 2 verifier i18n probes + 1 explore i18n-readiness probe, 12 additive cross-link insertions across 10 existing references, 2 orthogonal audit-scoring lens-tags (composition_alignment + i18n_readiness).",
6
6
  "author": {
7
7
  "name": "hegemonart",
package/CHANGELOG.md CHANGED
@@ -4,6 +4,108 @@ All notable changes to get-design-done are documented here. Versions follow [sem
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.28.7] — 2026-05-19
8
+
9
+ ### Phase 28.7 — Multi-Runtime Install (Pragmatic Port from gsd-build)
10
+
11
+ Replaces the Phase 24 `kind: 'agents-md'` placeholder (which dropped a single bare `AGENTS.md` into each non-Claude runtime's config dir — content the runtimes did not actually consume) with proper native install for all 14 claimed runtimes. Architecture ported from `gsd-build/get-shit-done` (MIT) — see `NOTICE` for the rollup attribution. Per Phase 28.7 D-02 we port the architecture rather than byte-copying the upstream `bin/install.js` monolith. Off-cadence decimal sub-phase from v1.28.0 parent — sequence 1.28.0 → 1.28.5 → 1.28.6 → 1.28.7. Re-interpretation of the original ROADMAP Phase 28.7 (verification-gated) per user direction 2026-05-18: skip field-test reports, trust gsd-build's upstream proving of the pattern. 10 plans across Waves A (foundations) / B (converters) / C (wire-up + test + closeout).
12
+
13
+ #### New install infrastructure (Wave A)
14
+
15
+ - `scripts/lib/install/runtime-homes.cjs` (28.7-01) — pure per-runtime config-dir resolver for all 14 runtimes. Handles env-var overrides (`CLAUDE_CONFIG_DIR`, `XDG_CONFIG_HOME`, etc.), XDG paths, and special-case nests (Antigravity under `~/.gemini/antigravity`, Windsurf under `~/.codeium/windsurf`). Pure function — no I/O.
16
+ - `scripts/lib/install/runtime-artifact-layout.cjs` (28.7-02) — per-(runtime, scope) layout table mapping each combination to its `kinds[] = [{kind, destSubpath, prefix}]` shape. Claude global → `skills/<name>/`; Claude local → `commands/gsd/` + `agents/`; cursor/codex/copilot/antigravity/windsurf/augment/trae/qwen/codebuddy → `skills/<name>/`; opencode + kilo → `command/<name>` (slash-command dir, not skills); gemini → `commands/gsd/` (commands-only); cline → `kinds: []` (rules-based — embeds in `.clinerules` per D-09).
17
+ - `scripts/lib/install/runtime-slash.cjs` (28.7-03) — per-runtime slash-command surface emitter. Codex uses `$gdd-<name>` shell-var form; all others use `/gdd-<name>`. Reserves a forward-compat seam for downstream slash-aware install behaviors.
18
+
19
+ #### Per-runtime content converters (Wave B)
20
+
21
+ - 13 per-runtime converters at `scripts/lib/install/converters/<runtime>.cjs` (28.7-04 through 28.7-07), plus `shared.cjs` (frontmatter pass-through, tool-name rewrite, brand pass-through utilities). Each runtime converter exports `convert(content, skillName, ctx) → { path, content }`. Cross-references the Phase 21 cross-harness tool-name maps (`reference/codex-tools.md`, `reference/gemini-tools.md`) — tool name rewrites only happen for runtimes whose native tool names differ from Claude's defaults.
22
+ - Wave 1 (28.7-04) — `cursor`, `codex`, `copilot`, `antigravity`.
23
+ - Wave 2 (28.7-05) — `windsurf`, `augment`, `trae`, `qwen`.
24
+ - Wave 3 (28.7-06) — `codebuddy`, `cline`. **Cline** (D-09) writes rule-block aggregation to `.clinerules` rather than a skills directory.
25
+ - Wave 4 (28.7-07) — `opencode`, `kilo`, `gemini`. Opencode + kilo use `command/<name>` (slash-command dir); gemini ships commands-only into `commands/gsd/`.
26
+ - **Hermes is OUT of scope** (D-03 + D-10) — Phase 24 D-02 runtime-list invariant preserved. The Phase 28.6 baseline tests' "no hermes.cjs" guard is mirrored in the new Phase 28.7 baseline test.
27
+
28
+ #### Installer wire-up (Wave C.1)
29
+
30
+ - `scripts/lib/install/installer.cjs` (28.7-08) — replaces the broken `kind: 'agents-md'` placeholder with a proper multi-artifact dispatcher. Reads the layout table, invokes the appropriate per-runtime converter for each kind, lands files at the resolved destination per `runtime-homes.cjs`. Backward-compat retained for the existing invocation surface (`--claude`, `--opencode`, …, `--cline`, `--dry-run`, `--global`, `--local`, `--config-dir`). Scope propagation through to converter `ctx` per D-07.
31
+
32
+ #### Per-runtime simulation suite (Wave C.2)
33
+
34
+ - `tests/install-per-runtime.test.cjs` (28.7-09) — 14 simulation tests + 11 cross-runtime invariants. Each test creates a temp config dir via `mkdtempSync`, invokes the installer with `--config-dir <tmp> --<runtime>`, and asserts files land at the expected paths with content matching the converter output. macOS symlink discipline applied (`os.tmpdir()` + `fs.realpathSync` for path comparison) per Phase 27.6 lesson.
35
+
36
+ #### Fixed
37
+
38
+ - 13 non-Claude runtimes now actually receive their plugin payload. Before Phase 28.7: bare `AGENTS.md` drop with no runtime-side discovery. After: native artifact layout matching what each runtime expects (skills dir / command dir / agents dir / rule-block embedding).
39
+
40
+ #### Closeout (Wave C.3)
41
+
42
+ - 4-manifest lockstep at v1.28.7 (`package.json` + `.claude-plugin/plugin.json` + `.claude-plugin/marketplace.json` (metadata.version + plugins[0].version) + `test-fixture/baselines/phase-28/manifests-version.txt` forward-propagation).
43
+ - `OFF_CADENCE_VERSIONS.add('1.28.7')` in `tests/semver-compare.test.cjs`.
44
+ - README install section confirmed claims all 14 runtimes; no Experimental tier (D-04). Translated READMEs deferred (English authoritative for this phase).
45
+ - `NOTICE` extended with Phase 28.7 gsd-build/get-shit-done (MIT) architectural-port attribution (D-02). Phase 27 (cc-multi-cli, Apache 2.0) + Phase 28.5 (mattpocock/skills, MIT) attributions unchanged.
46
+ - Baseline at `test-fixture/baselines/phase-28.7/` (manifests-version, converter-inventory, registry-diff) + `phase-28.6/manifests-version.txt` and `phase-28/manifests-version.txt` forward-propagated to 1.28.7.
47
+ - `phase-20/skill-list.txt` UNCHANGED (no skill add/remove this phase).
48
+ - ROADMAP add + scoped flip (this section + overview entry, 10 inline plan checkboxes pre-flipped).
49
+ - Phase 28.7 ports gsd-build's architecture rather than gating on field-test reports — re-interpretation of the original ROADMAP entry per user direction 2026-05-18 (CONTEXT.md D-01).
50
+
51
+ ---
52
+
53
+ ## [1.28.6] — 2026-05-18
54
+
55
+ ### Phase 28.6 — Skill Reference Co-Location (Corrective Follow-Up to Phase 28.5)
56
+
57
+ Corrects Phase 28.5's CONTEXT.md D-06 over-generalization. Phase 28.5 extracted 20 skill-private procedure refs into a central `reference/` folder, but each of those refs is consumed by exactly 1 (or in 2 borderline cases, 2 sibling) skills. Per mattpocock/skills' actual structure at `https://github.com/mattpocock/skills/tree/main/skills`, skill-private procedure docs live next to the `SKILL.md` they describe. Phase 28.6 co-locates the 20 refs into per-skill folders and refreshes the contract's §D-06 to endorse the per-skill folder pattern for 1-/2-consumer content. No new features. No breaking changes. `git mv` preserves history on every file. Phase 28.5's contract spec, validator, CI gate, `zoom-out`, debug Phase 1 patch, CONTEXT.md + ADR project artifacts, decision-injector extension, and 70/70 length compliance are all PRESERVED; only the location of skill-private refs changes.
58
+
59
+ #### Migrated refs (20 — `reference/<topic>.md` -> `skills/<owner>/<topic>.md`)
60
+
61
+ - `apply-reflections-procedure.md` -> `skills/apply-reflections/`
62
+ - `cache-policy.md` -> `skills/cache-manager/` (primary; `warm-cache` secondary via `./../cache-manager/cache-policy.md`)
63
+ - `compare-rubric.md` -> `skills/compare/`
64
+ - `connections-onboarding.md` -> `skills/connections/`
65
+ - `darkmode-audit-procedure.md` -> `skills/darkmode/`
66
+ - `debug-feedback-loops.md` -> `skills/debug/`
67
+ - `design-procedure.md` -> `skills/design/`
68
+ - `discover-procedure.md` -> `skills/discover/`
69
+ - `explore-procedure.md` -> `skills/explore/`
70
+ - `health-mcp-detection.md` -> `skills/health/`
71
+ - `health-skill-length-report.md` -> `skills/health/`
72
+ - `milestone-completeness-rubric.md` -> `skills/new-cycle/` (primary; `turn-closeout` secondary)
73
+ - `peer-cli-protocol.md` -> `skills/peer-cli-add/` (primary; `peer-cli-customize` + `peers` secondary)
74
+ - `plan-procedure.md` -> `skills/plan/`
75
+ - `router-rules.md` -> `skills/router/`
76
+ - `scan-procedure.md` -> `skills/scan/`
77
+ - `start-procedure.md` -> `skills/start/`
78
+ - `style-doc-procedure.md` -> `skills/style/`
79
+ - `threat-modeling.md` -> `skills/quality-gate/`
80
+ - `verify-procedure.md` -> `skills/verify/`
81
+
82
+ #### Contract refresh
83
+
84
+ - `reference/skill-authoring-contract.md` §D-06 refreshed: per-skill folder pattern explicitly endorsed for skill-private content. Three placement classes codified — 1-consumer in `skills/<owner>/<topic>.md`; 2-consumer in primary owner's folder with `./../<primary>/<topic>.md` secondary cross-link; multi-consumer (3+ skills across different domains) in `reference/<topic>.md`. The Phase 28.5 "rare exception only" framing is reversed.
85
+
86
+ #### Registry purge
87
+
88
+ - `reference/registry.json`: 20 entries removed (the migrated procedure refs are no longer tracked centrally; they're discoverable via the skill folder itself, per mattpocock's pattern). Universal refs (consumed by 3+ skills) remain in the registry.
89
+
90
+ #### Phase 28.5 retrospective annotation
91
+
92
+ - `.planning/phases/28.5-skill-authoring-contract/CONTEXT.md` D-06 annotated with a "Corrected by Phase 28.6" pointer for audit-trail preservation. Phase 28.5 decisions stay visible but flagged as superseded.
93
+
94
+ #### Plans
95
+
96
+ - 28.6-01 — `git mv` 20 refs + cross-link updates across 23 SKILL.md consumers (`./../reference/<topic>.md` -> `./<topic>.md` or `./../<primary>/<topic>.md`). (COLOC-01)
97
+ - 28.6-02 — `reference/registry.json` 20-entry purge (D-03) + `reference/skill-authoring-contract.md` §D-06 refresh (D-04). (COLOC-02)
98
+ - 28.6-03 — Validator + baseline + full `npm test` sweep (all green; D-05 confirmation that `scripts/validate-skill-length.cjs` globs `SKILL.md` only; no validator edit). (COLOC-03)
99
+ - 28.6-04 — Closeout (4-manifest lockstep at v1.28.6, `OFF_CADENCE_VERSIONS.add('1.28.6')`, CHANGELOG, ROADMAP add + scoped flip, baseline at `test-fixture/baselines/phase-28.6/`, Phase 28.5 CONTEXT.md retrospective annotation). (COLOC-04)
100
+
101
+ #### Non-changes
102
+
103
+ - NOTICE unchanged — Phase 28.5's mattpocock/skills MIT attribution still applies (same content; file paths shifted only).
104
+ - `test-fixture/baselines/phase-20/skill-list.txt` unchanged — no skills added or removed.
105
+ - `scripts/validate-skill-length.cjs` unchanged — D-05 verified the validator globs `SKILL.md` only and is unaffected by co-located procedure refs.
106
+
107
+ ---
108
+
7
109
  ## [1.28.5] — 2026-05-18
8
110
 
9
111
  ### Phase 28.5 — Skill Authoring Contract + Skill Rework + Project Artifacts
package/README.md CHANGED
@@ -139,6 +139,8 @@ The installer prompts you to choose:
139
139
  1. **Runtime** — Claude Code, OpenCode, Gemini, Kilo, Codex, Copilot, Cursor, Windsurf, Antigravity, Augment, Trae, Qwen Code, CodeBuddy, Cline, or all (interactive multi-select — pick multiple runtimes in a single session)
140
140
  2. **Location** — Global (all projects) or local (current project only)
141
141
 
142
+ All 14 runtimes receive their native artifact layout (`skills/`, `command/`, `agents/`, or `.clinerules`) via per-runtime content converters — Claude SKILL.md sources are translated to each runtime's expected shape at install time (frontmatter pass-through, path rewrite, tool-name rewrite via the Phase 21 cross-harness maps). Architecture ported from `gsd-build/get-shit-done` (MIT — see `NOTICE`).
143
+
142
144
  Verify with:
143
145
 
144
146
  ```
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hegemonart/get-design-done",
3
- "version": "1.28.5",
3
+ "version": "1.28.7",
4
4
  "description": "A design-quality pipeline for AI coding agents: brief, plan, implement, and verify UI work against your design system.",
5
5
  "author": "Hegemon",
6
6
  "homepage": "https://github.com/hegemonart/get-design-done",
@@ -819,13 +819,6 @@
819
819
  "phase": 28.5,
820
820
  "description": "ADR (Architecture Decision Record) format — adapted from mattpocock/skills (MIT). 3-criteria offer gate (hard-to-reverse AND surprising-without-context AND real-tradeoff), 4-state status lifecycle. GDD addition: optional cycle-id + phase-id cross-refs to STATE.md."
821
821
  },
822
- {
823
- "name": "apply-reflections-procedure",
824
- "path": "reference/apply-reflections-procedure.md",
825
- "type": "heuristic",
826
- "phase": 28.5,
827
- "description": "Phase 28.5 — apply-reflections procedure extracted from skills/apply-reflections per progressive-disclosure rule. Read by skills/apply-reflections/SKILL.md."
828
- },
829
822
  {
830
823
  "name": "architecture-vocabulary",
831
824
  "path": "reference/architecture-vocabulary.md",
@@ -833,27 +826,6 @@
833
826
  "phase": 28.5,
834
827
  "description": "Ousterhout glossary (A Philosophy of Software Design) ported via mattpocock/skills LANGUAGE.md (MIT). 8 core terms (Module / Interface / Implementation / Depth / Seam / Adapter / Leverage / Locality) + 3 principles (deletion test, interface-is-test-surface, two-adapters-rule)."
835
828
  },
836
- {
837
- "name": "cache-policy",
838
- "path": "reference/cache-policy.md",
839
- "type": "heuristic",
840
- "phase": 28.5,
841
- "description": "Phase 28.5 — cache-policy reference extracted from skills/cache-manager + skills/warm-cache per progressive-disclosure rule (Bucket 3 orchestrator + utility rework)."
842
- },
843
- {
844
- "name": "compare-rubric",
845
- "path": "reference/compare-rubric.md",
846
- "type": "heuristic",
847
- "phase": 28.5,
848
- "description": "Phase 28.5 — compare-rubric extracted from skills/compare per progressive-disclosure rule. Read by skills/compare/SKILL.md (Bucket 2 design-family rework)."
849
- },
850
- {
851
- "name": "connections-onboarding",
852
- "path": "reference/connections-onboarding.md",
853
- "type": "meta-rules",
854
- "phase": 28.5,
855
- "description": "Phase 28.5 — connections-onboarding procedure extracted from skills/connections per progressive-disclosure rule (Bucket 2 design-family rework). Four-option setup prompt + onboarding flow."
856
- },
857
829
  {
858
830
  "name": "context-md-format",
859
831
  "path": "reference/context-md-format.md",
@@ -861,124 +833,12 @@
861
833
  "phase": 28.5,
862
834
  "description": "CONTEXT.md format — adapted from mattpocock/skills (MIT) CONTEXT-FORMAT.md. DDD-style ubiquitous-language glossary schema, inline-write trigger, multi-context CONTEXT-MAP.md pattern. GDD additions: optional first-seen + aliases on term entries."
863
835
  },
864
- {
865
- "name": "darkmode-audit-procedure",
866
- "path": "reference/darkmode-audit-procedure.md",
867
- "type": "meta-rules",
868
- "phase": 28.5,
869
- "description": "Phase 28.5 — darkmode audit procedure extracted from skills/darkmode per progressive-disclosure rule (Bucket 2 design-family rework)."
870
- },
871
- {
872
- "name": "debug-feedback-loops",
873
- "path": "reference/debug-feedback-loops.md",
874
- "type": "heuristic",
875
- "phase": 28.5,
876
- "description": "Debug feedback-loop discipline — adapted from mattpocock/skills (MIT) engineering/diagnose Phase 1. 10 construction paths in priority order (failing test -> curl -> CLI fixture -> headless browser -> trace replay -> throwaway harness -> fuzz -> bisect harness -> differential loop -> HITL bash), iterate-on-loop sub-discipline, non-determinism reproduction-rate branch."
877
- },
878
- {
879
- "name": "design-procedure",
880
- "path": "reference/design-procedure.md",
881
- "type": "meta-rules",
882
- "phase": 28.5,
883
- "description": "Phase 28.5 — design-stage procedure extracted from skills/design per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
884
- },
885
- {
886
- "name": "discover-procedure",
887
- "path": "reference/discover-procedure.md",
888
- "type": "meta-rules",
889
- "phase": 28.5,
890
- "description": "Phase 28.5 — discover-stage procedure extracted from skills/discover per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
891
- },
892
- {
893
- "name": "explore-procedure",
894
- "path": "reference/explore-procedure.md",
895
- "type": "meta-rules",
896
- "phase": 28.5,
897
- "description": "Phase 28.5 — explore-stage procedure extracted from skills/explore per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
898
- },
899
- {
900
- "name": "health-mcp-detection",
901
- "path": "reference/health-mcp-detection.md",
902
- "type": "heuristic",
903
- "phase": 28.5,
904
- "description": "Phase 28.5 — health-MCP detection procedure extracted from skills/health per progressive-disclosure rule (D-10). Documents dismissal check, detection via scripts/lib/install/mcp-register.cjs, row rendering for claude/codex/both/neither, fallback for missing mcp-register.cjs."
905
- },
906
- {
907
- "name": "health-skill-length-report",
908
- "path": "reference/health-skill-length-report.md",
909
- "type": "heuristic",
910
- "phase": 28.5,
911
- "description": "Phase 28.5 — health-skill-length-report contract documenting validate-skill-length.cjs JSON shape + threshold rationale. Read by skills/health/SKILL.md to render the skill-length report subsection."
912
- },
913
- {
914
- "name": "milestone-completeness-rubric",
915
- "path": "reference/milestone-completeness-rubric.md",
916
- "type": "heuristic",
917
- "phase": 28.5,
918
- "description": "Phase 28.5 — milestone-completeness rubric extracted from skills/turn-closeout per progressive-disclosure rule (Bucket 4 analysis + audit rework). Turn-closeout / new-cycle completeness criteria."
919
- },
920
- {
921
- "name": "peer-cli-protocol",
922
- "path": "reference/peer-cli-protocol.md",
923
- "type": "heuristic",
924
- "phase": 28.5,
925
- "description": "Phase 28.5 — peer-CLI protocol scaffold extracted from skills/peer-cli-add + skills/peer-cli-customize per progressive-disclosure rule (Bucket 4 analysis + audit rework). ACP + ASP adapter scaffolding patterns, verification ladder, Windows quirk handling."
926
- },
927
- {
928
- "name": "plan-procedure",
929
- "path": "reference/plan-procedure.md",
930
- "type": "meta-rules",
931
- "phase": 28.5,
932
- "description": "Phase 28.5 — plan-stage procedure extracted from skills/plan per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
933
- },
934
- {
935
- "name": "router-rules",
936
- "path": "reference/router-rules.md",
937
- "type": "heuristic",
938
- "phase": 28.5,
939
- "description": "Phase 28.5 — router-rules reference extracted from skills/router per progressive-disclosure rule (Bucket 3 orchestrator + utility rework). S/M/L/XL bucket assignments + path-selection heuristic."
940
- },
941
- {
942
- "name": "scan-procedure",
943
- "path": "reference/scan-procedure.md",
944
- "type": "meta-rules",
945
- "phase": 28.5,
946
- "description": "Phase 28.5 — scan-stage procedure extracted from skills/scan per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
947
- },
948
836
  {
949
837
  "name": "skill-authoring-contract",
950
838
  "path": "reference/skill-authoring-contract.md",
951
839
  "type": "meta-rules",
952
840
  "phase": 28.5,
953
841
  "description": "Phase 28.5 skill-authoring contract — adapted from mattpocock/skills (MIT). SKILL.md <=100-line cap (warn >=100, block >=250 in CI), 1024-char description cap, <what>. Use when <triggers>. form (lax-mode default per Phase 33 A/B pending), frontmatter required fields, progressive-disclosure one-level-deep rule. Validator at scripts/validate-skill-length.cjs."
954
- },
955
- {
956
- "name": "start-procedure",
957
- "path": "reference/start-procedure.md",
958
- "type": "heuristic",
959
- "phase": 28.5,
960
- "description": "Phase 28.5 — start-procedure reference extracted from skills/start per progressive-disclosure rule (Bucket 4 analysis + audit rework)."
961
- },
962
- {
963
- "name": "style-doc-procedure",
964
- "path": "reference/style-doc-procedure.md",
965
- "type": "meta-rules",
966
- "phase": 28.5,
967
- "description": "Phase 28.5 — style-doc procedure extracted from skills/style per progressive-disclosure rule (Bucket 2 design-family rework)."
968
- },
969
- {
970
- "name": "threat-modeling",
971
- "path": "reference/threat-modeling.md",
972
- "type": "heuristic",
973
- "phase": 28.5,
974
- "description": "Phase 28.5 — STRIDE threat-modeling patterns extracted from skills/quality-gate + audit-side scanning per progressive-disclosure rule (Bucket 4 analysis + audit rework). Audit-side threat-model invariants."
975
- },
976
- {
977
- "name": "verify-procedure",
978
- "path": "reference/verify-procedure.md",
979
- "type": "meta-rules",
980
- "phase": 28.5,
981
- "description": "Phase 28.5 — verify-stage procedure extracted from skills/verify per progressive-disclosure rule (Bucket 1 pipeline-stage rework)."
982
842
  }
983
843
  ]
984
844
  }
@@ -101,21 +101,52 @@ disable-model-invocation: true
101
101
 
102
102
  References-one-level-deep is the rule (D-06):
103
103
 
104
- - **One level deep.** `SKILL.md` may cross-link into `reference/<topic>.md`. A reference may
104
+ - **One level deep.** `SKILL.md` may cross-link into a reference. A reference may
105
105
  cross-link into another reference. `SKILL.md` does NOT instruct the agent to follow a
106
106
  reference's references — load the first level only.
107
- - **Centralized refs.** `reference/typography.md`, `reference/palette-catalog.md`,
108
- `reference/audit-scoring.md` and friends are consumed by 15+ skills each. NEVER bundle
109
- them per-skill. Per-skill folders are allowed ONLY for content that is truly
110
- single-skill-private (rare; typically a fixture or schema only the owning skill reads).
111
107
  - **When to add `scripts/`.** Per mattpocock's three criteria, add a script only when the
112
108
  step is deterministic, repeated across runs, and the failure mode needs explicit error
113
109
  handling. Anything ad-hoc or once-off stays inline as agent prose.
114
110
 
115
- Concrete example: a skill that lists 10 framework matrices inline (~150 lines) extracts the
116
- matrices to `reference/<framework>-matrices.md` and replaces them with a one-sentence
117
- summary + cross-link. SKILL.md drops to ~80 lines, the matrices stay discoverable, no
118
- institutional knowledge is lost.
111
+ ### Reference placement classes
112
+
113
+ Three placement classes by cross-domain consumer count (D-06, refreshed by Phase 28.6 D-04):
114
+
115
+ - **1-consumer (skill-private procedure refs).** Live in `skills/<owner>/<topic>.md` next
116
+ to the SKILL.md they describe. Cross-link from SKILL.md as `./<topic>.md`. Matches
117
+ mattpocock's per-skill folder pattern. Examples: `skills/scan/scan-procedure.md`,
118
+ `skills/debug/debug-feedback-loops.md`.
119
+ - **2-consumer (same-domain pair).** Live in the primary owner's skill folder. Secondary
120
+ consumer cross-links via `../<primary>/<topic>.md`. Examples:
121
+ `skills/cache-manager/cache-policy.md` (skills/warm-cache cross-links in);
122
+ `skills/peer-cli-add/peer-cli-protocol.md` (skills/peer-cli-customize + skills/peers
123
+ cross-link in).
124
+ - **Multi-consumer (3+ cross-domain).** Live in `reference/<topic>.md`. Used by 3+ skills
125
+ across different domains. Examples: `reference/typography.md`,
126
+ `reference/palette-catalog.md`, `reference/audit-scoring.md` (each consumed by 15+
127
+ skills).
128
+
129
+ ### Migration policy
130
+
131
+ When a reference grows from 1-consumer to 3+ cross-domain consumers, migrate from
132
+ `skills/<owner>/` to `reference/` and update cross-links accordingly. When a centralized
133
+ ref shrinks to 1–2 consumers (or its consumers turn out to be same-domain), migrate the
134
+ other direction. Document the migration in the relevant phase's SUMMARY.md.
135
+
136
+ ### Phase 28.6 retrospective
137
+
138
+ Phase 28.5 D-06 over-generalized by centralizing all extracted refs in `reference/`,
139
+ including procedure refs read by exactly one skill. Phase 28.6 corrected this by migrating
140
+ 20 skill-private procedure refs back into their owning skill folders (D-01) and refreshing
141
+ this section to endorse per-skill folders as the canonical placement for 1-consumer
142
+ content (D-04). See
143
+ `.planning/phases/28.6-skill-reference-co-location/CONTEXT.md` for the full discipline.
144
+
145
+ Concrete example: a skill that lists 10 framework matrices inline (~150 lines) extracts
146
+ the matrices to `reference/<framework>-matrices.md` (if 3+ skills will consume them) or
147
+ `skills/<owner>/<framework>-matrices.md` (if only the owning skill reads them), then
148
+ replaces the inline content with a one-sentence summary + cross-link. SKILL.md drops to
149
+ ~80 lines, the matrices stay discoverable, no institutional knowledge is lost.
119
150
 
120
151
  ## Validator usage
121
152
 
@@ -167,6 +167,13 @@ async function main() {
167
167
  } else if (location === 'local') {
168
168
  opts.configDir = resolveLocalConfigDir(runtime);
169
169
  }
170
+ // Phase 28.7 D-07 — pass scope through to the installer. The new
171
+ // `multi-artifact` kind branches on `local` vs `global` in
172
+ // `runtime-artifact-layout.cjs` (claude local writes commands/+agents/;
173
+ // claude global writes skills/), so the installer needs to know the
174
+ // user's chosen scope, not just the resolved configDir. Default is
175
+ // `global` per D-07.
176
+ opts.scope = location;
170
177
  const result = uninstall
171
178
  ? uninstallRuntime(id, opts)
172
179
  : installRuntime(id, opts);
@@ -0,0 +1,48 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * scripts/lib/install/converters/antigravity.cjs — Phase 28.7 (Plan 28.7-04).
5
+ *
6
+ * Google Antigravity SKILL.md converter. Translates Claude-shape source
7
+ * into Antigravity's expected shape (which nests under `~/.gemini/antigravity/`
8
+ * per the runtime-homes resolver):
9
+ *
10
+ * - Frontmatter `name:` normalized to `gdd-<skill>` (no double-prefix).
11
+ * - Slash references in prose pass through as `/gdd-<name>` —
12
+ * Antigravity accepts the Claude shape. Mixed-shape inputs are
13
+ * normalized via the runtime-slash module.
14
+ * - Tool names in code fences pass through unchanged — Antigravity
15
+ * accepts the Claude vocabulary (Read/Write/Bash/Edit/Grep/Glob).
16
+ * - A 1-line HTML adapter header is injected at the top of the body
17
+ * to record that this file was auto-generated from Claude source.
18
+ *
19
+ * Architecture ported from gsd-build/get-shit-done (MIT) — per Phase
20
+ * 28.7 D-02 (port architecture, not source). See NOTICE for upstream
21
+ * attribution. gsd-build's equivalent function is
22
+ * `convertClaudeCommandToAntigravitySkill` in bin/install.js; our
23
+ * modular factor delegates the actual rewrites to ./shared.cjs.
24
+ *
25
+ * Pure / side-effect-free: no fs, no env, no path. `convert` is a
26
+ * deterministic string → string transform.
27
+ */
28
+
29
+ const shared = require('./shared.cjs');
30
+
31
+ /**
32
+ * Convert Claude-source SKILL.md content for the Antigravity runtime.
33
+ *
34
+ * @param {string} content Full source SKILL.md content (frontmatter + body).
35
+ * @param {string} skillName The bare skill name (e.g. `'help'`, `'explore'`).
36
+ * @param {{ runtime?: string }} [opts] Optional context — `runtime` defaults
37
+ * to `'antigravity'`. Currently informational only.
38
+ * @returns {string}
39
+ */
40
+ function convert(content, skillName, opts) {
41
+ const { frontmatter, body } = shared.extractFrontmatterAndBody(content);
42
+ const fm = shared.buildFrontmatter(frontmatter, skillName, 'gdd-');
43
+ let out = shared.rewriteSlashRefs(body, 'antigravity');
44
+ out = shared.ensureAdapterHeader(out, 'Antigravity');
45
+ return fm + out;
46
+ }
47
+
48
+ module.exports = { convert };
@@ -0,0 +1,68 @@
1
+ 'use strict';
2
+
3
+ /**
4
+ * scripts/lib/install/converters/augment.cjs — Phase 28.7 (Plan 28.7-05).
5
+ *
6
+ * Augment Code SKILL.md converter. Translates Claude-shape source into
7
+ * Augment's expected shape:
8
+ *
9
+ * - Frontmatter `name:` normalized to `gdd-<skill>` (no double-prefix).
10
+ * - Slash references in prose pass through as `/gdd-<name>` —
11
+ * Augment accepts the Claude shape for slash references.
12
+ * - Tool names in code fences are rewritten per `AUGMENT_TOOL_MAP`:
13
+ * Bash → launch-process
14
+ * Edit → str-replace-editor
15
+ * Read/Write/Grep/Glob/WebSearch/WebFetch pass through unchanged —
16
+ * Augment recognizes the Claude vocabulary for those tools.
17
+ * - Prose mentions of tool names (e.g. "use the Bash tool") are NOT
18
+ * rewritten — only the parenthesized invocation form inside fenced
19
+ * blocks gets rewritten. This matches the codex converter's policy
20
+ * (Phase 28.7 D-06).
21
+ * - A 1-line HTML adapter header is injected at the top of the body
22
+ * to record that this file was auto-generated from Claude source.
23
+ *
24
+ * Architecture ported from gsd-build/get-shit-done (MIT) — per Phase
25
+ * 28.7 D-02 (port architecture, not source). See NOTICE for upstream
26
+ * attribution. gsd-build's equivalent function is
27
+ * `convertClaudeCommandToAugmentSkill` in bin/install.js; our modular
28
+ * factor delegates the actual rewrites to ./shared.cjs.
29
+ *
30
+ * Pure / side-effect-free: no fs, no env, no path. `convert` is a
31
+ * deterministic string → string transform.
32
+ */
33
+
34
+ const shared = require('./shared.cjs');
35
+
36
+ /**
37
+ * Claude tool name → Augment tool name. Per Augment's documented tool
38
+ * surface (launch-process for shell execution, str-replace-editor for
39
+ * file edits). Frozen to prevent accidental mutation.
40
+ *
41
+ * Future: extract AUGMENT_TOOL_MAP to reference/augment-tools.md per
42
+ * the Phase 21 pattern (cf. CODEX_TOOL_MAP in shared.cjs) if scope grows
43
+ * beyond two entries.
44
+ */
45
+ const AUGMENT_TOOL_MAP = Object.freeze({
46
+ Bash: 'launch-process',
47
+ Edit: 'str-replace-editor',
48
+ });
49
+
50
+ /**
51
+ * Convert Claude-source SKILL.md content for the Augment runtime.
52
+ *
53
+ * @param {string} content Full source SKILL.md content (frontmatter + body).
54
+ * @param {string} skillName The bare skill name (e.g. `'help'`, `'explore'`).
55
+ * @param {{ runtime?: string }} [opts] Optional context — `runtime` defaults
56
+ * to `'augment'`. Currently informational only.
57
+ * @returns {string}
58
+ */
59
+ function convert(content, skillName, opts) {
60
+ const { frontmatter, body } = shared.extractFrontmatterAndBody(content);
61
+ const fm = shared.buildFrontmatter(frontmatter, skillName, 'gdd-');
62
+ let out = shared.rewriteSlashRefs(body, 'augment');
63
+ out = shared.rewriteCodeFenceTools(out, AUGMENT_TOOL_MAP);
64
+ out = shared.ensureAdapterHeader(out, 'Augment');
65
+ return fm + out;
66
+ }
67
+
68
+ module.exports = { convert, AUGMENT_TOOL_MAP };