@hegemonart/get-design-done 1.28.8 → 1.30.0

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 (53) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +81 -0
  4. package/README.de.md +23 -0
  5. package/README.fr.md +23 -0
  6. package/README.it.md +23 -0
  7. package/README.ja.md +23 -0
  8. package/README.ko.md +23 -0
  9. package/README.md +28 -0
  10. package/README.zh-CN.md +23 -0
  11. package/SKILL.md +2 -0
  12. package/agents/design-reflector.md +50 -0
  13. package/package.json +1 -1
  14. package/reference/capability-gap-stage-gate.md +261 -0
  15. package/reference/known-failure-modes.md +185 -0
  16. package/reference/pseudonymization-rules.md +189 -0
  17. package/reference/registry.json +22 -1
  18. package/reference/schemas/events.schema.json +97 -3
  19. package/reference/schemas/generated.d.ts +319 -4
  20. package/scripts/cli/gdd-events.mjs +35 -2
  21. package/scripts/gsd-cleanup-incubator.cjs +367 -0
  22. package/scripts/lib/apply-reflections/incubator-proposals.cjs +448 -0
  23. package/scripts/lib/bandit-router.cjs +92 -9
  24. package/scripts/lib/gsd-health-mirror/index.cjs +37 -1
  25. package/scripts/lib/incubator-author.cjs +845 -0
  26. package/scripts/lib/issue-reporter/cli-flag-report.cjs +153 -0
  27. package/scripts/lib/issue-reporter/consent-prompt.cjs +231 -0
  28. package/scripts/lib/issue-reporter/dedup.cjs +458 -0
  29. package/scripts/lib/issue-reporter/destination.cjs +37 -0
  30. package/scripts/lib/issue-reporter/draft-writer.cjs +157 -0
  31. package/scripts/lib/issue-reporter/gh-absent-fallback.cjs +220 -0
  32. package/scripts/lib/issue-reporter/gh-submit.cjs +114 -0
  33. package/scripts/lib/issue-reporter/kill-switch.cjs +122 -0
  34. package/scripts/lib/issue-reporter/payload-assembly.cjs +367 -0
  35. package/scripts/lib/issue-reporter/privacy-diff.cjs +385 -0
  36. package/scripts/lib/issue-reporter/report-flow.cjs +269 -0
  37. package/scripts/lib/issue-reporter/triage-matcher.cjs +270 -0
  38. package/scripts/lib/pseudonymize.cjs +444 -0
  39. package/scripts/lib/reflections-cycle-writer.cjs +172 -0
  40. package/scripts/lib/reflector/capability-gap-scan.cjs +751 -0
  41. package/scripts/lib/reflector-capability-gap-aggregator.cjs +320 -0
  42. package/scripts/release-smoke-test.cjs +33 -2
  43. package/scripts/validate-incubator-scope.cjs +133 -0
  44. package/skills/apply-reflections/SKILL.md +16 -1
  45. package/skills/apply-reflections/apply-reflections-procedure.md +71 -3
  46. package/skills/fast/SKILL.md +46 -0
  47. package/skills/reflect/SKILL.md +9 -0
  48. package/skills/reflect/procedures/capability-gap-scan.md +120 -0
  49. package/skills/report-issue/SKILL.md +53 -0
  50. package/skills/report-issue/report-issue-procedure.md +120 -0
  51. package/skills/router/SKILL.md +5 -0
  52. package/skills/router/capability-gap-emitter.md +65 -0
  53. package/skills/update/SKILL.md +3 -2
@@ -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.8"
8
+ "version": "1.30.0"
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.8",
15
+ "version": "1.30.0",
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.8",
4
+ "version": "1.30.0",
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,87 @@ All notable changes to get-design-done are documented here. Versions follow [sem
4
4
 
5
5
  ---
6
6
 
7
+ ## [1.30.0] - 2026-05-20
8
+
9
+ ### Phase 30 — Consent-First GitHub Issue Reporter
10
+
11
+ Opt-in user feedback channel that pseudonymizes payloads before submission (NOT anonymization — see disclosure below). Local-first, consent-gated, no auto-mode. Destination repo is hardcoded. 8 plans across Wave A primitives (30-01..30-03) / Wave B integration (30-04..30-06) / Wave C closeout (30-07..30-08). 6-manifest lockstep at 1.30.0 (D-12 ship-together on-cadence minor from 1.29.0).
12
+
13
+ ### Added
14
+
15
+ - **Consent-First GitHub Issue Reporter.** Phase 30 ships these surfaces:
16
+ - **`/gdd:report-issue` skill** (`skills/report-issue/SKILL.md`, from 30-04) — Phase 28.5 compliant (≤100 lines). Walks the user through a consented submission: kill-switch check → triage against known failure modes → dedup against existing issues → assemble pseudonymized payload → draft to disk + open `$EDITOR` → consent prompt → submit via `gh` CLI.
17
+ - **`scripts/lib/pseudonymize.cjs`** (from 30-01) — 8 pseudonymization rules (R1..R8) covering git identity, absolute paths (Linux/macOS/Windows shapes), hostname, repo origin, env-var values, emails in logs, IPv4/IPv6 addresses, and stable per-user pseudonyms. Pure module: no `fs`, no `child_process`, no env mutation, no network.
18
+ - **`scripts/lib/issue-reporter/payload-assembly.cjs`** (from 30-02) — composes the final issue payload (title, body, fingerprint, bilingual disclaimer) from pseudonymized inputs. Two-layer scrub: Phase 22 `redact.cjs` then Phase 30 `pseudonymize.cjs` (order non-negotiable). Pure module: returns a string, no I/O.
19
+ - **`scripts/lib/issue-reporter/destination.cjs`** (from 30-04) — hardcoded `https://github.com/hegemonart/get-design-done` constant. SOLE FILE under the issue-reporter tree allowed to contain the destination URL literal. Frozen export.
20
+ - **Triage matcher** (`scripts/lib/issue-reporter/triage-matcher.cjs`, from 30-03) — pattern-matches the user's error against `reference/known-failure-modes.md`. On match: surfaces the remedy and stops; user can override with `--force-report`.
21
+ - **Dedup matcher** (`scripts/lib/issue-reporter/dedup.cjs`, from 30-05) — queries `gh issue list` against the destination repo and surfaces existing-issue matches before submission. Match outcomes: no-match → proceed; single-match → react with +1 + offer "me too" comment; multi-match → user picks. Wired into the report-flow BEFORE the consent prompt.
22
+ - **Kill-switch** (`scripts/lib/issue-reporter/kill-switch.cjs`, from 30-06) — env-var override (`GDD_DISABLE_ISSUE_REPORTER=1`) OR config-file override (`.design/config.json` with `{ "issue_reporter": false }`). Either disables the reporter; env wins when both set. Halts submission before any network call. `gsd-health` mirrors the same disable line.
23
+ - **`gh`-absent fallback** (`scripts/lib/issue-reporter/gh-absent-fallback.cjs`, from 30-06) — when GitHub CLI isn't installed, the assembled payload is written to disk under `.design/issue-drafts/` and the issue-template URL is copied to the platform-appropriate clipboard (xclip / pbcopy / clip).
24
+ - **Privacy-diff renderer** (`scripts/lib/issue-reporter/privacy-diff.cjs`, from 30-07) — renders the before/after pseudonymization diff at consent time and via `/gdd:update --show-privacy-diff`.
25
+ - **Network-isolation CI gate** (`tests/issue-reporter-network-isolation.test.cjs`, from 30-07) — static-analysis test asserts no `https://` / `fetch(` / `XMLHttpRequest` references exist anywhere under `scripts/lib/issue-reporter/` or `scripts/lib/pseudonymize.cjs` except the single destination URL constant in `destination.cjs`. Whitelisted via explicit allowlist.
26
+ - **`reference/pseudonymization-rules.md`** + **`reference/known-failure-modes.md`** (from 30-01 / 30-03) — registered in `registry.json`. User-facing docs explaining the 8-rule pseudonymization catalog and the known failure modes / anti-patterns the reporter detects.
27
+
28
+ ### Changed
29
+
30
+ - Phase 30 does not change existing surfaces beyond adding the new skill + helpers; no breaking changes.
31
+
32
+ ### Documentation
33
+
34
+ - `reference/pseudonymization-rules.md` + `reference/known-failure-modes.md` — added + registered in `reference/registry.json` (2 new entries).
35
+ - `README.md` + 6 translated READMEs (de/fr/it/ja/ko/zh-CN) updated with a "Feedback Channel (v1.30.0+)" section disclosing the `/gdd:report-issue` command and the pseudonymization-NOT-anonymization stance.
36
+ - `NOTICE` — Phase 30 section noting the consent-first reporter discipline (added in 30-07).
37
+
38
+ ### Privacy & Safety
39
+
40
+ - **Pseudonymization, not anonymization.** Payloads obscure direct identifiers (username, hostname, absolute paths, git identity, env-var values, emails, IPs) but preserve internal correlation so maintainers can debug. Side-channel data (writing style, code patterns, repo fingerprints) may still re-identify. Users see a full payload preview before submission and explicitly consent per-issue.
41
+ - **Kill-switch.** Env-var (`GDD_DISABLE_ISSUE_REPORTER=1`) or config-file (`.design/config.json` `{ "issue_reporter": false }`) overrides halt submission before any network call. `gsd-health` surfaces the disable line.
42
+ - **Hardcoded destination.** The issue-reporter cannot be redirected at runtime; the destination URL is a frozen module constant in `scripts/lib/issue-reporter/destination.cjs`. No env-var, config, or flag override.
43
+ - **Network isolation.** Issue-reporter modules contain NO `https://` (or equivalent) calls beyond the single destination URL constant — verified by Phase 30 baseline static-analysis check (Plan 30-07).
44
+
45
+ ---
46
+
47
+ ## [1.29.0] - 2026-05-19
48
+
49
+ ### Phase 29 — Capability-Gap Telemetry + Self-Authoring of Agents/Skills
50
+
51
+ First on-cadence minor version after the 1.28.x decimal sub-phase sequence (1.28.0 through 1.28.8). Extends Phase 11's reflector-driven self-improvement loop from authoring reference content to authoring executable artifacts (agents and skills) when capability-gaps recur. Two structural ceilings close here: the artifact-type ceiling (reflector now drafts agents/skills, not just `reference/*.md`) and the signal-source ceiling (capability-lookup failures are now first-class telemetry). Strictly proposal-only — `/gdd:apply-reflections` remains the single human gate. 6-manifest lockstep at 1.29.0 (extends Phase 28.8's 4-manifest lockstep with the 2 Tier-2 manifests `.cursor-plugin/plugin.json` + `.codex-plugin/plugin.json` bumped in lockstep). 7 plans across Wave A telemetry (29-01..29-03) / Wave B authoring (29-04..29-06) / Wave C closeout (29-07).
52
+
53
+ ### Added
54
+
55
+ - **Capability-gap telemetry + self-authoring of agents/skills.** Two-stage rollout per Phase 29 D-01:
56
+ - **Stage 0 — telemetry only (ships immediately).**
57
+ - New typed `capability_gap` event added to the Phase 22 event-chain schema (`reference/schemas/events.schema.json`). 7 fields exactly per D-02 (no PII): `event_id`, `parent_event_id`, `source` (enum: `fast`/`router`/`reflector_pattern`), `context_hash`, `intent_summary`, `suggested_kind` (enum: `agent`/`skill`), `evidence_refs[]` (hash-pinned trajectory-JSONL pointers per D-07, not duplicated content).
58
+ - Emitters integrated at three lookup-fail points (29-01): `skills/fast/SKILL.md` no-skill-match path emits `source: "fast"`; `skills/router/SKILL.md` unmatched-intent path emits `source: "router"`. Per D-08, MCP-probe connection failures do NOT emit `capability_gap` — those remain Phase 22's connection-status surface.
59
+ - Reflector pattern-detection pass (29-02) at `scripts/lib/reflector/capability-gap-scan.cjs` scans `.design/intel/` + Phase 23.5 posterior + recent trajectories for `Touches:` clusters recurring without dedicated agent owners and emits `capability_gap` events with `source: "reflector_pattern"`.
60
+ - Reflector aggregation extension (29-03) at `scripts/lib/reflector-capability-gap-aggregator.cjs` reads all `capability_gap` events, clusters by `context_hash`, and writes a `## Capability gaps observed` section to `.design/reflections/<cycle-slug>.md`. `gdd-events --type capability_gap` filter exposed via the existing CLI.
61
+ - `reference/capability-gap-stage-gate.md` — Stage-0 → Stage-1 gate spec. K=3 stable clusters across M=10 cycles per D-03, cluster-stability defined as Phase 23.5 posterior `stddev(Beta(α, β)) < 0.05`. Both K and M overridable in the gate doc.
62
+ - **Stage 1 — incubator authoring (data-gated, user-opt-in per D-01).**
63
+ - `scripts/lib/incubator-author.cjs` (29-04) reads gap clusters above the stability threshold + posterior, then drafts `SKILL.md` or `agents/<slug>.md` at `.design/reflections/incubator/<slug>/` with Phase 28.5-compliant frontmatter (`name`, `description` in `<what>. Use when <triggers>.` form, `tools`, `default-tier`, optional `reasoning-class`, `parallel-safe`, `reads-only`). Origin section with `capability_gap` event refs. Computed usage frequency. Suggested integration point. `delegate_to: null` defensive default per D-12 (forward-compat with Phase 27).
64
+ - `/gdd:apply-reflections` extension (29-05) at `skills/apply-reflections/SKILL.md` and `scripts/lib/incubator-proposals.cjs` surfaces incubator drafts as a new (5th) proposal class alongside frontmatter/reference/budget/discussant. Each proposal renders a diff vs the nearest existing artifact (by name + tools + description embedding per D-09). Four actions per proposal: `accept` (promotes to `agents/`/`skills/` + registers via the Phase 14.5 `reference/registry.json`), `reject`, `defer`, `edit` ($EDITOR). Scope-guard validator at `scripts/validate-incubator-scope.cjs` (D-05) blocks promotion outside `agents/`+`skills/`.
65
+ - **Bandit fairness gate (29-06)** — `scripts/lib/bandit-router.cjs` accepts a new `prior_class: "promoted_incubator"` parameter. Promoted arms enter the Phase 23.5 posterior with a conservative `Beta(2, 8)` prior (assume worse-than-average) instead of an optimistic uniform. Per D-04: this IS the staging mechanism — single-step promotion gate via `/gdd:apply-reflections accept`, no two-step staging/ratify split.
66
+ - **Incubator TTL (29-06)** — drafts not promoted/refreshed within P=30 days (per D-06) auto-archive via `scripts/gsd-cleanup-incubator.cjs` to `.design/reflections/incubator/archive/<slug>/`. Refresh = new `capability_gap` event matching an existing slug's `context_hash` resets the timer.
67
+
68
+ ### Changed
69
+
70
+ - Reflector now emits `capability_gap` events alongside the existing learnings / telemetry / agent-metrics signals. No change to existing reflection proposal classes — additive only.
71
+ - `/gdd:apply-reflections` now surfaces 5 proposal classes (was 4: frontmatter / reference / budget / discussant; now adds Incubator agents+skills).
72
+ - `scripts/lib/bandit-router.cjs` accepts a new `prior_class` parameter (default `null` = existing uniform-prior behavior; `"promoted_incubator"` = `Beta(2, 8)` conservative prior).
73
+
74
+ ### Documentation
75
+
76
+ - `reference/capability-gap-stage-gate.md` — Stage-0 → Stage-1 gate spec (K=3 / M=10 defaults, `stddev(Beta(α, β)) < 0.05` stability threshold, user opt-in flow).
77
+ - `README.md` + 6 translated READMEs (de/fr/it/ja/ko/zh-CN) updated with the capability-gap telemetry + self-authoring section: Stage 0 ships immediately (telemetry-only, no authoring); Stage 1 authoring is opt-in via `/gdd:apply-reflections` once K=3 stable clusters across M=10 cycles surface.
78
+
79
+ ### Preserved (no behavior change)
80
+
81
+ - **Phase 11 success-criterion-8 discipline.** The reflector authors nothing that auto-ships. `/gdd:apply-reflections` remains the single human gate (extended to include the new Incubator proposal class, not bypassed).
82
+ - **Phase 28.7 file-drop install paths UNCHANGED.** `scripts/lib/install/converters/cursor.cjs` and `scripts/lib/install/converters/codex.cjs` remain backward-compatible per the Phase 28.8 D-05 invariant.
83
+ - **Phase 28.8 Tier-2 channels (.cursor-plugin/plugin.json + .codex-plugin/plugin.json)** version-bumped in lockstep, but their schemas / keys / structure are UNCHANGED.
84
+ - **Scope guard (D-05).** Self-authoring is limited to `agents/` and `skills/` only. No runtimes / transports / connections / hooks / scripts / CI workflow authoring. `scripts/validate-incubator-scope.cjs` enforces this at promotion time.
85
+
86
+ ---
87
+
7
88
  ## [1.28.8] - 2026-05-19
8
89
 
9
90
  ### Phase 28.8 — Tier-2 Distribution Channels
package/README.de.md CHANGED
@@ -211,6 +211,16 @@ Zusätzlich zu den Phase-28.7-Datei-Installationspfaden oben (Standard, weiterhi
211
211
 
212
212
  Vollständige Details siehe [README.md](README.md) (Englisch, autoritativ).
213
213
 
214
+ ### Capability-Gap-Telemetrie + Self-Authoring (v1.29.0+)
215
+
216
+ Die Reflector-Schleife verfolgt "Capability-Lookup fehlgeschlagen"-Signale jetzt als erstklassige Telemetrie und kann — sobald genügend wiederkehrende Lücken auftauchen — neue Agents oder Skills als Vorschläge zur Überprüfung entwerfen.
217
+
218
+ **Stufe 0 — Telemetrie (sofort verfügbar).** Drei Lookup-Fail-Punkte emittieren typisierte `capability_gap`-Events: `skills/fast` No-Skill-Match-Pfade, `gdd-router` Unmatched-Intent-Pfade und die Pattern-Detection-Pass des Reflectors. Anzeigen mit `gdd-events --type capability_gap`.
219
+
220
+ **Stufe 1 — Self-Authoring (Opt-in, sobald Daten das Gate überschreiten).** Wenn K=3 stabile Cluster über M=10 Reflexions-Zyklen auftauchen, fordert `/gdd:apply-reflections` Sie einmalig auf, Stufe 1 zu aktivieren. Der Reflector entwirft dann Inkubator-Artefakte unter `.design/reflections/incubator/<slug>/` mit Phase-28.5-konformen Frontmatter. Vier Aktionen: `accept` / `reject` / `defer` / `edit`. Strict proposal-only — `/gdd:apply-reflections` bleibt der einzige menschliche Gate (Phase 11 SC-8).
221
+
222
+ Scope-Guard: Authoring beschränkt sich auf `agents/` und `skills/` — niemals Runtimes / Transports / Hooks. Vollständige Details siehe [README.md](README.md) (Englisch, autoritativ).
223
+
214
224
 
215
225
  ## Wie es funktioniert
216
226
 
@@ -680,6 +690,19 @@ Entfernt alle GDD-Befehle, Agenten, Hooks und Einstellungen, ohne deine anderen
680
690
 
681
691
  ---
682
692
 
693
+ ## Feedback-Kanal (ab v1.30.0)
694
+
695
+ GDD enthält jetzt einen einwilligungsbasierten GitHub-Issue-Reporter über den Slash-Befehl `/gdd:report-issue`.
696
+
697
+ - **Was er tut.** Führt Sie durch das Melden eines Fehlers oder einer Funktionslücke, mit Vorschau der Nutzlast vor dem Absenden. Lokal-first, einwilligungsbasiert, kein Auto-Modus.
698
+ - **Pseudonymisierung, KEINE Anonymisierung.** Direkte Identifikatoren (Benutzername, Hostname, absolute Pfade, Git-Identität, Umgebungsvariablen-Werte, E-Mails, IP-Adressen) werden durch stabile Pseudonyme ersetzt — aber die interne Korrelation bleibt erhalten, damit Maintainer debuggen können. Seitenkanäle (Schreibstil, Code-Muster, Repo-Fingerabdrücke) können weiterhin re-identifizieren. Sie sehen die vollständige Nutzlast vor dem Absenden und stimmen pro Issue ausdrücklich zu.
699
+ - **Notausschalter.** Setzen Sie `GDD_DISABLE_ISSUE_REPORTER=1` (Umgebung) oder fügen Sie `{ "issue_reporter": false }` in `.design/config.json` hinzu, um die Übermittlung vor jedem Netzwerkaufruf zu stoppen.
700
+ - **`gh`-Fallback.** Falls die GitHub-CLI nicht installiert ist, wird die Nutzlast auf die Festplatte unter `.design/issue-drafts/` geschrieben und die Issue-Template-URL in die Zwischenablage kopiert.
701
+
702
+ Siehe die englische [`README.md`](README.md) für die vollständigen Details, [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md) für den Regelkatalog (R1..R8) und [`reference/known-failure-modes.md`](reference/known-failure-modes.md) für bekannte Fehlermodi.
703
+
704
+ ---
705
+
683
706
  ## Lizenz
684
707
 
685
708
  MIT-Lizenz. Siehe [LICENSE](LICENSE) für Details.
package/README.fr.md CHANGED
@@ -211,6 +211,16 @@ En complément des chemins d'installation par dépôt de fichiers de la Phase 28
211
211
 
212
212
  Pour les détails complets, voir [README.md](README.md) (anglais, autoritatif).
213
213
 
214
+ ### Télémétrie Capability-Gap + Auto-Authoring (v1.29.0+)
215
+
216
+ La boucle réflectrice suit désormais les signaux "lookup de capacité échoué" comme télémétrie de première classe et — une fois que suffisamment de lacunes récurrentes émergent — peut esquisser de nouveaux agents ou skills comme propositions à votre review.
217
+
218
+ **Phase 0 — télémétrie (livrée immédiatement).** Trois points de lookup-fail émettent désormais des événements typés `capability_gap` : chemins `skills/fast` sans match, chemins `gdd-router` à intent non-matché, et le pattern-detection pass du reflector. Affichage via `gdd-events --type capability_gap`.
219
+
220
+ **Phase 1 — auto-authoring (opt-in une fois les données franchissant le seuil).** Lorsque K=3 clusters stables émergent sur M=10 cycles de réflexion, `/gdd:apply-reflections` vous propose une seule fois d'activer la Phase 1. Le reflector esquisse alors des artefacts incubateur sous `.design/reflections/incubator/<slug>/` avec frontmatter conforme Phase 28.5. Quatre actions : `accept` / `reject` / `defer` / `edit`. Strictement proposition-only — `/gdd:apply-reflections` reste l'unique gate humain (Phase 11 SC-8).
221
+
222
+ Scope-guard : l'authoring est limité à `agents/` et `skills/` — jamais runtimes / transports / hooks. Pour les détails complets, voir [README.md](README.md) (anglais, autoritatif).
223
+
214
224
 
215
225
  ## Comment ça marche
216
226
 
@@ -680,6 +690,19 @@ Supprime toutes les commandes, agents, hooks et paramètres GDD tout en préserv
680
690
 
681
691
  ---
682
692
 
693
+ ## Canal de retour (v1.30.0+)
694
+
695
+ GDD inclut désormais un rapporteur de problèmes GitHub avec consentement explicite via la commande slash `/gdd:report-issue`.
696
+
697
+ - **Ce qu'il fait.** Vous guide pour signaler un bug ou une lacune fonctionnelle, avec aperçu de la charge utile avant soumission. Local-first, basé sur le consentement, pas de mode automatique.
698
+ - **Pseudonymisation, PAS d'anonymisation.** Les identifiants directs (nom d'utilisateur, nom d'hôte, chemins absolus, identité Git, valeurs des variables d'environnement, e-mails, adresses IP) sont remplacés par des pseudonymes stables — mais la corrélation interne est préservée pour que les mainteneurs puissent déboguer. Les canaux latéraux (style d'écriture, motifs de code, empreintes de dépôt) peuvent encore ré-identifier. Vous voyez la charge utile complète avant l'envoi et donnez votre consentement par problème.
699
+ - **Interrupteur d'arrêt.** Définissez `GDD_DISABLE_ISSUE_REPORTER=1` (env) ou ajoutez `{ "issue_reporter": false }` à `.design/config.json` pour arrêter la soumission avant tout appel réseau.
700
+ - **Repli si `gh` absent.** Si la CLI GitHub n'est pas installée, la charge utile est écrite sur disque dans `.design/issue-drafts/` et l'URL du modèle d'issue est copiée dans le presse-papiers.
701
+
702
+ Voir [`README.md`](README.md) en anglais pour les détails complets, [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md) pour le catalogue de règles (R1..R8) et [`reference/known-failure-modes.md`](reference/known-failure-modes.md) pour les modes d'échec connus.
703
+
704
+ ---
705
+
683
706
  ## Licence
684
707
 
685
708
  Licence MIT. Voir [LICENSE](LICENSE) pour les détails.
package/README.it.md CHANGED
@@ -211,6 +211,16 @@ Oltre ai percorsi di installazione file-drop della Fase 28.7 sopra (predefiniti,
211
211
 
212
212
  Per i dettagli completi, vedere [README.md](README.md) (inglese, autorevole).
213
213
 
214
+ ### Telemetria Capability-Gap + Self-Authoring (v1.29.0+)
215
+
216
+ Il loop riflettore ora traccia i segnali "capability lookup fallito" come telemetria di prima classe e — una volta che emergono abbastanza lacune ricorrenti — può abbozzare nuovi agent o skill come proposte da revisionare.
217
+
218
+ **Stadio 0 — telemetria (rilasciato immediatamente).** Tre punti di lookup-fail emettono eventi tipizzati `capability_gap`: percorsi `skills/fast` senza match, percorsi `gdd-router` con intent non risolto, e il pattern-detection pass del riflettore. Visualizza con `gdd-events --type capability_gap`.
219
+
220
+ **Stadio 1 — self-authoring (opt-in una volta superata la soglia).** Quando K=3 cluster stabili emergono su M=10 cicli di riflessione, `/gdd:apply-reflections` ti chiede una sola volta di abilitare lo Stadio 1. Il riflettore abbozza quindi artefatti incubatore in `.design/reflections/incubator/<slug>/` con frontmatter conforme Phase 28.5. Quattro azioni: `accept` / `reject` / `defer` / `edit`. Strettamente proposal-only — `/gdd:apply-reflections` rimane l'unico gate umano (Phase 11 SC-8).
221
+
222
+ Scope-guard: l'authoring è limitato ad `agents/` e `skills/` — mai runtimes / transports / hooks. Per i dettagli completi, vedere [README.md](README.md) (inglese, autorevole).
223
+
214
224
 
215
225
  ## Come funziona
216
226
 
@@ -680,6 +690,19 @@ Rimuove tutti i comandi, agenti, hook e impostazioni GDD preservando le altre co
680
690
 
681
691
  ---
682
692
 
693
+ ## Canale di feedback (da v1.30.0)
694
+
695
+ GDD ora include un reporter di issue GitHub basato sul consenso esplicito tramite il comando slash `/gdd:report-issue`.
696
+
697
+ - **Cosa fa.** Ti guida nella segnalazione di un problema o una lacuna funzionale, con un'anteprima del payload prima dell'invio. Local-first, basato sul consenso, senza modalità automatica.
698
+ - **Pseudonimizzazione, NON anonimizzazione.** Gli identificatori diretti (nome utente, hostname, percorsi assoluti, identità Git, valori delle variabili d'ambiente, e-mail, indirizzi IP) vengono sostituiti con pseudonimi stabili — ma la correlazione interna è preservata affinché i maintainer possano fare debugging. I canali laterali (stile di scrittura, pattern di codice, fingerprint del repository) possono ancora re-identificare. Vedi il payload completo prima dell'invio e dai il consenso per ogni issue.
699
+ - **Interruttore di emergenza.** Imposta `GDD_DISABLE_ISSUE_REPORTER=1` (env) o aggiungi `{ "issue_reporter": false }` a `.design/config.json` per fermare l'invio prima di qualsiasi chiamata di rete.
700
+ - **Fallback in assenza di `gh`.** Se la CLI di GitHub non è installata, il payload viene scritto su disco in `.design/issue-drafts/` e l'URL del template di issue viene copiata negli appunti.
701
+
702
+ Vedi [`README.md`](README.md) in inglese per i dettagli completi, [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md) per il catalogo delle regole (R1..R8) e [`reference/known-failure-modes.md`](reference/known-failure-modes.md) per i modi di fallimento noti.
703
+
704
+ ---
705
+
683
706
  ## Licenza
684
707
 
685
708
  Licenza MIT. Vedi [LICENSE](LICENSE) per i dettagli.
package/README.ja.md CHANGED
@@ -211,6 +211,16 @@ claude plugin install get-design-done@get-design-done
211
211
 
212
212
  詳細は [README.md](README.md)(英語、正本)を参照してください。
213
213
 
214
+ ### Capability-Gap テレメトリ + 自己オーサリング (v1.29.0+)
215
+
216
+ リフレクター・ループは「ケイパビリティ・ルックアップ失敗」シグナルをファーストクラスのテレメトリとして追跡するようになりました。十分な繰り返し発生するギャップが浮上したら、レビュー対象として新しい agent / skill を提案として下書きできます。
217
+
218
+ **ステージ 0 — テレメトリ(即時リリース)。** 3 つのルックアップ失敗ポイントが型付き `capability_gap` イベントを発行します: `skills/fast` のスキル不一致パス、`gdd-router` の未解決インテント・パス、リフレクターのパターン検出パス。表示は `gdd-events --type capability_gap`。
219
+
220
+ **ステージ 1 — 自己オーサリング(データがゲートを越えたらオプトイン)。** K=3 個の安定したクラスタが M=10 サイクルで現れると、`/gdd:apply-reflections` がステージ 1 を有効化するかを一度だけ尋ねます。リフレクターは Phase 28.5 準拠の frontmatter を持つインキュベーター・アーティファクトを `.design/reflections/incubator/<slug>/` に下書きします。4 つのアクション: `accept` / `reject` / `defer` / `edit`。厳密に proposal-only — `/gdd:apply-reflections` が唯一の人間ゲートです (Phase 11 SC-8)。
221
+
222
+ スコープ・ガード: オーサリングは `agents/` と `skills/` に限定され、ランタイム / トランスポート / フックは対象外です。詳細は [README.md](README.md)(英語、正本)を参照してください。
223
+
214
224
 
215
225
  ## 仕組み
216
226
 
@@ -680,6 +690,19 @@ npx @hegemonart/get-design-done --claude --local --uninstall
680
690
 
681
691
  ---
682
692
 
693
+ ## フィードバックチャンネル(v1.30.0+)
694
+
695
+ GDD は、`/gdd:report-issue` スラッシュコマンドによる同意ベースの GitHub Issue リポーターを搭載しました。
696
+
697
+ - **何をするか。** 問題や機能不足の報告をガイドし、送信前にペイロードのプレビューを表示します。ローカルファースト、同意ベース、自動モードなし。
698
+ - **疑似匿名化であり、匿名化ではありません。** 直接識別子(ユーザー名、ホスト名、絶対パス、Git アイデンティティ、環境変数の値、メールアドレス、IP アドレス)は安定した疑似識別子に置き換えられますが、メンテナーがデバッグできるよう内部相関は保持されます。サイドチャネルデータ(文体、コードパターン、リポジトリのフィンガープリント)による再識別の可能性は残ります。送信前に完全なペイロードを確認し、Issue ごとに明示的に同意します。
699
+ - **キルスイッチ。** ネットワーク呼び出しの前に送信を停止するには、`GDD_DISABLE_ISSUE_REPORTER=1`(環境変数)または `.design/config.json` に `{ "issue_reporter": false }` を設定します。
700
+ - **`gh` 不在時のフォールバック。** GitHub CLI がインストールされていない場合、ペイロードは `.design/issue-drafts/` のディスクに書き込まれ、Issue テンプレート URL がクリップボードにコピーされます。
701
+
702
+ 詳細は英語版の [`README.md`](README.md)、ルールカタログ(R1..R8)は [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md)、既知の失敗モードは [`reference/known-failure-modes.md`](reference/known-failure-modes.md) を参照してください。
703
+
704
+ ---
705
+
683
706
  ## ライセンス
684
707
 
685
708
  MIT ライセンス。詳細は [LICENSE](LICENSE) を参照。
package/README.ko.md CHANGED
@@ -211,6 +211,16 @@ claude plugin install get-design-done@get-design-done
211
211
 
212
212
  자세한 내용은 [README.md](README.md)(영어, 정본)을 참조하세요.
213
213
 
214
+ ### Capability-Gap 텔레메트리 + 자가 저작 (v1.29.0+)
215
+
216
+ 리플렉터 루프는 이제 "capability 조회 실패" 신호를 일급 텔레메트리로 추적하며, 충분히 반복되는 갭이 드러나면 새로운 agent 또는 skill을 리뷰용 제안으로 작성할 수 있습니다.
217
+
218
+ **스테이지 0 — 텔레메트리(즉시 출시).** 세 가지 조회 실패 지점이 타입화된 `capability_gap` 이벤트를 발행합니다: `skills/fast` 스킬 미일치 경로, `gdd-router` 미일치 인텐트 경로, 리플렉터 패턴 감지 패스. `gdd-events --type capability_gap`으로 확인하세요.
219
+
220
+ **스테이지 1 — 자가 저작(데이터가 게이트를 통과하면 옵트인).** K=3개의 안정 클러스터가 M=10 사이클에 걸쳐 나타나면, `/gdd:apply-reflections`가 스테이지 1 활성화 여부를 한 번 묻습니다. 그러면 리플렉터는 Phase 28.5 준수 frontmatter를 가진 인큐베이터 아티팩트를 `.design/reflections/incubator/<slug>/`에 초안 작성합니다. 4가지 액션: `accept` / `reject` / `defer` / `edit`. 엄격히 proposal-only — `/gdd:apply-reflections`가 유일한 인간 게이트입니다 (Phase 11 SC-8).
221
+
222
+ 스코프 가드: 저작은 `agents/` 와 `skills/`에 한정되며 — 런타임 / 트랜스포트 / 훅은 대상이 아닙니다. 자세한 내용은 [README.md](README.md)(영어, 정본)을 참조하세요.
223
+
214
224
 
215
225
  ## 작동 방식
216
226
 
@@ -680,6 +690,19 @@ npx @hegemonart/get-design-done --claude --local --uninstall
680
690
 
681
691
  ---
682
692
 
693
+ ## 피드백 채널 (v1.30.0+)
694
+
695
+ GDD에는 이제 `/gdd:report-issue` 슬래시 명령어를 통한 동의 기반 GitHub 이슈 리포터가 포함되어 있습니다.
696
+
697
+ - **무엇을 하나요.** 이슈 또는 기능 부족을 보고하도록 안내하며, 제출 전에 페이로드를 미리 봅니다. 로컬 우선, 동의 기반, 자동 모드 없음.
698
+ - **익명화가 아닌 가명화입니다.** 직접 식별자(사용자 이름, 호스트 이름, 절대 경로, Git ID, 환경 변수 값, 이메일, IP 주소)는 안정적인 가명으로 대체되지만, 메인테이너가 디버깅할 수 있도록 내부 상관관계는 유지됩니다. 사이드 채널 데이터(글쓰기 스타일, 코드 패턴, 저장소 지문)는 여전히 재식별될 수 있습니다. 제출 전에 전체 페이로드를 보고 이슈별로 명시적으로 동의합니다.
699
+ - **킬 스위치.** 네트워크 호출 전에 제출을 중단하려면 `GDD_DISABLE_ISSUE_REPORTER=1`(환경) 또는 `.design/config.json`에 `{ "issue_reporter": false }`를 추가하세요.
700
+ - **`gh` 부재 시 폴백.** GitHub CLI가 설치되어 있지 않으면 페이로드가 `.design/issue-drafts/`에 디스크에 기록되고 이슈 템플릿 URL이 클립보드에 복사됩니다.
701
+
702
+ 전체 세부 사항은 영어 [`README.md`](README.md)를, 규칙 카탈로그(R1..R8)는 [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md)를, 알려진 실패 모드는 [`reference/known-failure-modes.md`](reference/known-failure-modes.md)를 참조하세요.
703
+
704
+ ---
705
+
683
706
  ## 라이선스
684
707
 
685
708
  MIT 라이선스. 자세한 내용은 [LICENSE](LICENSE) 참조.
package/README.md CHANGED
@@ -241,6 +241,20 @@ Beyond the Phase 28.7 file-drop install paths above (which remain the default an
241
241
 
242
242
  Tier-1 file-drop paths above and Tier-2 channels here are **additive opt-in** — both work independently per Phase 28.8 D-05 backward-compat discipline.
243
243
 
244
+ ### Capability-Gap Telemetry + Self-Authoring (v1.29.0+)
245
+
246
+ The reflector loop now tracks "capability lookup failed" signals as first-class telemetry and — once enough recurring gaps surface — can draft new agents or skills as proposals for your review.
247
+
248
+ **Stage 0 — telemetry (ships immediately).**
249
+ Three lookup-fail points now emit typed `capability_gap` events: `skills/fast` no-skill-match paths, `gdd-router` unmatched-intent paths, and the reflector's pattern-detection pass (recurring `Touches:` clusters without a dedicated owner). The reflector aggregates per-cycle gap events into a `## Capability gaps observed` section in your reflection notes. View with `gdd-events --type capability_gap`. No authoring on Stage 0 — this just surfaces signal.
250
+
251
+ **Stage 1 — self-authoring (opt-in once data crosses the gate).**
252
+ When K=3 stable clusters surface across M=10 reflection cycles (defaults in `reference/capability-gap-stage-gate.md`), `/gdd:apply-reflections` prompts you once to enable Stage 1. With Stage 1 on, the reflector drafts incubator artifacts at `.design/reflections/incubator/<slug>/` — `SKILL.md` or `agents/<slug>.md` with full Phase 28.5-compliant frontmatter, originating events, computed usage frequency, and a suggested integration point. Drafts surface in `/gdd:apply-reflections` as a 5th proposal class with four actions: `accept` (promotes + registers), `reject`, `defer`, `edit`. Promoted arms enter the bandit with a conservative `Beta(2, 8)` prior so they don't get preferential selection until evidence accumulates. Drafts not promoted/refreshed within 30 days auto-archive.
253
+
254
+ **Scope guard.** Authoring is limited to `agents/` and `skills/` only — never runtimes, transports, connections, hooks, or CI workflows. `scripts/validate-incubator-scope.cjs` blocks promotion attempts outside scope.
255
+
256
+ **Discipline preserved.** Reflector authors nothing that auto-ships. `/gdd:apply-reflections` remains the single human gate (Phase 11 SC-8). Stage 1 never auto-flips — user opts in.
257
+
244
258
 
245
259
  ## How It Works
246
260
 
@@ -743,6 +757,20 @@ This removes all GDD commands, agents, hooks, and settings while preserving othe
743
757
 
744
758
  ---
745
759
 
760
+ ## Feedback Channel (v1.30.0+)
761
+
762
+ GDD now ships a consent-first GitHub issue reporter via the `/gdd:report-issue` slash command.
763
+
764
+ - **What it does.** Walks you through reporting an issue or a capability gap, with a payload preview before submission. Local-first, consent-gated, no auto-mode. Triages against `reference/known-failure-modes.md` first — many failures resolve without filing.
765
+ - **Pseudonymization, NOT anonymization.** Direct identifiers (your username, hostname, absolute paths, git identity, env-var values, emails, IPs) are replaced with stable pseudonyms — but internal correlation is preserved so maintainers can debug. Side-channel data (writing style, code patterns, repo fingerprints) may still re-identify. You see the full payload before submission and explicitly consent per-issue.
766
+ - **Kill-switch.** Set `GDD_DISABLE_ISSUE_REPORTER=1` (env) or add `{ "issue_reporter": false }` to `.design/config.json` to halt submission before any network call. `gsd-health` surfaces the disable line.
767
+ - **Hardcoded destination.** The reporter cannot be redirected at runtime; the destination repo is a frozen constant in `scripts/lib/issue-reporter/destination.cjs`.
768
+ - **`gh`-absent fallback.** If the GitHub CLI isn't installed, the payload is written to `.design/issue-drafts/` and the issue-template URL is copied to your clipboard (xclip / pbcopy / clip).
769
+
770
+ See [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md) for the R1..R8 rule catalog and [`reference/known-failure-modes.md`](reference/known-failure-modes.md) for known anti-patterns the reporter detects.
771
+
772
+ ---
773
+
746
774
  ## License
747
775
 
748
776
  MIT License. See [LICENSE](LICENSE) for details.
package/README.zh-CN.md CHANGED
@@ -210,6 +210,16 @@ claude plugin install get-design-done@get-design-done
210
210
 
211
211
  完整细节请见 [README.md](README.md)(英文,权威版本)。
212
212
 
213
+ ### Capability-Gap 遥测 + 自动撰写(v1.29.0+)
214
+
215
+ 反射器循环现在将"能力查找失败"信号作为一类遥测来跟踪,一旦出现足够多的循环性缺口,可以将新的 agent 或 skill 作为提案草稿提交给你审查。
216
+
217
+ **Stage 0 — 遥测(立即发布)。** 三个查找失败点现在发出类型化的 `capability_gap` 事件:`skills/fast` 无 skill 匹配路径、`gdd-router` 未匹配意图路径、反射器模式检测 pass。使用 `gdd-events --type capability_gap` 查看。
218
+
219
+ **Stage 1 — 自动撰写(数据越过阈值后选择性启用)。** 当 K=3 个稳定集群在 M=10 个反思周期中出现时,`/gdd:apply-reflections` 会一次性提示你启用 Stage 1。反射器随后在 `.design/reflections/incubator/<slug>/` 起草符合 Phase 28.5 标准 frontmatter 的孵化器 artifact。四个动作:`accept` / `reject` / `defer` / `edit`。严格 proposal-only — `/gdd:apply-reflections` 仍是唯一的人类闸门 (Phase 11 SC-8)。
220
+
221
+ 作用域守卫:撰写仅限 `agents/` 和 `skills/` — 永不涉及 runtimes / transports / hooks。完整细节请见 [README.md](README.md)(英文,权威版本)。
222
+
213
223
 
214
224
  ## 工作流程
215
225
 
@@ -701,6 +711,19 @@ npx @hegemonart/get-design-done --claude --local --uninstall
701
711
 
702
712
  ---
703
713
 
714
+ ## 反馈通道(v1.30.0 起)
715
+
716
+ GDD 现在通过 `/gdd:report-issue` 斜杠命令提供基于明确同意的 GitHub 问题报告器。
717
+
718
+ - **它做什么。** 引导你报告问题或能力空缺,并在提交前预览有效负载。本地优先、基于同意、无自动模式。
719
+ - **是假名化,不是匿名化。** 直接标识符(用户名、主机名、绝对路径、Git 身份、环境变量值、邮箱、IP 地址)会被替换为稳定的假名 —— 但内部关联得以保留,以便维护者进行调试。副信道数据(写作风格、代码模式、仓库指纹)仍可能用于再识别。你会在提交前看到完整的有效负载,并对每个问题明确同意。
720
+ - **关停开关。** 设置 `GDD_DISABLE_ISSUE_REPORTER=1`(环境变量)或在 `.design/config.json` 中添加 `{ "issue_reporter": false }`,即可在任何网络调用前停止提交。
721
+ - **`gh` 缺失时的回退。** 如果未安装 GitHub CLI,有效负载会写入磁盘 `.design/issue-drafts/`,问题模板 URL 会复制到剪贴板。
722
+
723
+ 完整细节请参见英文 [`README.md`](README.md),规则目录(R1..R8)参见 [`reference/pseudonymization-rules.md`](reference/pseudonymization-rules.md),已知失败模式参见 [`reference/known-failure-modes.md`](reference/known-failure-modes.md)。
724
+
725
+ ---
726
+
704
727
  ## 许可证
705
728
 
706
729
  MIT 协议。详见 [LICENSE](LICENSE)。
package/SKILL.md CHANGED
@@ -58,6 +58,7 @@ Each stage produces artifacts in `.design/` inside the current project.
58
58
  | **Debug & Workflow** | | |
59
59
  | `debug [<symptom>]` | `get-design-done:gdd-debug` | Symptom-driven design investigation; persistent state in `.design/DEBUG.md` |
60
60
  | `do <natural language>` | `get-design-done:gdd-do` | Natural-language router — parses intent, confirms, dispatches |
61
+ | `report-issue [<cmd>] [--force-report]` | `get-design-done:report-issue` | Consent-gated GitHub issue reporter — triage, pseudonymize, draft to disk, submit via `gh` (no auto-mode; hardcoded destination) |
61
62
  | **Ship & Safety** | | |
62
63
  | `ship [--title <t>] [--draft]` | `get-design-done:gdd-ship` | Post-verify PR flow — clean branch + `gh pr create` |
63
64
  | `pr-branch [<base>]` | `get-design-done:gdd-pr-branch` | Strip `.design/` and `.planning/` commits for clean code-review branch |
@@ -231,6 +232,7 @@ If `$ARGUMENTS` is a stage or command name — invoke it directly, no state chec
231
232
  # --- Debug & Workflow ---
232
233
  /gdd:debug → Skill("get-design-done:gdd-debug")
233
234
  /gdd:do → Skill("get-design-done:gdd-do")
235
+ /gdd:report-issue → Skill("get-design-done:report-issue")
234
236
  # --- Ship & Safety ---
235
237
  /gdd:ship → Skill("get-design-done:gdd-ship")
236
238
  /gdd:pr-branch → Skill("get-design-done:gdd-pr-branch")
@@ -35,6 +35,18 @@ Read flow:
35
35
 
36
36
  Legacy grep-based parsing of skill outputs is preserved as a fallback for skills that haven't yet migrated to emit `reflection.proposal` events (Phase 22 scope). If no `reflection.proposal` events are present in the stream, run the legacy harvest across `.design/learnings/*.md` and `.design/intel/` exactly as before — both paths produce the same Proposals section format.
37
37
 
38
+ ## Capability-gap pattern scan (Phase 29 Plan 02)
39
+
40
+ During the reflection pass, also run the capability-gap pattern scan to detect recurring patterns lacking a dedicated executable owner. The scan emits `capability_gap` events with `source: "reflector_pattern"` for Plan 29-03 to aggregate.
41
+
42
+ ```
43
+ node -e "console.log(JSON.stringify(require('./scripts/lib/reflector/capability-gap-scan.cjs').runCapabilityGapScan(), null, 2))"
44
+ ```
45
+
46
+ The scan reads three signal sources: `.design/intel/*.md` `Touches:` clusters, `.design/telemetry/posterior.json` high-usage arms with no specialized agent, and recent `.design/gep/events.jsonl` decision sequences. MCP-probe failures (`outcome === 'connection-error'`, `agent === 'mcp-probe'`, or `mcp_probe: true`) do NOT trigger gap events (CONTEXT D-08). See @skills/reflect/procedures/capability-gap-scan.md for the full contract.
47
+
48
+ Cite the returned `emittedEventIds` in the run summary under a `## Capability gaps emitted` heading. The threshold knob is `reflector.capability_gap_threshold` in `.design/config.json` (default `N=3`, integer ≥ 1).
49
+
38
50
  ## Required Reading
39
51
 
40
52
  The orchestrating stage supplies a `<required_reading>` block in the prompt. Read every listed file before acting — this is mandatory.
@@ -52,6 +64,8 @@ Minimum expected inputs (skip gracefully if absent, note what's missing):
52
64
 
53
65
  Write `.design/reflections/<cycle-slug>.md`. If `--dry-run` is set in the spawning prompt, print proposals to stdout only — do not write the file.
54
66
 
67
+ If the capability-gap pattern scan emitted any events during this run, include a `## Capability gaps emitted` heading listing each `event_id` with the source signal kind (`intel` | `posterior` | `trajectory`) and the `suggested_kind` (`agent` | `skill`) per event. Plan 29-03 reads these events from `.design/gep/events.jsonl` to cluster recurring `capability_gap` events for `/gdd:apply-reflections`.
68
+
55
69
  Terminate with `## REFLECTION COMPLETE`.
56
70
 
57
71
  ## Reflection Sections
@@ -203,6 +217,42 @@ Render each `bandit_arbitrage` entry into the Proposals section as a `[FRONTMATT
203
217
 
204
218
  ---
205
219
 
220
+ ### 9. Capability gaps observed (Phase 29 — D-01 / D-03)
221
+
222
+ **Why this exists:** Plans 29-01 and 29-02 emit `capability_gap` events to `.design/gep/events.jsonl` whenever `/gdd:fast`, `gdd-router`, or the reflector pattern-detection pass identifies a lookup-fail with no dedicated owner. This section surfaces those events as clusters in the cycle markdown and evaluates the Stage-0 → Stage-1 gate per `reference/capability-gap-stage-gate.md`.
223
+
224
+ **Data sources:**
225
+
226
+ - `.design/gep/events.jsonl` — the Phase 22 causal event chain. Rows where `type === 'capability_gap'` (or `outcome === 'capability_gap'`) are aggregated by `payload.context_hash`.
227
+ - `.design/config.json` (optional) — `capability_gap_gate.{K, M, stddev_threshold}` overrides. Defaults: `K=3`, `M=10`, `stddev_threshold=0.05` per D-03.
228
+
229
+ **The mechanism:**
230
+
231
+ 1. Invoke `scripts/lib/reflections-cycle-writer.cjs` via Bash with `--chain=.design/gep/events.jsonl` and (when available) `--history=<path>` pointing at an array of prior cycle cluster lists.
232
+ 2. The shim calls `aggregateCapabilityGaps()` from `scripts/lib/reflector-capability-gap-aggregator.cjs` which clusters events by `context_hash`, caps each cluster's example evidence at 3, and orders by size desc.
233
+ 3. The shim calls `renderGapsSection(clusters)` which returns the `## Capability gaps observed` markdown block. The block is empty (no header emitted) when there are no clusters in this cycle — the cycle markdown is unchanged.
234
+ 4. When `--history` is supplied AND at least M cycles have been observed, the shim also calls `evaluateStageGate(history, config)`. If the gate is crossed AND `.design/config.json` does NOT already carry `capability_gap_gate.user_prompted_at`, a one-time prompt block is appended (verbatim text in `reference/capability-gap-stage-gate.md` § 5).
235
+
236
+ **Bash invocation (executor follows verbatim):**
237
+
238
+ ```bash
239
+ node scripts/lib/reflections-cycle-writer.cjs \
240
+ --chain=.design/gep/events.jsonl \
241
+ --config=.design/config.json
242
+ ```
243
+
244
+ Append stdout to the cycle markdown body (after Section 8 / before the Proposals header). If `--history=<path>` is wired by a future cycle-aggregator, add the flag. For Stage 0 (this phase), per-cycle cluster aggregation alone is the deliverable — gate evaluation surfaces additively when history is present.
245
+
246
+ **Important discipline (D-01 lock):**
247
+
248
+ - This section NEVER auto-flips `capability_gap_gate.stage` or any other runtime state. The output is markdown only; the user opts in via Plan 29-05's apply-reflections extension.
249
+ - The shim is read-only with respect to `.design/config.json`. The only state-mutating writer is the user-driven opt-in path (deferred to 29-05).
250
+ - `evidence_refs[]` content is rendered as-is in the markdown table examples column — per the plan's threat model T-29.03-04, evidence refs are trusted-content (file:line or event-id strings from the 29-01 schema).
251
+
252
+ **Helper:** `scripts/lib/reflector-capability-gap-aggregator.cjs` exports `aggregateCapabilityGaps`, `renderGapsSection`, `evaluateStageGate`. The shim wraps these for invocation from the agent prompt; tests in `tests/reflector-capability-gap-aggregation.test.cjs` cover the helper directly with synthetic fixtures (D-11).
253
+
254
+ ---
255
+
206
256
  ## Proposals
207
257
 
208
258
  After all sections, write a **Proposals** section. Number proposals sequentially. Every proposal must include evidence — no vague observations.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hegemonart/get-design-done",
3
- "version": "1.28.8",
3
+ "version": "1.30.0",
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",