@punks/cli 1.0.1 → 1.0.3

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 (31) hide show
  1. package/README.md +47 -4
  2. package/dist/data/AGENTS.md +0 -6
  3. package/dist/data/catalog/hooks.ts +26 -0
  4. package/dist/data/catalog/lint.ts +11 -26
  5. package/dist/data/catalog/packs.ts +5 -3
  6. package/dist/data/catalog/skills.ts +9 -1
  7. package/dist/data/catalog/tools.ts +13 -1
  8. package/dist/data/scripts/sync-subagents.mjs +163 -120
  9. package/dist/data/subagents/manifest.mjs +148 -0
  10. package/dist/index.js +2589 -1944
  11. package/dist/skills/agnostic/backend/logging-best-practices/SKILL.md +127 -0
  12. package/dist/skills/agnostic/backend/logging-best-practices/rules/context.md +157 -0
  13. package/dist/skills/agnostic/backend/logging-best-practices/rules/pitfalls.md +118 -0
  14. package/dist/skills/agnostic/backend/logging-best-practices/rules/structure.md +193 -0
  15. package/dist/skills/agnostic/backend/logging-best-practices/rules/wide-events.md +113 -0
  16. package/dist/skills/agnostic/cli/dp-cli/SKILL.md +84 -0
  17. package/dist/skills/agnostic/cli/dp-cli/references/commands.md +33 -0
  18. package/dist/skills/agnostic/cli/dp-cli/references/post-command-flow.md +47 -0
  19. package/dist/skills/agnostic/debug/debug-agent/SKILL.md +184 -0
  20. package/dist/skills/agnostic/requirements/write-backlog/REFERENCE.md +1 -1
  21. package/dist/skills/languages/python/async-python-patterns/SKILL.md +735 -0
  22. package/dist/skills/languages/python/python-code-style/SKILL.md +360 -0
  23. package/dist/skills/languages/python/python-design-patterns/SKILL.md +433 -0
  24. package/dist/skills/languages/python/python-project-structure/SKILL.md +252 -0
  25. package/dist/skills/languages/python/python-testing-patterns/SKILL.md +622 -0
  26. package/dist/skills/languages/python/python-testing-patterns/references/advanced-patterns.md +411 -0
  27. package/dist/skills/languages/typescript/quality-types/SKILL.md +93 -0
  28. package/docs/README.md +14 -4
  29. package/docs/reference/dp-requirements.md +16 -1
  30. package/docs/runbooks/dp-cli-scaffolding.md +82 -10
  31. package/package.json +5 -2
@@ -62,6 +62,40 @@ const capabilityPacks = {
62
62
  "Repo documentation maintenance, routing, and human-facing durable knowledge capture.",
63
63
  skills: ["docs-maintenance"],
64
64
  },
65
+ "review-core": {
66
+ description:
67
+ "Cross-cutting review, simplification, and architecture-friction analysis for changed code.",
68
+ skills: ["simplify", "improve-codebase-architecture"],
69
+ },
70
+ "python-core": {
71
+ description:
72
+ "Python project structure, code style, design boundaries, and everyday implementation guidance.",
73
+ skills: [
74
+ "python-project-structure",
75
+ "python-design-patterns",
76
+ "python-code-style",
77
+ "python-testing-patterns",
78
+ ],
79
+ },
80
+ "python-async": {
81
+ description:
82
+ "Python asyncio, concurrent I/O, async API boundaries, and async test strategy.",
83
+ skills: [
84
+ "async-python-patterns",
85
+ "python-project-structure",
86
+ "python-code-style",
87
+ "python-testing-patterns",
88
+ ],
89
+ },
90
+ "python-quality": {
91
+ description:
92
+ "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
+ ],
98
+ },
65
99
  };
66
100
 
67
101
  const skillActivationInstructions = [
@@ -73,7 +107,31 @@ const skillActivationInstructions = [
73
107
  "Do not rely on role name or inherited context alone; scoped AGENTS.md skill routing is part of the task contract.",
74
108
  ];
75
109
 
110
+ const reviewActivationInstructions = [
111
+ ...skillActivationInstructions,
112
+ "Stay read-only unless the parent explicitly asks for fixes.",
113
+ "Lead with findings, sorted by severity, with precise file/line references.",
114
+ "Use `simplify` to evaluate whether recently changed code can be clearer, smaller, or less stateful.",
115
+ "Use `improve-codebase-architecture` only when the review reveals cross-module coupling, shallow-module sprawl, testability friction, or AI-navigation problems worth surfacing.",
116
+ ];
117
+
76
118
  const agents = [
119
+ {
120
+ name: "code-review",
121
+ description:
122
+ "Use for cross-cutting code review centered on bugs, regressions, simplification opportunities, architecture friction, and review-ready findings across changed code.",
123
+ ownedPaths: ["**/*"],
124
+ guidanceFiles: ["AGENTS.md"],
125
+ activationInstructions: reviewActivationInstructions,
126
+ packs: ["review-core"],
127
+ skills: ["simplify", "improve-codebase-architecture"],
128
+ boundaries: [
129
+ "Review first: identify concrete defects, behavioral risks, missing tests, and simplification opportunities before summarizing.",
130
+ "Do not edit files unless the parent explicitly assigns implementation after the review.",
131
+ "Keep architecture notes grounded in observed code friction; return candidate refactors or follow-up RFC recommendations instead of speculative rewrites.",
132
+ "If the task asks for feature work rather than review, tell the parent to use the relevant implementation specialist.",
133
+ ],
134
+ },
77
135
  {
78
136
  name: "docs-maintenance",
79
137
  description:
@@ -248,6 +306,96 @@ const agents = [
248
306
  "If the task is mainly HTTP transport or route mounting, tell the parent to use server-transport instead.",
249
307
  ],
250
308
  },
309
+ {
310
+ name: "python-app",
311
+ description:
312
+ "Use for Python application work centered on module structure, implementation, code style, maintainability, and tests.",
313
+ ownedPaths: [
314
+ "src/**",
315
+ "packages/**",
316
+ "services/**",
317
+ "apps/**",
318
+ "tests/**",
319
+ "pyproject.toml",
320
+ "requirements*.txt",
321
+ "uv.lock",
322
+ "poetry.lock",
323
+ ],
324
+ guidanceFiles: ["AGENTS.md"],
325
+ activationInstructions: skillActivationInstructions,
326
+ packs: ["python-core", "python-quality", "simplify"],
327
+ skills: [
328
+ "python-project-structure",
329
+ "python-design-patterns",
330
+ "python-code-style",
331
+ "python-testing-patterns",
332
+ "simplify",
333
+ ],
334
+ boundaries: [
335
+ "Own ordinary Python implementation, project layout, module boundaries, and nearby tests.",
336
+ "If the task is mainly asyncio, concurrent I/O, WebSockets, or async API behavior, tell the parent to use python-async instead.",
337
+ "If the task is mainly test suite design, fixture cleanup, or pytest behavior without feature work, tell the parent to use python-testing instead.",
338
+ "If the task is mainly TypeScript, frontend, Effect, or auth-specific work, tell the parent to use the matching non-Python specialist.",
339
+ ],
340
+ },
341
+ {
342
+ name: "python-async",
343
+ description:
344
+ "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
+ ],
353
+ guidanceFiles: ["AGENTS.md"],
354
+ activationInstructions: skillActivationInstructions,
355
+ packs: ["python-async", "python-quality", "simplify"],
356
+ skills: [
357
+ "async-python-patterns",
358
+ "python-project-structure",
359
+ "python-code-style",
360
+ "python-testing-patterns",
361
+ "simplify",
362
+ ],
363
+ boundaries: [
364
+ "Own async Python flows, cancellation, task lifetime, backpressure, concurrent I/O, and async test coverage.",
365
+ "Keep structural refactors limited to what the async change needs; broader project layout belongs to python-app.",
366
+ "If the task is synchronous business logic or package structure, tell the parent to use python-app instead.",
367
+ "If the task is only pytest fixture or assertion work, tell the parent to use python-testing instead.",
368
+ ],
369
+ },
370
+ {
371
+ name: "python-testing",
372
+ description:
373
+ "Use for Python test work centered on pytest, fixtures, integration boundaries, mocks, coverage, and refactor-safe assertions.",
374
+ ownedPaths: [
375
+ "tests/**",
376
+ "**/tests/**",
377
+ "src/**",
378
+ "packages/**",
379
+ "services/**",
380
+ "apps/**",
381
+ "pyproject.toml",
382
+ ],
383
+ guidanceFiles: ["AGENTS.md"],
384
+ activationInstructions: skillActivationInstructions,
385
+ packs: ["python-quality", "simplify"],
386
+ skills: [
387
+ "python-testing-patterns",
388
+ "python-code-style",
389
+ "python-design-patterns",
390
+ "simplify",
391
+ ],
392
+ boundaries: [
393
+ "Own pytest structure, fixtures, parameterization, integration-test shape, and test readability.",
394
+ "Prefer tests that exercise real behavior over brittle mocks unless the boundary is genuinely external.",
395
+ "If fixing production Python code becomes the main task, tell the parent to use python-app or python-async depending on the failure.",
396
+ "If test work crosses into TypeScript, frontend, or Effect-specific systems, tell the parent to split that work to the matching specialist.",
397
+ ],
398
+ },
251
399
  ];
252
400
 
253
401
  export { agents, capabilityPacks };