cc-dev-template 0.1.78 → 0.1.80
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/package.json +1 -1
- package/src/commands/done.md +1 -1
- package/src/skills/setup-lsp/SKILL.md +15 -0
- package/src/skills/setup-lsp/references/lsp-registry.md +148 -0
- package/src/skills/setup-lsp/references/step-1-scan.md +28 -0
- package/src/skills/setup-lsp/references/step-2-install-configure.md +85 -0
- package/src/skills/setup-lsp/references/step-3-verify.md +43 -0
- package/src/skills/setup-lsp/references/step-4-reflect.md +22 -0
- package/src/skills/spec-to-tasks/SKILL.md +4 -3
- package/src/skills/spec-to-tasks/references/step-3-generate.md +4 -7
- package/src/skills/spec-to-tasks/references/step-4-review.md +75 -30
- package/src/skills/spec-to-tasks/references/step-5-reflect.md +22 -0
package/package.json
CHANGED
package/src/commands/done.md
CHANGED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup-lsp
|
|
3
|
+
description: Set up LSP language servers for the current project. Use when the user says "setup LSP", "configure LSP", "enable LSP", "install language servers", or "add code intelligence". Use "verify" argument after restart to confirm LSP is working.
|
|
4
|
+
disable-model-invocation: true
|
|
5
|
+
argument-hint: "[verify]"
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Setup LSP
|
|
9
|
+
|
|
10
|
+
Configure LSP (Language Server Protocol) for the current project so Claude Code uses precise code intelligence instead of grep-based search.
|
|
11
|
+
|
|
12
|
+
| Argument | Action |
|
|
13
|
+
|----------|--------|
|
|
14
|
+
| No argument | Read `references/step-1-scan.md` |
|
|
15
|
+
| `verify` | Read `references/step-3-verify.md` |
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
# LSP Registry
|
|
2
|
+
|
|
3
|
+
## Language Detection
|
|
4
|
+
|
|
5
|
+
Detect languages by file extensions AND project config files. Config files are more reliable — a `go.mod` is definitive proof of Go usage; a stray `.go` file might not be.
|
|
6
|
+
|
|
7
|
+
| Config File | Language |
|
|
8
|
+
|-------------|----------|
|
|
9
|
+
| `package.json`, `tsconfig.json`, `jsconfig.json` | TypeScript/JavaScript |
|
|
10
|
+
| `pyproject.toml`, `setup.py`, `setup.cfg`, `requirements.txt`, `Pipfile` | Python |
|
|
11
|
+
| `go.mod` | Go |
|
|
12
|
+
| `Cargo.toml` | Rust |
|
|
13
|
+
| `pom.xml`, `build.gradle`, `build.gradle.kts` | Java |
|
|
14
|
+
| `*.csproj`, `*.sln` | C# |
|
|
15
|
+
| `composer.json` | PHP |
|
|
16
|
+
| `Package.swift` | Swift |
|
|
17
|
+
| `build.gradle.kts` with `kotlin` | Kotlin |
|
|
18
|
+
| `CMakeLists.txt`, `Makefile` with `.c`/`.cpp` | C/C++ |
|
|
19
|
+
|
|
20
|
+
| Extension | Language |
|
|
21
|
+
|-----------|----------|
|
|
22
|
+
| `.ts`, `.tsx`, `.js`, `.jsx`, `.mts`, `.cts`, `.mjs`, `.cjs` | TypeScript/JavaScript |
|
|
23
|
+
| `.py`, `.pyi` | Python |
|
|
24
|
+
| `.go` | Go |
|
|
25
|
+
| `.rs` | Rust |
|
|
26
|
+
| `.java` | Java |
|
|
27
|
+
| `.cs` | C# |
|
|
28
|
+
| `.php` | PHP |
|
|
29
|
+
| `.swift` | Swift |
|
|
30
|
+
| `.kt`, `.kts` | Kotlin |
|
|
31
|
+
| `.c`, `.h`, `.cpp`, `.cc`, `.cxx`, `.hpp`, `.hxx` | C/C++ |
|
|
32
|
+
| `.lua` | Lua |
|
|
33
|
+
|
|
34
|
+
## Language Server Details
|
|
35
|
+
|
|
36
|
+
Each entry: plugin name, binary command, install command, and verification command.
|
|
37
|
+
|
|
38
|
+
| Language | Plugin | Binary | Install | Verify |
|
|
39
|
+
|----------|--------|--------|---------|--------|
|
|
40
|
+
| TypeScript/JS | `typescript-lsp` | `typescript-language-server` | `npm i -g typescript-language-server typescript` | `which typescript-language-server` |
|
|
41
|
+
| Python | `pyright-lsp` | `pyright-langserver` | `npm i -g pyright` | `which pyright-langserver` |
|
|
42
|
+
| Go | `gopls-lsp` | `gopls` | `go install golang.org/x/tools/gopls@latest` | `which gopls` |
|
|
43
|
+
| Rust | `rust-analyzer-lsp` | `rust-analyzer` | `rustup component add rust-analyzer` | `which rust-analyzer` |
|
|
44
|
+
| Java | `jdtls-lsp` | `jdtls` | `brew install jdtls` | `which jdtls` |
|
|
45
|
+
| C/C++ | `clangd-lsp` | `clangd` | `brew install llvm` | `which clangd` |
|
|
46
|
+
| C# | `csharp-lsp` | `csharp-ls` | `dotnet tool install -g csharp-ls` | `which csharp-ls` |
|
|
47
|
+
| PHP | `php-lsp` | `intelephense` | `npm i -g intelephense` | `which intelephense` |
|
|
48
|
+
| Kotlin | `kotlin-lsp` | `kotlin-lsp` | Install from GitHub releases | `which kotlin-lsp` |
|
|
49
|
+
| Swift | `swift-lsp` | `sourcekit-lsp` | Included with Xcode | `which sourcekit-lsp` |
|
|
50
|
+
| Lua | `lua-lsp` | `lua-language-server` | Install from GitHub releases | `which lua-language-server` |
|
|
51
|
+
|
|
52
|
+
## Plugin Naming Convention
|
|
53
|
+
|
|
54
|
+
Plugins are referenced as `{plugin-name}@{marketplace}`. The official marketplace is `claude-plugins-official`.
|
|
55
|
+
|
|
56
|
+
Example: `typescript-lsp@claude-plugins-official`
|
|
57
|
+
|
|
58
|
+
## Known Issue: Official Marketplace Plugin Cache Bug
|
|
59
|
+
|
|
60
|
+
As of early 2026, there is a known bug (GitHub #15148) where plugins installed from `claude-plugins-official` cache only a `README.md` — missing the `.lsp.json` server configuration. This can cause `"No LSP server available for file type"` errors.
|
|
61
|
+
|
|
62
|
+
**Primary workaround:** Use the `Piebald-AI/claude-code-lsps` community marketplace, which properly structures plugins with `.lsp.json` files and supports additional languages (Ruby, PowerShell, HTML/CSS, Vue, etc.).
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
claude plugin marketplace add Piebald-AI/claude-code-lsps
|
|
66
|
+
claude plugin install {plugin-name}
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
**Fallback workaround:** Manually create `.lsp.json` in the cached plugin directory. The `.lsp.json` format:
|
|
70
|
+
|
|
71
|
+
```json
|
|
72
|
+
{
|
|
73
|
+
"language-id": {
|
|
74
|
+
"command": "language-server-binary",
|
|
75
|
+
"args": ["--stdio"],
|
|
76
|
+
"extensionToLanguage": {
|
|
77
|
+
".ext": "language-id"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Example for TypeScript (`~/.claude/plugins/cache/claude-plugins-official/typescript-lsp/1.0.0/.lsp.json`):
|
|
84
|
+
|
|
85
|
+
```json
|
|
86
|
+
{
|
|
87
|
+
"typescript": {
|
|
88
|
+
"command": "typescript-language-server",
|
|
89
|
+
"args": ["--stdio"],
|
|
90
|
+
"extensionToLanguage": {
|
|
91
|
+
".ts": "typescript",
|
|
92
|
+
".tsx": "typescriptreact",
|
|
93
|
+
".js": "javascript",
|
|
94
|
+
".jsx": "javascriptreact",
|
|
95
|
+
".mts": "typescript",
|
|
96
|
+
".cts": "typescript",
|
|
97
|
+
".mjs": "javascript",
|
|
98
|
+
".cjs": "javascript"
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
Example for Python (`~/.claude/plugins/cache/claude-plugins-official/pyright-lsp/1.0.0/.lsp.json`):
|
|
105
|
+
|
|
106
|
+
```json
|
|
107
|
+
{
|
|
108
|
+
"python": {
|
|
109
|
+
"command": "pyright-langserver",
|
|
110
|
+
"args": ["--stdio"],
|
|
111
|
+
"extensionToLanguage": {
|
|
112
|
+
".py": "python",
|
|
113
|
+
".pyi": "python"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Example for Go (`~/.claude/plugins/cache/claude-plugins-official/gopls-lsp/1.0.0/.lsp.json`):
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"go": {
|
|
124
|
+
"command": "gopls",
|
|
125
|
+
"args": [],
|
|
126
|
+
"extensionToLanguage": {
|
|
127
|
+
".go": "go"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## LSP Operations
|
|
134
|
+
|
|
135
|
+
Claude Code's LSP tool provides these operations. All use the same `LSP` tool — the operation is chosen based on what the agent needs.
|
|
136
|
+
|
|
137
|
+
| Operation | What It Does | Use When |
|
|
138
|
+
|-----------|-------------|----------|
|
|
139
|
+
| `workspaceSymbol` | Search for a symbol across the entire project | Finding where something is defined |
|
|
140
|
+
| `goToDefinition` | Jump to the exact definition of a symbol | Navigating to source code |
|
|
141
|
+
| `goToImplementation` | Find concrete implementations of interfaces | Understanding polymorphism |
|
|
142
|
+
| `findReferences` | Find every usage of a symbol | Impact analysis before refactoring |
|
|
143
|
+
| `hover` | Get type signature and docs for a symbol | Understanding types without reading files |
|
|
144
|
+
| `documentSymbol` | List all symbols in a file | Getting an overview of a file's structure |
|
|
145
|
+
| `incomingCalls` | Trace what calls a function | Understanding callers |
|
|
146
|
+
| `outgoingCalls` | Trace what a function calls | Understanding dependencies |
|
|
147
|
+
|
|
148
|
+
Not every language server supports every operation. If an operation returns no results, it may be unsupported for that language — fall back to Grep.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Step 1: Scan the Codebase
|
|
2
|
+
|
|
3
|
+
Determine which languages are used in this project and which LSP servers to install.
|
|
4
|
+
|
|
5
|
+
## Detect Languages
|
|
6
|
+
|
|
7
|
+
Read `references/lsp-registry.md` for the detection tables.
|
|
8
|
+
|
|
9
|
+
1. Use Glob to check for config files first (they are definitive): `go.mod`, `Cargo.toml`, `package.json`, `tsconfig.json`, `pyproject.toml`, `setup.py`, `requirements.txt`, `pom.xml`, `build.gradle`, `*.csproj`, `*.sln`, `composer.json`, `Package.swift`, `CMakeLists.txt`
|
|
10
|
+
2. Then check file extensions as a secondary signal: `.py`, `.ts`, `.go`, `.rs`, `.java`, `.cs`, `.php`, `.swift`, `.kt`, `.c`, `.cpp`, `.lua`
|
|
11
|
+
3. Check existing LSP configuration — read `.claude/settings.json` if it exists to see what's already configured
|
|
12
|
+
|
|
13
|
+
## Check Prerequisites
|
|
14
|
+
|
|
15
|
+
Run `claude --version` to verify Claude Code version is 2.0.74 or later.
|
|
16
|
+
|
|
17
|
+
## Present Findings
|
|
18
|
+
|
|
19
|
+
Show the user:
|
|
20
|
+
- Which languages were detected and how (config file vs extension)
|
|
21
|
+
- Which LSP servers are recommended for each language
|
|
22
|
+
- Which language server binaries are already installed (check with `which`)
|
|
23
|
+
- Which Claude Code plugins are already installed (check `~/.claude/plugins/installed_plugins.json` if it exists)
|
|
24
|
+
- Any languages detected but not supported by available LSP plugins
|
|
25
|
+
|
|
26
|
+
Ask the user to confirm which LSPs to install. They may want to skip some languages.
|
|
27
|
+
|
|
28
|
+
Read `references/step-2-install-configure.md`.
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Step 2: Install and Configure
|
|
2
|
+
|
|
3
|
+
Read `references/lsp-registry.md` for install commands, plugin names, and known issues.
|
|
4
|
+
|
|
5
|
+
## Install Language Server Binaries
|
|
6
|
+
|
|
7
|
+
For each confirmed language, check if the binary is already installed (`which <binary>`). Install only what's missing using the install commands from the registry.
|
|
8
|
+
|
|
9
|
+
Verify each installation succeeded by running the verify command from the registry.
|
|
10
|
+
|
|
11
|
+
## Install and Enable Claude Code Plugins
|
|
12
|
+
|
|
13
|
+
For each language, install the Claude Code plugin:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
claude plugin install <plugin-name>
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
If this fails with "Plugin not found in any marketplace", update the marketplace catalog first:
|
|
20
|
+
|
|
21
|
+
```
|
|
22
|
+
claude plugin marketplace update claude-plugins-official
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
If plugins still fail or produce errors about missing LSP server configuration, follow the workaround in `references/lsp-registry.md` under "Known Issue: Official Marketplace Plugin Cache Bug" — try the Piebald-AI community marketplace, or manually create `.lsp.json` files using the examples in the registry.
|
|
26
|
+
|
|
27
|
+
## Configure Project-Level Settings
|
|
28
|
+
|
|
29
|
+
Create or update `.claude/settings.json` in the project root (NOT `~/.claude/settings.json`).
|
|
30
|
+
|
|
31
|
+
Merge these settings, preserving any existing configuration:
|
|
32
|
+
|
|
33
|
+
```json
|
|
34
|
+
{
|
|
35
|
+
"env": {
|
|
36
|
+
"ENABLE_LSP_TOOL": "1"
|
|
37
|
+
},
|
|
38
|
+
"enabledPlugins": {
|
|
39
|
+
"<plugin-name>@<marketplace>": true
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Add an `enabledPlugins` entry for each installed plugin. Use the correct marketplace name (either `claude-plugins-official` or `Piebald-AI/claude-code-lsps`).
|
|
45
|
+
|
|
46
|
+
## Update CLAUDE.md
|
|
47
|
+
|
|
48
|
+
Read the project's root `CLAUDE.md`. Append the following section if no LSP instructions exist yet. If LSP instructions already exist, update them to match this format.
|
|
49
|
+
|
|
50
|
+
Tailor the snippet to the languages actually installed — list the language servers that were set up:
|
|
51
|
+
|
|
52
|
+
```markdown
|
|
53
|
+
## Code Intelligence (LSP)
|
|
54
|
+
|
|
55
|
+
This project has LSP language servers configured for: [list languages].
|
|
56
|
+
|
|
57
|
+
Prefer LSP over Grep/Read for code navigation — LSP returns exact, structural results instantly:
|
|
58
|
+
|
|
59
|
+
| Task | LSP Operation |
|
|
60
|
+
|------|--------------|
|
|
61
|
+
| Find where a symbol is defined | `workspaceSymbol` or `goToDefinition` |
|
|
62
|
+
| Find all usages of a symbol | `findReferences` |
|
|
63
|
+
| Get type info without reading the file | `hover` |
|
|
64
|
+
| List all symbols in a file | `documentSymbol` |
|
|
65
|
+
| Find implementations of an interface | `goToImplementation` |
|
|
66
|
+
| Trace callers/callees of a function | `incomingCalls` / `outgoingCalls` |
|
|
67
|
+
|
|
68
|
+
Use Grep only for text/pattern searches (comments, strings, config values, regex patterns).
|
|
69
|
+
|
|
70
|
+
After writing or editing code, check LSP diagnostics and fix type errors before proceeding.
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
## Tell the User to Restart
|
|
74
|
+
|
|
75
|
+
LSP servers initialize at startup. The plugins just installed require a full restart of Claude Code to take effect.
|
|
76
|
+
|
|
77
|
+
Tell the user:
|
|
78
|
+
|
|
79
|
+
1. Exit Claude Code
|
|
80
|
+
2. Restart Claude Code in this project directory
|
|
81
|
+
3. Run `/setup-lsp verify` to confirm LSP is working
|
|
82
|
+
|
|
83
|
+
**IMPORTANT: You are not done. You MUST read and complete the next step. The workflow is incomplete without it.**
|
|
84
|
+
|
|
85
|
+
Read `references/step-4-reflect.md` now.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Step 3: Verify LSP
|
|
2
|
+
|
|
3
|
+
This step runs after the user restarts Claude Code and invokes `/setup-lsp verify`.
|
|
4
|
+
|
|
5
|
+
## Check LSP is Available
|
|
6
|
+
|
|
7
|
+
1. Read `.claude/settings.json` to confirm `ENABLE_LSP_TOOL` and `enabledPlugins` are set
|
|
8
|
+
2. Try a `workspaceSymbol` search for a common symbol in the project (pick any function or class name visible in the codebase)
|
|
9
|
+
|
|
10
|
+
If `workspaceSymbol` returns results, LSP is working.
|
|
11
|
+
|
|
12
|
+
## Test Operations
|
|
13
|
+
|
|
14
|
+
Run a quick smoke test — try 3-4 different LSP operations against real symbols in the codebase:
|
|
15
|
+
|
|
16
|
+
- `workspaceSymbol` — search for a known class or function name
|
|
17
|
+
- `documentSymbol` — list symbols in a file that clearly has functions/classes
|
|
18
|
+
- `hover` — get type info on a symbol
|
|
19
|
+
- `findReferences` — find usages of a commonly-used function
|
|
20
|
+
|
|
21
|
+
Report which operations succeeded and which returned no results. Some operations may not be supported by all language servers — that's expected.
|
|
22
|
+
|
|
23
|
+
## If LSP is Not Working
|
|
24
|
+
|
|
25
|
+
Check these in order:
|
|
26
|
+
|
|
27
|
+
1. **"LSP tool not available"** — `ENABLE_LSP_TOOL` is not set. Verify `.claude/settings.json` has it under `env`
|
|
28
|
+
2. **"No server available for file type"** — the plugin is installed but its `.lsp.json` config is missing (known bug). Read `references/lsp-registry.md` under "Known Issue" for the manual `.lsp.json` fix
|
|
29
|
+
3. **Plugin is disabled** — run `claude plugin list` to check status. Run `claude plugin enable <name>` if disabled
|
|
30
|
+
4. **Binary not in PATH** — verify with `which <binary>`. The language server must be in PATH when Claude Code starts
|
|
31
|
+
|
|
32
|
+
After fixing, the user needs to restart Claude Code again and re-run `/setup-lsp verify`.
|
|
33
|
+
|
|
34
|
+
## Report Results
|
|
35
|
+
|
|
36
|
+
Tell the user:
|
|
37
|
+
- Which LSP servers are active
|
|
38
|
+
- Which operations were tested and their results
|
|
39
|
+
- Any operations that didn't work (with explanation)
|
|
40
|
+
|
|
41
|
+
**IMPORTANT: You are not done. You MUST read and complete the next step. The workflow is incomplete without it.**
|
|
42
|
+
|
|
43
|
+
Read `references/step-4-reflect.md` now.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Step 4: Reflect
|
|
2
|
+
|
|
3
|
+
**IMPORTANT: This step is mandatory. The setup-lsp workflow is not complete until this step is finished. Do not skip this.**
|
|
4
|
+
|
|
5
|
+
## Assess
|
|
6
|
+
|
|
7
|
+
- Were any install commands wrong, outdated, or platform-specific in a way the registry didn't account for?
|
|
8
|
+
- Did any plugin installations fail? What was the cause and fix?
|
|
9
|
+
- Did the official marketplace plugin cache bug occur? Was the workaround effective?
|
|
10
|
+
- Were there languages detected that had no available LSP plugin?
|
|
11
|
+
- Did the CLAUDE.md snippet accurately reflect the operations that actually worked?
|
|
12
|
+
- Was any step confusing, missing information, or in the wrong order?
|
|
13
|
+
|
|
14
|
+
## Act
|
|
15
|
+
|
|
16
|
+
If any instructions were wrong, incomplete, or misleading — identify the specific file, read it, and apply the fix.
|
|
17
|
+
|
|
18
|
+
Apply the tribal knowledge test: only add information that a fresh Claude instance would not already know. Standard tool usage (npm install, which, etc.) does not need documenting. Workarounds for bugs, non-obvious configuration details, and platform-specific gotchas do.
|
|
19
|
+
|
|
20
|
+
## Report
|
|
21
|
+
|
|
22
|
+
Tell the user what you changed and why, or confirm that no updates were needed.
|
|
@@ -9,14 +9,15 @@ context: fork
|
|
|
9
9
|
|
|
10
10
|
## Workflow Overview
|
|
11
11
|
|
|
12
|
-
This skill has
|
|
12
|
+
This skill has 5 steps. **You must complete ALL steps. Do not stop early or skip any step.**
|
|
13
13
|
|
|
14
14
|
1. **Identify Spec** - Find and verify the spec file
|
|
15
15
|
2. **Verify File Landscape** - Map files to acceptance criteria
|
|
16
16
|
3. **Generate Tasks** - Create task files in `tasks/` directory
|
|
17
|
-
4. **Review Tasks** -
|
|
17
|
+
4. **Review Tasks** - Run review checklist in a loop until no critical issues remain
|
|
18
|
+
5. **Reflect** - Note any skill issues observed during this run
|
|
18
19
|
|
|
19
|
-
|
|
20
|
+
Steps 4 and 5 are mandatory. The review loop in step 4 is automated — fix issues and re-check until clean, with no user input required.
|
|
20
21
|
|
|
21
22
|
## What To Do Now
|
|
22
23
|
|
|
@@ -60,13 +60,10 @@ docs/specs/<name>/
|
|
|
60
60
|
|
|
61
61
|
Use the template in `templates/task.md` for each file. Name files in dependency order so alphabetical sorting reflects execution order.
|
|
62
62
|
|
|
63
|
-
##
|
|
63
|
+
## Do NOT Present Results Yet
|
|
64
64
|
|
|
65
|
-
|
|
65
|
+
You have generated task files but you are NOT done. The review step is next and it is mandatory.
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
2. Invoke the `task-review` skill to validate the breakdown
|
|
69
|
-
3. Fix any critical issues found
|
|
70
|
-
4. Only then present results (including any warnings)
|
|
67
|
+
**IMPORTANT: You are not done. You MUST read and complete the next step. The workflow is incomplete without it.**
|
|
71
68
|
|
|
72
|
-
|
|
69
|
+
Read `references/step-4-review.md` now.
|
|
@@ -1,50 +1,95 @@
|
|
|
1
1
|
# Step 4: Review Task Breakdown
|
|
2
2
|
|
|
3
|
-
**This step is
|
|
3
|
+
**IMPORTANT: This step is mandatory. The spec-to-tasks workflow is not complete until this step is finished. Do not skip this.**
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
You must review the generated tasks, fix any issues, and re-review until the breakdown is clean. This is fully automated — do not ask the user for input during this step.
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
## Review Checklist
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
Read every task file and the spec. Evaluate each area below. For each issue found, note the severity:
|
|
10
|
+
- **Critical**: Must fix before proceeding
|
|
11
|
+
- **Warning**: Should fix, but could proceed
|
|
12
|
+
- **Note**: Minor suggestion
|
|
12
13
|
|
|
13
|
-
|
|
14
|
+
### 1. Coverage
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
- Coverage (all criteria have tasks)
|
|
17
|
-
- Dependency order (tasks properly sequenced)
|
|
18
|
-
- File plausibility (paths make sense)
|
|
19
|
-
- Verification executability (concrete commands)
|
|
20
|
-
- Task scope (appropriately sized)
|
|
21
|
-
- Consistency (format, frontmatter)
|
|
16
|
+
Compare acceptance criteria in the spec to tasks generated.
|
|
22
17
|
|
|
23
|
-
|
|
18
|
+
- Every acceptance criterion has exactly one corresponding task
|
|
19
|
+
- No criteria were skipped or forgotten
|
|
20
|
+
- No phantom tasks that don't map to a criterion
|
|
24
21
|
|
|
25
|
-
|
|
22
|
+
**How to verify:** List each criterion from the spec's Acceptance Criteria section. For each, find the matching task file. Flag any orphans in either direction.
|
|
26
23
|
|
|
27
|
-
|
|
24
|
+
### 2. Dependency Order
|
|
28
25
|
|
|
29
|
-
|
|
26
|
+
- Task file names sort in valid execution order (T001, T002, etc.)
|
|
27
|
+
- Each task's `depends_on` references only earlier tasks
|
|
28
|
+
- No circular dependencies
|
|
29
|
+
- Foundation work comes before features that use it
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
### 3. File Plausibility
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
- File paths follow project conventions
|
|
34
|
+
- Files to modify actually exist in the codebase
|
|
35
|
+
- Files to create are in appropriate directories
|
|
36
|
+
- No duplicate files across tasks (each file appears in exactly one task)
|
|
34
37
|
|
|
35
|
-
|
|
38
|
+
### 4. Verification Executability
|
|
36
39
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
40
|
+
- Verification is a specific command or script, not vague prose
|
|
41
|
+
- Test file paths exist or will be created by the task
|
|
42
|
+
- No "manually verify" without clear steps
|
|
43
|
+
|
|
44
|
+
**Red flags:** "Verify it works correctly", "Check that the feature functions", test commands for files not listed in the task.
|
|
45
|
+
|
|
46
|
+
### 5. Verification Completeness
|
|
47
|
+
|
|
48
|
+
- Read the criterion text carefully — identify every distinct behavior or edge case mentioned
|
|
49
|
+
- For each behavior, confirm there's a corresponding verification step
|
|
50
|
+
- Flag any behaviors in the criterion that have no verification
|
|
51
|
+
|
|
52
|
+
### 6. Dependency Completeness
|
|
53
|
+
|
|
54
|
+
- If task X modifies a file, check if another task creates it — that task must be in X's depends_on
|
|
55
|
+
- If task X uses a component/function/route, check if another task creates it — that task must be in X's depends_on
|
|
56
|
+
|
|
57
|
+
### 7. Task Scope
|
|
58
|
+
|
|
59
|
+
- No task touches more than ~10 files (consider splitting)
|
|
60
|
+
- No trivially small tasks that could merge with related work
|
|
61
|
+
- Each task produces a verifiable outcome
|
|
62
|
+
|
|
63
|
+
### 8. Consistency
|
|
41
64
|
|
|
42
|
-
|
|
65
|
+
- Task titles match or closely reflect the acceptance criterion
|
|
66
|
+
- Status is `pending` for all new tasks
|
|
67
|
+
- Frontmatter format is consistent across all task files
|
|
43
68
|
|
|
44
|
-
|
|
69
|
+
### 9. Component Consolidation
|
|
45
70
|
|
|
46
|
-
|
|
71
|
+
- No two tasks create components with similar names, purposes, or overlapping structure
|
|
72
|
+
- Shared patterns use a single shared component with configuration, not separate implementations
|
|
73
|
+
|
|
74
|
+
## Review Loop
|
|
75
|
+
|
|
76
|
+
Run the checklist above against all task files. Then:
|
|
77
|
+
|
|
78
|
+
1. **If Critical issues found:** Fix them by editing the task files. Then re-run the full checklist again from the top. Repeat until no Critical issues remain.
|
|
79
|
+
2. **If only Warnings/Notes remain:** Proceed — you will present these to the user.
|
|
80
|
+
3. **If no issues found:** Proceed.
|
|
81
|
+
|
|
82
|
+
Do NOT present results after a single pass if Critical issues exist. The loop must continue until clean.
|
|
83
|
+
|
|
84
|
+
## Present to User
|
|
85
|
+
|
|
86
|
+
After the review loop completes with no Critical issues, present:
|
|
87
|
+
|
|
88
|
+
1. Number of tasks generated
|
|
89
|
+
2. Task dependency tree (visual format)
|
|
90
|
+
3. Any Warnings from the review (with your recommendation)
|
|
91
|
+
4. Offer to show task files or proceed to implementation
|
|
47
92
|
|
|
48
|
-
|
|
93
|
+
**IMPORTANT: You are not done. You MUST read and complete the next step. The workflow is incomplete without it.**
|
|
49
94
|
|
|
50
|
-
|
|
95
|
+
Read `references/step-5-reflect.md` now.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Step 5: Skill Reflection
|
|
2
|
+
|
|
3
|
+
**IMPORTANT: This step is mandatory. The spec-to-tasks workflow is not complete until this step is finished. Do not skip this.**
|
|
4
|
+
|
|
5
|
+
## Reflect on This Run
|
|
6
|
+
|
|
7
|
+
Think about how this skill performed during this session. Consider:
|
|
8
|
+
|
|
9
|
+
1. **Step instructions**: Were any steps unclear, misleading, or missing information?
|
|
10
|
+
2. **Task template**: Did the template work well, or did you need to deviate from it?
|
|
11
|
+
3. **Review checklist**: Did the checklist catch real issues? Were any checks unnecessary or missing?
|
|
12
|
+
4. **Workflow flow**: Did the step order make sense? Were there unnecessary steps or missing ones?
|
|
13
|
+
|
|
14
|
+
## Report Issues
|
|
15
|
+
|
|
16
|
+
If you identified any problems with the skill's instructions, templates, or workflow, include a brief note in your final output to the user under a "Skill Observations" heading. Keep it factual — what was wrong, what would be better.
|
|
17
|
+
|
|
18
|
+
If everything worked well, state: "No skill issues observed."
|
|
19
|
+
|
|
20
|
+
## Complete
|
|
21
|
+
|
|
22
|
+
The spec-to-tasks workflow is now complete.
|