deepflow 0.1.76 → 0.1.78
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 +3 -3
- package/bin/install.js +2 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -32,7 +32,7 @@ Most spec-driven frameworks start from a finished spec and execute a static plan
|
|
|
32
32
|
- **Asking reveals what assuming hides** — Before any code, Socratic questioning surfaces the requirements you didn't know you had. Four AI perspectives collide to expose tensions in your approach. The spec isn't written from what you think you know — it's written from what the conversation uncovered.
|
|
33
33
|
- **Spec as living hypothesis** — Core intent stays fixed, details refine through implementation. "The spec becomes bulletproof because you built it, not before."
|
|
34
34
|
- **Parallel probes reveal the best path** — Uncertain approaches spawn parallel spikes in isolated worktrees. The machine selects the winner (fewer regressions > better coverage > fewer files changed). Failed approaches stay recorded and never repeat.
|
|
35
|
-
- **Metrics decide, not opinions** — No LLM judges another LLM. Build, tests, typecheck, lint are the only judges. After an agent commits, the orchestrator runs health checks. Pass = keep. Fail = revert + new hypothesis.
|
|
35
|
+
- **Metrics decide, not opinions** — No LLM judges another LLM. Build, tests, typecheck, lint, and invariant checks are the only judges. After an agent commits, the orchestrator runs health checks. Pass = keep. Fail = revert + new hypothesis.
|
|
36
36
|
- **The loop is the product** — Not "execute a plan" — "evolve the codebase toward the spec's goals through iterative cycles." Each cycle reveals what the previous one couldn't see.
|
|
37
37
|
|
|
38
38
|
## What We Learned by Doing
|
|
@@ -111,7 +111,7 @@ $ git log --oneline
|
|
|
111
111
|
1. Runs `/df:plan` if no PLAN.md exists
|
|
112
112
|
2. Snapshots pre-existing tests (ratchet baseline)
|
|
113
113
|
3. Starts a loop (`/loop 1m /df:auto-cycle`) — fresh context each cycle
|
|
114
|
-
4. Each cycle: picks next task → executes in worktree → runs health checks (build/tests/typecheck/lint)
|
|
114
|
+
4. Each cycle: picks next task → executes in worktree → runs health checks (build/tests/typecheck/lint/invariant-check)
|
|
115
115
|
5. Pass = commit stands. Fail = revert + retry next cycle
|
|
116
116
|
6. Circuit breaker: halts after N consecutive reverts on same task
|
|
117
117
|
7. When all tasks done: runs `/df:verify`, merges to main
|
|
@@ -179,7 +179,7 @@ your-project/
|
|
|
179
179
|
|
|
180
180
|
1. **Discover before specifying, spike before implementing** — Ask, debate, probe — then commit
|
|
181
181
|
2. **You define WHAT, AI figures out HOW** — Specs are the contract
|
|
182
|
-
3. **Metrics decide, not opinions** — Build/test/typecheck/lint are the only judges
|
|
182
|
+
3. **Metrics decide, not opinions** — Build/test/typecheck/lint/invariant-check are the only judges
|
|
183
183
|
4. **Confirm before assume** — Search the code before marking "missing"
|
|
184
184
|
5. **Complete implementations** — No stubs, no placeholders
|
|
185
185
|
6. **Atomic commits** — One task = one commit
|
package/bin/install.js
CHANGED
|
@@ -187,7 +187,7 @@ async function main() {
|
|
|
187
187
|
console.log(' skills/ — gap-discovery, atomic-commits, code-completeness, context-hub');
|
|
188
188
|
console.log(' agents/ — reasoner (/df:auto — autonomous execution via /loop)');
|
|
189
189
|
if (level === 'global') {
|
|
190
|
-
console.log(' hooks/ — statusline, update checker');
|
|
190
|
+
console.log(' hooks/ — statusline, update checker, invariant checker');
|
|
191
191
|
}
|
|
192
192
|
console.log(' hooks/df-spec-* — spec validation (auto-enforced by /df:spec and /df:plan)');
|
|
193
193
|
console.log(' env/ — ENABLE_LSP_TOOL (code navigation via goToDefinition, findReferences, workspaceSymbol)');
|
|
@@ -474,7 +474,7 @@ async function uninstall() {
|
|
|
474
474
|
];
|
|
475
475
|
|
|
476
476
|
if (level === 'global') {
|
|
477
|
-
toRemove.push('hooks/df-statusline.js', 'hooks/df-check-update.js', 'hooks/df-consolidation-check.js');
|
|
477
|
+
toRemove.push('hooks/df-statusline.js', 'hooks/df-check-update.js', 'hooks/df-consolidation-check.js', 'hooks/df-invariant-check.js');
|
|
478
478
|
}
|
|
479
479
|
|
|
480
480
|
for (const item of toRemove) {
|