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.
- package/.claude/skills/task-flow-report/SKILL.md +3 -1
- package/.claude/skills/task-flow-run/SKILL.md +15 -9
- package/.claude/skills/task-flow-run/workflow.md +94 -34
- package/.claude/skills/task-flow-status/SKILL.md +1 -1
- package/.claude/skills/task-flow-sync/workflow.md +3 -3
- package/.cursor/rules/task-flow-cursor.mdc +3 -0
- package/.cursor/rules/task-flow-sync.mdc +3 -3
- package/.cursor/rules/task_generation.mdc +2 -2
- package/.cursor/rules/task_status.mdc +2 -2
- package/.cursor/rules/task_validate.mdc +3 -2
- package/.cursor/rules/task_work.mdc +8 -26
- package/.task-flow/README.md +22 -9
- package/.task-flow/dev-logs/.gitkeep +0 -0
- package/.task-flow/guides/AI-PLATFORMS.md +2 -2
- package/.task-flow/guides/CODEX.md +5 -3
- package/.task-flow/guides/CURSOR.md +3 -3
- package/.task-flow/guides/GRAPHIFY.md +3 -3
- package/.task-flow/guides/platforms/claude-code.md +1 -1
- package/.task-flow/guides/platforms/cursor.md +10 -20
- package/AGENTS.md +8 -6
- package/README.md +44 -52
- package/bin/cli.js +9 -4
- package/lib/cursor.js +1 -1
- package/lib/gitignore.js +40 -71
- package/lib/install.js +95 -20
- package/lib/profiles.js +2 -2
- package/lib/version.js +1 -1
- package/package.json +1 -1
|
@@ -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
|
|
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
|
|
17
|
-
2.
|
|
18
|
-
3.
|
|
19
|
-
4.
|
|
20
|
-
5.
|
|
21
|
-
6.
|
|
22
|
-
7.
|
|
23
|
-
8.
|
|
24
|
-
9.
|
|
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 (
|
|
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
|
|
17
|
-
`⚠️ Cannot execute task X: complete tasks [list] first. Use task-flow: run Y.`
|
|
18
|
-
3.
|
|
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
|
|
24
|
-
3. If total **>50**: load
|
|
25
|
-
4. If **≤50**:
|
|
26
|
-
|
|
27
|
-
## Per subtask
|
|
28
|
-
|
|
29
|
-
1. Load subtask from `tasks.json
|
|
30
|
-
2.
|
|
31
|
-
3. Implement; verify (tests/build
|
|
32
|
-
4.
|
|
33
|
-
5.
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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
|
|
117
|
+
## Related
|
|
58
118
|
|
|
59
|
-
Cursor fallback
|
|
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;
|
|
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
|
|
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)
|
|
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
|
|
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`
|
|
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`
|
|
8
|
+
**Prefer:** `@task-flow-run` — `.claude/skills/task-flow-run/workflow.md`
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
## Critical flow
|
|
11
11
|
|
|
12
|
-
|
|
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
|
-
|
|
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`.
|
package/.task-flow/README.md
CHANGED
|
@@ -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 (
|
|
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
|
|
55
|
+
rbin-task-flow reset --keep-tasks --graphify
|
|
55
56
|
```
|
|
56
57
|
|
|
57
|
-
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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,
|
|
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`
|
|
51
|
+
**Per subtask (automatable):** implement → `done` → refresh `tasks.status.md` → suggest commit.
|
|
52
52
|
|
|
53
|
-
**
|
|
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:**
|
|
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
|
|
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 | `
|
|
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
|
|
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
|
|
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
|
|
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 `
|
|
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
|
-
- **
|
|
37
|
-
- Migrar para regras completas: `rbin-task-flow
|
|
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 `
|
|
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
|
|
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` |
|
|
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`
|
|
251
|
+
## 11. `.gitignore` no projeto
|
|
251
252
|
|
|
252
|
-
**Padrão:** `
|
|
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
|
|
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/` |
|