start-vibing 2.0.3 → 2.0.5
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/template/.claude/agents/01-orchestration/agent-selector.md +1 -0
- package/template/.claude/agents/01-orchestration/checkpoint-manager.md +1 -0
- package/template/.claude/agents/01-orchestration/context-manager.md +1 -0
- package/template/.claude/agents/01-orchestration/error-recovery.md +1 -0
- package/template/.claude/agents/01-orchestration/parallel-coordinator.md +1 -0
- package/template/.claude/agents/01-orchestration/workflow-router.md +1 -0
- package/template/.claude/agents/02-typescript/bun-runtime-expert.md +1 -0
- package/template/.claude/agents/02-typescript/esm-resolver.md +1 -0
- package/template/.claude/agents/02-typescript/import-alias-enforcer.md +1 -0
- package/template/.claude/agents/02-typescript/ts-generics-helper.md +1 -0
- package/template/.claude/agents/02-typescript/ts-migration-helper.md +1 -0
- package/template/.claude/agents/02-typescript/ts-strict-checker.md +1 -0
- package/template/.claude/agents/02-typescript/ts-types-analyzer.md +1 -0
- package/template/.claude/agents/02-typescript/type-definition-writer.md +1 -0
- package/template/.claude/agents/02-typescript/zod-schema-designer.md +1 -1
- package/template/.claude/agents/02-typescript/zod-validator.md +1 -0
- package/template/.claude/agents/03-testing/playwright-assertions.md +1 -0
- package/template/.claude/agents/03-testing/playwright-e2e.md +2 -2
- package/template/.claude/agents/03-testing/playwright-fixtures.md +2 -2
- package/template/.claude/agents/03-testing/playwright-multi-viewport.md +2 -2
- package/template/.claude/agents/03-testing/playwright-page-objects.md +2 -1
- package/template/.claude/agents/03-testing/test-cleanup-manager.md +2 -1
- package/template/.claude/agents/03-testing/test-data-generator.md +2 -1
- package/template/.claude/agents/03-testing/tester-integration.md +1 -1
- package/template/.claude/agents/03-testing/tester-unit.md +1 -1
- package/template/.claude/agents/03-testing/vitest-config.md +2 -1
- package/template/.claude/agents/04-docker/container-health.md +2 -1
- package/template/.claude/agents/04-docker/deployment-validator.md +2 -1
- package/template/.claude/agents/04-docker/docker-compose-designer.md +2 -1
- package/template/.claude/agents/04-docker/docker-env-manager.md +2 -1
- package/template/.claude/agents/04-docker/docker-multi-stage.md +2 -1
- package/template/.claude/agents/04-docker/dockerfile-optimizer.md +2 -1
- package/template/.claude/agents/05-database/data-migration.md +2 -1
- package/template/.claude/agents/05-database/database-seeder.md +2 -1
- package/template/.claude/agents/05-database/mongodb-query-optimizer.md +2 -1
- package/template/.claude/agents/05-database/mongoose-aggregation.md +2 -1
- package/template/.claude/agents/05-database/mongoose-index-optimizer.md +2 -1
- package/template/.claude/agents/05-database/mongoose-schema-designer.md +2 -2
- package/template/.claude/agents/06-security/auth-session-validator.md +1 -1
- package/template/.claude/agents/06-security/input-sanitizer.md +2 -1
- package/template/.claude/agents/06-security/owasp-checker.md +1 -1
- package/template/.claude/agents/06-security/permission-auditor.md +2 -1
- package/template/.claude/agents/06-security/security-auditor.md +1 -1
- package/template/.claude/agents/06-security/sensitive-data-scanner.md +2 -1
- package/template/.claude/agents/07-documentation/api-documenter.md +2 -1
- package/template/.claude/agents/07-documentation/changelog-manager.md +2 -1
- package/template/.claude/agents/07-documentation/documenter.md +1 -1
- package/template/.claude/agents/07-documentation/domain-updater.md +1 -1
- package/template/.claude/agents/07-documentation/jsdoc-generator.md +2 -1
- package/template/.claude/agents/07-documentation/readme-generator.md +2 -1
- package/template/.claude/agents/08-git/branch-manager.md +2 -1
- package/template/.claude/agents/08-git/commit-manager.md +2 -2
- package/template/.claude/agents/08-git/pr-creator.md +2 -1
- package/template/.claude/agents/09-quality/code-reviewer.md +2 -1
- package/template/.claude/agents/09-quality/quality-checker.md +1 -1
- package/template/.claude/agents/10-research/best-practices-finder.md +1 -1
- package/template/.claude/agents/10-research/competitor-analyzer.md +1 -1
- package/template/.claude/agents/10-research/pattern-researcher.md +1 -1
- package/template/.claude/agents/10-research/research-cache-manager.md +1 -1
- package/template/.claude/agents/10-research/research-web.md +1 -1
- package/template/.claude/agents/10-research/tech-evaluator.md +1 -1
- package/template/.claude/agents/11-ui-ux/accessibility-auditor.md +1 -1
- package/template/.claude/agents/11-ui-ux/design-system-enforcer.md +2 -2
- package/template/.claude/agents/11-ui-ux/skeleton-generator.md +2 -2
- package/template/.claude/agents/11-ui-ux/ui-desktop.md +2 -2
- package/template/.claude/agents/11-ui-ux/ui-mobile.md +2 -2
- package/template/.claude/agents/11-ui-ux/ui-tablet.md +2 -2
- package/template/.claude/agents/12-performance/api-latency-analyzer.md +2 -1
- package/template/.claude/agents/12-performance/bundle-analyzer.md +2 -1
- package/template/.claude/agents/12-performance/memory-leak-detector.md +2 -1
- package/template/.claude/agents/12-performance/performance-profiler.md +2 -1
- package/template/.claude/agents/12-performance/query-optimizer.md +2 -2
- package/template/.claude/agents/12-performance/render-optimizer.md +2 -1
- package/template/.claude/agents/13-debugging/build-error-fixer.md +2 -1
- package/template/.claude/agents/13-debugging/debugger.md +2 -1
- package/template/.claude/agents/13-debugging/error-stack-analyzer.md +2 -1
- package/template/.claude/agents/13-debugging/network-debugger.md +2 -1
- package/template/.claude/agents/13-debugging/runtime-error-fixer.md +2 -1
- package/template/.claude/agents/13-debugging/type-error-resolver.md +2 -1
- package/template/.claude/agents/14-validation/final-validator.md +1 -1
- package/template/.claude/hooks/user-prompt-submit.py +574 -169
- package/template/.claude/hooks/user-prompt-submit.ts +578 -96
- package/template/.claude/skills/debugging-patterns/SKILL.md +484 -0
- package/template/.claude/skills/docker-patterns/SKILL.md +547 -0
- package/template/.claude/skills/git-workflow/SKILL.md +454 -0
- package/template/.claude/skills/performance-patterns/SKILL.md +549 -0
|
@@ -7,6 +7,9 @@
|
|
|
7
7
|
* 2. MANDATORY research agent for new features
|
|
8
8
|
* 3. STRICT workflow: audit -> branch -> implement -> document -> quality -> PR
|
|
9
9
|
* 4. Separate UI for mobile/tablet/desktop (NOT just responsive)
|
|
10
|
+
*
|
|
11
|
+
* AGENT SYSTEM: 82 specialized agents in 14 categories
|
|
12
|
+
* SKILL SYSTEM: 22 skills auto-loaded by agents
|
|
10
13
|
*/
|
|
11
14
|
|
|
12
15
|
import { existsSync, readFileSync } from 'fs';
|
|
@@ -36,93 +39,543 @@ const STRICT_WORKFLOW = `
|
|
|
36
39
|
- Documenter agent not executed for code changes
|
|
37
40
|
`;
|
|
38
41
|
|
|
42
|
+
// ============================================================================
|
|
43
|
+
// AGENT SYSTEM - 82 Specialized Agents in 14 Categories
|
|
44
|
+
// ============================================================================
|
|
45
|
+
|
|
39
46
|
interface AgentInfo {
|
|
40
|
-
description: string;
|
|
41
47
|
triggers: string[];
|
|
42
|
-
priority: number;
|
|
43
48
|
when: string;
|
|
49
|
+
skills: string[];
|
|
44
50
|
can_veto?: boolean;
|
|
45
51
|
mandatory_for?: string[];
|
|
46
|
-
enforces?: string;
|
|
47
52
|
}
|
|
48
53
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
54
|
+
interface CategoryInfo {
|
|
55
|
+
description: string;
|
|
56
|
+
agents: Record<string, AgentInfo>;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
const AGENT_CATEGORIES: Record<string, CategoryInfo> = {
|
|
60
|
+
'01-orchestration': {
|
|
61
|
+
description: 'Workflow coordination and task management',
|
|
62
|
+
agents: {
|
|
63
|
+
'orchestrator': {
|
|
64
|
+
triggers: ['implement feature', 'build', 'create', 'full workflow', 'multi-step'],
|
|
65
|
+
when: 'Task requires >2 agents or touches >3 files',
|
|
66
|
+
skills: ['codebase-knowledge']
|
|
67
|
+
},
|
|
68
|
+
'task-decomposer': {
|
|
69
|
+
triggers: ['complex task', 'break down', 'multiple steps'],
|
|
70
|
+
when: 'Task has >3 steps or touches >3 files',
|
|
71
|
+
skills: ['codebase-knowledge']
|
|
72
|
+
},
|
|
73
|
+
'workflow-router': {
|
|
74
|
+
triggers: ['route', 'which agent', 'unclear'],
|
|
75
|
+
when: 'At task start to route to correct agent',
|
|
76
|
+
skills: ['codebase-knowledge']
|
|
77
|
+
},
|
|
78
|
+
'parallel-coordinator': {
|
|
79
|
+
triggers: ['parallel', 'concurrent', 'simultaneous'],
|
|
80
|
+
when: 'Multiple independent agents should run simultaneously',
|
|
81
|
+
skills: ['codebase-knowledge']
|
|
82
|
+
},
|
|
83
|
+
'context-manager': {
|
|
84
|
+
triggers: ['context', 'compress', 'long conversation'],
|
|
85
|
+
when: 'Context grows large or between major phases',
|
|
86
|
+
skills: ['codebase-knowledge']
|
|
87
|
+
},
|
|
88
|
+
'checkpoint-manager': {
|
|
89
|
+
triggers: ['checkpoint', 'save state', 'backup'],
|
|
90
|
+
when: 'BEFORE risky operations (git, deletions, refactors)',
|
|
91
|
+
skills: ['codebase-knowledge']
|
|
92
|
+
},
|
|
93
|
+
'error-recovery': {
|
|
94
|
+
triggers: ['failed', 'retry', 'timeout', 'unexpected error'],
|
|
95
|
+
when: 'An agent fails or returns unexpected results',
|
|
96
|
+
skills: ['codebase-knowledge', 'debugging-patterns']
|
|
97
|
+
},
|
|
98
|
+
'agent-selector': {
|
|
99
|
+
triggers: ['select agent', 'best agent', 'which agent'],
|
|
100
|
+
when: 'Multiple agents could handle a task',
|
|
101
|
+
skills: ['codebase-knowledge']
|
|
102
|
+
}
|
|
103
|
+
}
|
|
55
104
|
},
|
|
56
|
-
'
|
|
57
|
-
description: '
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
105
|
+
'02-typescript': {
|
|
106
|
+
description: 'TypeScript strict mode, types, and module resolution',
|
|
107
|
+
agents: {
|
|
108
|
+
'ts-strict-checker': {
|
|
109
|
+
triggers: ['strict mode', 'null check', 'process.env'],
|
|
110
|
+
when: 'AFTER editing any .ts file',
|
|
111
|
+
skills: ['typescript-strict']
|
|
112
|
+
},
|
|
113
|
+
'ts-types-analyzer': {
|
|
114
|
+
triggers: ['type error', 'inference', 'generic problem'],
|
|
115
|
+
when: 'On type errors or typecheck fails',
|
|
116
|
+
skills: ['typescript-strict']
|
|
117
|
+
},
|
|
118
|
+
'ts-generics-helper': {
|
|
119
|
+
triggers: ['generic', 'type parameter', 'complex type'],
|
|
120
|
+
when: 'Creating generic functions/types',
|
|
121
|
+
skills: ['typescript-strict']
|
|
122
|
+
},
|
|
123
|
+
'ts-migration-helper': {
|
|
124
|
+
triggers: ['migrate', 'convert to typescript', '.js'],
|
|
125
|
+
when: 'Migrating JavaScript to TypeScript',
|
|
126
|
+
skills: ['typescript-strict']
|
|
127
|
+
},
|
|
128
|
+
'type-definition-writer': {
|
|
129
|
+
triggers: ['new model', 'new entity', 'interface needed'],
|
|
130
|
+
when: 'BEFORE implementing new entities',
|
|
131
|
+
skills: ['typescript-strict']
|
|
132
|
+
},
|
|
133
|
+
'import-alias-enforcer': {
|
|
134
|
+
triggers: ['import', 'alias', '@types'],
|
|
135
|
+
when: 'AFTER editing .ts files - enforces $types/*, @common, @db',
|
|
136
|
+
skills: ['typescript-strict']
|
|
137
|
+
},
|
|
138
|
+
'esm-resolver': {
|
|
139
|
+
triggers: ['module error', 'import error', 'cannot find module'],
|
|
140
|
+
when: 'On module errors',
|
|
141
|
+
skills: ['typescript-strict', 'bun-runtime']
|
|
142
|
+
},
|
|
143
|
+
'bun-runtime-expert': {
|
|
144
|
+
triggers: ['bun', 'runtime', 'package management'],
|
|
145
|
+
when: 'Using Bun runtime',
|
|
146
|
+
skills: ['bun-runtime']
|
|
147
|
+
},
|
|
148
|
+
'zod-validator': {
|
|
149
|
+
triggers: ['validation', 'zod', 'schema'],
|
|
150
|
+
when: 'BEFORE commit when API routes exist',
|
|
151
|
+
skills: ['zod-validation']
|
|
152
|
+
},
|
|
153
|
+
'zod-schema-designer': {
|
|
154
|
+
triggers: ['new endpoint', 'form input', 'user input'],
|
|
155
|
+
when: 'BEFORE implementing any API endpoint',
|
|
156
|
+
skills: ['zod-validation', 'typescript-strict']
|
|
157
|
+
}
|
|
158
|
+
}
|
|
61
159
|
},
|
|
62
|
-
'
|
|
63
|
-
description: '
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
160
|
+
'03-testing': {
|
|
161
|
+
description: 'Unit tests (Vitest) and E2E tests (Playwright)',
|
|
162
|
+
agents: {
|
|
163
|
+
'vitest-config': {
|
|
164
|
+
triggers: ['test setup', 'vitest config', 'coverage config'],
|
|
165
|
+
when: 'Setting up tests or coverage issues arise',
|
|
166
|
+
skills: ['test-coverage']
|
|
167
|
+
},
|
|
168
|
+
'tester-unit': {
|
|
169
|
+
triggers: ['unit test', 'function test', 'utility test'],
|
|
170
|
+
when: 'AFTER implementing any function or utility',
|
|
171
|
+
skills: ['test-coverage']
|
|
172
|
+
},
|
|
173
|
+
'tester-integration': {
|
|
174
|
+
triggers: ['integration test', 'api test', 'service test'],
|
|
175
|
+
when: 'AFTER implementing API endpoints or services',
|
|
176
|
+
skills: ['test-coverage']
|
|
177
|
+
},
|
|
178
|
+
'test-data-generator': {
|
|
179
|
+
triggers: ['mock data', 'test fixture', 'factory'],
|
|
180
|
+
when: 'BEFORE writing tests that need data',
|
|
181
|
+
skills: ['test-coverage']
|
|
182
|
+
},
|
|
183
|
+
'test-cleanup-manager': {
|
|
184
|
+
triggers: ['flaky test', 'test isolation', 'state leakage'],
|
|
185
|
+
when: 'Tests are flaky or share state',
|
|
186
|
+
skills: ['test-coverage']
|
|
187
|
+
},
|
|
188
|
+
'playwright-e2e': {
|
|
189
|
+
triggers: ['e2e test', 'user flow', 'end to end'],
|
|
190
|
+
when: 'AFTER implementing any user-facing feature',
|
|
191
|
+
skills: ['test-coverage', 'playwright-automation']
|
|
192
|
+
},
|
|
193
|
+
'playwright-fixtures': {
|
|
194
|
+
triggers: ['fixture', 'shared setup', 'auth helper'],
|
|
195
|
+
when: 'Creating E2E tests that need shared setup',
|
|
196
|
+
skills: ['test-coverage', 'playwright-automation']
|
|
197
|
+
},
|
|
198
|
+
'playwright-page-objects': {
|
|
199
|
+
triggers: ['page object', 'page model', 'page interaction'],
|
|
200
|
+
when: 'Creating E2E tests for new pages',
|
|
201
|
+
skills: ['test-coverage', 'playwright-automation']
|
|
202
|
+
},
|
|
203
|
+
'playwright-multi-viewport': {
|
|
204
|
+
triggers: ['viewport', 'responsive test', 'mobile test'],
|
|
205
|
+
when: 'AFTER any UI implementation - tests desktop/tablet/mobile',
|
|
206
|
+
skills: ['test-coverage', 'playwright-automation']
|
|
207
|
+
},
|
|
208
|
+
'playwright-assertions': {
|
|
209
|
+
triggers: ['assertion', 'expect', 'test validation'],
|
|
210
|
+
when: 'Creating comprehensive test assertions',
|
|
211
|
+
skills: ['test-coverage', 'playwright-automation']
|
|
212
|
+
}
|
|
213
|
+
}
|
|
68
214
|
},
|
|
69
|
-
'
|
|
70
|
-
description: '
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
215
|
+
'04-docker': {
|
|
216
|
+
description: 'Docker containerization and deployment',
|
|
217
|
+
agents: {
|
|
218
|
+
'dockerfile-optimizer': {
|
|
219
|
+
triggers: ['dockerfile', 'docker build', 'image size'],
|
|
220
|
+
when: 'Creating or modifying Dockerfile',
|
|
221
|
+
skills: ['docker-patterns']
|
|
222
|
+
},
|
|
223
|
+
'docker-multi-stage': {
|
|
224
|
+
triggers: ['multi-stage', 'build optimization', 'production docker'],
|
|
225
|
+
when: 'Dockerfile can benefit from multi-stage',
|
|
226
|
+
skills: ['docker-patterns']
|
|
227
|
+
},
|
|
228
|
+
'docker-compose-designer': {
|
|
229
|
+
triggers: ['docker-compose', 'multi-service', 'local dev'],
|
|
230
|
+
when: 'Multi-service setup is needed',
|
|
231
|
+
skills: ['docker-patterns']
|
|
232
|
+
},
|
|
233
|
+
'docker-env-manager': {
|
|
234
|
+
triggers: ['docker env', 'secrets', 'env vars'],
|
|
235
|
+
when: 'Docker uses environment variables',
|
|
236
|
+
skills: ['docker-patterns']
|
|
237
|
+
},
|
|
238
|
+
'container-health': {
|
|
239
|
+
triggers: ['health check', 'container monitoring', 'service health'],
|
|
240
|
+
when: 'Creating Docker containers',
|
|
241
|
+
skills: ['docker-patterns']
|
|
242
|
+
},
|
|
243
|
+
'deployment-validator': {
|
|
244
|
+
triggers: ['deploy', 'pre-deploy', 'docker validation'],
|
|
245
|
+
when: 'BEFORE deploying',
|
|
246
|
+
skills: ['docker-patterns']
|
|
247
|
+
}
|
|
248
|
+
}
|
|
75
249
|
},
|
|
76
|
-
'
|
|
77
|
-
description: '
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
250
|
+
'05-database': {
|
|
251
|
+
description: 'MongoDB/Mongoose database operations',
|
|
252
|
+
agents: {
|
|
253
|
+
'mongoose-schema-designer': {
|
|
254
|
+
triggers: ['schema', 'model', 'collection'],
|
|
255
|
+
when: 'BEFORE creating any database model',
|
|
256
|
+
skills: ['mongoose-patterns']
|
|
257
|
+
},
|
|
258
|
+
'mongoose-index-optimizer': {
|
|
259
|
+
triggers: ['index', 'slow query', 'query performance'],
|
|
260
|
+
when: 'Database queries are slow',
|
|
261
|
+
skills: ['mongoose-patterns']
|
|
262
|
+
},
|
|
263
|
+
'mongoose-aggregation': {
|
|
264
|
+
triggers: ['aggregation', 'pipeline', 'reporting'],
|
|
265
|
+
when: 'Complex data queries needed',
|
|
266
|
+
skills: ['mongoose-patterns']
|
|
267
|
+
},
|
|
268
|
+
'mongodb-query-optimizer': {
|
|
269
|
+
triggers: ['n+1', 'query optimizer', 'database performance'],
|
|
270
|
+
when: 'Queries are slow',
|
|
271
|
+
skills: ['mongoose-patterns']
|
|
272
|
+
},
|
|
273
|
+
'database-seeder': {
|
|
274
|
+
triggers: ['seed', 'sample data', 'dev data'],
|
|
275
|
+
when: 'Setting up development environment',
|
|
276
|
+
skills: ['mongoose-patterns']
|
|
277
|
+
},
|
|
278
|
+
'data-migration': {
|
|
279
|
+
triggers: ['migration', 'schema change', 'data transform'],
|
|
280
|
+
when: 'Schema changes are needed',
|
|
281
|
+
skills: ['mongoose-patterns']
|
|
282
|
+
}
|
|
283
|
+
}
|
|
81
284
|
},
|
|
82
|
-
'
|
|
83
|
-
description: '
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
285
|
+
'06-security': {
|
|
286
|
+
description: 'Security auditing and OWASP compliance (CAN VETO)',
|
|
287
|
+
agents: {
|
|
288
|
+
'security-auditor': {
|
|
289
|
+
triggers: ['security', 'audit', 'vulnerability'],
|
|
290
|
+
when: 'BEFORE committing auth/user/API code',
|
|
291
|
+
can_veto: true,
|
|
292
|
+
skills: ['security-scan']
|
|
293
|
+
},
|
|
294
|
+
'owasp-checker': {
|
|
295
|
+
triggers: ['owasp', 'top 10', 'security review'],
|
|
296
|
+
when: 'BEFORE committing any API or security code',
|
|
297
|
+
can_veto: true,
|
|
298
|
+
skills: ['security-scan']
|
|
299
|
+
},
|
|
300
|
+
'input-sanitizer': {
|
|
301
|
+
triggers: ['sanitize', 'user input', 'xss'],
|
|
302
|
+
when: 'Handling user input',
|
|
303
|
+
skills: ['security-scan', 'zod-validation']
|
|
304
|
+
},
|
|
305
|
+
'auth-session-validator': {
|
|
306
|
+
triggers: ['auth', 'session', 'login', 'jwt'],
|
|
307
|
+
when: 'Implementing auth or session code',
|
|
308
|
+
skills: ['security-scan']
|
|
309
|
+
},
|
|
310
|
+
'permission-auditor': {
|
|
311
|
+
triggers: ['permission', 'authorization', 'access control'],
|
|
312
|
+
when: 'Implementing protected routes',
|
|
313
|
+
skills: ['security-scan']
|
|
314
|
+
},
|
|
315
|
+
'sensitive-data-scanner': {
|
|
316
|
+
triggers: ['sensitive', 'pii', 'data leak'],
|
|
317
|
+
when: 'Implementing API responses or logging',
|
|
318
|
+
skills: ['security-scan']
|
|
319
|
+
}
|
|
320
|
+
}
|
|
87
321
|
},
|
|
88
|
-
'
|
|
89
|
-
description: '
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
322
|
+
'07-documentation': {
|
|
323
|
+
description: 'Documentation and domain knowledge updates',
|
|
324
|
+
agents: {
|
|
325
|
+
'documenter': {
|
|
326
|
+
triggers: ['document', 'docs', 'explain code'],
|
|
327
|
+
when: 'AFTER any code implementation completes',
|
|
328
|
+
skills: ['docs-tracker', 'codebase-knowledge']
|
|
329
|
+
},
|
|
330
|
+
'domain-updater': {
|
|
331
|
+
triggers: ['domain', 'learnings', 'session end'],
|
|
332
|
+
when: 'BEFORE commit-manager at session end',
|
|
333
|
+
skills: ['codebase-knowledge', 'docs-tracker']
|
|
334
|
+
},
|
|
335
|
+
'readme-generator': {
|
|
336
|
+
triggers: ['readme', 'project docs', 'setup guide'],
|
|
337
|
+
when: 'Project structure changes significantly',
|
|
338
|
+
skills: ['docs-tracker']
|
|
339
|
+
},
|
|
340
|
+
'jsdoc-generator': {
|
|
341
|
+
triggers: ['jsdoc', 'function docs', 'api docs'],
|
|
342
|
+
when: 'Complex functions lack documentation',
|
|
343
|
+
skills: ['docs-tracker', 'typescript-strict']
|
|
344
|
+
},
|
|
345
|
+
'changelog-manager': {
|
|
346
|
+
triggers: ['changelog', 'release notes', 'version'],
|
|
347
|
+
when: 'BEFORE committing any feature or fix',
|
|
348
|
+
skills: ['docs-tracker', 'git-workflow']
|
|
349
|
+
},
|
|
350
|
+
'api-documenter': {
|
|
351
|
+
triggers: ['api docs', 'swagger', 'openapi'],
|
|
352
|
+
when: 'AFTER creating or modifying API endpoints',
|
|
353
|
+
skills: ['docs-tracker']
|
|
354
|
+
}
|
|
355
|
+
}
|
|
94
356
|
},
|
|
95
|
-
'
|
|
96
|
-
description: '
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
357
|
+
'08-git': {
|
|
358
|
+
description: 'Git workflow and version control',
|
|
359
|
+
agents: {
|
|
360
|
+
'branch-manager': {
|
|
361
|
+
triggers: ['branch', 'feature branch', 'fix branch'],
|
|
362
|
+
when: 'BEFORE making source changes on main branch',
|
|
363
|
+
skills: ['git-workflow']
|
|
364
|
+
},
|
|
365
|
+
'commit-manager': {
|
|
366
|
+
triggers: ['commit', 'push', 'finalize'],
|
|
367
|
+
when: 'FINAL AGENT when implementation is complete',
|
|
368
|
+
skills: ['git-workflow', 'docs-tracker', 'codebase-knowledge']
|
|
369
|
+
},
|
|
370
|
+
'pr-creator': {
|
|
371
|
+
triggers: ['pr', 'pull request', 'merge'],
|
|
372
|
+
when: 'AFTER commit-manager when feature is ready',
|
|
373
|
+
skills: ['git-workflow']
|
|
374
|
+
}
|
|
375
|
+
}
|
|
100
376
|
},
|
|
101
|
-
'
|
|
102
|
-
description: '
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
377
|
+
'09-quality': {
|
|
378
|
+
description: 'Code quality and review',
|
|
379
|
+
agents: {
|
|
380
|
+
'quality-checker': {
|
|
381
|
+
triggers: ['quality', 'typecheck', 'lint', 'build'],
|
|
382
|
+
when: 'BEFORE any commit',
|
|
383
|
+
skills: ['quality-gate', 'codebase-knowledge']
|
|
384
|
+
},
|
|
385
|
+
'code-reviewer': {
|
|
386
|
+
triggers: ['review', 'pr review', 'code quality'],
|
|
387
|
+
when: 'AFTER significant code is written',
|
|
388
|
+
skills: ['quality-gate', 'codebase-knowledge']
|
|
389
|
+
}
|
|
390
|
+
}
|
|
107
391
|
},
|
|
108
|
-
'
|
|
109
|
-
description: '
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
392
|
+
'10-research': {
|
|
393
|
+
description: 'Web research and best practices (MANDATORY for new features)',
|
|
394
|
+
agents: {
|
|
395
|
+
'research-web': {
|
|
396
|
+
triggers: ['search', 'find info', 'look up'],
|
|
397
|
+
when: 'BEFORE implementing any new feature or technology',
|
|
398
|
+
mandatory_for: ['feature'],
|
|
399
|
+
skills: ['research-cache']
|
|
400
|
+
},
|
|
401
|
+
'research-cache-manager': {
|
|
402
|
+
triggers: ['cache', 'cached research', 'previous research'],
|
|
403
|
+
when: 'BEFORE any web research',
|
|
404
|
+
skills: ['research-cache']
|
|
405
|
+
},
|
|
406
|
+
'best-practices-finder': {
|
|
407
|
+
triggers: ['best practice', 'recommended', 'how should'],
|
|
408
|
+
when: 'BEFORE implementing any new pattern',
|
|
409
|
+
skills: ['research-cache']
|
|
410
|
+
},
|
|
411
|
+
'pattern-researcher': {
|
|
412
|
+
triggers: ['pattern', 'architecture', 'design decision'],
|
|
413
|
+
when: 'Facing architectural decisions',
|
|
414
|
+
skills: ['research-cache']
|
|
415
|
+
},
|
|
416
|
+
'competitor-analyzer': {
|
|
417
|
+
triggers: ['competitor', 'similar app', 'how does'],
|
|
418
|
+
when: 'Designing UI or features with existing market solutions',
|
|
419
|
+
skills: ['research-cache']
|
|
420
|
+
},
|
|
421
|
+
'tech-evaluator': {
|
|
422
|
+
triggers: ['compare', 'evaluate', 'which library'],
|
|
423
|
+
when: 'Choosing between technologies',
|
|
424
|
+
skills: ['research-cache']
|
|
425
|
+
}
|
|
426
|
+
}
|
|
113
427
|
},
|
|
114
|
-
'
|
|
115
|
-
description: '
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
428
|
+
'11-ui-ux': {
|
|
429
|
+
description: 'UI/UX - SEPARATE UIs for mobile/tablet/desktop (NOT just responsive)',
|
|
430
|
+
agents: {
|
|
431
|
+
'ui-mobile': {
|
|
432
|
+
triggers: ['mobile', 'touch', '375px'],
|
|
433
|
+
when: 'Implementing any UI feature',
|
|
434
|
+
skills: ['ui-ux-audit', 'react-patterns', 'tailwind-patterns', 'shadcn-ui']
|
|
435
|
+
},
|
|
436
|
+
'ui-tablet': {
|
|
437
|
+
triggers: ['tablet', 'ipad', '768px'],
|
|
438
|
+
when: 'Implementing any UI feature',
|
|
439
|
+
skills: ['ui-ux-audit', 'react-patterns', 'tailwind-patterns', 'shadcn-ui']
|
|
440
|
+
},
|
|
441
|
+
'ui-desktop': {
|
|
442
|
+
triggers: ['desktop', 'sidebar', '1280px'],
|
|
443
|
+
when: 'Implementing any UI feature',
|
|
444
|
+
skills: ['ui-ux-audit', 'react-patterns', 'tailwind-patterns', 'shadcn-ui']
|
|
445
|
+
},
|
|
446
|
+
'skeleton-generator': {
|
|
447
|
+
triggers: ['skeleton', 'loading', 'placeholder'],
|
|
448
|
+
when: 'AFTER creating any component that loads data',
|
|
449
|
+
skills: ['react-patterns', 'tailwind-patterns']
|
|
450
|
+
},
|
|
451
|
+
'design-system-enforcer': {
|
|
452
|
+
triggers: ['design system', 'consistency', 'component style'],
|
|
453
|
+
when: 'AFTER creating UI components',
|
|
454
|
+
skills: ['ui-ux-audit', 'shadcn-ui', 'tailwind-patterns']
|
|
455
|
+
},
|
|
456
|
+
'accessibility-auditor': {
|
|
457
|
+
triggers: ['a11y', 'accessibility', 'wcag', 'screen reader'],
|
|
458
|
+
when: 'AFTER any UI implementation',
|
|
459
|
+
skills: ['ui-ux-audit']
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
},
|
|
463
|
+
'12-performance': {
|
|
464
|
+
description: 'Performance profiling and optimization',
|
|
465
|
+
agents: {
|
|
466
|
+
'performance-profiler': {
|
|
467
|
+
triggers: ['slow', 'performance', 'profile', 'bottleneck'],
|
|
468
|
+
when: 'Application is slow',
|
|
469
|
+
skills: ['performance-patterns']
|
|
470
|
+
},
|
|
471
|
+
'memory-leak-detector': {
|
|
472
|
+
triggers: ['memory', 'leak', 'heap'],
|
|
473
|
+
when: 'Memory issues are suspected',
|
|
474
|
+
skills: ['performance-patterns']
|
|
475
|
+
},
|
|
476
|
+
'bundle-analyzer': {
|
|
477
|
+
triggers: ['bundle', 'build size', 'lighthouse'],
|
|
478
|
+
when: 'Build is large or slow',
|
|
479
|
+
skills: ['performance-patterns']
|
|
480
|
+
},
|
|
481
|
+
'api-latency-analyzer': {
|
|
482
|
+
triggers: ['api slow', 'response time', 'latency'],
|
|
483
|
+
when: 'API endpoints are slow',
|
|
484
|
+
skills: ['performance-patterns']
|
|
485
|
+
},
|
|
486
|
+
'query-optimizer': {
|
|
487
|
+
triggers: ['slow query', 'n+1', 'database slow'],
|
|
488
|
+
when: 'Database queries are slow',
|
|
489
|
+
skills: ['performance-patterns', 'mongoose-patterns']
|
|
490
|
+
},
|
|
491
|
+
'render-optimizer': {
|
|
492
|
+
triggers: ['re-render', 'react slow', 'component slow'],
|
|
493
|
+
when: 'React components re-render excessively',
|
|
494
|
+
skills: ['performance-patterns', 'react-patterns']
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
},
|
|
498
|
+
'13-debugging': {
|
|
499
|
+
description: 'Error analysis and debugging',
|
|
500
|
+
agents: {
|
|
501
|
+
'debugger': {
|
|
502
|
+
triggers: ['bug', 'error', 'not working', 'broken', 'fails'],
|
|
503
|
+
when: 'Any bug or error occurs',
|
|
504
|
+
skills: ['debugging-patterns']
|
|
505
|
+
},
|
|
506
|
+
'type-error-resolver': {
|
|
507
|
+
triggers: ['ts error', 'type error', 'typecheck fails'],
|
|
508
|
+
when: 'On TypeScript type errors',
|
|
509
|
+
skills: ['debugging-patterns', 'typescript-strict']
|
|
510
|
+
},
|
|
511
|
+
'runtime-error-fixer': {
|
|
512
|
+
triggers: ['crash', 'exception', 'runtime error'],
|
|
513
|
+
when: 'On runtime crashes or exceptions',
|
|
514
|
+
skills: ['debugging-patterns']
|
|
515
|
+
},
|
|
516
|
+
'network-debugger': {
|
|
517
|
+
triggers: ['fetch error', 'api error', 'cors', 'network'],
|
|
518
|
+
when: 'On network or API errors',
|
|
519
|
+
skills: ['debugging-patterns']
|
|
520
|
+
},
|
|
521
|
+
'error-stack-analyzer': {
|
|
522
|
+
triggers: ['stack trace', 'trace', 'call stack'],
|
|
523
|
+
when: 'Error includes stack trace',
|
|
524
|
+
skills: ['debugging-patterns']
|
|
525
|
+
},
|
|
526
|
+
'build-error-fixer': {
|
|
527
|
+
triggers: ['build failed', 'compile error', 'bundler error'],
|
|
528
|
+
when: 'Build fails',
|
|
529
|
+
skills: ['debugging-patterns']
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
},
|
|
533
|
+
'14-validation': {
|
|
534
|
+
description: 'Final validation before commit (CAN VETO)',
|
|
535
|
+
agents: {
|
|
536
|
+
'final-validator': {
|
|
537
|
+
triggers: ['final check', 'validate', 'ready to commit'],
|
|
538
|
+
when: 'BEFORE commit-manager - last check',
|
|
539
|
+
can_veto: true,
|
|
540
|
+
skills: ['final-check']
|
|
541
|
+
}
|
|
542
|
+
}
|
|
119
543
|
}
|
|
120
544
|
};
|
|
121
545
|
|
|
546
|
+
// ============================================================================
|
|
547
|
+
// SKILL SYSTEM - 22 Skills Auto-loaded by Agents
|
|
548
|
+
// ============================================================================
|
|
549
|
+
|
|
550
|
+
const SKILLS: Record<string, string> = {
|
|
551
|
+
'bun-runtime': 'Bun runtime patterns, package management, scripts',
|
|
552
|
+
'codebase-knowledge': 'Project domain knowledge, file mapping, recent commits',
|
|
553
|
+
'debugging-patterns': 'Stack traces, runtime errors, build errors, network issues',
|
|
554
|
+
'docker-patterns': 'Containerization, multi-stage builds, Docker Compose, security',
|
|
555
|
+
'docs-tracker': 'Documentation maintenance, git diff detection, changelog',
|
|
556
|
+
'final-check': 'Final validation, tests pass, docs updated, security audited',
|
|
557
|
+
'git-workflow': 'Branch management, conventional commits, PR creation, hooks',
|
|
558
|
+
'mongoose-patterns': 'MongoDB schema design, queries, indexes, aggregations',
|
|
559
|
+
'nextjs-app-router': 'Next.js 15 App Router, Server/Client components, data fetching',
|
|
560
|
+
'performance-patterns': 'React optimization, bundle analysis, memory leaks, API latency',
|
|
561
|
+
'playwright-automation': 'E2E tests, browser automation, visual testing, API testing',
|
|
562
|
+
'quality-gate': 'Quality checks (typecheck, lint, test, build)',
|
|
563
|
+
'react-patterns': 'React 19 patterns, hooks, state management, performance',
|
|
564
|
+
'research-cache': 'Cached research findings, best practices by topic',
|
|
565
|
+
'security-scan': 'OWASP Top 10, user ID validation, sensitive data detection',
|
|
566
|
+
'shadcn-ui': 'shadcn/ui components, customization, theming, accessibility',
|
|
567
|
+
'tailwind-patterns': 'Tailwind CSS, responsive design, dark mode, animations',
|
|
568
|
+
'test-coverage': 'Playwright E2E, Vitest unit tests, coverage tracking',
|
|
569
|
+
'trpc-api': 'tRPC type-safe APIs, routers, procedures, middleware',
|
|
570
|
+
'typescript-strict': 'TypeScript strict mode, index access, null checks, generics',
|
|
571
|
+
'ui-ux-audit': 'UI/UX audits, competitor research, WCAG 2.1, responsiveness',
|
|
572
|
+
'zod-validation': 'Zod schemas, input validation, type inference, error handling'
|
|
573
|
+
};
|
|
574
|
+
|
|
122
575
|
const WORKFLOWS: Record<string, string[]> = {
|
|
123
|
-
'feature': ['analyzer', 'research', 'ui-ux-reviewer', 'documenter', 'tester', 'security-auditor', 'quality-checker', 'final-validator', 'domain-updater', 'commit-manager'],
|
|
124
|
-
'fix': ['
|
|
125
|
-
'refactor': ['analyzer', 'tester', 'quality-checker', 'final-validator', 'domain-updater', 'commit-manager'],
|
|
576
|
+
'feature': ['analyzer', 'research-web', 'ui-ux-reviewer', 'documenter', 'tester', 'security-auditor', 'quality-checker', 'final-validator', 'domain-updater', 'commit-manager'],
|
|
577
|
+
'fix': ['debugger', 'analyzer', 'tester', 'security-auditor', 'quality-checker', 'final-validator', 'domain-updater', 'commit-manager'],
|
|
578
|
+
'refactor': ['analyzer', 'code-reviewer', 'tester', 'quality-checker', 'final-validator', 'domain-updater', 'commit-manager'],
|
|
126
579
|
'config': ['quality-checker', 'domain-updater', 'commit-manager']
|
|
127
580
|
};
|
|
128
581
|
|
|
@@ -148,9 +601,9 @@ function loadWorkflowState(): WorkflowState | null {
|
|
|
148
601
|
function detectTaskType(prompt: string): string {
|
|
149
602
|
const promptLower = prompt.toLowerCase();
|
|
150
603
|
|
|
151
|
-
if (['bug', 'fix', 'error', 'broken', 'not working', 'issue'].some(w => promptLower.includes(w))) {
|
|
604
|
+
if (['bug', 'fix', 'error', 'broken', 'not working', 'issue', 'debug'].some(w => promptLower.includes(w))) {
|
|
152
605
|
return 'fix';
|
|
153
|
-
} else if (['refactor', 'restructure', 'reorganize', 'clean up'].some(w => promptLower.includes(w))) {
|
|
606
|
+
} else if (['refactor', 'restructure', 'reorganize', 'clean up', 'improve'].some(w => promptLower.includes(w))) {
|
|
154
607
|
return 'refactor';
|
|
155
608
|
} else if (['config', 'setting', 'env', 'package.json', 'tsconfig'].some(w => promptLower.includes(w))) {
|
|
156
609
|
return 'config';
|
|
@@ -158,38 +611,48 @@ function detectTaskType(prompt: string): string {
|
|
|
158
611
|
return 'feature';
|
|
159
612
|
}
|
|
160
613
|
|
|
161
|
-
function
|
|
614
|
+
function detectBestAgents(prompt: string): Array<[string, string, string]> {
|
|
162
615
|
const promptLower = prompt.toLowerCase();
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
if (promptLower.includes(trigger)) {
|
|
173
|
-
matches.push([agentName, agentInfo.priority, trigger]);
|
|
616
|
+
const matches: Array<[string, string, string]> = [];
|
|
617
|
+
|
|
618
|
+
for (const [category, info] of Object.entries(AGENT_CATEGORIES)) {
|
|
619
|
+
for (const [agentName, agentInfo] of Object.entries(info.agents)) {
|
|
620
|
+
for (const trigger of agentInfo.triggers) {
|
|
621
|
+
if (promptLower.includes(trigger)) {
|
|
622
|
+
matches.push([category, agentName, `Matched '${trigger}'`]);
|
|
623
|
+
break;
|
|
624
|
+
}
|
|
174
625
|
}
|
|
175
626
|
}
|
|
176
627
|
}
|
|
177
628
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
return [
|
|
629
|
+
matches.sort((a, b) => a[0].localeCompare(b[0]));
|
|
630
|
+
|
|
631
|
+
if (matches.length === 0) {
|
|
632
|
+
return [['01-orchestration', 'orchestrator', 'No specific trigger - orchestrator will analyze']];
|
|
182
633
|
}
|
|
183
634
|
|
|
184
|
-
return
|
|
635
|
+
return matches.slice(0, 3);
|
|
185
636
|
}
|
|
186
637
|
|
|
187
|
-
function
|
|
188
|
-
const
|
|
189
|
-
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
638
|
+
function formatAgentCategories(): string {
|
|
639
|
+
const lines: string[] = [];
|
|
640
|
+
for (const [category, info] of Object.entries(AGENT_CATEGORIES).sort()) {
|
|
641
|
+
const agentCount = Object.keys(info.agents).length;
|
|
642
|
+
const vetoAgents = Object.entries(info.agents)
|
|
643
|
+
.filter(([, a]) => a.can_veto)
|
|
644
|
+
.map(([n]) => n);
|
|
645
|
+
const vetoStr = vetoAgents.length > 0 ? ` [VETO: ${vetoAgents.join(', ')}]` : '';
|
|
646
|
+
lines.push(` ${category}: ${info.description} (${agentCount} agents)${vetoStr}`);
|
|
647
|
+
}
|
|
648
|
+
return lines.join('\n');
|
|
649
|
+
}
|
|
650
|
+
|
|
651
|
+
function formatSkills(): string {
|
|
652
|
+
return Object.entries(SKILLS)
|
|
653
|
+
.sort()
|
|
654
|
+
.map(([name, desc]) => ` ${name}: ${desc}`)
|
|
655
|
+
.join('\n');
|
|
193
656
|
}
|
|
194
657
|
|
|
195
658
|
function formatWorkflowStatus(state: WorkflowState | null): string {
|
|
@@ -240,10 +703,13 @@ async function main(): Promise<void> {
|
|
|
240
703
|
const prompt = hookInput.user_prompt || hookInput.prompt || '';
|
|
241
704
|
const state = loadWorkflowState();
|
|
242
705
|
const taskType = prompt ? detectTaskType(prompt) : 'unknown';
|
|
243
|
-
const
|
|
706
|
+
const bestAgents = prompt ? detectBestAgents(prompt) : [['01-orchestration', 'orchestrator', 'Default'] as [string, string, string]];
|
|
244
707
|
|
|
245
708
|
const isNewFeature = taskType === 'feature' || ['new', 'implement', 'create', 'add'].some(w => prompt.toLowerCase().includes(w));
|
|
246
709
|
const isUiTask = ['ui', 'component', 'page', 'design', 'layout', 'mobile', 'desktop', 'tablet'].some(w => prompt.toLowerCase().includes(w));
|
|
710
|
+
const isDebugTask = ['bug', 'error', 'broken', 'not working', 'debug', 'fix'].some(w => prompt.toLowerCase().includes(w));
|
|
711
|
+
|
|
712
|
+
const recommendedStr = bestAgents.map(([cat, agent, reason], i) => ` ${i + 1}. ${cat}/${agent} - ${reason}`).join('\n');
|
|
247
713
|
|
|
248
714
|
const output = `
|
|
249
715
|
================================================================================
|
|
@@ -253,6 +719,7 @@ ${STRICT_WORKFLOW}
|
|
|
253
719
|
|
|
254
720
|
${isNewFeature ? '⚠️ NEW FEATURE DETECTED - RESEARCH AGENT IS MANDATORY!' : ''}
|
|
255
721
|
${isUiTask ? '⚠️ UI TASK DETECTED - SEPARATE UIs FOR MOBILE/TABLET/DESKTOP REQUIRED!' : ''}
|
|
722
|
+
${isDebugTask ? '🐛 DEBUG TASK DETECTED - Use debugger or type-error-resolver agents' : ''}
|
|
256
723
|
|
|
257
724
|
================================================================================
|
|
258
725
|
STEP 1: CREATE DETAILED TODO LIST (MANDATORY)
|
|
@@ -262,19 +729,30 @@ BEFORE doing anything, you MUST use TodoWrite to create a detailed todo list.
|
|
|
262
729
|
Break down the user's prompt into specific, actionable items.
|
|
263
730
|
|
|
264
731
|
================================================================================
|
|
265
|
-
|
|
266
|
-
|
|
732
|
+
AGENT SYSTEM: 82 Specialized Agents in 14 Categories
|
|
733
|
+
================================================================================
|
|
734
|
+
|
|
735
|
+
CATEGORIES:
|
|
736
|
+
${formatAgentCategories()}
|
|
267
737
|
|
|
268
738
|
TASK ANALYSIS:
|
|
269
739
|
Detected type: ${taskType}
|
|
270
|
-
Recommended
|
|
271
|
-
|
|
740
|
+
Recommended agents:
|
|
741
|
+
${recommendedStr}
|
|
272
742
|
Research required: ${isNewFeature ? 'YES (MANDATORY)' : 'Optional'}
|
|
273
743
|
Separate UIs required: ${isUiTask ? 'YES (MANDATORY)' : 'N/A'}
|
|
274
744
|
Workflow sequence: ${(WORKFLOWS[taskType] || WORKFLOWS['feature']).join(' -> ')}
|
|
275
745
|
|
|
276
746
|
${formatWorkflowStatus(state)}
|
|
277
747
|
|
|
748
|
+
================================================================================
|
|
749
|
+
SKILL SYSTEM: 22 Skills Auto-loaded by Agents
|
|
750
|
+
================================================================================
|
|
751
|
+
|
|
752
|
+
${formatSkills()}
|
|
753
|
+
|
|
754
|
+
Skills are auto-loaded when an agent starts. Agents don't inherit parent skills.
|
|
755
|
+
|
|
278
756
|
================================================================================
|
|
279
757
|
AGENT INVOCATION (VIA TASK TOOL ONLY)
|
|
280
758
|
================================================================================
|
|
@@ -282,6 +760,10 @@ AGENT INVOCATION (VIA TASK TOOL ONLY)
|
|
|
282
760
|
You MUST use the Task tool with subagent_type to invoke agents.
|
|
283
761
|
DO NOT execute agent logic manually - INVOKE the agent properly.
|
|
284
762
|
|
|
763
|
+
Example:
|
|
764
|
+
Task(subagent_type="debugger", prompt="Fix the TypeError in user.ts")
|
|
765
|
+
Task(subagent_type="playwright-e2e", prompt="Create E2E tests for login")
|
|
766
|
+
|
|
285
767
|
================================================================================
|
|
286
768
|
`;
|
|
287
769
|
|