superkit-mcp-server 1.0.2 → 1.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 (116) hide show
  1. package/ARCHITECTURE.md +102 -102
  2. package/README.md +67 -63
  3. package/SUPERKIT.md +168 -168
  4. package/agents/code-archaeologist.md +106 -0
  5. package/agents/coder.md +90 -90
  6. package/agents/data-engineer.md +28 -28
  7. package/agents/devops-engineer.md +242 -0
  8. package/agents/git-manager.md +203 -203
  9. package/agents/orchestrator.md +4 -0
  10. package/agents/penetration-tester.md +188 -0
  11. package/agents/performance-optimizer.md +187 -0
  12. package/agents/planner.md +270 -270
  13. package/agents/qa-automation-engineer.md +103 -0
  14. package/agents/quant-developer.md +32 -28
  15. package/agents/reviewer.md +100 -100
  16. package/agents/scout.md +222 -222
  17. package/agents/tester.md +274 -274
  18. package/agents/ui-designer.md +208 -208
  19. package/build/index.js +53 -1
  20. package/build/tools/validators/__tests__/apiSchema.test.js +23 -23
  21. package/build/tools/validators/__tests__/convertRules.test.js +5 -5
  22. package/build/tools/validators/__tests__/frontendDesign.test.js +12 -12
  23. package/build/tools/validators/__tests__/geoChecker.test.js +19 -19
  24. package/build/tools/validators/__tests__/mobileAudit.test.js +12 -12
  25. package/build/tools/validators/__tests__/reactPerformanceChecker.test.js +17 -17
  26. package/build/tools/validators/__tests__/securityScan.test.js +6 -6
  27. package/build/tools/validators/__tests__/seoChecker.test.js +16 -16
  28. package/build/tools/validators/__tests__/typeCoverage.test.js +14 -14
  29. package/package.json +33 -33
  30. package/skills/meta/README.md +30 -30
  31. package/skills/meta/api-design/SKILL.md +134 -134
  32. package/skills/meta/code-review/SKILL.md +44 -37
  33. package/skills/meta/code-review/checklists/pre-merge.md +25 -25
  34. package/skills/meta/code-review/workflows/architecture-pass.md +26 -26
  35. package/skills/meta/code-review/workflows/performance-pass.md +27 -27
  36. package/skills/meta/code-review/workflows/security-pass.md +29 -29
  37. package/skills/meta/compound-docs/SKILL.md +133 -133
  38. package/skills/meta/debug/SKILL.md +40 -40
  39. package/skills/meta/debug/templates/bug-report.template.md +31 -31
  40. package/skills/meta/debug/workflows/reproduce-issue.md +20 -20
  41. package/skills/meta/docker/SKILL.md +126 -126
  42. package/skills/meta/examples/supabase/SKILL.md +46 -46
  43. package/skills/meta/examples/supabase/references/best-practices.md +319 -319
  44. package/skills/meta/examples/supabase/references/common-patterns.md +373 -373
  45. package/skills/meta/examples/supabase/templates/migration-template.sql +49 -49
  46. package/skills/meta/examples/supabase/templates/rls-policy-template.sql +77 -77
  47. package/skills/meta/examples/supabase/workflows/debugging.md +260 -260
  48. package/skills/meta/examples/supabase/workflows/migration-workflow.md +211 -211
  49. package/skills/meta/examples/supabase/workflows/rls-policies.md +244 -244
  50. package/skills/meta/examples/supabase/workflows/schema-design.md +321 -321
  51. package/skills/meta/file-todos/SKILL.md +88 -88
  52. package/skills/meta/mobile/SKILL.md +140 -140
  53. package/skills/meta/nextjs/SKILL.md +101 -101
  54. package/skills/meta/performance/SKILL.md +130 -130
  55. package/skills/meta/react-patterns/SKILL.md +83 -83
  56. package/skills/meta/security/SKILL.md +114 -114
  57. package/skills/meta/session-resume/SKILL.md +96 -96
  58. package/skills/meta/tailwind/SKILL.md +139 -139
  59. package/skills/meta/testing/SKILL.md +43 -43
  60. package/skills/meta/testing/references/vitest-patterns.md +45 -45
  61. package/skills/meta/testing/templates/component-test.template.tsx +37 -37
  62. package/skills/tech/alpha-vantage/SKILL.md +142 -0
  63. package/skills/tech/alpha-vantage/references/commodities.md +153 -0
  64. package/skills/tech/alpha-vantage/references/economic-indicators.md +158 -0
  65. package/skills/tech/alpha-vantage/references/forex-crypto.md +154 -0
  66. package/skills/tech/alpha-vantage/references/fundamentals.md +223 -0
  67. package/skills/tech/alpha-vantage/references/intelligence.md +138 -0
  68. package/skills/tech/alpha-vantage/references/options.md +93 -0
  69. package/skills/tech/alpha-vantage/references/technical-indicators.md +374 -0
  70. package/skills/tech/alpha-vantage/references/time-series.md +157 -0
  71. package/skills/tech/financial-modeling/SKILL.md +18 -0
  72. package/skills/tech/financial-modeling/skills/3-statements/SKILL.md +368 -0
  73. package/skills/tech/financial-modeling/skills/3-statements/references/formatting.md +118 -0
  74. package/skills/tech/financial-modeling/skills/3-statements/references/formulas.md +292 -0
  75. package/skills/tech/financial-modeling/skills/3-statements/references/sec-filings.md +125 -0
  76. package/skills/tech/financial-modeling/skills/dcf-model/SKILL.md +1211 -0
  77. package/skills/tech/financial-modeling/skills/dcf-model/TROUBLESHOOTING.md +40 -0
  78. package/skills/tech/financial-modeling/skills/dcf-model/requirements.txt +8 -0
  79. package/skills/tech/financial-modeling/skills/dcf-model/scripts/validate_dcf.py +292 -0
  80. package/skills/tech/financial-modeling/skills/lbo-model/SKILL.md +236 -0
  81. package/skills/tech/financial-modeling/skills/merger-model/SKILL.md +108 -0
  82. package/skills/tech/intelligent-routing/SKILL.md +5 -5
  83. package/workflows/README.md +191 -191
  84. package/workflows/adr.md +174 -174
  85. package/workflows/changelog.md +74 -74
  86. package/workflows/compound.md +323 -323
  87. package/workflows/compound_health.md +74 -74
  88. package/workflows/create-agent-skill.md +139 -139
  89. package/workflows/cycle.md +144 -144
  90. package/workflows/deploy-docs.md +84 -84
  91. package/workflows/development-rules.md +37 -37
  92. package/workflows/doc.md +95 -95
  93. package/workflows/documentation-management.md +29 -29
  94. package/workflows/explore.md +146 -146
  95. package/workflows/generate_command.md +106 -106
  96. package/workflows/heal-skill.md +97 -97
  97. package/workflows/housekeeping.md +229 -229
  98. package/workflows/kit-setup.md +102 -102
  99. package/workflows/map-codebase.md +78 -0
  100. package/workflows/orchestration-protocol.md +38 -38
  101. package/workflows/plan-compound.md +439 -433
  102. package/workflows/plan_review.md +269 -248
  103. package/workflows/primary-workflow.md +32 -32
  104. package/workflows/promote_pattern.md +86 -86
  105. package/workflows/release-docs.md +82 -82
  106. package/workflows/report-bug.md +135 -135
  107. package/workflows/reproduce-bug.md +118 -118
  108. package/workflows/resolve_pr.md +133 -133
  109. package/workflows/resolve_todo.md +128 -128
  110. package/workflows/review-compound.md +376 -359
  111. package/workflows/skill-review.md +127 -127
  112. package/workflows/specs.md +257 -257
  113. package/workflows/triage-sprint.md +102 -102
  114. package/workflows/triage.md +152 -152
  115. package/workflows/work.md +399 -399
  116. package/workflows/xcode-test.md +93 -93
package/agents/tester.md CHANGED
@@ -1,274 +1,274 @@
1
- # Tester Agent
2
-
3
- ## Role
4
- Write tests and ensure code quality.
5
-
6
- ## When to Use
7
- - Write unit tests
8
- - Integration tests
9
- - E2E tests
10
- - Test edge cases
11
- - Verify bug fixes
12
-
13
- ## Capabilities
14
-
15
- ### 1. Unit Testing
16
- - Test individual functions
17
- - Mock dependencies
18
- - Cover edge cases
19
- - Assert expected outcomes
20
-
21
- ### 2. Integration Testing
22
- - Test component interactions
23
- - API endpoint tests
24
- - Database integration
25
-
26
- ### 3. E2E Testing
27
- - User flow testing
28
- - Browser automation
29
- - Cross-browser testing
30
-
31
- ### 4. Test Strategy
32
- - Identify test cases
33
- - Prioritize by risk
34
- - Coverage analysis
35
-
36
- ## Test Patterns
37
-
38
- ### Unit Test Structure
39
- ```typescript
40
- describe('UserService', () => {
41
- describe('createUser', () => {
42
- it('should create user with valid data', async () => {
43
- // Arrange
44
- const userData = { name: 'John', email: 'john@test.com' };
45
-
46
- // Act
47
- const result = await userService.createUser(userData);
48
-
49
- // Assert
50
- expect(result.id).toBeDefined();
51
- expect(result.name).toBe('John');
52
- });
53
-
54
- it('should throw error for invalid email', async () => {
55
- // Arrange
56
- const userData = { name: 'John', email: 'invalid' };
57
-
58
- // Act & Assert
59
- await expect(userService.createUser(userData))
60
- .rejects.toThrow('Invalid email');
61
- });
62
- });
63
- });
64
- ```
65
-
66
- ### Mock Pattern
67
- ```typescript
68
- // Mock external service
69
- jest.mock('./emailService');
70
- const mockSendEmail = emailService.send as jest.Mock;
71
- mockSendEmail.mockResolvedValue({ success: true });
72
-
73
- // Verify mock called
74
- expect(mockSendEmail).toHaveBeenCalledWith({
75
- to: 'user@test.com',
76
- subject: 'Welcome'
77
- });
78
- ```
79
-
80
- ## Vitest Patterns
81
-
82
- > This project uses **Vitest** - API similar to Jest but faster.
83
-
84
- ### Basic Vitest Test
85
- ```typescript
86
- import { describe, it, expect, vi, beforeEach } from 'vitest';
87
- import { createUser } from '../user';
88
-
89
- describe('createUser', () => {
90
- it('should create user successfully', async () => {
91
- const user = await createUser({ name: 'John' });
92
- expect(user.id).toBeDefined();
93
- });
94
- });
95
- ```
96
-
97
- ### Vitest Mocking
98
- ```typescript
99
- import { vi } from 'vitest';
100
-
101
- // Mock module
102
- vi.mock('./emailService', () => ({
103
- sendEmail: vi.fn().mockResolvedValue({ success: true })
104
- }));
105
-
106
- // Spy on function
107
- const spy = vi.spyOn(console, 'log');
108
- spy.mockImplementation(() => {});
109
-
110
- // Clear mocks
111
- beforeEach(() => {
112
- vi.clearAllMocks();
113
- });
114
- ```
115
-
116
- ### Vitest vs Jest Cheatsheet
117
- | Jest | Vitest |
118
- |------|--------|
119
- | `jest.fn()` | `vi.fn()` |
120
- | `jest.mock()` | `vi.mock()` |
121
- | `jest.spyOn()` | `vi.spyOn()` |
122
- | `jest.useFakeTimers()` | `vi.useFakeTimers()` |
123
-
124
- ## Snapshot Testing
125
-
126
- ### When to Use Snapshots
127
- ✅ UI component output
128
- ✅ API response structure
129
- ✅ Config file generation
130
- ❌ Frequently changing data
131
- ❌ Random/date values
132
-
133
- ### Snapshot Example
134
- ```typescript
135
- import { describe, it, expect } from 'vitest';
136
-
137
- describe('UserCard', () => {
138
- it('should render correctly', () => {
139
- const html = renderUserCard({ name: 'John', role: 'Admin' });
140
- expect(html).toMatchSnapshot();
141
- });
142
- });
143
- ```
144
-
145
- ### Inline Snapshots
146
- ```typescript
147
- it('should format date', () => {
148
- expect(formatDate('2024-12-15')).toMatchInlineSnapshot(`"Dec 15, 2024"`);
149
- });
150
- ```
151
-
152
- ### Update Snapshots
153
- ```bash
154
- # Update all snapshots
155
- npm test -- -u
156
-
157
- # Update specific test
158
- npm test -- user.test.ts -u
159
- ```
160
-
161
- ## Test Coverage Targets
162
- | Type | Target |
163
- |------|--------|
164
- | Unit | 80%+ |
165
- | Integration | 60%+ |
166
- | E2E | Critical paths |
167
-
168
- ## Fake Timers
169
-
170
- ### Control Time in Tests
171
- ```typescript
172
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
173
-
174
- describe('Timer tests', () => {
175
- beforeEach(() => {
176
- vi.useFakeTimers();
177
- });
178
-
179
- afterEach(() => {
180
- vi.useRealTimers();
181
- });
182
-
183
- it('should call callback after delay', () => {
184
- const callback = vi.fn();
185
- setTimeout(callback, 1000);
186
-
187
- vi.advanceTimersByTime(1000);
188
- expect(callback).toHaveBeenCalled();
189
- });
190
-
191
- it('should work with dates', () => {
192
- vi.setSystemTime(new Date('2024-12-15'));
193
- expect(new Date().toISOString()).toContain('2024-12-15');
194
- });
195
- });
196
- ```
197
-
198
- ## API Mocking with MSW
199
-
200
- ### Mock Service Worker Setup
201
- ```typescript
202
- // mocks/handlers.ts
203
- import { http, HttpResponse } from 'msw';
204
-
205
- export const handlers = [
206
- http.get('/api/users', () => {
207
- return HttpResponse.json([
208
- { id: 1, name: 'John' },
209
- { id: 2, name: 'Jane' }
210
- ]);
211
- }),
212
-
213
- http.post('/api/users', async ({ request }) => {
214
- const body = await request.json();
215
- return HttpResponse.json({ id: 3, ...body }, { status: 201 });
216
- }),
217
- ];
218
- ```
219
-
220
- ### Use in Tests
221
- ```typescript
222
- // vitest.setup.ts
223
- import { setupServer } from 'msw/node';
224
- import { handlers } from './mocks/handlers';
225
-
226
- const server = setupServer(...handlers);
227
-
228
- beforeAll(() => server.listen());
229
- afterEach(() => server.resetHandlers());
230
- afterAll(() => server.close());
231
- ```
232
-
233
- ## Best Practices
234
- 1. AAA pattern: Arrange, Act, Assert
235
- 2. One assertion per test (ideally)
236
- 3. Descriptive test names
237
- 4. Test behavior, not implementation
238
- 5. Don't test external libraries
239
- 6. **Use Vitest for new tests**
240
- 7. **Snapshot for UI components**
241
- 8. **Use MSW for API mocking**
242
- 9. **Fake timers for time-dependent code**
243
-
244
- ## AI Prompting Tips
245
-
246
- When using AI to write tests:
247
-
248
- ```markdown
249
- ## Prompt Template
250
-
251
- "Write unit test for function [function name] in file [path].
252
- - Framework: Vitest
253
- - Mock: [dependencies to mock]
254
- - Cases: [happy path, error cases, edge cases]
255
- - Style: AAA pattern"
256
- ```
257
-
258
- ### Effective Prompt Examples
259
-
260
- ❌ **Bad:** "Write test for user.ts"
261
-
262
- ✅ **Good:** "Write Vitest unit tests for `createUser` function in `src/services/user.ts`. Mock database calls with vi.mock. Cover: valid input, invalid email, duplicate user."
263
-
264
- ### Tips
265
- 1. Specify framework (Vitest/Jest)
266
- 2. List specific test cases
267
- 3. Specify dependencies to mock
268
- 4. Mention AAA pattern if structure needed
269
-
270
- ## Related Agents
271
- - **Coder** - write code with tests
272
- - **Reviewer** - review test quality
273
-
274
-
1
+ # Tester Agent
2
+
3
+ ## Role
4
+ Write tests and ensure code quality.
5
+
6
+ ## When to Use
7
+ - Write unit tests
8
+ - Integration tests
9
+ - E2E tests
10
+ - Test edge cases
11
+ - Verify bug fixes
12
+
13
+ ## Capabilities
14
+
15
+ ### 1. Unit Testing
16
+ - Test individual functions
17
+ - Mock dependencies
18
+ - Cover edge cases
19
+ - Assert expected outcomes
20
+
21
+ ### 2. Integration Testing
22
+ - Test component interactions
23
+ - API endpoint tests
24
+ - Database integration
25
+
26
+ ### 3. E2E Testing
27
+ - User flow testing
28
+ - Browser automation
29
+ - Cross-browser testing
30
+
31
+ ### 4. Test Strategy
32
+ - Identify test cases
33
+ - Prioritize by risk
34
+ - Coverage analysis
35
+
36
+ ## Test Patterns
37
+
38
+ ### Unit Test Structure
39
+ ```typescript
40
+ describe('UserService', () => {
41
+ describe('createUser', () => {
42
+ it('should create user with valid data', async () => {
43
+ // Arrange
44
+ const userData = { name: 'John', email: 'john@test.com' };
45
+
46
+ // Act
47
+ const result = await userService.createUser(userData);
48
+
49
+ // Assert
50
+ expect(result.id).toBeDefined();
51
+ expect(result.name).toBe('John');
52
+ });
53
+
54
+ it('should throw error for invalid email', async () => {
55
+ // Arrange
56
+ const userData = { name: 'John', email: 'invalid' };
57
+
58
+ // Act & Assert
59
+ await expect(userService.createUser(userData))
60
+ .rejects.toThrow('Invalid email');
61
+ });
62
+ });
63
+ });
64
+ ```
65
+
66
+ ### Mock Pattern
67
+ ```typescript
68
+ // Mock external service
69
+ jest.mock('./emailService');
70
+ const mockSendEmail = emailService.send as jest.Mock;
71
+ mockSendEmail.mockResolvedValue({ success: true });
72
+
73
+ // Verify mock called
74
+ expect(mockSendEmail).toHaveBeenCalledWith({
75
+ to: 'user@test.com',
76
+ subject: 'Welcome'
77
+ });
78
+ ```
79
+
80
+ ## Vitest Patterns
81
+
82
+ > This project uses **Vitest** - API similar to Jest but faster.
83
+
84
+ ### Basic Vitest Test
85
+ ```typescript
86
+ import { describe, it, expect, vi, beforeEach } from 'vitest';
87
+ import { createUser } from '../user';
88
+
89
+ describe('createUser', () => {
90
+ it('should create user successfully', async () => {
91
+ const user = await createUser({ name: 'John' });
92
+ expect(user.id).toBeDefined();
93
+ });
94
+ });
95
+ ```
96
+
97
+ ### Vitest Mocking
98
+ ```typescript
99
+ import { vi } from 'vitest';
100
+
101
+ // Mock module
102
+ vi.mock('./emailService', () => ({
103
+ sendEmail: vi.fn().mockResolvedValue({ success: true })
104
+ }));
105
+
106
+ // Spy on function
107
+ const spy = vi.spyOn(console, 'log');
108
+ spy.mockImplementation(() => {});
109
+
110
+ // Clear mocks
111
+ beforeEach(() => {
112
+ vi.clearAllMocks();
113
+ });
114
+ ```
115
+
116
+ ### Vitest vs Jest Cheatsheet
117
+ | Jest | Vitest |
118
+ |------|--------|
119
+ | `jest.fn()` | `vi.fn()` |
120
+ | `jest.mock()` | `vi.mock()` |
121
+ | `jest.spyOn()` | `vi.spyOn()` |
122
+ | `jest.useFakeTimers()` | `vi.useFakeTimers()` |
123
+
124
+ ## Snapshot Testing
125
+
126
+ ### When to Use Snapshots
127
+ ✅ UI component output
128
+ ✅ API response structure
129
+ ✅ Config file generation
130
+ ❌ Frequently changing data
131
+ ❌ Random/date values
132
+
133
+ ### Snapshot Example
134
+ ```typescript
135
+ import { describe, it, expect } from 'vitest';
136
+
137
+ describe('UserCard', () => {
138
+ it('should render correctly', () => {
139
+ const html = renderUserCard({ name: 'John', role: 'Admin' });
140
+ expect(html).toMatchSnapshot();
141
+ });
142
+ });
143
+ ```
144
+
145
+ ### Inline Snapshots
146
+ ```typescript
147
+ it('should format date', () => {
148
+ expect(formatDate('2024-12-15')).toMatchInlineSnapshot(`"Dec 15, 2024"`);
149
+ });
150
+ ```
151
+
152
+ ### Update Snapshots
153
+ ```bash
154
+ # Update all snapshots
155
+ npm test -- -u
156
+
157
+ # Update specific test
158
+ npm test -- user.test.ts -u
159
+ ```
160
+
161
+ ## Test Coverage Targets
162
+ | Type | Target |
163
+ |------|--------|
164
+ | Unit | 80%+ |
165
+ | Integration | 60%+ |
166
+ | E2E | Critical paths |
167
+
168
+ ## Fake Timers
169
+
170
+ ### Control Time in Tests
171
+ ```typescript
172
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
173
+
174
+ describe('Timer tests', () => {
175
+ beforeEach(() => {
176
+ vi.useFakeTimers();
177
+ });
178
+
179
+ afterEach(() => {
180
+ vi.useRealTimers();
181
+ });
182
+
183
+ it('should call callback after delay', () => {
184
+ const callback = vi.fn();
185
+ setTimeout(callback, 1000);
186
+
187
+ vi.advanceTimersByTime(1000);
188
+ expect(callback).toHaveBeenCalled();
189
+ });
190
+
191
+ it('should work with dates', () => {
192
+ vi.setSystemTime(new Date('2024-12-15'));
193
+ expect(new Date().toISOString()).toContain('2024-12-15');
194
+ });
195
+ });
196
+ ```
197
+
198
+ ## API Mocking with MSW
199
+
200
+ ### Mock Service Worker Setup
201
+ ```typescript
202
+ // mocks/handlers.ts
203
+ import { http, HttpResponse } from 'msw';
204
+
205
+ export const handlers = [
206
+ http.get('/api/users', () => {
207
+ return HttpResponse.json([
208
+ { id: 1, name: 'John' },
209
+ { id: 2, name: 'Jane' }
210
+ ]);
211
+ }),
212
+
213
+ http.post('/api/users', async ({ request }) => {
214
+ const body = await request.json();
215
+ return HttpResponse.json({ id: 3, ...body }, { status: 201 });
216
+ }),
217
+ ];
218
+ ```
219
+
220
+ ### Use in Tests
221
+ ```typescript
222
+ // vitest.setup.ts
223
+ import { setupServer } from 'msw/node';
224
+ import { handlers } from './mocks/handlers';
225
+
226
+ const server = setupServer(...handlers);
227
+
228
+ beforeAll(() => server.listen());
229
+ afterEach(() => server.resetHandlers());
230
+ afterAll(() => server.close());
231
+ ```
232
+
233
+ ## Best Practices
234
+ 1. AAA pattern: Arrange, Act, Assert
235
+ 2. One assertion per test (ideally)
236
+ 3. Descriptive test names
237
+ 4. Test behavior, not implementation
238
+ 5. Don't test external libraries
239
+ 6. **Use Vitest for new tests**
240
+ 7. **Snapshot for UI components**
241
+ 8. **Use MSW for API mocking**
242
+ 9. **Fake timers for time-dependent code**
243
+
244
+ ## AI Prompting Tips
245
+
246
+ When using AI to write tests:
247
+
248
+ ```markdown
249
+ ## Prompt Template
250
+
251
+ "Write unit test for function [function name] in file [path].
252
+ - Framework: Vitest
253
+ - Mock: [dependencies to mock]
254
+ - Cases: [happy path, error cases, edge cases]
255
+ - Style: AAA pattern"
256
+ ```
257
+
258
+ ### Effective Prompt Examples
259
+
260
+ ❌ **Bad:** "Write test for user.ts"
261
+
262
+ ✅ **Good:** "Write Vitest unit tests for `createUser` function in `src/services/user.ts`. Mock database calls with vi.mock. Cover: valid input, invalid email, duplicate user."
263
+
264
+ ### Tips
265
+ 1. Specify framework (Vitest/Jest)
266
+ 2. List specific test cases
267
+ 3. Specify dependencies to mock
268
+ 4. Mention AAA pattern if structure needed
269
+
270
+ ## Related Agents
271
+ - **Coder** - write code with tests
272
+ - **Reviewer** - review test quality
273
+
274
+