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 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) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepflow",
3
- "version": "0.1.76",
3
+ "version": "0.1.78",
4
4
  "description": "Doing reveals what thinking can't predict — spec-driven iterative development for Claude Code",
5
5
  "keywords": [
6
6
  "claude",