@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.
Files changed (43) hide show
  1. package/AGENTS.md +4 -5
  2. package/README.md +1 -1
  3. package/dist/data/catalog/hooks.ts +1 -2
  4. package/dist/data/catalog/lint.ts +7 -21
  5. package/dist/data/catalog/packs.ts +262 -20
  6. package/dist/data/catalog/skills.ts +352 -38
  7. package/dist/data/scripts/sync-subagents.mjs +11 -4
  8. package/dist/data/subagents/manifest.mjs +15 -49
  9. package/dist/index.js +14295 -3440
  10. package/dist/skills/agnostic/debug/debugging-phase/SKILL.md +87 -0
  11. package/dist/skills/agnostic/docs/docs-ingest-phase/SKILL.md +87 -0
  12. package/dist/skills/agnostic/docs/docs-ingest-phase/agents/openai.yaml +4 -0
  13. package/dist/skills/agnostic/docs/{docs-maintenance → docs-ingest-phase}/references/concept-pages.md +1 -1
  14. package/dist/skills/agnostic/docs/{docs-maintenance → docs-ingest-phase}/references/flow-pages.md +1 -1
  15. package/dist/skills/agnostic/docs/docs-ingest-phase/references/fumadocs-routing.md +88 -0
  16. package/dist/skills/agnostic/docs/docs-ingest-phase/references/repo-docs.md +38 -0
  17. package/dist/skills/agnostic/docs/docs-ingest-phase/references/wiki-ingest.md +131 -0
  18. package/dist/skills/agnostic/planning/create-plan/SKILL.md +11 -9
  19. package/dist/skills/agnostic/planning/create-spec/SKILL.md +20 -18
  20. package/dist/skills/agnostic/planning/delivery-phase/SKILL.md +82 -0
  21. package/dist/skills/agnostic/planning/goalify/EXAMPLES.md +72 -0
  22. package/dist/skills/agnostic/planning/goalify/SKILL.md +97 -0
  23. package/dist/skills/agnostic/planning/implement-spec/SKILL.md +7 -9
  24. package/dist/skills/agnostic/planning/implement-spec/assets/IMPLEMENTATION-NOTES-TEMPLATE.md +6 -0
  25. package/dist/skills/agnostic/planning/implement-spec/references/lifecycle.md +23 -2
  26. package/dist/skills/agnostic/planning/implement-spec/references/parallel-orchestration.md +0 -1
  27. package/dist/skills/agnostic/planning/implement-spec/references/parallel-worker-brief.md +0 -3
  28. package/dist/skills/agnostic/planning/implement-spec/references/parallel.md +5 -7
  29. package/dist/skills/agnostic/planning/resolve-debt-phase/SKILL.md +87 -0
  30. package/dist/skills/agnostic/requirements/requirements-grill/SKILL.md +4 -3
  31. package/dist/skills/agnostic/requirements/requirements-grill/references/artifact-output.md +56 -2
  32. package/dist/skills/agnostic/requirements/requirements-grill/references/grilling-flow.md +16 -4
  33. package/dist/skills/agnostic/requirements/requirements-grill/references/wiki-output.md +6 -2
  34. package/dist/skills/agnostic/requirements/requirements-phase/SKILL.md +67 -0
  35. package/dist/skills/agnostic/research/review-phase/SKILL.md +99 -0
  36. package/package.json +16 -7
  37. package/dist/data/hooks/format-edited-file.py +0 -157
  38. package/dist/skills/agnostic/docs/docs-maintenance/SKILL.md +0 -193
  39. package/dist/skills/agnostic/docs/docs-maintenance/agents/openai.yaml +0 -4
  40. package/dist/skills/agnostic/planning/implement-spec/references/parallel-reasoning.md +0 -19
  41. package/docs/README.md +0 -29
  42. package/docs/reference/dp-requirements.md +0 -225
  43. 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
- { id: "agent-browser", sourceDirectory: "skills/agnostic/frontend/agent-browser", tier: "framework", language: null, framework: "browser-automation", requiresTools: ["agent-browser"] },
16
- { id: "backend-domain-structure", sourceDirectory: "skills/agnostic/backend/backend-domain-structure", tier: "agnostic", language: null, framework: null, requiresTools: [] },
17
- { id: "backend-recoverable-actions", sourceDirectory: "skills/agnostic/backend/backend-recoverable-actions", tier: "agnostic", language: null, framework: null, requiresTools: [] },
18
- { id: "logging-best-practices", sourceDirectory: "skills/agnostic/backend/logging-best-practices", tier: "agnostic", language: null, framework: null, requiresTools: [] },
19
- { id: "better-auth-best-practices", sourceDirectory: "skills/frameworks/better-auth/better-auth-best-practices", tier: "framework", language: "typescript", framework: "better-auth", requiresTools: [] },
20
- { id: "create-plan", sourceDirectory: "skills/agnostic/planning/create-plan", tier: "agnostic", language: null, framework: null, requiresTools: [] },
21
- { id: "create-spec", sourceDirectory: "skills/agnostic/planning/create-spec", tier: "agnostic", language: null, framework: null, requiresTools: [] },
22
- { id: "debug-agent", sourceDirectory: "skills/agnostic/debug/debug-agent", tier: "agnostic", language: null, framework: null, requiresTools: ["debug-agent"] },
23
- { id: "docs-maintenance", sourceDirectory: "skills/agnostic/docs/docs-maintenance", tier: "agnostic", language: null, framework: null, requiresTools: [] },
24
- { id: "effect-authoring", sourceDirectory: "skills/frameworks/effect/effect-authoring", tier: "framework", language: "typescript", framework: "effect", requiresTools: ["opensrc"] },
25
- { id: "effect-backend-structure", sourceDirectory: "skills/frameworks/effect/effect-backend-structure", tier: "framework", language: "typescript", framework: "effect", requiresTools: ["opensrc"] },
26
- { id: "effect-best-practices", sourceDirectory: "skills/frameworks/effect/effect-best-practices", tier: "framework", language: "typescript", framework: "effect", requiresTools: [] },
27
- { id: "effect-recoverable-actions", sourceDirectory: "skills/frameworks/effect/effect-recoverable-actions", tier: "framework", language: "typescript", framework: "effect", requiresTools: ["opensrc"] },
28
- { id: "elysiajs", sourceDirectory: "skills/frameworks/elysia/elysiajs", tier: "framework", language: "typescript", framework: "elysiajs", requiresTools: [] },
29
- { id: "design-taste-frontend", sourceDirectory: "skills/agnostic/frontend/design-taste-frontend", tier: "agnostic", language: null, framework: null, requiresTools: [] },
30
- { id: "frontend-domain-structure", sourceDirectory: "skills/agnostic/frontend/frontend-domain-structure", tier: "agnostic", language: null, framework: null, requiresTools: [] },
31
- { id: "grill-me", sourceDirectory: "skills/agnostic/planning/grill-me", tier: "agnostic", language: null, framework: null, requiresTools: [] },
32
- { id: "improve-codebase-architecture", sourceDirectory: "skills/agnostic/research/improve-codebase-architecture", tier: "agnostic", language: null, framework: null, requiresTools: [] },
33
- { id: "implement-spec", sourceDirectory: "skills/agnostic/planning/implement-spec", tier: "agnostic", language: null, framework: null, requiresTools: [] },
34
- { id: "next-best-practices", sourceDirectory: "skills/frameworks/nextjs/next-best-practices", tier: "framework", language: "typescript", framework: "nextjs", requiresTools: [] },
35
- { id: "next-cache-components", sourceDirectory: "skills/frameworks/nextjs/next-cache-components", tier: "framework", language: "typescript", framework: "nextjs", requiresTools: [] },
36
- { id: "parallel-research", sourceDirectory: "skills/agnostic/research/parallel-research", tier: "agnostic", language: null, framework: null, requiresTools: [] },
37
- { id: "async-python-patterns", sourceDirectory: "skills/languages/python/async-python-patterns", tier: "language", language: "python", framework: null, requiresTools: [] },
38
- { id: "python-code-style", sourceDirectory: "skills/languages/python/python-code-style", tier: "language", language: "python", framework: null, requiresTools: [] },
39
- { id: "python-design-patterns", sourceDirectory: "skills/languages/python/python-design-patterns", tier: "language", language: "python", framework: null, requiresTools: [] },
40
- { id: "python-project-structure", sourceDirectory: "skills/languages/python/python-project-structure", tier: "language", language: "python", framework: null, requiresTools: [] },
41
- { id: "python-testing-patterns", sourceDirectory: "skills/languages/python/python-testing-patterns", tier: "language", language: "python", framework: null, requiresTools: [] },
42
- { id: "quality-types", sourceDirectory: "skills/languages/typescript/quality-types", tier: "language", language: "typescript", framework: null, requiresTools: [] },
43
- { id: "async-react-patterns", sourceDirectory: "skills/frameworks/react/async-react-patterns", tier: "framework", language: "typescript", framework: "react", requiresTools: [] },
44
- { id: "requirements-grill", sourceDirectory: "skills/agnostic/requirements/requirements-grill", tier: "agnostic", language: null, framework: null, requiresTools: [] },
45
- { id: "simplify", sourceDirectory: "skills/agnostic/quality/simplify", tier: "agnostic", language: null, framework: null, requiresTools: [] },
46
- { id: "swarm-planner", sourceDirectory: "skills/agnostic/subagents/swarm-planner", tier: "agnostic", language: null, framework: null, requiresTools: [] },
47
- { id: "tanstack-query", sourceDirectory: "skills/frameworks/tanstack-query/tanstack-query", tier: "framework", language: "typescript", framework: "tanstack-query", requiresTools: ["opensrc"] },
48
- { id: "tdd", sourceDirectory: "skills/agnostic/quality/tdd", tier: "agnostic", language: null, framework: null, requiresTools: [] },
49
- { id: "turborepo", sourceDirectory: "skills/frameworks/turborepo/turborepo", tier: "framework", language: null, framework: "turborepo", requiresTools: [] },
50
- { id: "vercel-composition-patterns", sourceDirectory: "skills/frameworks/react/vercel-composition-patterns", tier: "framework", language: "typescript", framework: "react", requiresTools: [] },
51
- { id: "vercel-react-best-practices", sourceDirectory: "skills/frameworks/react/vercel-react-best-practices", tier: "framework", language: "typescript", framework: "react", requiresTools: [] },
52
- { id: "write-backlog", sourceDirectory: "skills/agnostic/requirements/write-backlog", tier: "agnostic", language: null, framework: null, requiresTools: [] },
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: 'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/require-tests-for-pr.mjs claude',
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: 'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/require-tests-for-pr.mjs claude',
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: 'node "$CLAUDE_PROJECT_DIR"/.claude/hooks/format-edited-file.mjs claude',
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(claudeSettingsPath, encodeJson(buildClaudeSettingsConfig(availableHooks)), "utf8");
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
- "Better Auth conventions and security-sensitive authentication behavior.",
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-maintenance"],
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-maintenance",
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-maintenance", "simplify"],
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.",