oh-my-customcode 0.12.1 → 0.12.2
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 +4 -8
- package/dist/cli/index.js +137 -336
- package/dist/index.js +99 -260
- package/package.json +2 -4
- package/templates/.codex/agents/arch-documenter.md +0 -33
- package/templates/.codex/agents/arch-speckit-agent.md +0 -47
- package/templates/.codex/agents/be-express-expert.md +0 -30
- package/templates/.codex/agents/be-fastapi-expert.md +0 -43
- package/templates/.codex/agents/be-go-backend-expert.md +0 -43
- package/templates/.codex/agents/be-nestjs-expert.md +0 -28
- package/templates/.codex/agents/be-springboot-expert.md +0 -40
- package/templates/.codex/agents/db-postgres-expert.md +0 -36
- package/templates/.codex/agents/db-redis-expert.md +0 -36
- package/templates/.codex/agents/db-supabase-expert.md +0 -35
- package/templates/.codex/agents/de-airflow-expert.md +0 -34
- package/templates/.codex/agents/de-dbt-expert.md +0 -34
- package/templates/.codex/agents/de-kafka-expert.md +0 -81
- package/templates/.codex/agents/de-pipeline-expert.md +0 -32
- package/templates/.codex/agents/de-snowflake-expert.md +0 -36
- package/templates/.codex/agents/de-spark-expert.md +0 -36
- package/templates/.codex/agents/fe-svelte-agent.md +0 -29
- package/templates/.codex/agents/fe-vercel-agent.md +0 -37
- package/templates/.codex/agents/fe-vuejs-agent.md +0 -30
- package/templates/.codex/agents/infra-aws-expert.md +0 -47
- package/templates/.codex/agents/infra-docker-expert.md +0 -47
- package/templates/.codex/agents/lang-golang-expert.md +0 -43
- package/templates/.codex/agents/lang-java21-expert.md +0 -39
- package/templates/.codex/agents/lang-kotlin-expert.md +0 -43
- package/templates/.codex/agents/lang-python-expert.md +0 -43
- package/templates/.codex/agents/lang-rust-expert.md +0 -43
- package/templates/.codex/agents/lang-typescript-expert.md +0 -43
- package/templates/.codex/agents/mgr-claude-code-bible.md +0 -58
- package/templates/.codex/agents/mgr-creator.md +0 -39
- package/templates/.codex/agents/mgr-gitnerd.md +0 -45
- package/templates/.codex/agents/mgr-sauron.md +0 -161
- package/templates/.codex/agents/mgr-supplier.md +0 -35
- package/templates/.codex/agents/mgr-sync-checker.md +0 -38
- package/templates/.codex/agents/mgr-updater.md +0 -33
- package/templates/.codex/agents/qa-engineer.md +0 -32
- package/templates/.codex/agents/qa-planner.md +0 -73
- package/templates/.codex/agents/qa-writer.md +0 -27
- package/templates/.codex/agents/sys-memory-keeper.md +0 -43
- package/templates/.codex/agents/sys-naggy.md +0 -37
- package/templates/.codex/agents/tool-bun-expert.md +0 -26
- package/templates/.codex/agents/tool-npm-expert.md +0 -30
- package/templates/.codex/agents/tool-optimizer.md +0 -34
- package/templates/.codex/codex-native-hash.txt +0 -1
- package/templates/.codex/contexts/dev.md +0 -20
- package/templates/.codex/contexts/ecomode.md +0 -63
- package/templates/.codex/contexts/index.yaml +0 -41
- package/templates/.codex/contexts/research.md +0 -28
- package/templates/.codex/contexts/review.md +0 -23
- package/templates/.codex/hooks/hooks.json +0 -150
- package/templates/.codex/install-hooks.sh +0 -100
- package/templates/.codex/rules/MAY-optimization.md +0 -29
- package/templates/.codex/rules/MUST-agent-design.md +0 -57
- package/templates/.codex/rules/MUST-agent-identification.md +0 -29
- package/templates/.codex/rules/MUST-continuous-improvement.md +0 -25
- package/templates/.codex/rules/MUST-intent-transparency.md +0 -42
- package/templates/.codex/rules/MUST-language-policy.md +0 -27
- package/templates/.codex/rules/MUST-orchestrator-coordination.md +0 -128
- package/templates/.codex/rules/MUST-parallel-execution.md +0 -97
- package/templates/.codex/rules/MUST-permissions.md +0 -30
- package/templates/.codex/rules/MUST-safety.md +0 -23
- package/templates/.codex/rules/MUST-sync-verification.md +0 -125
- package/templates/.codex/rules/MUST-tool-identification.md +0 -82
- package/templates/.codex/rules/SHOULD-agent-teams.md +0 -39
- package/templates/.codex/rules/SHOULD-ecomode.md +0 -37
- package/templates/.codex/rules/SHOULD-error-handling.md +0 -33
- package/templates/.codex/rules/SHOULD-hud-statusline.md +0 -32
- package/templates/.codex/rules/SHOULD-interaction.md +0 -34
- package/templates/.codex/rules/SHOULD-memory-integration.md +0 -39
- package/templates/.codex/rules/index.yaml +0 -141
- package/templates/.codex/skills/airflow-best-practices/SKILL.md +0 -56
- package/templates/.codex/skills/audit-agents/SKILL.md +0 -116
- package/templates/.codex/skills/aws-best-practices/SKILL.md +0 -280
- package/templates/.codex/skills/claude-code-bible/SKILL.md +0 -100
- package/templates/.codex/skills/claude-code-bible/scripts/fetch-docs.js +0 -272
- package/templates/.codex/skills/create-agent/SKILL.md +0 -91
- package/templates/.codex/skills/dbt-best-practices/SKILL.md +0 -54
- package/templates/.codex/skills/de-lead-routing/SKILL.md +0 -243
- package/templates/.codex/skills/dev-lead-routing/SKILL.md +0 -94
- package/templates/.codex/skills/dev-refactor/SKILL.md +0 -123
- package/templates/.codex/skills/dev-review/SKILL.md +0 -81
- package/templates/.codex/skills/docker-best-practices/SKILL.md +0 -275
- package/templates/.codex/skills/fastapi-best-practices/SKILL.md +0 -270
- package/templates/.codex/skills/fix-refs/SKILL.md +0 -107
- package/templates/.codex/skills/go-backend-best-practices/SKILL.md +0 -338
- package/templates/.codex/skills/go-best-practices/SKILL.md +0 -203
- package/templates/.codex/skills/help/SKILL.md +0 -125
- package/templates/.codex/skills/intent-detection/SKILL.md +0 -215
- package/templates/.codex/skills/intent-detection/patterns/agent-triggers.yaml +0 -349
- package/templates/.codex/skills/kafka-best-practices/SKILL.md +0 -52
- package/templates/.codex/skills/kotlin-best-practices/SKILL.md +0 -256
- package/templates/.codex/skills/lists/SKILL.md +0 -78
- package/templates/.codex/skills/memory-management/SKILL.md +0 -195
- package/templates/.codex/skills/memory-recall/SKILL.md +0 -152
- package/templates/.codex/skills/memory-save/SKILL.md +0 -126
- package/templates/.codex/skills/monitoring-setup/SKILL.md +0 -115
- package/templates/.codex/skills/npm-audit/SKILL.md +0 -72
- package/templates/.codex/skills/npm-publish/SKILL.md +0 -63
- package/templates/.codex/skills/npm-version/SKILL.md +0 -75
- package/templates/.codex/skills/optimize-analyze/SKILL.md +0 -55
- package/templates/.codex/skills/optimize-bundle/SKILL.md +0 -67
- package/templates/.codex/skills/optimize-report/SKILL.md +0 -74
- package/templates/.codex/skills/pipeline-architecture-patterns/SKILL.md +0 -83
- package/templates/.codex/skills/postgres-best-practices/SKILL.md +0 -66
- package/templates/.codex/skills/python-best-practices/SKILL.md +0 -222
- package/templates/.codex/skills/qa-lead-routing/SKILL.md +0 -290
- package/templates/.codex/skills/react-best-practices/SKILL.md +0 -101
- package/templates/.codex/skills/redis-best-practices/SKILL.md +0 -83
- package/templates/.codex/skills/result-aggregation/SKILL.md +0 -164
- package/templates/.codex/skills/rust-best-practices/SKILL.md +0 -267
- package/templates/.codex/skills/sauron-watch/SKILL.md +0 -144
- package/templates/.codex/skills/secretary-routing/SKILL.md +0 -203
- package/templates/.codex/skills/snowflake-best-practices/SKILL.md +0 -65
- package/templates/.codex/skills/spark-best-practices/SKILL.md +0 -52
- package/templates/.codex/skills/springboot-best-practices/SKILL.md +0 -218
- package/templates/.codex/skills/status/SKILL.md +0 -153
- package/templates/.codex/skills/supabase-postgres-best-practices/SKILL.md +0 -99
- package/templates/.codex/skills/typescript-best-practices/SKILL.md +0 -321
- package/templates/.codex/skills/update-docs/SKILL.md +0 -140
- package/templates/.codex/skills/update-external/SKILL.md +0 -149
- package/templates/.codex/skills/vercel-deploy/SKILL.md +0 -73
- package/templates/.codex/skills/web-design-guidelines/SKILL.md +0 -118
- package/templates/.codex/skills/writing-clearly-and-concisely/SKILL.md +0 -64
- package/templates/.codex/uninstall-hooks.sh +0 -52
- package/templates/AGENTS.md.en +0 -39
- package/templates/AGENTS.md.ko +0 -39
- package/templates/manifest.codex.json +0 -43
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: python-best-practices
|
|
3
|
-
description: Pythonic patterns from PEP 8 and PEP 20
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Purpose
|
|
8
|
-
|
|
9
|
-
Apply idiomatic Python patterns and best practices from official Python documentation.
|
|
10
|
-
|
|
11
|
-
## The Zen of Python (PEP 20)
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
Beautiful is better than ugly.
|
|
15
|
-
Explicit is better than implicit.
|
|
16
|
-
Simple is better than complex.
|
|
17
|
-
Complex is better than complicated.
|
|
18
|
-
Flat is better than nested.
|
|
19
|
-
Sparse is better than dense.
|
|
20
|
-
Readability counts.
|
|
21
|
-
Special cases aren't special enough to break the rules.
|
|
22
|
-
Although practicality beats purity.
|
|
23
|
-
Errors should never pass silently.
|
|
24
|
-
Unless explicitly silenced.
|
|
25
|
-
In the face of ambiguity, refuse the temptation to guess.
|
|
26
|
-
There should be one-- and preferably only one --obvious way to do it.
|
|
27
|
-
Although that way may not be obvious at first unless you're Dutch.
|
|
28
|
-
Now is better than never.
|
|
29
|
-
Although never is often better than *right* now.
|
|
30
|
-
If the implementation is hard to explain, it's a bad idea.
|
|
31
|
-
If the implementation is easy to explain, it may be a good idea.
|
|
32
|
-
Namespaces are one honking great idea -- let's do more of those!
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
## Rules
|
|
36
|
-
|
|
37
|
-
### 1. Code Layout
|
|
38
|
-
|
|
39
|
-
```yaml
|
|
40
|
-
indentation:
|
|
41
|
-
- Use 4 spaces per indentation level
|
|
42
|
-
- Never mix tabs and spaces
|
|
43
|
-
- Continuation lines align vertically or use hanging indent
|
|
44
|
-
|
|
45
|
-
line_length:
|
|
46
|
-
- Maximum 79 characters for code
|
|
47
|
-
- Maximum 72 characters for docstrings/comments
|
|
48
|
-
- Teams may agree on 99 characters for code
|
|
49
|
-
|
|
50
|
-
blank_lines:
|
|
51
|
-
- Two blank lines around top-level definitions
|
|
52
|
-
- One blank line between method definitions
|
|
53
|
-
- Use sparingly inside functions
|
|
54
|
-
```
|
|
55
|
-
|
|
56
|
-
### 2. Imports
|
|
57
|
-
|
|
58
|
-
```yaml
|
|
59
|
-
rules:
|
|
60
|
-
- One import per line
|
|
61
|
-
- Position at file top, after docstrings
|
|
62
|
-
- Group order: standard library → third-party → local
|
|
63
|
-
- Separate groups with blank lines
|
|
64
|
-
- Prefer absolute imports
|
|
65
|
-
- Avoid wildcard imports (from X import *)
|
|
66
|
-
|
|
67
|
-
example: |
|
|
68
|
-
import os
|
|
69
|
-
import sys
|
|
70
|
-
|
|
71
|
-
from third_party import lib
|
|
72
|
-
|
|
73
|
-
from myproject import module
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
### 3. Whitespace
|
|
77
|
-
|
|
78
|
-
```yaml
|
|
79
|
-
avoid:
|
|
80
|
-
- Extra spaces inside parentheses/brackets
|
|
81
|
-
- Spaces before commas or colons
|
|
82
|
-
- Spaces between function name and parenthesis
|
|
83
|
-
- Multiple spaces for alignment
|
|
84
|
-
|
|
85
|
-
required:
|
|
86
|
-
- Single space around binary operators
|
|
87
|
-
- Spaces around -> in annotations
|
|
88
|
-
- No spaces around = for default parameters
|
|
89
|
-
```
|
|
90
|
-
|
|
91
|
-
### 4. Naming Conventions
|
|
92
|
-
|
|
93
|
-
```yaml
|
|
94
|
-
modules_packages:
|
|
95
|
-
style: lowercase_with_underscores
|
|
96
|
-
example: my_module
|
|
97
|
-
|
|
98
|
-
classes:
|
|
99
|
-
style: CapWords
|
|
100
|
-
example: MyClass
|
|
101
|
-
|
|
102
|
-
functions_variables:
|
|
103
|
-
style: lowercase_with_underscores
|
|
104
|
-
example: my_function, my_variable
|
|
105
|
-
|
|
106
|
-
constants:
|
|
107
|
-
style: ALL_CAPS_WITH_UNDERSCORES
|
|
108
|
-
example: MAX_SIZE, DEFAULT_VALUE
|
|
109
|
-
|
|
110
|
-
exceptions:
|
|
111
|
-
style: CapWords + Error suffix
|
|
112
|
-
example: ValueError, CustomError
|
|
113
|
-
|
|
114
|
-
private:
|
|
115
|
-
single_underscore: _internal (weak internal)
|
|
116
|
-
double_underscore: __private (name mangling)
|
|
117
|
-
trailing_underscore: class_ (avoid keyword conflict)
|
|
118
|
-
|
|
119
|
-
avoid:
|
|
120
|
-
- Single characters l, O, I (ambiguous)
|
|
121
|
-
```
|
|
122
|
-
|
|
123
|
-
### 5. Comments and Docstrings
|
|
124
|
-
|
|
125
|
-
```yaml
|
|
126
|
-
principles:
|
|
127
|
-
- Comments contradicting code are worse than none
|
|
128
|
-
- Use complete sentences
|
|
129
|
-
- Keep comments up to date
|
|
130
|
-
|
|
131
|
-
block_comments:
|
|
132
|
-
- Indent at same level as code
|
|
133
|
-
- Start each line with # and space
|
|
134
|
-
|
|
135
|
-
inline_comments:
|
|
136
|
-
- Minimum two spaces from code
|
|
137
|
-
- Avoid obvious statements
|
|
138
|
-
|
|
139
|
-
docstrings:
|
|
140
|
-
- Write for all public modules, functions, classes, methods
|
|
141
|
-
- Use triple quotes
|
|
142
|
-
- First line: concise summary
|
|
143
|
-
- Blank line before detailed description
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
### 6. Programming Recommendations
|
|
147
|
-
|
|
148
|
-
```yaml
|
|
149
|
-
comparisons:
|
|
150
|
-
- Use 'is' and 'is not' for None, True, False
|
|
151
|
-
- Prefer isinstance() over type()
|
|
152
|
-
- Use 'is not' rather than 'not ... is'
|
|
153
|
-
|
|
154
|
-
sequences:
|
|
155
|
-
- Test empty: if not seq: (not if len(seq) == 0)
|
|
156
|
-
- Use .startswith() and .endswith()
|
|
157
|
-
|
|
158
|
-
exceptions:
|
|
159
|
-
- Derive from Exception, not BaseException
|
|
160
|
-
- Catch specific exceptions
|
|
161
|
-
- Avoid bare except clauses
|
|
162
|
-
- Use 'raise X from Y' for chaining
|
|
163
|
-
|
|
164
|
-
functions:
|
|
165
|
-
- Use def, not lambda assignment
|
|
166
|
-
- Consistent return statements
|
|
167
|
-
- Use with for resource management
|
|
168
|
-
|
|
169
|
-
type_hints:
|
|
170
|
-
- Follow PEP 484 syntax
|
|
171
|
-
- Space after colon in annotations
|
|
172
|
-
- No space before colon
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
### 7. Pythonic Idioms
|
|
176
|
-
|
|
177
|
-
```yaml
|
|
178
|
-
list_comprehension:
|
|
179
|
-
prefer: "[x*2 for x in items if x > 0]"
|
|
180
|
-
over: |
|
|
181
|
-
result = []
|
|
182
|
-
for x in items:
|
|
183
|
-
if x > 0:
|
|
184
|
-
result.append(x*2)
|
|
185
|
-
|
|
186
|
-
context_managers:
|
|
187
|
-
prefer: "with open('file') as f:"
|
|
188
|
-
over: |
|
|
189
|
-
f = open('file')
|
|
190
|
-
try:
|
|
191
|
-
...
|
|
192
|
-
finally:
|
|
193
|
-
f.close()
|
|
194
|
-
|
|
195
|
-
unpacking:
|
|
196
|
-
prefer: "a, b = b, a"
|
|
197
|
-
over: |
|
|
198
|
-
temp = a
|
|
199
|
-
a = b
|
|
200
|
-
b = temp
|
|
201
|
-
|
|
202
|
-
enumerate:
|
|
203
|
-
prefer: "for i, item in enumerate(items):"
|
|
204
|
-
over: "for i in range(len(items)):"
|
|
205
|
-
|
|
206
|
-
dictionary:
|
|
207
|
-
prefer: "d.get(key, default)"
|
|
208
|
-
over: "d[key] if key in d else default"
|
|
209
|
-
```
|
|
210
|
-
|
|
211
|
-
## Application
|
|
212
|
-
|
|
213
|
-
When writing or reviewing Python code:
|
|
214
|
-
|
|
215
|
-
1. **Always** follow PEP 8 formatting
|
|
216
|
-
2. **Always** write docstrings for public APIs
|
|
217
|
-
3. **Prefer** explicit over implicit
|
|
218
|
-
4. **Prefer** simple over complex
|
|
219
|
-
5. **Prefer** flat over nested
|
|
220
|
-
6. **Avoid** premature optimization
|
|
221
|
-
7. **Use** list comprehensions when readable
|
|
222
|
-
8. **Use** context managers for resources
|
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qa-lead-routing
|
|
3
|
-
description: Coordinates QA workflow across planning, writing, and execution agents. Use when user requests testing, quality assurance, or test documentation.
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# QA Lead Routing Skill
|
|
8
|
-
|
|
9
|
-
## Purpose
|
|
10
|
-
|
|
11
|
-
Coordinates QA team activities by routing tasks to qa-planner, qa-writer, and qa-engineer agents. This skill contains the coordination logic for orchestrating the complete quality assurance workflow.
|
|
12
|
-
|
|
13
|
-
## QA Team Agents
|
|
14
|
-
|
|
15
|
-
| Agent | Role | Output |
|
|
16
|
-
|-------|------|--------|
|
|
17
|
-
| qa-planner | Test planning | QA plans, test scenarios, acceptance criteria |
|
|
18
|
-
| qa-writer | Documentation | Test cases, test reports, templates |
|
|
19
|
-
| qa-engineer | Execution | Test results, defect reports, coverage reports |
|
|
20
|
-
|
|
21
|
-
## Command Routing
|
|
22
|
-
|
|
23
|
-
```
|
|
24
|
-
QA Request → Routing → QA Agent(s)
|
|
25
|
-
|
|
26
|
-
test_planning → qa-planner
|
|
27
|
-
test_documentation → qa-writer
|
|
28
|
-
test_execution → qa-engineer
|
|
29
|
-
quality_analysis → qa-planner + qa-engineer (parallel)
|
|
30
|
-
full_qa_cycle → all agents (sequential)
|
|
31
|
-
```
|
|
32
|
-
|
|
33
|
-
## Routing Rules
|
|
34
|
-
|
|
35
|
-
### 1. Test Planning
|
|
36
|
-
|
|
37
|
-
```
|
|
38
|
-
User: "Create test plan for feature X"
|
|
39
|
-
|
|
40
|
-
Route:
|
|
41
|
-
Task(qa-planner role → create test plan, model: "balanced")
|
|
42
|
-
|
|
43
|
-
Output:
|
|
44
|
-
- Test scenarios
|
|
45
|
-
- Coverage targets
|
|
46
|
-
- Acceptance criteria
|
|
47
|
-
- Risk assessment
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
### 2. Test Documentation
|
|
51
|
-
|
|
52
|
-
```
|
|
53
|
-
User: "Document test cases for API"
|
|
54
|
-
|
|
55
|
-
Route:
|
|
56
|
-
Task(qa-writer role → document test cases, model: "balanced")
|
|
57
|
-
|
|
58
|
-
Output:
|
|
59
|
-
- Test case specifications
|
|
60
|
-
- Test data requirements
|
|
61
|
-
- Expected results
|
|
62
|
-
- Test templates
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### 3. Test Execution
|
|
66
|
-
|
|
67
|
-
```
|
|
68
|
-
User: "Execute tests for module Y"
|
|
69
|
-
|
|
70
|
-
Route:
|
|
71
|
-
Task(qa-engineer role → execute tests, model: "balanced")
|
|
72
|
-
|
|
73
|
-
Output:
|
|
74
|
-
- Test execution results
|
|
75
|
-
- Pass/fail metrics
|
|
76
|
-
- Defect reports
|
|
77
|
-
- Coverage reports
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### 4. Quality Analysis
|
|
81
|
-
|
|
82
|
-
When analysis is needed (parallel execution):
|
|
83
|
-
|
|
84
|
-
```
|
|
85
|
-
User: "Analyze quality metrics"
|
|
86
|
-
|
|
87
|
-
Route (parallel):
|
|
88
|
-
Task(qa-planner role → analyze strategy, model: "balanced")
|
|
89
|
-
Task(qa-engineer role → analyze results, model: "balanced")
|
|
90
|
-
|
|
91
|
-
Aggregate:
|
|
92
|
-
Strategy insights + execution data
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### 5. Full QA Cycle (Sequential)
|
|
96
|
-
|
|
97
|
-
For complete quality assurance workflow:
|
|
98
|
-
|
|
99
|
-
```
|
|
100
|
-
User: "Run full QA cycle for feature Z"
|
|
101
|
-
|
|
102
|
-
Route (sequential):
|
|
103
|
-
1. Task(qa-planner role → create test plan, model: "balanced")
|
|
104
|
-
2. Task(qa-writer role → document test cases, model: "balanced")
|
|
105
|
-
3. Task(qa-engineer role → execute tests, model: "balanced")
|
|
106
|
-
4. Task(qa-writer role → generate report, model: "balanced")
|
|
107
|
-
|
|
108
|
-
Aggregate and present final report
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
## Full QA Cycle Workflow
|
|
112
|
-
|
|
113
|
-
```
|
|
114
|
-
1. Planning Phase (qa-planner)
|
|
115
|
-
- Analyze requirements
|
|
116
|
-
- Define test scenarios
|
|
117
|
-
- Set acceptance criteria
|
|
118
|
-
- Identify risks
|
|
119
|
-
|
|
120
|
-
2. Documentation Phase (qa-writer)
|
|
121
|
-
- Write test cases
|
|
122
|
-
- Define test data
|
|
123
|
-
- Document expected results
|
|
124
|
-
- Create templates
|
|
125
|
-
|
|
126
|
-
3. Execution Phase (qa-engineer)
|
|
127
|
-
- Execute test cases
|
|
128
|
-
- Record results
|
|
129
|
-
- Report defects
|
|
130
|
-
- Calculate coverage
|
|
131
|
-
|
|
132
|
-
4. Reporting Phase (qa-writer)
|
|
133
|
-
- Aggregate results
|
|
134
|
-
- Generate reports
|
|
135
|
-
- Document findings
|
|
136
|
-
- Provide recommendations
|
|
137
|
-
|
|
138
|
-
5. Aggregation (qa-lead routing)
|
|
139
|
-
- Combine all phases
|
|
140
|
-
- Present unified status
|
|
141
|
-
- Highlight critical issues
|
|
142
|
-
```
|
|
143
|
-
|
|
144
|
-
## Sequential vs Parallel Execution
|
|
145
|
-
|
|
146
|
-
### Sequential (typical for QA workflow)
|
|
147
|
-
|
|
148
|
-
QA workflow is typically sequential because each phase depends on the previous:
|
|
149
|
-
- Planning must complete before documentation
|
|
150
|
-
- Documentation must complete before execution
|
|
151
|
-
- Execution must complete before reporting
|
|
152
|
-
|
|
153
|
-
```
|
|
154
|
-
qa-planner → qa-writer → qa-engineer → qa-writer
|
|
155
|
-
(plan) (document) (execute) (report)
|
|
156
|
-
```
|
|
157
|
-
|
|
158
|
-
### Parallel (rare, for independent analyses)
|
|
159
|
-
|
|
160
|
-
Only when tasks are truly independent:
|
|
161
|
-
- Quality analysis (strategy + results)
|
|
162
|
-
- Multi-module testing (independent modules)
|
|
163
|
-
|
|
164
|
-
```
|
|
165
|
-
Example:
|
|
166
|
-
Task(qa-engineer role → test module A, model: "balanced")
|
|
167
|
-
Task(qa-engineer role → test module B, model: "balanced")
|
|
168
|
-
Task(qa-engineer role → test module C, model: "balanced")
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
## Sub-agent Model Selection
|
|
172
|
-
|
|
173
|
-
### Model Mapping
|
|
174
|
-
|
|
175
|
-
| Agent | Recommended Model | Reason |
|
|
176
|
-
|-------|-------------------|--------|
|
|
177
|
-
| qa-planner | `balanced` | Strategy requires balanced reasoning |
|
|
178
|
-
| qa-writer | `balanced` | Documentation quality matters |
|
|
179
|
-
| qa-engineer | `balanced` | Test execution needs accuracy |
|
|
180
|
-
|
|
181
|
-
All QA agents typically use `balanced` for balanced quality output.
|
|
182
|
-
|
|
183
|
-
### Task Call Examples
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
# Test planning
|
|
187
|
-
Task(
|
|
188
|
-
subagent_type: "general-purpose",
|
|
189
|
-
prompt: "Create comprehensive test plan for authentication feature following qa-planner guidelines",
|
|
190
|
-
model: "balanced"
|
|
191
|
-
)
|
|
192
|
-
|
|
193
|
-
# Test documentation
|
|
194
|
-
Task(
|
|
195
|
-
subagent_type: "general-purpose",
|
|
196
|
-
prompt: "Document test cases for API endpoints following qa-writer guidelines",
|
|
197
|
-
model: "balanced"
|
|
198
|
-
)
|
|
199
|
-
|
|
200
|
-
# Test execution
|
|
201
|
-
Task(
|
|
202
|
-
subagent_type: "general-purpose",
|
|
203
|
-
prompt: "Execute integration tests and report results following qa-engineer guidelines",
|
|
204
|
-
model: "balanced"
|
|
205
|
-
)
|
|
206
|
-
```
|
|
207
|
-
|
|
208
|
-
## Display Format
|
|
209
|
-
|
|
210
|
-
### Full QA Cycle
|
|
211
|
-
|
|
212
|
-
```
|
|
213
|
-
[Planning] Delegating to qa-planner...
|
|
214
|
-
→ Test plan created (15 scenarios)
|
|
215
|
-
|
|
216
|
-
[Documentation] Delegating to qa-writer...
|
|
217
|
-
→ 15 test cases documented
|
|
218
|
-
|
|
219
|
-
[Execution] Delegating to qa-engineer...
|
|
220
|
-
→ 13 passed, 2 failed
|
|
221
|
-
|
|
222
|
-
[Report] Generating summary...
|
|
223
|
-
Coverage: 85%
|
|
224
|
-
Pass Rate: 87%
|
|
225
|
-
Defects: 2 (1 High, 1 Medium)
|
|
226
|
-
|
|
227
|
-
[Done] QA cycle completed
|
|
228
|
-
```
|
|
229
|
-
|
|
230
|
-
### Parallel Quality Analysis
|
|
231
|
-
|
|
232
|
-
```
|
|
233
|
-
[Analyzing] Spawning parallel analysis...
|
|
234
|
-
|
|
235
|
-
[Instance 1] strategy-analysis:balanced → qa-planner
|
|
236
|
-
[Instance 2] results-analysis:balanced → qa-engineer
|
|
237
|
-
|
|
238
|
-
[Progress] ████████████ 2/2
|
|
239
|
-
|
|
240
|
-
[Summary]
|
|
241
|
-
Strategy: Coverage targets met, add edge cases
|
|
242
|
-
Results: 85% pass rate, 2 critical defects
|
|
243
|
-
|
|
244
|
-
Analysis completed.
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
## Integration with Other Agents
|
|
248
|
-
|
|
249
|
-
- **Receives requirements from**: arch-speckit-agent (sw-architect)
|
|
250
|
-
- **Reports quality status to**: dev-lead
|
|
251
|
-
- **Coordinates with**: Language experts for automated tests
|
|
252
|
-
- **Provides feedback to**: Development team via dev-lead
|
|
253
|
-
|
|
254
|
-
## Metrics Tracking
|
|
255
|
-
|
|
256
|
-
QA lead routing should aggregate these metrics:
|
|
257
|
-
|
|
258
|
-
```yaml
|
|
259
|
-
metrics:
|
|
260
|
-
test_coverage: percentage
|
|
261
|
-
pass_rate: percentage
|
|
262
|
-
defect_count: number
|
|
263
|
-
defect_severity: [critical, high, medium, low]
|
|
264
|
-
execution_time: duration
|
|
265
|
-
test_case_count: number
|
|
266
|
-
```
|
|
267
|
-
|
|
268
|
-
## Agent Teams Awareness
|
|
269
|
-
|
|
270
|
-
Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessage tools present).
|
|
271
|
-
|
|
272
|
-
**Self-check:** Does this task need 3+ agents, shared state, or inter-agent communication? If yes, prefer Agent Teams over Task tool. See R018 for the full decision matrix.
|
|
273
|
-
|
|
274
|
-
| Scenario | Preferred |
|
|
275
|
-
|----------|-----------|
|
|
276
|
-
| Single QA phase (plan/write/execute) | Task Tool |
|
|
277
|
-
| Full QA cycle (plan + write + execute + report) | Agent Teams |
|
|
278
|
-
| Quality analysis (parallel strategy + results) | Agent Teams |
|
|
279
|
-
| Quick test validation | Task Tool |
|
|
280
|
-
|
|
281
|
-
## Usage
|
|
282
|
-
|
|
283
|
-
This skill is NOT user-invocable. It should be automatically triggered when the main conversation detects QA intent.
|
|
284
|
-
|
|
285
|
-
Detection criteria:
|
|
286
|
-
- User requests testing
|
|
287
|
-
- User mentions quality assurance
|
|
288
|
-
- User asks for test plan/cases/execution
|
|
289
|
-
- User requests QA metrics/reports
|
|
290
|
-
- System detects need for quality verification
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: react-best-practices
|
|
3
|
-
description: React/Next.js performance optimization with 40+ rules in 8 categories
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## When to Use
|
|
8
|
-
|
|
9
|
-
- Writing React/Next.js components
|
|
10
|
-
- Data fetching implementation
|
|
11
|
-
- Performance review
|
|
12
|
-
- Bundle size optimization
|
|
13
|
-
|
|
14
|
-
## Categories by Priority
|
|
15
|
-
|
|
16
|
-
### Critical Priority
|
|
17
|
-
|
|
18
|
-
#### Waterfall Elimination
|
|
19
|
-
```
|
|
20
|
-
- Avoid sequential data fetching
|
|
21
|
-
- Use parallel data fetching
|
|
22
|
-
- Implement proper loading states
|
|
23
|
-
- Prefetch critical data
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
#### Bundle Optimization
|
|
27
|
-
```
|
|
28
|
-
- Minimize client-side JavaScript
|
|
29
|
-
- Use dynamic imports
|
|
30
|
-
- Tree-shake unused code
|
|
31
|
-
- Analyze bundle with tools
|
|
32
|
-
```
|
|
33
|
-
|
|
34
|
-
### High Priority
|
|
35
|
-
|
|
36
|
-
#### Server-Side Performance
|
|
37
|
-
```
|
|
38
|
-
- Use Server Components by default
|
|
39
|
-
- Minimize 'use client' directives
|
|
40
|
-
- Implement streaming where possible
|
|
41
|
-
- Cache server responses
|
|
42
|
-
```
|
|
43
|
-
|
|
44
|
-
### Medium-High Priority
|
|
45
|
-
|
|
46
|
-
#### Client-Side Fetching
|
|
47
|
-
```
|
|
48
|
-
- Use SWR or React Query
|
|
49
|
-
- Implement optimistic updates
|
|
50
|
-
- Handle loading/error states
|
|
51
|
-
- Cache API responses
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
### Medium Priority
|
|
55
|
-
|
|
56
|
-
#### Rendering
|
|
57
|
-
```
|
|
58
|
-
- Avoid unnecessary re-renders
|
|
59
|
-
- Use React.memo strategically
|
|
60
|
-
- Implement useMemo/useCallback properly
|
|
61
|
-
- Virtualize long lists
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
#### Caching
|
|
65
|
-
```
|
|
66
|
-
- Implement proper cache headers
|
|
67
|
-
- Use ISR for dynamic content
|
|
68
|
-
- Cache database queries
|
|
69
|
-
- CDN caching strategies
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
#### Code Splitting
|
|
73
|
-
```
|
|
74
|
-
- Split by route
|
|
75
|
-
- Lazy load below-fold content
|
|
76
|
-
- Dynamic import heavy libraries
|
|
77
|
-
- Preload critical chunks
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
### Low-Medium Priority
|
|
81
|
-
|
|
82
|
-
#### Image Optimization
|
|
83
|
-
```
|
|
84
|
-
- Use next/image
|
|
85
|
-
- Implement proper sizing
|
|
86
|
-
- Use modern formats (WebP, AVIF)
|
|
87
|
-
- Lazy load off-screen images
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
## Execution Flow
|
|
91
|
-
|
|
92
|
-
```
|
|
93
|
-
1. Identify optimization area
|
|
94
|
-
2. Check relevant category rules
|
|
95
|
-
3. Apply recommendations
|
|
96
|
-
4. Verify improvements
|
|
97
|
-
```
|
|
98
|
-
|
|
99
|
-
## Scripts
|
|
100
|
-
|
|
101
|
-
See `scripts/` directory for automation helpers.
|
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: redis-best-practices
|
|
3
|
-
description: Redis best practices for caching, data structures, and in-memory data architecture
|
|
4
|
-
user-invocable: false
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
# Redis Best Practices
|
|
8
|
-
|
|
9
|
-
## Caching Patterns
|
|
10
|
-
|
|
11
|
-
### Cache-Aside (CRITICAL)
|
|
12
|
-
- Read: check cache → miss → read DB → set cache
|
|
13
|
-
- Write: update DB → invalidate cache
|
|
14
|
-
- Best for read-heavy workloads
|
|
15
|
-
|
|
16
|
-
### Write-Through
|
|
17
|
-
- Write: update cache AND DB simultaneously
|
|
18
|
-
- Ensures consistency
|
|
19
|
-
- Higher write latency
|
|
20
|
-
|
|
21
|
-
### Write-Behind
|
|
22
|
-
- Write: update cache → async DB update
|
|
23
|
-
- Lowest latency
|
|
24
|
-
- Risk of data loss
|
|
25
|
-
|
|
26
|
-
## Data Structures
|
|
27
|
-
|
|
28
|
-
### String
|
|
29
|
-
- Simple key-value: `SET key value`
|
|
30
|
-
- Counters: `INCR`, `DECR`, `INCRBY`
|
|
31
|
-
- Bit operations: `SETBIT`, `BITCOUNT`
|
|
32
|
-
|
|
33
|
-
### Hash
|
|
34
|
-
- Object storage: `HSET user:1 name "Alice"`
|
|
35
|
-
- Partial updates: `HINCRBY user:1 visits 1`
|
|
36
|
-
- Memory efficient for small hashes
|
|
37
|
-
|
|
38
|
-
### List
|
|
39
|
-
- Queues: `LPUSH`, `RPOP` (FIFO)
|
|
40
|
-
- Stacks: `LPUSH`, `LPOP` (LIFO)
|
|
41
|
-
- Capped collections: `LTRIM`
|
|
42
|
-
|
|
43
|
-
### Set
|
|
44
|
-
- Unique collections: `SADD`, `SMEMBERS`
|
|
45
|
-
- Intersections: `SINTER`
|
|
46
|
-
- Random sampling: `SRANDMEMBER`
|
|
47
|
-
|
|
48
|
-
### Sorted Set
|
|
49
|
-
- Leaderboards: `ZADD`, `ZRANGEBYSCORE`
|
|
50
|
-
- Rate limiting: `ZADD timestamp`
|
|
51
|
-
- Priority queues
|
|
52
|
-
|
|
53
|
-
### Stream
|
|
54
|
-
- Event log: `XADD`, `XREAD`
|
|
55
|
-
- Consumer groups: `XGROUP`, `XACK`
|
|
56
|
-
- Pub/Sub with persistence
|
|
57
|
-
|
|
58
|
-
## Performance
|
|
59
|
-
|
|
60
|
-
### Memory Optimization
|
|
61
|
-
- Set maxmemory policy: `allkeys-lru`, `volatile-lru`
|
|
62
|
-
- Monitor memory: `INFO memory`
|
|
63
|
-
- Use appropriate data structures (Hash vs String)
|
|
64
|
-
|
|
65
|
-
### Pipelining
|
|
66
|
-
- Batch multiple commands
|
|
67
|
-
- Reduces round-trip latency
|
|
68
|
-
- Use for bulk operations
|
|
69
|
-
|
|
70
|
-
## High Availability
|
|
71
|
-
|
|
72
|
-
### Redis Cluster
|
|
73
|
-
- Horizontal scaling
|
|
74
|
-
- Automatic sharding (16384 slots)
|
|
75
|
-
- Multi-master replication
|
|
76
|
-
|
|
77
|
-
### Redis Sentinel
|
|
78
|
-
- Automatic failover
|
|
79
|
-
- Monitoring and notifications
|
|
80
|
-
- Configuration provider
|
|
81
|
-
|
|
82
|
-
## References
|
|
83
|
-
- [Redis Best Practices](https://redis.io/docs/manual/patterns/)
|