@leeovery/claude-technical-workflows 2.1.30 → 2.1.32
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/README.md +36 -5
- package/hooks/workflows/compact-recovery.sh +81 -0
- package/hooks/workflows/session-cleanup.sh +26 -0
- package/hooks/workflows/session-env.sh +17 -0
- package/hooks/workflows/system-check.sh +100 -0
- package/hooks/workflows/write-session-state.sh +66 -0
- package/package.json +1 -1
- package/skills/begin-implementation/SKILL.md +158 -0
- package/skills/begin-planning/SKILL.md +87 -0
- package/skills/continue-feature/SKILL.md +177 -0
- package/skills/continue-feature/references/detect-phase.md +92 -0
- package/skills/continue-feature/references/invoke-implementation.md +43 -0
- package/skills/continue-feature/references/invoke-planning.md +43 -0
- package/skills/continue-feature/references/invoke-specification.md +55 -0
- package/skills/continue-feature/references/phase-bridge.md +58 -0
- package/skills/continue-feature/scripts/discovery.sh +216 -0
- package/skills/link-dependencies/SKILL.md +6 -0
- package/skills/start-discussion/SKILL.md +22 -1
- package/skills/start-feature/SKILL.md +100 -38
- package/skills/start-feature/references/gather-feature-context.md +60 -0
- package/skills/start-feature/references/invoke-discussion.md +24 -0
- package/skills/start-feature/references/phase-bridge.md +37 -0
- package/skills/start-implementation/SKILL.md +22 -1
- package/skills/start-planning/SKILL.md +22 -1
- package/skills/start-research/SKILL.md +23 -1
- package/skills/start-review/SKILL.md +22 -1
- package/skills/start-specification/SKILL.md +8 -2
- package/skills/start-specification/references/handoffs/continue-concluded.md +15 -0
- package/skills/start-specification/references/handoffs/continue.md +15 -0
- package/skills/start-specification/references/handoffs/create-with-incorporation.md +15 -0
- package/skills/start-specification/references/handoffs/create.md +15 -0
- package/skills/start-specification/references/handoffs/unify-with-incorporation.md +15 -0
- package/skills/start-specification/references/handoffs/unify.md +15 -0
- package/skills/status/SKILL.md +7 -1
- package/skills/technical-planning/SKILL.md +2 -2
- package/skills/technical-planning/references/author-tasks.md +3 -1
- package/skills/technical-planning/references/define-tasks.md +35 -3
- package/skills/technical-planning/references/output-formats/tick/about.md +5 -0
- package/skills/technical-planning/references/output-formats/tick/authoring.md +11 -0
- package/skills/technical-planning/references/output-formats/tick/updating.md +2 -0
- package/skills/technical-planning/references/plan-construction.md +17 -8
- package/skills/technical-planning/references/plan-index-schema.md +6 -3
- package/skills/view-plan/SKILL.md +6 -0
|
@@ -4,6 +4,21 @@
|
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
+
Before invoking the processing skill, save a session bookmark.
|
|
8
|
+
|
|
9
|
+
> *Output the next fenced block as a code block:*
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
Saving session state so Claude can pick up where it left off if the conversation is compacted.
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
```bash
|
|
16
|
+
.claude/hooks/workflows/write-session-state.sh \
|
|
17
|
+
"unified" \
|
|
18
|
+
"skills/technical-specification/SKILL.md" \
|
|
19
|
+
"docs/workflow/specification/unified/specification.md"
|
|
20
|
+
```
|
|
21
|
+
|
|
7
22
|
This skill's purpose is now fulfilled. Invoke the [technical-specification](../../../technical-specification/SKILL.md) skill for your next instructions. Do not act on the gathered information until the skill is loaded — it contains the instructions for how to proceed.
|
|
8
23
|
|
|
9
24
|
```
|
package/skills/status/SKILL.md
CHANGED
|
@@ -3,6 +3,12 @@ name: status
|
|
|
3
3
|
description: "Show workflow status - what exists, where you are, and what to do next."
|
|
4
4
|
disable-model-invocation: true
|
|
5
5
|
allowed-tools: Bash(.claude/skills/status/scripts/discovery.sh)
|
|
6
|
+
hooks:
|
|
7
|
+
PreToolUse:
|
|
8
|
+
- hooks:
|
|
9
|
+
- type: command
|
|
10
|
+
command: "$CLAUDE_PROJECT_DIR/.claude/hooks/workflows/system-check.sh"
|
|
11
|
+
once: true
|
|
6
12
|
---
|
|
7
13
|
|
|
8
14
|
Show the current state of the workflow for this project.
|
|
@@ -13,7 +19,7 @@ Show the current state of the workflow for this project.
|
|
|
13
19
|
|
|
14
20
|
Invoke the `/migrate` skill and assess its output.
|
|
15
21
|
|
|
16
|
-
**If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1.
|
|
22
|
+
**If files were updated**: STOP and wait for the user to review the changes (e.g., via `git diff`) and confirm before proceeding to Step 1. Do not continue automatically.
|
|
17
23
|
|
|
18
24
|
**If no updates needed**: Proceed to Step 1.
|
|
19
25
|
|
|
@@ -62,7 +62,7 @@ Context refresh (compaction) summarizes the conversation, losing procedural deta
|
|
|
62
62
|
2. **Read all tracking and state files** for the current topic — plan index files, review tracking files, implementation tracking files, or any working documents this skill creates. These are your source of truth for progress.
|
|
63
63
|
3. **Check git state.** Run `git status` and `git log --oneline -10` to see recent commits. Commit messages follow a conventional pattern that reveals what was completed.
|
|
64
64
|
4. **Announce your position** to the user before continuing: what step you believe you're at, what's been completed, and what comes next. Wait for confirmation.
|
|
65
|
-
5. **Check `author_gate_mode
|
|
65
|
+
5. **Check `task_list_gate_mode`, `author_gate_mode`, and `finding_gate_mode`** in the Plan Index File frontmatter — if `auto`, the user previously opted in during this session. Preserve these values.
|
|
66
66
|
|
|
67
67
|
Do not guess at progress or continue from memory. The files on disk and git history are authoritative — your recollection is not.
|
|
68
68
|
|
|
@@ -118,7 +118,7 @@ Found existing plan for **{topic}** (previously reached phase {N}, task {M}).
|
|
|
118
118
|
|
|
119
119
|
If the specification changed, update `spec_commit` in the Plan Index File frontmatter to the current commit hash.
|
|
120
120
|
|
|
121
|
-
Reset `author_gate_mode
|
|
121
|
+
Reset `task_list_gate_mode`, `author_gate_mode`, and `finding_gate_mode` to `gated` in the Plan Index File frontmatter (fresh invocation = fresh gates).
|
|
122
122
|
|
|
123
123
|
→ Proceed to **Step 1**.
|
|
124
124
|
|
|
@@ -37,6 +37,8 @@ Check `author_gate_mode` in the Plan Index File frontmatter.
|
|
|
37
37
|
|
|
38
38
|
#### If `author_gate_mode: auto`
|
|
39
39
|
|
|
40
|
+
**Auto mode removes the approval pause — not the sequential process.** Each task is still invoked, authored, and logged one at a time, in order. Do not batch, skip ahead, or create multiple tasks concurrently.
|
|
41
|
+
|
|
40
42
|
> *Output the next fenced block as a code block:*
|
|
41
43
|
|
|
42
44
|
```
|
|
@@ -55,7 +57,7 @@ Task {M} of {total}: {Task Name} — authored. Logging to plan.
|
|
|
55
57
|
· · · · · · · · · · · ·
|
|
56
58
|
**To proceed:**
|
|
57
59
|
- **`y`/`yes`** — Approved. I'll log it to the plan.
|
|
58
|
-
- **`a`/`auto`** — Approve this and all remaining
|
|
60
|
+
- **`a`/`auto`** — Approve this and all remaining task authoring gates automatically
|
|
59
61
|
- **Or tell me what to change.**
|
|
60
62
|
- **Or navigate** — a different phase or task, or the leading edge.
|
|
61
63
|
· · · · · · · · · · · ·
|
|
@@ -43,7 +43,31 @@ planning:
|
|
|
43
43
|
|
|
44
44
|
Commit: `planning({topic}): draft Phase {N} task list`
|
|
45
45
|
|
|
46
|
-
Present the task overview to the user
|
|
46
|
+
Present the task overview to the user:
|
|
47
|
+
|
|
48
|
+
> *Output the next fenced block as markdown (not a code block):*
|
|
49
|
+
|
|
50
|
+
```
|
|
51
|
+
{task overview from planning-task-designer agent}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then check the gate mode.
|
|
55
|
+
|
|
56
|
+
### Check Gate Mode
|
|
57
|
+
|
|
58
|
+
Check `task_list_gate_mode` in the Plan Index File frontmatter.
|
|
59
|
+
|
|
60
|
+
#### If `task_list_gate_mode: auto`
|
|
61
|
+
|
|
62
|
+
> *Output the next fenced block as a code block:*
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
Phase {N}: {Phase Name} — task list approved. Proceeding to authoring.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
→ Skip to **If approved** below.
|
|
69
|
+
|
|
70
|
+
#### If `task_list_gate_mode: gated`
|
|
47
71
|
|
|
48
72
|
**STOP.** Ask:
|
|
49
73
|
|
|
@@ -53,6 +77,7 @@ Present the task overview to the user as rendered markdown (not in a code block)
|
|
|
53
77
|
· · · · · · · · · · · ·
|
|
54
78
|
**To proceed:**
|
|
55
79
|
- **`y`/`yes`** — Approved.
|
|
80
|
+
- **`a`/`auto`** — Approve this and all remaining task list gates automatically
|
|
56
81
|
- **Or tell me what to change** — reorder, split, merge, add, edit, or remove tasks.
|
|
57
82
|
- **Or navigate** — a different phase or task, or the leading edge.
|
|
58
83
|
· · · · · · · · · · · ·
|
|
@@ -66,12 +91,19 @@ Re-invoke `planning-task-designer` with all original inputs PLUS:
|
|
|
66
91
|
|
|
67
92
|
Update the Plan Index File with the revised task table, re-present, and ask again. Repeat until approved.
|
|
68
93
|
|
|
69
|
-
#### If
|
|
94
|
+
#### If `auto`
|
|
95
|
+
|
|
96
|
+
Note that `task_list_gate_mode` should be updated to `auto` during the commit step below.
|
|
97
|
+
|
|
98
|
+
→ Proceed to **If approved** below.
|
|
99
|
+
|
|
100
|
+
#### If approved (`y`/`yes` or `auto`)
|
|
70
101
|
|
|
71
102
|
**If the task list is new or was amended:**
|
|
72
103
|
|
|
73
104
|
1. Advance the `planning:` block to the first task in this phase
|
|
74
|
-
2.
|
|
105
|
+
2. If user chose `auto` at this gate: update `task_list_gate_mode: auto` in the Plan Index File frontmatter
|
|
106
|
+
3. Commit: `planning({topic}): approve Phase {N} task list`
|
|
75
107
|
|
|
76
108
|
**If the task list was already approved and unchanged:** No updates needed.
|
|
77
109
|
|
|
@@ -54,6 +54,11 @@ Add to `.gitignore`:
|
|
|
54
54
|
|
|
55
55
|
The 3-level hierarchy (topic → phase → task) uses Tick's parent/child system. Parent tasks are implicitly blocked by their children — a parent is not "ready" until all children are complete. Explicit dependencies (`tick dep add`) handle cross-phase and cross-topic blocking.
|
|
56
56
|
|
|
57
|
+
## Usage Notes
|
|
58
|
+
|
|
59
|
+
- **Help**: `tick help --all` displays all available commands and flags in a single view.
|
|
60
|
+
- **Output format**: The `--toon` flag is **not needed** — TOON is the default for non-interactive shells, which is what Claude Code uses. Omit it from all commands.
|
|
61
|
+
|
|
57
62
|
## Output Location
|
|
58
63
|
|
|
59
64
|
Tasks are stored in a `.tick/` directory at the project root:
|
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Tick: Authoring
|
|
2
2
|
|
|
3
|
+
## Sandbox Mode and Large Descriptions
|
|
4
|
+
|
|
5
|
+
Bash heredocs (`$(cat <<'EOF'...EOF)`) create temp files that sandbox mode blocks, resulting in empty descriptions being set silently. Do **not** use `dangerouslyDisableSandbox` — it forces user approval on every call.
|
|
6
|
+
|
|
7
|
+
Instead, use the **Write tool + cat pattern**:
|
|
8
|
+
|
|
9
|
+
1. Use the **Write tool** to save the description to `$TMPDIR/tick-desc.txt` — this bypasses sandbox because it uses Claude Code's file writing, not bash
|
|
10
|
+
2. Run the tick command with `--description "$(cat $TMPDIR/tick-desc.txt)"` in normal sandbox mode — `cat` just reads, no temp files needed
|
|
11
|
+
|
|
12
|
+
This works for both `tick create --description` and `tick update --description`.
|
|
13
|
+
|
|
3
14
|
## Task Storage
|
|
4
15
|
|
|
5
16
|
Tasks are created using the `tick create` command. Before creating individual tasks, establish the topic and phase parent tasks.
|
|
@@ -16,6 +16,8 @@ Tick uses dedicated commands for each status transition:
|
|
|
16
16
|
|
|
17
17
|
## Updating Task Content
|
|
18
18
|
|
|
19
|
+
**Sandbox mode**: When updating large descriptions, use the Write tool + cat pattern to avoid sandbox temp file issues. See [authoring.md](authoring.md) for details.
|
|
20
|
+
|
|
19
21
|
To update a task's properties:
|
|
20
22
|
|
|
21
23
|
- **Title**: `tick update <task-id> --title "New title"`
|
|
@@ -79,6 +79,20 @@ After Step A returns with an approved task table, continue to **Author Tasks for
|
|
|
79
79
|
{task list from the phase's task table}
|
|
80
80
|
```
|
|
81
81
|
|
|
82
|
+
Check `task_list_gate_mode` in the Plan Index File frontmatter.
|
|
83
|
+
|
|
84
|
+
#### If `task_list_gate_mode: auto` (existing task table)
|
|
85
|
+
|
|
86
|
+
> *Output the next fenced block as a code block:*
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
Phase {N}: {Phase Name} — task list confirmed. Proceeding to authoring.
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
→ Continue to **Author Tasks for the Phase** below.
|
|
93
|
+
|
|
94
|
+
#### If `task_list_gate_mode: gated` (existing task table)
|
|
95
|
+
|
|
82
96
|
> *Output the next fenced block as markdown (not a code block):*
|
|
83
97
|
|
|
84
98
|
```
|
|
@@ -106,16 +120,11 @@ After Step A returns with an approved task table, continue to **Author Tasks for
|
|
|
106
120
|
|
|
107
121
|
Work through each task in the phase's task table, in order.
|
|
108
122
|
|
|
109
|
-
###
|
|
110
|
-
|
|
111
|
-
After the first `pending` task in a phase is approved, you may invoke multiple Step B agents concurrently for tasks you judge to be independent — where the authored detail of one would not inform the other. This is an invocation optimization only; the approval flow is unchanged:
|
|
123
|
+
### Sequential authoring (mandatory)
|
|
112
124
|
|
|
113
|
-
|
|
114
|
-
- Each task still requires explicit user approval before logging
|
|
115
|
-
- If user feedback on a presented task changes context that could affect any already-authored task waiting to be presented, discard those results and re-invoke Step B
|
|
116
|
-
- When uncertain about independence, default to sequential — it is always safe
|
|
125
|
+
Tasks **must** be authored one at a time, in order. Each task's authored detail builds context for the next — later tasks benefit from decisions, patterns, and structure established by earlier ones. This applies regardless of gate mode. Auto-gate removes the approval pause, not the sequential process.
|
|
117
126
|
|
|
118
|
-
Never
|
|
127
|
+
**Never** invoke multiple Step B agents concurrently. **Never** batch or skip ahead.
|
|
119
128
|
|
|
120
129
|
#### If the task status is `authored`
|
|
121
130
|
|
|
@@ -23,6 +23,7 @@ spec_commit: {commit-hash}
|
|
|
23
23
|
created: YYYY-MM-DD
|
|
24
24
|
updated: YYYY-MM-DD
|
|
25
25
|
external_dependencies: []
|
|
26
|
+
task_list_gate_mode: gated
|
|
26
27
|
author_gate_mode: gated
|
|
27
28
|
finding_gate_mode: gated
|
|
28
29
|
planning:
|
|
@@ -43,6 +44,7 @@ planning:
|
|
|
43
44
|
| `created` | Plan creation — today's date |
|
|
44
45
|
| `updated` | Plan creation — today's date; update on each commit |
|
|
45
46
|
| `external_dependencies` | Dependency resolution (Step 6) |
|
|
47
|
+
| `task_list_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
46
48
|
| `author_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
47
49
|
| `finding_gate_mode` | Plan creation → `gated`; user opts in → `auto` |
|
|
48
50
|
| `planning.phase` | Tracks current phase position |
|
|
@@ -88,14 +90,15 @@ approved_at: {YYYY-MM-DD}
|
|
|
88
90
|
|
|
89
91
|
```markdown
|
|
90
92
|
#### Tasks
|
|
91
|
-
| ID | Name | Status | Ext ID |
|
|
92
|
-
|
|
93
|
-
| {topic}-{phase}-{seq} | {Task Name} | {status} | |
|
|
93
|
+
| ID | Name | Edge Cases | Status | Ext ID |
|
|
94
|
+
|----|------|------------|--------|--------|
|
|
95
|
+
| {topic}-{phase}-{seq} | {Task Name} | {comma-separated list, or "none"} | {status} | |
|
|
94
96
|
```
|
|
95
97
|
|
|
96
98
|
| Field | Set when |
|
|
97
99
|
|-------|----------|
|
|
98
100
|
| `ID` | Task design — format: `{topic}-{phase}-{seq}` |
|
|
99
101
|
| `Name` | Task design — descriptive task name |
|
|
102
|
+
| `Edge Cases` | Task design — curated list scoping which edge cases this task handles |
|
|
100
103
|
| `Status` | Task design → `pending`; authoring → `authored` |
|
|
101
104
|
| `Ext ID` | Task authored — external identifier for the task |
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
name: view-plan
|
|
3
3
|
description: "View a plan's tasks and progress, regardless of output format."
|
|
4
4
|
disable-model-invocation: true
|
|
5
|
+
hooks:
|
|
6
|
+
PreToolUse:
|
|
7
|
+
- hooks:
|
|
8
|
+
- type: command
|
|
9
|
+
command: "$CLAUDE_PROJECT_DIR/.claude/hooks/workflows/system-check.sh"
|
|
10
|
+
once: true
|
|
5
11
|
---
|
|
6
12
|
|
|
7
13
|
Display a readable summary of a plan's phases, tasks, and status.
|