@punks/cli 1.0.6 → 2.0.0-beta.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/AGENTS.md +4 -5
- package/README.md +1 -1
- package/dist/data/catalog/hooks.ts +1 -2
- package/dist/data/catalog/lint.ts +7 -21
- package/dist/data/catalog/packs.ts +262 -20
- package/dist/data/catalog/skills.ts +352 -38
- package/dist/data/scripts/sync-subagents.mjs +11 -4
- package/dist/data/subagents/manifest.mjs +15 -49
- package/dist/index.js +14295 -3440
- package/dist/skills/agnostic/debug/debugging-phase/SKILL.md +87 -0
- package/dist/skills/agnostic/docs/docs-ingest-phase/SKILL.md +87 -0
- package/dist/skills/agnostic/docs/docs-ingest-phase/agents/openai.yaml +4 -0
- package/dist/skills/agnostic/docs/{docs-maintenance → docs-ingest-phase}/references/concept-pages.md +1 -1
- package/dist/skills/agnostic/docs/{docs-maintenance → docs-ingest-phase}/references/flow-pages.md +1 -1
- package/dist/skills/agnostic/docs/docs-ingest-phase/references/fumadocs-routing.md +88 -0
- package/dist/skills/agnostic/docs/docs-ingest-phase/references/repo-docs.md +38 -0
- package/dist/skills/agnostic/docs/docs-ingest-phase/references/wiki-ingest.md +131 -0
- package/dist/skills/agnostic/planning/create-plan/SKILL.md +11 -9
- package/dist/skills/agnostic/planning/create-spec/SKILL.md +20 -18
- package/dist/skills/agnostic/planning/delivery-phase/SKILL.md +82 -0
- package/dist/skills/agnostic/planning/goalify/EXAMPLES.md +72 -0
- package/dist/skills/agnostic/planning/goalify/SKILL.md +97 -0
- package/dist/skills/agnostic/planning/implement-spec/SKILL.md +7 -9
- package/dist/skills/agnostic/planning/implement-spec/assets/IMPLEMENTATION-NOTES-TEMPLATE.md +6 -0
- package/dist/skills/agnostic/planning/implement-spec/references/lifecycle.md +23 -2
- package/dist/skills/agnostic/planning/implement-spec/references/parallel-orchestration.md +0 -1
- package/dist/skills/agnostic/planning/implement-spec/references/parallel-worker-brief.md +0 -3
- package/dist/skills/agnostic/planning/implement-spec/references/parallel.md +5 -7
- package/dist/skills/agnostic/planning/resolve-debt-phase/SKILL.md +87 -0
- package/dist/skills/agnostic/requirements/requirements-grill/SKILL.md +4 -3
- package/dist/skills/agnostic/requirements/requirements-grill/references/artifact-output.md +56 -2
- package/dist/skills/agnostic/requirements/requirements-grill/references/grilling-flow.md +16 -4
- package/dist/skills/agnostic/requirements/requirements-grill/references/wiki-output.md +6 -2
- package/dist/skills/agnostic/requirements/requirements-phase/SKILL.md +67 -0
- package/dist/skills/agnostic/research/review-phase/SKILL.md +99 -0
- package/package.json +16 -7
- package/dist/data/hooks/format-edited-file.py +0 -157
- package/dist/skills/agnostic/docs/docs-maintenance/SKILL.md +0 -193
- package/dist/skills/agnostic/docs/docs-maintenance/agents/openai.yaml +0 -4
- package/dist/skills/agnostic/planning/implement-spec/references/parallel-reasoning.md +0 -19
- package/docs/README.md +0 -29
- package/docs/reference/dp-requirements.md +0 -225
- package/docs/runbooks/dp-cli-scaffolding.md +0 -261
|
@@ -12,44 +12,358 @@ export interface SkillCatalogEntry {
|
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
export const skillCatalog = [
|
|
15
|
-
{
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
{
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
{
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
{
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
15
|
+
{
|
|
16
|
+
id: "agent-browser",
|
|
17
|
+
sourceDirectory: "skills/agnostic/frontend/agent-browser",
|
|
18
|
+
tier: "framework",
|
|
19
|
+
language: null,
|
|
20
|
+
framework: "browser-automation",
|
|
21
|
+
requiresTools: ["agent-browser"],
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
id: "backend-domain-structure",
|
|
25
|
+
sourceDirectory: "skills/agnostic/backend/backend-domain-structure",
|
|
26
|
+
tier: "agnostic",
|
|
27
|
+
language: null,
|
|
28
|
+
framework: null,
|
|
29
|
+
requiresTools: [],
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
id: "backend-recoverable-actions",
|
|
33
|
+
sourceDirectory: "skills/agnostic/backend/backend-recoverable-actions",
|
|
34
|
+
tier: "agnostic",
|
|
35
|
+
language: null,
|
|
36
|
+
framework: null,
|
|
37
|
+
requiresTools: [],
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
id: "logging-best-practices",
|
|
41
|
+
sourceDirectory: "skills/agnostic/backend/logging-best-practices",
|
|
42
|
+
tier: "agnostic",
|
|
43
|
+
language: null,
|
|
44
|
+
framework: null,
|
|
45
|
+
requiresTools: [],
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
id: "better-auth-best-practices",
|
|
49
|
+
sourceDirectory: "skills/frameworks/better-auth/better-auth-best-practices",
|
|
50
|
+
tier: "framework",
|
|
51
|
+
language: "typescript",
|
|
52
|
+
framework: "better-auth",
|
|
53
|
+
requiresTools: [],
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: "create-plan",
|
|
57
|
+
sourceDirectory: "skills/agnostic/planning/create-plan",
|
|
58
|
+
tier: "agnostic",
|
|
59
|
+
language: null,
|
|
60
|
+
framework: null,
|
|
61
|
+
requiresTools: [],
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
id: "create-spec",
|
|
65
|
+
sourceDirectory: "skills/agnostic/planning/create-spec",
|
|
66
|
+
tier: "agnostic",
|
|
67
|
+
language: null,
|
|
68
|
+
framework: null,
|
|
69
|
+
requiresTools: [],
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
id: "delivery-phase",
|
|
73
|
+
sourceDirectory: "skills/agnostic/planning/delivery-phase",
|
|
74
|
+
tier: "agnostic",
|
|
75
|
+
language: null,
|
|
76
|
+
framework: null,
|
|
77
|
+
requiresTools: [],
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
id: "debug-agent",
|
|
81
|
+
sourceDirectory: "skills/agnostic/debug/debug-agent",
|
|
82
|
+
tier: "agnostic",
|
|
83
|
+
language: null,
|
|
84
|
+
framework: null,
|
|
85
|
+
requiresTools: ["debug-agent"],
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
id: "debugging-phase",
|
|
89
|
+
sourceDirectory: "skills/agnostic/debug/debugging-phase",
|
|
90
|
+
tier: "agnostic",
|
|
91
|
+
language: null,
|
|
92
|
+
framework: null,
|
|
93
|
+
requiresTools: ["debug-agent"],
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
id: "docs-ingest-phase",
|
|
97
|
+
sourceDirectory: "skills/agnostic/docs/docs-ingest-phase",
|
|
98
|
+
tier: "agnostic",
|
|
99
|
+
language: null,
|
|
100
|
+
framework: null,
|
|
101
|
+
requiresTools: [],
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
id: "effect-authoring",
|
|
105
|
+
sourceDirectory: "skills/frameworks/effect/effect-authoring",
|
|
106
|
+
tier: "framework",
|
|
107
|
+
language: "typescript",
|
|
108
|
+
framework: "effect",
|
|
109
|
+
requiresTools: ["opensrc"],
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
id: "effect-backend-structure",
|
|
113
|
+
sourceDirectory: "skills/frameworks/effect/effect-backend-structure",
|
|
114
|
+
tier: "framework",
|
|
115
|
+
language: "typescript",
|
|
116
|
+
framework: "effect",
|
|
117
|
+
requiresTools: ["opensrc"],
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
id: "effect-best-practices",
|
|
121
|
+
sourceDirectory: "skills/frameworks/effect/effect-best-practices",
|
|
122
|
+
tier: "framework",
|
|
123
|
+
language: "typescript",
|
|
124
|
+
framework: "effect",
|
|
125
|
+
requiresTools: [],
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
id: "effect-recoverable-actions",
|
|
129
|
+
sourceDirectory: "skills/frameworks/effect/effect-recoverable-actions",
|
|
130
|
+
tier: "framework",
|
|
131
|
+
language: "typescript",
|
|
132
|
+
framework: "effect",
|
|
133
|
+
requiresTools: ["opensrc"],
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: "elysiajs",
|
|
137
|
+
sourceDirectory: "skills/frameworks/elysia/elysiajs",
|
|
138
|
+
tier: "framework",
|
|
139
|
+
language: "typescript",
|
|
140
|
+
framework: "elysiajs",
|
|
141
|
+
requiresTools: [],
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
id: "design-taste-frontend",
|
|
145
|
+
sourceDirectory: "skills/agnostic/frontend/design-taste-frontend",
|
|
146
|
+
tier: "agnostic",
|
|
147
|
+
language: null,
|
|
148
|
+
framework: null,
|
|
149
|
+
requiresTools: [],
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
id: "frontend-domain-structure",
|
|
153
|
+
sourceDirectory: "skills/agnostic/frontend/frontend-domain-structure",
|
|
154
|
+
tier: "agnostic",
|
|
155
|
+
language: null,
|
|
156
|
+
framework: null,
|
|
157
|
+
requiresTools: [],
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
id: "goalify",
|
|
161
|
+
sourceDirectory: "skills/agnostic/planning/goalify",
|
|
162
|
+
tier: "agnostic",
|
|
163
|
+
language: null,
|
|
164
|
+
framework: null,
|
|
165
|
+
requiresTools: [],
|
|
166
|
+
},
|
|
167
|
+
{
|
|
168
|
+
id: "grill-me",
|
|
169
|
+
sourceDirectory: "skills/agnostic/planning/grill-me",
|
|
170
|
+
tier: "agnostic",
|
|
171
|
+
language: null,
|
|
172
|
+
framework: null,
|
|
173
|
+
requiresTools: [],
|
|
174
|
+
},
|
|
175
|
+
{
|
|
176
|
+
id: "improve-codebase-architecture",
|
|
177
|
+
sourceDirectory: "skills/agnostic/research/improve-codebase-architecture",
|
|
178
|
+
tier: "agnostic",
|
|
179
|
+
language: null,
|
|
180
|
+
framework: null,
|
|
181
|
+
requiresTools: [],
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
id: "implement-spec",
|
|
185
|
+
sourceDirectory: "skills/agnostic/planning/implement-spec",
|
|
186
|
+
tier: "agnostic",
|
|
187
|
+
language: null,
|
|
188
|
+
framework: null,
|
|
189
|
+
requiresTools: [],
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
id: "next-best-practices",
|
|
193
|
+
sourceDirectory: "skills/frameworks/nextjs/next-best-practices",
|
|
194
|
+
tier: "framework",
|
|
195
|
+
language: "typescript",
|
|
196
|
+
framework: "nextjs",
|
|
197
|
+
requiresTools: [],
|
|
198
|
+
},
|
|
199
|
+
{
|
|
200
|
+
id: "next-cache-components",
|
|
201
|
+
sourceDirectory: "skills/frameworks/nextjs/next-cache-components",
|
|
202
|
+
tier: "framework",
|
|
203
|
+
language: "typescript",
|
|
204
|
+
framework: "nextjs",
|
|
205
|
+
requiresTools: [],
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
id: "parallel-research",
|
|
209
|
+
sourceDirectory: "skills/agnostic/research/parallel-research",
|
|
210
|
+
tier: "agnostic",
|
|
211
|
+
language: null,
|
|
212
|
+
framework: null,
|
|
213
|
+
requiresTools: [],
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
id: "async-python-patterns",
|
|
217
|
+
sourceDirectory: "skills/languages/python/async-python-patterns",
|
|
218
|
+
tier: "language",
|
|
219
|
+
language: "python",
|
|
220
|
+
framework: null,
|
|
221
|
+
requiresTools: [],
|
|
222
|
+
},
|
|
223
|
+
{
|
|
224
|
+
id: "python-code-style",
|
|
225
|
+
sourceDirectory: "skills/languages/python/python-code-style",
|
|
226
|
+
tier: "language",
|
|
227
|
+
language: "python",
|
|
228
|
+
framework: null,
|
|
229
|
+
requiresTools: [],
|
|
230
|
+
},
|
|
231
|
+
{
|
|
232
|
+
id: "python-design-patterns",
|
|
233
|
+
sourceDirectory: "skills/languages/python/python-design-patterns",
|
|
234
|
+
tier: "language",
|
|
235
|
+
language: "python",
|
|
236
|
+
framework: null,
|
|
237
|
+
requiresTools: [],
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
id: "python-project-structure",
|
|
241
|
+
sourceDirectory: "skills/languages/python/python-project-structure",
|
|
242
|
+
tier: "language",
|
|
243
|
+
language: "python",
|
|
244
|
+
framework: null,
|
|
245
|
+
requiresTools: [],
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
id: "python-testing-patterns",
|
|
249
|
+
sourceDirectory: "skills/languages/python/python-testing-patterns",
|
|
250
|
+
tier: "language",
|
|
251
|
+
language: "python",
|
|
252
|
+
framework: null,
|
|
253
|
+
requiresTools: [],
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
id: "quality-types",
|
|
257
|
+
sourceDirectory: "skills/languages/typescript/quality-types",
|
|
258
|
+
tier: "language",
|
|
259
|
+
language: "typescript",
|
|
260
|
+
framework: null,
|
|
261
|
+
requiresTools: [],
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
id: "async-react-patterns",
|
|
265
|
+
sourceDirectory: "skills/frameworks/react/async-react-patterns",
|
|
266
|
+
tier: "framework",
|
|
267
|
+
language: "typescript",
|
|
268
|
+
framework: "react",
|
|
269
|
+
requiresTools: [],
|
|
270
|
+
},
|
|
271
|
+
{
|
|
272
|
+
id: "requirements-grill",
|
|
273
|
+
sourceDirectory: "skills/agnostic/requirements/requirements-grill",
|
|
274
|
+
tier: "agnostic",
|
|
275
|
+
language: null,
|
|
276
|
+
framework: null,
|
|
277
|
+
requiresTools: [],
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
id: "requirements-phase",
|
|
281
|
+
sourceDirectory: "skills/agnostic/requirements/requirements-phase",
|
|
282
|
+
tier: "agnostic",
|
|
283
|
+
language: null,
|
|
284
|
+
framework: null,
|
|
285
|
+
requiresTools: [],
|
|
286
|
+
},
|
|
287
|
+
{
|
|
288
|
+
id: "resolve-debt-phase",
|
|
289
|
+
sourceDirectory: "skills/agnostic/planning/resolve-debt-phase",
|
|
290
|
+
tier: "agnostic",
|
|
291
|
+
language: null,
|
|
292
|
+
framework: null,
|
|
293
|
+
requiresTools: [],
|
|
294
|
+
},
|
|
295
|
+
{
|
|
296
|
+
id: "review-phase",
|
|
297
|
+
sourceDirectory: "skills/agnostic/research/review-phase",
|
|
298
|
+
tier: "agnostic",
|
|
299
|
+
language: null,
|
|
300
|
+
framework: null,
|
|
301
|
+
requiresTools: [],
|
|
302
|
+
},
|
|
303
|
+
{
|
|
304
|
+
id: "simplify",
|
|
305
|
+
sourceDirectory: "skills/agnostic/quality/simplify",
|
|
306
|
+
tier: "agnostic",
|
|
307
|
+
language: null,
|
|
308
|
+
framework: null,
|
|
309
|
+
requiresTools: [],
|
|
310
|
+
},
|
|
311
|
+
{
|
|
312
|
+
id: "swarm-planner",
|
|
313
|
+
sourceDirectory: "skills/agnostic/subagents/swarm-planner",
|
|
314
|
+
tier: "agnostic",
|
|
315
|
+
language: null,
|
|
316
|
+
framework: null,
|
|
317
|
+
requiresTools: [],
|
|
318
|
+
},
|
|
319
|
+
{
|
|
320
|
+
id: "tanstack-query",
|
|
321
|
+
sourceDirectory: "skills/frameworks/tanstack-query/tanstack-query",
|
|
322
|
+
tier: "framework",
|
|
323
|
+
language: "typescript",
|
|
324
|
+
framework: "tanstack-query",
|
|
325
|
+
requiresTools: ["opensrc"],
|
|
326
|
+
},
|
|
327
|
+
{
|
|
328
|
+
id: "tdd",
|
|
329
|
+
sourceDirectory: "skills/agnostic/quality/tdd",
|
|
330
|
+
tier: "agnostic",
|
|
331
|
+
language: null,
|
|
332
|
+
framework: null,
|
|
333
|
+
requiresTools: [],
|
|
334
|
+
},
|
|
335
|
+
{
|
|
336
|
+
id: "turborepo",
|
|
337
|
+
sourceDirectory: "skills/frameworks/turborepo/turborepo",
|
|
338
|
+
tier: "framework",
|
|
339
|
+
language: null,
|
|
340
|
+
framework: "turborepo",
|
|
341
|
+
requiresTools: [],
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
id: "vercel-composition-patterns",
|
|
345
|
+
sourceDirectory: "skills/frameworks/react/vercel-composition-patterns",
|
|
346
|
+
tier: "framework",
|
|
347
|
+
language: "typescript",
|
|
348
|
+
framework: "react",
|
|
349
|
+
requiresTools: [],
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
id: "vercel-react-best-practices",
|
|
353
|
+
sourceDirectory: "skills/frameworks/react/vercel-react-best-practices",
|
|
354
|
+
tier: "framework",
|
|
355
|
+
language: "typescript",
|
|
356
|
+
framework: "react",
|
|
357
|
+
requiresTools: [],
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
id: "write-backlog",
|
|
361
|
+
sourceDirectory: "skills/agnostic/requirements/write-backlog",
|
|
362
|
+
tier: "agnostic",
|
|
363
|
+
language: null,
|
|
364
|
+
framework: null,
|
|
365
|
+
requiresTools: [],
|
|
366
|
+
},
|
|
53
367
|
] as const satisfies ReadonlyArray<SkillCatalogEntry>;
|
|
54
368
|
|
|
55
369
|
export type SkillId = string;
|
|
@@ -109,7 +109,8 @@ function buildClaudeSettingsConfig({ hasFormatHook, hasTestHook }) {
|
|
|
109
109
|
hooks: [
|
|
110
110
|
{
|
|
111
111
|
type: "command",
|
|
112
|
-
command:
|
|
112
|
+
command:
|
|
113
|
+
'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/require-tests-for-pr.mjs claude',
|
|
113
114
|
timeout: 600,
|
|
114
115
|
},
|
|
115
116
|
],
|
|
@@ -119,7 +120,8 @@ function buildClaudeSettingsConfig({ hasFormatHook, hasTestHook }) {
|
|
|
119
120
|
hooks: [
|
|
120
121
|
{
|
|
121
122
|
type: "command",
|
|
122
|
-
command:
|
|
123
|
+
command:
|
|
124
|
+
'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/require-tests-for-pr.mjs claude',
|
|
123
125
|
timeout: 600,
|
|
124
126
|
},
|
|
125
127
|
],
|
|
@@ -135,7 +137,8 @@ function buildClaudeSettingsConfig({ hasFormatHook, hasTestHook }) {
|
|
|
135
137
|
hooks: [
|
|
136
138
|
{
|
|
137
139
|
type: "command",
|
|
138
|
-
command:
|
|
140
|
+
command:
|
|
141
|
+
'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/format-edited-file.mjs claude',
|
|
139
142
|
timeout: 30,
|
|
140
143
|
},
|
|
141
144
|
],
|
|
@@ -449,7 +452,11 @@ async function main() {
|
|
|
449
452
|
};
|
|
450
453
|
await writeFile(codexConfigPath, buildCodexAgentConfig(availableHooks), "utf8");
|
|
451
454
|
await rm(path.join(codexDir, "hooks.json"), { force: true });
|
|
452
|
-
await writeFile(
|
|
455
|
+
await writeFile(
|
|
456
|
+
claudeSettingsPath,
|
|
457
|
+
encodeJson(buildClaudeSettingsConfig(availableHooks)),
|
|
458
|
+
"utf8",
|
|
459
|
+
);
|
|
453
460
|
await writeFile(cursorHooksJsonPath, encodeJson(buildCursorHooksConfig(availableHooks)), "utf8");
|
|
454
461
|
await writeManagedFiles(claudeAgentsDir, "md", claudeFiles);
|
|
455
462
|
await writeManagedFiles(codexAgentsDir, "toml", codexFiles);
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
const capabilityPacks = {
|
|
2
2
|
"frontend-core": {
|
|
3
|
-
description:
|
|
4
|
-
"Core Next.js and React app structure guidance for product-facing frontend work.",
|
|
3
|
+
description: "Core Next.js and React app structure guidance for product-facing frontend work.",
|
|
5
4
|
skills: [
|
|
6
5
|
"next-best-practices",
|
|
7
6
|
"async-react-patterns",
|
|
@@ -10,13 +9,11 @@ const capabilityPacks = {
|
|
|
10
9
|
],
|
|
11
10
|
},
|
|
12
11
|
simplify: {
|
|
13
|
-
description:
|
|
14
|
-
"Simplify and refine recently modified code for clarity and consistency.",
|
|
12
|
+
description: "Simplify and refine recently modified code for clarity and consistency.",
|
|
15
13
|
skills: ["simplify"],
|
|
16
14
|
},
|
|
17
15
|
"frontend-ui": {
|
|
18
|
-
description:
|
|
19
|
-
"UI implementation, browser testing, visual quality, and composition patterns.",
|
|
16
|
+
description: "UI implementation, browser testing, visual quality, and composition patterns.",
|
|
20
17
|
skills: [
|
|
21
18
|
"agent-browser",
|
|
22
19
|
"frontend-design",
|
|
@@ -30,8 +27,7 @@ const capabilityPacks = {
|
|
|
30
27
|
skills: ["tanstack-query"],
|
|
31
28
|
},
|
|
32
29
|
"frontend-cache": {
|
|
33
|
-
description:
|
|
34
|
-
"Next.js cache components, PPR, cache tags, and related rendering/cache behavior.",
|
|
30
|
+
description: "Next.js cache components, PPR, cache tags, and related rendering/cache behavior.",
|
|
35
31
|
skills: ["next-cache-components"],
|
|
36
32
|
},
|
|
37
33
|
"server-core": {
|
|
@@ -42,25 +38,16 @@ const capabilityPacks = {
|
|
|
42
38
|
"api-core": {
|
|
43
39
|
description:
|
|
44
40
|
"Effect application logic, pre-write authoring guidance, service/layer patterns, and test-first backend domain work.",
|
|
45
|
-
skills: [
|
|
46
|
-
"effect-authoring",
|
|
47
|
-
"effect-best-practices",
|
|
48
|
-
"effect-recoverable-actions",
|
|
49
|
-
"tdd",
|
|
50
|
-
],
|
|
41
|
+
skills: ["effect-authoring", "effect-best-practices", "effect-recoverable-actions", "tdd"],
|
|
51
42
|
},
|
|
52
43
|
"auth-core": {
|
|
53
|
-
description:
|
|
54
|
-
|
|
55
|
-
skills: [
|
|
56
|
-
"better-auth-best-practices",
|
|
57
|
-
"better-auth-security-best-practices",
|
|
58
|
-
],
|
|
44
|
+
description: "Better Auth conventions and security-sensitive authentication behavior.",
|
|
45
|
+
skills: ["better-auth-best-practices", "better-auth-security-best-practices"],
|
|
59
46
|
},
|
|
60
47
|
"docs-core": {
|
|
61
48
|
description:
|
|
62
49
|
"Repo documentation maintenance, routing, and human-facing durable knowledge capture.",
|
|
63
|
-
skills: ["docs-
|
|
50
|
+
skills: ["docs-ingest-phase"],
|
|
64
51
|
},
|
|
65
52
|
"review-core": {
|
|
66
53
|
description:
|
|
@@ -78,8 +65,7 @@ const capabilityPacks = {
|
|
|
78
65
|
],
|
|
79
66
|
},
|
|
80
67
|
"python-async": {
|
|
81
|
-
description:
|
|
82
|
-
"Python asyncio, concurrent I/O, async API boundaries, and async test strategy.",
|
|
68
|
+
description: "Python asyncio, concurrent I/O, async API boundaries, and async test strategy.",
|
|
83
69
|
skills: [
|
|
84
70
|
"async-python-patterns",
|
|
85
71
|
"python-project-structure",
|
|
@@ -90,11 +76,7 @@ const capabilityPacks = {
|
|
|
90
76
|
"python-quality": {
|
|
91
77
|
description:
|
|
92
78
|
"Python pytest coverage, fixture design, style checks, and refactor-safe quality work.",
|
|
93
|
-
skills: [
|
|
94
|
-
"python-testing-patterns",
|
|
95
|
-
"python-code-style",
|
|
96
|
-
"python-design-patterns",
|
|
97
|
-
],
|
|
79
|
+
skills: ["python-testing-patterns", "python-code-style", "python-design-patterns"],
|
|
98
80
|
},
|
|
99
81
|
};
|
|
100
82
|
|
|
@@ -133,14 +115,14 @@ const agents = [
|
|
|
133
115
|
],
|
|
134
116
|
},
|
|
135
117
|
{
|
|
136
|
-
name: "docs-
|
|
118
|
+
name: "docs-ingest-phase",
|
|
137
119
|
description:
|
|
138
120
|
"Use for repo documentation work centered on docs updates, index maintenance, ADR routing, and keeping docs grounded in implemented reality.",
|
|
139
121
|
ownedPaths: ["docs/**"],
|
|
140
122
|
guidanceFiles: ["docs/AGENTS.md"],
|
|
141
123
|
activationInstructions: skillActivationInstructions,
|
|
142
124
|
packs: ["docs-core", "simplify"],
|
|
143
|
-
skills: ["docs-
|
|
125
|
+
skills: ["docs-ingest-phase", "simplify"],
|
|
144
126
|
boundaries: [
|
|
145
127
|
"Own documentation updates in docs/ and keep them human-facing and implementation-grounded.",
|
|
146
128
|
"If the task is mainly code implementation, tell the parent to use the relevant code specialist and only return for the docs follow-up.",
|
|
@@ -295,11 +277,7 @@ const agents = [
|
|
|
295
277
|
guidanceFiles: ["packages/auth/AGENTS.md"],
|
|
296
278
|
activationInstructions: skillActivationInstructions,
|
|
297
279
|
packs: ["auth-core", "simplify"],
|
|
298
|
-
skills: [
|
|
299
|
-
"better-auth-best-practices",
|
|
300
|
-
"better-auth-security-best-practices",
|
|
301
|
-
"simplify",
|
|
302
|
-
],
|
|
280
|
+
skills: ["better-auth-best-practices", "better-auth-security-best-practices", "simplify"],
|
|
303
281
|
boundaries: [
|
|
304
282
|
"Treat auth work as security-sensitive and stay inside packages/auth unless explicitly coordinating with another specialist.",
|
|
305
283
|
"If the task is mainly Effect application logic, tell the parent to use api-domain instead.",
|
|
@@ -342,14 +320,7 @@ const agents = [
|
|
|
342
320
|
name: "python-async",
|
|
343
321
|
description:
|
|
344
322
|
"Use for Python async work centered on asyncio, concurrent I/O, async APIs, background tasks, and async test coverage.",
|
|
345
|
-
ownedPaths: [
|
|
346
|
-
"src/**",
|
|
347
|
-
"packages/**",
|
|
348
|
-
"services/**",
|
|
349
|
-
"apps/**",
|
|
350
|
-
"tests/**",
|
|
351
|
-
"pyproject.toml",
|
|
352
|
-
],
|
|
323
|
+
ownedPaths: ["src/**", "packages/**", "services/**", "apps/**", "tests/**", "pyproject.toml"],
|
|
353
324
|
guidanceFiles: ["AGENTS.md"],
|
|
354
325
|
activationInstructions: skillActivationInstructions,
|
|
355
326
|
packs: ["python-async", "python-quality", "simplify"],
|
|
@@ -383,12 +354,7 @@ const agents = [
|
|
|
383
354
|
guidanceFiles: ["AGENTS.md"],
|
|
384
355
|
activationInstructions: skillActivationInstructions,
|
|
385
356
|
packs: ["python-quality", "simplify"],
|
|
386
|
-
skills: [
|
|
387
|
-
"python-testing-patterns",
|
|
388
|
-
"python-code-style",
|
|
389
|
-
"python-design-patterns",
|
|
390
|
-
"simplify",
|
|
391
|
-
],
|
|
357
|
+
skills: ["python-testing-patterns", "python-code-style", "python-design-patterns", "simplify"],
|
|
392
358
|
boundaries: [
|
|
393
359
|
"Own pytest structure, fixtures, parameterization, integration-test shape, and test readability.",
|
|
394
360
|
"Prefer tests that exercise real behavior over brittle mocks unless the boundary is genuinely external.",
|