@wbern/claude-instructions 1.3.0 → 1.5.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 +47 -13
- package/bin/cli.js +32 -8
- package/downloads/with-beads/add-command.md +2 -2
- package/downloads/with-beads/ask.md +14 -5
- package/downloads/with-beads/busycommit.md +56 -0
- package/downloads/with-beads/commands-metadata.json +5 -0
- package/downloads/with-beads/commit.md +0 -20
- package/downloads/with-beads/cycle.md +4 -1
- package/downloads/with-beads/gap.md +9 -6
- package/downloads/with-beads/green.md +4 -1
- package/downloads/with-beads/issue.md +3 -0
- package/downloads/with-beads/red.md +4 -0
- package/downloads/with-beads/refactor.md +4 -1
- package/downloads/with-beads/ship.md +7 -3
- package/downloads/with-beads/show.md +8 -2
- package/downloads/with-beads/spike.md +3 -0
- package/downloads/with-beads/summarize.md +3 -1
- package/downloads/with-beads/tdd.md +3 -0
- package/downloads/with-beads/worktree-add.md +1 -1
- package/downloads/with-beads/worktree-cleanup.md +2 -0
- package/downloads/without-beads/add-command.md +2 -2
- package/downloads/without-beads/ask.md +14 -5
- package/downloads/without-beads/busycommit.md +56 -0
- package/downloads/without-beads/commands-metadata.json +5 -0
- package/downloads/without-beads/commit.md +0 -20
- package/downloads/without-beads/cycle.md +4 -1
- package/downloads/without-beads/gap.md +8 -5
- package/downloads/without-beads/green.md +4 -1
- package/downloads/without-beads/issue.md +3 -0
- package/downloads/without-beads/red.md +4 -0
- package/downloads/without-beads/refactor.md +4 -1
- package/downloads/without-beads/ship.md +7 -3
- package/downloads/without-beads/show.md +8 -2
- package/downloads/without-beads/spike.md +3 -0
- package/downloads/without-beads/summarize.md +3 -1
- package/downloads/without-beads/tdd.md +3 -0
- package/downloads/without-beads/worktree-add.md +1 -1
- package/downloads/without-beads/worktree-cleanup.md +2 -0
- package/package.json +11 -4
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools:
|
|
2
|
+
allowed-tools: mcp__github__create_pull_request, mcp__github__update_pull_request, Bash(git status:*), Bash(git log:*), Bash(git push:*), Bash(git branch:*)
|
|
3
3
|
description: Show code to team with auto-merge - for changes that should be visible but don't need approval (Cursor's modern workflow)
|
|
4
4
|
argument-hint: [optional-pr-title-and-description]
|
|
5
5
|
---
|
|
@@ -18,6 +18,7 @@ argument-hint: [optional-pr-title-and-description]
|
|
|
18
18
|
> 🚀 **Cursor says**: Not every change needs a traditional review. Show your work, then merge.
|
|
19
19
|
|
|
20
20
|
Show is for changes that teammates should see, but don't require approval. Examples:
|
|
21
|
+
|
|
21
22
|
- Refactoring with test coverage
|
|
22
23
|
- New features with comprehensive tests
|
|
23
24
|
- Performance improvements
|
|
@@ -26,6 +27,7 @@ Show is for changes that teammates should see, but don't require approval. Examp
|
|
|
26
27
|
## Prerequisites
|
|
27
28
|
|
|
28
29
|
Before using show:
|
|
30
|
+
|
|
29
31
|
1. All tests must pass
|
|
30
32
|
2. Changes should have good test coverage
|
|
31
33
|
3. Changes should be non-breaking or backward compatible
|
|
@@ -60,6 +62,7 @@ Arguments: $ARGUMENTS
|
|
|
60
62
|
- Add notice that feedback is welcome but not required
|
|
61
63
|
|
|
62
64
|
4. **PR Description Template**:
|
|
65
|
+
|
|
63
66
|
```markdown
|
|
64
67
|
## 🚀 Show - Auto-merging after CI
|
|
65
68
|
|
|
@@ -71,12 +74,15 @@ Arguments: $ARGUMENTS
|
|
|
71
74
|
-->
|
|
72
75
|
|
|
73
76
|
### What changed
|
|
77
|
+
|
|
74
78
|
[Brief description]
|
|
75
79
|
|
|
76
80
|
### Why
|
|
81
|
+
|
|
77
82
|
[Rationale for change]
|
|
78
83
|
|
|
79
84
|
### Test coverage
|
|
85
|
+
|
|
80
86
|
- [ ] All tests pass
|
|
81
87
|
- [ ] Coverage maintained/improved
|
|
82
88
|
- [ ] No breaking changes
|
|
@@ -87,6 +93,7 @@ Arguments: $ARGUMENTS
|
|
|
87
93
|
## Decision Guide
|
|
88
94
|
|
|
89
95
|
Use **Show** when:
|
|
96
|
+
|
|
90
97
|
- ✅ Tests are comprehensive
|
|
91
98
|
- ✅ Changes are non-breaking
|
|
92
99
|
- ✅ You're confident in the approach
|
|
@@ -104,4 +111,3 @@ Use Beads MCP to:
|
|
|
104
111
|
- Track dependencies with `bd dep add`
|
|
105
112
|
|
|
106
113
|
See https://github.com/steveyegge/beads for more information.
|
|
107
|
-
|
|
@@ -29,8 +29,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
29
29
|
|
|
30
30
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
31
31
|
- Only one test at a time - this is critical for TDD discipline
|
|
32
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
32
33
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
33
34
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
35
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
36
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
34
37
|
|
|
35
38
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
36
39
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: AskUserQuestion
|
|
2
|
+
allowed-tools: AskUserQuestion
|
|
3
3
|
description: Summarize conversation progress and next steps
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Create a concise summary of the current conversation suitable for transferring context to a new conversation.
|
|
7
7
|
|
|
8
|
+
Additional info: $ARGUMENTS
|
|
9
|
+
|
|
8
10
|
## Summary Structure
|
|
9
11
|
|
|
10
12
|
Provide a summary with these sections:
|
|
@@ -23,8 +23,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
23
23
|
|
|
24
24
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
25
25
|
- Only one test at a time - this is critical for TDD discipline
|
|
26
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
26
27
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
27
28
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
29
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
30
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
28
31
|
|
|
29
32
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
30
33
|
|
|
@@ -69,7 +69,7 @@ Uncommitted changes: !git status --short`
|
|
|
69
69
|
|
|
70
70
|
<step_2>
|
|
71
71
|
<description>Parse the arguments</description>
|
|
72
|
-
<input
|
|
72
|
+
<input>The user-provided arguments</input>
|
|
73
73
|
<expected_format>branch-name-or-github-url [optional-base-branch]</expected_format>
|
|
74
74
|
<example>fix/issue-123-main-content-area-visually-clipped main</example>
|
|
75
75
|
<example_github_url>https://github.com/owner/project/issues/123 main</example_github_url>
|
|
@@ -15,6 +15,8 @@ argument-hint: (no arguments)
|
|
|
15
15
|
|
|
16
16
|
Clean up merged worktrees by finding the oldest merged branch, consolidating settings, and removing stale worktrees.
|
|
17
17
|
|
|
18
|
+
Additional info: $ARGUMENTS
|
|
19
|
+
|
|
18
20
|
<current_state>
|
|
19
21
|
Current branch: !git branch --show-current`
|
|
20
22
|
Current worktrees: !git worktree list`
|
|
@@ -58,7 +58,7 @@ echo "Review this code for bugs and suggest fixes" > ~/.claude/commands/review.m
|
|
|
58
58
|
|
|
59
59
|
### Command with Arguments
|
|
60
60
|
```markdown
|
|
61
|
-
Fix issue
|
|
61
|
+
Fix issue #ARGUMENTS following our coding standards
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
### Command with File References
|
|
@@ -83,7 +83,7 @@ Create commit for these changes.
|
|
|
83
83
|
### Namespaced Command
|
|
84
84
|
```bash
|
|
85
85
|
mkdir -p ~/.claude/commands/ai
|
|
86
|
-
echo "Ask GPT-5 about:
|
|
86
|
+
echo "Ask GPT-5 about: ARGUMENTS" > ~/.claude/commands/ai/gpt5.md
|
|
87
87
|
# Creates: /ai:gpt5
|
|
88
88
|
```
|
|
89
89
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools:
|
|
2
|
+
allowed-tools: mcp__github__create_pull_request, mcp__github__update_pull_request, Bash(git status:*), Bash(git log:*), Bash(git push:*), Bash(git branch:*)
|
|
3
3
|
description: Request team review and approval - for complex changes needing discussion (OK fine, traditional PRs still have their place - Cursor)
|
|
4
4
|
argument-hint: [optional-pr-title-and-description]
|
|
5
5
|
---
|
|
@@ -18,6 +18,7 @@ argument-hint: [optional-pr-title-and-description]
|
|
|
18
18
|
> 💭 **Cursor says**: Fine, SOME things still need traditional PRs. But be intentional about it.
|
|
19
19
|
|
|
20
20
|
Ask is for complex changes that need team discussion and approval. Examples:
|
|
21
|
+
|
|
21
22
|
- Breaking API changes
|
|
22
23
|
- New architecture decisions
|
|
23
24
|
- Significant feature additions
|
|
@@ -27,6 +28,7 @@ Ask is for complex changes that need team discussion and approval. Examples:
|
|
|
27
28
|
## When to Ask
|
|
28
29
|
|
|
29
30
|
Use **Ask** when:
|
|
31
|
+
|
|
30
32
|
- Changes affect multiple systems
|
|
31
33
|
- Breaking changes are needed
|
|
32
34
|
- You need input on approach
|
|
@@ -54,10 +56,11 @@ Arguments: $ARGUMENTS
|
|
|
54
56
|
- Push to remote: `git push origin [branch-name]`
|
|
55
57
|
|
|
56
58
|
2. **Create Ask PR**: Create a PR that clearly needs review
|
|
57
|
-
|
|
59
|
+
|
|
58
60
|
Title: conventional commits format, prefixed with `[ASK]`
|
|
59
|
-
|
|
61
|
+
|
|
60
62
|
Description template:
|
|
63
|
+
|
|
61
64
|
```markdown
|
|
62
65
|
## 🤔 Ask - Review and Approval Needed
|
|
63
66
|
|
|
@@ -68,32 +71,38 @@ Arguments: $ARGUMENTS
|
|
|
68
71
|
-->
|
|
69
72
|
|
|
70
73
|
### What changed
|
|
74
|
+
|
|
71
75
|
[Detailed description of changes]
|
|
72
76
|
|
|
73
77
|
### Why
|
|
78
|
+
|
|
74
79
|
[Rationale and context]
|
|
75
80
|
|
|
76
81
|
### Questions for reviewers
|
|
82
|
+
|
|
77
83
|
- [ ] Question 1
|
|
78
84
|
- [ ] Question 2
|
|
79
85
|
|
|
80
86
|
### Concerns
|
|
87
|
+
|
|
81
88
|
- Potential concern 1
|
|
82
89
|
- Potential concern 2
|
|
83
90
|
|
|
84
91
|
### Test Plan
|
|
92
|
+
|
|
85
93
|
- [ ] Unit tests
|
|
86
94
|
- [ ] Integration tests
|
|
87
95
|
- [ ] Manual testing steps
|
|
88
96
|
|
|
89
97
|
### Alternatives considered
|
|
98
|
+
|
|
90
99
|
- Alternative 1: [why not chosen]
|
|
91
100
|
- Alternative 2: [why not chosen]
|
|
92
101
|
```
|
|
93
102
|
|
|
94
103
|
3. **Request Reviewers**: Assign specific reviewers who should weigh in
|
|
95
104
|
|
|
96
|
-
4. **Add Labels**:
|
|
105
|
+
4. **Add Labels**:
|
|
97
106
|
- "needs-review"
|
|
98
107
|
- "breaking-change" (if applicable)
|
|
99
108
|
- "security" (if applicable)
|
|
@@ -113,6 +122,7 @@ Arguments: $ARGUMENTS
|
|
|
113
122
|
## Decision Guide
|
|
114
123
|
|
|
115
124
|
Use **Ask** when:
|
|
125
|
+
|
|
116
126
|
- ✅ Change is complex or risky
|
|
117
127
|
- ✅ Breaking changes involved
|
|
118
128
|
- ✅ Need team input on approach
|
|
@@ -123,4 +133,3 @@ Use **/show** instead if: confident in approach, just want visibility
|
|
|
123
133
|
|
|
124
134
|
Use **/ship** instead if: change is tiny, obvious, and safe
|
|
125
135
|
|
|
126
|
-
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
---
|
|
2
|
+
allowed-tools: Bash(pnpm test:*), Bash(pnpm lint:*)
|
|
3
|
+
description: Create multiple atomic git commits, one logical change at a time
|
|
4
|
+
argument-hint: [optional-commit-description]
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
Create multiple atomic git commits, committing the smallest possible logical unit at a time
|
|
8
|
+
|
|
9
|
+
Include any of the following info if specified: $ARGUMENTS
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Process
|
|
15
|
+
|
|
16
|
+
1. Run `git status` and `git diff` to review changes
|
|
17
|
+
2. Run `git log --oneline -5` to see recent commit style
|
|
18
|
+
3. Stage relevant files with `git add`
|
|
19
|
+
4. Create commit with descriptive message
|
|
20
|
+
5. Verify with `git status`
|
|
21
|
+
|
|
22
|
+
## Example
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
git add <files>
|
|
26
|
+
git commit -m "feat(#123): add validation to user input form"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## Atomic Commit Approach
|
|
30
|
+
|
|
31
|
+
Each commit should represent ONE logical change. Do NOT bundle multiple unrelated changes into one commit.
|
|
32
|
+
|
|
33
|
+
- Identify the smallest atomic units of change
|
|
34
|
+
- For EACH atomic unit: stage only those files/hunks, commit, verify
|
|
35
|
+
- Use `git add -p` to stage partial file changes when a file contains multiple logical changes
|
|
36
|
+
- Repeat until all changes are committed
|
|
37
|
+
- It is OK to create multiple commits without stopping - keep going until `git status` shows clean
|
|
38
|
+
|
|
39
|
+
## Multi-Commit Example
|
|
40
|
+
|
|
41
|
+
If a single file contains multiple unrelated changes, use `git add -p` to stage hunks interactively:
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Stage only the validation-related hunks from the file
|
|
45
|
+
git add -p src/user-service.ts
|
|
46
|
+
# Select 'y' for validation hunks, 'n' for others
|
|
47
|
+
git commit -m "feat(#123): add email format validation"
|
|
48
|
+
|
|
49
|
+
# Stage the error handling hunks
|
|
50
|
+
git add -p src/user-service.ts
|
|
51
|
+
git commit -m "fix(#124): handle null user gracefully"
|
|
52
|
+
|
|
53
|
+
# Stage remaining changes
|
|
54
|
+
git add src/user-service.ts
|
|
55
|
+
git commit -m "refactor: extract user lookup to helper"
|
|
56
|
+
```
|
|
@@ -14,6 +14,11 @@
|
|
|
14
14
|
"category": "Utilities",
|
|
15
15
|
"order": 2
|
|
16
16
|
},
|
|
17
|
+
"busycommit.md": {
|
|
18
|
+
"description": "Create multiple atomic git commits, one logical change at a time",
|
|
19
|
+
"category": "Workflow",
|
|
20
|
+
"order": 2
|
|
21
|
+
},
|
|
17
22
|
"commit.md": {
|
|
18
23
|
"description": "Create a git commit following project standards",
|
|
19
24
|
"category": "Workflow",
|
|
@@ -8,28 +8,8 @@ Create a git commit following project standards
|
|
|
8
8
|
|
|
9
9
|
Include any of the following info if specified: $ARGUMENTS
|
|
10
10
|
|
|
11
|
-
## General Guidelines
|
|
12
11
|
|
|
13
|
-
### Output Style
|
|
14
|
-
- **Never explicitly mention TDD** in code, comments, commits, PRs, or issues
|
|
15
|
-
- Write natural, descriptive code without meta-commentary about the development process
|
|
16
|
-
- The code should speak for itself - TDD is the process, not the product
|
|
17
12
|
|
|
18
|
-
## Commit Message Rules
|
|
19
|
-
|
|
20
|
-
Follows [Conventional Commits](https://www.conventionalcommits.org/) standard.
|
|
21
|
-
|
|
22
|
-
1. **Format**: `type(#issue): description`
|
|
23
|
-
- Use `#123` for local repo issues
|
|
24
|
-
- Use `owner/repo#123` for cross-repo issues
|
|
25
|
-
- Common types: `feat`, `fix`, `docs`, `refactor`, `test`, `chore`
|
|
26
|
-
|
|
27
|
-
2. **AI Credits**: **NEVER include AI credits in commit messages**
|
|
28
|
-
- No "Generated with Claude Code"
|
|
29
|
-
- No "Co-Authored-By: Claude" or "Co-Authored-By: Happy"
|
|
30
|
-
- Focus on the actual changes made, not conversation history
|
|
31
|
-
|
|
32
|
-
3. **Content**: Write clear, concise commit messages describing what changed and why
|
|
33
13
|
|
|
34
14
|
## Process
|
|
35
15
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
2
|
+
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
3
3
|
description: Execute complete TDD cycle - Red, Green, and Refactor phases in sequence
|
|
4
4
|
argument-hint: <feature or requirement description>
|
|
5
5
|
---
|
|
@@ -29,8 +29,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
29
29
|
|
|
30
30
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
31
31
|
- Only one test at a time - this is critical for TDD discipline
|
|
32
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
32
33
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
33
34
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
35
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
36
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
34
37
|
|
|
35
38
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
36
39
|
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: mcp__beads__list, mcp__beads__ready
|
|
3
2
|
description: Analyze conversation context for unaddressed items and gaps
|
|
4
3
|
---
|
|
5
4
|
|
|
@@ -8,14 +7,18 @@ Analyze the current conversation context and identify things that have not yet b
|
|
|
8
7
|
1. **Incomplete implementations** - Code that was started but not finished
|
|
9
8
|
2. **Unused variables/results** - Values that were captured but never used
|
|
10
9
|
3. **Missing tests** - Functionality without test coverage
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
4. **User requests** - Things the user asked for that weren't fully completed
|
|
11
|
+
5. **TODO comments** - Any TODOs mentioned in conversation
|
|
12
|
+
6. **Error handling gaps** - Missing error cases or edge cases
|
|
13
|
+
7. **Documentation gaps** - Undocumented APIs or features
|
|
15
14
|
|
|
16
15
|
Present findings as a prioritized list with:
|
|
16
|
+
|
|
17
17
|
- What the gap is
|
|
18
18
|
- Why it matters
|
|
19
19
|
- Suggested next action
|
|
20
20
|
|
|
21
21
|
If there are no gaps, confirm that everything discussed has been addressed.
|
|
22
|
+
|
|
23
|
+
Additional info:
|
|
24
|
+
$ARGUMENTS
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
2
|
+
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
3
3
|
description: Execute TDD Green Phase - write minimal implementation to pass the failing test
|
|
4
4
|
argument-hint: <implementation description>
|
|
5
5
|
---
|
|
@@ -29,8 +29,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
29
29
|
|
|
30
30
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
31
31
|
- Only one test at a time - this is critical for TDD discipline
|
|
32
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
32
33
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
33
34
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
35
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
36
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
34
37
|
|
|
35
38
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
36
39
|
|
|
@@ -73,8 +73,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
73
73
|
|
|
74
74
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
75
75
|
- Only one test at a time - this is critical for TDD discipline
|
|
76
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
76
77
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
77
78
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
79
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
80
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
78
81
|
|
|
79
82
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
80
83
|
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
+
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
2
3
|
description: Execute TDD Red Phase - write ONE failing test
|
|
3
4
|
---
|
|
4
5
|
|
|
@@ -25,8 +26,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
25
26
|
|
|
26
27
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
27
28
|
- Only one test at a time - this is critical for TDD discipline
|
|
29
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
28
30
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
29
31
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
32
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
33
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
30
34
|
|
|
31
35
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
32
36
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
2
|
+
allowed-tools: Read, Glob, Grep, Bash(pnpm test:*)
|
|
3
3
|
description: Execute TDD Refactor Phase - improve code structure while keeping tests green
|
|
4
4
|
argument-hint: <refactoring description>
|
|
5
5
|
---
|
|
@@ -27,8 +27,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
27
27
|
|
|
28
28
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
29
29
|
- Only one test at a time - this is critical for TDD discipline
|
|
30
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
30
31
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
31
32
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
33
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
34
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
32
35
|
|
|
33
36
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
34
37
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools:
|
|
2
|
+
allowed-tools: Bash(git status:*), Bash(git log:*), Bash(git diff:*), Bash(git checkout:*), Bash(git pull:*), Bash(git merge:*), Bash(git push:*), Bash(git branch:*)
|
|
3
3
|
description: Ship code directly to main - for small, obvious changes that don't need review (Cursor's modern alternative to PRs)
|
|
4
4
|
argument-hint: [optional-commit-message]
|
|
5
5
|
---
|
|
@@ -18,6 +18,7 @@ argument-hint: [optional-commit-message]
|
|
|
18
18
|
> 🎯 **Cursor says**: It's 2025! Not everything needs a PR. Ship small, obvious changes directly.
|
|
19
19
|
|
|
20
20
|
Ship is for small, obvious changes that don't need code review. Examples:
|
|
21
|
+
|
|
21
22
|
- Typo fixes
|
|
22
23
|
- Formatting changes
|
|
23
24
|
- Documentation updates
|
|
@@ -27,6 +28,7 @@ Ship is for small, obvious changes that don't need code review. Examples:
|
|
|
27
28
|
## Prerequisites
|
|
28
29
|
|
|
29
30
|
Before shipping directly to main:
|
|
31
|
+
|
|
30
32
|
1. All tests must pass
|
|
31
33
|
2. Linter must pass
|
|
32
34
|
3. Changes must be small and low-risk
|
|
@@ -57,10 +59,11 @@ Arguments: $ARGUMENTS
|
|
|
57
59
|
- Is this a small, obvious change?
|
|
58
60
|
- Do all tests pass?
|
|
59
61
|
- Is CI green?
|
|
60
|
-
|
|
62
|
+
|
|
61
63
|
If ANY of these are "no", suggest using `/show` or `/ask` instead.
|
|
62
64
|
|
|
63
65
|
5. **Merge to Main**: If all checks pass and user confirms:
|
|
66
|
+
|
|
64
67
|
```bash
|
|
65
68
|
git checkout main
|
|
66
69
|
git pull origin main
|
|
@@ -69,6 +72,7 @@ Arguments: $ARGUMENTS
|
|
|
69
72
|
```
|
|
70
73
|
|
|
71
74
|
6. **Cleanup**: Delete the feature branch
|
|
75
|
+
|
|
72
76
|
```bash
|
|
73
77
|
git branch -d [feature-branch]
|
|
74
78
|
git push origin --delete [feature-branch]
|
|
@@ -79,7 +83,7 @@ Arguments: $ARGUMENTS
|
|
|
79
83
|
## Safety Rails
|
|
80
84
|
|
|
81
85
|
If tests fail, linter fails, or changes are large/complex, STOP and suggest:
|
|
86
|
+
|
|
82
87
|
- Use `/show` for changes that should be seen but don't need approval
|
|
83
88
|
- Use `/ask` (traditional PR) for complex changes needing discussion
|
|
84
89
|
|
|
85
|
-
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools:
|
|
2
|
+
allowed-tools: mcp__github__create_pull_request, mcp__github__update_pull_request, Bash(git status:*), Bash(git log:*), Bash(git push:*), Bash(git branch:*)
|
|
3
3
|
description: Show code to team with auto-merge - for changes that should be visible but don't need approval (Cursor's modern workflow)
|
|
4
4
|
argument-hint: [optional-pr-title-and-description]
|
|
5
5
|
---
|
|
@@ -18,6 +18,7 @@ argument-hint: [optional-pr-title-and-description]
|
|
|
18
18
|
> 🚀 **Cursor says**: Not every change needs a traditional review. Show your work, then merge.
|
|
19
19
|
|
|
20
20
|
Show is for changes that teammates should see, but don't require approval. Examples:
|
|
21
|
+
|
|
21
22
|
- Refactoring with test coverage
|
|
22
23
|
- New features with comprehensive tests
|
|
23
24
|
- Performance improvements
|
|
@@ -26,6 +27,7 @@ Show is for changes that teammates should see, but don't require approval. Examp
|
|
|
26
27
|
## Prerequisites
|
|
27
28
|
|
|
28
29
|
Before using show:
|
|
30
|
+
|
|
29
31
|
1. All tests must pass
|
|
30
32
|
2. Changes should have good test coverage
|
|
31
33
|
3. Changes should be non-breaking or backward compatible
|
|
@@ -60,6 +62,7 @@ Arguments: $ARGUMENTS
|
|
|
60
62
|
- Add notice that feedback is welcome but not required
|
|
61
63
|
|
|
62
64
|
4. **PR Description Template**:
|
|
65
|
+
|
|
63
66
|
```markdown
|
|
64
67
|
## 🚀 Show - Auto-merging after CI
|
|
65
68
|
|
|
@@ -71,12 +74,15 @@ Arguments: $ARGUMENTS
|
|
|
71
74
|
-->
|
|
72
75
|
|
|
73
76
|
### What changed
|
|
77
|
+
|
|
74
78
|
[Brief description]
|
|
75
79
|
|
|
76
80
|
### Why
|
|
81
|
+
|
|
77
82
|
[Rationale for change]
|
|
78
83
|
|
|
79
84
|
### Test coverage
|
|
85
|
+
|
|
80
86
|
- [ ] All tests pass
|
|
81
87
|
- [ ] Coverage maintained/improved
|
|
82
88
|
- [ ] No breaking changes
|
|
@@ -87,6 +93,7 @@ Arguments: $ARGUMENTS
|
|
|
87
93
|
## Decision Guide
|
|
88
94
|
|
|
89
95
|
Use **Show** when:
|
|
96
|
+
|
|
90
97
|
- ✅ Tests are comprehensive
|
|
91
98
|
- ✅ Changes are non-breaking
|
|
92
99
|
- ✅ You're confident in the approach
|
|
@@ -96,4 +103,3 @@ Use **/ship** instead if: change is tiny and obvious (typo, formatting)
|
|
|
96
103
|
|
|
97
104
|
Use **/ask** instead if: change needs discussion, breaks APIs, or you're uncertain
|
|
98
105
|
|
|
99
|
-
|
|
@@ -29,8 +29,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
29
29
|
|
|
30
30
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
31
31
|
- Only one test at a time - this is critical for TDD discipline
|
|
32
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
32
33
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
33
34
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
35
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
36
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
34
37
|
|
|
35
38
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
36
39
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
---
|
|
2
|
-
allowed-tools: AskUserQuestion
|
|
2
|
+
allowed-tools: AskUserQuestion
|
|
3
3
|
description: Summarize conversation progress and next steps
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
Create a concise summary of the current conversation suitable for transferring context to a new conversation.
|
|
7
7
|
|
|
8
|
+
Additional info: $ARGUMENTS
|
|
9
|
+
|
|
8
10
|
## Summary Structure
|
|
9
11
|
|
|
10
12
|
Provide a summary with these sections:
|
|
@@ -23,8 +23,11 @@ The foundation of TDD is the Red-Green-Refactor cycle:
|
|
|
23
23
|
|
|
24
24
|
- The test must fail for the RIGHT reason (not syntax/import errors)
|
|
25
25
|
- Only one test at a time - this is critical for TDD discipline
|
|
26
|
+
- Exception: For browser-level tests or expensive setup (e.g., Storybook `*.stories.tsx`), group multiple assertions within a single test block to avoid redundant setup - but only when adding assertions to an existing interaction flow. If new user interactions are required, still create a new test. Split files by category if they exceed ~1000 lines.
|
|
26
27
|
- **Adding a single test to a test file is ALWAYS allowed** - no prior test output needed
|
|
27
28
|
- Starting TDD for a new feature is always valid, even if test output shows unrelated work
|
|
29
|
+
- For DOM-based tests, use `data-testid` attributes to select elements rather than CSS classes, tag names, or text content
|
|
30
|
+
- Avoid hard-coded timeouts both in form of sleep() or timeout: 5000 etc; use proper async patterns (`waitFor`, `findBy*`, event-based sync) instead and rely on global test configs for timeout settings
|
|
28
31
|
|
|
29
32
|
2. **Green Phase**: Write MINIMAL code to make the test pass
|
|
30
33
|
|
|
@@ -69,7 +69,7 @@ Uncommitted changes: !git status --short`
|
|
|
69
69
|
|
|
70
70
|
<step_2>
|
|
71
71
|
<description>Parse the arguments</description>
|
|
72
|
-
<input
|
|
72
|
+
<input>The user-provided arguments</input>
|
|
73
73
|
<expected_format>branch-name-or-github-url [optional-base-branch]</expected_format>
|
|
74
74
|
<example>fix/issue-123-main-content-area-visually-clipped main</example>
|
|
75
75
|
<example_github_url>https://github.com/owner/project/issues/123 main</example_github_url>
|
|
@@ -15,6 +15,8 @@ argument-hint: (no arguments)
|
|
|
15
15
|
|
|
16
16
|
Clean up merged worktrees by finding the oldest merged branch, consolidating settings, and removing stale worktrees.
|
|
17
17
|
|
|
18
|
+
Additional info: $ARGUMENTS
|
|
19
|
+
|
|
18
20
|
<current_state>
|
|
19
21
|
Current branch: !git branch --show-current`
|
|
20
22
|
Current worktrees: !git worktree list`
|