rbin-task-flow 1.27.1 → 1.30.3

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.
@@ -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/`)
@@ -34,6 +35,8 @@ alwaysApply: true
34
35
 
35
36
  Natural language (`work on next 3 subtasks`) = same as `task-flow: run next 3`.
36
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
+
37
40
  ## Git (always)
38
41
 
39
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
 
@@ -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
 
@@ -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,7 @@ 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` |
84
93
  | `task-flow: split` | `:3` · `:2` · `:3 50-72` | Plan **N** parallel `run` lines — `:N` required |
85
94
  | `task-flow: estimate` | `X` · `X,Y` · `all` | Time estimate for average developer pace (hours + management buffer) |
86
95
  | `task-flow: report` | `X` · `X,Y` · `all` | Implementation report → `.task-flow/guides/reports/task-X-implementation.md` |
@@ -111,7 +120,7 @@ Complete synchronization between `tasks.input.txt` and the system:
111
120
  - ✅ Adds new tasks from `tasks.input.txt`
112
121
  - ✅ Removes tasks that were deleted from `tasks.input.txt`
113
122
  - ✅ Updates tasks that were modified in `tasks.input.txt`
114
- - ✅ Preserves status (done/pending) of existing tasks
123
+ - ✅ Preserves status (`done`, `pending`, `manual`) of existing tasks
115
124
  - ✅ Synchronizes status between `status.json` and `tasks.status.md` (ensures they are always aligned)
116
125
 
117
126
  ### `task-flow: validate`
@@ -137,14 +146,18 @@ Plans **parallel work across N IAs** (`split:3`, `split:2`, …). **`:N` is requ
137
146
  Output: N copy-paste lines `task-flow: run id,id,id` + coordination notes. Invoke: `@task-flow-split`.
138
147
 
139
148
  ### `task-flow: run next X`
140
- 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
141
154
 
142
155
  **Examples:**
143
- - `task-flow: run next 4` → Next 4 subtasks
144
- - `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
145
158
 
146
159
  ### `task-flow: run X` (simplified syntax)
147
- 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.
148
161
 
149
162
  **⚠️ Dependency Check:**
150
163
  - Only executes if all previous tasks (1, 2, ..., X-1) are completely finished
File without changes
@@ -53,13 +53,13 @@ Detalhes dos comandos: [README.md](../README.md).
53
53
  | `.task-flow/guides/CURSOR.md` | — | ✅ | — |
54
54
  | `.task-flow/guides/coding-standards-full.md` | on demand | on demand (sections only) | on demand |
55
55
  | [OPTIMIZATION-PLAN.md](OPTIMIZATION-PLAN.md) | — | token roadmap | — |
56
- | `.codex/config.toml` | — | — | ✅ (opcional, preservado no update) |
56
+ | `.codex/config.toml` | — | — | ✅ (opcional, preservado no reset --keep-tasks) |
57
57
  | `task-flow-cursor.mdc` | — | ✅ always-on | — |
58
58
  | `rbin-git-policy.mdc` | — | ✅ always-on | — |
59
59
  | `.claude/skills/` | ✅ (11 skills) | — | — |
60
60
  | `.cursor/skills/` | — | ✅ (espelho) | — |
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.
62
+ Por padrão, **`.task-flow`** é acrescentado ao final do **`.gitignore`** do projeto cliente.
63
63
 
64
64
  ---
65
65
 
@@ -46,11 +46,13 @@ Rule: `.cursor/rules/task_split.mdc`
46
46
 
47
47
  See AGENTS.md **Run** section. Prefer `.claude/skills/task-flow-run/workflow.md`; fallback: `.cursor/rules/task_work.mdc`.
48
48
 
49
- **Dependency:** `run N` only if tasks `1..N-1` fully done.
49
+ **Dependency:** `run N` only if tasks `1..N-1` fully `done` (no `manual` blocking).
50
50
 
51
- **Per subtask:** implement → `done` in `status.json` → refresh `tasks.status.md` → suggest commit.
51
+ **Per subtask (automatable):** implement → `done` → refresh `tasks.status.md` → suggest commit.
52
52
 
53
- **Blocked:** set `in_progress`, explain.
53
+ **Manual intervention:** implement what you can → `manual` → dev-log → user reports in chat → AI updates Conversation log → `done` when verified.
54
+
55
+ **Never during run:** `guides/reports/task-*-implementation.md`.
54
56
 
55
57
  ---
56
58
 
@@ -13,7 +13,7 @@ Verify: `rg 'alwaysApply: true' .cursor/rules` → only the two files above.
13
13
 
14
14
  **Install profiles:** `rbin-task-flow init --profile minimal` → 2 always-on rules + skills only; `standard` (default) → all `.mdc` rules. Saved in `.task-flow/install-meta.json`.
15
15
 
16
- **Team git:** `init --share-ai-config` `.cursor/skills/` and `.cursor/rules/` not gitignored (default ignores all `.cursor/`).
16
+ **Team git:** `.task-flow` appended to `.gitignore`; other AI config files can be committed.
17
17
 
18
18
  ---
19
19
 
@@ -78,12 +78,12 @@ Only during `run` / `validate` when `.task-flow/guides/graphify-out/` exists. Do
78
78
 
79
79
  | Issue | Fix |
80
80
  |-------|-----|
81
- | Ignores task-flow | `rbin-task-flow update` |
81
+ | Ignores task-flow | `rbin-task-flow reset --keep-tasks` |
82
82
  | Run workflow wrong | **`@task-flow-run`** — avoid `@task_work` |
83
83
  | Rule not applied | `@task-flow-<command>` for that workflow |
84
84
  | Standards missing | File under `src/` or `@rbin-coding-standards` |
85
85
  | Context too large | Fewer `src/` files in chat; skills not full docs |
86
- | Wrong always-on count | `update`; don't set `graphify.mdc` always-on |
86
+ | Wrong always-on count | `reset --keep-tasks`; don't set `graphify.mdc` always-on |
87
87
 
88
88
  ---
89
89
 
@@ -31,7 +31,7 @@ Graphify ([graphifyy](https://pypi.org/project/graphifyyy/)) cria um **grafo de
31
31
  1. Copia **`.cursor/rules/graphify-task-flow.mdc`** — `alwaysApply: false` (não compete com `task_work`, etc.).
32
32
  2. Grafo em **`.task-flow/guides/graphify-out/`** (já coberto pelo `.task-flow/` no `.gitignore`; remove entrada legada `graphify-out/` na raiz).
33
33
  3. Se existir **`.cursor/rules/graphify.mdc`** do `graphify cursor install` (upstream com `alwaysApply: true`), o instalador **desativa** `alwaysApply` para economizar contexto.
34
- 4. Com **`--graphify`** em `init`, `update` ou **`reset`**, roda `graphify extract . --backend claude-cli --out .task-flow/guides` se o CLI estiver no PATH (usa assinatura Claude Code — sem API key separada).
34
+ 4. Com **`--graphify`** em `init` ou **`reset`**, roda `graphify extract . --backend claude-cli --out .task-flow/guides` se o CLI estiver no PATH (usa assinatura Claude Code — sem API key separada).
35
35
 
36
36
  **Não** rodamos `graphify claude install` / `graphify cursor install` automaticamente — o install upstream força `graphify.mdc` always-on e incham `CLAUDE.md` / `AGENTS.md`.
37
37
 
@@ -41,7 +41,7 @@ Graphify ([graphifyy](https://pypi.org/project/graphifyyy/)) cria um **grafo de
41
41
 
42
42
  ```bash
43
43
  cd seu-projeto
44
- rbin-task-flow reset --graphify # ou init/update --graphify; recria .task-flow + grafo
44
+ rbin-task-flow reset --keep-tasks --graphify # ou init --graphify; recria template + grafo
45
45
  task-flow: sync
46
46
  task-flow: run next 3 # IA usa grafo só ao implementar
47
47
  # você: git commit
@@ -89,7 +89,7 @@ task-flow: run next 2 — se .task-flow/guides/graphify-out/ existir, graphify q
89
89
  | Primeiro setup | `rbin-task-flow init --graphify` ou `graphify extract . --backend claude-cli --out .task-flow/guides` |
90
90
  | Reset completo (tasks + template + grafo) | `rbin-task-flow reset --graphify` |
91
91
  | Refactor grande após vários `run` | `graphify update .` ou `graphify extract . --backend claude-cli --out .task-flow/guides` |
92
- | `task-flow: update` | Reaplica `graphify-task-flow.mdc` e pode rebaixar `graphify.mdc` |
92
+ | `rbin-task-flow reset --keep-tasks` | Reaplica `graphify-task-flow.mdc` e pode rebaixar `graphify.mdc` |
93
93
 
94
94
  ---
95
95
 
@@ -36,7 +36,7 @@ projeto/
36
36
  └── .task-flow/
37
37
  ```
38
38
 
39
- Após `rbin-task-flow init` ou `update`, use **`/task-flow-sync`**, **`/task-flow-run`**, etc. Reinicie o Claude Code se `.claude/skills/` foi criado pela primeira vez na sessão.
39
+ Após `rbin-task-flow init` ou `reset --keep-tasks`, use **`/task-flow-sync`**, **`/task-flow-run`**, etc. Reinicie o Claude Code se `.claude/skills/` foi criado pela primeira vez na sessão.
40
40
 
41
41
  ---
42
42
 
@@ -33,8 +33,8 @@ Documentação: [Cursor Rules](https://cursor.com/docs/context/rules) · Referê
33
33
  | **minimal** | `rbin-task-flow init --profile minimal` | Só `task-flow-cursor.mdc` + `rbin-git-policy.mdc` + skills |
34
34
 
35
35
  - **minimal:** ≤2 always-on; workflows só via `@task-flow-*` (sem glob `coding_standards`, `task_work`, etc.).
36
- - **update** sem `--profile` reaplica o profile salvo em `.task-flow/install-meta.json`.
37
- - Migrar para regras completas: `rbin-task-flow update --profile standard`.
36
+ - **reset** sem `--profile` reaplica o profile salvo em `.task-flow/install-meta.json`.
37
+ - Migrar para regras completas: `rbin-task-flow reset --profile standard --keep-tasks`.
38
38
 
39
39
  ---
40
40
 
@@ -111,7 +111,7 @@ Cursor suporta o mesmo formato que Claude Code: `.cursor/skills/<nome>/SKILL.md`
111
111
 
112
112
  O `rbin-task-flow init` copia **11 skills** para `.cursor/skills/` (mesmo conteúdo que `.claude/skills/`). No Agent, use `@task-flow-split`, `@task-flow-run`, `@task-flow-sync`, etc.
113
113
 
114
- Após `rbin-task-flow init` ou `update`, use `@task-flow-*` no Agent. Para sync: `@task-flow-sync` (não `task_generation` isolado).
114
+ Após `rbin-task-flow init` ou `reset --keep-tasks`, use `@task-flow-*` no Agent. Para sync: `@task-flow-sync` (não `task_generation` isolado).
115
115
 
116
116
  ---
117
117
 
@@ -201,7 +201,7 @@ Coloque PNG/PDF/MD em `.task-flow/contexts/`. Nas subtarefas geradas, instruçõ
201
201
  | Stubs `task_work` / `task_execution` | ✅ |
202
202
  | Unificar git em `rbin-git-policy` | ✅ |
203
203
 
204
- **No seu projeto:** `rbin-task-flow update` reaplica o template. Evite reativar `alwaysApply: true` em `graphify.mdc` upstream.
204
+ **No seu projeto:** `rbin-task-flow reset --keep-tasks` reaplica o template. Evite reativar `alwaysApply: true` em `graphify.mdc` upstream.
205
205
 
206
206
  **Roadmap:** [OPTIMIZATION-PLAN.md](../OPTIMIZATION-PLAN.md) · tarefas: [OPTIMIZATION-IMPLEMENTATION-TASKS.md](../OPTIMIZATION-IMPLEMENTATION-TASKS.md).
207
207
 
@@ -238,29 +238,19 @@ Cursor também pode ler `AGENTS.md` em alguns fluxos; no RBIN ele é focado em *
238
238
 
239
239
  | Comando CLI | Uso com Cursor |
240
240
  |-------------|----------------|
241
- | `rbin-task-flow init` | Copia rules + task-flow |
242
- | `rbin-task-flow update` | Atualiza rules; preserva `.internal/` |
241
+ | `rbin-task-flow init` | Primeira instalação (rules + task-flow) |
243
242
  | `rbin-task-flow reset` | Recria `.task-flow` do zero |
243
+ | `rbin-task-flow reset --keep-tasks` | Sobe versão sem sobrescrever `tasks.input.txt`, `tasks.status.md`, `.internal/` |
244
244
  | `rbin-task-flow reset --graphify` | Reset + `graphify extract . --backend claude-cli` |
245
+ | `rbin-task-flow reset --keep-tasks --graphify` | Upgrade + mantém tasks + grafo |
245
246
 
246
247
  O Agent executa o workflow (`task-flow: audit`, `task-flow: run`, etc.); o CLI prepara arquivos.
247
248
 
248
249
  ---
249
250
 
250
- ## 11. `.gitignore` discreto vs time
251
+ ## 11. `.gitignore` no projeto
251
252
 
252
- **Padrão:** `rbin-task-flow init` ignora `.cursor/` inteiro (skills e rules ficam locais).
253
-
254
- **Time:** `rbin-task-flow init --share-ai-config` — **não** ignora `.cursor/skills/` nem `.cursor/rules/`; ignora só `.cursor/settings.json` e `*.local.mdc`. O bloco no `.gitignore` explica o trade-off **tokens vs consistência do time**.
255
-
256
- | Estratégia | Comando | Prós | Contras |
257
- |------------|---------|------|---------|
258
- | Local (padrão) | `init` | Repo limpo; cada dev com setup próprio | Sem sync de rules/skills |
259
- | Time | `init --share-ai-config` | Mesmo Task Flow para todos | Mais arquivos de IA no git; tokens por dev ao usar rules |
260
-
261
- `update` sem flag reaplica a opção salva em `.task-flow/install-meta.json` (`shareAiConfig`).
262
-
263
- Para open source: documente no README — contribuidores podem usar `--share-ai-config` ou `init` local.
253
+ **Padrão:** `init` / `reset` acrescentam `.task-flow` ao final do `.gitignore`.
264
254
 
265
255
  ---
266
256
 
@@ -268,7 +258,7 @@ Para open source: documente no README — contribuidores podem usar `--share-ai-
268
258
 
269
259
  | Problema | Causa provável | Ação |
270
260
  |----------|----------------|------|
271
- | Agent ignora `task-flow:` | Rules não instaladas / projeto errado | `rbin-task-flow update` |
261
+ | Agent ignora `task-flow:` | Rules não instaladas / projeto errado | `rbin-task-flow reset --keep-tasks` |
272
262
  | Não atualiza `tasks.status.md` | Só mexeu em `status.json` | `@task-flow-run` — regenerar Summary |
273
263
  | `run 3` não roda | Tasks 1–2 incompletas | `task-flow: status` |
274
264
  | Coding standards ignorados | Checklist não no contexto | `@rbin-coding-standards` ou abrir arquivo em `src/` |