@leeovery/claude-technical-workflows 2.0.54 → 2.1.0

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.
Files changed (36) hide show
  1. package/README.md +34 -7
  2. package/agents/implementation-task-executor.md +1 -1
  3. package/agents/planning-dependency-grapher.md +140 -0
  4. package/agents/planning-phase-designer.md +1 -1
  5. package/agents/planning-task-author.md +1 -1
  6. package/agents/planning-task-designer.md +1 -1
  7. package/agents/{chain-verifier.md → review-task-verifier.md} +3 -3
  8. package/commands/link-dependencies.md +5 -5
  9. package/commands/workflow/view-plan.md +5 -5
  10. package/package.json +1 -1
  11. package/skills/technical-implementation/SKILL.md +4 -2
  12. package/skills/technical-implementation/references/environment-setup.md +3 -3
  13. package/skills/technical-implementation/references/steps/task-loop.md +2 -2
  14. package/skills/technical-planning/SKILL.md +17 -9
  15. package/skills/technical-planning/references/dependencies.md +3 -3
  16. package/skills/technical-planning/references/output-formats/linear/about.md +48 -0
  17. package/skills/technical-planning/references/output-formats/linear/authoring.md +82 -0
  18. package/skills/technical-planning/references/output-formats/linear/graph.md +68 -0
  19. package/skills/technical-planning/references/output-formats/linear/reading.md +35 -0
  20. package/skills/technical-planning/references/output-formats/linear/updating.md +25 -0
  21. package/skills/technical-planning/references/output-formats/local-markdown/about.md +40 -0
  22. package/skills/technical-planning/references/output-formats/local-markdown/authoring.md +64 -0
  23. package/skills/technical-planning/references/output-formats/local-markdown/graph.md +44 -0
  24. package/skills/technical-planning/references/output-formats/local-markdown/reading.md +29 -0
  25. package/skills/technical-planning/references/output-formats/local-markdown/updating.md +22 -0
  26. package/skills/technical-planning/references/output-formats.md +6 -30
  27. package/skills/technical-planning/references/steps/analyze-task-graph.md +89 -0
  28. package/skills/technical-planning/references/steps/author-tasks.md +3 -3
  29. package/skills/technical-planning/references/steps/review-integrity.md +4 -5
  30. package/skills/technical-planning/references/task-design.md +10 -0
  31. package/skills/technical-review/SKILL.md +3 -3
  32. package/skills/technical-review/references/review-checklist.md +10 -10
  33. package/skills/technical-planning/references/output-formats/output-backlog-md.md +0 -369
  34. package/skills/technical-planning/references/output-formats/output-beads.md +0 -455
  35. package/skills/technical-planning/references/output-formats/output-linear.md +0 -328
  36. package/skills/technical-planning/references/output-formats/output-local-markdown.md +0 -318
@@ -0,0 +1,68 @@
1
+ # Linear: Task Graph
2
+
3
+ Linear natively supports both priority levels and blocking relationships between issues. Both are used to determine execution order.
4
+
5
+ This file is used by the graphing agent after all tasks have been authored. The agent receives the complete plan and establishes priority and dependencies across tasks.
6
+
7
+ ## Priority
8
+
9
+ Linear uses fixed numeric priority values (0–4). The API normalises these to the workspace's display labels.
10
+
11
+ | Value | Level |
12
+ |-------|-------|
13
+ | `1` | Urgent |
14
+ | `2` | High |
15
+ | `3` | Medium |
16
+ | `4` | Low |
17
+ | `0` | No priority |
18
+
19
+ Lower number = higher priority. `0` means unset.
20
+
21
+ ### Setting Priority
22
+
23
+ ```
24
+ linear_updateIssue(
25
+ issueId: "{issue_id}",
26
+ priority: {priority_level}
27
+ )
28
+ ```
29
+
30
+ ### Removing Priority
31
+
32
+ ```
33
+ linear_updateIssue(
34
+ issueId: "{issue_id}",
35
+ priority: 0
36
+ )
37
+ ```
38
+
39
+ ## Dependencies
40
+
41
+ ### Adding a Dependency
42
+
43
+ To declare that one task depends on another (is blocked by it):
44
+
45
+ ```
46
+ linear_createIssueRelation(
47
+ issueId: "{dependent_issue_id}",
48
+ relatedIssueId: "{blocking_issue_id}",
49
+ type: "blocks"
50
+ )
51
+ ```
52
+
53
+ A task can have multiple dependencies. Call `linear_createIssueRelation` for each one.
54
+
55
+ ### Removing a Dependency
56
+
57
+ Delete the issue relation via MCP:
58
+
59
+ ```
60
+ linear_deleteIssueRelation(issueRelationId: "{relation_id}")
61
+ ```
62
+
63
+ To find the relation ID, query the issue's relations first:
64
+
65
+ ```
66
+ linear_getIssue(issueId: "{issue_id}")
67
+ # Look for the relation in the issue's relations list
68
+ ```
@@ -0,0 +1,35 @@
1
+ # Linear: Reading
2
+
3
+ ## Listing Tasks
4
+
5
+ To retrieve all tasks for a plan:
6
+
7
+ ```
8
+ linear_getIssues(projectId: "{project_id}")
9
+ ```
10
+
11
+ Each issue in the response includes: id, title, state (status), priority, labels (phase grouping), and blocking relationships (`blockedByIssues`, `blockingIssues`).
12
+
13
+ Use label filters to narrow by phase, or priority/state filters to scope the query further — Linear's API supports these natively.
14
+
15
+ ## Extracting a Task
16
+
17
+ Query Linear MCP for the issue by ID:
18
+
19
+ ```
20
+ linear_getIssue(issueId: "{issue_id}")
21
+ ```
22
+
23
+ The response includes title, description, status, priority, labels, and blocking relationships.
24
+
25
+ ## Next Available Task
26
+
27
+ To find the next task to implement:
28
+
29
+ 1. Query Linear MCP for project issues: `linear_getIssues(projectId: "{project_id}")`
30
+ 2. Filter to issues whose state is not "completed" or "cancelled"
31
+ 3. Exclude issues where any `blockedByIssues` entry has a state other than `completed`
32
+ 4. Filter by phase label — complete all `phase-1` issues before `phase-2`
33
+ 5. Within a phase, order by priority (Urgent > High > Medium > Low)
34
+ 6. The first match is the next task
35
+ 7. If no incomplete issues remain, all tasks are complete.
@@ -0,0 +1,25 @@
1
+ # Linear: Updating
2
+
3
+ ## Status Transitions
4
+
5
+ Update the issue state in Linear via MCP:
6
+
7
+ | Transition | How |
8
+ |------------|-----|
9
+ | Complete | Set state to the team's "Done" workflow state |
10
+ | Skipped | Set state to "Cancelled" + add comment explaining why |
11
+ | Cancelled | Set state to "Cancelled" |
12
+ | In Progress | Set state to "In Progress" |
13
+
14
+ ```
15
+ linear_updateIssue(issueId: "{id}", stateId: "{state_id}")
16
+ ```
17
+
18
+ ## Updating Task Content
19
+
20
+ Update issue properties via MCP:
21
+
22
+ - **Title**: `linear_updateIssue(issueId: "{id}", title: "{new title}")`
23
+ - **Description**: `linear_updateIssue(issueId: "{id}", description: "{new description}")`
24
+ - **Priority**: `linear_updateIssue(issueId: "{id}", priority: {level})`
25
+ - **Labels**: `linear_updateIssue(issueId: "{id}", labelIds: ["{label_id}", ...])`
@@ -0,0 +1,40 @@
1
+ # Local Markdown
2
+
3
+ *Output format adapter for **[technical-planning](../../../SKILL.md)***
4
+
5
+ ---
6
+
7
+ Use this format for simple features or when you want everything in version-controlled markdown files.
8
+
9
+ ## Benefits
10
+
11
+ - No external tools or dependencies required
12
+ - Human-readable and easy to edit
13
+ - Works offline with any text editor
14
+ - Simplest setup — just create markdown files
15
+
16
+ ## Setup
17
+
18
+ No external tools required. This format uses plain markdown files stored in the repository.
19
+
20
+ ## Structure Mapping
21
+
22
+ | Concept | Local Markdown Entity |
23
+ |---------|-----------------------|
24
+ | Topic | Directory (`docs/workflow/planning/{topic}/`) |
25
+ | Phase | Encoded in task ID (`{topic}-{phase}-{seq}`) |
26
+ | Task | Markdown file (`{task-id}.md`) |
27
+ | Dependency | Task ID reference in frontmatter (no native blocking) |
28
+
29
+ ## Output Location
30
+
31
+ Tasks are stored as individual markdown files in a `{topic}/` subdirectory under the planning directory:
32
+
33
+ ```
34
+ docs/workflow/planning/{topic}/
35
+ ├── {topic}-1-1.md # Phase 1, task 1
36
+ ├── {topic}-1-2.md # Phase 1, task 2
37
+ └── {topic}-2-1.md # Phase 2, task 1
38
+ ```
39
+
40
+ Task filename = task ID for easy lookup.
@@ -0,0 +1,64 @@
1
+ # Local Markdown: Authoring
2
+
3
+ ## Task Storage
4
+
5
+ Each task is written to `docs/workflow/planning/{topic}/{task-id}.md` — a markdown file with frontmatter and a description body.
6
+
7
+ ```markdown
8
+ ---
9
+ id: {topic}-{phase}-{seq}
10
+ phase: {phase-number}
11
+ status: pending
12
+ created: YYYY-MM-DD
13
+ ---
14
+
15
+ # {Task Title}
16
+
17
+ {Task description content}
18
+ ```
19
+
20
+ **Required**: title (`# {Task Title}`) and description (body content). Everything else supports the format's storage mechanics.
21
+
22
+ ## Task Properties
23
+
24
+ ### Status
25
+
26
+ Stored in frontmatter. Defaults to `pending` if omitted.
27
+
28
+ | Status | Meaning |
29
+ |--------|---------|
30
+ | `pending` | Task has been authored but not started |
31
+ | `in-progress` | Task is currently being worked on |
32
+ | `completed` | Task is done |
33
+ | `skipped` | Task was deliberately skipped |
34
+ | `cancelled` | Task is no longer needed |
35
+
36
+ ### Phase Grouping
37
+
38
+ Phases are encoded in the task ID: `{topic}-{phase}-{seq}`. The `phase` frontmatter field also stores the phase number for querying.
39
+
40
+ ### Labels / Tags (optional)
41
+
42
+ Add a `tags` field to frontmatter if additional categorisation is needed:
43
+
44
+ ```yaml
45
+ tags: [edge-case, needs-info]
46
+ ```
47
+
48
+ ## Flagging
49
+
50
+ In the task file, add a **Needs Clarification** section:
51
+
52
+ ```markdown
53
+ **Needs Clarification**:
54
+ - What's the rate limit threshold?
55
+ - Per-user or per-IP?
56
+ ```
57
+
58
+ ## Cleanup (Restart)
59
+
60
+ Delete the task detail directory for this topic:
61
+
62
+ ```bash
63
+ rm -rf docs/workflow/planning/{topic}/
64
+ ```
@@ -0,0 +1,44 @@
1
+ # Local Markdown: Task Graph
2
+
3
+ Local markdown has no native dependency or priority engine. Both are stored as frontmatter fields on task files and used during task selection to determine execution order.
4
+
5
+ This file is used by the graphing agent after all tasks have been authored. The agent receives the complete plan and establishes priority and dependencies across tasks.
6
+
7
+ ## Priority
8
+
9
+ Any positive integer. Lower number = higher priority. `0` means no priority (unset).
10
+
11
+ ### Setting Priority
12
+
13
+ Add or update the `priority` field in frontmatter:
14
+
15
+ ```yaml
16
+ priority: 2
17
+ ```
18
+
19
+ ### Removing Priority
20
+
21
+ Set `priority: 0` or remove the `priority` field from frontmatter entirely.
22
+
23
+ ## Dependencies
24
+
25
+ ### Adding a Dependency
26
+
27
+ Add the blocking task's ID to the `depends_on` field in the dependent task's frontmatter:
28
+
29
+ ```yaml
30
+ depends_on:
31
+ - {topic}-1-2
32
+ ```
33
+
34
+ A task can depend on multiple tasks:
35
+
36
+ ```yaml
37
+ depends_on:
38
+ - {topic}-1-2
39
+ - {topic}-1-3
40
+ ```
41
+
42
+ ### Removing a Dependency
43
+
44
+ Remove the task ID from the `depends_on` field. If the field becomes empty, remove it entirely.
@@ -0,0 +1,29 @@
1
+ # Local Markdown: Reading
2
+
3
+ ## Listing Tasks
4
+
5
+ To retrieve all tasks for a plan:
6
+
7
+ 1. List all `.md` files in `docs/workflow/planning/{topic}/` (excluding the Plan Index)
8
+ 2. Read each file's frontmatter to extract: `id`, `phase`, `status`, `priority`, `depends_on`
9
+ 3. Read the first heading for the task title
10
+
11
+ This provides the summary-level data needed for graphing, progress overview, or any operation that needs the full task set.
12
+
13
+ ## Extracting a Task
14
+
15
+ To read a specific task, read the file at `docs/workflow/planning/{topic}/{task-id}.md`.
16
+
17
+ The task file is self-contained — frontmatter holds id, phase, and status. The body contains the title and full description.
18
+
19
+ ## Next Available Task
20
+
21
+ To find the next task to implement:
22
+
23
+ 1. List task files in `docs/workflow/planning/{topic}/`
24
+ 2. Filter to tasks where `status` is `pending` or `in-progress` (or missing — treat as `pending`)
25
+ 3. If any tasks have `depends_on`, check each referenced task's `status` — exclude the task unless all dependencies have `status: completed`
26
+ 4. Order by phase number (from task ID: `{topic}-{phase}-{seq}`) — complete all earlier phases first
27
+ 5. Within a phase, order by `priority` if present (lower number = higher priority), then by sequence number
28
+ 6. The first match is the next task
29
+ 7. If no incomplete tasks remain, all tasks are complete.
@@ -0,0 +1,22 @@
1
+ # Local Markdown: Updating
2
+
3
+ ## Status Transitions
4
+
5
+ Update the `status` field in the task file frontmatter at `docs/workflow/planning/{topic}/{task-id}.md`:
6
+
7
+ | Transition | Value |
8
+ |------------|-------|
9
+ | Complete | `status: completed` |
10
+ | Skipped | `status: skipped` |
11
+ | Cancelled | `status: cancelled` |
12
+ | In Progress | `status: in-progress` |
13
+
14
+ ## Updating Task Content
15
+
16
+ Edit the task file directly:
17
+
18
+ - **Title**: Change the `# {Title}` heading in the body
19
+ - **Description**: Edit the body content below the title
20
+ - **Priority**: Set or change the `priority:` field in frontmatter
21
+ - **Tags**: Set or change the `tags:` field in frontmatter
22
+ - **Dependencies**: See [graph.md](graph.md)
@@ -4,28 +4,28 @@
4
4
 
5
5
  ---
6
6
 
7
- Plans can be stored in different formats.
7
+ Plans can be stored in different formats. Each format is a directory of 5 files split by concern (about, authoring, reading, updating, graph).
8
8
 
9
- **IMPORTANT**: Only offer formats listed below. Do not invent or suggest formats that don't have corresponding `output-*.md` files in the [output-formats/](output-formats/) directory.
9
+ **IMPORTANT**: Only offer formats listed below. Do not invent or suggest formats that don't have corresponding directories in the [output-formats/](output-formats/) directory.
10
10
 
11
11
  ## Available Formats
12
12
 
13
13
  ### Local Markdown
14
14
  format: `local-markdown`
15
15
 
16
- adapter: [output-local-markdown.md](output-formats/output-local-markdown.md)
16
+ adapter: [local-markdown/](output-formats/local-markdown/)
17
17
 
18
18
 
19
- Single markdown file per topic containing all phases, tasks, and progress tracking inline. No external tools or setup required.
19
+ Plan Index File with task detail stored as individual markdown files in a `{topic}/` subdirectory. No external tools or setup required.
20
20
 
21
21
  - **Pros**: Zero setup, works offline, human-readable, easy to edit in any text editor
22
- - **Cons**: No visual board, everything in one file can get long for complex features, no dependency graph
22
+ - **Cons**: No visual board, everything in markdown can get long for complex features, no dependency graph
23
23
  - **Best for**: Simple features, small plans, quick iterations
24
24
 
25
25
  ### Linear
26
26
  format: `linear`
27
27
 
28
- adapter: [output-linear.md](output-formats/output-linear.md)
28
+ adapter: [linear/](output-formats/linear/)
29
29
 
30
30
 
31
31
  Tasks managed as Linear issues within a Linear project. A thin Plan Index File points to the Linear project; Linear is the source of truth.
@@ -33,27 +33,3 @@ Tasks managed as Linear issues within a Linear project. A thin Plan Index File p
33
33
  - **Pros**: Visual tracking, team collaboration, real-time updates, integrates with existing Linear workflows
34
34
  - **Cons**: Requires Linear account and MCP server, external dependency, not fully local
35
35
  - **Best for**: Teams already using Linear, collaborative projects needing shared visibility
36
-
37
- ### Backlog.md
38
- format: `backlog-md`
39
-
40
- adapter: [output-backlog-md.md](output-formats/output-backlog-md.md)
41
-
42
-
43
- Individual task files in a `backlog/` directory with a local Kanban board. Each task is a self-contained markdown file with frontmatter for status, priority, labels, and dependencies.
44
-
45
- - **Pros**: Visual Kanban (terminal + web), individual task files for focused editing, version-controlled, MCP integration, auto-commit
46
- - **Cons**: Requires npm install, flat directory (phases via labels not folders), external tool dependency
47
- - **Best for**: Solo developers wanting a local Kanban board with per-task files
48
-
49
- ### Beads
50
- format: `beads`
51
-
52
- adapter: [output-beads.md](output-formats/output-beads.md)
53
-
54
-
55
- Git-backed graph issue tracker with hierarchical tasks (epics → phases → tasks) and native dependency management. Uses JSONL storage with a CLI interface.
56
-
57
- - **Pros**: Native dependency graph, `bd ready` surfaces unblocked work, hierarchical task structure, multi-agent coordination, hash-based IDs prevent merge conflicts
58
- - **Cons**: Requires CLI install, JSONL not human-editable, learning curve, less familiar tooling
59
- - **Best for**: Complex multi-phase features with many dependencies, AI-agent-driven workflows
@@ -0,0 +1,89 @@
1
+ # Analyze Task Graph
2
+
3
+ *Reference for **[technical-planning](../../SKILL.md)***
4
+
5
+ ---
6
+
7
+ This step uses the `planning-dependency-grapher` agent (`.claude/agents/planning-dependency-grapher.md`) to analyze all authored tasks, establish internal dependencies, assign priorities, and detect cycles. You invoke the agent, present its output, and handle the approval gate.
8
+
9
+ ---
10
+
11
+ ## Analyze Dependencies and Priorities
12
+
13
+ Orient the user:
14
+
15
+ > "All tasks are authored. Now I'll analyze internal dependencies and priorities across the full plan."
16
+
17
+ Read **[output-formats.md](../output-formats.md)**, find the entry matching the `format:` field in the Plan Index File, and load the format's **[reading.md](../output-formats/{format}/reading.md)** and **[graph.md](../output-formats/{format}/graph.md)**.
18
+
19
+ ### Invoke the Agent
20
+
21
+ Invoke `planning-dependency-grapher` with these file paths:
22
+
23
+ 1. **Plan Index File path**: `docs/workflow/planning/{topic}.md`
24
+ 2. **reading.md**: the format's reading reference loaded above
25
+ 3. **graph.md**: the format's graph reference loaded above
26
+
27
+ The agent clears any existing dependencies/priorities, analyzes all tasks, and — if no cycles — applies the new graph data directly. It returns a structured summary of what was done.
28
+
29
+ ---
30
+
31
+ ## Review and Approve
32
+
33
+ #### If the agent reports no changes needed (`STATUS: no-changes`)
34
+
35
+ The natural task order is already correct. Present this to the user:
36
+
37
+ > "I've analyzed all {M} tasks and the natural execution order is already correct — no explicit dependencies or priorities are needed.
38
+ >
39
+ > {notes from agent output}"
40
+
41
+ > **To proceed:**
42
+ > - **`y`/`yes`** — Confirmed.
43
+ > - **Or tell me what to change.**
44
+
45
+ **STOP.** Wait for the user's response.
46
+
47
+ #### If the agent reports a cycle (`STATUS: blocked`)
48
+
49
+ No changes were applied. Present the cycle to the user:
50
+
51
+ > "The dependency analysis found a circular dependency:
52
+ >
53
+ > {cycle chain from agent output}
54
+ >
55
+ > This must be resolved before continuing. The cycle usually means two tasks each assume the other is done first — one needs to be restructured or the dependency removed."
56
+
57
+ **STOP.** Wait for the user to decide how to resolve. Options include adjusting task scope, merging tasks, or removing a dependency. Re-invoke the agent after changes.
58
+
59
+ #### If the agent applied changes successfully (`STATUS: complete`)
60
+
61
+ Dependencies and priorities have already been written to the task files. Present the summary:
62
+
63
+ > "I've analyzed and applied dependencies and priorities across all {M} tasks:
64
+ >
65
+ > **Dependencies** ({count} relationships):
66
+ > {dependency list from agent output}
67
+ >
68
+ > **Priorities**:
69
+ > {priority list from agent output}
70
+ >
71
+ > {any notes from agent output}"
72
+
73
+ > **To proceed:**
74
+ > - **`y`/`yes`** — Approved.
75
+ > - **Or tell me what to change.**
76
+
77
+ **STOP.** Wait for the user's response.
78
+
79
+ #### If the user provides feedback
80
+
81
+ Re-invoke `planning-dependency-grapher` with all original inputs PLUS:
82
+ - **Previous output**: the current analysis
83
+ - **User feedback**: what to change
84
+
85
+ The agent will clear all existing graph data and re-analyze from scratch. Present the revised analysis in full. Ask the same choice again. Repeat until approved.
86
+
87
+ #### If approved
88
+
89
+ Commit: `planning({topic}): analyze task dependencies and priorities`
@@ -21,11 +21,11 @@ Invoke `planning-task-author` with these file paths:
21
21
  5. **All approved phases**: the complete phase structure from the Plan Index File body
22
22
  6. **Task list for current phase**: the approved task table
23
23
  7. **Target task**: the task name, edge cases, and ID from the table
24
- 8. **Output format adapter**: path to the loaded output format adapter
24
+ 8. **Output format authoring reference**: path to the format's `authoring.md` (e.g., `.claude/skills/technical-planning/references/output-formats/{format}/authoring.md`)
25
25
 
26
26
  ### Present the Output
27
27
 
28
- The agent returns complete task detail in the output format's structure. Present it to the user **exactly as it will be written** — what the user sees is what gets logged.
28
+ The agent returns complete task detail following the task template from task-design.md. Present it to the user **exactly as it will be written** — what the user sees is what gets logged.
29
29
 
30
30
  After presenting, ask:
31
31
 
@@ -54,7 +54,7 @@ Present the revised task in full. Ask the same choice again. Repeat until approv
54
54
 
55
55
  > **CHECKPOINT**: Before logging, verify: (1) You presented this exact content, (2) The user explicitly approved with `y`/`yes` or equivalent — not a question, comment, or "okay" in passing, (3) You are writing exactly what was approved with no modifications.
56
56
 
57
- 1. Write the task to the output format (format-specific — see output adapter)
57
+ 1. Write the task to the output format (format-specific — see authoring.md)
58
58
  2. Update the task table in the Plan Index File: set `status: authored`
59
59
  3. Advance the `planning:` block in frontmatter to the next pending task (or next phase if this was the last task)
60
60
  4. Commit: `planning({topic}): author task {task-id} ({task name})`
@@ -44,11 +44,10 @@ Read the plan end-to-end — carefully, as if you were about to implement it. Fo
44
44
  - Phase boundaries make sense (not arbitrary groupings)
45
45
 
46
46
  4. **Dependencies and Ordering**
47
- - Phase ordering reflects actual dependencies
48
- - Tasks within phases are ordered logically
49
- - Cross-phase dependencies are explicit where they exist
50
- - No circular dependencies
51
- - An implementer can infer execution order from the plan structure
47
+ - Task dependencies are explicit and correct — each dependency reflects a genuine data or capability requirement
48
+ - No circular dependencies exist in the task graph
49
+ - Priority assignments reflect graph position foundation tasks and tasks that unblock others are prioritised appropriately
50
+ - An implementer can determine execution order from the dependency graph and priorities alone
52
51
 
53
52
  5. **Task Self-Containment**
54
53
  - Each task contains all context needed for execution
@@ -104,6 +104,8 @@ Ask: "Can I write a test for this task that passes without any other task being
104
104
 
105
105
  ## Task Template
106
106
 
107
+ This is the canonical task format. The planning skill owns task content — output format adapters only define where/how this content is stored.
108
+
107
109
  Every task should follow this structure:
108
110
 
109
111
  ```markdown
@@ -130,9 +132,15 @@ Every task should follow this structure:
130
132
  - `"it handles edge case correctly"`
131
133
  - `"it fails appropriately for invalid input"`
132
134
 
135
+ **Edge Cases**: (when relevant)
136
+ - Boundary condition details
137
+ - Unusual inputs or race conditions
138
+
133
139
  **Context**: (when relevant)
134
140
  > Relevant details from specification: code examples, architectural decisions,
135
141
  > data models, or constraints that inform implementation.
142
+
143
+ **Spec Reference**: `docs/workflow/specification/{topic}.md` (if specification was provided)
136
144
  ```
137
145
 
138
146
  ### Field Requirements
@@ -145,7 +153,9 @@ Every task should follow this structure:
145
153
  | Do | Yes | At least one concrete action |
146
154
  | Acceptance Criteria | Yes | At least one pass/fail criterion |
147
155
  | Tests | Yes | At least one test name; include edge cases, not just happy path |
156
+ | Edge Cases | When relevant | Boundary conditions, unusual inputs |
148
157
  | Context | When relevant | Only include when spec has details worth pulling forward |
158
+ | Spec Reference | When provided | Path to specification for ambiguity resolution. Include when a specification file was provided as input. Omit if planning from inline context or other non-file sources. |
149
159
 
150
160
  ### The Template as Quality Gate
151
161
 
@@ -74,7 +74,7 @@ Plan (tasks + acceptance criteria)
74
74
  → Check Code Quality (readable, conventions)
75
75
  ```
76
76
 
77
- **Use parallel `chain-verifier` subagents** to verify ALL plan tasks simultaneously. Each verifier checks one task for implementation, tests, and quality. This enables comprehensive review without sequential bottlenecks.
77
+ **Use parallel `review-task-verifier` subagents** to verify ALL plan tasks simultaneously. Each verifier checks one task for implementation, tests, and quality. This enables comprehensive review without sequential bottlenecks.
78
78
 
79
79
  ## What You Verify (Per Task)
80
80
 
@@ -115,8 +115,8 @@ Review as a senior architect would:
115
115
  1. **Read the plan** - Understand all phases, tasks, and acceptance criteria
116
116
  2. **Read the specification** - Load context for the feature being reviewed
117
117
  3. **Extract all tasks** - List every task from every phase
118
- 4. **Spawn chain-verifiers in parallel** - One subagent per task, all running simultaneously
119
- 5. **Aggregate findings** - Collect reports from all chain-verifiers
118
+ 4. **Spawn review-task-verifiers in parallel** - One subagent per task, all running simultaneously
119
+ 5. **Aggregate findings** - Collect reports from all review-task-verifiers
120
120
  6. **Check project skills** - Framework/language conventions
121
121
  7. **Produce review** - Structured feedback covering all tasks
122
122
 
@@ -26,18 +26,18 @@ From the plan, list every task across all phases:
26
26
 
27
27
  ### Parallel Verification
28
28
 
29
- Spawn `chain-verifier` subagents **in parallel** for ALL tasks:
29
+ Spawn `review-task-verifier` subagents **in parallel** for ALL tasks:
30
30
 
31
31
  ```
32
- Task 1 ──▶ [chain-verifier] ──▶ Findings
33
- Task 2 ──▶ [chain-verifier] ──▶ Findings
34
- Task 3 ──▶ [chain-verifier] ──▶ Findings (all running in parallel)
35
- Task 4 ──▶ [chain-verifier] ──▶ Findings
32
+ Task 1 ──▶ [review-task-verifier] ──▶ Findings
33
+ Task 2 ──▶ [review-task-verifier] ──▶ Findings
34
+ Task 3 ──▶ [review-task-verifier] ──▶ Findings (all running in parallel)
35
+ Task 4 ──▶ [review-task-verifier] ──▶ Findings
36
36
  ...
37
- Task N ──▶ [chain-verifier] ──▶ Findings
37
+ Task N ──▶ [review-task-verifier] ──▶ Findings
38
38
  ```
39
39
 
40
- **How to invoke each chain-verifier:**
40
+ **How to invoke each review-task-verifier:**
41
41
 
42
42
  Provide:
43
43
  - The specific task (with acceptance criteria)
@@ -45,14 +45,14 @@ Provide:
45
45
  - Path to plan (for phase context)
46
46
  - Implementation scope (files/directories changed)
47
47
 
48
- **Each chain-verifier checks:**
48
+ **Each review-task-verifier checks:**
49
49
  1. Implementation exists and matches acceptance criteria
50
50
  2. Tests are adequate (not under-tested, not over-tested)
51
51
  3. Code quality is acceptable
52
52
 
53
53
  **Aggregate the findings:**
54
54
 
55
- Once all chain-verifiers complete, synthesize their reports:
55
+ Once all review-task-verifiers complete, synthesize their reports:
56
56
  - Collect all incomplete/failed tasks as blocking issues
57
57
  - Collect all test issues (under/over-tested)
58
58
  - Collect all code quality concerns
@@ -60,7 +60,7 @@ Once all chain-verifiers complete, synthesize their reports:
60
60
 
61
61
  ## Per-Task Verification Details
62
62
 
63
- For each task, the chain-verifier checks:
63
+ For each task, the review-task-verifier checks:
64
64
 
65
65
  ### Implementation
66
66