@codyswann/lisa 1.12.9 → 1.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/all/copy-overwrite/.claude/commands/git/commit-and-submit-pr.md +2 -3
  2. package/all/copy-overwrite/.claude/commands/git/commit.md +2 -43
  3. package/all/copy-overwrite/.claude/commands/git/prune.md +2 -30
  4. package/all/copy-overwrite/.claude/commands/git/submit-pr.md +2 -45
  5. package/all/copy-overwrite/.claude/commands/jira/create.md +2 -45
  6. package/all/copy-overwrite/.claude/commands/jira/verify.md +2 -29
  7. package/all/copy-overwrite/.claude/commands/lisa/review-implementation.md +4 -206
  8. package/all/copy-overwrite/.claude/commands/project/add-test-coverage.md +4 -53
  9. package/all/copy-overwrite/.claude/commands/project/archive.md +4 -6
  10. package/all/copy-overwrite/.claude/commands/project/bootstrap.md +4 -25
  11. package/all/copy-overwrite/.claude/commands/project/debrief.md +4 -40
  12. package/all/copy-overwrite/.claude/commands/project/document.md +4 -48
  13. package/all/copy-overwrite/.claude/commands/project/execute.md +4 -64
  14. package/all/copy-overwrite/.claude/commands/project/fix-linter-error.md +4 -62
  15. package/all/copy-overwrite/.claude/commands/project/implement.md +4 -35
  16. package/all/copy-overwrite/.claude/commands/project/local-code-review.md +4 -85
  17. package/all/copy-overwrite/.claude/commands/project/lower-code-complexity.md +3 -58
  18. package/all/copy-overwrite/.claude/commands/project/plan.md +4 -175
  19. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines-per-function.md +4 -61
  20. package/all/copy-overwrite/.claude/commands/project/reduce-max-lines.md +4 -58
  21. package/all/copy-overwrite/.claude/commands/project/research.md +4 -162
  22. package/all/copy-overwrite/.claude/commands/project/review.md +4 -45
  23. package/all/copy-overwrite/.claude/commands/project/setup.md +4 -52
  24. package/all/copy-overwrite/.claude/commands/project/verify.md +4 -38
  25. package/all/copy-overwrite/.claude/commands/pull-request/review.md +4 -69
  26. package/all/copy-overwrite/.claude/commands/sonarqube/check.md +3 -3
  27. package/all/copy-overwrite/.claude/commands/sonarqube/fix.md +6 -3
  28. package/all/copy-overwrite/.claude/commands/tasks/load.md +4 -85
  29. package/all/copy-overwrite/.claude/commands/tasks/sync.md +4 -106
  30. package/all/copy-overwrite/.claude/skills/git-commit/SKILL.md +49 -0
  31. package/all/copy-overwrite/.claude/skills/git-commit-and-submit-pr/SKILL.md +9 -0
  32. package/all/copy-overwrite/.claude/skills/git-prune/SKILL.md +35 -0
  33. package/all/copy-overwrite/.claude/skills/git-submit-pr/SKILL.md +45 -0
  34. package/all/copy-overwrite/.claude/skills/jira-create/SKILL.md +42 -0
  35. package/all/copy-overwrite/.claude/skills/jira-verify/SKILL.md +30 -0
  36. package/all/copy-overwrite/.claude/skills/lisa-review-implementation/SKILL.md +210 -0
  37. package/all/copy-overwrite/.claude/skills/project-add-test-coverage/SKILL.md +58 -0
  38. package/all/copy-overwrite/.claude/skills/project-archive/SKILL.md +10 -0
  39. package/all/copy-overwrite/.claude/skills/project-bootstrap/SKILL.md +29 -0
  40. package/all/copy-overwrite/.claude/skills/project-debrief/SKILL.md +44 -0
  41. package/all/copy-overwrite/.claude/skills/project-document/SKILL.md +51 -0
  42. package/all/copy-overwrite/.claude/skills/project-execute/SKILL.md +68 -0
  43. package/all/copy-overwrite/.claude/skills/project-fix-linter-error/SKILL.md +67 -0
  44. package/all/copy-overwrite/.claude/skills/project-implement/SKILL.md +39 -0
  45. package/all/copy-overwrite/.claude/skills/project-local-code-review/SKILL.md +89 -0
  46. package/all/copy-overwrite/.claude/skills/project-lower-code-complexity/SKILL.md +62 -0
  47. package/all/copy-overwrite/.claude/skills/project-plan/SKILL.md +179 -0
  48. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines/SKILL.md +63 -0
  49. package/all/copy-overwrite/.claude/skills/project-reduce-max-lines-per-function/SKILL.md +66 -0
  50. package/all/copy-overwrite/.claude/skills/project-research/SKILL.md +166 -0
  51. package/all/copy-overwrite/.claude/skills/project-review/SKILL.md +49 -0
  52. package/all/copy-overwrite/.claude/skills/project-setup/SKILL.md +56 -0
  53. package/all/copy-overwrite/.claude/skills/project-verify/SKILL.md +42 -0
  54. package/all/copy-overwrite/.claude/skills/pull-request-review/SKILL.md +73 -0
  55. package/all/copy-overwrite/.claude/skills/sonarqube-check/SKILL.md +11 -0
  56. package/all/copy-overwrite/.claude/skills/sonarqube-fix/SKILL.md +8 -0
  57. package/all/copy-overwrite/.claude/skills/tasks-load/SKILL.md +89 -0
  58. package/all/copy-overwrite/.claude/skills/tasks-sync/SKILL.md +109 -0
  59. package/cdk/copy-overwrite/jest.cdk.ts +71 -0
  60. package/cdk/copy-overwrite/jest.config.ts +28 -0
  61. package/cdk/copy-overwrite/tsconfig.cdk.json +14 -0
  62. package/cdk/copy-overwrite/tsconfig.json +3 -0
  63. package/cdk/create-only/tsconfig.local.json +4 -0
  64. package/expo/copy-overwrite/jest.config.ts +28 -0
  65. package/expo/copy-overwrite/jest.expo.ts +76 -0
  66. package/expo/copy-overwrite/tsconfig.expo.json +9 -0
  67. package/expo/copy-overwrite/tsconfig.json +3 -0
  68. package/expo/create-only/tsconfig.local.json +9 -0
  69. package/nestjs/copy-overwrite/jest.config.ts +28 -0
  70. package/nestjs/copy-overwrite/jest.nestjs.ts +89 -0
  71. package/nestjs/copy-overwrite/tsconfig.build.json +5 -0
  72. package/nestjs/copy-overwrite/tsconfig.json +5 -0
  73. package/nestjs/copy-overwrite/tsconfig.nestjs.json +13 -0
  74. package/nestjs/copy-overwrite/tsconfig.spec.json +7 -0
  75. package/nestjs/create-only/tsconfig.local.json +6 -0
  76. package/package.json +1 -1
  77. package/typescript/copy-overwrite/jest.base.ts +112 -0
  78. package/typescript/copy-overwrite/jest.config.ts +34 -0
  79. package/typescript/copy-overwrite/jest.typescript.ts +72 -0
  80. package/typescript/copy-overwrite/tsconfig.base.json +15 -0
  81. package/typescript/copy-overwrite/tsconfig.json +5 -0
  82. package/typescript/copy-overwrite/tsconfig.typescript.json +11 -0
  83. package/typescript/create-only/jest.config.local.ts +30 -0
  84. package/typescript/create-only/jest.thresholds.json +8 -0
  85. package/typescript/create-only/tsconfig.local.json +6 -0
@@ -0,0 +1,9 @@
1
+ ---
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-commit and git-submit-pr skills into a single workflow.
4
+ allowed-tools: ["Bash"]
5
+ argument-hint: "[commit-message-hint]"
6
+ ---
7
+
8
+ 1. Run /git-commit $ARGUMENTS
9
+ 2. Run /git-submit-pr $ARGUMENTS
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: git-prune
3
+ description: This skill should be used when pruning local branches that have been deleted on the remote. It fetches remote changes, identifies stale local branches, and safely deletes them.
4
+ allowed-tools: ["Bash"]
5
+ ---
6
+
7
+ # Git Prune Local Branches
8
+
9
+ Remove local branches whose upstream tracking branches have been deleted on remote.
10
+
11
+ ## Workflow
12
+
13
+ ### Fetch and prune remote-tracking references
14
+
15
+ !git fetch --prune
16
+
17
+ ### Find and delete stale local branches
18
+
19
+ !git branch -vv | grep ': gone]' | awk '{print $1}'
20
+
21
+ ### Apply these requirements
22
+
23
+ 1. **Preview**: Show which branches will be deleted before deleting
24
+ 2. **Safe Delete**: Use `-d` (safe delete) which refuses to delete unmerged branches
25
+ 3. **Report**: Show summary of deleted branches
26
+
27
+ ### Never
28
+
29
+ - Force delete (`-D`) without user confirmation
30
+ - Delete the current branch
31
+ - Delete protected branches (dev, staging, main)
32
+
33
+ ## Execute
34
+
35
+ Execute the workflow now.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: git-submit-pr
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
+ 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
+ ---
7
+
8
+ # Submit Pull Request Workflow
9
+
10
+ Push current branch and create or update a pull request. Optional hint: $ARGUMENTS
11
+
12
+ ## Workflow
13
+
14
+ ### Check current state
15
+
16
+ !git status
17
+ !git log --oneline -10
18
+
19
+ ### Apply these requirements
20
+
21
+ 1. **Branch Check**: Verify not on `dev`, `staging`, or `main` (cannot create PR from protected branches)
22
+ 2. **Commit Check**: Ensure all changes are committed before pushing
23
+ 3. **Push**: Push current branch to remote with `-u` flag and the following environment variable - GIT_SSH_COMMAND="ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=5"
24
+ 4. **PR Management**:
25
+ - Check for existing PR on this branch
26
+ - If exists: Update description with latest changes
27
+ - If not: Create PR with comprehensive description (not a draft)
28
+ 5. **Auto-merge**: Enable auto-merge on the PR using `gh pr merge --auto --merge`
29
+
30
+ ### PR Description Format
31
+
32
+ Include in the PR description:
33
+
34
+ - **Summary**: Brief overview of changes (1-3 bullet points)
35
+ - **Test plan**: How to verify the changes work correctly
36
+
37
+ ### Never
38
+
39
+ - use `--force` push without explicit user request
40
+ - create PR from protected branches (dev, staging, main)
41
+ - skip pushing before PR creation
42
+
43
+ ## Execute
44
+
45
+ Execute the workflow now.
@@ -0,0 +1,42 @@
1
+ ---
2
+ name: jira-create
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
+ 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
+ ---
7
+
8
+ # Create JIRA Issues from $ARGUMENTS
9
+
10
+ Analyze the provided file(s) and create a comprehensive JIRA hierarchy with all mandatory quality gates.
11
+
12
+ ## Process
13
+
14
+ 1. **Analyze**: Read $ARGUMENTS to understand scope
15
+ 2. **Determine Structure**:
16
+ - Epic needed if: multiple features, major changes, >3 related files
17
+ - Direct tasks if: bug fix, single file, minor change
18
+ 3. **Create Issues** with hierarchy:
19
+ ```
20
+ Epic → User Story → Tasks (test, implement, document, cleanup)
21
+ ```
22
+
23
+ ## Mandatory for Every Code Issue
24
+
25
+ **Test-First**: Write tests before implementation
26
+ **Quality Gates**: All tests/checks must pass, no SonarCloud violations
27
+ **Documentation**: Check existing, update/create new, remove obsolete
28
+ **Feature Flags**: All features behind flags with lifecycle plan
29
+ **Cleanup**: Remove temporary code, scripts, dev configs
30
+
31
+ ## Issue Requirements
32
+
33
+ Each issue must clearly communicate to:
34
+
35
+ - **Coding Assistants**: Implementation requirements
36
+ - **Developers**: Technical approach
37
+ - **Stakeholders**: Business value
38
+
39
+ Default project: SE (override via arguments)
40
+ Exclude unless requested: migration plans, performance tests
41
+
42
+ Execute the analysis and create the complete JIRA structure with proper parent-child relationships.
@@ -0,0 +1,30 @@
1
+ ---
2
+ name: jira-verify
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
+ allowed-tools: ["mcp__atlassian__getJiraIssue", "mcp__atlassian__searchJiraIssuesUsingJql", "mcp__atlassian__getAccessibleAtlassianResources"]
5
+ argument-hint: "<TICKET-ID>"
6
+ ---
7
+
8
+ # Verify JIRA Ticket: $ARGUMENTS
9
+
10
+ Fetch ticket $ARGUMENTS and verify it meets organizational standards.
11
+
12
+ ## Verification Checks
13
+
14
+ ### 1. Epic Parent Relationship
15
+
16
+ **Rule**: Non-bug, non-epic tickets MUST have an epic parent
17
+
18
+ - If missing: Search filter 10089 (Epic Backlog) and suggest appropriate epics
19
+
20
+ ### 2. Description Quality
21
+
22
+ Verify description adequately addresses:
23
+
24
+ **Coding Assistants**: Acceptance criteria, requirements, constraints, I/O
25
+ **Developers**: Technical context, integration points, testing, edge cases
26
+ **Stakeholders**: Business value, user impact, success metrics, summary
27
+
28
+ ## Execute Verification
29
+
30
+ Retrieve ticket details, run both checks, and provide specific improvement recommendations for any failures.
@@ -0,0 +1,210 @@
1
+ ---
2
+ name: lisa-review-implementation
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
+ ---
6
+
7
+ # Lisa Implementation Review
8
+
9
+ This skill compares the current project's Lisa-managed files against Lisa's source templates to identify drift and offer to upstream improvements back to Lisa.
10
+
11
+ ## Prerequisites
12
+
13
+ This skill requires access to the Lisa installation directory. Either:
14
+ 1. Start Claude Code with `--add-dir ~/lisa` (or your Lisa path)
15
+ 2. Pass the Lisa directory as an argument: `/lisa-review-implementation ~/lisa`
16
+
17
+ ## Instructions
18
+
19
+ ### Step 1: Locate Lisa Directory
20
+
21
+ First, determine the Lisa installation directory:
22
+
23
+ 1. If an argument was provided, use that path
24
+ 2. Otherwise, check if any `--add-dir` paths contain a `src/core/lisa.ts` file (Lisa's signature file)
25
+ 3. Common locations to check: `~/lisa`, `~/workspace/lisa`, `../lisa`
26
+
27
+ If Lisa directory cannot be found, inform the user:
28
+ ```
29
+ Unable to locate Lisa installation directory.
30
+
31
+ Please either:
32
+ 1. Start Claude Code with: claude --add-dir /path/to/lisa
33
+ 2. Run this command with the path: /lisa-review-implementation /path/to/lisa
34
+ ```
35
+
36
+ ### Step 2: Read the Manifest
37
+
38
+ Read the project's `.lisa-manifest` file to get the list of managed files.
39
+
40
+ Parse each line to extract:
41
+ - `strategy`: The copy strategy used (copy-overwrite, copy-contents, merge, create-only)
42
+ - `relativePath`: The file path relative to project root
43
+
44
+ Skip:
45
+ - Lines starting with `#` (comments)
46
+ - Empty lines
47
+ - Files with `create-only` strategy (these are meant to be customized)
48
+ - Files with `merge` strategy (these are intentionally combined)
49
+
50
+ ### Step 3: Find Source Templates
51
+
52
+ For each managed file, locate its source in Lisa by checking these directories in order:
53
+ 1. `npm-package/copy-overwrite/` and `npm-package/copy-contents/`
54
+ 2. `cdk/copy-overwrite/` and `cdk/copy-contents/`
55
+ 3. `nestjs/copy-overwrite/` and `nestjs/copy-contents/`
56
+ 4. `expo/copy-overwrite/` and `expo/copy-contents/`
57
+ 5. `typescript/copy-overwrite/` and `typescript/copy-contents/`
58
+ 6. `all/copy-overwrite/` and `all/copy-contents/`
59
+
60
+ The FIRST match wins (most specific type takes precedence).
61
+
62
+ Detect which project types apply by checking the project for:
63
+ - `npm-package`: package.json without `"private": true` AND has `main`, `bin`, `exports`, or `files`
64
+ - `cdk`: presence of `cdk.json` or `aws-cdk` in dependencies
65
+ - `nestjs`: presence of `nest-cli.json` or `@nestjs` in dependencies
66
+ - `expo`: presence of `app.json`, `eas.json`, or `expo` in dependencies
67
+ - `typescript`: presence of `tsconfig.json` or `typescript` in dependencies
68
+
69
+ Only check type directories that match the project.
70
+
71
+ ### Step 4: Compare Files
72
+
73
+ For each file, compare the project version against the Lisa source:
74
+
75
+ 1. Read both files
76
+ 2. If identical, mark as "in sync"
77
+ 3. If different, generate a diff summary
78
+
79
+ Use the Bash tool with `diff` to generate readable diffs:
80
+ ```bash
81
+ diff -u "/path/to/lisa/source" "/path/to/project/file" || true
82
+ ```
83
+
84
+ ### Step 5: Generate Report
85
+
86
+ Create a markdown report with these sections:
87
+
88
+ ```markdown
89
+ # Lisa Implementation Review
90
+
91
+ **Project:** [project name from package.json]
92
+ **Lisa Source:** [lisa directory path]
93
+ **Generated:** [current date/time]
94
+
95
+ ## Summary
96
+
97
+ - **Total managed files:** X
98
+ - **In sync:** X
99
+ - **Drifted:** X
100
+ - **Source not found:** X
101
+
102
+ ## Drifted Files
103
+
104
+ ### [relative/path/to/file]
105
+
106
+ **Source:** [lisa-type]/copy-overwrite/[path]
107
+ **Strategy:** copy-overwrite
108
+
109
+ <details>
110
+ <summary>View diff</summary>
111
+
112
+ ```diff
113
+ [diff output]
114
+ ```
115
+
116
+ </details>
117
+
118
+ **Recommendation:** [Brief analysis of whether this change should be upstreamed]
119
+
120
+ ---
121
+
122
+ [Repeat for each drifted file]
123
+
124
+ ## Files Not Found in Lisa
125
+
126
+ These files are in the manifest but their source templates couldn't be located:
127
+
128
+ - [list of files]
129
+
130
+ ## In Sync Files
131
+
132
+ <details>
133
+ <summary>X files are in sync with Lisa</summary>
134
+
135
+ - [list of files]
136
+
137
+ </details>
138
+ ```
139
+
140
+ ### Step 6: Offer to Upstream Changes
141
+
142
+ After presenting the report, ask the user which drifted files they want to copy back to Lisa.
143
+
144
+ For each file the user wants to upstream:
145
+
146
+ 1. Confirm the target path in Lisa (e.g., `typescript/copy-overwrite/.github/workflows/ci.yml`)
147
+ 2. Use the Write tool to copy the project's version to Lisa
148
+ 3. Report success
149
+
150
+ Example prompt:
151
+ ```
152
+ I found X files that have drifted from Lisa's templates.
153
+
154
+ Which files would you like to copy back to Lisa?
155
+ 1. .github/workflows/ci.yml - [brief description of changes]
156
+ 2. .claude/settings.json - [brief description of changes]
157
+ 3. All of the above
158
+ 4. None - just show me the report
159
+
160
+ Select an option (or list specific numbers):
161
+ ```
162
+
163
+ ### Important Notes
164
+
165
+ - **Never auto-upstream without confirmation** - always ask the user first
166
+ - **Preserve the most specific type directory** - if a file exists in both `typescript/` and `all/`, upstream to where it currently exists
167
+ - **Handle binary files gracefully** - skip comparison for non-text files
168
+ - **Respect .gitignore patterns** - some generated files shouldn't be compared
169
+ - For `copy-contents` files like `.gitignore`, the comparison is trickier since the project may have additional lines - highlight only if Lisa's required lines are missing
170
+
171
+ ## Example Usage
172
+
173
+ ```
174
+ User: /lisa-review-implementation
175
+
176
+ Claude: I'll review your project's Lisa-managed files against the Lisa source templates.
177
+
178
+ [Locates Lisa directory]
179
+ [Reads manifest]
180
+ [Compares files]
181
+ [Generates report]
182
+
183
+ # Lisa Implementation Review
184
+
185
+ **Project:** my-awesome-app
186
+ **Lisa Source:** /Users/dev/lisa
187
+ **Generated:** 2026-01-18 10:30:00
188
+
189
+ ## Summary
190
+
191
+ - **Total managed files:** 45
192
+ - **In sync:** 42
193
+ - **Drifted:** 3
194
+ - **Source not found:** 0
195
+
196
+ ## Drifted Files
197
+
198
+ ### .github/workflows/ci.yml
199
+
200
+ **Source:** typescript/copy-overwrite/.github/workflows/ci.yml
201
+ **Strategy:** copy-overwrite
202
+
203
+ [diff details]
204
+
205
+ **Recommendation:** This adds a new caching step that improves CI performance. Good candidate for upstreaming.
206
+
207
+ ---
208
+
209
+ I found 3 files that have drifted. Would you like to upstream any of these changes back to Lisa?
210
+ ```
@@ -0,0 +1,58 @@
1
+ ---
2
+ name: project-add-test-coverage
3
+ description: This skill should be used when increasing test coverage to a specified threshold percentage. It runs the coverage report, identifies files with the lowest coverage, generates a brief with coverage gaps, and bootstraps a project to add the missing tests.
4
+ allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
+ argument-hint: "<threshold-percentage>"
6
+ model: sonnet
7
+ ---
8
+
9
+ # Increase Test Coverage
10
+
11
+ Target threshold: $ARGUMENTS%
12
+
13
+ If no argument provided, prompt the user for a target.
14
+
15
+ ## Step 1: Gather Requirements
16
+
17
+ 1. **Find coverage config** (jest.config.js, vitest.config.ts, .nycrc, etc.)
18
+ 2. **Run coverage report** to get current state:
19
+ ```bash
20
+ bun run test:cov 2>&1 | head -100
21
+ ```
22
+ 3. **Identify the 20 files with lowest coverage**, noting:
23
+ - File path
24
+ - Current coverage % (lines, branches, functions)
25
+ - Which lines/branches are uncovered
26
+
27
+ ## Step 2: Generate Brief
28
+
29
+ Compile findings into a detailed brief:
30
+
31
+ ```
32
+ Increase test coverage from [current]% to $ARGUMENTS%.
33
+
34
+ ## Files Needing Coverage (ordered by coverage gap)
35
+
36
+ 1. src/services/user.ts - 23% coverage (target: $ARGUMENTS%)
37
+ - Uncovered: lines 45-67, 89-102
38
+ - Missing branch coverage: lines 34, 56
39
+ 2. src/utils/helpers.ts - 34% coverage (target: $ARGUMENTS%)
40
+ - Uncovered: lines 12-45
41
+ ...
42
+
43
+ ## Configuration
44
+ - Config file: [path to coverage config]
45
+ - Update thresholds to $ARGUMENTS% for: lines, branches, functions, statements
46
+
47
+ ## Acceptance Criteria
48
+ - All files meet $ARGUMENTS% coverage threshold
49
+ - `bun run test:cov` passes with no threshold violations
50
+
51
+ ## Verification
52
+ Command: `bun run test:cov`
53
+ Expected: All thresholds pass at $ARGUMENTS%
54
+ ```
55
+
56
+ ## Step 3: Bootstrap Project
57
+
58
+ Run `/project-bootstrap` with the generated brief as a text prompt.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: project-archive
3
+ description: This skill should be used when archiving a completed project. It moves the project directory to the projects/archive folder, clears the active project marker, and commits and submits a PR with the changes.
4
+ allowed-tools: ["Read", "Write", "Bash(git*)", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ 1. Move $ARGUMENTS to `projects/archive`
9
+ 2. Clear the active project marker: `rm -f .claude-active-project`
10
+ 3. Run /git-commit-and-submit-pr
@@ -0,0 +1,29 @@
1
+ ---
2
+ name: project-bootstrap
3
+ description: This skill should be used when performing automated project setup and research with gap detection. It runs project setup, conducts research, checks for open questions, and if no gaps exist, proceeds directly to project execution.
4
+ argument-hint: "<file-path|jira-issue|\"text description\">"
5
+ ---
6
+
7
+ Complete all of the following steps for $ARGUMENTS:
8
+
9
+ ## Step 1: Setup
10
+
11
+ Run `/project-setup $ARGUMENTS`
12
+
13
+ Capture the project name from the output for use in subsequent steps.
14
+
15
+ ## Step 2: Research
16
+
17
+ Run `/project-research @projects/<project-name>`
18
+
19
+ ## Step 3: Gap Detection
20
+
21
+ Read @projects/<project-name>/research.md.
22
+
23
+ Check '## Open Questions' section. If unresolved questions exist, STOP and report to human.
24
+
25
+ If no gaps, immediately run `/project-execute @projects/<project-name>`
26
+
27
+ ## Output to Human
28
+
29
+ - If gaps exist: "Bootstrap complete but needs human review - see Open Questions in research.md"
@@ -0,0 +1,44 @@
1
+ ---
2
+ name: project-debrief
3
+ description: This skill should be used when aggregating learnings from completed project tasks and findings. It collects learnings from task metadata and findings.md, uses the skill-evaluator to categorize each learning (new skill, project rule, or omit), and applies the decisions accordingly.
4
+ allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList", "Skill"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ ## Setup
9
+
10
+ Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
11
+
12
+ Extract `<project-name>` from the last segment of `$ARGUMENTS`.
13
+
14
+ ## Create and Execute Tasks
15
+
16
+ Create workflow tracking tasks with `metadata.project` set to the project name:
17
+
18
+ ```
19
+ TaskCreate:
20
+ subject: "Aggregate project learnings"
21
+ description: "Collect all learnings from two sources: 1) Read $ARGUMENTS/findings.md for manual findings. 2) Read all task files in $ARGUMENTS/tasks/*.json and extract metadata.learnings arrays. Compile into a single list of distinct findings/learnings."
22
+ metadata: { project: "<project-name>" }
23
+
24
+ TaskCreate:
25
+ subject: "Evaluate each learning"
26
+ description: "For each learning, use Task tool with subagent_type 'skill-evaluator' to determine: CREATE SKILL (complex, reusable pattern), ADD TO RULES (simple never/always rule), or OMIT ENTIRELY (already covered or too project-specific). Collect all decisions."
27
+ metadata: { project: "<project-name>" }
28
+
29
+ TaskCreate:
30
+ subject: "Apply decisions"
31
+ description: "For each learning based on skill-evaluator decision: CREATE SKILL → run /skill-creator with details. ADD TO RULES → add succinctly to .claude/rules/PROJECT_RULES.md. OMIT → no action. Report summary: skills created, rules added, omitted count."
32
+ metadata: { project: "<project-name>" }
33
+ ```
34
+
35
+ **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.
36
+
37
+ ## Important: Rules vs Skills
38
+
39
+ **WARNING about PROJECT_RULES.md**: Rules in `.claude/rules/` are **always loaded** at session start for every request. Only add learnings to PROJECT_RULES.md if they:
40
+ - Apply to **every** request in this codebase (not just specific features)
41
+ - Are simple "never do X" or "always do Y" statements
42
+ - Cannot be scoped to a skill that's invoked on-demand
43
+
44
+ If a learning only applies to certain types of work (e.g., "when writing GraphQL resolvers..."), it should be a **skill** instead, not a rule.
@@ -0,0 +1,51 @@
1
+ ---
2
+ name: project-document
3
+ description: This skill should be used when updating all documentation related to changes implemented in a project. It identifies changed files, maps them to documentation targets, and updates README, API docs, CHANGELOG, and JSDoc documentation.
4
+ allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList", "Skill"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ The current branch is a feature branch with implementation of the project in $ARGUMENTS.
9
+
10
+ Changes on this branch need corresponding documentation updates to keep README, API docs, changelogs, and JSDoc current.
11
+
12
+ **IMPORTANT**: Perform each step and move to the next without stopping.
13
+
14
+ ## Setup
15
+
16
+ Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
17
+
18
+ Extract `<project-name>` from the last segment of `$ARGUMENTS`.
19
+
20
+ ## Create and Execute Tasks
21
+
22
+ Create workflow tracking tasks with `metadata.project` set to the project name:
23
+
24
+ ```
25
+ TaskCreate:
26
+ subject: "Identify changed files and documentation targets"
27
+ description: "Use git to identify files changed on this branch (git diff main...HEAD --name-only). For each changed file, identify related documentation: README sections, API docs, inline JSDoc, CHANGELOG entries, architecture docs, configuration docs. Compile a mapping of: changed file → related documentation file(s). Save to $ARGUMENTS/doc-targets.json with structure: { \"file.ts\": [\"README.md#section\", \"docs/api.md\"], ... }"
28
+ metadata: { project: "<project-name>" }
29
+
30
+ TaskCreate:
31
+ subject: "Update README and user-facing docs"
32
+ description: "For each documentation target in $ARGUMENTS/doc-targets.json that is a README section or user guide: Read the changed implementation file. Read the current documentation section. Update the documentation to accurately reflect the new/changed behavior, examples, or configuration. Preserve existing structure and tone."
33
+ metadata: { project: "<project-name>" }
34
+
35
+ TaskCreate:
36
+ subject: "Update API and technical documentation"
37
+ description: "For each documentation target that is API docs, architecture docs, or technical guides: Read the changed implementation. Read the current documentation. Update to reflect new endpoints, parameters, type signatures, behavior changes, or architectural decisions. Ensure consistency with code comments."
38
+ metadata: { project: "<project-name>" }
39
+
40
+ TaskCreate:
41
+ subject: "Update CHANGELOG"
42
+ description: "If CHANGELOG.md or CHANGELOG.{md,txt,rst} exists in project root: Add entry for all user-facing changes. Group by type (Added, Changed, Fixed, Deprecated). Reference relevant files or features. Follow existing CHANGELOG format and conventions."
43
+ metadata: { project: "<project-name>" }
44
+
45
+ TaskCreate:
46
+ subject: "Verify JSDoc on changed files"
47
+ description: "Read $ARGUMENTS/doc-targets.json. For each changed file (key), verify its JSDoc preamble and function/export documentation are current: Run /jsdoc-best-practices skill. Check that file-level preambles explain the module's purpose and when to use it. Check that exported functions/types have 'why' documentation (not just 'what'). Update any stale or missing documentation."
48
+ metadata: { project: "<project-name>" }
49
+ ```
50
+
51
+ **Execute each task via a subagent** to preserve main context. Launch up to 5 in parallel where tasks don't have dependencies. Do not stop until all are completed.
@@ -0,0 +1,68 @@
1
+ ---
2
+ name: project-execute
3
+ description: This skill should be used when running the complete automated project execution workflow from planning through debrief. It requires gap-free research and sequentially runs planning, implementation, review, documentation, verification, debrief, and archive phases.
4
+ allowed-tools: ["Read", "Write", "Edit", "Bash", "Glob", "Grep", "Task", "TaskCreate", "TaskUpdate", "TaskList", "TaskGet", "Skill"]
5
+ argument-hint: "<project-directory>"
6
+ ---
7
+
8
+ Execute complete implementation workflow for $ARGUMENTS.
9
+
10
+ ## Execution Rules
11
+
12
+ 1. **Continuous execution**: After each step completes, immediately invoke the next
13
+ 2. **No summaries**: Do not summarize progress between steps
14
+ 3. **No waiting**: Do not wait for user confirmation between steps
15
+ 4. **Only stop when done**: Only stop when all steps are completed
16
+
17
+ ## Setup
18
+
19
+ 1. Set active project marker: `echo "$ARGUMENTS" | sed 's|.*/||' > .claude-active-project`
20
+ 2. Read `$ARGUMENTS/research.md` and check "## Open Questions" section
21
+ - If gaps exist: STOP with "Cannot proceed - research.md has unresolved open questions"
22
+ 3. Check if planning is already complete: `ls $ARGUMENTS/tasks/*.md 2>/dev/null | head -3`
23
+ - If task files exist: Skip planning, start at implementation
24
+
25
+ ## Create and Execute Tasks
26
+
27
+ Create workflow tracking tasks with `metadata.project` set to the project name:
28
+
29
+ ```
30
+ TaskCreate:
31
+ subject: "Planning"
32
+ description: "Run /project-plan $ARGUMENTS to create implementation tasks."
33
+ metadata: { project: "<project-name>" }
34
+
35
+ TaskCreate:
36
+ subject: "Implementation"
37
+ description: "Run /project-implement $ARGUMENTS to execute all planned tasks."
38
+ metadata: { project: "<project-name>" }
39
+
40
+ TaskCreate:
41
+ subject: "Review"
42
+ description: "Run /project-review $ARGUMENTS to review code changes."
43
+ metadata: { project: "<project-name>" }
44
+
45
+ TaskCreate:
46
+ subject: "Documentation"
47
+ description: "Run /project-document $ARGUMENTS to update documentation related to changes."
48
+ metadata: { project: "<project-name>" }
49
+
50
+ TaskCreate:
51
+ subject: "Verification"
52
+ description: "Run /project-verify $ARGUMENTS to verify all requirements are met."
53
+ metadata: { project: "<project-name>" }
54
+
55
+ TaskCreate:
56
+ subject: "Debrief"
57
+ description: "Run /project-debrief $ARGUMENTS to capture learnings."
58
+ metadata: { project: "<project-name>" }
59
+
60
+ TaskCreate:
61
+ subject: "Archive"
62
+ description: "Run /project-archive $ARGUMENTS to archive the completed project."
63
+ metadata: { project: "<project-name>" }
64
+ ```
65
+
66
+ **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.
67
+
68
+ Report "Project complete and archived" when done.