@hegemonart/get-design-done 1.31.0 → 1.31.5

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 (163) hide show
  1. package/.claude-plugin/marketplace.json +2 -2
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/CHANGELOG.md +44 -0
  4. package/NOTICE +224 -0
  5. package/README.md +1 -1
  6. package/agents/design-authority-watcher.md +1 -1
  7. package/agents/perf-analyzer.md +2 -2
  8. package/bin/gdd-mcp +78 -0
  9. package/bin/gdd-sdk +34 -24
  10. package/bin/gdd-state-mcp +78 -0
  11. package/{README.de.md → docs/i18n/README.de.md} +1 -1
  12. package/{README.fr.md → docs/i18n/README.fr.md} +1 -1
  13. package/{README.it.md → docs/i18n/README.it.md} +1 -1
  14. package/{README.ja.md → docs/i18n/README.ja.md} +1 -1
  15. package/{README.ko.md → docs/i18n/README.ko.md} +1 -1
  16. package/{README.zh-CN.md → docs/i18n/README.zh-CN.md} +1 -1
  17. package/hooks/_hook-emit.js +1 -1
  18. package/hooks/budget-enforcer.ts +5 -5
  19. package/hooks/context-exhaustion.ts +2 -2
  20. package/hooks/gdd-precompact-snapshot.js +3 -3
  21. package/hooks/gdd-read-injection-scanner.ts +2 -2
  22. package/hooks/gdd-sessionstart-recap.js +1 -1
  23. package/hooks/gdd-turn-closeout.js +1 -1
  24. package/package.json +20 -9
  25. package/recipes/.gitkeep +0 -0
  26. package/reference/schemas/recipe.schema.json +33 -0
  27. package/scripts/cli/gdd-events.mjs +5 -5
  28. package/scripts/lib/cache/gdd-cache-manager.cjs +1 -1
  29. package/scripts/lib/cli/index.ts +22 -160
  30. package/scripts/lib/connection-probe/index.cjs +1 -1
  31. package/scripts/lib/discuss-parallel-runner/aggregator.ts +1 -1
  32. package/scripts/lib/discuss-parallel-runner/index.ts +1 -1
  33. package/scripts/lib/error-classifier.cjs +24 -227
  34. package/scripts/lib/event-stream/index.ts +25 -193
  35. package/scripts/lib/gdd-errors/index.ts +24 -213
  36. package/scripts/lib/gdd-state/index.ts +23 -161
  37. package/scripts/lib/iteration-budget.cjs +23 -199
  38. package/scripts/lib/jittered-backoff.cjs +24 -107
  39. package/scripts/lib/lockfile.cjs +23 -195
  40. package/scripts/lib/logger/index.ts +1 -1
  41. package/scripts/lib/parallelism-engine/concurrency-tuner.cjs +1 -1
  42. package/scripts/lib/perf-analyzer/index.cjs +1 -1
  43. package/scripts/lib/pipeline-runner/index.ts +4 -4
  44. package/scripts/lib/pipeline-runner/state-machine.ts +1 -1
  45. package/scripts/lib/prompt-dedup/index.cjs +1 -1
  46. package/scripts/lib/rate-guard.cjs +2 -2
  47. package/scripts/lib/recipe-loader.cjs +142 -0
  48. package/scripts/lib/session-runner/errors.ts +3 -3
  49. package/scripts/lib/session-runner/index.ts +3 -3
  50. package/scripts/lib/session-runner/transcript.ts +1 -1
  51. package/scripts/lib/tool-scoping/index.ts +1 -1
  52. package/scripts/mcp-servers/gdd-mcp/server.ts +29 -311
  53. package/scripts/mcp-servers/gdd-state/server.ts +28 -282
  54. package/sdk/README.md +45 -0
  55. package/{scripts/lib → sdk}/cli/commands/audit.ts +3 -3
  56. package/{scripts/lib → sdk}/cli/commands/init.ts +3 -3
  57. package/{scripts/lib → sdk}/cli/commands/query.ts +4 -4
  58. package/{scripts/lib → sdk}/cli/commands/run.ts +5 -5
  59. package/{scripts/lib → sdk}/cli/commands/stage.ts +5 -5
  60. package/sdk/cli/index.js +8091 -0
  61. package/sdk/cli/index.ts +172 -0
  62. package/{scripts/lib → sdk}/cli/parse-args.ts +2 -2
  63. package/{scripts/lib/gdd-errors → sdk/errors}/classification.ts +1 -1
  64. package/sdk/errors/index.ts +218 -0
  65. package/{scripts/lib → sdk}/event-stream/emitter.ts +1 -1
  66. package/sdk/event-stream/index.ts +197 -0
  67. package/{scripts/lib → sdk}/event-stream/reader.ts +1 -1
  68. package/{scripts/lib → sdk}/event-stream/types.ts +2 -2
  69. package/{scripts/lib → sdk}/event-stream/writer.ts +1 -1
  70. package/sdk/index.ts +19 -0
  71. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/README.md +3 -3
  72. package/sdk/mcp/gdd-mcp/server.js +1924 -0
  73. package/sdk/mcp/gdd-mcp/server.ts +325 -0
  74. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_cycle_recap.ts +3 -3
  75. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_decisions_list.ts +2 -2
  76. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_events_tail.ts +3 -3
  77. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_health.ts +2 -2
  78. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_intel_get.ts +2 -2
  79. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_learnings_digest.ts +2 -2
  80. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_phase_current.ts +2 -2
  81. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_phases_list.ts +2 -2
  82. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_plans_list.ts +2 -2
  83. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_reflections_latest.ts +2 -2
  84. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_status.ts +3 -3
  85. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/gdd_telemetry_query.ts +3 -3
  86. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/index.ts +2 -2
  87. package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/tools/shared.ts +3 -3
  88. package/sdk/mcp/gdd-state/server.js +2790 -0
  89. package/sdk/mcp/gdd-state/server.ts +294 -0
  90. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/add_blocker.ts +3 -3
  91. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/add_decision.ts +3 -3
  92. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/add_must_have.ts +3 -3
  93. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/checkpoint.ts +2 -2
  94. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/frontmatter_update.ts +2 -2
  95. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/get.ts +3 -3
  96. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/index.ts +1 -1
  97. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/probe_connections.ts +3 -3
  98. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/resolve_blocker.ts +3 -3
  99. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/set_status.ts +2 -2
  100. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/shared.ts +8 -8
  101. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/transition_stage.ts +4 -4
  102. package/{scripts/mcp-servers → sdk/mcp}/gdd-state/tools/update_progress.ts +2 -2
  103. package/sdk/primitives/error-classifier.cjs +232 -0
  104. package/sdk/primitives/iteration-budget.cjs +205 -0
  105. package/sdk/primitives/jittered-backoff.cjs +112 -0
  106. package/sdk/primitives/lockfile.cjs +201 -0
  107. package/{scripts/lib/gdd-state → sdk/state}/gates.ts +1 -1
  108. package/sdk/state/index.ts +167 -0
  109. package/{scripts/lib/gdd-state → sdk/state}/lockfile.ts +1 -1
  110. package/{scripts/lib/gdd-state → sdk/state}/mutator.ts +1 -1
  111. package/{scripts/lib/gdd-state → sdk/state}/parser.ts +1 -1
  112. package/{scripts/lib/gdd-state → sdk/state}/types.ts +4 -4
  113. package/skills/quality-gate/SKILL.md +2 -2
  114. package/scripts/aggregate-agent-metrics.ts +0 -282
  115. package/scripts/bootstrap-manifest.txt +0 -3
  116. package/scripts/bootstrap.sh +0 -80
  117. package/scripts/build-distribution-bundles.cjs +0 -549
  118. package/scripts/build-intel.cjs +0 -486
  119. package/scripts/codegen-schema-types.ts +0 -149
  120. package/scripts/detect-stale-refs.cjs +0 -107
  121. package/scripts/e2e/run-headless.ts +0 -514
  122. package/scripts/extract-changelog-section.cjs +0 -58
  123. package/scripts/gsd-cleanup-incubator.cjs +0 -367
  124. package/scripts/injection-patterns.cjs +0 -58
  125. package/scripts/lint-agentskills-spec.cjs +0 -457
  126. package/scripts/release-smoke-test.cjs +0 -200
  127. package/scripts/rollback-release.sh +0 -42
  128. package/scripts/run-injection-scanner-ci.cjs +0 -83
  129. package/scripts/tests/test-authority-rejected-kinds.sh +0 -58
  130. package/scripts/tests/test-authority-watcher-diff.sh +0 -113
  131. package/scripts/tests/test-motion-provenance.sh +0 -64
  132. package/scripts/validate-frontmatter.ts +0 -409
  133. package/scripts/validate-incubator-scope.cjs +0 -133
  134. package/scripts/validate-schemas.ts +0 -401
  135. package/scripts/validate-skill-length.cjs +0 -283
  136. package/scripts/verify-version-sync.cjs +0 -30
  137. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_cycle_recap.schema.json +0 -0
  138. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_decisions_list.schema.json +0 -0
  139. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_events_tail.schema.json +0 -0
  140. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_health.schema.json +0 -0
  141. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_intel_get.schema.json +0 -0
  142. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_learnings_digest.schema.json +0 -0
  143. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_phase_current.schema.json +0 -0
  144. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_phases_list.schema.json +0 -0
  145. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_plans_list.schema.json +0 -0
  146. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_reflections_latest.schema.json +0 -0
  147. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_status.schema.json +0 -0
  148. /package/{scripts/mcp-servers → sdk/mcp}/gdd-mcp/schemas/gdd_telemetry_query.schema.json +0 -0
  149. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/add_blocker.schema.json +0 -0
  150. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/add_decision.schema.json +0 -0
  151. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/add_must_have.schema.json +0 -0
  152. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/checkpoint.schema.json +0 -0
  153. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/frontmatter_update.schema.json +0 -0
  154. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/get.schema.json +0 -0
  155. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/probe_connections.schema.json +0 -0
  156. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/resolve_blocker.schema.json +0 -0
  157. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/set_status.schema.json +0 -0
  158. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/transition_stage.schema.json +0 -0
  159. /package/{scripts/mcp-servers → sdk/mcp}/gdd-state/schemas/update_progress.schema.json +0 -0
  160. /package/{scripts/lib → sdk/primitives}/error-classifier.d.cts +0 -0
  161. /package/{scripts/lib → sdk/primitives}/iteration-budget.d.cts +0 -0
  162. /package/{scripts/lib → sdk/primitives}/jittered-backoff.d.cts +0 -0
  163. /package/{scripts/lib → sdk/primitives}/lockfile.d.cts +0 -0
package/sdk/README.md ADDED
@@ -0,0 +1,45 @@
1
+ # `@hegemonart/get-design-done` SDK
2
+
3
+ The SDK is the typed, runtime-tested core that the GDD pipeline and both MCP
4
+ servers are built on. It is plain TypeScript run under Node 22+
5
+ `--experimental-strip-types` (no build step). Five concerns live here: the
6
+ **`gdd-state` MCP server** (11 typed STATE.md tools over stdio), **lockfile-safe
7
+ STATE.md** read / mutate / transition, the **append-only event stream** (JSONL +
8
+ in-process bus), the four **resilience primitives** (`.cjs` + `.d.cts`), and the
9
+ headless **`gdd-sdk` CLI**.
10
+
11
+ ## Import contract (D-04)
12
+
13
+ Prefer the **explicit per-module path** for the surface you need. The
14
+ `sdk/index.ts` barrel re-exports state / event-stream / errors / cli for callers
15
+ who want one entry point; the bare-package root import is reserved for the
16
+ install bin. Every path below is importable from the published package.
17
+
18
+ | Module | Public import | Helpers (key exports) | Stability |
19
+ | --------------- | --------------------------------------------------- | ------------------------------------------------------------------------------------- | --------- |
20
+ | cli | `@hegemonart/get-design-done/sdk/cli` | `dispatch`, `main`, `USAGE`, `DispatcherDeps` | beta |
21
+ | state | `@hegemonart/get-design-done/sdk/state` | `read`, `mutate`, `transition`, `ParsedState`, `Stage` | beta |
22
+ | event-stream | `@hegemonart/get-design-done/sdk/event-stream` | `appendEvent`, `getWriter`, `getBus`, `subscribe`, `subscribeAll`, `reset`, `readEvents`, `aggregate`, `EventBus`, `EventWriter`, `KNOWN_EVENT_TYPES` | beta |
23
+ | errors | `@hegemonart/get-design-done/sdk/errors` | `GDDError`, `ValidationError`, `StateConflictError`, `OperationFailedError`, `TransitionGateFailed`, `LockAcquisitionError`, `ParseError` | beta |
24
+ | primitives/error-classifier | `@hegemonart/get-design-done/sdk/primitives/error-classifier` | `classify`, `FailoverReason` | stable |
25
+ | primitives/iteration-budget | `@hegemonart/get-design-done/sdk/primitives/iteration-budget` | `consume`, `refund`, `remaining`, `reset`, `IterationBudgetExhaustedError` | stable |
26
+ | primitives/jittered-backoff | `@hegemonart/get-design-done/sdk/primitives/jittered-backoff` | `delayMs`, `sleep`, `DEFAULTS` | stable |
27
+ | primitives/lockfile | `@hegemonart/get-design-done/sdk/primitives/lockfile` | `acquire`, `renameWithRetry` | stable |
28
+ | mcp/gdd-state | `@hegemonart/get-design-done/sdk/mcp/gdd-state` | `buildServer` (server.ts) — 11 STATE.md tools over stdio | beta |
29
+
30
+ The barrel: `import { read, appendEvent, ValidationError } from '@hegemonart/get-design-done/sdk'`.
31
+
32
+ ## Notes
33
+
34
+ - **Primitives are `stable`** (D-05): they ship as `.cjs` + `.d.cts` pairs and
35
+ are the most-imported surface; the TS migration is a separate phase.
36
+ - **`state` re-exports the three error classes** (`TransitionGateFailed`,
37
+ `LockAcquisitionError`, `ParseError`) from `errors` verbatim, so importing
38
+ them from either path yields the same identity.
39
+ - The event stream persists to `.design/telemetry/events.jsonl`; `appendEvent`
40
+ is persist-first / broadcast-second and never throws on the persist path.
41
+ - `mutate()` / `transition()` take an advisory sibling lockfile; one process per
42
+ `.design/` is the design contract.
43
+
44
+ See `connections/gdd-state.md` for the MCP wiring and the runtime fallback that
45
+ imports the `state` module directly when the MCP is `not_configured`.
@@ -1,4 +1,4 @@
1
- // scripts/lib/cli/commands/audit.ts — Plan 21-09 Task 5 (SDK-21).
1
+ // sdk/cli/commands/audit.ts — Plan 21-09 Task 5 (SDK-21).
2
2
  //
3
3
  // `gdd-sdk audit` — regression + verification dry-run.
4
4
  //
@@ -25,8 +25,8 @@
25
25
  import { existsSync, readFileSync } from 'node:fs';
26
26
  import { resolve as resolvePath } from 'node:path';
27
27
 
28
- import { read } from '../../gdd-state/index.ts';
29
- import type { ConnectionStatus, ParsedState } from '../../gdd-state/types.ts';
28
+ import { read } from '../../state/index.ts';
29
+ import type { ConnectionStatus, ParsedState } from '../../state/types.ts';
30
30
 
31
31
  import {
32
32
  coerceFlags,
@@ -1,4 +1,4 @@
1
- // scripts/lib/cli/commands/init.ts — Plan 21-09 Task 6 (SDK-21).
1
+ // sdk/cli/commands/init.ts — Plan 21-09 Task 6 (SDK-21).
2
2
  //
3
3
  // `gdd-sdk init` — bootstrap a new project's `.design/` directory by
4
4
  // delegating to `init-runner.run()` (Plan 21-08).
@@ -16,8 +16,8 @@
16
16
  import {
17
17
  run as defaultInitRun,
18
18
  type InitRunnerResult,
19
- } from '../../init-runner/index.ts';
20
- import { getLogger } from '../../logger/index.ts';
19
+ } from '../../../scripts/lib/init-runner/index.ts';
20
+ import { getLogger } from '../../../scripts/lib/logger/index.ts';
21
21
 
22
22
  import {
23
23
  coerceFlags,
@@ -1,4 +1,4 @@
1
- // scripts/lib/cli/commands/query.ts — Plan 21-09 Task 4 (SDK-21).
1
+ // sdk/cli/commands/query.ts — Plan 21-09 Task 4 (SDK-21).
2
2
  //
3
3
  // `gdd-sdk query <op>` — typed STATE.md read operations. Mirrors the
4
4
  // read side of the gdd-state MCP server. Never mutates — use the
@@ -20,9 +20,9 @@
20
20
  import { existsSync, readFileSync } from 'node:fs';
21
21
  import { resolve as resolvePath } from 'node:path';
22
22
 
23
- import { read } from '../../gdd-state/index.ts';
24
- import { gateFor } from '../../gdd-state/gates.ts';
25
- import { isStage, type ParsedState, type Stage } from '../../gdd-state/types.ts';
23
+ import { read } from '../../state/index.ts';
24
+ import { gateFor } from '../../state/gates.ts';
25
+ import { isStage, type ParsedState, type Stage } from '../../state/types.ts';
26
26
 
27
27
  import {
28
28
  coerceFlags,
@@ -1,4 +1,4 @@
1
- // scripts/lib/cli/commands/run.ts — Plan 21-09 Task 2 (SDK-21),
1
+ // sdk/cli/commands/run.ts — Plan 21-09 Task 2 (SDK-21),
2
2
  // extended by Plan 21-11 Task 3 (dry-run).
3
3
  //
4
4
  // `gdd-sdk run` — drives the full design pipeline via
@@ -36,10 +36,10 @@ import {
36
36
  type RunOverrides,
37
37
  type Stage,
38
38
  type StageOutcome,
39
- } from '../../pipeline-runner/index.ts';
40
- import { getLogger } from '../../logger/index.ts';
41
- import { ValidationError } from '../../gdd-errors/index.ts';
42
- import type { SessionResult, SessionRunnerOptions } from '../../session-runner/types.ts';
39
+ } from '../../../scripts/lib/pipeline-runner/index.ts';
40
+ import { getLogger } from '../../../scripts/lib/logger/index.ts';
41
+ import { ValidationError } from '../../errors/index.ts';
42
+ import type { SessionResult, SessionRunnerOptions } from '../../../scripts/lib/session-runner/types.ts';
43
43
 
44
44
  import {
45
45
  coerceFlags,
@@ -1,4 +1,4 @@
1
- // scripts/lib/cli/commands/stage.ts — Plan 21-09 Task 3 (SDK-21).
1
+ // sdk/cli/commands/stage.ts — Plan 21-09 Task 3 (SDK-21).
2
2
  //
3
3
  // `gdd-sdk stage <name>` — run a single pipeline stage. Delegates to
4
4
  // `pipeline-runner.run()` with `stages: [<name>]` for design-pipeline
@@ -24,16 +24,16 @@ import {
24
24
  type PipelineConfig,
25
25
  type PipelineResult,
26
26
  type Stage,
27
- } from '../../pipeline-runner/index.ts';
27
+ } from '../../../scripts/lib/pipeline-runner/index.ts';
28
28
  import {
29
29
  run as defaultExploreParallelRun,
30
30
  type ExploreRunnerResult,
31
- } from '../../explore-parallel-runner/index.ts';
31
+ } from '../../../scripts/lib/explore-parallel-runner/index.ts';
32
32
  import {
33
33
  run as defaultDiscussParallelRun,
34
34
  type DiscussRunnerResult,
35
- } from '../../discuss-parallel-runner/index.ts';
36
- import { getLogger } from '../../logger/index.ts';
35
+ } from '../../../scripts/lib/discuss-parallel-runner/index.ts';
36
+ import { getLogger } from '../../../scripts/lib/logger/index.ts';
37
37
 
38
38
  import {
39
39
  coerceFlags,