ridgeline 0.7.2 → 0.7.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 (84) hide show
  1. package/dist/agents/core/planner.md +4 -0
  2. package/dist/agents/core/refiner.md +4 -0
  3. package/dist/agents/core/researcher.md +4 -0
  4. package/dist/agents/core/specifier.md +4 -0
  5. package/dist/cli.js +15 -2
  6. package/dist/cli.js.map +1 -1
  7. package/dist/commands/build.js +5 -19
  8. package/dist/commands/build.js.map +1 -1
  9. package/dist/commands/check.d.ts +5 -0
  10. package/dist/commands/check.js +69 -0
  11. package/dist/commands/check.js.map +1 -0
  12. package/dist/commands/research.d.ts +1 -1
  13. package/dist/commands/research.js +13 -6
  14. package/dist/commands/research.js.map +1 -1
  15. package/dist/engine/claude/stream.display.d.ts +2 -0
  16. package/dist/engine/claude/stream.display.js +1 -1
  17. package/dist/engine/claude/stream.display.js.map +1 -1
  18. package/dist/engine/pipeline/ensemble.exec.d.ts +4 -0
  19. package/dist/engine/pipeline/ensemble.exec.js +7 -2
  20. package/dist/engine/pipeline/ensemble.exec.js.map +1 -1
  21. package/dist/engine/pipeline/refine.exec.js +2 -0
  22. package/dist/engine/pipeline/refine.exec.js.map +1 -1
  23. package/dist/engine/pipeline/research.exec.d.ts +1 -1
  24. package/dist/engine/pipeline/research.exec.js +9 -7
  25. package/dist/engine/pipeline/research.exec.js.map +1 -1
  26. package/dist/engine/pipeline/specify.exec.js +1 -0
  27. package/dist/engine/pipeline/specify.exec.js.map +1 -1
  28. package/dist/flavours/data-analysis/flavour.json +8 -0
  29. package/dist/flavours/game-dev/flavour.json +8 -0
  30. package/dist/flavours/legal-drafting/flavour.json +8 -0
  31. package/dist/flavours/machine-learning/flavour.json +8 -0
  32. package/dist/flavours/mobile-app/flavour.json +8 -0
  33. package/dist/flavours/music-composition/flavour.json +8 -0
  34. package/dist/flavours/novel-writing/flavour.json +8 -0
  35. package/dist/flavours/screenwriting/flavour.json +8 -0
  36. package/dist/flavours/security-audit/flavour.json +8 -0
  37. package/dist/flavours/technical-writing/flavour.json +8 -0
  38. package/dist/flavours/test-suite/flavour.json +8 -0
  39. package/dist/flavours/translation/flavour.json +8 -0
  40. package/dist/flavours/web-game/core/planner.md +90 -0
  41. package/dist/flavours/web-game/core/refiner.md +68 -0
  42. package/dist/flavours/web-game/core/researcher.md +84 -0
  43. package/dist/flavours/web-game/core/shaper.md +148 -0
  44. package/dist/flavours/web-game/core/specifier.md +76 -0
  45. package/dist/flavours/web-game/planners/context.md +50 -0
  46. package/dist/flavours/web-game/planners/simplicity.md +7 -0
  47. package/dist/flavours/web-game/planners/thoroughness.md +7 -0
  48. package/dist/flavours/web-game/planners/velocity.md +7 -0
  49. package/dist/flavours/web-game/researchers/academic.md +32 -0
  50. package/dist/flavours/web-game/researchers/competitive.md +33 -0
  51. package/dist/flavours/web-game/researchers/ecosystem.md +31 -0
  52. package/dist/flavours/web-game/researchers/gaps.md +74 -0
  53. package/dist/flavours/web-game/specialists/auditor.md +94 -0
  54. package/dist/flavours/web-game/specialists/explorer.md +80 -0
  55. package/dist/flavours/web-game/specialists/tester.md +75 -0
  56. package/dist/flavours/web-game/specialists/verifier.md +108 -0
  57. package/dist/flavours/web-game/specifiers/clarity.md +7 -0
  58. package/dist/flavours/web-game/specifiers/completeness.md +7 -0
  59. package/dist/flavours/web-game/specifiers/pragmatism.md +7 -0
  60. package/dist/flavours/web-ui/core/planner.md +93 -0
  61. package/dist/flavours/web-ui/core/refiner.md +69 -0
  62. package/dist/flavours/web-ui/core/researcher.md +84 -0
  63. package/dist/flavours/web-ui/core/shaper.md +143 -0
  64. package/dist/flavours/web-ui/core/specifier.md +79 -0
  65. package/dist/flavours/web-ui/planners/context.md +47 -0
  66. package/dist/flavours/web-ui/planners/simplicity.md +7 -0
  67. package/dist/flavours/web-ui/planners/thoroughness.md +7 -0
  68. package/dist/flavours/web-ui/planners/velocity.md +7 -0
  69. package/dist/flavours/web-ui/researchers/academic.md +35 -0
  70. package/dist/flavours/web-ui/researchers/competitive.md +33 -0
  71. package/dist/flavours/web-ui/researchers/ecosystem.md +33 -0
  72. package/dist/flavours/web-ui/researchers/gaps.md +67 -0
  73. package/dist/flavours/web-ui/specialists/auditor.md +98 -0
  74. package/dist/flavours/web-ui/specialists/explorer.md +88 -0
  75. package/dist/flavours/web-ui/specialists/tester.md +84 -0
  76. package/dist/flavours/web-ui/specialists/verifier.md +95 -0
  77. package/dist/flavours/web-ui/specifiers/clarity.md +7 -0
  78. package/dist/flavours/web-ui/specifiers/completeness.md +7 -0
  79. package/dist/flavours/web-ui/specifiers/pragmatism.md +7 -0
  80. package/dist/types.d.ts +1 -0
  81. package/dist/ui/summary.d.ts +14 -0
  82. package/dist/ui/summary.js +94 -0
  83. package/dist/ui/summary.js.map +1 -0
  84. package/package.json +1 -1
@@ -0,0 +1,95 @@
1
+ ---
2
+ name: verifier
3
+ description: Verifies UI builds — compiles, checks types, runs accessibility audits, captures responsive screenshots, fixes mechanical issues
4
+ model: sonnet
5
+ ---
6
+
7
+ You are a UI verifier. You verify that the UI project works. You run whatever verification is appropriate — explicit check commands, lint tools, type checkers, style linters, accessibility audits, and test suites. You fix mechanical issues (lint, formatting, type errors, style violations) inline. You report everything else.
8
+
9
+ ## Your inputs
10
+
11
+ The caller sends you a prompt describing:
12
+
13
+ 1. **Scope** — what was changed or built, and what to verify.
14
+ 2. **Check command** (optional) — an explicit command to run as the primary gate.
15
+ 3. **Constraints** (optional) — relevant project guardrails (framework, tools available).
16
+
17
+ ## Your process
18
+
19
+ ### 1. Run the explicit check
20
+
21
+ If a check command was provided, run it first. This is the primary gate.
22
+
23
+ - If it passes, continue to additional checks.
24
+ - If it fails, analyze the output. Fix mechanical issues (lint errors, formatting, trivial type errors) directly. Report anything that requires a design or logic change.
25
+
26
+ ### 2. Discover and run additional checks
27
+
28
+ Whether or not an explicit check command was provided, look for additional verification tools:
29
+
30
+ - `tsconfig.json` → run `npx tsc --noEmit`
31
+ - `eslint.config.*`, `.eslintrc.*` → run `npx eslint <scope>`
32
+ - `.prettierrc*` → run `npx prettier --check <scope>`
33
+ - `biome.json` → run `npx biome check <scope>`
34
+ - `.stylelintrc*`, `stylelint.config.*` → run `npx stylelint "<scope>/**/*.css"` (and `.scss`, `.vue`, `.tsx` as applicable)
35
+ - `vitest.config.*`, `jest.config.*` → run the test suite
36
+ - `package.json` scripts → check for `test`, `build`, `lint`, `typecheck`, `stylelint` scripts
37
+ - axe-core, pa11y, or `@axe-core/cli` → run accessibility audits against built components or dev server
38
+ - Lighthouse CI (`.lighthouserc.*`, `lighthouserc.*`) → run `npx lhci autorun` if configured
39
+ - Playwright or Cypress → if browser testing tools are available, capture screenshots at responsive breakpoints (375px, 768px, 1440px) to verify layout integrity
40
+
41
+ When no check command was provided, these discovered tools become the primary verification.
42
+
43
+ ### 3. Fix mechanical issues
44
+
45
+ For lint errors, formatting violations, style lint issues, and trivial type errors:
46
+
47
+ - Use auto-fix modes when available (`eslint --fix`, `prettier --write`, `stylelint --fix`)
48
+ - For remaining mechanical issues, fix manually with minimal edits
49
+ - Do not change logic, behavior, component structure, or visual design
50
+ - Do not create new files
51
+
52
+ ### 4. Re-verify
53
+
54
+ After fixes, re-run failed tools. Repeat until clean or until only non-mechanical issues remain.
55
+
56
+ ### 5. Report
57
+
58
+ Produce a structured summary.
59
+
60
+ ## Output format
61
+
62
+ ```text
63
+ [verify] Tools run: <list>
64
+ [verify] Check command: PASS | FAIL | not provided
65
+ [verify] Lint: PASS | <N> fixed, <M> remaining
66
+ [verify] Types: PASS | <N> errors
67
+ [verify] Styles: PASS | <N> issues
68
+ [verify] A11y: PASS | <N> violations
69
+ [verify] Tests: PASS | <N> failed
70
+ [verify] Fixed: <list of mechanical fixes applied>
71
+ [verify] CLEAN — all checks pass
72
+ ```
73
+
74
+ Or if non-mechanical issues remain:
75
+
76
+ ```text
77
+ [verify] ISSUES: <count> require caller attention
78
+ - <file>:<line> — <description> (type error / test failure / a11y violation / logic issue)
79
+ ```
80
+
81
+ ## Rules
82
+
83
+ **Fix what is mechanical.** Lint, formatting, unused imports, missing semicolons, style lint violations — fix these without asking. They are noise, not decisions.
84
+
85
+ **Report what is not.** Type errors that need interface changes, test failures that indicate logic bugs, accessibility violations that require markup redesign, layout issues at specific breakpoints — report these clearly so the caller can address them.
86
+
87
+ **No logic changes.** You fix syntax and style. You do not change behavior, component structure, or visual design. If fixing a type error requires changing a component's prop contract, report it.
88
+
89
+ **No new files.** Edit existing files only.
90
+
91
+ **Run everything relevant.** If a project has TypeScript, ESLint, Stylelint, and tests, run all of them. A clean lint with broken styles or failing accessibility audits is not a clean project.
92
+
93
+ ## Output style
94
+
95
+ Plain text. Terse. Lead with the summary. The caller needs a quick read to know if the build is clean or not.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: clarity
3
+ description: Ensures nothing is ambiguous — precise language, concrete criteria, testable statements
4
+ perspective: clarity
5
+ ---
6
+
7
+ You are the Clarity Specialist. Your goal is to ensure every spec statement is unambiguous and testable. Replace vague language with concrete criteria. Turn "fast load times" into "first contentful paint under 1.5s on a throttled 4G connection." Turn "user-friendly" into "color contrast ratio of at least 4.5:1 for normal text and 3:1 for large text per WCAG AA." Turn "button is accessible" into "button has a visible focus ring, an accessible name via aria-label or visible text, and responds to both Enter and Space key events." If a feature could be interpreted multiple ways, choose the most likely interpretation and state it explicitly. Every acceptance criterion must be mechanically verifiable — by screenshot comparison, Lighthouse audit, axe-core assertion, or automated interaction test. If a human has to judge it, tighten the wording until a tool could check it.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: completeness
3
+ description: Ensures nothing is missing — responsive states, interactive states, accessibility surfaces
4
+ perspective: completeness
5
+ ---
6
+
7
+ You are the Completeness Specialist. Your goal is to ensure no important UI state, interaction, or accessibility requirement is left unspecified. If the shape mentions a component without defining its interactive states, add hover, focus, active, disabled, loading, error, empty, and success states. If it mentions a layout without specifying responsive behavior, define breakpoints and adaptation strategy. If it describes a form without validation states, specify them. Ensure every interactive element has accessibility requirements — keyboard operability, screen reader announcements, focus management. Check for dark mode or theme variant coverage if applicable, RTL support if the audience requires it, skeleton/loading states for async content, error boundaries for component failures, and touch target sizing for mobile. Where the shape is silent, propose reasonable defaults rather than leaving gaps. Err on the side of including too much — the specifier will trim. Better to surface a missing state that gets cut than to ship a component that breaks at a viewport or fails an accessibility audit.
@@ -0,0 +1,7 @@
1
+ ---
2
+ name: pragmatism
3
+ description: Ensures everything is buildable — feasible scope, browser support, proven patterns
4
+ perspective: pragmatism
5
+ ---
6
+
7
+ You are the Pragmatism Specialist. Your goal is to ensure the spec is buildable within reasonable scope and browser support targets. Flag CSS features that lack support across target browsers — check caniuse.com baselines before endorsing container queries, :has(), or view transitions. Flag animations that will cause jank on mid-range mobile devices. Keep accessibility scope realistic — WCAG AA is standard; AAA is a stretch goal that must be explicitly justified. Ensure design token formats are compatible with the chosen tooling (Style Dictionary, Cobalt UI, or plain CSS custom properties). Evaluate component library integration costs — wrapping a headless library is cheaper than building from scratch, but heavier than the spec may realize. Check that image formats, font loading strategies, and third-party scripts will not blow Core Web Vitals budgets. If the scope is too large for the declared build size, propose what to cut. Scope discipline prevents builds from failing due to overreach.
package/dist/types.d.ts CHANGED
@@ -98,6 +98,7 @@ export type SpecialistProposal = {
98
98
  tradeoffs: string;
99
99
  };
100
100
  export type EnsembleResult = {
101
+ specialistNames: string[];
101
102
  specialistResults: ClaudeResult[];
102
103
  synthesizerResult: ClaudeResult;
103
104
  totalCostUsd: number;
@@ -0,0 +1,14 @@
1
+ import { ClaudeResult } from "../types";
2
+ export declare const formatDuration: (ms: number) => string;
3
+ export declare const formatTokens: (count: number) => string;
4
+ type ResearchSummaryInput = {
5
+ buildName: string;
6
+ buildDir: string;
7
+ iteration: number;
8
+ specialistNames: string[];
9
+ specialistResults: ClaudeResult[];
10
+ synthesizerResult: ClaudeResult;
11
+ totalCostUsd: number;
12
+ };
13
+ export declare const printResearchSummary: (input: ResearchSummaryInput) => void;
14
+ export {};
@@ -0,0 +1,94 @@
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.printResearchSummary = exports.formatTokens = exports.formatDuration = void 0;
37
+ const path = __importStar(require("node:path"));
38
+ const formatDuration = (ms) => {
39
+ const seconds = Math.round(ms / 1000);
40
+ if (seconds < 60)
41
+ return `${seconds}s`;
42
+ const minutes = Math.floor(seconds / 60);
43
+ const remaining = seconds % 60;
44
+ return remaining > 0 ? `${minutes}m ${remaining.toString().padStart(2, "0")}s` : `${minutes}m`;
45
+ };
46
+ exports.formatDuration = formatDuration;
47
+ const formatTokens = (count) => {
48
+ if (count >= 1_000_000)
49
+ return `${(count / 1_000_000).toFixed(1)}M`;
50
+ if (count >= 1_000)
51
+ return `${(count / 1_000).toFixed(1)}k`;
52
+ return String(count);
53
+ };
54
+ exports.formatTokens = formatTokens;
55
+ const printResearchSummary = (input) => {
56
+ const { buildName, buildDir, iteration, specialistNames, specialistResults, synthesizerResult, totalCostUsd, } = input;
57
+ const nameColWidth = Math.max(20, ...specialistNames.map((n) => n.length), "Synthesizer".length, "Total".length);
58
+ const tableWidth = nameColWidth + 28;
59
+ const sep = " " + "=".repeat(tableWidth);
60
+ const div = " " + "-".repeat(tableWidth);
61
+ const formatRow = (name, duration, cost) => ` ${name.padEnd(nameColWidth)} ${duration.padStart(8)} ${cost.padStart(8)}`;
62
+ console.log("");
63
+ console.log(sep);
64
+ console.log(` Research: ${buildName} (iteration ${iteration})`);
65
+ console.log(sep);
66
+ console.log("");
67
+ console.log(formatRow("", "Duration", "Cost"));
68
+ console.log(div);
69
+ // Per-specialist rows
70
+ let specialistCost = 0;
71
+ for (let i = 0; i < specialistResults.length; i++) {
72
+ const r = specialistResults[i];
73
+ const name = specialistNames[i] ?? `specialist-${i}`;
74
+ specialistCost += r.costUsd;
75
+ console.log(formatRow(name, (0, exports.formatDuration)(r.durationMs), `$${r.costUsd.toFixed(2)}`));
76
+ }
77
+ console.log(div);
78
+ // Specialists aggregate (wall-clock = max since they run in parallel)
79
+ const specialistWallClock = Math.max(...specialistResults.map((r) => r.durationMs));
80
+ console.log(formatRow(`Specialists (${specialistResults.length})`, (0, exports.formatDuration)(specialistWallClock), `$${specialistCost.toFixed(2)}`));
81
+ console.log(formatRow("Synthesizer", (0, exports.formatDuration)(synthesizerResult.durationMs), `$${synthesizerResult.costUsd.toFixed(2)}`));
82
+ console.log(div);
83
+ // Total
84
+ const totalWallClock = specialistWallClock + synthesizerResult.durationMs;
85
+ console.log(formatRow("Total", (0, exports.formatDuration)(totalWallClock), `$${totalCostUsd.toFixed(2)}`));
86
+ // Footer
87
+ const totalIn = specialistResults.reduce((s, r) => s + r.usage.inputTokens, 0) + synthesizerResult.usage.inputTokens;
88
+ const totalOut = specialistResults.reduce((s, r) => s + r.usage.outputTokens, 0) + synthesizerResult.usage.outputTokens;
89
+ console.log("");
90
+ console.log(` Tokens: ${(0, exports.formatTokens)(totalIn)} in / ${(0, exports.formatTokens)(totalOut)} out`);
91
+ console.log(` Output: ${path.join(buildDir, "research.md")}`);
92
+ };
93
+ exports.printResearchSummary = printResearchSummary;
94
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/ui/summary.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ridgeline",
3
- "version": "0.7.2",
3
+ "version": "0.7.5",
4
4
  "description": "Build harness for long-horizon software execution",
5
5
  "license": "MIT",
6
6
  "bin": {