deepflow 0.1.53 → 0.1.54
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 +23 -7
- package/bin/deepflow-auto.sh +18 -2
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -75,25 +75,40 @@ claude
|
|
|
75
75
|
You write the specs, then walk away. The AI runs the full pipeline — hypothesis generation, parallel spikes, implementation, adversarial self-selection, verification — without any human intervention.
|
|
76
76
|
|
|
77
77
|
```bash
|
|
78
|
-
# You define WHAT (the specs
|
|
79
|
-
# The AI figures out HOW, overnight
|
|
78
|
+
# You define WHAT (the specs), the AI figures out HOW, overnight
|
|
80
79
|
|
|
81
|
-
deepflow auto # process all
|
|
80
|
+
deepflow auto # process all specs in specs/
|
|
82
81
|
deepflow auto --parallel=3 # 3 approaches in parallel
|
|
83
82
|
deepflow auto --hypotheses=4 # 4 hypotheses per cycle
|
|
84
83
|
deepflow auto --max-cycles=5 # cap retry cycles
|
|
85
84
|
```
|
|
86
85
|
|
|
87
86
|
**What the AI does alone:**
|
|
88
|
-
1.
|
|
89
|
-
2. Generates N hypotheses for how to implement
|
|
87
|
+
1. Discovers specs (auto-promotes plain specs to `doing-*`)
|
|
88
|
+
2. Generates N hypotheses for how to implement each spec
|
|
90
89
|
3. Runs parallel spikes in isolated worktrees (one per hypothesis)
|
|
91
90
|
4. Implements the passing approaches
|
|
92
91
|
5. Adversarial selection: a fresh AI context compares approaches by artifacts only (never reads code), picks the best or rejects all
|
|
93
92
|
6. If rejected: generates new hypotheses, retries (up to max-cycles)
|
|
94
93
|
7. On convergence: verifies, merges to main
|
|
95
94
|
|
|
96
|
-
**What you do:** Write specs (via interactive mode or manually)
|
|
95
|
+
**What you do:** Write specs (via interactive mode or manually) in `specs/`, run `deepflow auto`, read the morning report at `.deepflow/auto-report.md`. No need to run `/df:plan` first — auto mode promotes plain specs to `doing-*` automatically.
|
|
96
|
+
|
|
97
|
+
**How to use:**
|
|
98
|
+
```bash
|
|
99
|
+
# In Claude Code — create and approve a spec
|
|
100
|
+
$ claude
|
|
101
|
+
> /df:discover auth
|
|
102
|
+
> /df:spec auth # creates specs/auth.md
|
|
103
|
+
> /exit
|
|
104
|
+
|
|
105
|
+
# In your terminal — run auto mode and walk away
|
|
106
|
+
$ deepflow auto
|
|
107
|
+
|
|
108
|
+
# Next morning — check what happened
|
|
109
|
+
$ cat .deepflow/auto-report.md
|
|
110
|
+
$ git log --oneline
|
|
111
|
+
```
|
|
97
112
|
|
|
98
113
|
**Safety:** Never pushes to remote. Failed approaches recorded in `.deepflow/experiments/` and never repeated. Specs validated before processing (malformed specs are skipped).
|
|
99
114
|
|
|
@@ -109,7 +124,7 @@ deepflow auto --max-cycles=5 # cap retry cycles
|
|
|
109
124
|
Merge or retry
|
|
110
125
|
Read morning report
|
|
111
126
|
───────────────────────────────── ──────────────────────────────────
|
|
112
|
-
specs
|
|
127
|
+
specs/*.md is the handoff point
|
|
113
128
|
```
|
|
114
129
|
|
|
115
130
|
## The Flow (Interactive)
|
|
@@ -150,6 +165,7 @@ deepflow auto --max-cycles=5 # cap retry cycles
|
|
|
150
165
|
|
|
151
166
|
```
|
|
152
167
|
deepflow auto
|
|
168
|
+
| Discover specs (auto-promote plain specs to doing-*)
|
|
153
169
|
| For each doing-* spec:
|
|
154
170
|
|
|
|
155
171
|
| Validate spec (malformed? skip)
|
package/bin/deepflow-auto.sh
CHANGED
|
@@ -114,14 +114,30 @@ discover_specs() {
|
|
|
114
114
|
exit 1
|
|
115
115
|
fi
|
|
116
116
|
|
|
117
|
-
# Collect doing-*.md files
|
|
117
|
+
# Collect doing-*.md files
|
|
118
118
|
for f in "${specs_dir}"/doing-*.md; do
|
|
119
119
|
[[ -e "$f" ]] || continue
|
|
120
120
|
found+=("$f")
|
|
121
121
|
done
|
|
122
122
|
|
|
123
|
+
# Auto-promote plain specs (not doing-*, done-*, or .debate-*) to doing-*
|
|
124
|
+
for f in "${specs_dir}"/*.md; do
|
|
125
|
+
[[ -e "$f" ]] || continue
|
|
126
|
+
local base
|
|
127
|
+
base="$(basename "$f")"
|
|
128
|
+
# Skip already-prefixed and auxiliary files
|
|
129
|
+
case "$base" in
|
|
130
|
+
doing-*|done-*|.debate-*|.*) continue ;;
|
|
131
|
+
esac
|
|
132
|
+
local new_path="${specs_dir}/doing-${base}"
|
|
133
|
+
mv "$f" "$new_path"
|
|
134
|
+
auto_log "Auto-promoted spec: ${base} -> doing-${base}"
|
|
135
|
+
echo "Promoted: ${base} -> doing-${base}" >&2
|
|
136
|
+
found+=("$new_path")
|
|
137
|
+
done
|
|
138
|
+
|
|
123
139
|
if [[ ${#found[@]} -eq 0 ]]; then
|
|
124
|
-
echo "Error: no specs
|
|
140
|
+
echo "Error: no specs found in ${specs_dir}" >&2
|
|
125
141
|
exit 1
|
|
126
142
|
fi
|
|
127
143
|
|