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.
- package/LICENSE +21 -0
- package/README.md +650 -0
- package/agents/goop-debugger.md +265 -0
- package/agents/goop-designer.md +244 -0
- package/agents/goop-executor.md +217 -0
- package/agents/goop-explorer.md +252 -0
- package/agents/goop-librarian.md +197 -0
- package/agents/goop-orchestrator.md +224 -0
- package/agents/goop-planner.md +231 -0
- package/agents/goop-researcher.md +246 -0
- package/agents/goop-tester.md +245 -0
- package/agents/goop-verifier.md +266 -0
- package/agents/goop-writer.md +293 -0
- package/agents/memory-distiller.md +226 -0
- package/commands/goop-accept.md +183 -0
- package/commands/goop-amend.md +175 -0
- package/commands/goop-complete.md +206 -0
- package/commands/goop-debug.md +318 -0
- package/commands/goop-discuss.md +138 -0
- package/commands/goop-execute.md +137 -0
- package/commands/goop-help.md +82 -0
- package/commands/goop-map-codebase.md +501 -0
- package/commands/goop-memory.md +66 -0
- package/commands/goop-milestone.md +213 -0
- package/commands/goop-pause.md +61 -0
- package/commands/goop-plan.md +78 -0
- package/commands/goop-quick.md +165 -0
- package/commands/goop-recall.md +48 -0
- package/commands/goop-remember.md +71 -0
- package/commands/goop-research.md +98 -0
- package/commands/goop-resume.md +57 -0
- package/commands/goop-setup.md +208 -0
- package/commands/goop-specify.md +145 -0
- package/commands/goop-status.md +153 -0
- package/dist/index.js +31017 -0
- package/dist/memory/index.js +48752 -0
- package/package.json +73 -0
- package/references/agent-patterns.md +334 -0
- package/references/boundary-system.md +141 -0
- package/references/deviation-rules.md +80 -0
- package/references/dispatch-patterns.md +176 -0
- package/references/model-profiles.md +109 -0
- package/references/orchestrator-philosophy.md +280 -0
- package/references/security-checklist.md +163 -0
- package/references/subagent-protocol.md +393 -0
- package/references/tdd.md +231 -0
- package/references/ui-brand.md +261 -0
- package/references/workflow-accept.md +325 -0
- package/references/workflow-execute.md +315 -0
- package/references/workflow-plan.md +179 -0
- package/references/workflow-research.md +234 -0
- package/references/workflow-specify.md +278 -0
- package/skills/README.md +362 -0
- package/skills/accessibility/skill.md +41 -0
- package/skills/accessibility-testing/skill.md +47 -0
- package/skills/api-docs/skill.md +50 -0
- package/skills/architecture-design/skill.md +168 -0
- package/skills/atomic-commits/skill.md +53 -0
- package/skills/code-review/skill.md +59 -0
- package/skills/codebase-mapping/skill.md +54 -0
- package/skills/convention-detection/skill.md +68 -0
- package/skills/debugging/skill.md +59 -0
- package/skills/deviation-handling/skill.md +187 -0
- package/skills/documentation/skill.md +213 -0
- package/skills/goop-core/skill.md +383 -0
- package/skills/memory-usage/skill.md +208 -0
- package/skills/parallel-planning/skill.md +170 -0
- package/skills/pattern-extraction/skill.md +73 -0
- package/skills/performance-optimization/skill.md +188 -0
- package/skills/playwright/skill.md +69 -0
- package/skills/playwright-testing/skill.md +93 -0
- package/skills/progress-tracking/skill.md +155 -0
- package/skills/readme-generation/skill.md +87 -0
- package/skills/research/skill.md +161 -0
- package/skills/responsive-design/skill.md +76 -0
- package/skills/scientific-method/skill.md +67 -0
- package/skills/security-audit/skill.md +152 -0
- package/skills/task-decomposition/skill.md +153 -0
- package/skills/task-delegation/skill.md +127 -0
- package/skills/technical-writing/skill.md +69 -0
- package/skills/testing/skill.md +202 -0
- package/skills/ui-design/skill.md +73 -0
- package/skills/ux-patterns/skill.md +82 -0
- package/skills/verification/skill.md +178 -0
- package/skills/visual-regression/skill.md +86 -0
- package/templates/blueprint.md +141 -0
- package/templates/chronicle.md +156 -0
- package/templates/milestone.md +131 -0
- package/templates/research.md +117 -0
- package/templates/retrospective.md +188 -0
- package/templates/spec.md +103 -0
- package/templates/summary.md +202 -0
package/skills/README.md
ADDED
|
@@ -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
|