ridgeline 0.5.9 → 0.7.2

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 (212) hide show
  1. package/README.md +53 -9
  2. package/dist/agents/core/designer.md +131 -0
  3. package/dist/agents/core/refiner.md +61 -0
  4. package/dist/agents/core/researcher.md +78 -0
  5. package/dist/agents/core/specifier.md +16 -0
  6. package/dist/agents/researchers/academic.md +27 -0
  7. package/dist/agents/researchers/competitive.md +28 -0
  8. package/dist/agents/researchers/context.md +46 -0
  9. package/dist/agents/researchers/ecosystem.md +28 -0
  10. package/dist/agents/researchers/gaps.md +67 -0
  11. package/dist/agents/specifiers/visual-coherence.md +55 -0
  12. package/dist/cli.js +83 -1
  13. package/dist/cli.js.map +1 -1
  14. package/dist/commands/create.js +20 -2
  15. package/dist/commands/create.js.map +1 -1
  16. package/dist/commands/design.d.ts +8 -0
  17. package/dist/commands/design.js +130 -0
  18. package/dist/commands/design.js.map +1 -0
  19. package/dist/commands/index.d.ts +1 -0
  20. package/dist/commands/index.js +3 -1
  21. package/dist/commands/index.js.map +1 -1
  22. package/dist/commands/plan.js +3 -3
  23. package/dist/commands/plan.js.map +1 -1
  24. package/dist/commands/qa-workflow.d.ts +33 -0
  25. package/dist/commands/qa-workflow.js +139 -0
  26. package/dist/commands/qa-workflow.js.map +1 -0
  27. package/dist/commands/refine.d.ts +8 -0
  28. package/dist/commands/refine.js +105 -0
  29. package/dist/commands/refine.js.map +1 -0
  30. package/dist/commands/research.d.ts +10 -0
  31. package/dist/commands/research.js +146 -0
  32. package/dist/commands/research.js.map +1 -0
  33. package/dist/commands/rewind.js +5 -3
  34. package/dist/commands/rewind.js.map +1 -1
  35. package/dist/commands/shape.js +36 -121
  36. package/dist/commands/shape.js.map +1 -1
  37. package/dist/commands/spec.js +1 -0
  38. package/dist/commands/spec.js.map +1 -1
  39. package/dist/engine/claude/stream.display.js +0 -1
  40. package/dist/engine/claude/stream.display.js.map +1 -1
  41. package/dist/engine/claude/stream.parse.d.ts +1 -15
  42. package/dist/engine/claude/stream.parse.js +3 -21
  43. package/dist/engine/claude/stream.parse.js.map +1 -1
  44. package/dist/engine/claude/stream.result.js +2 -2
  45. package/dist/engine/claude/stream.types.d.ts +15 -0
  46. package/dist/engine/claude/stream.types.js +23 -0
  47. package/dist/engine/claude/stream.types.js.map +1 -0
  48. package/dist/engine/discovery/agent.registry.d.ts +4 -0
  49. package/dist/engine/discovery/agent.registry.js +46 -18
  50. package/dist/engine/discovery/agent.registry.js.map +1 -1
  51. package/dist/engine/discovery/flavour.config.d.ts +9 -0
  52. package/dist/engine/discovery/flavour.config.js +61 -0
  53. package/dist/engine/discovery/flavour.config.js.map +1 -0
  54. package/dist/engine/discovery/plugin.scan.d.ts +1 -0
  55. package/dist/engine/discovery/plugin.scan.js +29 -1
  56. package/dist/engine/discovery/plugin.scan.js.map +1 -1
  57. package/dist/engine/discovery/skill.check.d.ts +19 -0
  58. package/dist/engine/discovery/skill.check.js +145 -0
  59. package/dist/engine/discovery/skill.check.js.map +1 -0
  60. package/dist/engine/pipeline/build.exec.js +1 -0
  61. package/dist/engine/pipeline/build.exec.js.map +1 -1
  62. package/dist/engine/pipeline/ensemble.exec.d.ts +12 -1
  63. package/dist/engine/pipeline/ensemble.exec.js +20 -10
  64. package/dist/engine/pipeline/ensemble.exec.js.map +1 -1
  65. package/dist/engine/pipeline/phase.sequence.js +10 -10
  66. package/dist/engine/pipeline/phase.sequence.js.map +1 -1
  67. package/dist/engine/pipeline/pipeline.shared.d.ts +6 -0
  68. package/dist/engine/pipeline/pipeline.shared.js +24 -1
  69. package/dist/engine/pipeline/pipeline.shared.js.map +1 -1
  70. package/dist/engine/pipeline/plan.exec.js +1 -0
  71. package/dist/engine/pipeline/plan.exec.js.map +1 -1
  72. package/dist/engine/pipeline/refine.exec.d.ts +10 -0
  73. package/dist/engine/pipeline/refine.exec.js +91 -0
  74. package/dist/engine/pipeline/refine.exec.js.map +1 -0
  75. package/dist/engine/pipeline/research.exec.d.ts +17 -0
  76. package/dist/engine/pipeline/research.exec.js +196 -0
  77. package/dist/engine/pipeline/research.exec.js.map +1 -0
  78. package/dist/engine/pipeline/review.exec.js +23 -0
  79. package/dist/engine/pipeline/review.exec.js.map +1 -1
  80. package/dist/engine/pipeline/specify.exec.d.ts +1 -0
  81. package/dist/engine/pipeline/specify.exec.js +114 -44
  82. package/dist/engine/pipeline/specify.exec.js.map +1 -1
  83. package/dist/flavours/data-analysis/core/refiner.md +65 -0
  84. package/dist/flavours/data-analysis/core/researcher.md +81 -0
  85. package/dist/flavours/data-analysis/researchers/academic.md +29 -0
  86. package/dist/flavours/data-analysis/researchers/competitive.md +29 -0
  87. package/dist/flavours/data-analysis/researchers/ecosystem.md +29 -0
  88. package/dist/flavours/data-analysis/researchers/gaps.md +59 -0
  89. package/dist/flavours/game-dev/core/refiner.md +65 -0
  90. package/dist/flavours/game-dev/core/researcher.md +81 -0
  91. package/dist/flavours/game-dev/researchers/academic.md +31 -0
  92. package/dist/flavours/game-dev/researchers/competitive.md +30 -0
  93. package/dist/flavours/game-dev/researchers/ecosystem.md +29 -0
  94. package/dist/flavours/game-dev/researchers/gaps.md +59 -0
  95. package/dist/flavours/legal-drafting/core/refiner.md +65 -0
  96. package/dist/flavours/legal-drafting/core/researcher.md +81 -0
  97. package/dist/flavours/legal-drafting/researchers/academic.md +31 -0
  98. package/dist/flavours/legal-drafting/researchers/competitive.md +31 -0
  99. package/dist/flavours/legal-drafting/researchers/ecosystem.md +30 -0
  100. package/dist/flavours/legal-drafting/researchers/gaps.md +59 -0
  101. package/dist/flavours/machine-learning/core/refiner.md +65 -0
  102. package/dist/flavours/machine-learning/core/researcher.md +81 -0
  103. package/dist/flavours/machine-learning/researchers/academic.md +32 -0
  104. package/dist/flavours/machine-learning/researchers/competitive.md +32 -0
  105. package/dist/flavours/machine-learning/researchers/ecosystem.md +31 -0
  106. package/dist/flavours/machine-learning/researchers/gaps.md +59 -0
  107. package/dist/flavours/mobile-app/core/refiner.md +65 -0
  108. package/dist/flavours/mobile-app/core/researcher.md +81 -0
  109. package/dist/flavours/mobile-app/researchers/academic.md +31 -0
  110. package/dist/flavours/mobile-app/researchers/competitive.md +32 -0
  111. package/dist/flavours/mobile-app/researchers/ecosystem.md +31 -0
  112. package/dist/flavours/mobile-app/researchers/gaps.md +59 -0
  113. package/dist/flavours/music-composition/core/refiner.md +65 -0
  114. package/dist/flavours/music-composition/core/researcher.md +81 -0
  115. package/dist/flavours/music-composition/researchers/academic.md +32 -0
  116. package/dist/flavours/music-composition/researchers/competitive.md +32 -0
  117. package/dist/flavours/music-composition/researchers/ecosystem.md +32 -0
  118. package/dist/flavours/music-composition/researchers/gaps.md +59 -0
  119. package/dist/flavours/novel-writing/core/refiner.md +65 -0
  120. package/dist/flavours/novel-writing/core/researcher.md +81 -0
  121. package/dist/flavours/novel-writing/researchers/academic.md +32 -0
  122. package/dist/flavours/novel-writing/researchers/competitive.md +32 -0
  123. package/dist/flavours/novel-writing/researchers/ecosystem.md +32 -0
  124. package/dist/flavours/novel-writing/researchers/gaps.md +59 -0
  125. package/dist/flavours/screenwriting/core/refiner.md +65 -0
  126. package/dist/flavours/screenwriting/core/researcher.md +81 -0
  127. package/dist/flavours/screenwriting/researchers/academic.md +32 -0
  128. package/dist/flavours/screenwriting/researchers/competitive.md +32 -0
  129. package/dist/flavours/screenwriting/researchers/ecosystem.md +32 -0
  130. package/dist/flavours/screenwriting/researchers/gaps.md +59 -0
  131. package/dist/flavours/security-audit/core/refiner.md +65 -0
  132. package/dist/flavours/security-audit/core/researcher.md +81 -0
  133. package/dist/flavours/security-audit/researchers/academic.md +32 -0
  134. package/dist/flavours/security-audit/researchers/competitive.md +32 -0
  135. package/dist/flavours/security-audit/researchers/ecosystem.md +32 -0
  136. package/dist/flavours/security-audit/researchers/gaps.md +59 -0
  137. package/dist/flavours/software-engineering/core/builder.md +2 -0
  138. package/dist/flavours/software-engineering/core/refiner.md +65 -0
  139. package/dist/flavours/software-engineering/core/researcher.md +81 -0
  140. package/dist/flavours/software-engineering/core/reviewer.md +2 -0
  141. package/dist/flavours/software-engineering/flavour.json +7 -0
  142. package/dist/flavours/software-engineering/researchers/academic.md +32 -0
  143. package/dist/flavours/software-engineering/researchers/competitive.md +32 -0
  144. package/dist/flavours/software-engineering/researchers/ecosystem.md +32 -0
  145. package/dist/flavours/software-engineering/researchers/gaps.md +59 -0
  146. package/dist/flavours/technical-writing/core/refiner.md +65 -0
  147. package/dist/flavours/technical-writing/core/researcher.md +81 -0
  148. package/dist/flavours/technical-writing/researchers/academic.md +32 -0
  149. package/dist/flavours/technical-writing/researchers/competitive.md +32 -0
  150. package/dist/flavours/technical-writing/researchers/ecosystem.md +32 -0
  151. package/dist/flavours/technical-writing/researchers/gaps.md +59 -0
  152. package/dist/flavours/test-suite/core/refiner.md +65 -0
  153. package/dist/flavours/test-suite/core/researcher.md +81 -0
  154. package/dist/flavours/test-suite/researchers/academic.md +32 -0
  155. package/dist/flavours/test-suite/researchers/competitive.md +32 -0
  156. package/dist/flavours/test-suite/researchers/ecosystem.md +32 -0
  157. package/dist/flavours/test-suite/researchers/gaps.md +59 -0
  158. package/dist/flavours/translation/core/refiner.md +65 -0
  159. package/dist/flavours/translation/core/researcher.md +81 -0
  160. package/dist/flavours/translation/researchers/academic.md +32 -0
  161. package/dist/flavours/translation/researchers/competitive.md +32 -0
  162. package/dist/flavours/translation/researchers/ecosystem.md +32 -0
  163. package/dist/flavours/translation/researchers/gaps.md +59 -0
  164. package/dist/flavours/web-game/core/builder.md +123 -0
  165. package/dist/flavours/web-game/core/reviewer.md +159 -0
  166. package/dist/flavours/web-game/flavour.json +9 -0
  167. package/dist/flavours/web-ui/core/builder.md +117 -0
  168. package/dist/flavours/web-ui/core/reviewer.md +155 -0
  169. package/dist/flavours/web-ui/flavour.json +10 -0
  170. package/dist/plugin/visual-tools/plugin.json +4 -0
  171. package/dist/plugin/visual-tools/skills/a11y-audit/SKILL.md +57 -0
  172. package/dist/plugin/visual-tools/skills/agent-browser/SKILL.md +56 -0
  173. package/dist/plugin/visual-tools/skills/agent-browser/references/viewports.md +17 -0
  174. package/dist/plugin/visual-tools/skills/canvas-screenshot/SKILL.md +84 -0
  175. package/dist/plugin/visual-tools/skills/css-audit/SKILL.md +50 -0
  176. package/dist/plugin/visual-tools/skills/lighthouse/SKILL.md +58 -0
  177. package/dist/plugin/visual-tools/skills/shader-validate/SKILL.md +77 -0
  178. package/dist/plugin/visual-tools/skills/visual-diff/SKILL.md +68 -0
  179. package/dist/shapes/detect.d.ts +8 -0
  180. package/dist/shapes/detect.js +87 -0
  181. package/dist/shapes/detect.js.map +1 -0
  182. package/dist/shapes/game-visual.json +8 -0
  183. package/dist/shapes/print-layout.json +8 -0
  184. package/dist/shapes/web-visual.json +9 -0
  185. package/dist/stores/budget.js +2 -1
  186. package/dist/stores/budget.js.map +1 -1
  187. package/dist/stores/feedback.format.d.ts +3 -0
  188. package/dist/stores/feedback.format.js +62 -0
  189. package/dist/stores/feedback.format.js.map +1 -0
  190. package/dist/stores/feedback.parse.d.ts +2 -0
  191. package/dist/stores/feedback.parse.js +121 -0
  192. package/dist/stores/feedback.parse.js.map +1 -0
  193. package/dist/stores/feedback.verdict.d.ts +2 -4
  194. package/dist/stores/feedback.verdict.js +7 -175
  195. package/dist/stores/feedback.verdict.js.map +1 -1
  196. package/dist/stores/index.d.ts +1 -1
  197. package/dist/stores/index.js +1 -2
  198. package/dist/stores/index.js.map +1 -1
  199. package/dist/stores/settings.d.ts +2 -0
  200. package/dist/stores/settings.js +24 -1
  201. package/dist/stores/settings.js.map +1 -1
  202. package/dist/stores/state.d.ts +4 -0
  203. package/dist/stores/state.js +75 -12
  204. package/dist/stores/state.js.map +1 -1
  205. package/dist/stores/trajectory.d.ts +2 -3
  206. package/dist/stores/trajectory.js +6 -7
  207. package/dist/stores/trajectory.js.map +1 -1
  208. package/dist/types.d.ts +15 -3
  209. package/dist/utils/atomic-write.d.ts +6 -0
  210. package/dist/utils/atomic-write.js +62 -0
  211. package/dist/utils/atomic-write.js.map +1 -0
  212. package/package.json +2 -2
@@ -0,0 +1,55 @@
1
+ ---
2
+ name: visual-coherence
3
+ description: Evaluates specs through the lens of visual design concerns, informed by design.md
4
+ perspective: visual-coherence
5
+ ---
6
+
7
+ You are the Visual Coherence Specialist. Your goal is to ensure the spec properly accounts for visual design requirements — both those explicitly stated in design.md and implicit ones that the other specialists may overlook.
8
+
9
+ Your unique inputs (in addition to shape.md):
10
+
11
+ - **design.md** (project and/or feature level) — contains hard tokens (non-negotiable values) and soft guidance (directional preferences)
12
+ - **Matched shape categories** — which visual domains apply (web-visual, game-visual, print-layout)
13
+
14
+ ## What you check
15
+
16
+ **Hard token coverage:** Every hard token in design.md (specific hex codes, pixel values, font names, "must use" / "always" / "required" language) must map to at least one acceptance criterion on a relevant feature. If a feature touches UI and design.md specifies a spacing grid, that feature's criteria must reference the grid.
17
+
18
+ **Implicit visual requirements:** Features that involve user-facing output need visual acceptance criteria even if the shape didn't call them out:
19
+
20
+ - Responsive behavior at standard breakpoints (mobile/tablet/desktop)
21
+ - Loading states, empty states, error states — how they look, not just that they exist
22
+ - Interactive states: hover, focus, active, disabled
23
+ - Transition and animation behavior (or explicit "no animation")
24
+
25
+ **Soft guidance mapping:** Where design.md uses directional language ("prefer", "lean toward"), propose acceptance criteria as best-effort rather than blocking. Example: "Dashboard layout should generally follow the 8px spacing grid" rather than "Dashboard must use exactly 8px spacing."
26
+
27
+ **Design-specific constraints:** Propose check commands for visual verification where tooling exists. Example: "Run axe-core against the built output to verify WCAG AA compliance."
28
+
29
+ ## What you produce
30
+
31
+ Same `SpecifierDraft` structure as other specialists, with emphasis on:
32
+
33
+ - Visual acceptance criteria distributed across features
34
+ - The `design` field populated with hard tokens, soft guidance, and per-feature visual criteria
35
+ - Constraints that reference design.md requirements
36
+ - Concerns about visual requirements the other specialists may miss
37
+
38
+ Populate the optional `design` field in your output:
39
+
40
+ ```json
41
+ {
42
+ "design": {
43
+ "hardTokens": ["Primary color must be #2563EB", "Spacing grid: 8px base unit"],
44
+ "softGuidance": ["Prefer muted backgrounds", "Lean toward rounded corners"],
45
+ "featureVisuals": [
46
+ {
47
+ "feature": "Dashboard Layout",
48
+ "criteria": ["Uses 8px spacing grid", "Responsive at 640/768/1024px breakpoints", "Color contrast meets WCAG AA"]
49
+ }
50
+ ]
51
+ }
52
+ }
53
+ ```
54
+
55
+ If no design.md exists, infer reasonable visual defaults from the shape and flag the absence as a concern.
package/dist/cli.js CHANGED
@@ -5,18 +5,36 @@ const commander_1 = require("commander");
5
5
  const config_1 = require("./config");
6
6
  const prompt_1 = require("./ui/prompt");
7
7
  const shape_1 = require("./commands/shape");
8
+ const design_1 = require("./commands/design");
8
9
  const spec_1 = require("./commands/spec");
9
10
  const plan_1 = require("./commands/plan");
10
11
  const dry_run_1 = require("./commands/dry-run");
11
12
  const build_1 = require("./commands/build");
12
13
  const create_1 = require("./commands/create");
13
14
  const rewind_1 = require("./commands/rewind");
15
+ const research_1 = require("./commands/research");
16
+ const refine_1 = require("./commands/refine");
14
17
  const claude_exec_1 = require("./engine/claude/claude.exec");
15
18
  // Kill all Claude subprocesses on Ctrl+C before exiting
16
19
  process.on("SIGINT", () => {
17
20
  (0, claude_exec_1.killAllClaude)();
18
21
  setTimeout(() => process.exit(130), 2500);
19
22
  });
23
+ // Kill Claude subprocesses on unhandled errors before crashing
24
+ process.on("uncaughtException", (err) => {
25
+ (0, claude_exec_1.killAllClaudeSync)();
26
+ console.error("Fatal error:", err.message);
27
+ process.exit(1);
28
+ });
29
+ process.on("unhandledRejection", (reason) => {
30
+ (0, claude_exec_1.killAllClaudeSync)();
31
+ console.error("Unhandled rejection:", reason instanceof Error ? reason.message : String(reason));
32
+ process.exit(1);
33
+ });
34
+ // Belt-and-suspenders: clean up any remaining subprocesses on exit
35
+ process.on("exit", () => {
36
+ (0, claude_exec_1.killAllClaudeSync)();
37
+ });
20
38
  const requireBuildName = async (buildName) => {
21
39
  if (!buildName)
22
40
  buildName = await (0, prompt_1.askBuildName)();
@@ -30,6 +48,11 @@ const handleCommandError = (err) => {
30
48
  console.error(err instanceof Error ? err.message : String(err));
31
49
  process.exit(1);
32
50
  };
51
+ const parseBaseOpts = (opts) => ({
52
+ model: opts.model ?? "opus",
53
+ timeout: parseInt(String(opts.timeout ?? "10"), 10),
54
+ flavour: opts.flavour ?? undefined,
55
+ });
33
56
  const withConfig = (fn) => async (buildName, opts) => {
34
57
  try {
35
58
  const config = (0, config_1.resolveConfig)(await requireBuildName(buildName), opts);
@@ -100,6 +123,20 @@ program
100
123
  handleCommandError(err);
101
124
  }
102
125
  });
126
+ program
127
+ .command("design [build-name]")
128
+ .description("Establish or update visual design system (design.md)")
129
+ .option("--model <name>", "Model for designer agent", "opus")
130
+ .option("--timeout <minutes>", "Max duration per turn in minutes", "10")
131
+ .option("--flavour <name-or-path>", "Agent flavour: built-in name or path to custom agents")
132
+ .action(async (buildName, opts) => {
133
+ try {
134
+ await (0, design_1.runDesign)(buildName ? await requireBuildName(buildName) : null, parseBaseOpts(opts));
135
+ }
136
+ catch (err) {
137
+ handleCommandError(err);
138
+ }
139
+ });
103
140
  program
104
141
  .command("spec [build-name]")
105
142
  .description("Generate spec.md, constraints.md, and taste.md from shape.md via ensemble")
@@ -120,6 +157,51 @@ program
120
157
  handleCommandError(err);
121
158
  }
122
159
  });
160
+ program
161
+ .command("research [build-name]")
162
+ .description("Research the spec using web sources to find improvements (optional step between spec and plan)")
163
+ .option("--model <name>", "Model for research agents", "opus")
164
+ .option("--timeout <minutes>", "Max duration per agent in minutes", "15")
165
+ .option("--max-budget-usd <n>", "Halt if cumulative research cost exceeds this amount")
166
+ .option("--deep", "Run full ensemble (3 specialists) instead of quick single-agent research")
167
+ .option("--auto [iterations]", "Auto-loop: research + refine for N iterations (default 2)")
168
+ .option("--flavour <name-or-path>", "Agent flavour: built-in name or path to custom agents")
169
+ .action(async (buildName, opts) => {
170
+ try {
171
+ const autoRaw = opts.auto;
172
+ let auto = null;
173
+ if (autoRaw !== undefined) {
174
+ auto = autoRaw === true ? 2 : parseInt(String(autoRaw), 10);
175
+ if (isNaN(auto) || auto < 1)
176
+ auto = 2;
177
+ }
178
+ await (0, research_1.runResearch)(await requireBuildName(buildName), {
179
+ model: opts.model ?? "opus",
180
+ timeout: parseInt(String(opts.timeout ?? "15"), 10),
181
+ maxBudgetUsd: opts.maxBudgetUsd ? parseFloat(String(opts.maxBudgetUsd)) : undefined,
182
+ flavour: opts.flavour ?? undefined,
183
+ isDeep: opts.deep === true,
184
+ auto,
185
+ });
186
+ }
187
+ catch (err) {
188
+ handleCommandError(err);
189
+ }
190
+ });
191
+ program
192
+ .command("refine [build-name]")
193
+ .description("Merge research.md findings into spec.md")
194
+ .option("--model <name>", "Model for refiner agent", "opus")
195
+ .option("--timeout <minutes>", "Max duration in minutes", "10")
196
+ .option("--flavour <name-or-path>", "Agent flavour: built-in name or path to custom agents")
197
+ .action(async (buildName, opts) => {
198
+ try {
199
+ await (0, refine_1.runRefine)(await requireBuildName(buildName), parseBaseOpts(opts));
200
+ }
201
+ catch (err) {
202
+ handleCommandError(err);
203
+ }
204
+ });
123
205
  const addPlanOptions = (cmd) => cmd
124
206
  .option("--model <name>", "Model for planner", "opus")
125
207
  .option("--timeout <minutes>", "Max duration for planning", "120")
@@ -152,7 +234,7 @@ program
152
234
  program
153
235
  .command("rewind <build-name>")
154
236
  .description("Reset pipeline state to a given stage and clean up downstream artifacts")
155
- .requiredOption("--to <stage>", "Stage to rewind to (shape, spec, plan)")
237
+ .requiredOption("--to <stage>", "Stage to rewind to (shape, spec, research, refine, plan)")
156
238
  .action((buildName, opts) => {
157
239
  try {
158
240
  (0, rewind_1.runRewind)(buildName, opts.to);
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -8,9 +8,15 @@ const spec_1 = require("./spec");
8
8
  const config_1 = require("../config");
9
9
  const plan_1 = require("./plan");
10
10
  const build_1 = require("./build");
11
+ const flavour_resolve_1 = require("../engine/discovery/flavour.resolve");
12
+ const flavour_config_1 = require("../engine/discovery/flavour.config");
13
+ const skill_check_1 = require("../engine/discovery/skill.check");
11
14
  const STAGE_LABELS = {
12
15
  shape: "shape.md",
16
+ design: "design.md",
13
17
  spec: "spec.md",
18
+ research: "research.md",
19
+ refine: "refine",
14
20
  plan: "phases/",
15
21
  build: "build",
16
22
  };
@@ -27,12 +33,24 @@ const runCreate = async (buildName, opts) => {
27
33
  console.log("");
28
34
  (0, output_1.printInfo)(`Build: ${buildName}`);
29
35
  console.log("");
30
- for (const stage of ["shape", "spec", "plan", "build"]) {
31
- const icon = STATUS_ICONS[status[stage]] ?? "---";
36
+ const DISPLAY_STAGES = ["shape", "design", "spec", "research", "refine", "plan", "build"];
37
+ for (const stage of DISPLAY_STAGES) {
38
+ const icon = STATUS_ICONS[status[stage]] ?? (status[stage] === "skipped" ? "skip" : "---");
32
39
  const label = STAGE_LABELS[stage];
33
40
  console.log(` ${label.padEnd(16)} ${icon}`);
34
41
  }
35
42
  console.log("");
43
+ // Show recommended tools for the flavour
44
+ const flavourDir = (0, flavour_resolve_1.resolveFlavour)(opts.flavour ?? null);
45
+ const flavourConfig = (0, flavour_config_1.loadFlavourConfig)(flavourDir);
46
+ if (flavourConfig.recommendedSkills.length > 0) {
47
+ const availability = (0, skill_check_1.checkRecommendedSkills)(flavourConfig.recommendedSkills);
48
+ const display = (0, skill_check_1.formatSkillAvailability)(availability);
49
+ if (display) {
50
+ console.log(display);
51
+ console.log("");
52
+ }
53
+ }
36
54
  if (!nextStage) {
37
55
  (0, output_1.printInfo)("All stages complete.");
38
56
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"create.js","sourceRoot":"","sources":["../../src/commands/create.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ type DesignOptions = {
2
+ model: string;
3
+ timeout: number;
4
+ flavour?: string;
5
+ matchedShapes?: string[];
6
+ };
7
+ export declare const runDesign: (buildName: string | null, opts: DesignOptions) => Promise<void>;
8
+ export {};
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.runDesign = void 0;
37
+ const fs = __importStar(require("node:fs"));
38
+ const path = __importStar(require("node:path"));
39
+ const readline = __importStar(require("node:readline"));
40
+ const output_1 = require("../ui/output");
41
+ const agent_registry_1 = require("../engine/discovery/agent.registry");
42
+ const flavour_resolve_1 = require("../engine/discovery/flavour.resolve");
43
+ const state_1 = require("../stores/state");
44
+ const qa_workflow_1 = require("./qa-workflow");
45
+ /** Determine where to write design.md. */
46
+ const resolveDesignOutputPath = (buildDir, ridgelineDir) => {
47
+ if (buildDir)
48
+ return path.join(buildDir, "design.md");
49
+ return path.join(ridgelineDir, "design.md");
50
+ };
51
+ const runDesign = async (buildName, opts) => {
52
+ const ridgelineDir = path.join(process.cwd(), ".ridgeline");
53
+ const buildDir = buildName
54
+ ? path.join(ridgelineDir, "builds", buildName)
55
+ : null;
56
+ const outputPath = resolveDesignOutputPath(buildDir, ridgelineDir);
57
+ const timeoutMs = opts.timeout * 60 * 1000;
58
+ (0, output_1.printInfo)(buildDir ? `Build directory: ${buildDir}` : "Project-level design");
59
+ const registry = (0, agent_registry_1.buildAgentRegistry)((0, flavour_resolve_1.resolveFlavour)(opts.flavour ?? null));
60
+ const systemPrompt = registry.getCorePrompt("designer.md");
61
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
62
+ try {
63
+ // Gather existing context
64
+ const contextParts = [];
65
+ const projectDesign = path.join(ridgelineDir, "design.md");
66
+ if (fs.existsSync(projectDesign)) {
67
+ contextParts.push("## Existing Project Design\n");
68
+ contextParts.push(fs.readFileSync(projectDesign, "utf-8"));
69
+ contextParts.push("");
70
+ }
71
+ if (buildDir) {
72
+ const featureDesign = path.join(buildDir, "design.md");
73
+ if (fs.existsSync(featureDesign)) {
74
+ contextParts.push("## Existing Feature Design\n");
75
+ contextParts.push(fs.readFileSync(featureDesign, "utf-8"));
76
+ contextParts.push("");
77
+ }
78
+ const shapePath = path.join(buildDir, "shape.md");
79
+ if (fs.existsSync(shapePath)) {
80
+ contextParts.push("## shape.md\n");
81
+ contextParts.push(fs.readFileSync(shapePath, "utf-8"));
82
+ contextParts.push("");
83
+ }
84
+ }
85
+ if (opts.matchedShapes && opts.matchedShapes.length > 0) {
86
+ contextParts.push("## Matched Shape Categories\n");
87
+ contextParts.push(opts.matchedShapes.join(", "));
88
+ contextParts.push("");
89
+ }
90
+ const userPrompt = [
91
+ buildName
92
+ ? `Gather design system context for build "${buildName}".`
93
+ : "Gather project-level design system context.",
94
+ "",
95
+ ...(contextParts.length > 0 ? contextParts : ["No existing design context found."]),
96
+ "",
97
+ "Analyze the context above and ask design-focused questions.",
98
+ "Remember: present ALL questions to the user even when pre-filled.",
99
+ ].join("\n");
100
+ // Intake + clarification loop
101
+ const { sessionId, qa } = await (0, qa_workflow_1.runQAIntake)(rl, systemPrompt, userPrompt, { model: opts.model, questionLabel: "Design questions" }, timeoutMs, "Analyzing design context...");
102
+ // Design output turn — no JSON schema, freeform markdown
103
+ if (qa.summary) {
104
+ console.log(`\nDesign summary:\n ${qa.summary}`);
105
+ }
106
+ const designResult = await (0, qa_workflow_1.runOutputTurn)(systemPrompt, "Produce the final design document now. Respond with freeform markdown — NOT JSON. Structure it with headings, specific values (hard tokens), and directional guidance (soft guidance).", opts.model, timeoutMs, sessionId, "Producing design document...");
107
+ // Write design.md
108
+ const designDir = path.dirname(outputPath);
109
+ if (!fs.existsSync(designDir)) {
110
+ fs.mkdirSync(designDir, { recursive: true });
111
+ }
112
+ fs.writeFileSync(outputPath, designResult.result);
113
+ // Update pipeline state if in build context
114
+ if (buildName && buildDir) {
115
+ (0, state_1.advancePipeline)(buildDir, buildName, "design");
116
+ }
117
+ console.log("");
118
+ (0, output_1.printInfo)("Created:");
119
+ console.log(` ${outputPath}`);
120
+ console.log("");
121
+ if (buildName) {
122
+ (0, output_1.printInfo)(`Next: ridgeline spec ${buildName}`);
123
+ }
124
+ }
125
+ finally {
126
+ rl.close();
127
+ }
128
+ };
129
+ exports.runDesign = runDesign;
130
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","sourceRoot":"","sources":["../../src/commands/design.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  export { runBuild } from './build';
2
+ export { runDesign } from './design';
2
3
  export { runDryRun } from './dry-run';
3
4
  export { runPlan } from './plan';
4
5
  export { runSpec } from './spec';
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.runSpec = exports.runPlan = exports.runDryRun = exports.runBuild = void 0;
3
+ exports.runSpec = exports.runPlan = exports.runDryRun = exports.runDesign = exports.runBuild = void 0;
4
4
  var build_1 = require("./build");
5
5
  Object.defineProperty(exports, "runBuild", { enumerable: true, get: function () { return build_1.runBuild; } });
6
+ var design_1 = require("./design");
7
+ Object.defineProperty(exports, "runDesign", { enumerable: true, get: function () { return design_1.runDesign; } });
6
8
  var dry_run_1 = require("./dry-run");
7
9
  Object.defineProperty(exports, "runDryRun", { enumerable: true, get: function () { return dry_run_1.runDryRun; } });
8
10
  var plan_1 = require("./plan");
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAAzB,iGAAA,QAAQ,OAAA;AACjB,qCAAqC;AAA5B,oGAAA,SAAS,OAAA;AAClB,+BAAgC;AAAvB,+FAAA,OAAO,OAAA;AAChB,+BAAgC;AAAvB,+FAAA,OAAO,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAAzB,iGAAA,QAAQ,OAAA;AACjB,mCAAoC;AAA3B,mGAAA,SAAS,OAAA;AAClB,qCAAqC;AAA5B,oGAAA,SAAS,OAAA;AAClB,+BAAgC;AAAvB,+FAAA,OAAO,OAAA;AAChB,+BAAgC;AAAvB,+FAAA,OAAO,OAAA"}
@@ -53,21 +53,21 @@ const runPlan = async (config) => {
53
53
  fs.mkdirSync(config.phasesDir, { recursive: true });
54
54
  // Run planner
55
55
  (0, output_1.printInfo)("Running planner...");
56
- (0, trajectory_1.logTrajectory)(config.buildDir, (0, trajectory_1.makeTrajectoryEntry)("plan_start", null, "Planning started"));
56
+ (0, trajectory_1.logTrajectory)(config.buildDir, "plan_start", null, "Planning started");
57
57
  const { phases, ensemble } = await (0, ensemble_exec_1.invokePlanner)(config);
58
58
  // Record costs for each specialist
59
59
  for (let i = 0; i < ensemble.specialistResults.length; i++) {
60
60
  (0, budget_1.recordCost)(config.buildDir, "plan", "specialist", i, ensemble.specialistResults[i]);
61
61
  }
62
62
  (0, budget_1.recordCost)(config.buildDir, "plan", "synthesizer", 0, ensemble.synthesizerResult);
63
- (0, trajectory_1.logTrajectory)(config.buildDir, (0, trajectory_1.makeTrajectoryEntry)("plan_complete", null, `Generated ${phases.length} phases`, {
63
+ (0, trajectory_1.logTrajectory)(config.buildDir, "plan_complete", null, `Generated ${phases.length} phases`, {
64
64
  duration: ensemble.totalDurationMs,
65
65
  tokens: {
66
66
  input: ensemble.specialistResults.reduce((sum, r) => sum + r.usage.inputTokens, 0) + ensemble.synthesizerResult.usage.inputTokens,
67
67
  output: ensemble.specialistResults.reduce((sum, r) => sum + r.usage.outputTokens, 0) + ensemble.synthesizerResult.usage.outputTokens,
68
68
  },
69
69
  costUsd: ensemble.totalCostUsd,
70
- }));
70
+ });
71
71
  // Advance pipeline state
72
72
  (0, state_1.advancePipeline)(config.buildDir, config.buildName, "plan");
73
73
  // Print summary
@@ -1 +1 @@
1
- {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"plan.js","sourceRoot":"","sources":["../../src/commands/plan.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import * as readline from "node:readline";
2
+ type QAQuestion = {
3
+ question: string;
4
+ suggestedAnswer?: string;
5
+ };
6
+ type QAResponse = {
7
+ ready: boolean;
8
+ questions?: (string | QAQuestion)[];
9
+ summary?: string;
10
+ };
11
+ export declare const normalizeQuestion: (q: string | QAQuestion) => QAQuestion;
12
+ export declare const parseQAResponse: (resultText: string) => QAResponse;
13
+ export declare const askQuestion: (rl: readline.Interface, prompt: string) => Promise<string>;
14
+ type QAOpts = {
15
+ model: string;
16
+ questionLabel?: string;
17
+ };
18
+ /**
19
+ * Run the QA intake turn — invoke Claude with the QA JSON schema to gather
20
+ * initial questions, then run the clarification loop until ready.
21
+ */
22
+ export declare const runQAIntake: (rl: readline.Interface, systemPrompt: string, userPrompt: string, opts: QAOpts, timeoutMs: number, statusMessage: string) => Promise<{
23
+ sessionId: string;
24
+ qa: QAResponse;
25
+ }>;
26
+ /**
27
+ * Run the output turn — invoke Claude for the final output (no QA schema).
28
+ */
29
+ export declare const runOutputTurn: (systemPrompt: string, userPrompt: string, model: string, timeoutMs: number, sessionId: string, statusMessage: string, jsonSchema?: string) => Promise<{
30
+ result: string;
31
+ sessionId: string;
32
+ }>;
33
+ export {};