@codyswann/lisa 1.27.0 → 1.29.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/all/copy-overwrite/.claude/README.md +63 -37
- package/all/copy-overwrite/.claude/commands/jira/sync.md +7 -0
- package/all/copy-overwrite/.claude/commands/plan/add-test-coverage.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/create.md +3 -3
- package/all/copy-overwrite/.claude/commands/plan/fix-linter-error.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/implement.md +2 -2
- package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines-per-function.md +0 -1
- package/all/copy-overwrite/.claude/commands/plan/reduce-max-lines.md +0 -1
- package/all/copy-overwrite/.claude/commands/security/zap-scan.md +6 -0
- package/all/copy-overwrite/.claude/hooks/ticket-sync-reminder.sh +20 -0
- package/all/copy-overwrite/.claude/rules/lisa.md +1 -1
- package/all/copy-overwrite/.claude/rules/plan.md +101 -39
- package/all/copy-overwrite/.claude/rules/verfication.md +3 -2
- package/all/copy-overwrite/.claude/settings.json +5 -0
- package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +1 -2
- package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/jira-sync/SKILL.md +63 -0
- package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/plan-add-test-coverage/SKILL.md +12 -22
- package/all/copy-overwrite/.claude/skills/plan-create/SKILL.md +173 -0
- package/all/copy-overwrite/.claude/skills/plan-fix-linter-error/SKILL.md +13 -31
- package/all/copy-overwrite/.claude/skills/plan-implement/SKILL.md +25 -0
- package/all/copy-overwrite/.claude/skills/plan-lower-code-complexity/SKILL.md +11 -25
- package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines/SKILL.md +11 -25
- package/all/copy-overwrite/.claude/skills/plan-reduce-max-lines-per-function/SKILL.md +11 -27
- package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
- package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +1 -1
- package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +0 -1
- package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +0 -1
- package/all/copy-overwrite/CLAUDE.md +0 -1
- package/all/deletions.json +23 -1
- package/nestjs/copy-overwrite/.claude/skills/security-zap-scan/SKILL.md +33 -0
- package/package.json +1 -1
- package/typescript/copy-overwrite/.claude/commands/security/zap-scan.md +0 -12
|
@@ -10,9 +10,9 @@ This directory contains Claude Code configuration files that customize AI-assist
|
|
|
10
10
|
├── settings.local.json # Local overrides (gitignored)
|
|
11
11
|
├── settings.local.json.example # Template for local settings
|
|
12
12
|
├── agents/ # Custom agent definitions
|
|
13
|
-
├── commands/ # Slash command definitions
|
|
14
13
|
├── hooks/ # Automation hooks
|
|
15
|
-
|
|
14
|
+
├── rules/ # Always-on governance rules
|
|
15
|
+
└── skills/ # Skill definitions (colon-namespaced)
|
|
16
16
|
```
|
|
17
17
|
|
|
18
18
|
## Settings
|
|
@@ -109,31 +109,52 @@ Custom agent definitions in `agents/` provide specialized AI personas for differ
|
|
|
109
109
|
| `slash-command-architect.md` | Command design |
|
|
110
110
|
| `web-search-researcher.md` | Web research tasks |
|
|
111
111
|
|
|
112
|
-
##
|
|
112
|
+
## Skills
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
Skills use colon-namespaced directories (e.g., `plan:create/`) and are invoked via `/skill-name` in Claude Code.
|
|
115
115
|
|
|
116
|
-
|
|
117
|
-
- `jira/` - Jira integration commands
|
|
118
|
-
- `plan/` - Plan utility commands (test coverage, linting, code review, complexity)
|
|
119
|
-
- `pull-request/` - PR workflow commands
|
|
120
|
-
- `rules/` - Rule management commands
|
|
121
|
-
- `sonarqube/` - Code quality commands
|
|
116
|
+
### Plan Skills
|
|
122
117
|
|
|
123
|
-
|
|
118
|
+
| Skill | Purpose |
|
|
119
|
+
|-------|---------|
|
|
120
|
+
| `plan:create` | Create implementation plans from ticket URLs, file paths, or text descriptions |
|
|
121
|
+
| `plan:implement` | Execute an existing plan with an Agent Team |
|
|
122
|
+
| `plan:add-test-coverage` | Increase test coverage to a target threshold |
|
|
123
|
+
| `plan:fix-linter-error` | Fix all violations of specific ESLint rules |
|
|
124
|
+
| `plan:local-code-review` | Review local branch changes against main |
|
|
125
|
+
| `plan:lower-code-complexity` | Reduce cognitive complexity threshold |
|
|
126
|
+
| `plan:reduce-max-lines` | Reduce max file lines threshold |
|
|
127
|
+
| `plan:reduce-max-lines-per-function` | Reduce max function lines threshold |
|
|
128
|
+
|
|
129
|
+
### Git Skills
|
|
124
130
|
|
|
125
|
-
|
|
131
|
+
| Skill | Purpose |
|
|
132
|
+
|-------|---------|
|
|
133
|
+
| `git:commit` | Create conventional commits for current changes |
|
|
134
|
+
| `git:commit-and-submit-pr` | Commit changes and create/update a pull request |
|
|
135
|
+
| `git:submit-pr` | Push changes and create or update a pull request |
|
|
136
|
+
| `git:prune` | Prune local branches deleted on remote |
|
|
137
|
+
|
|
138
|
+
### Integration Skills
|
|
126
139
|
|
|
127
140
|
| Skill | Purpose |
|
|
128
141
|
|-------|---------|
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
| `
|
|
133
|
-
| `
|
|
134
|
-
| `
|
|
135
|
-
| `
|
|
136
|
-
|
|
142
|
+
| `jira:create` | Create JIRA epics, stories, and tasks |
|
|
143
|
+
| `jira:verify` | Verify JIRA ticket meets organizational standards |
|
|
144
|
+
| `jira:sync` | Sync plan progress to linked JIRA tickets |
|
|
145
|
+
| `sonarqube:check` | Check SonarQube/SonarCloud quality gate failures |
|
|
146
|
+
| `sonarqube:fix` | Fix SonarQube quality gate failures |
|
|
147
|
+
| `pull-request:review` | Check and implement PR review comments |
|
|
148
|
+
| `security:zap-scan` | Run OWASP ZAP baseline security scan |
|
|
149
|
+
|
|
150
|
+
### Utility Skills
|
|
151
|
+
|
|
152
|
+
| Skill | Purpose |
|
|
153
|
+
|-------|---------|
|
|
154
|
+
| `tasks:load` | Load tasks from project directory into session |
|
|
155
|
+
| `tasks:sync` | Export session tasks to project directory |
|
|
156
|
+
| `skill-creator` | Guide for creating new skills |
|
|
157
|
+
| `jsdoc-best-practices` | JSDoc documentation standards |
|
|
137
158
|
|
|
138
159
|
See each skill's `SKILL.md` for detailed documentation.
|
|
139
160
|
|
|
@@ -141,31 +162,36 @@ See each skill's `SKILL.md` for detailed documentation.
|
|
|
141
162
|
|
|
142
163
|
### Adding Custom Skills
|
|
143
164
|
|
|
165
|
+
Skills contain implementation logic and use hyphen-separated naming:
|
|
166
|
+
|
|
144
167
|
```bash
|
|
145
|
-
mkdir -p .claude/skills/my-skill
|
|
146
|
-
cat > .claude/skills/my-skill/SKILL.md << 'EOF'
|
|
147
|
-
|
|
168
|
+
mkdir -p .claude/skills/my-namespace-my-skill
|
|
169
|
+
cat > .claude/skills/my-namespace-my-skill/SKILL.md << 'EOF'
|
|
170
|
+
---
|
|
171
|
+
name: my-namespace-my-skill
|
|
172
|
+
description: "What this skill does"
|
|
173
|
+
---
|
|
148
174
|
|
|
149
|
-
|
|
150
|
-
- Situation 1
|
|
151
|
-
- Situation 2
|
|
175
|
+
# My Skill
|
|
152
176
|
|
|
153
|
-
|
|
154
|
-
Step-by-step guidance...
|
|
177
|
+
Instructions for the skill...
|
|
155
178
|
EOF
|
|
156
179
|
```
|
|
157
180
|
|
|
158
181
|
### Adding Custom Commands
|
|
159
182
|
|
|
183
|
+
Commands are user-facing pass-throughs to skills. Directory nesting creates colon-separated names in the UI (e.g., `my-namespace/my-skill.md` becomes `/my-namespace:my-skill`):
|
|
184
|
+
|
|
160
185
|
```bash
|
|
161
|
-
mkdir -p .claude/commands/my-
|
|
162
|
-
cat > .claude/commands/my-
|
|
186
|
+
mkdir -p .claude/commands/my-namespace
|
|
187
|
+
cat > .claude/commands/my-namespace/my-skill.md << 'EOF'
|
|
163
188
|
---
|
|
164
|
-
|
|
165
|
-
|
|
189
|
+
description: "What this command does"
|
|
190
|
+
allowed-tools: ["Skill"]
|
|
191
|
+
argument-hint: "<arguments>"
|
|
166
192
|
---
|
|
167
193
|
|
|
168
|
-
|
|
194
|
+
Use the /my-namespace-my-skill skill to do the thing. $ARGUMENTS
|
|
169
195
|
EOF
|
|
170
196
|
```
|
|
171
197
|
|
|
@@ -201,8 +227,8 @@ EOF
|
|
|
201
227
|
2. Check marketplace access if using marketplace plugins
|
|
202
228
|
3. Review Claude Code logs for plugin errors
|
|
203
229
|
|
|
204
|
-
###
|
|
230
|
+
### Skills Not Found
|
|
205
231
|
|
|
206
|
-
1. Ensure
|
|
207
|
-
2. Restart Claude Code to reload
|
|
208
|
-
3. Check for syntax errors in
|
|
232
|
+
1. Ensure skill directory contains a `SKILL.md` file with correct frontmatter
|
|
233
|
+
2. Restart Claude Code to reload skills
|
|
234
|
+
3. Check for syntax errors in skill definition
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "Creates an implementation plan
|
|
3
|
-
argument-hint: "
|
|
2
|
+
description: "Creates an implementation plan from a ticket URL, file path, or text description"
|
|
3
|
+
argument-hint: "<ticket-url | @file-path | description>"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
Use plan
|
|
6
|
+
Use the /plan-create skill to create an implementation plan for $ARGUMENTS
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Ticket sync reminder hook
|
|
3
|
+
# Runs on TaskUpdate to remind about updating linked tickets
|
|
4
|
+
# Non-blocking (exit 0) - this is a reminder, not enforcement
|
|
5
|
+
|
|
6
|
+
PLANS_DIR="${CLAUDE_PROJECT_DIR}/plans"
|
|
7
|
+
|
|
8
|
+
# Find the active plan file (most recently modified .md in plans/)
|
|
9
|
+
ACTIVE_PLAN=$(find "$PLANS_DIR" -maxdepth 1 -name "*.md" -type f 2>/dev/null | head -1)
|
|
10
|
+
|
|
11
|
+
if [ -z "$ACTIVE_PLAN" ]; then
|
|
12
|
+
exit 0
|
|
13
|
+
fi
|
|
14
|
+
|
|
15
|
+
# Check if the plan contains a ticket URL (JIRA, Linear, GitHub Issues)
|
|
16
|
+
if grep -qiE "(https?://.*(atlassian|jira|linear|github\.com/.*/issues))" "$ACTIVE_PLAN" 2>/dev/null; then
|
|
17
|
+
echo "REMINDER: This plan is linked to a ticket. Consider running /jira:sync to update the ticket with current progress."
|
|
18
|
+
fi
|
|
19
|
+
|
|
20
|
+
exit 0
|
|
@@ -26,7 +26,7 @@ The following files are managed by Lisa and will be overwritten on every `lisa`
|
|
|
26
26
|
- `tsconfig.base.json`, `tsconfig.typescript.json`, `tsconfig.expo.json`, `tsconfig.nestjs.json`, `tsconfig.cdk.json`
|
|
27
27
|
- `tsconfig.eslint.json`, `tsconfig.build.json`, `tsconfig.spec.json`
|
|
28
28
|
- `eslint-plugin-code-organization/*`, `eslint-plugin-component-structure/*`, `eslint-plugin-ui-standards/*`
|
|
29
|
-
- `.claude/settings.json`, `.claude/hooks/*`, `.claude/skills
|
|
29
|
+
- `.claude/settings.json`, `.claude/hooks/*`, `.claude/skills/*` (hyphen-named, e.g. `plan-create`), `.claude/commands/*`, `.claude/agents/*`
|
|
30
30
|
- `.claude/README.md`, `.claude/REFERENCE.md`
|
|
31
31
|
- `.github/workflows/quality.yml`, `.github/workflows/release.yml`, `.github/workflows/claude.yml`
|
|
32
32
|
- `.github/workflows/build.yml`, `.github/workflows/lighthouse.yml` (Expo)
|
|
@@ -1,46 +1,88 @@
|
|
|
1
1
|
# Plan Mode Rules
|
|
2
2
|
|
|
3
|
-
These rules are enforced whenever Claude is in plan mode.
|
|
3
|
+
These rules are enforced whenever Claude is in plan mode. Loaded at session start via `.claude/rules/` and reinforced on every prompt via the `enforce-plan-rules.sh` `UserPromptSubmit` hook.
|
|
4
4
|
|
|
5
5
|
## Required Behaviors
|
|
6
6
|
|
|
7
7
|
When making a plan:
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
9
|
+
- Determine which skills are needed and include them in the plan
|
|
10
|
+
- Verify correct versions of third-party libraries
|
|
11
|
+
- Look for reusable code
|
|
12
|
+
- If a decision is left unresolved by the human, use the recommended option
|
|
13
|
+
- The plan MUST include TaskCreate instructions for each task (following the Task Creation Specification below). Specify that subagents should handle as many tasks in parallel as possible.
|
|
14
|
+
|
|
15
|
+
### Required Tasks
|
|
16
|
+
|
|
17
|
+
The following tasks are always required unless the plan includes only trivial changes:
|
|
18
|
+
|
|
19
|
+
- Product/UX review using `product-reviewer` agent (validate feature works from a non-technical perspective)
|
|
20
|
+
- CodeRabbit code review
|
|
21
|
+
- Local code review via `/plan-local-code-review`
|
|
22
|
+
- Technical review using `tech-reviewer` agent (beginner-friendly; correctness, security, performance)
|
|
23
|
+
- Implement valid review suggestions (run after all reviews complete)
|
|
24
|
+
- Simplify code using code simplifier agent (run after review implementation)
|
|
25
|
+
- Update/add/remove tests as needed (run after review implementation)
|
|
26
|
+
- Update/add/remove documentation -- JSDoc, markdown files, etc. (run after review implementation)
|
|
27
|
+
- Verify all verification metadata in existing tasks (run after review implementation)
|
|
28
|
+
- Collect learnings using `learner` agent (run after all reviews and simplification)
|
|
29
|
+
|
|
30
|
+
The following task is always required regardless of plan size:
|
|
31
|
+
|
|
32
|
+
- Archive the plan (run after all other tasks). This task must explicitly say to:
|
|
33
|
+
- Create a folder named `<plan-name>` in `./plans/completed`
|
|
34
|
+
- Rename the plan to reflect its actual contents
|
|
35
|
+
- Move it into `./plans/completed/<plan-name>`
|
|
36
|
+
- Read session IDs from `./plans/completed/<plan-name>`
|
|
37
|
+
- Move each `~/.claude/tasks/<session-id>` directory to `./plans/completed/<plan-name>/tasks`
|
|
38
|
+
- Update any "in_progress" task to "completed"
|
|
39
|
+
- Commit and push changes to the PR
|
|
40
|
+
|
|
41
|
+
### Branch and PR Rules
|
|
42
|
+
|
|
43
|
+
- On a protected branch (dev, staging, main): create a new branch and target the PR to the protected branch you branched from
|
|
44
|
+
- On a non-protected branch with an open PR: push to the existing PR
|
|
45
|
+
- On a non-protected branch with no PR: clarify which protected branch to target
|
|
35
46
|
- Open a draft pull request
|
|
36
|
-
- Include the branch name and
|
|
47
|
+
- Include the branch name and PR link in the plan
|
|
37
48
|
|
|
38
|
-
|
|
39
|
-
- The `## Sessions` section in plan files is auto-maintained by the `track-plan-sessions.sh` hook — do not manually edit it
|
|
49
|
+
### Ticket Integration
|
|
40
50
|
|
|
41
|
-
|
|
51
|
+
When referencing a ticket (JIRA, Linear, etc.):
|
|
52
|
+
|
|
53
|
+
- Include the ticket URL in the plan
|
|
54
|
+
- Update the ticket with the working branch
|
|
55
|
+
- Add a comment on the ticket with the finalized plan
|
|
56
|
+
|
|
57
|
+
NOTE: Do NOT include a separate task for linting, type-checking, or formatting. These are handled automatically by PostToolUse hooks (lint-on-edit.sh, format-on-edit.sh) and lint-staged pre-commit hooks (ESLint, Prettier, ast-grep).
|
|
58
|
+
|
|
59
|
+
IMPORTANT: The `## Sessions` section in plan files is auto-maintained by `track-plan-sessions.sh` -- do not manually edit it.
|
|
60
|
+
|
|
61
|
+
## Git Workflow
|
|
62
|
+
|
|
63
|
+
Every plan follows this workflow to keep PRs clean:
|
|
64
|
+
|
|
65
|
+
1. **First task:** Verify/create branch and open a draft PR (`gh pr create --draft`). No implementation before the draft PR exists.
|
|
66
|
+
2. **During implementation:** Commits only, no pushes. Pre-commit hooks validate lint, format, and typecheck.
|
|
67
|
+
3. **After archive task:** One final `git push`, then mark PR ready (`gh pr ready`), then enable auto-merge (`gh pr merge --auto --merge`).
|
|
68
|
+
|
|
69
|
+
## Implementation Team Guidance
|
|
70
|
+
|
|
71
|
+
When plans spawn an Agent Team for implementation, recommend these specialized agents:
|
|
72
|
+
|
|
73
|
+
| Agent | Use For | Why |
|
|
74
|
+
|-------|---------|-----|
|
|
75
|
+
| `implementer` | Code implementation | Pre-loaded with project conventions, empirical verification |
|
|
76
|
+
| `tech-reviewer` | Technical review | Beginner-friendly findings; covers correctness, security, performance |
|
|
77
|
+
| `product-reviewer` | Product/UX review | Validates from non-technical perspective; runs feature empirically |
|
|
78
|
+
| `learner` | Post-implementation learning | Processes task learnings through `skill-evaluator` to create skills, add rules, or discard |
|
|
79
|
+
| `test-coverage-agent` | Writing tests | Specialized for comprehensive, meaningful test coverage |
|
|
80
|
+
| `code-simplifier` (plugin) | Code simplification | Simplifies and refines for clarity and maintainability |
|
|
81
|
+
| `coderabbit` (plugin) | CodeRabbit review | Automated AI code review |
|
|
42
82
|
|
|
43
|
-
|
|
83
|
+
The **team lead** handles git operations (commits, pushes, PR management) -- teammates focus on their specialized work.
|
|
84
|
+
|
|
85
|
+
## Task Creation Specification
|
|
44
86
|
|
|
45
87
|
### Parameters
|
|
46
88
|
|
|
@@ -55,19 +97,41 @@ Every task description must be a markdown document with these sections:
|
|
|
55
97
|
|
|
56
98
|
**Description:** Clear description based on type (Bug: symptoms/root cause; Story: Gherkin Given/When/Then; Task: clear goal; Epic: goal with sub-tasks)
|
|
57
99
|
|
|
100
|
+
### Type-Specific Requirements
|
|
101
|
+
|
|
102
|
+
When the plan type is determined, apply the corresponding requirements:
|
|
103
|
+
|
|
104
|
+
#### Bug
|
|
105
|
+
- **Replication step** (mandatory): Reproduce the bug empirically before any fix
|
|
106
|
+
- **Root cause analysis**: Identify why the bug occurs
|
|
107
|
+
- **Regression test**: Write a test that fails without the fix and passes with it
|
|
108
|
+
- **Verification**: Run the replication step again to confirm the fix
|
|
109
|
+
|
|
110
|
+
#### Story/Feature
|
|
111
|
+
- **UX review**: Product-reviewer agent validates from user perspective
|
|
112
|
+
- **Feature flag consideration**: Should this be behind a flag?
|
|
113
|
+
- **Documentation**: User-facing docs if applicable
|
|
114
|
+
|
|
115
|
+
#### Task
|
|
116
|
+
- **Standard implementation** with empirical verification
|
|
117
|
+
|
|
118
|
+
#### Epic
|
|
119
|
+
- **Decompose into sub-tasks** (Stories/Tasks/Bugs)
|
|
120
|
+
- **Each sub-task gets its own type-specific requirements**
|
|
121
|
+
|
|
58
122
|
**Acceptance Criteria:** Checkbox list of completion criteria
|
|
59
123
|
|
|
60
|
-
**Relevant Research:** Code references, patterns, architecture constraints
|
|
124
|
+
**Relevant Research:** Code references, patterns, architecture constraints
|
|
61
125
|
|
|
62
|
-
**Skills to Invoke:**
|
|
126
|
+
**Skills to Invoke:** List applicable skills (coding-philosophy is auto-loaded as a rule)
|
|
63
127
|
|
|
64
128
|
**Implementation Details:** Files to modify, functions to implement, edge cases
|
|
65
129
|
|
|
66
|
-
**Testing Requirements:** Unit tests (with `describe/it` structure),
|
|
130
|
+
**Testing Requirements:** Unit tests (with `describe/it` structure), integration tests, E2E tests (or "N/A")
|
|
67
131
|
|
|
68
132
|
**Verification:** Every task MUST have empirical verification (see `verfication.md` for types). Include: verification type, proof command, and expected output.
|
|
69
133
|
|
|
70
|
-
**Learnings:** On
|
|
134
|
+
**Learnings:** On completion, use `TaskUpdate` to save discoveries: `metadata: { learnings: ["Learning 1", ...] }`
|
|
71
135
|
|
|
72
136
|
### Metadata
|
|
73
137
|
|
|
@@ -75,7 +139,7 @@ Every task description must be a markdown document with these sections:
|
|
|
75
139
|
{
|
|
76
140
|
"plan": "<plan-name>",
|
|
77
141
|
"type": "bug|task|epic|story",
|
|
78
|
-
"skills": ["
|
|
142
|
+
"skills": ["..."],
|
|
79
143
|
"verification": {
|
|
80
144
|
"type": "test|ui-recording|test-coverage|api-test|manual-check|documentation",
|
|
81
145
|
"command": "the proof command",
|
|
@@ -87,5 +151,3 @@ Every task description must be a markdown document with these sections:
|
|
|
87
151
|
### Task Sizing
|
|
88
152
|
|
|
89
153
|
Each task must be small enough to have a **single, specific verification**. Ask: "Can I prove this is done with ONE command?" Split tasks that require multiple verifications.
|
|
90
|
-
|
|
91
|
-
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Empirical Verification
|
|
2
2
|
|
|
3
|
-
Every task requires a **proof command** - a single command that empirically demonstrates the work is done.
|
|
3
|
+
Every task and plan requires a **proof command** - a single command that empirically demonstrates the work is done.
|
|
4
4
|
|
|
5
5
|
## Core Principle
|
|
6
6
|
|
|
@@ -13,7 +13,7 @@ Never assume something works because the code "looks correct." Run a command, ob
|
|
|
13
13
|
| `test` | Unit/integration tests | `npm test -- path/to/file.spec.ts` |
|
|
14
14
|
| `api-test` | API endpoints | `curl -s localhost:3000/api/endpoint` |
|
|
15
15
|
| `test-coverage` | Coverage thresholds | `npm run test:cov -- --collectCoverageFrom=...` |
|
|
16
|
-
| `ui-recording` | UI changes | Playwright/
|
|
16
|
+
| `ui-recording` | UI changes | Start local server; recorded session with Playwright/Maestro/Chrome Browser |
|
|
17
17
|
| `documentation` | Doc changes | `grep "expected" path/to/doc.md` |
|
|
18
18
|
| `manual-check` | Config/setup | `cat config.json \| jq '.setting'` |
|
|
19
19
|
|
|
@@ -23,6 +23,7 @@ Never assume something works because the code "looks correct." Run a command, ob
|
|
|
23
23
|
2. **Compare output** to expected result
|
|
24
24
|
3. **If verification fails**: Fix and re-run, don't mark complete
|
|
25
25
|
4. **If verification blocked** (missing Docker, services, etc.): Mark as blocked, not complete
|
|
26
|
+
5. **Must not be dependent on CI/CD** if necessary, you may use local deploy methods found in `package.json`, but the verification methods must be listed in the pull request and therefore cannot be dependent on CI/CD completing
|
|
26
27
|
|
|
27
28
|
## Example
|
|
28
29
|
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: git-commit
|
|
3
3
|
description: This skill should be used when creating conventional commits for current changes. It groups related changes into logical commits, ensures all files are committed, and verifies the working directory is clean afterward.
|
|
4
4
|
allowed-tools: ["Bash"]
|
|
5
|
-
argument-hint: "[commit-message-hint]"
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Git Commit Workflow
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: git-commit-and-submit-pr
|
|
3
|
-
description: This skill should be used when creating conventional commits for current changes and then submitting the current branch as a pull request for code review. It combines the git
|
|
3
|
+
description: This skill should be used when creating conventional commits for current changes and then submitting the current branch as a pull request for code review. It combines the git:commit and git:submit-pr skills into a single workflow.
|
|
4
4
|
allowed-tools: ["Bash"]
|
|
5
|
-
argument-hint: "[commit-message-hint]"
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
1. Run /git-commit $ARGUMENTS
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: git-submit-pr
|
|
3
3
|
description: This skill should be used when pushing changes and creating or updating a pull request. It verifies the branch state, pushes to remote, creates or updates a PR with a comprehensive description, and enables auto-merge.
|
|
4
4
|
allowed-tools: ["Bash", "mcp__github__create_pull_request", "mcp__github__get_pull_request", "mcp__github__update_pull_request"]
|
|
5
|
-
argument-hint: "[pr-title-or-description-hint]"
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Submit Pull Request Workflow
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: jira-create
|
|
3
3
|
description: This skill should be used when creating JIRA epics, stories, and tasks from code files or descriptions. It analyzes the provided input, determines the appropriate issue hierarchy, and creates issues with comprehensive quality requirements including test-first development and documentation.
|
|
4
4
|
allowed-tools: ["Read", "Glob", "LS", "mcp__atlassian__createJiraIssue", "mcp__atlassian__getVisibleJiraProjects", "mcp__atlassian__getJiraProjectIssueTypesMetadata", "mcp__atlassian__getAccessibleAtlassianResources"]
|
|
5
|
-
argument-hint: "<file-or-directory-path> [project-key]"
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Create JIRA Issues from $ARGUMENTS
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jira-sync
|
|
3
|
+
description: "Syncs plan progress to a linked JIRA ticket. Posts plan contents, progress updates, branch links, and PR links at key milestones. Use this skill throughout the plan lifecycle to keep tickets in sync."
|
|
4
|
+
allowed-tools: ["mcp__atlassian__*", "Bash", "Read", "Glob", "Grep"]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# JIRA Ticket Sync
|
|
8
|
+
|
|
9
|
+
Sync current plan progress to JIRA ticket: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
If no argument provided, search for a ticket URL in the active plan file (most recently modified `.md` in `plans/`).
|
|
12
|
+
|
|
13
|
+
## Workflow
|
|
14
|
+
|
|
15
|
+
### Step 1: Identify Ticket and Context
|
|
16
|
+
|
|
17
|
+
1. **Parse ticket ID** from `$ARGUMENTS` or extract from the active plan file
|
|
18
|
+
2. **Fetch current ticket state** via JIRA MCP (`mcp__atlassian__getJiraIssue`)
|
|
19
|
+
3. **Determine current milestone** by checking:
|
|
20
|
+
- Does a plan file exist? → Plan created
|
|
21
|
+
- Is there a working branch? → Implementation started
|
|
22
|
+
- Are tasks in progress? → Active implementation
|
|
23
|
+
- Is there an open PR? → PR ready for review
|
|
24
|
+
- Is the PR merged? → Complete
|
|
25
|
+
|
|
26
|
+
### Step 2: Gather Update Content
|
|
27
|
+
|
|
28
|
+
Based on the current milestone:
|
|
29
|
+
|
|
30
|
+
| Milestone | Content to Post |
|
|
31
|
+
|-----------|-----------------|
|
|
32
|
+
| **Plan created** | Plan summary, branch name, link to PR (if draft exists) |
|
|
33
|
+
| **Implementation in progress** | Task completion summary (X of Y tasks done), any blockers |
|
|
34
|
+
| **PR ready** | PR link, summary of changes, test results |
|
|
35
|
+
| **PR merged** | Final summary, suggest moving ticket to "Done" |
|
|
36
|
+
|
|
37
|
+
### Step 3: Post Update
|
|
38
|
+
|
|
39
|
+
1. **Add a comment** to the ticket with the gathered content via JIRA MCP
|
|
40
|
+
2. **Update ticket fields** if applicable:
|
|
41
|
+
- Add branch name to a custom field or comment
|
|
42
|
+
- Add PR link to a custom field or comment
|
|
43
|
+
3. **Report** what was synced to the user
|
|
44
|
+
|
|
45
|
+
### Step 4: Suggest Status Transition
|
|
46
|
+
|
|
47
|
+
Based on the milestone, suggest (but don't automatically perform) a status transition:
|
|
48
|
+
|
|
49
|
+
| Milestone | Suggested Status |
|
|
50
|
+
|-----------|-----------------|
|
|
51
|
+
| Plan created | "In Progress" |
|
|
52
|
+
| PR ready | "In Review" |
|
|
53
|
+
| PR merged | "Done" |
|
|
54
|
+
|
|
55
|
+
## Important Notes
|
|
56
|
+
|
|
57
|
+
- **Never auto-transition ticket status** — always suggest and let the user confirm
|
|
58
|
+
- **Idempotent updates** — running sync multiple times at the same milestone should not create duplicate comments
|
|
59
|
+
- **Comment format** — use JIRA markdown with clear headers and bullet points
|
|
60
|
+
|
|
61
|
+
## Execution
|
|
62
|
+
|
|
63
|
+
Sync the ticket now.
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
name: jira-verify
|
|
3
3
|
description: This skill should be used when verifying that a JIRA ticket meets organizational standards for epic relationships and description quality. It checks epic parent relationships and validates description completeness for coding assistants, developers, and stakeholders.
|
|
4
4
|
allowed-tools: ["mcp__atlassian__getJiraIssue", "mcp__atlassian__searchJiraIssuesUsingJql", "mcp__atlassian__getAccessibleAtlassianResources"]
|
|
5
|
-
argument-hint: "<TICKET-ID>"
|
|
6
5
|
---
|
|
7
6
|
|
|
8
7
|
# Verify JIRA Ticket: $ARGUMENTS
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: lisa-review-implementation
|
|
3
3
|
description: This skill should be used when comparing a project's Lisa-managed files against Lisa's source templates to identify drift. It reads the project manifest, locates source templates, generates diffs for drifted files, and offers to upstream improvements back to Lisa.
|
|
4
|
-
argument-hint: "[lisa-dir]"
|
|
5
4
|
---
|
|
6
5
|
|
|
7
6
|
# Lisa Implementation Review
|