@codyswann/lisa 1.0.5 → 1.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.
- package/README.md +19 -0
- package/all/copy-overwrite/.claude/commands/project/add-test-coverage.md +34 -35
- package/all/copy-overwrite/.claude/commands/project/archive.md +2 -1
- package/all/copy-overwrite/.claude/commands/project/bootstrap.md +26 -31
- package/all/copy-overwrite/.claude/commands/project/debrief.md +30 -35
- package/all/copy-overwrite/.claude/commands/project/execute.md +37 -19
- package/all/copy-overwrite/.claude/commands/project/fix-linter-error.md +40 -61
- package/all/copy-overwrite/.claude/commands/project/implement.md +9 -9
- package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +42 -30
- package/all/copy-overwrite/.claude/commands/project/plan.md +32 -12
- package/all/copy-overwrite/.claude/commands/project/reduce-max-lines-per-function.md +35 -46
- package/all/copy-overwrite/.claude/commands/project/reduce-max-lines.md +33 -46
- package/all/copy-overwrite/.claude/commands/project/research.md +25 -0
- package/all/copy-overwrite/.claude/commands/project/review.md +30 -20
- package/all/copy-overwrite/.claude/commands/project/setup.md +51 -15
- package/all/copy-overwrite/.claude/commands/project/verify.md +26 -54
- package/all/copy-overwrite/.claude/commands/pull-request/review.md +62 -20
- package/all/copy-overwrite/.claude/settings.json +1 -1
- package/all/copy-overwrite/.claude/skills/prompt-complexity-scorer/SKILL.md +14 -0
- package/all/copy-overwrite/HUMAN.md +0 -12
- package/all/create-only/.lisaignore +7 -0
- package/cdk/copy-overwrite/.github/workflows/deploy.yml +1 -1
- package/dist/core/config.d.ts +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +1 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/lisa.d.ts +10 -10
- package/dist/core/lisa.d.ts.map +1 -1
- package/dist/core/lisa.js +69 -32
- package/dist/core/lisa.js.map +1 -1
- package/dist/utils/ignore-patterns.d.ts +20 -0
- package/dist/utils/ignore-patterns.d.ts.map +1 -0
- package/dist/utils/ignore-patterns.js +82 -0
- package/dist/utils/ignore-patterns.js.map +1 -0
- package/expo/copy-overwrite/.github/workflows/lighthouse.yml +17 -0
- package/expo/copy-overwrite/knip.json +2 -0
- package/nestjs/copy-overwrite/.github/workflows/deploy.yml +1 -1
- package/package.json +18 -13
- package/typescript/copy-overwrite/.github/workflows/quality.yml +46 -0
- package/typescript/copy-overwrite/.github/workflows/release.yml +3 -12
- package/typescript/merge/package.json +2 -1
- package/all/copy-overwrite/.claude/commands/project/complete-task.md +0 -59
|
@@ -109,7 +109,16 @@ For each task, use **TaskCreate** with:
|
|
|
109
109
|
[Or "N/A - no user-facing changes"]
|
|
110
110
|
|
|
111
111
|
## Verification
|
|
112
|
-
**Type:** `ui-recording` | `test-coverage` | `api-test` | `manual-check` | `documentation`
|
|
112
|
+
**Type:** `test` | `ui-recording` | `test-coverage` | `api-test` | `manual-check` | `documentation`
|
|
113
|
+
|
|
114
|
+
| Type | When to Use | Example |
|
|
115
|
+
|------|-------------|---------|
|
|
116
|
+
| `test` | Run specific tests | `bun run test -- src/services/user.spec.ts` |
|
|
117
|
+
| `ui-recording` | UI/UX changes | `bun run playwright:test ...` |
|
|
118
|
+
| `test-coverage` | Coverage threshold | `bun run test:cov -- --collectCoverageFrom='...'` |
|
|
119
|
+
| `api-test` | API endpoints | `./scripts/verify/<task-name>.sh` |
|
|
120
|
+
| `documentation` | Docs, README | `cat path/to/doc.md` |
|
|
121
|
+
| `manual-check` | Config, setup | Command showing config exists |
|
|
113
122
|
|
|
114
123
|
**Proof Command:**
|
|
115
124
|
```bash
|
|
@@ -118,6 +127,21 @@ For each task, use **TaskCreate** with:
|
|
|
118
127
|
|
|
119
128
|
**Expected Output:**
|
|
120
129
|
[What success looks like]
|
|
130
|
+
|
|
131
|
+
## Learnings
|
|
132
|
+
During implementation, collect any discoveries valuable for future developers:
|
|
133
|
+
- Gotchas or unexpected behavior encountered
|
|
134
|
+
- Edge cases that weren't obvious from requirements
|
|
135
|
+
- Better approaches discovered during implementation
|
|
136
|
+
- Patterns that should be reused or avoided
|
|
137
|
+
- Documentation gaps or misleading information found
|
|
138
|
+
|
|
139
|
+
**On task completion**, use `TaskUpdate` to save learnings:
|
|
140
|
+
```
|
|
141
|
+
TaskUpdate:
|
|
142
|
+
taskId: "<this-task-id>"
|
|
143
|
+
metadata: { learnings: ["Learning 1", "Learning 2", ...] }
|
|
144
|
+
```
|
|
121
145
|
```
|
|
122
146
|
|
|
123
147
|
**metadata**:
|
|
@@ -127,7 +151,7 @@ For each task, use **TaskCreate** with:
|
|
|
127
151
|
"type": "bug|task|epic|story",
|
|
128
152
|
"skills": ["/coding-philosophy", ...],
|
|
129
153
|
"verification": {
|
|
130
|
-
"type": "test
|
|
154
|
+
"type": "test|ui-recording|test-coverage|api-test|manual-check|documentation",
|
|
131
155
|
"command": "the proof command",
|
|
132
156
|
"expected": "what success looks like"
|
|
133
157
|
}
|
|
@@ -138,16 +162,6 @@ For each task, use **TaskCreate** with:
|
|
|
138
162
|
|
|
139
163
|
After creating all tasks, use **TaskUpdate** with `addBlockedBy` to establish task order where needed.
|
|
140
164
|
|
|
141
|
-
**Verification Type Reference:**
|
|
142
|
-
|
|
143
|
-
| Type | When to Use | Example |
|
|
144
|
-
|------|-------------|---------|
|
|
145
|
-
| `ui-recording` | UI/UX changes | `bun run playwright:test ...` |
|
|
146
|
-
| `test-coverage` | New code with tests | `bun run test:cov -- --collectCoverageFrom='...'` |
|
|
147
|
-
| `api-test` | New API endpoints | `./scripts/verify/<task-name>.sh` |
|
|
148
|
-
| `documentation` | Docs, README | `cat path/to/doc.md` |
|
|
149
|
-
| `manual-check` | Config, setup | Command showing config exists |
|
|
150
|
-
|
|
151
165
|
## Step 5: Report
|
|
152
166
|
|
|
153
167
|
Report: "Planning complete - X tasks created for project <project-name>"
|
|
@@ -157,3 +171,9 @@ Use **TaskList** to show the created tasks.
|
|
|
157
171
|
---
|
|
158
172
|
|
|
159
173
|
**IMPORTANT**: Each task description should contain all necessary information from `brief.md` and `research.md` to complete in isolation. Tasks should be independent and as small in scope as possible.
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Next Step
|
|
178
|
+
|
|
179
|
+
After completing this phase, tell the user: "To continue, run `/project:implement $ARGUMENTS`"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Reduce max lines per function threshold and fix violations
|
|
3
|
-
allowed-tools: Read,
|
|
3
|
+
allowed-tools: Read, Bash, Glob, Grep
|
|
4
4
|
argument-hint: <max-lines-per-function-value>
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
@@ -11,66 +11,55 @@ Target threshold: $ARGUMENTS lines per function
|
|
|
11
11
|
|
|
12
12
|
If no argument provided, prompt the user for a target.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Step 1: Gather Requirements
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
1. **Read current config** from eslint thresholds (eslint.thresholds.json or similar)
|
|
17
|
+
2. **Run lint** with the new threshold to find violations:
|
|
18
|
+
```bash
|
|
19
|
+
bun run lint 2>&1 | grep "max-lines-per-function"
|
|
20
|
+
```
|
|
21
|
+
3. **Note for each violation**:
|
|
22
|
+
- File path and line number
|
|
23
|
+
- Function name
|
|
24
|
+
- Current line count
|
|
17
25
|
|
|
18
|
-
|
|
26
|
+
If no violations at $ARGUMENTS, report success and exit.
|
|
19
27
|
|
|
20
|
-
|
|
21
|
-
cat .claude-active-project 2>/dev/null
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
If a project is active, include `metadata: { "project": "<project-name>" }` in all TaskCreate calls.
|
|
25
|
-
|
|
26
|
-
### Step 1: Locate Configuration
|
|
27
|
-
|
|
28
|
-
Read the eslint thresholds config (`eslint.thresholds.json` or similar).
|
|
28
|
+
## Step 2: Generate Brief
|
|
29
29
|
|
|
30
|
-
|
|
30
|
+
Compile findings into a detailed brief:
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### Step 3: Identify Violations
|
|
35
|
-
|
|
36
|
-
Run lint to find all functions exceeding the new threshold. Note file path, function name, and current line count.
|
|
37
|
-
|
|
38
|
-
If no violations, report success and exit.
|
|
32
|
+
```
|
|
33
|
+
Reduce max lines per function threshold to $ARGUMENTS.
|
|
39
34
|
|
|
40
|
-
|
|
35
|
+
## Functions Exceeding Threshold (ordered by line count)
|
|
41
36
|
|
|
42
|
-
|
|
37
|
+
1. src/services/user.ts:processUser (95 lines, target: $ARGUMENTS)
|
|
38
|
+
- Line 45, function spans lines 45-140
|
|
39
|
+
2. src/utils/helpers.ts:validateInput (82 lines, target: $ARGUMENTS)
|
|
40
|
+
- Line 23, function spans lines 23-105
|
|
41
|
+
...
|
|
43
42
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
- **activeForm**: "Reducing lines in [function-name]" (present continuous)
|
|
48
|
-
- **metadata**: `{ "project": "<active-project>" }` if project context exists
|
|
43
|
+
## Configuration Change
|
|
44
|
+
- File: eslint.thresholds.json
|
|
45
|
+
- Change: maxLinesPerFunction to $ARGUMENTS
|
|
49
46
|
|
|
50
|
-
Refactoring
|
|
47
|
+
## Refactoring Strategies
|
|
51
48
|
- **Extract functions**: Break function into smaller named functions
|
|
52
49
|
- **Early returns**: Reduce nesting with guard clauses
|
|
53
50
|
- **Extract conditions**: Move complex boolean logic into named variables
|
|
54
51
|
- **Use lookup tables**: Replace complex switch/if-else chains with object maps
|
|
55
52
|
- **Consolidate logic**: Merge similar code paths
|
|
56
53
|
|
|
57
|
-
|
|
54
|
+
## Acceptance Criteria
|
|
55
|
+
- All functions at or below $ARGUMENTS lines
|
|
56
|
+
- `bun run lint` passes with no max-lines-per-function violations
|
|
58
57
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
Check for remaining pending tasks. Re-run lint to verify.
|
|
64
|
-
|
|
65
|
-
If violations remain, repeat from Step 3.
|
|
66
|
-
|
|
67
|
-
Continue until all functions meet or are under $ARGUMENTS lines.
|
|
58
|
+
## Verification
|
|
59
|
+
Command: `bun run lint 2>&1 | grep "max-lines-per-function" | wc -l`
|
|
60
|
+
Expected: 0
|
|
61
|
+
```
|
|
68
62
|
|
|
69
|
-
|
|
63
|
+
## Step 3: Bootstrap Project
|
|
70
64
|
|
|
71
|
-
|
|
72
|
-
Max lines per function reduction complete:
|
|
73
|
-
- Target threshold: $ARGUMENTS
|
|
74
|
-
- Functions refactored: [count]
|
|
75
|
-
- Functions reduced: [list with line counts]
|
|
76
|
-
```
|
|
65
|
+
Run `/project:bootstrap` with the generated brief as a text prompt.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
description: Reduce max file lines threshold and fix violations
|
|
3
|
-
allowed-tools: Read,
|
|
3
|
+
allowed-tools: Read, Bash, Glob, Grep
|
|
4
4
|
argument-hint: <max-lines-value>
|
|
5
5
|
model: sonnet
|
|
6
6
|
---
|
|
@@ -11,65 +11,52 @@ Target threshold: $ARGUMENTS lines per file
|
|
|
11
11
|
|
|
12
12
|
If no argument provided, prompt the user for a target.
|
|
13
13
|
|
|
14
|
-
##
|
|
14
|
+
## Step 1: Gather Requirements
|
|
15
15
|
|
|
16
|
-
|
|
16
|
+
1. **Read current config** from eslint thresholds (eslint.thresholds.json or similar)
|
|
17
|
+
2. **Run lint** with the new threshold to find violations:
|
|
18
|
+
```bash
|
|
19
|
+
bun run lint 2>&1 | grep "max-lines"
|
|
20
|
+
```
|
|
21
|
+
3. **Note for each violation**:
|
|
22
|
+
- File path
|
|
23
|
+
- Current line count
|
|
17
24
|
|
|
18
|
-
|
|
25
|
+
If no violations at $ARGUMENTS, report success and exit.
|
|
19
26
|
|
|
20
|
-
|
|
21
|
-
cat .claude-active-project 2>/dev/null
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
If a project is active, include `metadata: { "project": "<project-name>" }` in all TaskCreate calls.
|
|
25
|
-
|
|
26
|
-
### Step 1: Locate Configuration
|
|
27
|
-
|
|
28
|
-
Read the eslint thresholds config (`eslint.thresholds.json` or similar).
|
|
27
|
+
## Step 2: Generate Brief
|
|
29
28
|
|
|
30
|
-
|
|
29
|
+
Compile findings into a detailed brief:
|
|
31
30
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
### Step 3: Identify Violations
|
|
35
|
-
|
|
36
|
-
Run lint to find all files exceeding the new threshold. Note file path and current line count.
|
|
37
|
-
|
|
38
|
-
If no violations, report success and exit.
|
|
31
|
+
```
|
|
32
|
+
Reduce max file lines threshold to $ARGUMENTS.
|
|
39
33
|
|
|
40
|
-
|
|
34
|
+
## Files Exceeding Threshold (ordered by line count)
|
|
41
35
|
|
|
42
|
-
|
|
36
|
+
1. src/services/user.ts (450 lines, target: $ARGUMENTS)
|
|
37
|
+
2. src/utils/helpers.ts (380 lines, target: $ARGUMENTS)
|
|
38
|
+
3. src/components/Dashboard.tsx (320 lines, target: $ARGUMENTS)
|
|
39
|
+
...
|
|
43
40
|
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
- **activeForm**: "Reducing lines in [file]" (present continuous)
|
|
48
|
-
- **metadata**: `{ "project": "<active-project>" }` if project context exists
|
|
41
|
+
## Configuration Change
|
|
42
|
+
- File: eslint.thresholds.json
|
|
43
|
+
- Change: maxLines to $ARGUMENTS
|
|
49
44
|
|
|
50
|
-
Refactoring
|
|
45
|
+
## Refactoring Strategies
|
|
51
46
|
- **Extract modules**: Break file into smaller focused modules
|
|
52
47
|
- **Remove duplication**: Consolidate repeated logic
|
|
53
48
|
- **Delete dead code**: Remove unused functions/code paths
|
|
54
49
|
- **Simplify logic**: Use early returns, reduce nesting
|
|
55
50
|
|
|
56
|
-
|
|
51
|
+
## Acceptance Criteria
|
|
52
|
+
- All files at or below $ARGUMENTS lines
|
|
53
|
+
- `bun run lint` passes with no max-lines violations
|
|
57
54
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Check for remaining pending tasks. Re-run lint to verify.
|
|
63
|
-
|
|
64
|
-
If violations remain, repeat from Step 3.
|
|
65
|
-
|
|
66
|
-
Continue until all files meet or are under $ARGUMENTS lines.
|
|
55
|
+
## Verification
|
|
56
|
+
Command: `bun run lint 2>&1 | grep "max-lines" | wc -l`
|
|
57
|
+
Expected: 0
|
|
58
|
+
```
|
|
67
59
|
|
|
68
|
-
|
|
60
|
+
## Step 3: Bootstrap Project
|
|
69
61
|
|
|
70
|
-
|
|
71
|
-
Max lines reduction complete:
|
|
72
|
-
- Target threshold: $ARGUMENTS
|
|
73
|
-
- Files refactored: [count]
|
|
74
|
-
- Files reduced: [list with line counts]
|
|
75
|
-
```
|
|
62
|
+
Run `/project:bootstrap` with the generated brief as a text prompt.
|
|
@@ -103,6 +103,15 @@ last_updated: [YYYY-MM-DD]
|
|
|
103
103
|
## Code References
|
|
104
104
|
- `path/to/file.py:123` - Description
|
|
105
105
|
|
|
106
|
+
## Reusable Code
|
|
107
|
+
### Existing Functions/Modules
|
|
108
|
+
- `path/to/utils.ts:45` - `functionName()` - description of what it does and how it can be reused
|
|
109
|
+
- `path/to/service.ts:120` - `ClassName` - description of reusable functionality
|
|
110
|
+
|
|
111
|
+
### Existing Patterns to Follow
|
|
112
|
+
- Similar feature implemented in `path/to/feature/` - follow same structure
|
|
113
|
+
- Existing implementation of X in `path/to/file.ts` - can be extended/adapted
|
|
114
|
+
|
|
106
115
|
## Architecture Documentation
|
|
107
116
|
[Patterns, conventions, design implementations]
|
|
108
117
|
|
|
@@ -119,6 +128,15 @@ last_updated: [YYYY-MM-DD]
|
|
|
119
128
|
### E2E Test Patterns
|
|
120
129
|
[Similar structure]
|
|
121
130
|
|
|
131
|
+
## Impacted Tests
|
|
132
|
+
### Tests Requiring Modification
|
|
133
|
+
- `tests/example.spec.ts` - tests X functionality, will need updates for Y
|
|
134
|
+
- `e2e/feature.spec.ts` - may need new assertions for Z
|
|
135
|
+
|
|
136
|
+
### Test Gaps
|
|
137
|
+
- No existing tests for X functionality - will need new test file
|
|
138
|
+
- Missing edge case coverage for Y scenario
|
|
139
|
+
|
|
122
140
|
## Documentation Patterns
|
|
123
141
|
### JSDoc Conventions
|
|
124
142
|
### Database Comments (Backend)
|
|
@@ -130,6 +148,7 @@ last_updated: [YYYY-MM-DD]
|
|
|
130
148
|
**Question**: [Full question]
|
|
131
149
|
**Context**: [Why this arose]
|
|
132
150
|
**Impact**: [What it affects]
|
|
151
|
+
**Recommendation**: [Researcher's best recommendation based on findings]
|
|
133
152
|
**Answer**: _[Human fills before /project:plan]_
|
|
134
153
|
```
|
|
135
154
|
|
|
@@ -144,3 +163,9 @@ Run `/git:commit`
|
|
|
144
163
|
- Focus on finding concrete file paths and line numbers
|
|
145
164
|
- Each sub-agent prompt should be specific and focused on read-only documentation
|
|
146
165
|
- **REMEMBER**: Document what IS, not what SHOULD BE
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Next Step
|
|
170
|
+
|
|
171
|
+
After completing this phase, tell the user: "To continue, run `/project:plan $ARGUMENTS`"
|
|
@@ -10,35 +10,45 @@ The current branch is a feature branch with full implementation of the project i
|
|
|
10
10
|
|
|
11
11
|
## Setup
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
2. Implement Claude Review Fixes
|
|
17
|
-
3. Perform CodeRabbit Review
|
|
18
|
-
4. Implement CodeRabbit Review Fixes
|
|
19
|
-
5. Perform Claude Optimizations
|
|
15
|
+
Extract `<project-name>` from the last segment of `$ARGUMENTS`.
|
|
20
16
|
|
|
21
|
-
##
|
|
17
|
+
## Create and Execute Tasks
|
|
22
18
|
|
|
23
|
-
|
|
19
|
+
Create workflow tracking tasks with `metadata.project` set to the project name:
|
|
24
20
|
|
|
25
|
-
|
|
21
|
+
```
|
|
22
|
+
TaskCreate:
|
|
23
|
+
subject: "Perform Claude review"
|
|
24
|
+
description: "If $ARGUMENTS/claude-review.md already exists, skip this task. Otherwise, run /project:local-code-review $ARGUMENTS"
|
|
25
|
+
metadata: { project: "<project-name>" }
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
TaskCreate:
|
|
28
|
+
subject: "Implement Claude review fixes"
|
|
29
|
+
description: "Read $ARGUMENTS/claude-review.md and fix any suggestions that score above 45."
|
|
30
|
+
metadata: { project: "<project-name>" }
|
|
28
31
|
|
|
29
|
-
|
|
30
|
-
|
|
32
|
+
TaskCreate:
|
|
33
|
+
subject: "Perform CodeRabbit review"
|
|
34
|
+
description: "If $ARGUMENTS/coderabbit-review.md already exists, skip this task. Otherwise, run `coderabbit review --plain || true` and write results to $ARGUMENTS/coderabbit-review.md"
|
|
35
|
+
metadata: { project: "<project-name>" }
|
|
31
36
|
|
|
32
|
-
|
|
37
|
+
TaskCreate:
|
|
38
|
+
subject: "Implement CodeRabbit review fixes"
|
|
39
|
+
description: "Evaluate suggestions in $ARGUMENTS/coderabbit-review.md and implement fixes for valid findings."
|
|
40
|
+
metadata: { project: "<project-name>" }
|
|
33
41
|
|
|
34
|
-
|
|
42
|
+
TaskCreate:
|
|
43
|
+
subject: "Perform Claude optimizations"
|
|
44
|
+
description: "Use the code simplifier agent to clean up code added to the current branch."
|
|
45
|
+
metadata: { project: "<project-name>" }
|
|
46
|
+
```
|
|
35
47
|
|
|
36
|
-
|
|
48
|
+
**Execute each task via a subagent** to preserve main context. Launch up to 6 in parallel where tasks don't have dependencies. Do not stop until all are completed.
|
|
37
49
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
Evaluate suggestions in `$ARGUMENTS/coderabbit-review.md` and implement fixes for valid findings.
|
|
50
|
+
---
|
|
41
51
|
|
|
42
|
-
## Step
|
|
52
|
+
## Next Step
|
|
43
53
|
|
|
44
|
-
|
|
54
|
+
After completing this phase, tell the user: "To continue, run `/project:verify $ARGUMENTS`"
|
|
@@ -1,19 +1,55 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: Initialize a
|
|
3
|
-
argument-hint: <
|
|
2
|
+
description: Initialize a project with full requirements analysis, planning, and structure setup
|
|
3
|
+
argument-hint: <file-path|jira-issue|text-description>
|
|
4
4
|
allowed-tools: Read, Write, Bash(git*), Glob, Grep, Task, TaskCreate, TaskUpdate, TaskList
|
|
5
5
|
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
7
|
+
## Step 1: Determine Input Type
|
|
8
|
+
|
|
9
|
+
Examine $ARGUMENTS to determine which type:
|
|
10
|
+
- **Jira issue**: Matches pattern like `SE-123`, `PROJ-456` (letters-dash-numbers)
|
|
11
|
+
- **File path**: Path exists as a file (check with Glob or Read)
|
|
12
|
+
- **Text prompt**: Everything else - a description of work to be done
|
|
13
|
+
|
|
14
|
+
## Step 2: Get Brief Content
|
|
15
|
+
|
|
16
|
+
Based on input type:
|
|
17
|
+
|
|
18
|
+
**If Jira issue:**
|
|
19
|
+
1. Use the atlassian MCP server to Read the issue FULLY
|
|
20
|
+
2. If MCP server not working, STOP and let human know
|
|
21
|
+
|
|
22
|
+
**If file path:**
|
|
23
|
+
1. Read the file FULLY (no limit/offset)
|
|
24
|
+
|
|
25
|
+
**If text prompt:**
|
|
26
|
+
1. The prompt IS the brief content - use $ARGUMENTS directly
|
|
27
|
+
|
|
28
|
+
## Step 3: Create Project Structure
|
|
29
|
+
|
|
30
|
+
1. Create project directory in `projects/` named `YYYY-MM-DD-<project-name>` where `<project-name>` is derived from:
|
|
31
|
+
- Jira: the issue key and title (e.g., `2026-01-26-se-123-add-auth`)
|
|
32
|
+
- File: the filename without extension
|
|
33
|
+
- Text prompt: a kebab-case summary of the prompt (e.g., `2026-01-26-add-user-authentication`)
|
|
34
|
+
|
|
35
|
+
2. Create `brief.md` in the project directory:
|
|
36
|
+
- Jira: populate with issue number, title, and description
|
|
37
|
+
- File: move/copy the file and rename to `brief.md`
|
|
38
|
+
- Text prompt: create `brief.md` with the prompt text as content
|
|
39
|
+
|
|
40
|
+
3. Create empty `findings.md` in the project directory
|
|
41
|
+
|
|
42
|
+
4. Create `.claude-active-project` marker file:
|
|
43
|
+
```bash
|
|
44
|
+
echo "YYYY-MM-DD-<project-name>" > .claude-active-project
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Step 4: Git and Finalize
|
|
48
|
+
|
|
49
|
+
1. If Jira issue:
|
|
50
|
+
- run /git:commit with branch name including issue number (e.g., `feature/SE-111-<branch-name>`)
|
|
51
|
+
- Use atlassian MCP server to update issue status to "In Progress"
|
|
52
|
+
2. Otherwise:
|
|
53
|
+
- run /git:commit
|
|
54
|
+
|
|
55
|
+
3. Output: "Project created: `YYYY-MM-DD-<project-name>`"
|
|
@@ -8,68 +8,40 @@ The current branch is a feature branch with full implementation of the project i
|
|
|
8
8
|
|
|
9
9
|
## Setup
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
|
|
12
12
|
|
|
13
|
-
|
|
14
|
-
2. Verify Implementation
|
|
15
|
-
3. Run Task Verification Commands
|
|
16
|
-
4. Document Drift
|
|
13
|
+
Extract `<project-name>` from the last segment of `$ARGUMENTS`.
|
|
17
14
|
|
|
18
|
-
##
|
|
15
|
+
## Create and Execute Tasks
|
|
19
16
|
|
|
20
|
-
|
|
17
|
+
Create workflow tracking tasks with `metadata.project` set to the project name:
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
```
|
|
20
|
+
TaskCreate:
|
|
21
|
+
subject: "Review requirements"
|
|
22
|
+
description: "Read all requirements for $ARGUMENTS (brief.md, research.md, task files)."
|
|
23
|
+
metadata: { project: "<project-name>" }
|
|
23
24
|
|
|
24
|
-
|
|
25
|
+
TaskCreate:
|
|
26
|
+
subject: "Verify implementation"
|
|
27
|
+
description: "Verify the implementation completely and fully satisfies all requirements from the brief and research."
|
|
28
|
+
metadata: { project: "<project-name>" }
|
|
25
29
|
|
|
26
|
-
|
|
30
|
+
TaskCreate:
|
|
31
|
+
subject: "Run task verification commands"
|
|
32
|
+
description: "Read all task files in $ARGUMENTS/tasks/. For each task with verification metadata (JSON: metadata.verification, or Markdown: ## Verification section), create a verification task with subject 'Verify: <original-subject>' and metadata including originalTaskId and verification details. Then execute each verification task: run the command, compare output to expected. If pass, mark completed. If fail, keep in_progress and document failure in $ARGUMENTS/drift.md. Report summary: total tasks, passed, failed, blocked."
|
|
33
|
+
metadata: { project: "<project-name>" }
|
|
27
34
|
|
|
28
|
-
|
|
35
|
+
TaskCreate:
|
|
36
|
+
subject: "Document drift"
|
|
37
|
+
description: "If there is any divergence from requirements or verification failures, ensure all drift is documented in $ARGUMENTS/drift.md."
|
|
38
|
+
metadata: { project: "<project-name>" }
|
|
39
|
+
```
|
|
29
40
|
|
|
30
|
-
|
|
41
|
+
**Execute each task via a subagent** to preserve main context. Launch up to 6 in parallel where tasks don't have dependencies. Do not stop until all are completed.
|
|
31
42
|
|
|
32
|
-
|
|
33
|
-
1. **Read the task file** (JSON or markdown)
|
|
34
|
-
2. **Check for verification metadata**:
|
|
35
|
-
- JSON tasks: Look for `metadata.verification`
|
|
36
|
-
- Markdown tasks: Look for `## Verification` section with `### Proof Command`
|
|
37
|
-
3. **If verification exists**, create a new task:
|
|
38
|
-
```
|
|
39
|
-
subject: "Verify: <original-task-subject>"
|
|
40
|
-
description: "Run verification for task <id>: <verification.command>"
|
|
41
|
-
activeForm: "Verifying <original-task-subject>"
|
|
42
|
-
metadata: {
|
|
43
|
-
"project": "<project-name>",
|
|
44
|
-
"phase": "verify",
|
|
45
|
-
"originalTaskId": "<id>",
|
|
46
|
-
"verification": <copy the verification object>
|
|
47
|
-
}
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 3b: Execute Verification Tasks
|
|
51
|
-
|
|
52
|
-
Work through each verification task:
|
|
53
|
-
|
|
54
|
-
1. **Run verification command** using Bash tool:
|
|
55
|
-
- JSON: Execute `metadata.verification.command`
|
|
56
|
-
- Markdown: Execute the command in `### Proof Command` code block
|
|
57
|
-
2. **Compare output to expected**:
|
|
58
|
-
- JSON: Compare to `metadata.verification.expected`
|
|
59
|
-
- Markdown: Compare to `### Expected Output` section
|
|
60
|
-
3. **Record results and mark task**:
|
|
61
|
-
- If verification passes → Mark task completed
|
|
62
|
-
- If verification fails → Keep task in_progress, document failure in drift.md
|
|
63
|
-
- If command cannot run → Keep task in_progress, document blocker in drift.md
|
|
64
|
-
|
|
65
|
-
### Verification Summary
|
|
66
|
-
|
|
67
|
-
After running all verification tasks, report:
|
|
68
|
-
- Total tasks with verification: X
|
|
69
|
-
- Passed: Y
|
|
70
|
-
- Failed: Z
|
|
71
|
-
- Blocked: W
|
|
43
|
+
---
|
|
72
44
|
|
|
73
|
-
## Step
|
|
45
|
+
## Next Step
|
|
74
46
|
|
|
75
|
-
|
|
47
|
+
After completing this phase, tell the user: "To continue, run `/project:debrief $ARGUMENTS`"
|