ridgeline 0.4.4 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -14
- package/dist/agents/core/builder.md +15 -15
- package/dist/agents/core/planner.md +12 -12
- package/dist/agents/core/reviewer.md +19 -19
- package/dist/agents/core/shaper.md +44 -45
- package/dist/agents/core/specifier.md +20 -23
- package/dist/agents/planners/context.md +10 -10
- package/dist/agents/planners/simplicity.md +1 -1
- package/dist/agents/planners/thoroughness.md +2 -2
- package/dist/agents/planners/velocity.md +2 -2
- package/dist/agents/specialists/auditor.md +34 -33
- package/dist/agents/specialists/explorer.md +74 -0
- package/dist/agents/specialists/tester.md +24 -24
- package/dist/agents/specialists/verifier.md +17 -20
- package/dist/agents/specifiers/clarity.md +1 -1
- package/dist/agents/specifiers/completeness.md +2 -2
- package/dist/agents/specifiers/pragmatism.md +2 -2
- package/dist/cli.js +15 -10
- package/dist/cli.js.map +1 -1
- package/dist/commands/build.js +42 -75
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clean.d.ts +1 -1
- package/dist/commands/clean.js +2 -5
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/create.d.ts +1 -0
- package/dist/commands/create.js +5 -1
- package/dist/commands/create.js.map +1 -1
- package/dist/commands/dry-run.js +1 -1
- package/dist/commands/dry-run.js.map +1 -1
- package/dist/commands/plan.js +3 -3
- package/dist/commands/plan.js.map +1 -1
- package/dist/commands/rewind.js +1 -6
- package/dist/commands/rewind.js.map +1 -1
- package/dist/commands/shape.d.ts +1 -0
- package/dist/commands/shape.js +9 -7
- package/dist/commands/shape.js.map +1 -1
- package/dist/commands/spec.d.ts +1 -0
- package/dist/commands/spec.js +2 -1
- package/dist/commands/spec.js.map +1 -1
- package/dist/config.js +3 -3
- package/dist/config.js.map +1 -1
- package/dist/engine/claude/claude.exec.js +2 -2
- package/dist/engine/claude/stream.display.d.ts +17 -0
- package/dist/engine/claude/stream.display.js +101 -0
- package/dist/engine/claude/stream.display.js.map +1 -0
- package/dist/engine/claude/stream.parse.d.ts +21 -0
- package/dist/engine/claude/stream.parse.js +119 -0
- package/dist/engine/claude/stream.parse.js.map +1 -0
- package/dist/engine/claude/stream.result.d.ts +6 -0
- package/dist/engine/claude/stream.result.js +61 -0
- package/dist/engine/claude/stream.result.js.map +1 -0
- package/dist/engine/discovery/agent.registry.d.ts +27 -0
- package/dist/engine/discovery/agent.registry.js +152 -0
- package/dist/engine/discovery/agent.registry.js.map +1 -0
- package/dist/engine/discovery/agent.scan.d.ts +0 -1
- package/dist/engine/discovery/agent.scan.js +1 -20
- package/dist/engine/discovery/agent.scan.js.map +1 -1
- package/dist/engine/discovery/flavour.resolve.d.ts +11 -0
- package/dist/engine/discovery/flavour.resolve.js +98 -0
- package/dist/engine/discovery/flavour.resolve.js.map +1 -0
- package/dist/engine/index.d.ts +6 -3
- package/dist/engine/index.js +12 -9
- package/dist/engine/index.js.map +1 -1
- package/dist/engine/pipeline/build.exec.js +7 -5
- package/dist/engine/pipeline/build.exec.js.map +1 -1
- package/dist/engine/pipeline/ensemble.exec.d.ts +3 -4
- package/dist/engine/pipeline/ensemble.exec.js +12 -104
- package/dist/engine/pipeline/ensemble.exec.js.map +1 -1
- package/dist/engine/pipeline/phase.sequence.js +69 -67
- package/dist/engine/pipeline/phase.sequence.js.map +1 -1
- package/dist/engine/pipeline/pipeline.shared.js +5 -4
- package/dist/engine/pipeline/pipeline.shared.js.map +1 -1
- package/dist/engine/pipeline/review.exec.js +9 -7
- package/dist/engine/pipeline/review.exec.js.map +1 -1
- package/dist/engine/pipeline/specify.exec.d.ts +1 -0
- package/dist/engine/pipeline/specify.exec.js +5 -3
- package/dist/engine/pipeline/specify.exec.js.map +1 -1
- package/dist/engine/worktree.d.ts +0 -8
- package/dist/engine/worktree.js +2 -163
- package/dist/engine/worktree.js.map +1 -1
- package/dist/flavours/data-analysis/core/builder.md +119 -0
- package/dist/flavours/data-analysis/core/planner.md +102 -0
- package/dist/flavours/data-analysis/core/reviewer.md +148 -0
- package/dist/flavours/data-analysis/core/shaper.md +139 -0
- package/dist/flavours/data-analysis/core/specifier.md +74 -0
- package/dist/flavours/data-analysis/planners/context.md +50 -0
- package/dist/flavours/data-analysis/planners/simplicity.md +7 -0
- package/dist/flavours/data-analysis/planners/thoroughness.md +7 -0
- package/dist/flavours/data-analysis/planners/velocity.md +7 -0
- package/dist/flavours/data-analysis/specialists/auditor.md +94 -0
- package/dist/flavours/data-analysis/specialists/explorer.md +93 -0
- package/dist/flavours/data-analysis/specialists/tester.md +107 -0
- package/dist/flavours/data-analysis/specialists/verifier.md +103 -0
- package/dist/flavours/data-analysis/specifiers/clarity.md +7 -0
- package/dist/flavours/data-analysis/specifiers/completeness.md +15 -0
- package/dist/flavours/data-analysis/specifiers/pragmatism.md +7 -0
- package/dist/flavours/game-dev/core/builder.md +104 -0
- package/dist/flavours/game-dev/core/planner.md +90 -0
- package/dist/flavours/game-dev/core/reviewer.md +151 -0
- package/dist/flavours/game-dev/core/shaper.md +139 -0
- package/dist/flavours/game-dev/core/specifier.md +73 -0
- package/dist/flavours/game-dev/planners/context.md +50 -0
- package/dist/flavours/game-dev/planners/simplicity.md +7 -0
- package/dist/flavours/game-dev/planners/thoroughness.md +7 -0
- package/dist/flavours/game-dev/planners/velocity.md +7 -0
- package/dist/flavours/game-dev/specialists/auditor.md +91 -0
- package/dist/flavours/game-dev/specialists/explorer.md +78 -0
- package/dist/flavours/game-dev/specialists/tester.md +73 -0
- package/dist/flavours/game-dev/specialists/verifier.md +104 -0
- package/dist/flavours/game-dev/specifiers/clarity.md +7 -0
- package/dist/flavours/game-dev/specifiers/completeness.md +7 -0
- package/dist/flavours/game-dev/specifiers/pragmatism.md +7 -0
- package/dist/flavours/legal-drafting/core/builder.md +118 -0
- package/dist/flavours/legal-drafting/core/planner.md +92 -0
- package/dist/flavours/legal-drafting/core/reviewer.md +150 -0
- package/dist/flavours/legal-drafting/core/shaper.md +137 -0
- package/dist/flavours/legal-drafting/core/specifier.md +68 -0
- package/dist/flavours/legal-drafting/planners/context.md +48 -0
- package/dist/flavours/legal-drafting/planners/simplicity.md +7 -0
- package/dist/flavours/legal-drafting/planners/thoroughness.md +7 -0
- package/dist/flavours/legal-drafting/planners/velocity.md +7 -0
- package/dist/flavours/legal-drafting/specialists/auditor.md +92 -0
- package/dist/flavours/legal-drafting/specialists/explorer.md +78 -0
- package/dist/flavours/legal-drafting/specialists/tester.md +76 -0
- package/dist/flavours/legal-drafting/specialists/verifier.md +111 -0
- package/dist/flavours/legal-drafting/specifiers/clarity.md +7 -0
- package/dist/flavours/legal-drafting/specifiers/completeness.md +7 -0
- package/dist/flavours/legal-drafting/specifiers/pragmatism.md +7 -0
- package/dist/flavours/machine-learning/core/builder.md +127 -0
- package/dist/flavours/machine-learning/core/planner.md +90 -0
- package/dist/flavours/machine-learning/core/reviewer.md +152 -0
- package/dist/flavours/machine-learning/core/shaper.md +141 -0
- package/dist/flavours/machine-learning/core/specifier.md +71 -0
- package/dist/flavours/machine-learning/planners/context.md +49 -0
- package/dist/flavours/machine-learning/planners/simplicity.md +7 -0
- package/dist/flavours/machine-learning/planners/thoroughness.md +7 -0
- package/dist/flavours/machine-learning/planners/velocity.md +7 -0
- package/dist/flavours/machine-learning/specialists/auditor.md +96 -0
- package/dist/flavours/machine-learning/specialists/explorer.md +81 -0
- package/dist/flavours/machine-learning/specialists/tester.md +82 -0
- package/dist/flavours/machine-learning/specialists/verifier.md +100 -0
- package/dist/flavours/machine-learning/specifiers/clarity.md +7 -0
- package/dist/flavours/machine-learning/specifiers/completeness.md +7 -0
- package/dist/flavours/machine-learning/specifiers/pragmatism.md +7 -0
- package/dist/flavours/mobile-app/core/builder.md +108 -0
- package/dist/flavours/mobile-app/core/planner.md +90 -0
- package/dist/flavours/mobile-app/core/reviewer.md +144 -0
- package/dist/flavours/mobile-app/core/shaper.md +146 -0
- package/dist/flavours/mobile-app/core/specifier.md +73 -0
- package/dist/flavours/mobile-app/planners/context.md +41 -0
- package/dist/flavours/mobile-app/planners/simplicity.md +7 -0
- package/dist/flavours/mobile-app/planners/thoroughness.md +7 -0
- package/dist/flavours/mobile-app/planners/velocity.md +7 -0
- package/dist/flavours/mobile-app/specialists/auditor.md +92 -0
- package/dist/flavours/mobile-app/specialists/explorer.md +84 -0
- package/dist/flavours/mobile-app/specialists/tester.md +75 -0
- package/dist/flavours/mobile-app/specialists/verifier.md +114 -0
- package/dist/flavours/mobile-app/specifiers/clarity.md +7 -0
- package/dist/flavours/mobile-app/specifiers/completeness.md +7 -0
- package/dist/flavours/mobile-app/specifiers/pragmatism.md +7 -0
- package/dist/flavours/music-composition/core/builder.md +112 -0
- package/dist/flavours/music-composition/core/planner.md +102 -0
- package/dist/flavours/music-composition/core/reviewer.md +139 -0
- package/dist/flavours/music-composition/core/shaper.md +139 -0
- package/dist/flavours/music-composition/core/specifier.md +72 -0
- package/dist/flavours/music-composition/planners/context.md +39 -0
- package/dist/flavours/music-composition/planners/simplicity.md +7 -0
- package/dist/flavours/music-composition/planners/thoroughness.md +7 -0
- package/dist/flavours/music-composition/planners/velocity.md +7 -0
- package/dist/flavours/music-composition/specialists/auditor.md +90 -0
- package/dist/flavours/music-composition/specialists/explorer.md +87 -0
- package/dist/flavours/music-composition/specialists/tester.md +74 -0
- package/dist/flavours/music-composition/specialists/verifier.md +89 -0
- package/dist/flavours/music-composition/specifiers/clarity.md +7 -0
- package/dist/flavours/music-composition/specifiers/completeness.md +7 -0
- package/dist/flavours/music-composition/specifiers/pragmatism.md +7 -0
- package/dist/flavours/novel-writing/core/builder.md +116 -0
- package/dist/flavours/novel-writing/core/planner.md +92 -0
- package/dist/flavours/novel-writing/core/reviewer.md +152 -0
- package/dist/flavours/novel-writing/core/shaper.md +143 -0
- package/dist/flavours/novel-writing/core/specifier.md +76 -0
- package/dist/flavours/novel-writing/planners/context.md +39 -0
- package/dist/flavours/novel-writing/planners/simplicity.md +7 -0
- package/dist/flavours/novel-writing/planners/thoroughness.md +7 -0
- package/dist/flavours/novel-writing/planners/velocity.md +7 -0
- package/dist/flavours/novel-writing/specialists/auditor.md +87 -0
- package/dist/flavours/novel-writing/specialists/explorer.md +83 -0
- package/dist/flavours/novel-writing/specialists/tester.md +89 -0
- package/dist/flavours/novel-writing/specialists/verifier.md +122 -0
- package/dist/flavours/novel-writing/specifiers/clarity.md +7 -0
- package/dist/flavours/novel-writing/specifiers/completeness.md +7 -0
- package/dist/flavours/novel-writing/specifiers/pragmatism.md +7 -0
- package/dist/flavours/screenwriting/core/builder.md +115 -0
- package/dist/flavours/screenwriting/core/planner.md +92 -0
- package/dist/flavours/screenwriting/core/reviewer.md +151 -0
- package/dist/flavours/screenwriting/core/shaper.md +143 -0
- package/dist/flavours/screenwriting/core/specifier.md +78 -0
- package/dist/flavours/screenwriting/planners/context.md +52 -0
- package/dist/flavours/screenwriting/planners/simplicity.md +7 -0
- package/dist/flavours/screenwriting/planners/thoroughness.md +7 -0
- package/dist/flavours/screenwriting/planners/velocity.md +7 -0
- package/dist/flavours/screenwriting/specialists/auditor.md +98 -0
- package/dist/flavours/screenwriting/specialists/explorer.md +87 -0
- package/dist/flavours/screenwriting/specialists/tester.md +90 -0
- package/dist/flavours/screenwriting/specialists/verifier.md +129 -0
- package/dist/flavours/screenwriting/specifiers/clarity.md +7 -0
- package/dist/flavours/screenwriting/specifiers/completeness.md +7 -0
- package/dist/flavours/screenwriting/specifiers/pragmatism.md +7 -0
- package/dist/flavours/security-audit/core/builder.md +123 -0
- package/dist/flavours/security-audit/core/planner.md +92 -0
- package/dist/flavours/security-audit/core/reviewer.md +150 -0
- package/dist/flavours/security-audit/core/shaper.md +145 -0
- package/dist/flavours/security-audit/core/specifier.md +69 -0
- package/dist/flavours/security-audit/planners/context.md +51 -0
- package/dist/flavours/security-audit/planners/simplicity.md +7 -0
- package/dist/flavours/security-audit/planners/thoroughness.md +7 -0
- package/dist/flavours/security-audit/planners/velocity.md +7 -0
- package/dist/flavours/security-audit/specialists/auditor.md +100 -0
- package/dist/flavours/security-audit/specialists/explorer.md +84 -0
- package/dist/flavours/security-audit/specialists/tester.md +80 -0
- package/dist/flavours/security-audit/specialists/verifier.md +101 -0
- package/dist/flavours/security-audit/specifiers/clarity.md +7 -0
- package/dist/flavours/security-audit/specifiers/completeness.md +7 -0
- package/dist/flavours/security-audit/specifiers/pragmatism.md +7 -0
- package/dist/flavours/software-engineering/core/builder.md +100 -0
- package/dist/flavours/software-engineering/core/planner.md +90 -0
- package/dist/flavours/software-engineering/core/reviewer.md +137 -0
- package/dist/flavours/software-engineering/core/shaper.md +137 -0
- package/dist/flavours/software-engineering/core/specifier.md +69 -0
- package/dist/flavours/software-engineering/planners/context.md +37 -0
- package/dist/flavours/software-engineering/planners/simplicity.md +7 -0
- package/dist/flavours/software-engineering/planners/thoroughness.md +7 -0
- package/dist/flavours/software-engineering/planners/velocity.md +7 -0
- package/dist/flavours/software-engineering/specialists/auditor.md +88 -0
- package/dist/{agents/specialists/scout.md → flavours/software-engineering/specialists/explorer.md} +2 -2
- package/dist/flavours/software-engineering/specialists/tester.md +72 -0
- package/dist/flavours/software-engineering/specialists/verifier.md +89 -0
- package/dist/flavours/software-engineering/specifiers/clarity.md +7 -0
- package/dist/flavours/software-engineering/specifiers/completeness.md +7 -0
- package/dist/flavours/software-engineering/specifiers/pragmatism.md +7 -0
- package/dist/flavours/technical-writing/core/builder.md +119 -0
- package/dist/flavours/technical-writing/core/planner.md +102 -0
- package/dist/flavours/technical-writing/core/reviewer.md +138 -0
- package/dist/flavours/technical-writing/core/shaper.md +137 -0
- package/dist/flavours/technical-writing/core/specifier.md +69 -0
- package/dist/flavours/technical-writing/planners/context.md +49 -0
- package/dist/flavours/technical-writing/planners/simplicity.md +7 -0
- package/dist/flavours/technical-writing/planners/thoroughness.md +7 -0
- package/dist/flavours/technical-writing/planners/velocity.md +7 -0
- package/dist/flavours/technical-writing/specialists/auditor.md +94 -0
- package/dist/flavours/technical-writing/specialists/explorer.md +85 -0
- package/dist/flavours/technical-writing/specialists/tester.md +93 -0
- package/dist/flavours/technical-writing/specialists/verifier.md +113 -0
- package/dist/flavours/technical-writing/specifiers/clarity.md +7 -0
- package/dist/flavours/technical-writing/specifiers/completeness.md +7 -0
- package/dist/flavours/technical-writing/specifiers/pragmatism.md +7 -0
- package/dist/flavours/test-suite/core/builder.md +114 -0
- package/dist/flavours/test-suite/core/planner.md +101 -0
- package/dist/flavours/test-suite/core/reviewer.md +161 -0
- package/dist/flavours/test-suite/core/shaper.md +144 -0
- package/dist/flavours/test-suite/core/specifier.md +71 -0
- package/dist/flavours/test-suite/planners/context.md +52 -0
- package/dist/flavours/test-suite/planners/simplicity.md +7 -0
- package/dist/flavours/test-suite/planners/thoroughness.md +7 -0
- package/dist/flavours/test-suite/planners/velocity.md +7 -0
- package/dist/flavours/test-suite/specialists/auditor.md +85 -0
- package/dist/flavours/test-suite/specialists/explorer.md +88 -0
- package/dist/flavours/test-suite/specialists/tester.md +88 -0
- package/dist/flavours/test-suite/specialists/verifier.md +100 -0
- package/dist/flavours/test-suite/specifiers/clarity.md +7 -0
- package/dist/flavours/test-suite/specifiers/completeness.md +7 -0
- package/dist/flavours/test-suite/specifiers/pragmatism.md +7 -0
- package/dist/flavours/translation/core/builder.md +120 -0
- package/dist/flavours/translation/core/planner.md +90 -0
- package/dist/flavours/translation/core/reviewer.md +151 -0
- package/dist/flavours/translation/core/shaper.md +137 -0
- package/dist/flavours/translation/core/specifier.md +71 -0
- package/dist/flavours/translation/planners/context.md +53 -0
- package/dist/flavours/translation/planners/simplicity.md +7 -0
- package/dist/flavours/translation/planners/thoroughness.md +7 -0
- package/dist/flavours/translation/planners/velocity.md +7 -0
- package/dist/flavours/translation/specialists/auditor.md +109 -0
- package/dist/flavours/translation/specialists/explorer.md +98 -0
- package/dist/flavours/translation/specialists/tester.md +82 -0
- package/dist/flavours/translation/specialists/verifier.md +121 -0
- package/dist/flavours/translation/specifiers/clarity.md +7 -0
- package/dist/flavours/translation/specifiers/completeness.md +7 -0
- package/dist/flavours/translation/specifiers/pragmatism.md +7 -0
- package/dist/stores/budget.d.ts +5 -0
- package/dist/stores/budget.js +74 -0
- package/dist/stores/budget.js.map +1 -0
- package/dist/stores/feedback.io.d.ts +6 -0
- package/dist/stores/feedback.io.js +64 -0
- package/dist/stores/feedback.io.js.map +1 -0
- package/dist/stores/feedback.verdict.d.ts +4 -0
- package/dist/stores/feedback.verdict.js +179 -0
- package/dist/stores/feedback.verdict.js.map +1 -0
- package/dist/stores/handoff.d.ts +2 -0
- package/dist/stores/handoff.js +54 -0
- package/dist/stores/handoff.js.map +1 -0
- package/dist/stores/index.d.ts +9 -0
- package/dist/stores/index.js +49 -0
- package/dist/stores/index.js.map +1 -0
- package/dist/stores/inputs.d.ts +2 -0
- package/dist/stores/inputs.js +64 -0
- package/dist/stores/inputs.js.map +1 -0
- package/dist/stores/phases.d.ts +15 -0
- package/dist/stores/phases.js +81 -0
- package/dist/stores/phases.js.map +1 -0
- package/dist/stores/settings.d.ts +12 -0
- package/dist/stores/settings.js +85 -0
- package/dist/stores/settings.js.map +1 -0
- package/dist/stores/state.d.ts +20 -0
- package/dist/stores/state.js +264 -0
- package/dist/stores/state.js.map +1 -0
- package/dist/stores/tags.d.ts +6 -0
- package/dist/stores/tags.js +34 -0
- package/dist/stores/tags.js.map +1 -0
- package/dist/stores/trajectory.d.ts +11 -0
- package/dist/stores/trajectory.js +66 -0
- package/dist/stores/trajectory.js.map +1 -0
- package/dist/types.d.ts +1 -2
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"phase.sequence.js","sourceRoot":"","sources":["../../../src/engine/pipeline/phase.sequence.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"phase.sequence.js","sourceRoot":"","sources":["../../../src/engine/pipeline/phase.sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,15 +35,16 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.commonInvokeOptions = exports.appendConstraintsAndTaste = exports.formatProposalHeading = exports.createStderrHandler = exports.prepareAgentsAndPlugins = void 0;
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
|
-
const
|
|
38
|
+
const agent_registry_1 = require("../discovery/agent.registry");
|
|
39
|
+
const flavour_resolve_1 = require("../discovery/flavour.resolve");
|
|
39
40
|
const plugin_scan_1 = require("../discovery/plugin.scan");
|
|
40
41
|
const output_1 = require("../../ui/output");
|
|
41
42
|
/**
|
|
42
43
|
* Discover agents and plugins, including the core hooks plugin in unsafe mode.
|
|
43
44
|
*/
|
|
44
45
|
const prepareAgentsAndPlugins = (config) => {
|
|
45
|
-
const
|
|
46
|
-
const agents =
|
|
46
|
+
const registry = (0, agent_registry_1.buildAgentRegistry)((0, flavour_resolve_1.resolveFlavour)(config.flavour));
|
|
47
|
+
const agents = registry.getAgentsFlag();
|
|
47
48
|
const pluginDirs = (0, plugin_scan_1.discoverPluginDirs)(config);
|
|
48
49
|
if (config.unsafe && !config.sandboxProvider) {
|
|
49
50
|
const coreDir = (0, plugin_scan_1.getCorePluginDir)();
|
|
@@ -108,7 +109,7 @@ exports.appendConstraintsAndTaste = appendConstraintsAndTaste;
|
|
|
108
109
|
const commonInvokeOptions = (config, prepared, onStdout) => ({
|
|
109
110
|
agents: prepared.agents,
|
|
110
111
|
pluginDirs: pluginDirPaths(prepared.pluginDirs),
|
|
111
|
-
cwd:
|
|
112
|
+
cwd: process.cwd(),
|
|
112
113
|
timeoutMs: config.timeoutMinutes * 60 * 1000,
|
|
113
114
|
onStdout,
|
|
114
115
|
onStderr: (0, exports.createStderrHandler)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline.shared.js","sourceRoot":"","sources":["../../../src/engine/pipeline/pipeline.shared.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAE7B,
|
|
1
|
+
{"version":3,"file":"pipeline.shared.js","sourceRoot":"","sources":["../../../src/engine/pipeline/pipeline.shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,18 +36,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
36
36
|
exports.invokeReviewer = void 0;
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const claude_exec_1 = require("../claude/claude.exec");
|
|
39
|
-
const
|
|
40
|
-
const stream_decode_1 = require("../claude/stream.decode");
|
|
39
|
+
const stream_display_1 = require("../claude/stream.display");
|
|
41
40
|
const git_1 = require("../../git");
|
|
42
|
-
const
|
|
41
|
+
const feedback_verdict_1 = require("../../stores/feedback.verdict");
|
|
43
42
|
const plugin_scan_1 = require("../discovery/plugin.scan");
|
|
43
|
+
const agent_registry_1 = require("../discovery/agent.registry");
|
|
44
|
+
const flavour_resolve_1 = require("../discovery/flavour.resolve");
|
|
44
45
|
const pipeline_shared_1 = require("./pipeline.shared");
|
|
45
46
|
const assembleUserPrompt = (config, phase, checkpointTag) => {
|
|
46
47
|
const sections = [];
|
|
47
48
|
sections.push("## Phase Spec\n");
|
|
48
49
|
sections.push(fs.readFileSync(phase.filepath, "utf-8"));
|
|
49
50
|
sections.push("");
|
|
50
|
-
const diff = (0, git_1.getDiff)(checkpointTag
|
|
51
|
+
const diff = (0, git_1.getDiff)(checkpointTag);
|
|
51
52
|
sections.push("## Git Diff (checkpoint to HEAD)\n");
|
|
52
53
|
if (diff) {
|
|
53
54
|
sections.push("```diff");
|
|
@@ -64,9 +65,10 @@ const assembleUserPrompt = (config, phase, checkpointTag) => {
|
|
|
64
65
|
return sections.join("\n");
|
|
65
66
|
};
|
|
66
67
|
const invokeReviewer = async (config, phase, checkpointTag) => {
|
|
67
|
-
const
|
|
68
|
+
const registry = (0, agent_registry_1.buildAgentRegistry)((0, flavour_resolve_1.resolveFlavour)(config.flavour));
|
|
69
|
+
const systemPrompt = registry.getCorePrompt("reviewer.md");
|
|
68
70
|
const userPrompt = assembleUserPrompt(config, phase, checkpointTag);
|
|
69
|
-
const { onStdout, flush } = (0,
|
|
71
|
+
const { onStdout, flush } = (0, stream_display_1.createDisplayCallbacks)({ suppressJsonBlock: true, projectRoot: process.cwd() });
|
|
70
72
|
const prepared = (0, pipeline_shared_1.prepareAgentsAndPlugins)(config);
|
|
71
73
|
try {
|
|
72
74
|
const result = await (0, claude_exec_1.invokeClaude)({
|
|
@@ -76,7 +78,7 @@ const invokeReviewer = async (config, phase, checkpointTag) => {
|
|
|
76
78
|
allowedTools: ["Read", "Bash", "Glob", "Grep", "Agent"],
|
|
77
79
|
...(0, pipeline_shared_1.commonInvokeOptions)(config, prepared, onStdout),
|
|
78
80
|
});
|
|
79
|
-
const verdict = (0,
|
|
81
|
+
const verdict = (0, feedback_verdict_1.parseVerdict)(result.result);
|
|
80
82
|
return { result, verdict };
|
|
81
83
|
}
|
|
82
84
|
finally {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"review.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/review.exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAE7B,uDAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"review.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/review.exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAE7B,uDAAoD;AACpD,6DAAiE;AACjE,mCAAmC;AACnC,oEAA4D;AAC5D,0DAA4D;AAC5D,gEAAgE;AAChE,kEAA6D;AAC7D,uDAAgF;AAEhF,MAAM,kBAAkB,GAAG,CACzB,MAAuB,EACvB,KAAgB,EAChB,aAAqB,EACb,EAAE;IACV,MAAM,QAAQ,GAAa,EAAE,CAAA;IAE7B,QAAQ,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAChC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAA;IACvD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEjB,MAAM,IAAI,GAAG,IAAA,aAAO,EAAC,aAAa,CAAC,CAAA;IACnC,QAAQ,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAA;IACnD,IAAI,IAAI,EAAE,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACxB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACtB,CAAC;SAAM,CAAC;QACN,QAAQ,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAA;IACvC,CAAC;IACD,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEjB,QAAQ,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAA;IACpC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC,CAAA;IAC/D,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAEjB,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC5B,CAAC,CAAA;AAEM,MAAM,cAAc,GAAG,KAAK,EACjC,MAAuB,EACvB,KAAgB,EAChB,aAAqB,EACsC,EAAE;IAC7D,MAAM,QAAQ,GAAG,IAAA,mCAAkB,EAAC,IAAA,gCAAc,EAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAA;IACnE,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,UAAU,GAAG,kBAAkB,CAAC,MAAM,EAAE,KAAK,EAAE,aAAa,CAAC,CAAA;IACnE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAA,uCAAsB,EAAC,EAAE,iBAAiB,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;IAC3G,MAAM,QAAQ,GAAG,IAAA,yCAAuB,EAAC,MAAM,CAAC,CAAA;IAEhD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAY,EAAC;YAChC,YAAY;YACZ,UAAU;YACV,KAAK,EAAE,MAAM,CAAC,KAAK;YACnB,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC;YACvD,GAAG,IAAA,qCAAmB,EAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC;SACnD,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,IAAA,+BAAY,EAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAC3C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IAC5B,CAAC;YAAS,CAAC;QACT,KAAK,EAAE,CAAA;QACP,IAAA,+BAAiB,EAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;IACxC,CAAC;AACH,CAAC,CAAA;AA1BY,QAAA,cAAc,kBA0B1B"}
|
|
@@ -37,7 +37,8 @@ exports.invokeSpecifier = void 0;
|
|
|
37
37
|
const fs = __importStar(require("node:fs"));
|
|
38
38
|
const path = __importStar(require("node:path"));
|
|
39
39
|
const ensemble_exec_1 = require("./ensemble.exec");
|
|
40
|
-
const
|
|
40
|
+
const agent_registry_1 = require("../discovery/agent.registry");
|
|
41
|
+
const flavour_resolve_1 = require("../discovery/flavour.resolve");
|
|
41
42
|
const pipeline_shared_1 = require("./pipeline.shared");
|
|
42
43
|
// ---------------------------------------------------------------------------
|
|
43
44
|
// JSON schema for structured spec specialist output
|
|
@@ -189,13 +190,14 @@ const assembleSynthesizerUserPrompt = (shapeMd, buildDir, drafts) => {
|
|
|
189
190
|
return sections.join("\n");
|
|
190
191
|
};
|
|
191
192
|
const invokeSpecifier = async (shapeMd, config) => {
|
|
193
|
+
const registry = (0, agent_registry_1.buildAgentRegistry)((0, flavour_resolve_1.resolveFlavour)(config.flavour));
|
|
192
194
|
return (0, ensemble_exec_1.invokeEnsemble)({
|
|
193
195
|
label: "Specifying",
|
|
194
|
-
|
|
196
|
+
specialists: registry.getSpecialists("specifiers"),
|
|
195
197
|
buildSpecialistPrompt: buildSpecSpecialistPrompt,
|
|
196
198
|
specialistUserPrompt: assembleSpecialistUserPrompt(shapeMd),
|
|
197
199
|
specialistSchema: SPEC_SPECIALIST_SCHEMA,
|
|
198
|
-
synthesizerPrompt:
|
|
200
|
+
synthesizerPrompt: registry.getCorePrompt("specifier.md"),
|
|
199
201
|
buildSynthesizerUserPrompt: (drafts) => assembleSynthesizerUserPrompt(shapeMd, config.buildDir, drafts),
|
|
200
202
|
synthesizerTools: ["Write"],
|
|
201
203
|
model: config.model,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"specify.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/specify.exec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4CAA6B;AAC7B,gDAAiC;AAEjC,mDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"specify.exec.js","sourceRoot":"","sources":["../../../src/engine/pipeline/specify.exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1 @@
|
|
|
1
|
-
export declare const worktreePath: (repoRoot: string, buildName: string) => string;
|
|
2
|
-
export declare const wipBranch: (buildName: string) => string;
|
|
3
1
|
export declare const ensureGitRepo: (repoRoot: string) => boolean;
|
|
4
|
-
export declare const createWorktree: (repoRoot: string, buildName: string) => string;
|
|
5
|
-
export declare const validateWorktree: (repoRoot: string, buildName: string) => boolean;
|
|
6
|
-
export declare const abortStaleMerge: (repoRoot: string) => void;
|
|
7
|
-
export declare const reflectCommits: (repoRoot: string, buildName: string) => void;
|
|
8
|
-
export declare const removeWorktree: (repoRoot: string, buildName: string) => void;
|
|
9
|
-
export declare const cleanAllWorktrees: (repoRoot: string) => void;
|
package/dist/engine/worktree.js
CHANGED
|
@@ -33,15 +33,11 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
33
33
|
};
|
|
34
34
|
})();
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.
|
|
36
|
+
exports.ensureGitRepo = void 0;
|
|
37
37
|
const node_child_process_1 = require("node:child_process");
|
|
38
38
|
const fs = __importStar(require("node:fs"));
|
|
39
39
|
const path = __importStar(require("node:path"));
|
|
40
40
|
const run = (cmd, cwd) => (0, node_child_process_1.execSync)(cmd, { cwd, encoding: "utf-8", stdio: ["pipe", "pipe", "pipe"] }).trim();
|
|
41
|
-
const worktreePath = (repoRoot, buildName) => path.join(repoRoot, ".ridgeline", "worktrees", buildName);
|
|
42
|
-
exports.worktreePath = worktreePath;
|
|
43
|
-
const wipBranch = (buildName) => `ridgeline/wip/${buildName}`;
|
|
44
|
-
exports.wipBranch = wipBranch;
|
|
45
41
|
/**
|
|
46
42
|
* Detect common project types from files in the repo root and return
|
|
47
43
|
* a sensible .gitignore. Falls back to a minimal default.
|
|
@@ -50,7 +46,7 @@ const generateGitignore = (repoRoot) => {
|
|
|
50
46
|
const exists = (f) => fs.existsSync(path.join(repoRoot, f));
|
|
51
47
|
const lines = [
|
|
52
48
|
"# Ridgeline",
|
|
53
|
-
".ridgeline/
|
|
49
|
+
".ridgeline/",
|
|
54
50
|
"",
|
|
55
51
|
];
|
|
56
52
|
if (exists("package.json")) {
|
|
@@ -100,161 +96,4 @@ const ensureGitRepo = (repoRoot) => {
|
|
|
100
96
|
}
|
|
101
97
|
};
|
|
102
98
|
exports.ensureGitRepo = ensureGitRepo;
|
|
103
|
-
const createWorktree = (repoRoot, buildName) => {
|
|
104
|
-
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
105
|
-
const branch = (0, exports.wipBranch)(buildName);
|
|
106
|
-
// Ensure parent directory exists
|
|
107
|
-
fs.mkdirSync(path.dirname(wtPath), { recursive: true });
|
|
108
|
-
// Prune stale worktree entries (e.g., from a previous crash) so git
|
|
109
|
-
// doesn't think the branch is still checked out elsewhere.
|
|
110
|
-
try {
|
|
111
|
-
run("git worktree prune", repoRoot);
|
|
112
|
-
}
|
|
113
|
-
catch { /* best effort */ }
|
|
114
|
-
try {
|
|
115
|
-
// Happy path: create a fresh branch
|
|
116
|
-
run(`git worktree add ${wtPath} -b ${branch}`, repoRoot);
|
|
117
|
-
}
|
|
118
|
-
catch {
|
|
119
|
-
// Branch already exists — reuse it
|
|
120
|
-
try {
|
|
121
|
-
run(`git worktree add ${wtPath} ${branch}`, repoRoot);
|
|
122
|
-
}
|
|
123
|
-
catch {
|
|
124
|
-
// Corrupt state — force-delete the branch and retry
|
|
125
|
-
try {
|
|
126
|
-
run(`git branch -D ${branch}`, repoRoot);
|
|
127
|
-
}
|
|
128
|
-
catch { /* best effort */ }
|
|
129
|
-
run(`git worktree add ${wtPath} -b ${branch}`, repoRoot);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return wtPath;
|
|
133
|
-
};
|
|
134
|
-
exports.createWorktree = createWorktree;
|
|
135
|
-
const validateWorktree = (repoRoot, buildName) => {
|
|
136
|
-
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
137
|
-
if (!fs.existsSync(wtPath))
|
|
138
|
-
return false;
|
|
139
|
-
// Check if .git file/dir exists (worktrees have a .git file pointing to main repo)
|
|
140
|
-
const gitPath = path.join(wtPath, ".git");
|
|
141
|
-
if (!fs.existsSync(gitPath))
|
|
142
|
-
return false;
|
|
143
|
-
// Check if HEAD is valid
|
|
144
|
-
try {
|
|
145
|
-
run("git rev-parse HEAD", wtPath);
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
catch {
|
|
149
|
-
return false;
|
|
150
|
-
}
|
|
151
|
-
};
|
|
152
|
-
exports.validateWorktree = validateWorktree;
|
|
153
|
-
const abortStaleMerge = (repoRoot) => {
|
|
154
|
-
try {
|
|
155
|
-
run("git merge --abort", repoRoot);
|
|
156
|
-
}
|
|
157
|
-
catch {
|
|
158
|
-
// No merge in progress — nothing to abort
|
|
159
|
-
}
|
|
160
|
-
};
|
|
161
|
-
exports.abortStaleMerge = abortStaleMerge;
|
|
162
|
-
const reflectCommits = (repoRoot, buildName) => {
|
|
163
|
-
const branch = (0, exports.wipBranch)(buildName);
|
|
164
|
-
// Abort any stale merge left from a previous interrupted run
|
|
165
|
-
(0, exports.abortStaleMerge)(repoRoot);
|
|
166
|
-
// Remove untracked files that would conflict with the merge.
|
|
167
|
-
// The WIP branch is authoritative, so its versions always win.
|
|
168
|
-
// This commonly happens with package-lock.json, build metadata, etc.
|
|
169
|
-
try {
|
|
170
|
-
const untrackedRaw = run("git ls-files --others --exclude-standard", repoRoot);
|
|
171
|
-
if (untrackedRaw) {
|
|
172
|
-
const wipFiles = new Set(run(`git diff --name-only HEAD...${branch}`, repoRoot).split("\n").filter(Boolean));
|
|
173
|
-
for (const f of untrackedRaw.split("\n").filter(Boolean)) {
|
|
174
|
-
if (wipFiles.has(f)) {
|
|
175
|
-
fs.unlinkSync(path.join(repoRoot, f));
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
catch {
|
|
181
|
-
// best-effort — merge may still succeed without cleanup
|
|
182
|
-
}
|
|
183
|
-
// Stage and commit any remaining dirty files (e.g. modified tracked files)
|
|
184
|
-
// so the merge doesn't fail on uncommitted changes.
|
|
185
|
-
try {
|
|
186
|
-
run("git add -A", repoRoot);
|
|
187
|
-
run('git commit -m "ridgeline: stage pre-merge state"', repoRoot);
|
|
188
|
-
}
|
|
189
|
-
catch {
|
|
190
|
-
// Nothing to commit — safe to ignore
|
|
191
|
-
}
|
|
192
|
-
try {
|
|
193
|
-
// Try fast-forward first
|
|
194
|
-
run(`git merge --ff-only ${branch}`, repoRoot);
|
|
195
|
-
}
|
|
196
|
-
catch {
|
|
197
|
-
// Main diverged — rebase WIP onto main so builder work layers on top of user changes.
|
|
198
|
-
// This preserves user edits (e.g. version bumps) while applying builder additions on top.
|
|
199
|
-
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
200
|
-
try {
|
|
201
|
-
run("git rebase main", wtPath);
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
try {
|
|
205
|
-
run("git rebase --abort", wtPath);
|
|
206
|
-
}
|
|
207
|
-
catch { /* best effort */ }
|
|
208
|
-
throw new Error(`Cannot auto-merge: both main and the build modified the same lines.\n` +
|
|
209
|
-
`Resolve manually in ${wtPath} and re-run.`);
|
|
210
|
-
}
|
|
211
|
-
// Rebase succeeded — now fast-forward main
|
|
212
|
-
run(`git merge --ff-only ${branch}`, repoRoot);
|
|
213
|
-
}
|
|
214
|
-
};
|
|
215
|
-
exports.reflectCommits = reflectCommits;
|
|
216
|
-
const removeWorktree = (repoRoot, buildName) => {
|
|
217
|
-
const wtPath = (0, exports.worktreePath)(repoRoot, buildName);
|
|
218
|
-
const branch = (0, exports.wipBranch)(buildName);
|
|
219
|
-
try {
|
|
220
|
-
run(`git worktree remove ${wtPath} --force`, repoRoot);
|
|
221
|
-
}
|
|
222
|
-
catch {
|
|
223
|
-
// If worktree remove fails, try manual cleanup
|
|
224
|
-
if (fs.existsSync(wtPath)) {
|
|
225
|
-
fs.rmSync(wtPath, { recursive: true, force: true });
|
|
226
|
-
}
|
|
227
|
-
try {
|
|
228
|
-
run("git worktree prune", repoRoot);
|
|
229
|
-
}
|
|
230
|
-
catch {
|
|
231
|
-
// best effort
|
|
232
|
-
}
|
|
233
|
-
}
|
|
234
|
-
try {
|
|
235
|
-
run(`git branch -d ${branch}`, repoRoot);
|
|
236
|
-
}
|
|
237
|
-
catch {
|
|
238
|
-
try {
|
|
239
|
-
run(`git branch -D ${branch}`, repoRoot);
|
|
240
|
-
}
|
|
241
|
-
catch {
|
|
242
|
-
// best effort
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
exports.removeWorktree = removeWorktree;
|
|
247
|
-
const cleanAllWorktrees = (repoRoot) => {
|
|
248
|
-
const worktreesDir = path.join(repoRoot, ".ridgeline", "worktrees");
|
|
249
|
-
if (!fs.existsSync(worktreesDir))
|
|
250
|
-
return;
|
|
251
|
-
const entries = fs.readdirSync(worktreesDir);
|
|
252
|
-
for (const entry of entries) {
|
|
253
|
-
const fullPath = path.join(worktreesDir, entry);
|
|
254
|
-
if (fs.statSync(fullPath).isDirectory()) {
|
|
255
|
-
(0, exports.removeWorktree)(repoRoot, entry);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
};
|
|
259
|
-
exports.cleanAllWorktrees = cleanAllWorktrees;
|
|
260
99
|
//# sourceMappingURL=worktree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/engine/worktree.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2DAA6C;AAC7C,4CAA6B;AAC7B,gDAAiC;AAEjC,MAAM,GAAG,GAAG,CAAC,GAAW,EAAE,GAAY,EAAU,EAAE,CAChD,IAAA,6BAAQ,EAAC,GAAG,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"worktree.js","sourceRoot":"","sources":["../../src/engine/worktree.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: builder
|
|
3
|
+
description: Implements a single phase spec using Claude's native tools
|
|
4
|
+
model: opus
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are a builder. You receive a single phase spec and implement it. You have full tool access. Use it.
|
|
8
|
+
|
|
9
|
+
## Your inputs
|
|
10
|
+
|
|
11
|
+
These are injected into your context before you start:
|
|
12
|
+
|
|
13
|
+
1. **Phase spec** — your assignment. Contains Goal, Context, Acceptance Criteria, and Spec Reference.
|
|
14
|
+
2. **constraints.md** — non-negotiable technical guardrails. Language, libraries, data formats, directory layout, naming conventions, check command.
|
|
15
|
+
3. **taste.md** (optional) — coding style preferences, visualization conventions, documentation format. Follow unless you have a concrete reason not to.
|
|
16
|
+
4. **handoff.md** — accumulated state from prior phases. What was built, decisions made, deviations, notes.
|
|
17
|
+
5. **feedback file** (retry only) — reviewer feedback on what failed. Present only if this is a retry.
|
|
18
|
+
|
|
19
|
+
## Your process
|
|
20
|
+
|
|
21
|
+
### 1. Orient
|
|
22
|
+
|
|
23
|
+
Read handoff.md. Then explore the actual project — understand the current state of the data, scripts, notebooks, and outputs before you touch anything. Check what data files exist, what schemas are in place, what prior analysis has produced.
|
|
24
|
+
|
|
25
|
+
### 2. Implement
|
|
26
|
+
|
|
27
|
+
Build what the phase spec asks for. You decide the approach: file creation order, internal structure, function design, query patterns. constraints.md defines the boundaries. Everything inside those boundaries is your call.
|
|
28
|
+
|
|
29
|
+
Typical data analysis work includes:
|
|
30
|
+
|
|
31
|
+
- **ETL scripts** — data ingestion, cleaning, transformation, loading
|
|
32
|
+
- **Analysis scripts** — statistical computations, model training, feature engineering
|
|
33
|
+
- **Notebooks** — exploratory analysis with narrative, visualizations, and findings
|
|
34
|
+
- **SQL queries** — data extraction, aggregation, warehouse transformations
|
|
35
|
+
- **Configuration** — database connections, pipeline configs, environment setup
|
|
36
|
+
- **Output artifacts** — cleaned datasets, model files, reports, plots
|
|
37
|
+
|
|
38
|
+
Do not implement work belonging to other phases. Do not add analyses not in your spec. Do not refactor pipelines unless your phase requires it.
|
|
39
|
+
|
|
40
|
+
### 3. Check
|
|
41
|
+
|
|
42
|
+
Verify your work after making changes. If a check command is specified in constraints.md, run it. If specialist agents are available, use the **verifier** agent — it can intelligently verify your work even when no check command exists.
|
|
43
|
+
|
|
44
|
+
For data analysis work, verification includes:
|
|
45
|
+
|
|
46
|
+
- Scripts execute without errors
|
|
47
|
+
- Data transformations produce expected row counts and column schemas
|
|
48
|
+
- Statistical outputs are within plausible ranges
|
|
49
|
+
- Visualizations render correctly
|
|
50
|
+
- Output files are written in the expected format
|
|
51
|
+
- No data leakage between train/test splits (if applicable)
|
|
52
|
+
|
|
53
|
+
If checks pass, continue. If checks fail, fix the failures. Then check again. Do not skip verification. Do not ignore failures. Do not proceed with broken checks.
|
|
54
|
+
|
|
55
|
+
### 4. Commit
|
|
56
|
+
|
|
57
|
+
Commit incrementally as you complete logical units of work. Use conventional commits:
|
|
58
|
+
|
|
59
|
+
```text
|
|
60
|
+
<type>(<scope>): <summary>
|
|
61
|
+
|
|
62
|
+
- <change 1>
|
|
63
|
+
- <change 2>
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Types: feat, fix, refactor, test, docs, chore. Scope: the main module or area affected (e.g., etl, model, eda, pipeline).
|
|
67
|
+
|
|
68
|
+
Write commit messages descriptive enough to serve as shared state between context windows. Another builder reading your commits should understand what happened.
|
|
69
|
+
|
|
70
|
+
### 5. Write the handoff
|
|
71
|
+
|
|
72
|
+
After completing the phase, append to handoff.md. Do not overwrite existing content.
|
|
73
|
+
|
|
74
|
+
```markdown
|
|
75
|
+
## Phase <N>: <Name>
|
|
76
|
+
|
|
77
|
+
### What was built
|
|
78
|
+
<Key files and their purposes — scripts, notebooks, configs, output artifacts>
|
|
79
|
+
|
|
80
|
+
### Data state
|
|
81
|
+
<Current state of the data: what has been loaded, cleaned, transformed. Row counts, key columns, known issues resolved>
|
|
82
|
+
|
|
83
|
+
### Decisions
|
|
84
|
+
<Methodological and architectural decisions made during implementation — why this statistical method, why this join strategy, why this feature encoding>
|
|
85
|
+
|
|
86
|
+
### Deviations
|
|
87
|
+
<Any deviations from the spec or constraints, and why>
|
|
88
|
+
|
|
89
|
+
### Notes for next phase
|
|
90
|
+
<Anything the next builder needs to know — data quirks discovered, assumptions made, intermediate outputs available>
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
### 6. Handle retries
|
|
94
|
+
|
|
95
|
+
If a feedback file is present, this is a retry. Read the feedback carefully. Fix only what the reviewer flagged. Do not redo work that already passed. The feedback describes the desired end state, not the fix procedure.
|
|
96
|
+
|
|
97
|
+
## Rules
|
|
98
|
+
|
|
99
|
+
**Constraints are non-negotiable.** If constraints.md says Python with pandas, PostgreSQL, scikit-learn — you use those. No exceptions. No substitutions.
|
|
100
|
+
|
|
101
|
+
**Taste is best-effort.** If taste.md says prefer seaborn over matplotlib, do that unless there's a concrete technical reason not to. If you deviate, note it in the handoff.
|
|
102
|
+
|
|
103
|
+
**Explore before building.** Understand the current state of the data and codebase before making changes. Profile data before transforming it. Check what exists before creating something new.
|
|
104
|
+
|
|
105
|
+
**Verification is the quality gate.** Run the check command if one exists. Use the verifier agent for intelligent verification. If checks pass, your work is presumed correct. If they fail, your work is not done.
|
|
106
|
+
|
|
107
|
+
**Use the Agent tool sparingly.** Do the work yourself. Only delegate to a sub-agent when a task is genuinely complex enough that a focused agent with a clean context would produce better results than you would inline.
|
|
108
|
+
|
|
109
|
+
**Specialist agents may be available.** If specialist subagent types are listed among your available agents, prefer build-level and project-level specialists — they carry domain knowledge tailored to this specific build or project. Only delegate when the task genuinely benefits from a focused specialist context.
|
|
110
|
+
|
|
111
|
+
**Do not gold-plate.** No premature optimization. No speculative feature engineering. No bonus analyses. Implement the spec. Stop.
|
|
112
|
+
|
|
113
|
+
## Output style
|
|
114
|
+
|
|
115
|
+
You are running in a terminal. Plain text only. No markdown rendering.
|
|
116
|
+
|
|
117
|
+
- `[<phase-id>] Starting: <description>` at the beginning
|
|
118
|
+
- Brief status lines as you progress
|
|
119
|
+
- `[<phase-id>] DONE` or `[<phase-id>] FAILED: <reason>` at the end
|