deepflow 0.1.100 → 0.1.101
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/bin/install.js +16 -1
- package/package.json +1 -1
- package/src/commands/df/execute.md +7 -7
- package/src/commands/df/plan.md +1 -1
package/bin/install.js
CHANGED
|
@@ -134,6 +134,17 @@ async function main() {
|
|
|
134
134
|
);
|
|
135
135
|
log('Agents installed');
|
|
136
136
|
|
|
137
|
+
// Copy bin utilities (plan-consolidator, wave-runner, ratchet)
|
|
138
|
+
const binDest = path.join(CLAUDE_DIR, 'bin');
|
|
139
|
+
fs.mkdirSync(binDest, { recursive: true });
|
|
140
|
+
for (const script of ['plan-consolidator.js', 'wave-runner.js', 'ratchet.js']) {
|
|
141
|
+
const src = path.join(PACKAGE_DIR, 'bin', script);
|
|
142
|
+
if (fs.existsSync(src)) {
|
|
143
|
+
fs.copyFileSync(src, path.join(binDest, script));
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
log('Bin utilities installed');
|
|
147
|
+
|
|
137
148
|
// Copy hooks (global only - statusline requires global settings)
|
|
138
149
|
if (level === 'global') {
|
|
139
150
|
const hooksDir = path.join(PACKAGE_DIR, 'hooks');
|
|
@@ -186,6 +197,7 @@ async function main() {
|
|
|
186
197
|
console.log(' commands/df/ — /df:discover, /df:debate, /df:spec, /df:plan, /df:execute, /df:verify, /df:auto, /df:update');
|
|
187
198
|
console.log(' skills/ — gap-discovery, atomic-commits, code-completeness, browse-fetch, browse-verify, auto-cycle');
|
|
188
199
|
console.log(' agents/ — reasoner (/df:auto — autonomous execution via /loop)');
|
|
200
|
+
console.log(' bin/ — plan-consolidator, wave-runner, ratchet');
|
|
189
201
|
if (level === 'global') {
|
|
190
202
|
console.log(' hooks/ — statusline, update checker, invariant checker, worktree guard');
|
|
191
203
|
}
|
|
@@ -592,7 +604,10 @@ async function uninstall() {
|
|
|
592
604
|
'skills/gap-discovery',
|
|
593
605
|
'skills/browse-fetch',
|
|
594
606
|
'skills/browse-verify',
|
|
595
|
-
'agents/reasoner.md'
|
|
607
|
+
'agents/reasoner.md',
|
|
608
|
+
'bin/plan-consolidator.js',
|
|
609
|
+
'bin/wave-runner.js',
|
|
610
|
+
'bin/ratchet.js'
|
|
596
611
|
];
|
|
597
612
|
|
|
598
613
|
if (level === 'global') {
|
package/package.json
CHANGED
|
@@ -95,7 +95,7 @@ Warn if unplanned `specs/*.md` (excluding doing-/done-) exist (non-blocking).
|
|
|
95
95
|
|
|
96
96
|
**Wave computation (shell injection — do NOT compute manually):**
|
|
97
97
|
```
|
|
98
|
-
WAVE_JSON=!`node bin/wave-runner.js --json --plan PLAN.md 2>/dev/null || echo 'WAVE_ERROR'`
|
|
98
|
+
WAVE_JSON=!`node "${HOME}/.claude/bin/wave-runner.js" --json --plan PLAN.md 2>/dev/null || echo 'WAVE_ERROR'`
|
|
99
99
|
```
|
|
100
100
|
`WAVE_JSON` is structured JSON (produced by T1's `--json` flag). Parse it to determine the current wave and scheduling decisions:
|
|
101
101
|
```json
|
|
@@ -112,7 +112,7 @@ Use `waves[0].tasks` as the ready set for the current wave. Use `isolation` fiel
|
|
|
112
112
|
|
|
113
113
|
**Fallback (text mode):** If `WAVE_JSON` is `WAVE_ERROR` or cannot be parsed as JSON, fall back to text mode:
|
|
114
114
|
```
|
|
115
|
-
WAVE_PLAN=!`node bin/wave-runner.js --plan PLAN.md 2>/dev/null || echo 'WAVE_ERROR'`
|
|
115
|
+
WAVE_PLAN=!`node "${HOME}/.claude/bin/wave-runner.js" --plan PLAN.md 2>/dev/null || echo 'WAVE_ERROR'`
|
|
116
116
|
```
|
|
117
117
|
Text output format:
|
|
118
118
|
```
|
|
@@ -165,9 +165,9 @@ Spawn Agent(model="haiku", isolation: "none", run_in_background=false):
|
|
|
165
165
|
|
|
166
166
|
### 5.5. RATCHET CHECK
|
|
167
167
|
|
|
168
|
-
Run `node bin/ratchet.js` in the worktree directory after each agent completes:
|
|
168
|
+
Run `node "${HOME}/.claude/bin/ratchet.js"` in the worktree directory after each agent completes:
|
|
169
169
|
```bash
|
|
170
|
-
node bin/ratchet.js --worktree ${WORKTREE_PATH} --snapshot .deepflow/auto-snapshot.txt --task T{N}
|
|
170
|
+
node "${HOME}/.claude/bin/ratchet.js" --worktree ${WORKTREE_PATH} --snapshot .deepflow/auto-snapshot.txt --task T{N}
|
|
171
171
|
```
|
|
172
172
|
|
|
173
173
|
The script handles all health checks internally and outputs structured JSON:
|
|
@@ -190,11 +190,11 @@ The script handles all health checks internally and outputs structured JSON:
|
|
|
190
190
|
- **Exit 0 (PASS):** Commit stands. Proceed to §5.6 wave test agent.
|
|
191
191
|
- **Exit 1 (FAIL):** Script already reverted. Set `TaskUpdate(status: "pending")`. Recompute remaining waves:
|
|
192
192
|
```
|
|
193
|
-
WAVE_JSON=!`node bin/wave-runner.js --json --plan PLAN.md --recalc --failed T{N} 2>/dev/null || echo 'WAVE_ERROR'`
|
|
193
|
+
WAVE_JSON=!`node "${HOME}/.claude/bin/wave-runner.js" --json --plan PLAN.md --recalc --failed T{N} 2>/dev/null || echo 'WAVE_ERROR'`
|
|
194
194
|
```
|
|
195
|
-
(Fall back to text mode if `--json` is unavailable: `node bin/wave-runner.js --plan PLAN.md --recalc --failed T{N}`)
|
|
195
|
+
(Fall back to text mode if `--json` is unavailable: `node "${HOME}/.claude/bin/wave-runner.js" --plan PLAN.md --recalc --failed T{N}`)
|
|
196
196
|
Report: `"✗ T{n}: reverted"`.
|
|
197
|
-
- **Exit 2 (SALVAGEABLE):** Spawn `Agent(model="sonnet")` to fix lint/typecheck issues. Re-run `node bin/ratchet.js`. If still non-zero → revert both commits, set status pending.
|
|
197
|
+
- **Exit 2 (SALVAGEABLE):** Spawn `Agent(model="sonnet")` to fix lint/typecheck issues. Re-run `node "${HOME}/.claude/bin/ratchet.js"`. If still non-zero → revert both commits, set status pending.
|
|
198
198
|
|
|
199
199
|
**Edit scope validation:** `git diff HEAD~1 --name-only` vs allowed globs. Violation → revert, report.
|
|
200
200
|
**Impact completeness:** diff vs Impact callers/duplicates. Gap → advisory warning (no revert).
|
package/src/commands/df/plan.md
CHANGED
|
@@ -244,7 +244,7 @@ Then apply §5.5 routing matrix. Continue to §6.
|
|
|
244
244
|
|
|
245
245
|
Shell-inject the consolidator output:
|
|
246
246
|
|
|
247
|
-
`` !`node bin/plan-consolidator.js --plans-dir .deepflow/plans/ 2>/dev/null || true` ``
|
|
247
|
+
`` !`node "${HOME}/.claude/bin/plan-consolidator.js" --plans-dir .deepflow/plans/ 2>/dev/null || node .claude/bin/plan-consolidator.js --plans-dir .deepflow/plans/ 2>/dev/null || true` ``
|
|
248
248
|
|
|
249
249
|
This produces the `## Tasks` section with:
|
|
250
250
|
- Globally sequential T-ids (no gaps, no duplicates) — AC-4
|