opencode-goopspec 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.
Files changed (92) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +650 -0
  3. package/agents/goop-debugger.md +265 -0
  4. package/agents/goop-designer.md +244 -0
  5. package/agents/goop-executor.md +217 -0
  6. package/agents/goop-explorer.md +252 -0
  7. package/agents/goop-librarian.md +197 -0
  8. package/agents/goop-orchestrator.md +224 -0
  9. package/agents/goop-planner.md +231 -0
  10. package/agents/goop-researcher.md +246 -0
  11. package/agents/goop-tester.md +245 -0
  12. package/agents/goop-verifier.md +266 -0
  13. package/agents/goop-writer.md +293 -0
  14. package/agents/memory-distiller.md +226 -0
  15. package/commands/goop-accept.md +183 -0
  16. package/commands/goop-amend.md +175 -0
  17. package/commands/goop-complete.md +206 -0
  18. package/commands/goop-debug.md +318 -0
  19. package/commands/goop-discuss.md +138 -0
  20. package/commands/goop-execute.md +137 -0
  21. package/commands/goop-help.md +82 -0
  22. package/commands/goop-map-codebase.md +501 -0
  23. package/commands/goop-memory.md +66 -0
  24. package/commands/goop-milestone.md +213 -0
  25. package/commands/goop-pause.md +61 -0
  26. package/commands/goop-plan.md +78 -0
  27. package/commands/goop-quick.md +165 -0
  28. package/commands/goop-recall.md +48 -0
  29. package/commands/goop-remember.md +71 -0
  30. package/commands/goop-research.md +98 -0
  31. package/commands/goop-resume.md +57 -0
  32. package/commands/goop-setup.md +208 -0
  33. package/commands/goop-specify.md +145 -0
  34. package/commands/goop-status.md +153 -0
  35. package/dist/index.js +31017 -0
  36. package/dist/memory/index.js +48752 -0
  37. package/package.json +73 -0
  38. package/references/agent-patterns.md +334 -0
  39. package/references/boundary-system.md +141 -0
  40. package/references/deviation-rules.md +80 -0
  41. package/references/dispatch-patterns.md +176 -0
  42. package/references/model-profiles.md +109 -0
  43. package/references/orchestrator-philosophy.md +280 -0
  44. package/references/security-checklist.md +163 -0
  45. package/references/subagent-protocol.md +393 -0
  46. package/references/tdd.md +231 -0
  47. package/references/ui-brand.md +261 -0
  48. package/references/workflow-accept.md +325 -0
  49. package/references/workflow-execute.md +315 -0
  50. package/references/workflow-plan.md +179 -0
  51. package/references/workflow-research.md +234 -0
  52. package/references/workflow-specify.md +278 -0
  53. package/skills/README.md +362 -0
  54. package/skills/accessibility/skill.md +41 -0
  55. package/skills/accessibility-testing/skill.md +47 -0
  56. package/skills/api-docs/skill.md +50 -0
  57. package/skills/architecture-design/skill.md +168 -0
  58. package/skills/atomic-commits/skill.md +53 -0
  59. package/skills/code-review/skill.md +59 -0
  60. package/skills/codebase-mapping/skill.md +54 -0
  61. package/skills/convention-detection/skill.md +68 -0
  62. package/skills/debugging/skill.md +59 -0
  63. package/skills/deviation-handling/skill.md +187 -0
  64. package/skills/documentation/skill.md +213 -0
  65. package/skills/goop-core/skill.md +383 -0
  66. package/skills/memory-usage/skill.md +208 -0
  67. package/skills/parallel-planning/skill.md +170 -0
  68. package/skills/pattern-extraction/skill.md +73 -0
  69. package/skills/performance-optimization/skill.md +188 -0
  70. package/skills/playwright/skill.md +69 -0
  71. package/skills/playwright-testing/skill.md +93 -0
  72. package/skills/progress-tracking/skill.md +155 -0
  73. package/skills/readme-generation/skill.md +87 -0
  74. package/skills/research/skill.md +161 -0
  75. package/skills/responsive-design/skill.md +76 -0
  76. package/skills/scientific-method/skill.md +67 -0
  77. package/skills/security-audit/skill.md +152 -0
  78. package/skills/task-decomposition/skill.md +153 -0
  79. package/skills/task-delegation/skill.md +127 -0
  80. package/skills/technical-writing/skill.md +69 -0
  81. package/skills/testing/skill.md +202 -0
  82. package/skills/ui-design/skill.md +73 -0
  83. package/skills/ux-patterns/skill.md +82 -0
  84. package/skills/verification/skill.md +178 -0
  85. package/skills/visual-regression/skill.md +86 -0
  86. package/templates/blueprint.md +141 -0
  87. package/templates/chronicle.md +156 -0
  88. package/templates/milestone.md +131 -0
  89. package/templates/research.md +117 -0
  90. package/templates/retrospective.md +188 -0
  91. package/templates/spec.md +103 -0
  92. package/templates/summary.md +202 -0
@@ -0,0 +1,362 @@
1
+ # GoopSpec Skills
2
+
3
+ Skills are reusable knowledge modules that can be loaded by agents to provide specialized expertise. This directory contains bundled skills that ship with GoopSpec.
4
+
5
+ ## Skill Resolution
6
+
7
+ GoopSpec resolves skills using a priority-based system:
8
+
9
+ ### Resolution Order (Highest Priority First)
10
+
11
+ 1. **Project Overrides**: `.goopspec/skills/` in your project
12
+ 2. **Bundled Skills**: `skills/` in the GoopSpec package
13
+
14
+ This allows you to:
15
+ - Override bundled skills with project-specific versions
16
+ - Create custom skills for your project
17
+ - Share skills across projects by placing them in the bundled directory
18
+
19
+ ### File Formats
20
+
21
+ Skills can be defined in two formats:
22
+
23
+ #### 1. Flat File Format
24
+
25
+ A single markdown file with frontmatter:
26
+
27
+ ```
28
+ skills/
29
+ my-skill.md
30
+ ```
31
+
32
+ **Example: `my-skill.md`**
33
+ ```markdown
34
+ ---
35
+ name: my-skill
36
+ description: A custom skill for my project
37
+ tags: [custom, example]
38
+ ---
39
+
40
+ # My Skill
41
+
42
+ This is the skill content that will be loaded into the agent's context.
43
+
44
+ ## Usage
45
+
46
+ Instructions for using this skill...
47
+ ```
48
+
49
+ #### 2. Directory-Based Format
50
+
51
+ A directory containing a `skill.md` file:
52
+
53
+ ```
54
+ skills/
55
+ my-skill/
56
+ skill.md
57
+ additional-file.txt
58
+ ```
59
+
60
+ **Example: `my-skill/skill.md`**
61
+ ```markdown
62
+ ---
63
+ name: my-skill
64
+ description: A custom skill with additional resources
65
+ tags: [custom, example]
66
+ ---
67
+
68
+ # My Skill
69
+
70
+ This skill can reference additional files in the same directory.
71
+
72
+ ## Usage
73
+
74
+ Instructions for using this skill...
75
+ ```
76
+
77
+ **Why use directory format?**
78
+ - Include additional resources (examples, templates, data files)
79
+ - Better organization for complex skills
80
+ - Easier to version control as a unit
81
+
82
+ ### Resolution Examples
83
+
84
+ Given these files:
85
+ ```
86
+ .goopspec/skills/
87
+ testing.md # Project override
88
+ custom-skill.md # Project-specific skill
89
+
90
+ skills/ # Bundled (GoopSpec package)
91
+ testing.md # Bundled version
92
+ goop-core/
93
+ skill.md # Directory-based skill
94
+ ```
95
+
96
+ Resolution results:
97
+ - `testing` → `.goopspec/skills/testing.md` (project override wins)
98
+ - `custom-skill` → `.goopspec/skills/custom-skill.md` (project-only)
99
+ - `goop-core` → `skills/goop-core/skill.md` (bundled directory-based)
100
+
101
+ ## Creating Custom Skills
102
+
103
+ ### 1. Create a Project Skill
104
+
105
+ Create `.goopspec/skills/` in your project:
106
+
107
+ ```bash
108
+ mkdir -p .goopspec/skills
109
+ ```
110
+
111
+ Create your skill file:
112
+
113
+ ```bash
114
+ cat > .goopspec/skills/my-custom-skill.md << 'EOF'
115
+ ---
116
+ name: my-custom-skill
117
+ description: Custom skill for my project
118
+ tags: [custom]
119
+ ---
120
+
121
+ # My Custom Skill
122
+
123
+ Skill content here...
124
+ EOF
125
+ ```
126
+
127
+ ### 2. Reference in Agent
128
+
129
+ In your agent definition (`.goopspec/agents/my-agent.md`):
130
+
131
+ ```yaml
132
+ ---
133
+ name: my-agent
134
+ skills:
135
+ - my-custom-skill
136
+ - goop-core
137
+ ---
138
+
139
+ Agent instructions...
140
+ ```
141
+
142
+ ### 3. Load Dynamically
143
+
144
+ Skills can also be loaded dynamically using the `goop-skill` tool:
145
+
146
+ ```
147
+ Use the goop-skill tool to load the "my-custom-skill" skill.
148
+ ```
149
+
150
+ ## Skill Frontmatter Format
151
+
152
+ All skills should include frontmatter with these fields:
153
+
154
+ ```yaml
155
+ ---
156
+ name: skill-name # Required: Unique identifier
157
+ description: Brief description # Required: What this skill provides
158
+ tags: [tag1, tag2] # Optional: Categorization tags
159
+ version: 1.0.0 # Optional: Semantic version
160
+ author: Your Name # Optional: Skill author
161
+ requires: [other-skill] # Optional: Skill dependencies
162
+ ---
163
+ ```
164
+
165
+ ### Frontmatter Fields
166
+
167
+ | Field | Required | Description |
168
+ |-------|----------|-------------|
169
+ | `name` | Yes | Unique identifier for the skill (kebab-case recommended) |
170
+ | `description` | Yes | Brief description of what the skill provides |
171
+ | `tags` | No | Array of tags for categorization and search |
172
+ | `version` | No | Semantic version (e.g., "1.0.0") |
173
+ | `author` | No | Skill author name or organization |
174
+ | `requires` | No | Array of skill names this skill depends on |
175
+
176
+ ## Skill Content Guidelines
177
+
178
+ ### Structure
179
+
180
+ A well-structured skill should include:
181
+
182
+ 1. **Title**: Clear, descriptive heading
183
+ 2. **Purpose**: What problem does this skill solve?
184
+ 3. **Principles**: Core concepts and best practices
185
+ 4. **Examples**: Concrete examples of usage
186
+ 5. **Anti-patterns**: What to avoid
187
+
188
+ ### Example Structure
189
+
190
+ ```markdown
191
+ ---
192
+ name: example-skill
193
+ description: Example skill structure
194
+ ---
195
+
196
+ # Example Skill
197
+
198
+ ## Purpose
199
+ Explain what this skill helps with...
200
+
201
+ ## Principles
202
+
203
+ 1. **Principle 1** - Explanation
204
+ 2. **Principle 2** - Explanation
205
+
206
+ ## Usage
207
+
208
+ ### Basic Usage
209
+ Example of basic usage...
210
+
211
+ ### Advanced Usage
212
+ Example of advanced usage...
213
+
214
+ ## Examples
215
+
216
+ ### Example 1: Common Case
217
+ Code or instructions...
218
+
219
+ ### Example 2: Edge Case
220
+ Code or instructions...
221
+
222
+ ## Anti-Patterns
223
+
224
+ ### Don't Do This
225
+ Explanation of what to avoid...
226
+
227
+ ### Do This Instead
228
+ Better approach...
229
+
230
+ ## References
231
+
232
+ - [External Resource](https://example.com)
233
+ - Related skills: `other-skill`, `another-skill`
234
+ ```
235
+
236
+ ## Best Practices
237
+
238
+ ### Naming Conventions
239
+
240
+ - Use kebab-case: `my-skill-name`
241
+ - Be descriptive: `api-testing` not `test`
242
+ - Avoid generic names: `react-hooks` not `hooks`
243
+
244
+ ### Content Guidelines
245
+
246
+ - **Be concise**: Skills should be focused and scannable
247
+ - **Use examples**: Show, don't just tell
248
+ - **Include context**: Explain when to use the skill
249
+ - **Link related skills**: Help agents discover related knowledge
250
+ - **Version carefully**: Breaking changes should increment major version
251
+
252
+ ### Organization
253
+
254
+ - **One skill, one purpose**: Don't create mega-skills
255
+ - **Compose skills**: Use `requires` to build on other skills
256
+ - **Group related skills**: Use tags for discoverability
257
+
258
+ ## Bundled Skills
259
+
260
+ GoopSpec ships with these bundled skills:
261
+
262
+ | Skill | Description |
263
+ |-------|-------------|
264
+ | `goop-core` | Core GoopSpec workflow and principles |
265
+ | `atomic-commits` | Git commit best practices |
266
+ | `code-review` | Code review guidelines |
267
+ | `testing` | Testing strategies and patterns |
268
+ | `debugging` | Systematic debugging approach |
269
+ | `documentation` | Documentation writing guidelines |
270
+ | `research` | Research and exploration techniques |
271
+ | `task-decomposition` | Breaking down complex tasks |
272
+ | `memory-usage` | Using the memory system effectively |
273
+
274
+ See individual skill files for detailed documentation.
275
+
276
+ ## Troubleshooting
277
+
278
+ ### Skill Not Found
279
+
280
+ If a skill isn't loading:
281
+
282
+ 1. Check the skill name matches the filename (without `.md`)
283
+ 2. Verify frontmatter includes `name` field
284
+ 3. Check file is in correct directory (`.goopspec/skills/` or `skills/`)
285
+ 4. For directory-based skills, ensure file is named `skill.md`
286
+
287
+ ### Skill Not Loading
288
+
289
+ If a skill loads but doesn't work:
290
+
291
+ 1. Verify frontmatter is valid YAML
292
+ 2. Check for syntax errors in markdown
293
+ 3. Ensure required dependencies are available
294
+ 4. Check agent configuration includes the skill
295
+
296
+ ### Override Not Working
297
+
298
+ If project override isn't taking effect:
299
+
300
+ 1. Ensure file is in `.goopspec/skills/` (not `skills/`)
301
+ 2. Check filename matches exactly (case-sensitive)
302
+ 3. Verify frontmatter `name` field matches
303
+ 4. Clear any caches (restart agent)
304
+
305
+ ## Advanced Topics
306
+
307
+ ### Skill Dependencies
308
+
309
+ Skills can depend on other skills using the `requires` field:
310
+
311
+ ```yaml
312
+ ---
313
+ name: advanced-testing
314
+ requires:
315
+ - testing
316
+ - debugging
317
+ ---
318
+ ```
319
+
320
+ When loaded, GoopSpec will automatically load required skills first.
321
+
322
+ ### Skill Versioning
323
+
324
+ Use semantic versioning to manage skill evolution:
325
+
326
+ - **Major** (1.0.0 → 2.0.0): Breaking changes
327
+ - **Minor** (1.0.0 → 1.1.0): New features, backward compatible
328
+ - **Patch** (1.0.0 → 1.0.1): Bug fixes, clarifications
329
+
330
+ ### Skill Templates
331
+
332
+ Create skill templates for common patterns:
333
+
334
+ ```bash
335
+ # Create from template
336
+ cp skills/_template.md .goopspec/skills/my-new-skill.md
337
+ ```
338
+
339
+ ### Skill Testing
340
+
341
+ Test skills by:
342
+
343
+ 1. Creating a test agent that loads the skill
344
+ 2. Running the agent on sample tasks
345
+ 3. Verifying the agent follows skill guidelines
346
+ 4. Checking for conflicts with other skills
347
+
348
+ ## Contributing Skills
349
+
350
+ To contribute a skill to GoopSpec:
351
+
352
+ 1. Create the skill in `skills/` directory
353
+ 2. Follow the structure and guidelines above
354
+ 3. Add tests if applicable
355
+ 4. Update this README with the new skill
356
+ 5. Submit a pull request
357
+
358
+ ## Resources
359
+
360
+ - [GoopSpec Documentation](../README.md)
361
+ - [Agent Configuration](../agents/README.md)
362
+ - [Resource Resolution](../src/core/resolver.ts)
@@ -0,0 +1,41 @@
1
+ ---
2
+ name: accessibility
3
+ description: Ensure all UI components meet WCAG accessibility guidelines and are usable by people with disabilities.
4
+ category: design
5
+ triggers:
6
+ - accessibility
7
+ - wcag
8
+ - a11y
9
+ - inclusive
10
+ version: 0.1.0
11
+ ---
12
+
13
+ # Accessibility Skill
14
+
15
+ ## Purpose
16
+ Ensure all UI components meet WCAG accessibility guidelines and are usable by people with disabilities.
17
+
18
+ ## Key Principles
19
+
20
+ 1. **Semantic HTML** - Use proper HTML elements for their intended purpose
21
+ 2. **Keyboard Navigation** - All interactive elements must be keyboard accessible
22
+ 3. **Screen Reader Support** - Provide meaningful labels and ARIA attributes
23
+ 4. **Color Contrast** - Maintain sufficient contrast ratios (4.5:1 for normal text)
24
+ 5. **Focus Management** - Visible focus indicators and logical focus order
25
+
26
+ ## Checklist
27
+
28
+ - [ ] All images have meaningful alt text
29
+ - [ ] Form inputs have associated labels
30
+ - [ ] Interactive elements are focusable
31
+ - [ ] Color is not the only means of conveying information
32
+ - [ ] Text can be resized up to 200% without loss of content
33
+ - [ ] Skip links are provided for navigation
34
+ - [ ] ARIA roles are used appropriately
35
+ - [ ] Error messages are associated with their inputs
36
+
37
+ ## Tools
38
+
39
+ - axe-core for automated testing
40
+ - Screen readers (NVDA, VoiceOver) for manual testing
41
+ - Lighthouse accessibility audit
@@ -0,0 +1,47 @@
1
+ ---
2
+ name: accessibility-testing
3
+ description: Systematically verify accessibility compliance through automated and manual testing.
4
+ category: review
5
+ triggers:
6
+ - accessibility
7
+ - wcag
8
+ - a11y
9
+ - testing
10
+ version: 0.1.0
11
+ ---
12
+
13
+ # Accessibility Testing Skill
14
+
15
+ ## Purpose
16
+ Systematically verify accessibility compliance through automated and manual testing.
17
+
18
+ ## Testing Approach
19
+
20
+ ### Automated Testing
21
+ 1. Run axe-core or similar tools on each page
22
+ 2. Integrate accessibility checks into CI/CD pipeline
23
+ 3. Use Lighthouse for accessibility scoring
24
+ 4. Check color contrast ratios programmatically
25
+
26
+ ### Manual Testing
27
+ 1. Navigate using keyboard only
28
+ 2. Test with screen readers (NVDA, VoiceOver, JAWS)
29
+ 3. Verify focus order is logical
30
+ 4. Check that dynamic content updates are announced
31
+ 5. Test at 200% zoom level
32
+
33
+ ### Test Categories
34
+
35
+ - **Perceivable** - Content can be perceived by all users
36
+ - **Operable** - Interface can be operated by all users
37
+ - **Understandable** - Content and operation are understandable
38
+ - **Robust** - Content works with assistive technologies
39
+
40
+ ## Common Issues
41
+
42
+ - Missing alt text on images
43
+ - Poor color contrast
44
+ - Missing form labels
45
+ - Inaccessible custom controls
46
+ - Focus traps in modals
47
+ - Missing skip links
@@ -0,0 +1,50 @@
1
+ ---
2
+ name: api-docs
3
+ description: Create clear, accurate, and comprehensive API documentation.
4
+ category: docs
5
+ triggers:
6
+ - api
7
+ - documentation
8
+ - reference
9
+ - openapi
10
+ version: 0.1.0
11
+ ---
12
+
13
+ # API Documentation Skill
14
+
15
+ ## Purpose
16
+ Create clear, accurate, and comprehensive API documentation.
17
+
18
+ ## Documentation Components
19
+
20
+ ### 1. Overview
21
+ - API purpose and capabilities
22
+ - Authentication requirements
23
+ - Base URL and versioning
24
+ - Rate limits and quotas
25
+
26
+ ### 2. Endpoint Documentation
27
+ - HTTP method and path
28
+ - Request parameters (path, query, body)
29
+ - Request/response examples
30
+ - Error responses and codes
31
+ - Authentication requirements
32
+
33
+ ### 3. Code Examples
34
+ - Multiple language examples (curl, JavaScript, Python)
35
+ - Complete, runnable snippets
36
+ - Common use case scenarios
37
+
38
+ ## Best Practices
39
+
40
+ 1. **Be Accurate** - Documentation must match actual behavior
41
+ 2. **Use Examples** - Real request/response pairs
42
+ 3. **Explain Errors** - Document all error codes and recovery steps
43
+ 4. **Version Clearly** - Note API version and deprecations
44
+ 5. **Keep Updated** - Update docs with every API change
45
+
46
+ ## Format Standards
47
+
48
+ - OpenAPI/Swagger for REST APIs
49
+ - GraphQL schema for GraphQL APIs
50
+ - JSDoc/TSDoc for library functions
@@ -0,0 +1,168 @@
1
+ ---
2
+ name: architecture-design
3
+ description: Design system architecture and make structural decisions
4
+ category: core
5
+ triggers:
6
+ - architecture
7
+ - design
8
+ - structure
9
+ - system
10
+ version: 0.1.0
11
+ requires:
12
+ - goop-core
13
+ ---
14
+
15
+ # Architecture Design Skill
16
+
17
+ ## Design Principles
18
+
19
+ ### 1. Separation of Concerns
20
+ Each module has a single, well-defined responsibility.
21
+
22
+ ### 2. Dependency Inversion
23
+ Depend on abstractions, not concretions.
24
+
25
+ ### 3. Interface Segregation
26
+ Many specific interfaces over one general-purpose interface.
27
+
28
+ ### 4. Open/Closed
29
+ Open for extension, closed for modification.
30
+
31
+ ### 5. Single Source of Truth
32
+ Each piece of data has exactly one authoritative source.
33
+
34
+ ## Architecture Patterns
35
+
36
+ ### Layered Architecture
37
+
38
+ ```
39
+ ┌─────────────────────────────┐
40
+ │ Presentation Layer │
41
+ ├─────────────────────────────┤
42
+ │ Application Layer │
43
+ ├─────────────────────────────┤
44
+ │ Domain Layer │
45
+ ├─────────────────────────────┤
46
+ │ Infrastructure Layer │
47
+ └─────────────────────────────┘
48
+ ```
49
+
50
+ ### Clean Architecture
51
+
52
+ ```
53
+ ┌─────────────────────────────────────┐
54
+ │ Frameworks │
55
+ │ ┌─────────────────────────────┐ │
56
+ │ │ Interface Adapters │ │
57
+ │ │ ┌─────────────────────┐ │ │
58
+ │ │ │ Use Cases │ │ │
59
+ │ │ │ ┌─────────────┐ │ │ │
60
+ │ │ │ │ Entities │ │ │ │
61
+ │ │ │ └─────────────┘ │ │ │
62
+ │ │ └─────────────────────┘ │ │
63
+ │ └─────────────────────────────┘ │
64
+ └─────────────────────────────────────┘
65
+ ```
66
+
67
+ ### Hexagonal (Ports & Adapters)
68
+
69
+ ```
70
+ ┌─────────────┐
71
+ ┌────┤ Adapter ├────┐
72
+ │ └─────────────┘ │
73
+ │ │
74
+ ┌───┴───┐ ┌───────┐ ┌───┴───┐
75
+ │ Port │───│ Core │───│ Port │
76
+ └───┬───┘ └───────┘ └───┬───┘
77
+ │ │
78
+ │ ┌─────────────┐ │
79
+ └────┤ Adapter ├────┘
80
+ └─────────────┘
81
+ ```
82
+
83
+ ## Decision Framework
84
+
85
+ ### When Making Architecture Decisions
86
+
87
+ 1. **Identify the problem** - What specific issue needs solving?
88
+ 2. **List constraints** - Budget, time, team skills, scale requirements
89
+ 3. **Consider options** - At least 3 viable approaches
90
+ 4. **Evaluate tradeoffs** - Pros/cons of each option
91
+ 5. **Document decision** - Record in ADL with rationale
92
+
93
+ ### Decision Template
94
+
95
+ ```markdown
96
+ ### AD-XXX: {Decision Title}
97
+
98
+ **Context:** {What situation prompted this decision?}
99
+
100
+ **Options Considered:**
101
+ 1. {Option A} - {Brief description}
102
+ 2. {Option B} - {Brief description}
103
+ 3. {Option C} - {Brief description}
104
+
105
+ **Decision:** {Which option was chosen}
106
+
107
+ **Rationale:** {Why this option?}
108
+
109
+ **Consequences:**
110
+ - {Positive consequence}
111
+ - {Negative consequence/tradeoff}
112
+
113
+ **Related:** {Links to related decisions}
114
+ ```
115
+
116
+ ## Common Patterns
117
+
118
+ ### Repository Pattern
119
+ Abstracts data access behind a collection-like interface.
120
+
121
+ ### Service Layer
122
+ Coordinates application operations and transactions.
123
+
124
+ ### Factory Pattern
125
+ Encapsulates object creation logic.
126
+
127
+ ### Observer Pattern
128
+ Defines one-to-many dependency for state changes.
129
+
130
+ ### Strategy Pattern
131
+ Defines family of interchangeable algorithms.
132
+
133
+ ## Project Structure
134
+
135
+ ### Feature-Based (Recommended)
136
+ ```
137
+ src/
138
+ ├── features/
139
+ │ ├── auth/
140
+ │ │ ├── login.ts
141
+ │ │ ├── logout.ts
142
+ │ │ └── auth.test.ts
143
+ │ └── users/
144
+ │ ├── create-user.ts
145
+ │ └── users.test.ts
146
+ ├── shared/
147
+ │ ├── database/
148
+ │ └── utils/
149
+ └── index.ts
150
+ ```
151
+
152
+ ### Layer-Based
153
+ ```
154
+ src/
155
+ ├── controllers/
156
+ ├── services/
157
+ ├── repositories/
158
+ ├── models/
159
+ └── utils/
160
+ ```
161
+
162
+ ## Best Practices
163
+
164
+ 1. **Document decisions** - Every architectural choice in ADL
165
+ 2. **Start simple** - Add complexity only when needed
166
+ 3. **Defer decisions** - Make reversible choices when uncertain
167
+ 4. **Vertical slices** - Complete features over horizontal layers
168
+ 5. **Test boundaries** - Focus tests on public interfaces
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: atomic-commits
3
+ description: Create small, focused commits that each represent a single logical change.
4
+ category: code
5
+ triggers:
6
+ - commit
7
+ - git
8
+ - atomic
9
+ - history
10
+ version: 0.1.0
11
+ ---
12
+
13
+ # Atomic Commits Skill
14
+
15
+ ## Purpose
16
+ Create small, focused commits that each represent a single logical change.
17
+
18
+ ## Principles
19
+
20
+ 1. **One Change Per Commit** - Each commit should do one thing
21
+ 2. **Buildable State** - Every commit should leave the code in a working state
22
+ 3. **Meaningful Messages** - Commit messages explain the why, not just the what
23
+ 4. **Reviewable Size** - Commits should be easy to review (< 200 lines ideal)
24
+
25
+ ## Commit Structure
26
+
27
+ ```
28
+ type(scope): short description
29
+
30
+ Longer explanation of why this change was made.
31
+ Include context that helps future readers understand
32
+ the decision.
33
+
34
+ Closes #123
35
+ ```
36
+
37
+ ## Types
38
+
39
+ - `feat` - New feature
40
+ - `fix` - Bug fix
41
+ - `refactor` - Code restructuring
42
+ - `docs` - Documentation only
43
+ - `test` - Test additions/changes
44
+ - `chore` - Maintenance tasks
45
+ - `perf` - Performance improvements
46
+
47
+ ## Anti-Patterns to Avoid
48
+
49
+ - "WIP" commits
50
+ - "Fix typo" without context
51
+ - Multiple unrelated changes in one commit
52
+ - Breaking commits (code doesn't build)
53
+ - Giant commits that do everything