rbin-task-flow 1.26.1 → 1.30.1

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.
@@ -7,9 +7,11 @@ paths: [".task-flow/**"]
7
7
 
8
8
  # Task Flow — Report
9
9
 
10
- 1. Verify task X is fully `done` in `status.json` (warn if partial).
10
+ 1. Verify task X is fully `done` in `status.json` — **no** `manual`, `pending`, or `in_progress` subtasks (warn and stop if any).
11
11
  2. Read `tasks.json`; analyze related code changes (read-only git ok).
12
12
  3. Write `.task-flow/guides/reports/task-X-implementation.md` using project template.
13
13
  4. Create `.task-flow/guides/reports/` if missing.
14
14
 
15
+ **Never** generate this report during `task-flow: run` — only when the user explicitly asks for `task-flow: report`.
16
+
15
17
  Reference: `.cursor/rules/task_report.mdc`
@@ -13,15 +13,21 @@ paths: [".task-flow/**"]
13
13
 
14
14
  ## Steps
15
15
 
16
- 1. Read `status.json` first; list **pending** task/subtask IDs only.
17
- 2. **tasks.json (token discipline):** Count subtasks across all tasks. If **>50**, do **not** load the full file — read only the JSON slice for each active task id (pending subtasks you will run). If ≤50, full read is OK.
18
- 3. Parse intent: `run next X` (default X=1) | `run X` | `run X,Y` | `run all`.
19
- 4. **`run X` / `run X,Y`:** If any task before X has pending subtasks, **stop** and list blocking tasks.
20
- 5. For each subtask: follow `instructions`; read `.task-flow/contexts/` files when referenced.
21
- 6. If `.task-flow/guides/graphify-out/graph.json` exists, prefer `graphify query "<module from subtask>" --graph .task-flow/guides/graphify-out/graph.json` before broad grep (summarized output only — see GRAPHIFY.md).
22
- 7. After each subtask: update `status.json` and `tasks.status.md` (regenerate 📊 Summary).
23
- 8. When parent task complete: mark task `done` in both files.
24
- 9. Invoke `/rbin-git` logic to **suggest** commit only — never `git add`/`commit`/`push`.
16
+ 1. Read `status.json`; resolve **`manual`** subtasks first via dev-logs + current conversation (see workflow).
17
+ 2. List **pending** task/subtask IDs (`done`, `manual` until resolved).
18
+ 3. **tasks.json:** partial read by task id if **>50** subtasks total.
19
+ 4. Parse intent: `run next X` (default X=1) | `run X` | `run X,Y` | `run all`.
20
+ 5. **`run X` / `run X,Y`:** Stop if earlier tasks/subtasks are not `done`.
21
+ 6. Per subtask: `instructions` + `contexts/`; optional `graphify query`.
22
+ 7. **Automatable** `done` + `tasks.status.md` Summary.
23
+ 8. **Manual intervention** `manual` + `.task-flow/dev-logs/task-X.Y-manual.md`; user reports progress **in chat**; AI appends **Conversation log** and marks `done` only when verified complete.
24
+ 9. Parent task all `done` mark task `done`.
25
+ 10. Suggest commit via `/rbin-git` — never git write.
26
+
27
+ ## Never during run
28
+
29
+ - Mark `done` when manual steps remain unverified
30
+ - Write `guides/reports/task-*-implementation.md`
25
31
 
26
32
  ## Full workflow
27
33
 
@@ -4,56 +4,116 @@
4
4
 
5
5
  | Input | Behavior |
6
6
  |-------|----------|
7
- | `task-flow: run next X` | Next X pending subtasks in order (task 1.1, 1.2, …, 2.1, ) |
7
+ | `task-flow: run next X` | Next X **pending** subtasks in order (skip `done`; resolve `manual` first — see below) |
8
8
  | `task-flow: run next` | X = 1 |
9
- | `task-flow: run X` | All pending subtasks of task X |
9
+ | `task-flow: run X` | All **pending** subtasks of task X |
10
10
  | `task-flow: run X,Y` | Tasks X then Y sequentially |
11
- | `task-flow: run all` | All pending subtasks |
11
+ | `task-flow: run all` | All **pending** subtasks |
12
+
13
+ Subtasks in `manual` block later subtasks in the same task until the dev-log shows they are complete.
14
+
15
+ ## Before picking pending subtasks — resolve `manual`
16
+
17
+ 1. List all `manual` subtasks in scope (same task or global for `run next`).
18
+ 2. Read `.task-flow/dev-logs/task-X.Y-manual.md` for each.
19
+ 3. Use the **current conversation** (and codebase checks) to assess completion — no separate confirm command.
20
+ 4. If the user reported progress in chat, append to the dev-log **Conversation log** (see format below).
21
+ 5. When the log + verification show all manual steps done → set `done`, refresh `tasks.status.md`, continue the run.
22
+ 6. If still incomplete → keep `manual`, tell the user what remains; do not skip marking done prematurely.
12
23
 
13
24
  ## Dependency check (`run X`)
14
25
 
15
26
  1. For tasks `1 .. X-1`, verify every subtask is `done`.
16
- 2. If any pending: stop with
17
- `⚠️ Cannot execute task X: complete tasks [list] first. Use task-flow: run Y.`
18
- 3. Do not execute any subtask of X until cleared.
27
+ 2. If any `pending`, `manual`, or `in_progress`: stop with
28
+ `⚠️ Cannot execute task X: complete tasks [list] first. Use task-flow: run Y or finish manual steps in dev-logs.`
29
+ 3. For task X: if any earlier subtask is still `manual` (dev-log incomplete), stop — resolve via conversation first.
19
30
 
20
31
  ## tasks.json — partial read (>50 subtasks)
21
32
 
22
- 1. From `status.json`, collect pending `(taskId, subtaskId)` for this run.
23
- 2. Count total subtasks in `tasks.json` (quick parse or `jq '[.tasks[].subtasks | length] | add'`).
24
- 3. If total **>50**: load **only** each `tasks[]` entry where `id` is in the pending set — not the full array.
25
- 4. If **≤50**: loading the full `tasks.json` is acceptable.
26
-
27
- ## Per subtask
28
-
29
- 1. Load subtask from `tasks.json` (title, description, instructions) — slice for that task id only when using partial read.
30
- 2. If instructions cite `.task-flow/contexts/...`, read those files.
31
- 3. Implement; verify (tests/build as appropriate).
32
- 4. Set subtask to `done` in `status.json`.
33
- 5. Update `tasks.status.md`: `- [x]` on subtask; regenerate Summary (✅ / ⏳ / 📝 counts).
34
- 6. If blocked: set `in_progress` and explain.
35
-
36
- ## status.json shape
37
-
38
- ```json
39
- {
40
- "tasks": {
41
- "1": {
42
- "status": "pending",
43
- "subtasks": { "1": "done", "2": "pending" }
44
- }
45
- }
46
- }
33
+ 1. From `status.json`, collect **pending** `(taskId, subtaskId)` for this run.
34
+ 2. Count total subtasks in `tasks.json`.
35
+ 3. If total **>50**: load only each `tasks[]` entry for pending/manual task ids.
36
+ 4. If **≤50**: full read is OK.
37
+
38
+ ## Per subtask — fully automatable
39
+
40
+ 1. Load subtask from `tasks.json`.
41
+ 2. Read `.task-flow/contexts/` when cited.
42
+ 3. Implement; verify (tests/build).
43
+ 4. `done` in `status.json` + update `tasks.status.md` Summary.
44
+ 5. Suggest commit via `@rbin-git` when appropriate.
45
+
46
+ ## Per subtask — manual intervention required
47
+
48
+ When the agent **cannot** finish alone (deploy, console, credentials, production, third-party dashboard, etc.):
49
+
50
+ 1. Implement everything possible in code/repo first.
51
+ 2. Set **`manual`** in `status.json` — never `done`.
52
+ 3. Create `.task-flow/dev-logs/task-X.Y-manual.md`:
53
+
54
+ ```markdown
55
+ # Task X.Y — Manual intervention required
56
+
57
+ **Subtask:** [title]
58
+ **Status:** manual
59
+ **Created:** [ISO 8601]
60
+
61
+ ## What the AI completed
62
+ - [automated work]
63
+
64
+ ## What you need to do manually
65
+ 1. [clear step]
66
+ 2. [clear step]
67
+
68
+ ## Conversation log
69
+ (AI appends as you report progress in chat — no separate command)
70
+
71
+ ### YYYY-MM-DDTHH:mm:ssZ
72
+ **User said:** [from conversation]
73
+ **Verified:** pending | complete
74
+ **Notes:** [what was checked; what remains]
47
75
  ```
48
76
 
77
+ 4. `tasks.status.md`: `- [~] [title] — manual: .task-flow/dev-logs/task-X.Y-manual.md`
78
+ 5. Stop further subtasks in that task.
79
+ 6. Tell the user the manual steps; they report back **in normal chat** when done.
80
+
81
+ ## Conversation-driven completion (any turn)
82
+
83
+ Applies during `run`, `status`, or whenever the user mentions manual work — **no `task-flow: confirm` command**.
84
+
85
+ 1. Read `status.json` for `manual` subtasks.
86
+ 2. Match user message to a dev-log (by task id, keywords, or open manual items).
87
+ 3. Append **Conversation log** entry with what the user said.
88
+ 4. Verify against checklist + codebase when possible.
89
+ 5. All steps satisfied → `done` + `tasks.status.md` + continue blocked work on next `run`.
90
+ 6. Partial → keep `manual`, update dev-log with remaining steps.
91
+
92
+ ## Never during run
93
+
94
+ - Mark `done` when manual steps remain unverified
95
+ - Write `.task-flow/guides/reports/task-*-implementation.md` (`task-flow: report` only)
96
+
97
+ ## Blocked (not manual)
98
+
99
+ Temporarily blocked without user action: `in_progress` + explain.
100
+
101
+ ## status.json
102
+
103
+ Subtask status: `pending` | `done` | `in_progress` | `manual`
104
+
49
105
  ## Completion summary
50
106
 
51
107
  ```
52
108
  ✅ Completed N subtasks:
53
109
  - Task 1.2: [title]
54
- 📝 Next pending: Task 1.3
110
+
111
+ 🖐️ Manual — waiting on you:
112
+ - Task 1.3: .task-flow/dev-logs/task-1.3-manual.md (report in chat when done)
113
+
114
+ 📝 Next pending: Task 1.4 (after 1.3 resolves)
55
115
  ```
56
116
 
57
- ## Related rules
117
+ ## Related
58
118
 
59
- Cursor fallback (short): `.cursor/rules/task_work.mdc` — prefer `@task-flow-run` / this file.
119
+ Cursor fallback: `.cursor/rules/task_work.mdc` — prefer `@task-flow-run` / this file.
@@ -0,0 +1,23 @@
1
+ ---
2
+ name: task-flow-split
3
+ description: Plans N parallel IA streams from pending tasks (split:N required). Non-conflicting areas, ordered by difficulty, outputs task-flow run X,Y,Z per tier. Use for task-flow split:3, split:2, dividir em 3 ias — not plain split.
4
+ disable-model-invocation: false
5
+ paths: [".task-flow/**"]
6
+ ---
7
+
8
+ # Task Flow — Split
9
+
10
+ ## Status
11
+
12
+ !`head -20 .task-flow/tasks.status.md 2>/dev/null || echo "Run sync first"`
13
+
14
+ ## Steps
15
+
16
+ 1. Parse **`split:N`** — N required (e.g. `split:3`). Plain `split` without `:N` → ask user. Optional scope: `split:3 50-72` or `split:2 50,51`.
17
+ 2. Load pending IDs from `status.json`; read `tasks.json` for those tasks.
18
+ 3. Partition into **N** non-conflicting streams; keep dependency chains together.
19
+ 4. Order streams IA-1 (strongest) → IA-N by difficulty.
20
+ 5. Output **N lines:** `task-flow: run id,id,id` + coordination notes.
21
+ 6. **Do not** implement or update status.
22
+
23
+ Reference: `.cursor/rules/task_split.mdc`
@@ -7,7 +7,7 @@ disable-model-invocation: false
7
7
  # Task Flow — Status
8
8
 
9
9
  1. Read `.task-flow/tasks.status.md`.
10
- 2. Display summary (✅ completed, ⏳ in progress, 📝 remaining) and task/subtask checkboxes.
10
+ 2. Display summary (✅ completed, ⏳ in progress, 🖐️ manual, 📝 remaining) and task/subtask checkboxes (`[x]` `[ ]` `[~]`).
11
11
  3. If file missing, suggest `/task-flow-sync`.
12
12
 
13
13
  Reference: `.cursor/rules/task_status.mdc`
@@ -43,12 +43,12 @@ All subtasks `pending`; task `pending`.
43
43
  ## tasks.status.md
44
44
 
45
45
  - Auto-generated banner warning (do not edit manually).
46
- - Summary section with counts.
47
- - `- [ ]` / `- [x]` for tasks and indented subtasks.
46
+ - Summary section with counts (include 🖐️ manual when any).
47
+ - `- [ ]` / `- [x]` / `- [~]` for tasks and indented subtasks (`[~]` → link dev-log).
48
48
 
49
49
  ## Sync-only rules
50
50
 
51
- - Preserve status on modified tasks when subtasks still match.
51
+ - Preserve status on modified tasks when subtasks still match (`done`, `manual`, `pending`).
52
52
  - New subtasks after regen → `pending`; removed subtasks → drop from status.
53
53
  - Never explore codebase during pure sync unless user explicitly asks for codebase analysis in the same message.
54
54
 
@@ -14,6 +14,7 @@ alwaysApply: true
14
14
  | `.task-flow/.internal/tasks.json` | Definitions |
15
15
  | `.task-flow/.internal/status.json` | Status source of truth |
16
16
  | `.task-flow/contexts/` | Specs / mockups |
17
+ | `.task-flow/dev-logs/` | Manual steps + conversation log (`task-X.Y-manual.md`) |
17
18
  | `.task-flow/guides/` | Platform guides, Graphify, standards, reports |
18
19
 
19
20
  ## Prefer skills (`.cursor/skills/`)
@@ -23,6 +24,7 @@ alwaysApply: true
23
24
  | `task-flow: sync` | `@task-flow-sync` or [task-flow-sync.mdc](mdc:.cursor/rules/task-flow-sync.mdc) |
24
25
  | `task-flow: from contexts` | `@task-flow-from-contexts` |
25
26
  | `task-flow: run next X`, `run N` | `@task-flow-run` |
27
+ | `task-flow: split:N` | `@task-flow-split` |
26
28
  | `task-flow: status` | `@task-flow-status` |
27
29
  | `task-flow: audit` | `@task-flow-audit` |
28
30
  | `task-flow: validate` | `@task-flow-validate` |
@@ -33,6 +35,8 @@ alwaysApply: true
33
35
 
34
36
  Natural language (`work on next 3 subtasks`) = same as `task-flow: run next 3`.
35
37
 
38
+ **Manual subtasks:** user reports progress in chat; AI updates `.task-flow/dev-logs/` Conversation log and marks `done` when verified — no separate command.
39
+
36
40
  ## Git (always)
37
41
 
38
42
  Never write git — user runs all commits. Policy: [rbin-git-policy.mdc](mdc:.cursor/rules/rbin-git-policy.mdc). Suggest via `@rbin-git`.
@@ -20,7 +20,7 @@ alwaysApply: false
20
20
  |--------|--------|
21
21
  | **New** | Generate task + 3–8 subtasks; all `pending` |
22
22
  | **Removed** | Drop from `tasks.json`, `status.json`, `tasks.status.md` |
23
- | **Modified** | Update title/description; regen subtasks; **preserve** done/pending status where possible |
23
+ | **Modified** | Update title/description; regen subtasks; **preserve** done/pending/**manual** status where possible |
24
24
  | **Unchanged** | Leave task data and status as-is |
25
25
 
26
26
  Task IDs stay sequential (1, 2, 3…) matching `tasks.input.txt` order.
@@ -38,8 +38,8 @@ Task IDs stay sequential (1, 2, 3…) matching `tasks.input.txt` order.
38
38
  ## 4. Align status
39
39
 
40
40
  - `status.json` = source of truth
41
- - Rebuild `tasks.status.md` checkboxes to match; **regenerate 📊 Summary** (completed / in progress / remaining counts)
42
- - After regen: new subtasks → `pending`; keep `done` on matched subtasks when possible
41
+ - Rebuild `tasks.status.md` checkboxes to match (`[ ]` pending · `[x]` done · `[~]` manual); **regenerate 📊 Summary** (completed / in progress / 🖐️ manual / remaining counts)
42
+ - After regen: new subtasks → `pending`; keep `done` and `manual` on matched subtasks when possible
43
43
 
44
44
  ## 5. Principles
45
45
 
@@ -14,6 +14,7 @@ alwaysApply: false
14
14
  | `task-flow: sync` | `@task-flow-sync` |
15
15
  | `task-flow: from contexts` | `@task-flow-from-contexts` |
16
16
  | `task-flow: run next X`, `run N` | `@task-flow-run` |
17
+ | `task-flow: split:N` | `@task-flow-split` |
17
18
  | `task-flow: status` | `@task-flow-status` |
18
19
  | `task-flow: audit` | `@task-flow-audit` |
19
20
  | `task-flow: validate` | `@task-flow-validate` |
@@ -26,9 +26,9 @@ Use this rule for **subtask shape** when `task-flow-sync` creates or regenerates
26
26
 
27
27
  **tasks.json:** `id`, `title`, `description`, `originalRequest`, `createdAt`, `subtasks[]` with `id`, `title`, `description`, `instructions`.
28
28
 
29
- **status.json:** `tasks.{id}.status`, `tasks.{id}.subtasks.{subtaskId}` → `pending` | `done` | `in_progress`.
29
+ **status.json:** `tasks.{id}.status`, `tasks.{id}.subtasks.{subtaskId}` → `pending` | `done` | `in_progress` | `manual`.
30
30
 
31
- **tasks.status.md:** banner “do not edit”; 📊 Summary; tasks `- [ ]`/`- [x]`; subtasks indented with two spaces.
31
+ **tasks.status.md:** banner “do not edit”; 📊 Summary (include 🖐️ manual count); `- [ ]` pending · `- [x]` done · `- [~]` manual (link to `.task-flow/dev-logs/task-X.Y-manual.md`).
32
32
 
33
33
  ## Rules
34
34
 
@@ -0,0 +1,112 @@
1
+ ---
2
+ description: Plans parallel task-flow run across N AIs — split:N required. Splits pending tasks into non-conflicting streams ordered by difficulty. Use for task-flow split:3, split:2, etc.
3
+ alwaysApply: false
4
+ ---
5
+
6
+ # task-flow: split:N
7
+
8
+ **Prefer:** `@task-flow-split` · **Does not implement** — only outputs copy-paste `task-flow: run X,Y,Z` per IA tier.
9
+
10
+ **`N` is required.** Plain `task-flow: split` (without `:N`) is invalid — ask for `split:2`, `split:3`, etc.
11
+
12
+ ## When to run
13
+
14
+ - `task-flow: split:3` — all pending, 3 IAs
15
+ - `task-flow: split:2` — all pending, 2 IAs
16
+ - `task-flow: split:3 50-72` — scope range, 3 IAs
17
+ - `task-flow: split:2 50,51,69` — scope list, 2 IAs
18
+
19
+ Natural language: `dividir pending em 3 ias` → `split:3`.
20
+
21
+ Default scope (no trailing ids): **all tasks with any pending subtask** in `status.json`.
22
+
23
+ ## What it does NOT do
24
+
25
+ - Does **not** run subtasks or edit `status.json` / `tasks.json`
26
+ - Does **not** replace `task-flow: run` — user pastes each output line into a separate IA session
27
+
28
+ ## Process
29
+
30
+ ### 1. Parse N and scope
31
+
32
+ - **N:** integer ≥1 from `split:N` (typical 2–4)
33
+ - **Scope:** optional `50-72` or `50,51,69` after `split:N`
34
+ - If `N` missing or invalid, stop and show examples
35
+
36
+ ### 2. Load pending scope
37
+
38
+ - Read `status.json` — task IDs with ≥1 `pending` or `in_progress` subtask
39
+ - Filter by scope if provided
40
+ - Read matching tasks from `tasks.json`
41
+ - If zero pending, report and stop
42
+
43
+ ### 3. Infer touch areas (conflict detection)
44
+
45
+ Per task, infer **primary file/module areas** from subtask `instructions` and task text.
46
+
47
+ Optional: `graphify query` when `.task-flow/guides/graphify-out/graph.json` exists.
48
+
49
+ Two tasks **conflict** if they likely edit the **same files or same service/module** in parallel.
50
+
51
+ ### 4. Detect dependency chains
52
+
53
+ Sequential / dependent tasks → **same stream**, **ascending ID order**. Never split a chain across IAs.
54
+
55
+ ### 5. Partition into N streams
56
+
57
+ Goal: **up to N** non-overlapping streams.
58
+
59
+ 1. Group conflicting tasks in the same stream
60
+ 2. Balance into **N** streams with minimal cross-stream overlap
61
+ 3. If pending tasks < N, output that many streams only (no empty streams)
62
+
63
+ ### 6. Order streams by difficulty (IA tier)
64
+
65
+ Strongest model → **IA-1**, then IA-2 … IA-N:
66
+
67
+ | Position | Typical content |
68
+ |----------|-----------------|
69
+ | IA-1 (strongest) | Auth, migrations, Firestore rules, money/idempotency, architecture |
70
+ | Mid tiers | Feature work, integrations |
71
+ | IA-N (lightest) | UI tweaks, verification, docs, small fixes |
72
+
73
+ Within each stream: task IDs **ascending**.
74
+
75
+ ### 7. Output (required format)
76
+
77
+ ```markdown
78
+ ## Task Flow Split (:3)
79
+
80
+ **Pending in scope:** N tasks · **Streams:** 3
81
+
82
+ ### 🟣 IA-1 — strongest (…)
83
+ task-flow: run 58,61,62,63,64,65,66,67,68
84
+
85
+ ### 🟢 IA-2 — (…)
86
+ task-flow: run 50,51,59,53,60
87
+
88
+ ### 🔵 IA-3 — (…)
89
+ task-flow: run 52,54,55,56,57,69,70,71,72
90
+
91
+ ### ⚠️ Coordination
92
+ - …
93
+
94
+ ### Next
95
+ Paste one block per IA session. `task-flow: status`
96
+ ```
97
+
98
+ For `split:2`, use two tiers (🟣 IA-1, 🟢 IA-2). For `split:4`, add 🟡 IA-4, etc.
99
+
100
+ One **`task-flow: run id,id,id`** line per stream.
101
+
102
+ ### 8. Coordination notes
103
+
104
+ Call out shared files between streams, read-after-write deps, and ordering inside each list.
105
+
106
+ ## Integration
107
+
108
+ - Execute: `@task-flow-run` per stream
109
+ - Status: `@task-flow-status`
110
+ - Git: [rbin-git-policy.mdc](mdc:.cursor/rules/rbin-git-policy.mdc)
111
+
112
+ **Principle:** `split:N` = plan N parallel `run` commands; user owns N sessions; no execution.
@@ -9,11 +9,11 @@ alwaysApply: false
9
9
  - When user says "task-flow: status" or "task-flow status":
10
10
  - **READ**: `.task-flow/tasks.status.md`
11
11
  - **DISPLAY**: Show the current status of all tasks and subtasks
12
- - **FORMAT**: Display in a clear, readable format showing done/pending tasks
12
+ - **FORMAT**: Display done `[x]`, pending `[ ]`, manual `[~]` (see `.task-flow/dev-logs/`)
13
13
 
14
14
  - **Status Display:**
15
15
  - Read `.task-flow/tasks.status.md` file
16
- - Show tasks marked as `- [x]` (done) and `- [ ]` (pending)
16
+ - Show tasks marked as `- [x]` (done), `- [ ]` (pending), `- [~]` (manual — user action required)
17
17
  - Display subtasks with their status
18
18
  - Show progress summary if available
19
19
 
@@ -32,12 +32,13 @@ For each task/subtask in scope:
32
32
  | Status | Check |
33
33
  |--------|--------|
34
34
  | `done` | Implementation exists and matches requirements (files, tests, docs per instructions) |
35
+ | `manual` | Dev-log + conversation log; not `done` until IA verifies via chat history |
35
36
  | `pending` / `in_progress` | Whether code already partially or fully implements the subtask (status drift) |
36
37
 
37
38
  Record:
38
39
 
39
40
  - **Verified done** — correctly marked
40
- - **False done** — marked `done` but missing or incomplete
41
+ - **False done** — marked `done` but missing, incomplete, or should be `manual`
41
42
  - **Drift** — implemented in code but still `pending`
42
43
  - **Confirmed pending** — not implemented yet (expected)
43
44
 
@@ -51,7 +52,7 @@ Find work not covered by current tasks:
51
52
 
52
53
  ### 4. Apply fixes (no ask — user invoked validate)
53
54
 
54
- 1. **Status:** set false `done` → `pending` in `status.json`; optional drift `pending` keep or note in report (do not auto-mark `done` without user run)
55
+ 1. **Status:** set false `done` → `pending` or `manual` (with dev-log if user action required) in `status.json`
55
56
  2. **Input:** append new lacunas as `- Description` lines to `tasks.input.txt` (append only; never remove or edit existing lines)
56
57
  3. **Sync:** follow [task-flow-sync.mdc](mdc:.cursor/rules/task-flow-sync.mdc) — diff input, regen subtasks for new tasks, rebuild `tasks.status.md` Summary
57
58
  4. **Never** edit `.internal/` by hand except through sync-aligned updates to `status.json` for false-done fixes before sync
@@ -5,32 +5,14 @@ alwaysApply: false
5
5
 
6
6
  # Task Flow — Run (fallback)
7
7
 
8
- **Prefer:** `@task-flow-run` (Claude: `/task-flow-run`) full steps in `.claude/skills/task-flow-run/workflow.md` (same under `.cursor/skills/` after install).
8
+ **Prefer:** `@task-flow-run` — `.claude/skills/task-flow-run/workflow.md`
9
9
 
10
- **Task flow** = RBIN Task Flow. Do not edit `.task-flow/.internal/` by hand.
10
+ ## Critical flow
11
11
 
12
- ## Commands
12
+ 1. **Resolve `manual` first:** read dev-logs + conversation; append Conversation log; mark `done` only when verified.
13
+ 2. **`run next X`:** pending subtasks only; `manual` blocks until dev-log shows complete.
14
+ 3. **Automatable** → `done`; **user must act** → `manual` + dev-log; never `done` until log confirms.
15
+ 4. User reports manual progress **in normal chat** — no separate confirm command.
16
+ 5. Suggest commit via `@rbin-git` — never write git.
13
17
 
14
- | User says | Action |
15
- |-----------|--------|
16
- | `task-flow: run next X` / `run next` | Next X pending subtasks in order (default X=1) |
17
- | `task-flow: run X` | All pending subtasks of task X |
18
- | `task-flow: run X,Y` / `run all` | As labeled |
19
-
20
- Natural language (`work on next 3 subtasks`, `execute all subtasks of task 2`) = same as above.
21
-
22
- ## Critical flow (each subtask)
23
-
24
- 1. Read `status.json` first; load `tasks.json` by pending task ids only if **>50 subtasks** total (see `@task-flow-run` workflow).
25
- 2. **`run X`:** If tasks `1..X-1` have any pending subtask, **stop** and list blockers; do not run X.
26
- 3. Implement per `instructions`; read `.task-flow/contexts/` when referenced; optional `graphify query` if `.task-flow/guides/graphify-out/` exists ([graphify-task-flow.mdc](mdc:.cursor/rules/graphify-task-flow.mdc)).
27
- 4. After each subtask: `status.json` → `done`; `tasks.status.md` → `- [x]` + regenerate 📊 Summary.
28
- 5. Parent task all done → mark task `done` in both files.
29
- 6. Suggest commit via [rbin-git-policy.mdc](mdc:.cursor/rules/rbin-git-policy.mdc) / `@rbin-git` — never write git.
30
-
31
- If blocked: subtask `in_progress` + explain.
32
-
33
- ## More detail
34
-
35
- - Skill workflow: `.claude/skills/task-flow-run/workflow.md`
36
- - Command index: [task-flow-cursor.mdc](mdc:.cursor/rules/task-flow-cursor.mdc) · [task_execution.mdc](mdc:.cursor/rules/task_execution.mdc) (stub)
18
+ **Never during run:** `guides/reports/task-*-implementation.md`.
@@ -8,6 +8,7 @@
8
8
  ├── tasks.input.txt ← defina tasks (`- descrição`)
9
9
  ├── tasks.status.md ← progresso (auto; não editar)
10
10
  ├── contexts/ ← specs, mockups
11
+ ├── dev-logs/ ← passos manuais + log da conversa (IA atualiza)
11
12
  ├── .internal/ ← tasks.json, status.json (sistema)
12
13
  └── guides/ ← documentação e configs
13
14
  ├── AI-PLATFORMS.md
@@ -46,15 +47,23 @@ cd seu-projeto
46
47
  rbin-task-flow init --graphify
47
48
  ```
48
49
 
49
- ### Projeto que já usa Task Flow (atualizar pacote + migrar grafo)
50
+ ### Projeto que já usa Task Flow (subir versão + migrar grafo)
50
51
 
51
52
  ```bash
52
53
  npm install -g rbin-task-flow@latest
53
54
  cd seu-projeto
54
- rbin-task-flow update --graphify
55
+ rbin-task-flow reset --keep-tasks --graphify
55
56
  ```
56
57
 
57
- O `update --graphify` reaplica rules/skills, move `graphify-out/` legado da raiz para `guides/graphify-out/` (se existir) e roda o extract.
58
+ **Manter suas tasks** ao subir versão (não sobrescreve `tasks.input.txt`, `tasks.status.md` nem `.internal/`):
59
+
60
+ ```bash
61
+ npm install -g rbin-task-flow@latest
62
+ cd seu-projeto
63
+ rbin-task-flow reset --keep-tasks
64
+ ```
65
+
66
+ O `reset --keep-tasks --graphify` reaplica rules/skills, move `graphify-out/` legado da raiz para `guides/graphify-out/` (se existir) e roda o extract.
58
67
 
59
68
  ### Só regerar o grafo (sem reinstall do template)
60
69
 
@@ -80,7 +89,8 @@ Guia completo: [guides/GRAPHIFY.md](guides/GRAPHIFY.md).
80
89
  | `task-flow: sync` | — | Complete synchronization: adds new, removes deleted, updates modified, preserves status |
81
90
  | `task-flow: validate` | `all` (default) · `X` · `X,Y` | Deep audit vs codebase; revert false done; append gaps to `tasks.input.txt`; sync |
82
91
  | `task-flow: status` | — | Shows current task status |
83
- | `task-flow: run` | `next X` · `X` · `X,Y` · `all` | Execute pending subtasks: next N in order, one/many tasks, or everything |
92
+ | `task-flow: run` | `next X` · `X` · `X,Y` · `all` | Execute pending subtasks; manual `dev-logs/`, status `manual` |
93
+ | `task-flow: split` | `:3` · `:2` · `:3 50-72` | Plan **N** parallel `run` lines — `:N` required |
84
94
  | `task-flow: estimate` | `X` · `X,Y` · `all` | Time estimate for average developer pace (hours + management buffer) |
85
95
  | `task-flow: report` | `X` · `X,Y` · `all` | Implementation report → `.task-flow/guides/reports/task-X-implementation.md` |
86
96
  | `task-flow: audit` | — | Audits codebase against **coding standards checklist**; full doc on demand |
@@ -110,7 +120,7 @@ Complete synchronization between `tasks.input.txt` and the system:
110
120
  - ✅ Adds new tasks from `tasks.input.txt`
111
121
  - ✅ Removes tasks that were deleted from `tasks.input.txt`
112
122
  - ✅ Updates tasks that were modified in `tasks.input.txt`
113
- - ✅ Preserves status (done/pending) of existing tasks
123
+ - ✅ Preserves status (`done`, `pending`, `manual`) of existing tasks
114
124
  - ✅ Synchronizes status between `status.json` and `tasks.status.md` (ensures they are always aligned)
115
125
 
116
126
  ### `task-flow: validate`
@@ -126,15 +136,28 @@ Audits the **entire codebase** against the **checklist** in [coding_standards.md
126
136
 
127
137
  ## Commands with Task ID
128
138
 
139
+ ### `task-flow: split:N`
140
+ Plans **parallel work across N IAs** (`split:3`, `split:2`, …). **`:N` is required** — plain `split` is invalid.
141
+
142
+ **Examples:**
143
+ - `task-flow: split:3` — all pending, 3 streams
144
+ - `task-flow: split:2 50-72` — range, 2 streams
145
+
146
+ Output: N copy-paste lines `task-flow: run id,id,id` + coordination notes. Invoke: `@task-flow-split`.
147
+
129
148
  ### `task-flow: run next X`
130
- Works on next X pending subtasks in sequential order. Implements and marks as "done".
149
+ Works on next X **pending** subtasks. Resolves `manual` first by reading dev-logs and the current conversation.
150
+
151
+ - **Fully automatable** → `done`
152
+ - **Needs your action** → `manual` + `.task-flow/dev-logs/task-X.Y-manual.md`
153
+ - You report progress **in chat** (no extra command); the AI appends the **Conversation log** and marks `done` when verified
131
154
 
132
155
  **Examples:**
133
- - `task-flow: run next 4` → Next 4 subtasks
134
- - `task-flow: run next` → Next 1 subtask
156
+ - `task-flow: run next 4` → Next 4 pending subtasks
157
+ - `task-flow: run next` → Next 1 pending subtask
135
158
 
136
159
  ### `task-flow: run X` (simplified syntax)
137
- Executes all pending subtasks of a specific task. Implements and marks as "done".
160
+ Executes all **pending** subtasks of a specific task. Stops if a subtask requires manual intervention.
138
161
 
139
162
  **⚠️ Dependency Check:**
140
163
  - Only executes if all previous tasks (1, 2, ..., X-1) are completely finished
File without changes
@@ -33,8 +33,9 @@ Os comandos `task-flow: …` são **os mesmos** em Claude Code, Cursor e Codex.
33
33
  1. Definir tasks: editar `tasks.input.txt` **ou** colocar specs em `contexts/` e rodar `task-flow: from contexts`
34
34
  2. `task-flow: sync`
35
35
  3. `task-flow: status`
36
- 4. `task-flow: run next X` ou `task-flow: run N`
37
- 5. **Você** faz `git commit` (a IA sugere)
36
+ 4. `task-flow: split:3` (opcional N IAs em paralelo) → colar cada `run X,Y,Z` numa sessão
37
+ 5. `task-flow: run next X` ou `task-flow: run N`
38
+ 6. **Você** faz `git commit` (a IA só sugere)
38
39
 
39
40
  Detalhes dos comandos: [README.md](../README.md).
40
41
 
@@ -52,10 +53,10 @@ Detalhes dos comandos: [README.md](../README.md).
52
53
  | `.task-flow/guides/CURSOR.md` | — | ✅ | — |
53
54
  | `.task-flow/guides/coding-standards-full.md` | on demand | on demand (sections only) | on demand |
54
55
  | [OPTIMIZATION-PLAN.md](OPTIMIZATION-PLAN.md) | — | token roadmap | — |
55
- | `.codex/config.toml` | — | — | ✅ (opcional, preservado no update) |
56
+ | `.codex/config.toml` | — | — | ✅ (opcional, preservado no reset --keep-tasks) |
56
57
  | `task-flow-cursor.mdc` | — | ✅ always-on | — |
57
58
  | `rbin-git-policy.mdc` | — | ✅ always-on | — |
58
- | `.claude/skills/` | ✅ (10 skills) | — | — |
59
+ | `.claude/skills/` | ✅ (11 skills) | — | — |
59
60
  | `.cursor/skills/` | — | ✅ (espelho) | — |
60
61
 
61
62
  Por padrão, `.claude/`, `.cursor/`, `.task-flow/`, `CLAUDE.md` e `AGENTS.md` entram no **`.gitignore`** do projeto cliente. Para versionar skills/regras com o time, ajuste o ignore — veja a seção “Versionamento” em cada guia.