automatasaurus 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +543 -0
- package/bin/cli.js +62 -0
- package/package.json +39 -0
- package/src/commands/init.js +149 -0
- package/src/commands/status.js +68 -0
- package/src/commands/update.js +140 -0
- package/src/lib/block-merge.js +86 -0
- package/src/lib/json-merge.js +121 -0
- package/src/lib/manifest.js +60 -0
- package/src/lib/paths.js +55 -0
- package/src/lib/symlinks.js +127 -0
- package/template/CLAUDE.block.md +357 -0
- package/template/README.md +36 -0
- package/template/agents/architect/AGENT.md +167 -0
- package/template/agents/designer/AGENT.md +289 -0
- package/template/agents/developer/AGENT.md +182 -0
- package/template/agents/tester/AGENT.md +308 -0
- package/template/artifacts/discovery.md.template +193 -0
- package/template/artifacts/implementation-plan.md.template +119 -0
- package/template/commands/discovery.md +325 -0
- package/template/commands/work-all.md +274 -0
- package/template/commands/work-plan.md +169 -0
- package/template/commands/work.md +73 -0
- package/template/commands.block.md +45 -0
- package/template/commands.template.md +156 -0
- package/template/hooks/notify.sh +83 -0
- package/template/hooks/on-stop.sh +54 -0
- package/template/hooks/request-attention.sh +16 -0
- package/template/settings.json +85 -0
- package/template/skills/agent-coordination/SKILL.md +166 -0
- package/template/skills/code-review/SKILL.md +386 -0
- package/template/skills/css-standards/SKILL.md +488 -0
- package/template/skills/github-issues/SKILL.md +144 -0
- package/template/skills/github-workflow/SKILL.md +161 -0
- package/template/skills/infrastructure-standards/SKILL.md +189 -0
- package/template/skills/javascript-standards/SKILL.md +355 -0
- package/template/skills/notifications/SKILL.md +95 -0
- package/template/skills/pr-writing/SKILL.md +259 -0
- package/template/skills/project-commands/SKILL.md +100 -0
- package/template/skills/python-standards/SKILL.md +284 -0
- package/template/skills/requirements-gathering/SKILL.md +212 -0
- package/template/skills/user-stories/SKILL.md +192 -0
- package/template/skills/work-issue/SKILL.md +245 -0
- package/template/skills/workflow-orchestration/SKILL.md +271 -0
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: notifications
|
|
3
|
+
description: System for alerting the user when attention is needed. Use when you need to get the user's attention for questions, approvals, or when stuck.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Notification System
|
|
7
|
+
|
|
8
|
+
Automatasaurus includes a notification system to alert the user when their attention is needed.
|
|
9
|
+
|
|
10
|
+
## Automatic Notifications
|
|
11
|
+
|
|
12
|
+
The system automatically sends notifications on stop based on context:
|
|
13
|
+
- **Questions**: When Claude asks a question and waits for input
|
|
14
|
+
- **Approvals**: When approval is needed to proceed
|
|
15
|
+
- **Stuck**: When an agent encounters an issue
|
|
16
|
+
- **Complete**: When all work is done
|
|
17
|
+
|
|
18
|
+
## Explicit Notification Request
|
|
19
|
+
|
|
20
|
+
When you need to explicitly alert the user, use:
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
.claude/hooks/request-attention.sh <type> "<message>"
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
### Notification Types
|
|
27
|
+
|
|
28
|
+
| Type | When to Use | Sound |
|
|
29
|
+
|------|-------------|-------|
|
|
30
|
+
| `question` | You have a question that needs answering | Submarine |
|
|
31
|
+
| `approval` | You need approval before proceeding | Submarine |
|
|
32
|
+
| `stuck` | You've encountered an issue you can't resolve | Basso (alert) |
|
|
33
|
+
| `complete` | All assigned work is finished | Hero (success) |
|
|
34
|
+
| `info` | General notification | Glass |
|
|
35
|
+
| `error` | An error occurred | Basso (alert) |
|
|
36
|
+
|
|
37
|
+
### Examples
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# Question needs answering
|
|
41
|
+
.claude/hooks/request-attention.sh question "Should I use PostgreSQL or MySQL for this project?"
|
|
42
|
+
|
|
43
|
+
# Approval needed
|
|
44
|
+
.claude/hooks/request-attention.sh approval "PR #42 is ready for review"
|
|
45
|
+
|
|
46
|
+
# Got stuck
|
|
47
|
+
.claude/hooks/request-attention.sh stuck "Cannot access the GitHub API - authentication failed"
|
|
48
|
+
|
|
49
|
+
# Work complete
|
|
50
|
+
.claude/hooks/request-attention.sh complete "All 5 user stories have been implemented and tested"
|
|
51
|
+
|
|
52
|
+
# Error occurred
|
|
53
|
+
.claude/hooks/request-attention.sh error "Build failed with 3 errors"
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
## When to Notify
|
|
57
|
+
|
|
58
|
+
### Always Notify For:
|
|
59
|
+
- Questions that block progress
|
|
60
|
+
- Security-related approvals
|
|
61
|
+
- When you've been stuck for more than one attempt
|
|
62
|
+
- Completion of significant milestones
|
|
63
|
+
- Errors that require human intervention
|
|
64
|
+
|
|
65
|
+
### Don't Notify For:
|
|
66
|
+
- Minor progress updates
|
|
67
|
+
- Self-recoverable errors
|
|
68
|
+
- Questions you can answer from context
|
|
69
|
+
|
|
70
|
+
## Configuration
|
|
71
|
+
|
|
72
|
+
Notifications can be configured via environment variables:
|
|
73
|
+
|
|
74
|
+
```bash
|
|
75
|
+
# Disable sound
|
|
76
|
+
AUTOMATASAURUS_SOUND=false
|
|
77
|
+
|
|
78
|
+
# Custom log location
|
|
79
|
+
AUTOMATASAURUS_LOG=/path/to/custom.log
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Platform Support
|
|
83
|
+
|
|
84
|
+
- **macOS**: Native notifications with sound
|
|
85
|
+
- **Linux**: Uses `notify-send` if available
|
|
86
|
+
- **Windows**: PowerShell message box
|
|
87
|
+
|
|
88
|
+
## Logging
|
|
89
|
+
|
|
90
|
+
All notifications are logged to `$AUTOMATASAURUS_LOG` (default: `/tmp/automatasaurus.log`):
|
|
91
|
+
|
|
92
|
+
```
|
|
93
|
+
[2025-01-02 14:30:45] [question] Automatasaurus: Which database should we use?
|
|
94
|
+
[2025-01-02 14:35:12] [complete] Automatasaurus: Feature implementation complete
|
|
95
|
+
```
|
|
@@ -0,0 +1,259 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: pr-writing
|
|
3
|
+
description: Best practices for writing clear, effective pull request descriptions. Use when creating PRs to ensure they communicate changes effectively to reviewers.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# PR Writing Skill
|
|
7
|
+
|
|
8
|
+
Guidelines for writing pull request descriptions that help reviewers understand and approve changes quickly.
|
|
9
|
+
|
|
10
|
+
## PR Title Format
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
#<issue-number> <type>: <concise description>
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Always prefix the PR title with the GitHub issue number to enable easy cross-referencing.
|
|
17
|
+
|
|
18
|
+
### Types
|
|
19
|
+
| Type | Use For |
|
|
20
|
+
|------|---------|
|
|
21
|
+
| `feat` | New feature or functionality |
|
|
22
|
+
| `fix` | Bug fix |
|
|
23
|
+
| `refactor` | Code restructuring without behavior change |
|
|
24
|
+
| `docs` | Documentation only |
|
|
25
|
+
| `test` | Adding or updating tests |
|
|
26
|
+
| `chore` | Build, tooling, dependencies |
|
|
27
|
+
| `perf` | Performance improvement |
|
|
28
|
+
| `style` | Formatting, whitespace (no logic change) |
|
|
29
|
+
|
|
30
|
+
### Good Titles
|
|
31
|
+
```
|
|
32
|
+
#42 feat: Add user registration endpoint
|
|
33
|
+
#187 fix: Prevent duplicate form submissions
|
|
34
|
+
#23 refactor: Extract authentication logic into service
|
|
35
|
+
#91 docs: Add API documentation for user endpoints
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
### Bad Titles
|
|
39
|
+
```
|
|
40
|
+
Update code # Too vague, no issue number
|
|
41
|
+
Fixed the bug # Which bug? No issue number
|
|
42
|
+
WIP # Not ready for review
|
|
43
|
+
feat: Add login # Missing issue number prefix
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
## PR Body Structure
|
|
47
|
+
|
|
48
|
+
```markdown
|
|
49
|
+
## Summary
|
|
50
|
+
[1-3 sentences explaining WHAT changed and WHY]
|
|
51
|
+
|
|
52
|
+
Closes #<issue-number>
|
|
53
|
+
|
|
54
|
+
## Changes
|
|
55
|
+
- [Specific change 1]
|
|
56
|
+
- [Specific change 2]
|
|
57
|
+
- [Specific change 3]
|
|
58
|
+
|
|
59
|
+
## Testing
|
|
60
|
+
- [ ] Unit tests added/updated
|
|
61
|
+
- [ ] Integration tests pass
|
|
62
|
+
- [ ] Manual testing completed
|
|
63
|
+
|
|
64
|
+
## Screenshots (if UI changes)
|
|
65
|
+
[Before/after screenshots or GIFs]
|
|
66
|
+
|
|
67
|
+
## Notes for Reviewers
|
|
68
|
+
[Optional: Areas to focus on, known limitations, questions]
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Writing the Summary
|
|
72
|
+
|
|
73
|
+
### Focus on WHY, not just WHAT
|
|
74
|
+
|
|
75
|
+
**Bad:**
|
|
76
|
+
> Added a new function called validateEmail and updated the user model.
|
|
77
|
+
|
|
78
|
+
**Good:**
|
|
79
|
+
> Adds email validation to prevent invalid emails from being stored, which was causing delivery failures in the notification system.
|
|
80
|
+
|
|
81
|
+
### Be Specific About Impact
|
|
82
|
+
|
|
83
|
+
**Bad:**
|
|
84
|
+
> Fixed authentication bug.
|
|
85
|
+
|
|
86
|
+
**Good:**
|
|
87
|
+
> Fixes session timeout not being respected when "Remember Me" is checked, which was causing users to be logged out after 30 minutes regardless of their preference.
|
|
88
|
+
|
|
89
|
+
### Keep It Scannable
|
|
90
|
+
|
|
91
|
+
Reviewers often skim. Front-load the important information:
|
|
92
|
+
|
|
93
|
+
**Bad:**
|
|
94
|
+
> After investigating the issue that was reported last week about the dashboard loading slowly, I discovered that we were making redundant API calls. This PR addresses that by implementing caching.
|
|
95
|
+
|
|
96
|
+
**Good:**
|
|
97
|
+
> Reduces dashboard load time by 60% by caching API responses. The redundant calls were causing 3-second delays on each page load.
|
|
98
|
+
|
|
99
|
+
## Describing Changes
|
|
100
|
+
|
|
101
|
+
### Be Specific and Organized
|
|
102
|
+
|
|
103
|
+
Group related changes:
|
|
104
|
+
|
|
105
|
+
```markdown
|
|
106
|
+
## Changes
|
|
107
|
+
|
|
108
|
+
### API
|
|
109
|
+
- Add `POST /api/users/register` endpoint
|
|
110
|
+
- Add request validation middleware
|
|
111
|
+
- Add rate limiting (10 requests/minute)
|
|
112
|
+
|
|
113
|
+
### Database
|
|
114
|
+
- Add `email_verified` column to users table
|
|
115
|
+
- Add index on `email` column
|
|
116
|
+
|
|
117
|
+
### Tests
|
|
118
|
+
- Add unit tests for registration validation
|
|
119
|
+
- Add integration tests for registration flow
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Explain Non-Obvious Changes
|
|
123
|
+
|
|
124
|
+
```markdown
|
|
125
|
+
## Changes
|
|
126
|
+
- Increase connection pool size from 10 to 25
|
|
127
|
+
- Load testing showed connection exhaustion under peak traffic
|
|
128
|
+
- Add retry logic to external API calls
|
|
129
|
+
- The payment provider has occasional 503s that resolve on retry
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
## Linking to Issues
|
|
133
|
+
|
|
134
|
+
Always link the related issue:
|
|
135
|
+
|
|
136
|
+
```markdown
|
|
137
|
+
Closes #123
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
Or for partial work:
|
|
141
|
+
|
|
142
|
+
```markdown
|
|
143
|
+
Related to #123
|
|
144
|
+
Part of #123
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
## Highlighting Review Focus
|
|
148
|
+
|
|
149
|
+
Help reviewers prioritize their attention:
|
|
150
|
+
|
|
151
|
+
```markdown
|
|
152
|
+
## Notes for Reviewers
|
|
153
|
+
|
|
154
|
+
**Please focus on:**
|
|
155
|
+
- The caching invalidation logic in `src/cache/manager.ts` - I'm unsure if this handles all edge cases
|
|
156
|
+
- The error handling in the new endpoint
|
|
157
|
+
|
|
158
|
+
**You can skim:**
|
|
159
|
+
- The test files follow existing patterns
|
|
160
|
+
- The migration is straightforward
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
## Screenshots and Visuals
|
|
164
|
+
|
|
165
|
+
For UI changes, always include:
|
|
166
|
+
|
|
167
|
+
```markdown
|
|
168
|
+
## Screenshots
|
|
169
|
+
|
|
170
|
+
### Before
|
|
171
|
+
[screenshot]
|
|
172
|
+
|
|
173
|
+
### After
|
|
174
|
+
[screenshot]
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
For complex flows, use GIFs or numbered screenshots:
|
|
178
|
+
|
|
179
|
+
```markdown
|
|
180
|
+
## User Flow
|
|
181
|
+
|
|
182
|
+
1. User clicks "Register"
|
|
183
|
+
[screenshot 1]
|
|
184
|
+
|
|
185
|
+
2. Validation errors shown inline
|
|
186
|
+
[screenshot 2]
|
|
187
|
+
|
|
188
|
+
3. Success state with redirect
|
|
189
|
+
[screenshot 3]
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Breaking Changes
|
|
193
|
+
|
|
194
|
+
Clearly call out breaking changes:
|
|
195
|
+
|
|
196
|
+
```markdown
|
|
197
|
+
## ⚠️ Breaking Changes
|
|
198
|
+
|
|
199
|
+
- `getUserById()` now returns `null` instead of throwing when user not found
|
|
200
|
+
- The `/api/v1/users` endpoint is deprecated, use `/api/v2/users`
|
|
201
|
+
|
|
202
|
+
### Migration Guide
|
|
203
|
+
1. Update all `try/catch` blocks around `getUserById()` to null checks
|
|
204
|
+
2. Update API clients to use v2 endpoint
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
## Draft PRs
|
|
208
|
+
|
|
209
|
+
Use draft PRs for:
|
|
210
|
+
- Work in progress needing early feedback
|
|
211
|
+
- Architectural decisions to discuss
|
|
212
|
+
- Proof of concepts
|
|
213
|
+
|
|
214
|
+
```markdown
|
|
215
|
+
## 🚧 Draft PR
|
|
216
|
+
|
|
217
|
+
This is a draft to get early feedback on the approach.
|
|
218
|
+
|
|
219
|
+
**Questions:**
|
|
220
|
+
1. Should we use Redis or in-memory caching?
|
|
221
|
+
2. Is this the right place for this logic?
|
|
222
|
+
|
|
223
|
+
**Not yet complete:**
|
|
224
|
+
- [ ] Error handling
|
|
225
|
+
- [ ] Tests
|
|
226
|
+
- [ ] Documentation
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
## Checklist Before Submitting
|
|
230
|
+
|
|
231
|
+
Before marking ready for review:
|
|
232
|
+
|
|
233
|
+
- [ ] Title follows `#<issue> type: description` format
|
|
234
|
+
- [ ] Summary explains what AND why
|
|
235
|
+
- [ ] Issue is linked with `Closes #X`
|
|
236
|
+
- [ ] Changes are listed specifically
|
|
237
|
+
- [ ] Tests are included and passing
|
|
238
|
+
- [ ] Screenshots added for UI changes
|
|
239
|
+
- [ ] Breaking changes are highlighted
|
|
240
|
+
- [ ] Self-reviewed the diff for obvious issues
|
|
241
|
+
- [ ] Branch is synced with main (no merge conflicts)
|
|
242
|
+
|
|
243
|
+
## PR Size Guidelines
|
|
244
|
+
|
|
245
|
+
| Size | Lines Changed | Review Time | Recommendation |
|
|
246
|
+
|------|---------------|-------------|----------------|
|
|
247
|
+
| Small | < 100 | < 30 min | Ideal |
|
|
248
|
+
| Medium | 100-300 | 30-60 min | Acceptable |
|
|
249
|
+
| Large | 300-500 | 1-2 hours | Consider splitting |
|
|
250
|
+
| XL | > 500 | Hours | Split if possible |
|
|
251
|
+
|
|
252
|
+
If a PR is large, explain why:
|
|
253
|
+
```markdown
|
|
254
|
+
## Note on PR Size
|
|
255
|
+
|
|
256
|
+
This PR is larger than usual because it includes a database migration
|
|
257
|
+
that requires updating all affected queries atomically. Splitting would
|
|
258
|
+
leave the codebase in a broken state.
|
|
259
|
+
```
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-commands
|
|
3
|
+
description: Manages project-specific commands for development, testing, and deployment. Use when needing to run project commands or when setting up commands for a new project.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Project Commands Skill
|
|
7
|
+
|
|
8
|
+
This skill helps agents find and use the correct commands for the current project.
|
|
9
|
+
|
|
10
|
+
## Finding Commands
|
|
11
|
+
|
|
12
|
+
All project-specific commands are defined in `.claude/commands.md`. Always read this file before running commands.
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
# Read the commands file
|
|
16
|
+
cat .claude/commands.md
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Command Categories
|
|
20
|
+
|
|
21
|
+
### Development
|
|
22
|
+
- **Install**: Set up project dependencies
|
|
23
|
+
- **Dev**: Start development server
|
|
24
|
+
- **Build**: Create production build
|
|
25
|
+
|
|
26
|
+
### Testing
|
|
27
|
+
- **Test**: Run all tests
|
|
28
|
+
- **Test:unit**: Unit tests only
|
|
29
|
+
- **Test:e2e**: End-to-end tests (Playwright)
|
|
30
|
+
- **Test:coverage**: Tests with coverage report
|
|
31
|
+
|
|
32
|
+
### Code Quality
|
|
33
|
+
- **Lint**: Check code style
|
|
34
|
+
- **Format**: Auto-format code
|
|
35
|
+
- **Typecheck**: Verify types
|
|
36
|
+
|
|
37
|
+
## Setting Up Commands for a New Project
|
|
38
|
+
|
|
39
|
+
1. Copy the template:
|
|
40
|
+
```bash
|
|
41
|
+
cp .claude/commands.template.md [target-project]/.claude/commands.md
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
2. Replace placeholders with actual commands:
|
|
45
|
+
```
|
|
46
|
+
{{install}} → npm install (or yarn, pnpm, etc.)
|
|
47
|
+
{{dev}} → npm run dev
|
|
48
|
+
{{dev_url}} → http://localhost:3000
|
|
49
|
+
{{test}} → npm test
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
3. Remove unused sections (database, docker, etc.)
|
|
53
|
+
|
|
54
|
+
## Common Patterns by Stack
|
|
55
|
+
|
|
56
|
+
### Node.js / npm
|
|
57
|
+
```
|
|
58
|
+
{{install}}: npm install
|
|
59
|
+
{{dev}}: npm run dev
|
|
60
|
+
{{test}}: npm test
|
|
61
|
+
{{build}}: npm run build
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Python / pip
|
|
65
|
+
```
|
|
66
|
+
{{install}}: pip install -r requirements.txt
|
|
67
|
+
{{dev}}: python manage.py runserver
|
|
68
|
+
{{test}}: pytest
|
|
69
|
+
{{build}}: python setup.py build
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### Go
|
|
73
|
+
```
|
|
74
|
+
{{install}}: go mod download
|
|
75
|
+
{{dev}}: go run .
|
|
76
|
+
{{test}}: go test ./...
|
|
77
|
+
{{build}}: go build
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
### Rust
|
|
81
|
+
```
|
|
82
|
+
{{install}}: cargo build
|
|
83
|
+
{{dev}}: cargo run
|
|
84
|
+
{{test}}: cargo test
|
|
85
|
+
{{build}}: cargo build --release
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Agent Usage
|
|
89
|
+
|
|
90
|
+
When an agent needs to run a command:
|
|
91
|
+
|
|
92
|
+
1. Check `.claude/commands.md` for the correct command
|
|
93
|
+
2. Use the command exactly as specified
|
|
94
|
+
3. If a command is missing, ask the user or check `package.json`/equivalent
|
|
95
|
+
|
|
96
|
+
## Updating Commands
|
|
97
|
+
|
|
98
|
+
If you discover the correct command for an action:
|
|
99
|
+
1. Update `.claude/commands.md` with the correct command
|
|
100
|
+
2. Ensure other agents can find it in the future
|