deepflow 0.1.35 → 0.1.36

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "deepflow",
3
- "version": "0.1.35",
3
+ "version": "0.1.36",
4
4
  "description": "Stay in flow state - lightweight spec-driven task orchestration for Claude Code",
5
5
  "keywords": [
6
6
  "claude",
@@ -81,15 +81,19 @@ Include patterns in task descriptions for agents to follow.
81
81
 
82
82
  ### 4. ANALYZE CODEBASE
83
83
 
84
- **Spawn ALL Explore agents in ONE message, then wait for ALL with TaskOutput in ONE message:**
85
- ```
86
- // Spawn all in single message:
87
- t1 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
88
- t2 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
84
+ **NEVER use `run_in_background` for Explore agents** causes late "Agent completed" notifications that pollute output after work is done.
85
+
86
+ **NEVER use TaskOutput** returns full agent transcripts (100KB+) that explode context.
89
87
 
90
- // Wait all in single message:
91
- TaskOutput(task_id=t1)
92
- TaskOutput(task_id=t2)
88
+ **Spawn ALL Explore agents in ONE message (non-background, parallel):**
89
+
90
+ ```python
91
+ # All in single message — runs in parallel, blocks until all complete:
92
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
93
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
94
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
95
+ # Each returns agent's final message only (not full transcript)
96
+ # No late notifications — agents complete before orchestrator proceeds
93
97
  ```
94
98
 
95
99
  Scale agent count based on codebase size:
@@ -104,6 +108,7 @@ Scale agent count based on codebase size:
104
108
  **Explore Agent Prompt Structure:**
105
109
  ```
106
110
  Find: [specific question]
111
+
107
112
  Return ONLY:
108
113
  - File paths matching criteria
109
114
  - One-line description per file
@@ -216,6 +221,8 @@ Append tasks grouped by `### doing-{spec-name}`. Include spec gaps and validatio
216
221
  `✓ Plan generated — {n} specs, {n} tasks. Run /df:execute`
217
222
 
218
223
  ## Rules
224
+ - **Never use TaskOutput** — Returns full transcripts that explode context
225
+ - **Never use run_in_background for Explore agents** — Causes late notifications that pollute output
219
226
  - **Spike-first** — Generate spike task before full implementation if no `--passed.md` experiment exists
220
227
  - **Block on spike** — Full implementation tasks MUST be blocked by spike validation
221
228
  - **Learn from failures** — Extract "next hypothesis" from failed experiments, never repeat same approach
@@ -4,9 +4,9 @@
4
4
 
5
5
  You coordinate agents and ask questions. You never search code directly.
6
6
 
7
- **NEVER:** Read source files, use Glob/Grep directly, run git
7
+ **NEVER:** Read source files, use Glob/Grep directly, run git, use TaskOutput
8
8
 
9
- **ONLY:** Spawn agents, use TaskOutput to get results, ask user questions, write spec file
9
+ **ONLY:** Spawn agents (non-background), ask user questions, write spec file
10
10
 
11
11
  ---
12
12
 
@@ -31,15 +31,19 @@ Transform conversation context into a structured specification file.
31
31
 
32
32
  ### 1. GATHER CODEBASE CONTEXT
33
33
 
34
- **Spawn ALL Explore agents in ONE message, then wait for ALL with TaskOutput in ONE message:**
35
- ```
36
- // Spawn all in single message:
37
- t1 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
38
- t2 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
34
+ **NEVER use `run_in_background` for Explore agents** causes late "Agent completed" notifications that pollute output after work is done.
35
+
36
+ **NEVER use TaskOutput** returns full agent transcripts (100KB+) that explode context.
39
37
 
40
- // Wait all in single message:
41
- TaskOutput(task_id=t1)
42
- TaskOutput(task_id=t2)
38
+ **Spawn ALL Explore agents in ONE message (non-background, parallel):**
39
+
40
+ ```python
41
+ # All in single message — runs in parallel, blocks until all complete:
42
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
43
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
44
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
45
+ # Each returns agent's final message only (not full transcript)
46
+ # No late notifications — agents complete before orchestrator proceeds
43
47
  ```
44
48
 
45
49
  Find:
@@ -57,6 +61,7 @@ Find:
57
61
  **Explore Agent Prompt Structure:**
58
62
  ```
59
63
  Find: [specific question]
64
+
60
65
  Return ONLY:
61
66
  - File paths matching criteria
62
67
  - One-line description per file
@@ -83,6 +83,8 @@ Files: ...
83
83
  Default: L1-L3 (L4 optional, can be slow)
84
84
 
85
85
  ## Rules
86
+ - **Never use TaskOutput** — Returns full transcripts that explode context
87
+ - **Never use run_in_background for Explore agents** — Causes late notifications that pollute output
86
88
  - Verify against spec, not assumptions
87
89
  - Flag partial implementations
88
90
  - Report TODO/FIXME as quality issues
@@ -91,15 +93,18 @@ Default: L1-L3 (L4 optional, can be slow)
91
93
 
92
94
  ## Agent Usage
93
95
 
94
- **Spawn ALL Explore agents in ONE message, then wait for ALL with TaskOutput in ONE message:**
95
- ```
96
- // Spawn all in single message:
97
- t1 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
98
- t2 = Task(subagent_type="Explore", model="haiku", run_in_background=true, prompt="...")
96
+ **NEVER use `run_in_background` for Explore agents** causes late "Agent completed" notifications that pollute output after work is done.
97
+
98
+ **NEVER use TaskOutput** returns full agent transcripts (100KB+) that explode context.
99
+
100
+ **Spawn ALL Explore agents in ONE message (non-background, parallel):**
99
101
 
100
- // Wait all in single message:
101
- TaskOutput(task_id=t1)
102
- TaskOutput(task_id=t2)
102
+ ```python
103
+ # All in single message — runs in parallel, blocks until all complete:
104
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
105
+ Task(subagent_type="Explore", model="haiku", prompt="Find: ...")
106
+ # Each returns agent's final message only (not full transcript)
107
+ # No late notifications — agents complete before orchestrator proceeds
103
108
  ```
104
109
 
105
110
  Scale: 1-2 agents per spec, cap 10.