omgkit 2.1.1 → 2.3.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/package.json +1 -1
- package/plugin/skills/databases/mongodb/SKILL.md +81 -28
- package/plugin/skills/databases/prisma/SKILL.md +87 -32
- package/plugin/skills/databases/redis/SKILL.md +80 -27
- package/plugin/skills/devops/aws/SKILL.md +80 -26
- package/plugin/skills/devops/github-actions/SKILL.md +84 -32
- package/plugin/skills/devops/kubernetes/SKILL.md +94 -32
- package/plugin/skills/devops/performance-profiling/SKILL.md +59 -863
- package/plugin/skills/frameworks/django/SKILL.md +158 -24
- package/plugin/skills/frameworks/express/SKILL.md +153 -33
- package/plugin/skills/frameworks/fastapi/SKILL.md +153 -34
- package/plugin/skills/frameworks/laravel/SKILL.md +146 -33
- package/plugin/skills/frameworks/nestjs/SKILL.md +137 -25
- package/plugin/skills/frameworks/rails/SKILL.md +594 -28
- package/plugin/skills/frameworks/react/SKILL.md +94 -962
- package/plugin/skills/frameworks/spring/SKILL.md +528 -35
- package/plugin/skills/frameworks/vue/SKILL.md +147 -25
- package/plugin/skills/frontend/accessibility/SKILL.md +145 -36
- package/plugin/skills/frontend/frontend-design/SKILL.md +114 -29
- package/plugin/skills/frontend/responsive/SKILL.md +131 -28
- package/plugin/skills/frontend/shadcn-ui/SKILL.md +133 -43
- package/plugin/skills/frontend/tailwindcss/SKILL.md +105 -37
- package/plugin/skills/frontend/threejs/SKILL.md +110 -35
- package/plugin/skills/languages/javascript/SKILL.md +195 -34
- package/plugin/skills/methodology/brainstorming/SKILL.md +98 -30
- package/plugin/skills/methodology/defense-in-depth/SKILL.md +83 -37
- package/plugin/skills/methodology/dispatching-parallel-agents/SKILL.md +92 -31
- package/plugin/skills/methodology/executing-plans/SKILL.md +117 -28
- package/plugin/skills/methodology/finishing-development-branch/SKILL.md +111 -32
- package/plugin/skills/methodology/problem-solving/SKILL.md +65 -311
- package/plugin/skills/methodology/receiving-code-review/SKILL.md +76 -27
- package/plugin/skills/methodology/requesting-code-review/SKILL.md +93 -22
- package/plugin/skills/methodology/root-cause-tracing/SKILL.md +75 -40
- package/plugin/skills/methodology/sequential-thinking/SKILL.md +75 -224
- package/plugin/skills/methodology/systematic-debugging/SKILL.md +81 -35
- package/plugin/skills/methodology/test-driven-development/SKILL.md +120 -26
- package/plugin/skills/methodology/testing-anti-patterns/SKILL.md +88 -35
- package/plugin/skills/methodology/token-optimization/SKILL.md +73 -34
- package/plugin/skills/methodology/verification-before-completion/SKILL.md +128 -28
- package/plugin/skills/methodology/writing-plans/SKILL.md +105 -20
- package/plugin/skills/omega/omega-architecture/SKILL.md +178 -40
- package/plugin/skills/omega/omega-coding/SKILL.md +247 -41
- package/plugin/skills/omega/omega-sprint/SKILL.md +208 -46
- package/plugin/skills/omega/omega-testing/SKILL.md +253 -42
- package/plugin/skills/omega/omega-thinking/SKILL.md +263 -51
- package/plugin/skills/security/better-auth/SKILL.md +83 -34
- package/plugin/skills/security/oauth/SKILL.md +118 -35
- package/plugin/skills/security/owasp/SKILL.md +112 -35
- package/plugin/skills/testing/playwright/SKILL.md +141 -38
- package/plugin/skills/testing/pytest/SKILL.md +137 -38
- package/plugin/skills/testing/vitest/SKILL.md +124 -39
- package/plugin/skills/tools/document-processing/SKILL.md +111 -838
- package/plugin/skills/tools/image-processing/SKILL.md +126 -659
- package/plugin/skills/tools/mcp-development/SKILL.md +85 -758
- package/plugin/skills/tools/media-processing/SKILL.md +118 -735
- package/plugin/stdrules/SKILL_STANDARDS.md +490 -0
|
@@ -1,39 +1,133 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: test-driven
|
|
3
|
-
description:
|
|
2
|
+
name: developing-test-driven
|
|
3
|
+
description: AI agent practices test-first development with the Red-Green-Refactor cycle for confident, well-designed code. Use when implementing features, fixing bugs, or establishing testing practices.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Test-Driven
|
|
6
|
+
# Developing Test-Driven
|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
1. 🔴 **RED** - Write failing test
|
|
10
|
-
2. 🟢 **GREEN** - Make it pass (minimal code)
|
|
11
|
-
3. ♻️ **REFACTOR** - Improve code
|
|
8
|
+
## Quick Start
|
|
12
9
|
|
|
13
|
-
|
|
14
|
-
-
|
|
15
|
-
-
|
|
16
|
-
-
|
|
17
|
-
|
|
10
|
+
1. **Red** - Write a failing test that defines desired behavior
|
|
11
|
+
2. **Green** - Write minimal code to make the test pass
|
|
12
|
+
3. **Refactor** - Improve code while keeping tests green
|
|
13
|
+
4. **Repeat** - Continue with next behavior (1-5 minute cycles)
|
|
14
|
+
|
|
15
|
+
## Features
|
|
16
|
+
|
|
17
|
+
| Feature | Description | Guide |
|
|
18
|
+
|---------|-------------|-------|
|
|
19
|
+
| Red-Green-Refactor | Core TDD cycle | Fail -> Pass -> Improve -> Repeat |
|
|
20
|
+
| Test Patterns | Effective test structures | Arrange-Act-Assert, Given-When-Then |
|
|
21
|
+
| Test Fixtures | Reusable test setup | beforeEach, factories, builders |
|
|
22
|
+
| Mocking Strategies | Isolate dependencies | Inject deps, mock boundaries only |
|
|
23
|
+
| Parameterized Tests | Test multiple inputs | `it.each` for input variations |
|
|
24
|
+
| Coverage Analysis | Verify thoroughness | Statements, branches, functions |
|
|
25
|
+
|
|
26
|
+
## Common Patterns
|
|
18
27
|
|
|
19
|
-
## Example
|
|
20
28
|
```typescript
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
// RED-GREEN-REFACTOR CYCLE
|
|
30
|
+
|
|
31
|
+
// RED: Write failing test
|
|
32
|
+
it('rejects passwords shorter than 8 characters', () => {
|
|
33
|
+
const result = validatePassword('short');
|
|
34
|
+
expect(result.valid).toBe(false);
|
|
35
|
+
expect(result.errors).toContain('Password must be at least 8 characters');
|
|
26
36
|
});
|
|
27
37
|
|
|
28
|
-
//
|
|
29
|
-
function
|
|
30
|
-
|
|
38
|
+
// GREEN: Minimal implementation
|
|
39
|
+
function validatePassword(password: string) {
|
|
40
|
+
const errors = [];
|
|
41
|
+
if (password.length < 8) {
|
|
42
|
+
errors.push('Password must be at least 8 characters');
|
|
43
|
+
}
|
|
44
|
+
return { valid: errors.length === 0, errors };
|
|
31
45
|
}
|
|
32
46
|
|
|
33
|
-
//
|
|
47
|
+
// REFACTOR: Extract rules (tests stay green)
|
|
48
|
+
const rules = [
|
|
49
|
+
{ test: (p) => p.length >= 8, message: 'Must be 8+ chars' },
|
|
50
|
+
{ test: (p) => /[A-Z]/.test(p), message: 'Must have uppercase' },
|
|
51
|
+
];
|
|
52
|
+
function validatePassword(password: string) {
|
|
53
|
+
const errors = rules.filter(r => !r.test(password)).map(r => r.message);
|
|
54
|
+
return { valid: errors.length === 0, errors };
|
|
55
|
+
}
|
|
34
56
|
```
|
|
35
57
|
|
|
36
|
-
|
|
37
|
-
-
|
|
38
|
-
|
|
39
|
-
|
|
58
|
+
```typescript
|
|
59
|
+
// ARRANGE-ACT-ASSERT Pattern
|
|
60
|
+
it('increases total when item added', () => {
|
|
61
|
+
// ARRANGE
|
|
62
|
+
const cart = new ShoppingCart();
|
|
63
|
+
const item = { id: '1', price: 10.00 };
|
|
64
|
+
|
|
65
|
+
// ACT
|
|
66
|
+
cart.addItem(item);
|
|
67
|
+
|
|
68
|
+
// ASSERT
|
|
69
|
+
expect(cart.total).toBe(10.00);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
// PARAMETERIZED TESTS
|
|
73
|
+
it.each([
|
|
74
|
+
['simple@example.com', true],
|
|
75
|
+
['user.name@domain.org', true],
|
|
76
|
+
['invalid', false],
|
|
77
|
+
['@nodomain.com', false],
|
|
78
|
+
])('validates %s as %s', (email, expected) => {
|
|
79
|
+
expect(isValidEmail(email)).toBe(expected);
|
|
80
|
+
});
|
|
81
|
+
|
|
82
|
+
// BUILDER PATTERN for test data
|
|
83
|
+
const user = new UserBuilder().admin().inactive().build();
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
# Mocking Guidelines
|
|
88
|
+
MOCK (external boundaries):
|
|
89
|
+
- External APIs (payment, email)
|
|
90
|
+
- Third-party services
|
|
91
|
+
- System clock, random
|
|
92
|
+
- Network requests
|
|
93
|
+
|
|
94
|
+
DON'T MOCK (your code):
|
|
95
|
+
- Pure functions
|
|
96
|
+
- Data transformations
|
|
97
|
+
- Business logic
|
|
98
|
+
- Internal services
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
```
|
|
102
|
+
# Coverage Analysis
|
|
103
|
+
| Type | Target | Notes |
|
|
104
|
+
|------|--------|-------|
|
|
105
|
+
| Statements | 80%+ | Code executed |
|
|
106
|
+
| Branches | 70%+ | If/else paths |
|
|
107
|
+
| Functions | 90%+ | All functions called |
|
|
108
|
+
|
|
109
|
+
REMEMBER: 100% coverage != well-tested
|
|
110
|
+
- Test edge cases
|
|
111
|
+
- Test error paths
|
|
112
|
+
- Test boundary conditions
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
## Best Practices
|
|
116
|
+
|
|
117
|
+
| Do | Avoid |
|
|
118
|
+
|----|-------|
|
|
119
|
+
| Write test BEFORE implementation | Writing implementation first |
|
|
120
|
+
| Keep tests focused on ONE behavior | Testing multiple things in one test |
|
|
121
|
+
| Use descriptive test names | Generic names like "test1" |
|
|
122
|
+
| Run tests frequently (every few minutes) | Long gaps between test runs |
|
|
123
|
+
| Refactor only when tests green | Refactoring with failing tests |
|
|
124
|
+
| Test behavior, not implementation | Testing private methods directly |
|
|
125
|
+
| Keep cycles short (1-5 minutes) | 30+ minute cycles |
|
|
126
|
+
| Mock only external dependencies | Over-mocking your own code |
|
|
127
|
+
|
|
128
|
+
## Related Skills
|
|
129
|
+
|
|
130
|
+
- `avoiding-testing-anti-patterns` - Avoid common test mistakes
|
|
131
|
+
- `testing-with-vitest` - Vitest testing framework
|
|
132
|
+
- `testing-with-playwright` - E2E testing with Playwright
|
|
133
|
+
- `verifying-before-completion` - Ensure test quality
|
|
@@ -1,50 +1,103 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: testing-anti-patterns
|
|
3
|
-
description:
|
|
2
|
+
name: avoiding-testing-anti-patterns
|
|
3
|
+
description: AI agent identifies and fixes common testing anti-patterns that lead to flaky, slow, or unmaintainable test suites. Use when reviewing tests, debugging test failures, or improving test quality.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Testing Anti-Patterns
|
|
6
|
+
# Avoiding Testing Anti-Patterns
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Quick Start
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
1. **Identify** - Recognize anti-pattern category (flaky, implementation, over-mocking)
|
|
11
|
+
2. **Assess Severity** - Critical (fix now), High (fix soon), Medium (plan to fix)
|
|
12
|
+
3. **Apply Fix** - Use proper async handling, test behavior not implementation
|
|
13
|
+
4. **Verify** - Run tests in random order, ensure independence
|
|
14
|
+
5. **Prevent** - Add test smell detection to CI
|
|
14
15
|
|
|
15
|
-
|
|
16
|
-
expect(screen.getByText('1')).toBeInTheDocument();
|
|
17
|
-
```
|
|
16
|
+
## Features
|
|
18
17
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
| Feature | Description | Guide |
|
|
19
|
+
|---------|-------------|-------|
|
|
20
|
+
| Flaky Tests | Random failures destroying trust | Use waitFor, not sleep; deterministic data |
|
|
21
|
+
| Implementation Testing | Breaks on every refactor | Test behavior through public interface |
|
|
22
|
+
| Over-Mocking | Tests pass but bugs slip through | Mock boundaries only, not your own code |
|
|
23
|
+
| Slow Tests | Hurt development velocity | Right test layer, shared setup, mock network |
|
|
24
|
+
| Test Interdependence | Can't run tests in isolation | Fresh state in beforeEach, no shared mutation |
|
|
25
|
+
| Poor Design | Hard to understand/maintain | Descriptive names, focused tests, clear values |
|
|
24
26
|
|
|
25
|
-
|
|
26
|
-
await waitFor(() => expect(result).toBe(true));
|
|
27
|
-
```
|
|
27
|
+
## Common Patterns
|
|
28
28
|
|
|
29
|
-
### 3. Test Interdependence
|
|
30
29
|
```typescript
|
|
31
|
-
//
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
30
|
+
// FLAKY: Timing-dependent
|
|
31
|
+
await sleep(100); // May not be enough
|
|
32
|
+
expect(result).toBe('processed');
|
|
33
|
+
|
|
34
|
+
// FIXED: Wait for condition
|
|
35
|
+
await waitFor(() => {
|
|
36
|
+
expect(result).toBe('processed');
|
|
37
|
+
}, { timeout: 5000 });
|
|
38
|
+
|
|
39
|
+
// FLAKY: Shared state between tests
|
|
40
|
+
let sharedState = [];
|
|
41
|
+
it('test1', () => { sharedState.push('a'); });
|
|
42
|
+
it('test2', () => { expect(sharedState).toHaveLength(1); }); // Order-dependent!
|
|
43
|
+
|
|
44
|
+
// FIXED: Fresh state each test
|
|
45
|
+
beforeEach(() => { sharedState = []; });
|
|
46
|
+
|
|
47
|
+
// IMPLEMENTATION: Testing private state
|
|
48
|
+
expect(counter._count).toBe(1);
|
|
49
|
+
|
|
50
|
+
// BEHAVIOR: Testing public interface
|
|
51
|
+
expect(counter.getValue()).toBe(1);
|
|
35
52
|
|
|
36
|
-
//
|
|
37
|
-
|
|
53
|
+
// OVER-MOCKING: Everything mocked
|
|
54
|
+
const mockDb = { save: jest.fn() };
|
|
55
|
+
const mockPayment = { charge: jest.fn() };
|
|
56
|
+
// Only testing that mocks were called
|
|
57
|
+
|
|
58
|
+
// FIXED: Mock boundaries only
|
|
59
|
+
const testDb = await createTestDatabase(); // Real
|
|
60
|
+
const mockPayment = createMockPaymentProvider(); // External only
|
|
38
61
|
```
|
|
39
62
|
|
|
40
|
-
### 4. Overmocking
|
|
41
|
-
```typescript
|
|
42
|
-
// Bad - mock everything
|
|
43
|
-
// Good - use real implementations when practical
|
|
44
63
|
```
|
|
64
|
+
# Anti-Pattern Severity Guide
|
|
65
|
+
CRITICAL (fix immediately):
|
|
66
|
+
- Flaky tests - Random failures destroy trust
|
|
67
|
+
- Testing implementation - Breaks on every refactor
|
|
68
|
+
- Hidden dependencies - Tests fail mysteriously
|
|
69
|
+
|
|
70
|
+
HIGH (fix soon):
|
|
71
|
+
- Slow tests - Hurt development velocity
|
|
72
|
+
- Test interdependence - Can't run in isolation
|
|
73
|
+
- Over-mocking - Tests pass but bugs slip through
|
|
74
|
+
|
|
75
|
+
MEDIUM (plan to fix):
|
|
76
|
+
- Poor naming - Tests don't document behavior
|
|
77
|
+
- Magic values - Unclear expected values
|
|
78
|
+
- Giant tests - Hard to understand
|
|
79
|
+
|
|
80
|
+
LOW (fix when touching):
|
|
81
|
+
- Commented tests - Remove or fix
|
|
82
|
+
- Duplicate tests - Consolidate
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Best Practices
|
|
86
|
+
|
|
87
|
+
| Do | Avoid |
|
|
88
|
+
|----|-------|
|
|
89
|
+
| Test behavior, not implementation | Accessing private properties |
|
|
90
|
+
| Use factories for test data | Random/inconsistent test data |
|
|
91
|
+
| Write descriptive test names | Generic names like "test1", "should work" |
|
|
92
|
+
| Keep tests independent | Shared mutable state between tests |
|
|
93
|
+
| Mock only external boundaries | Mocking your own code extensively |
|
|
94
|
+
| Use waitFor, not sleep | setTimeout/sleep in tests |
|
|
95
|
+
| Make assertions specific | toBeDefined() for everything |
|
|
96
|
+
| Run tests in random order | Assuming test execution order |
|
|
97
|
+
|
|
98
|
+
## Related Skills
|
|
45
99
|
|
|
46
|
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
- Use realistic test data
|
|
100
|
+
- `developing-test-driven` - TDD with proper patterns
|
|
101
|
+
- `testing-with-vitest` - Vitest testing framework
|
|
102
|
+
- `testing-with-playwright` - E2E testing patterns
|
|
103
|
+
- `debugging-systematically` - Debug flaky test failures
|
|
@@ -1,51 +1,90 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
2
|
+
name: optimizing-tokens
|
|
3
|
+
description: AI agent maximizes efficiency and minimizes costs through strategic token usage while maintaining output quality. Use when managing AI interactions, designing prompts, or reducing costs.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Optimizing Tokens
|
|
7
7
|
|
|
8
|
-
##
|
|
8
|
+
## Quick Start
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
1. **Analyze** - Identify input vs output token distribution
|
|
11
|
+
2. **Minimize Context** - Read only relevant file sections, not entire files
|
|
12
|
+
3. **Optimize Prompts** - Use direct commands, remove filler words
|
|
13
|
+
4. **Structure Outputs** - Request concise formats (JSON over prose)
|
|
14
|
+
5. **Batch Operations** - Combine related requests, avoid duplicate context
|
|
15
|
+
6. **Select Model** - Match model tier to task complexity
|
|
15
16
|
|
|
16
|
-
|
|
17
|
-
Explain this function briefly.
|
|
18
|
-
```
|
|
17
|
+
## Features
|
|
19
18
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
19
|
+
| Feature | Description | Guide |
|
|
20
|
+
|---------|-------------|-------|
|
|
21
|
+
| Context Targeting | Read only needed code sections | Line ranges, pattern search, summaries |
|
|
22
|
+
| Prompt Efficiency | Direct commands vs verbose requests | 79% reduction possible |
|
|
23
|
+
| Output Formatting | Structured concise responses | JSON/YAML over verbose explanations |
|
|
24
|
+
| Model Selection | Right model for task complexity | Haiku: simple, Sonnet: standard, Opus: complex |
|
|
25
|
+
| Batching | Combine related operations | Single request with multiple outputs |
|
|
26
|
+
| Caching | Avoid redundant computation | Cache by content hash + timestamp |
|
|
24
27
|
|
|
25
|
-
|
|
26
|
-
Read("file.ts", { offset: 50, limit: 30 })
|
|
27
|
-
```
|
|
28
|
+
## Common Patterns
|
|
28
29
|
|
|
29
|
-
### 3. Efficient Searches
|
|
30
30
|
```
|
|
31
|
-
#
|
|
32
|
-
|
|
31
|
+
# Prompt Optimization (79% reduction)
|
|
32
|
+
INEFFICIENT (120 tokens):
|
|
33
|
+
"I would really appreciate it if you could help me
|
|
34
|
+
with this task. What I need you to do is to please
|
|
35
|
+
analyze this code and look for any bugs..."
|
|
36
|
+
|
|
37
|
+
EFFICIENT (25 tokens):
|
|
38
|
+
"Analyze for bugs, error handling issues, security.
|
|
39
|
+
For each: location, problem, fix."
|
|
40
|
+
|
|
41
|
+
# Context Optimization
|
|
42
|
+
INEFFICIENT: Read entire 1000-line file
|
|
43
|
+
EFFICIENT: Read lines 45-60 around target function
|
|
33
44
|
|
|
34
|
-
#
|
|
35
|
-
|
|
45
|
+
# Output Format
|
|
46
|
+
INEFFICIENT: "Please explain in detail..."
|
|
47
|
+
EFFICIENT: "Output: JSON {name, severity, fix}"
|
|
48
|
+
|
|
49
|
+
# Batching
|
|
50
|
+
INEFFICIENT:
|
|
51
|
+
Request 1: "Given code [100 lines], find bugs"
|
|
52
|
+
Request 2: "Given code [same 100 lines], add types"
|
|
53
|
+
|
|
54
|
+
EFFICIENT:
|
|
55
|
+
Single request: "Given code [100 lines]:
|
|
56
|
+
1. Find bugs
|
|
57
|
+
2. Add types"
|
|
36
58
|
```
|
|
37
59
|
|
|
38
|
-
### 4. Batch Operations
|
|
39
60
|
```
|
|
40
|
-
#
|
|
41
|
-
|
|
61
|
+
# Model Selection Guide
|
|
62
|
+
| Task Type | Model | Examples |
|
|
63
|
+
|-----------|-------|----------|
|
|
64
|
+
| Simple | Haiku | Formatting, syntax check, lookups |
|
|
65
|
+
| Standard | Sonnet | Features, bugs, reviews, tests |
|
|
66
|
+
| Complex | Opus | Architecture, security, critical code |
|
|
42
67
|
|
|
43
|
-
#
|
|
44
|
-
|
|
68
|
+
# Search Efficiency
|
|
69
|
+
INEFFICIENT: grep ".*" / (matches everything)
|
|
70
|
+
EFFICIENT: grep "handleAuth" src/ --type ts
|
|
45
71
|
```
|
|
46
72
|
|
|
47
|
-
##
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
73
|
+
## Best Practices
|
|
74
|
+
|
|
75
|
+
| Do | Avoid |
|
|
76
|
+
|----|-------|
|
|
77
|
+
| Read only what's needed - use line ranges | Reading entire files for one function |
|
|
78
|
+
| Use direct language - commands over requests | Verbose, polite phrasing in prompts |
|
|
79
|
+
| Structure outputs - JSON/YAML over prose | Requesting detailed explanations for simple tasks |
|
|
80
|
+
| Batch operations - combine related requests | Repeating context across multiple requests |
|
|
81
|
+
| Choose right model - Haiku for simple tasks | Using most powerful model for everything |
|
|
82
|
+
| Limit search results - use head_limit | Unbounded searches returning thousands of results |
|
|
83
|
+
| Cache results - avoid redundant computation | Re-analyzing unchanged files |
|
|
84
|
+
| Progressive loading - start minimal, expand | Loading full context when partial suffices |
|
|
85
|
+
|
|
86
|
+
## Related Skills
|
|
87
|
+
|
|
88
|
+
- `dispatching-parallel-agents` - Efficient multi-agent patterns
|
|
89
|
+
- `writing-plans` - Structured planning reduces iteration
|
|
90
|
+
- `thinking-sequentially` - Organized reasoning saves tokens
|
|
@@ -1,32 +1,132 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
3
|
-
description:
|
|
2
|
+
name: verifying-before-completion
|
|
3
|
+
description: AI agent validates work through evidence-based verification with comprehensive checklists, automated validation, and proof-of-work documentation. Use when completing tasks, preparing for review, or ensuring quality.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
7
|
-
|
|
8
|
-
##
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
##
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
6
|
+
# Verifying Before Completion
|
|
7
|
+
|
|
8
|
+
## Quick Start
|
|
9
|
+
|
|
10
|
+
1. **Functional** - All acceptance criteria met, happy path works, edge cases handled
|
|
11
|
+
2. **Technical** - Tests pass, coverage met, lint clean, build succeeds
|
|
12
|
+
3. **Security** - No secrets exposed, input sanitized, auth verified
|
|
13
|
+
4. **Performance** - Response time acceptable, no N+1, no memory leaks
|
|
14
|
+
5. **Documentation** - Code comments, API docs, README updated
|
|
15
|
+
6. **Evidence** - Collect screenshots, test output, metrics for proof
|
|
16
|
+
|
|
17
|
+
## Features
|
|
18
|
+
|
|
19
|
+
| Feature | Description | Guide |
|
|
20
|
+
|---------|-------------|-------|
|
|
21
|
+
| Universal Checklist | Comprehensive validation | Functional, technical, security, perf, docs |
|
|
22
|
+
| Evidence Collection | Proof of verification | Test output, screenshots, metrics |
|
|
23
|
+
| Automated Pipeline | CI/CD validation | Type check, lint, test, build, audit |
|
|
24
|
+
| Type-Specific Checks | Context-aware validation | UI, API, migration, bug fix, optimization |
|
|
25
|
+
| Pre-Commit Hooks | Catch issues early | lint-staged, related tests |
|
|
26
|
+
| Sign-Off Template | Formal completion record | Verified by, date, evidence links |
|
|
27
|
+
|
|
28
|
+
## Common Patterns
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
# Universal Verification Checklist
|
|
32
|
+
FUNCTIONAL:
|
|
33
|
+
[ ] All acceptance criteria met
|
|
34
|
+
[ ] Happy path works correctly
|
|
35
|
+
[ ] Edge cases handled
|
|
36
|
+
[ ] Error handling works
|
|
37
|
+
[ ] Input validation works
|
|
38
|
+
|
|
39
|
+
TECHNICAL:
|
|
40
|
+
[ ] Tests pass (unit, integration, E2E)
|
|
41
|
+
[ ] Coverage meets threshold (80%+)
|
|
42
|
+
[ ] No TypeScript/lint errors
|
|
43
|
+
[ ] Build succeeds
|
|
44
|
+
[ ] No security vulnerabilities
|
|
45
|
+
|
|
46
|
+
DOCUMENTATION:
|
|
47
|
+
[ ] Complex logic commented
|
|
48
|
+
[ ] API documentation updated
|
|
49
|
+
[ ] README updated if needed
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
```bash
|
|
53
|
+
# Automated Verification Script
|
|
54
|
+
npm run lint # Lint check
|
|
55
|
+
npm run typecheck # Type check
|
|
56
|
+
npm test # Unit tests
|
|
57
|
+
npm run build # Build verification
|
|
58
|
+
npm audit # Security audit
|
|
59
|
+
|
|
60
|
+
# Full verification
|
|
61
|
+
npm run verify # Runs all checks
|
|
62
|
+
```
|
|
63
|
+
|
|
32
64
|
```
|
|
65
|
+
# Evidence Documentation Template
|
|
66
|
+
## Test Evidence
|
|
67
|
+
$ npm test
|
|
68
|
+
Test Suites: 15 passed
|
|
69
|
+
Tests: 87 passed
|
|
70
|
+
Coverage: 85.2%
|
|
71
|
+
|
|
72
|
+
## Manual Verification
|
|
73
|
+
| Step | Expected | Actual | Status |
|
|
74
|
+
|------|----------|--------|--------|
|
|
75
|
+
| Login | Form appears | Works | Pass |
|
|
76
|
+
| Submit | Success msg | Shows | Pass |
|
|
77
|
+
|
|
78
|
+
## Performance Metrics
|
|
79
|
+
| Metric | Baseline | Current | Status |
|
|
80
|
+
|--------|----------|---------|--------|
|
|
81
|
+
| Bundle | 245 KB | 248 KB | Pass |
|
|
82
|
+
| API | 150ms | 145ms | Pass |
|
|
83
|
+
|
|
84
|
+
## Sign-Off
|
|
85
|
+
[x] All tests pass
|
|
86
|
+
[x] Manual testing complete
|
|
87
|
+
[x] Ready for review
|
|
88
|
+
Verified by: [Name] on [Date]
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
```
|
|
92
|
+
# Type-Specific Checklists
|
|
93
|
+
UI COMPONENT:
|
|
94
|
+
[ ] Renders in all browsers
|
|
95
|
+
[ ] Responsive mobile/tablet/desktop
|
|
96
|
+
[ ] Loading/error/empty states
|
|
97
|
+
[ ] Keyboard accessible
|
|
98
|
+
[ ] Matches design specs
|
|
99
|
+
|
|
100
|
+
API ENDPOINT:
|
|
101
|
+
[ ] Correct status codes
|
|
102
|
+
[ ] Response matches schema
|
|
103
|
+
[ ] Auth/authz enforced
|
|
104
|
+
[ ] Input validated
|
|
105
|
+
[ ] Documented in OpenAPI
|
|
106
|
+
|
|
107
|
+
BUG FIX:
|
|
108
|
+
[ ] Root cause identified
|
|
109
|
+
[ ] Fix addresses root cause
|
|
110
|
+
[ ] Regression test added
|
|
111
|
+
[ ] No new bugs introduced
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
## Best Practices
|
|
115
|
+
|
|
116
|
+
| Do | Avoid |
|
|
117
|
+
|----|-------|
|
|
118
|
+
| Run all tests before marking complete | Skipping verification steps |
|
|
119
|
+
| Document evidence of verification | Marking complete without evidence |
|
|
120
|
+
| Test both happy and unhappy paths | Assuming tests are enough |
|
|
121
|
+
| Verify on multiple browsers/devices | Ignoring edge cases |
|
|
122
|
+
| Check performance impact | Skipping security checks |
|
|
123
|
+
| Use automated verification | Merging without green CI |
|
|
124
|
+
| Include screenshots for UI | Forgetting mobile testing |
|
|
125
|
+
| Self-review before requesting | Rushing verification |
|
|
126
|
+
|
|
127
|
+
## Related Skills
|
|
128
|
+
|
|
129
|
+
- `finishing-development-branches` - Complete branch preparation
|
|
130
|
+
- `executing-plans` - Quality gates during execution
|
|
131
|
+
- `debugging-systematically` - Verify fixes work
|
|
132
|
+
- `developing-test-driven` - Build verification into process
|