claude-code-arcane 2.10.0 → 2.12.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 (74) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +8 -8
  3. package/dist/cli.js +15 -0
  4. package/docs/SKILLS-CATALOG.md +4 -2
  5. package/docs/USER-GUIDE.md +1 -1
  6. package/docs/templates/skill-test-spec.md +0 -1
  7. package/output-styles/arcane.md +51 -4
  8. package/package.json +1 -1
  9. package/profiles/backend-dotnet.yaml +2 -0
  10. package/profiles/backend-go.yaml +2 -0
  11. package/profiles/backend-nestjs.yaml +2 -0
  12. package/profiles/backend-nextjs.yaml +2 -0
  13. package/profiles/backend-ts.yaml +2 -0
  14. package/profiles/backend-typescript.yaml +2 -0
  15. package/profiles/blender.yaml +1 -0
  16. package/profiles/core.yaml +3 -0
  17. package/profiles/infra.yaml +2 -0
  18. package/profiles/meshy.yaml +1 -0
  19. package/rules/agent-delegation.md +8 -0
  20. package/rules/backend-code.md +7 -0
  21. package/rules/blender-files.md +72 -0
  22. package/rules/blender-pipeline.md +1 -63
  23. package/rules/dotnet-code.md +6 -0
  24. package/rules/frontend-code.md +25 -0
  25. package/rules/gamedev/ai-code.md +1 -0
  26. package/rules/gamedev/audio-code.md +1 -0
  27. package/rules/gamedev/engine-code.md +7 -0
  28. package/rules/gamedev/gameplay-code.md +8 -0
  29. package/rules/gamedev/narrative.md +1 -1
  30. package/rules/gamedev/network-code.md +1 -0
  31. package/rules/gamedev/shader-code.md +3 -0
  32. package/rules/gamedev/ui-code.md +7 -0
  33. package/rules/gamedev/unreal-code.md +6 -0
  34. package/rules/git-worktrees.md +22 -0
  35. package/rules/implementation-workflow.md +9 -0
  36. package/rules/infra-code.md +6 -0
  37. package/rules/meshy-assets.md +9 -78
  38. package/rules/meshy-files.md +83 -0
  39. package/rules/migration-code.md +6 -0
  40. package/rules/nestjs-code.md +6 -0
  41. package/rules/verification.md +13 -0
  42. package/skills/agent-protocol/SKILL.md +1 -1
  43. package/skills/agent-protocol/references/communication-standard.md +2 -2
  44. package/skills/ai-security/SKILL.md +4 -0
  45. package/skills/audit-dev/SKILL.md +1 -1
  46. package/skills/blender-animation/SKILL.md +1 -1
  47. package/skills/blender-export/SKILL.md +1 -1
  48. package/skills/blender-materials/SKILL.md +1 -1
  49. package/skills/blender-modeling/SKILL.md +1 -1
  50. package/skills/check/SKILL.md +1 -1
  51. package/skills/chief-of-staff/SKILL.md +1 -1
  52. package/skills/cloud-security/SKILL.md +4 -0
  53. package/skills/isms-audit-expert/SKILL.md +2 -0
  54. package/skills/meshy-derive/SKILL.md +1 -1
  55. package/skills/meshy-generate/SKILL.md +1 -1
  56. package/skills/meshy-setup/SKILL.md +1 -1
  57. package/skills/owasp-top10-check/SKILL.md +1 -1
  58. package/skills/qms-audit-expert/SKILL.md +2 -0
  59. package/skills/security-pen-testing/SKILL.md +1 -1
  60. package/skills/seo-audit/SKILL.md +1 -1
  61. package/skills/skill-auditor/SKILL.md +0 -1
  62. package/skills/skill-improve/SKILL.md +6 -7
  63. package/skills/skill-test/SKILL.md +3 -3
  64. package/skills/skill-test/references/static-checks.md +13 -8
  65. package/skills/standup-report/SKILL.md +1 -1
  66. package/skills/vn-gdd/SKILL.md +2 -0
  67. package/skills/web-security/SKILL.md +4 -0
  68. package/skills/worktree-isolation/README.md +6 -6
  69. package/skills/worktree-isolation/SKILL.md +5 -2
  70. package/skills/worktree-isolation-setup/README.md +7 -11
  71. package/skills/worktree-isolation-setup/SKILL.md +15 -6
  72. package/skills/worktree-isolation-setup/scripts/apply.py +0 -178
  73. package/skills/worktree-isolation-setup/scripts/install_hook.py +0 -118
  74. package/skills/worktree-isolation-setup/scripts/lib.py +0 -371
package/CHANGELOG.md CHANGED
@@ -1,3 +1,29 @@
1
+ # [2.12.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.11.0...v2.12.0) (2026-10-16)
2
+
3
+
4
+ ### Features
5
+
6
+ * **output-style:** shape answers for ADHD readers as well ([66351f7](https://github.com/SebastianLuser/claude-code-arcane/commit/66351f7fb9399eec97c650fb547826c4d7097152))
7
+ * **rules:** add verification, agent-delegation and git-worktrees core rules ([2ffe8ef](https://github.com/SebastianLuser/claude-code-arcane/commit/2ffe8ef0a6b4093f0171ff28a327509b7e30cff0))
8
+ * **rules:** say what counts as evidence in each domain rule ([81cec94](https://github.com/SebastianLuser/claude-code-arcane/commit/81cec94f21ae8cbe44c87e2aaa29d9aa4ba969b3))
9
+
10
+ # [2.11.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.10.0...v2.11.0) (2026-10-11)
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * **global:** refuse to rewrite a malformed settings.json ([fa1a15b](https://github.com/SebastianLuser/claude-code-arcane/commit/fa1a15be969fe56fd865319df30b4e3bd985285e))
16
+ * **rules:** align the narrative dialogue limit with the VN rule at 200 ([3cc5f60](https://github.com/SebastianLuser/claude-code-arcane/commit/3cc5f60b0836c6a817018ca8af3b9ebf981499dc))
17
+ * **skill-test:** drop the ask-before-write static check ([28e504f](https://github.com/SebastianLuser/claude-code-arcane/commit/28e504f29ab2114d8f27f732d3fd148ccd3dc2be))
18
+ * **skills:** complete the skill catalog and the frontmatter it relies on ([5665fdf](https://github.com/SebastianLuser/claude-code-arcane/commit/5665fdfd60766ce663c26060d8f042d873f12ac1))
19
+ * **skills:** make the five-bullet limit a guide that never drops a critical finding ([466bf55](https://github.com/SebastianLuser/claude-code-arcane/commit/466bf554d862d55350c0d1cfb86caea4520779e6))
20
+ * **worktree:** ship the isolation skills with the profiles that run Docker ([f0a1589](https://github.com/SebastianLuser/claude-code-arcane/commit/f0a15894c6c064088c1fe55150f7145e04f5848a))
21
+
22
+
23
+ ### Features
24
+
25
+ * **skills:** give the ten evaluator skills that lacked one a verdict ([26e9682](https://github.com/SebastianLuser/claude-code-arcane/commit/26e968235dbaf4babd7c93aa15c348639f7e6b8d))
26
+
1
27
  # [2.10.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.9.9...v2.10.0) (2026-10-10)
2
28
 
3
29
 
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # Claude Code Arcane
2
2
 
3
- > **437 skills, 115 agents, 17 hooks and 31 rules for Claude Code — selective deploy by profile.**
3
+ > **437 skills, 115 agents, 17 hooks and 36 rules for Claude Code — selective deploy by profile.**
4
4
 
5
5
  A configuration harness installable via `npx`. Pick a **profile** that matches your stack and only the relevant tools get installed into your project's `.claude/` directory.
6
6
 
@@ -190,11 +190,11 @@ Older names still install and update: `backend-ts`, `frontend`, `mobile`, `flutt
190
190
 
191
191
  | Profile | Stack | Skills | Agents |
192
192
  |---------|-------|--------|--------|
193
- | `backend-typescript` | Backend TypeScript — Fastify, Prisma, Zod, API design | 25 | engineering |
194
- | `backend-go` | Backend Go — Clean Arch, DB, auth, API, CI | 24 | engineering |
195
- | `backend-dotnet` | Backend .NET — ASP.NET Core, Vertical Slice/Clean, EF Core, JWT | 25 | engineering |
196
- | `backend-nestjs` | Backend NestJS — feature modules, DI, Prisma, JWT, microservices | 25 | engineering |
197
- | `backend-nextjs` | Next.js full-stack — App Router, RSC, Server Actions, SEO, AI SDK | 22 | engineering |
193
+ | `backend-typescript` | Backend TypeScript — Fastify, Prisma, Zod, API design | 27 | engineering |
194
+ | `backend-go` | Backend Go — Clean Arch, DB, auth, API, CI | 26 | engineering |
195
+ | `backend-dotnet` | Backend .NET — ASP.NET Core, Vertical Slice/Clean, EF Core, JWT | 27 | engineering |
196
+ | `backend-nestjs` | Backend NestJS — feature modules, DI, Prisma, JWT, microservices | 27 | engineering |
197
+ | `backend-nextjs` | Next.js full-stack — App Router, RSC, Server Actions, SEO, AI SDK | 24 | engineering |
198
198
 
199
199
  ### Frontend & Design
200
200
 
@@ -228,7 +228,7 @@ Older names still install and update: `backend-ts`, `frontend`, `mobile`, `flutt
228
228
 
229
229
  | Profile | Adds | Skills | Agents |
230
230
  |---------|------|--------|--------|
231
- | `infra` | Terraform, observability, secrets, rollback, K8s | 24 | devops |
231
+ | `infra` | Terraform, observability, secrets, rollback, K8s | 26 | devops |
232
232
  | `database` | Indexing, migrations, seeding, replicas, optimization | 8 | — |
233
233
  | `security` | Audits, OWASP, secrets, backups | 10 | — |
234
234
  | `testing` | Contract, performance, regression, flakiness | 11 | quality |
@@ -461,7 +461,7 @@ claude-code-arcane/
461
461
  ├── profiles/ # 38 profiles (YAML)
462
462
  ├── agents/ # 17 dirs, 109 agents (Markdown)
463
463
  ├── hooks/ # 17 lifecycle hooks (Bash)
464
- ├── rules/ # 31 rules (Markdown)
464
+ ├── rules/ # 36 rules (Markdown)
465
465
  ├── templates/ # Gamedev templates
466
466
  ├── docs/ # Documentation
467
467
  └── skills-selftest/ # QA framework
package/dist/cli.js CHANGED
@@ -3205,12 +3205,27 @@ async function globalCommand(opts) {
3205
3205
  showStatus();
3206
3206
  return;
3207
3207
  }
3208
+ if (!settingsParseable()) {
3209
+ console.error(
3210
+ chalk10.red(` Refusing to modify malformed ${SETTINGS_PATH}. Fix it and re-run.`)
3211
+ );
3212
+ process.exit(1);
3213
+ }
3208
3214
  if (opts.remove) {
3209
3215
  removeGlobal();
3210
3216
  return;
3211
3217
  }
3212
3218
  installGlobal();
3213
3219
  }
3220
+ function settingsParseable() {
3221
+ if (!fs17.existsSync(SETTINGS_PATH)) return true;
3222
+ try {
3223
+ JSON.parse(fs17.readFileSync(SETTINGS_PATH, "utf-8"));
3224
+ return true;
3225
+ } catch {
3226
+ return false;
3227
+ }
3228
+ }
3214
3229
  function showStatus() {
3215
3230
  console.log(chalk10.bold("\n=== Arcane Global Status ===\n"));
3216
3231
  const hasScripts = fs17.existsSync(
@@ -2,7 +2,7 @@
2
2
 
3
3
  Los 437 skills disponibles para proyectos consumidores, organizados por division.
4
4
 
5
- La tabla cubre 395: hay 42 skills instalables que todavia no estan catalogados aca. Un test de CI (`src/__tests__/doc-counts.test.ts`) verifica que estos numeros coincidan con el filesystem y que el header de cada seccion coincida con sus filas.
5
+ La tabla cubre 397: hay 40 skills instalables que todavia no estan catalogados aca. Un test de CI (`src/__tests__/doc-counts.test.ts`) verifica que estos numeros coincidan con el filesystem y que el header de cada seccion coincida con sus filas.
6
6
 
7
7
  ## Como ejecutar un skill
8
8
 
@@ -376,7 +376,7 @@ Instalables con el perfil `unreal-dev`. Procedencia y licencias en `ATTRIBUTION.
376
376
 
377
377
  ---
378
378
 
379
- ## DevOps (6 skills)
379
+ ## DevOps (8 skills)
380
380
 
381
381
  | Skill | Descripcion | Uso |
382
382
  |-------|-------------|-----|
@@ -386,6 +386,8 @@ Instalables con el perfil `unreal-dev`. Procedencia y licencias en `ATTRIBUTION.
386
386
  | `/helm-chart-builder` | Build production-grade Helm charts: scaffolding, values design, template patterns, dependency management, and security hardening | `[scaffold\|lint\|test]` |
387
387
  | `/incident-commander` | Manage technology incidents end-to-end: severity classification, timeline reconstruction, stakeholder communication, and RCA | `[classify\|timeline\|communicate]` |
388
388
  | `/incident-response` | Classify and triage security incidents through the full NIST SP 800-61 lifecycle: SEV1-4 scoring and forensic evidence collection | `[classify\|triage\|forensics]` |
389
+ | `/worktree-isolation` | Regenera o muestra los puertos de Docker de este worktree para que varios worktrees corran en paralelo sin chocar | `[apply\|status]` |
390
+ | `/worktree-isolation-setup` | Prepara el repo una vez: parametriza puertos y container_name del docker-compose, `.gitignore`, CLAUDE.md y el hook global | |
389
391
 
390
392
  ---
391
393
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## What is Arcane?
4
4
 
5
- Arcane is a configuration harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). It provides a curated library of **437 skills**, **115 agents**, **17 hooks**, and **31 rules** that you selectively deploy into any project. Instead of shipping everything to every project (wasting tokens and degrading performance), you pick a **profile** that matches your stack and only the relevant tools get installed.
5
+ Arcane is a configuration harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). It provides a curated library of **437 skills**, **115 agents**, **17 hooks**, and **36 rules** that you selectively deploy into any project. Instead of shipping everything to every project (wasting tokens and degrading performance), you pick a **profile** that matches your stack and only the relevant tools get installed.
6
6
 
7
7
  ## Table of Contents
8
8
 
@@ -15,7 +15,6 @@ Verified automatically by `/skill-test static` — no fixture needed.
15
15
  - [ ] Has required frontmatter fields: `name`, `description`, `argument-hint`, `user-invocable`, `allowed-tools`
16
16
  - [ ] Has ≥2 phase headings (## Phase N or numbered ## sections)
17
17
  - [ ] Contains verdict keywords: [list the ones expected, e.g., PASS, FAIL, CONCERNS]
18
- - [ ] Contains "May I write" collaborative protocol language (if skill writes files)
19
18
  - [ ] Has a next-step handoff at the end
20
19
 
21
20
  ---
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: arcane
3
- description: Respuestas compactas, tablas para comparar, lenguaje literal y estructura legible — pensado para lectura con TEA y dislexia.
3
+ description: Respuestas compactas, tablas para comparar, lenguaje literal y estructura legible — pensado para lectura con TEA, TDAH y dislexia.
4
4
  ---
5
5
 
6
6
  # Arcane
@@ -11,8 +11,8 @@ autorizan entregar menos.
11
11
 
12
12
  ## Largo
13
13
 
14
- - **La respuesta primero.** Primera línea: qué pasó o qué contestás. El detalle va después,
15
- para quien lo quiera.
14
+ - **La respuesta o la acción primero.** Primera línea: qué pasó, qué contestás o, si hay algo
15
+ para hacer, esa acción (un comando, un archivo, una decisión). El detalle va después.
16
16
  - **Sin preámbulo.** No repitas la pregunta, no anuncies lo que vas a hacer, no cierres
17
17
  resumiendo lo que acabás de decir.
18
18
  - **Un tema por párrafo, tres líneas como máximo.** Si un párrafo crece, partilo o pasalo a
@@ -27,12 +27,19 @@ autorizan entregar menos.
27
27
  - **Tabla siempre que compares.** Dos o más cosas con dos o más atributos (opciones,
28
28
  versiones, proyectos, trade-offs) van en tabla, no en prosa ni en bullets paralelos. Una
29
29
  columna por atributo, una fila por cosa.
30
- - **Listas para pasos y hallazgos.** Prosa solo para el razonamiento que une las cosas.
30
+ - **Pasos numerados, una acción por paso.** La menor cantidad de pasos que funcione; ningún
31
+ paso dice "y después" dos veces. Prosa solo para el razonamiento que une las cosas.
32
+ - **Cinco ítems como máximo por lista o tabla visible.** Si hay más, agrupalos en secciones
33
+ con lo más relevante primero. Es solo presentación: nunca descartes un ítem relevante.
31
34
  - **Títulos cuando hay más de un tema.** Que se pueda saltar a la parte que importa sin
32
35
  leer todo.
33
36
  - **`backticks` en todo identificador** — archivos, comandos, ramas, funciones, flags.
34
37
  - **Bold para lo importante**, no italics: es más fácil de decodificar. Nunca MAYÚSCULAS
35
38
  para enfatizar, deforman la silueta de la palabra.
39
+ - **Página HTML solo para lo que se entiende mejor dibujado.** Si está instalada
40
+ `answer-me-with-html`, usala para explicar cómo funciona algo, un flujo o una
41
+ arquitectura, o cuando el usuario pida "dibujalo". Para comparar o listar, alcanza una
42
+ tabla en la respuesta.
36
43
 
37
44
  ## Lenguaje
38
45
 
@@ -46,8 +53,48 @@ autorizan entregar menos.
46
53
  de prosa condicional que deja al lector adivinando el nivel de confianza.
47
54
  - **Decí explícitamente qué esperás del otro.** Si hace falta una decisión, que se vea que
48
55
  hace falta y cuáles son las alternativas.
56
+ - **Errores sin dramatismo.** Causa y arreglo: "falla en `auth.spec.ts:42`, falta el
57
+ header", no "uy, algo salió mal".
49
58
 
50
59
  ## Números y datos
51
60
 
52
61
  - **El dato antes que el adjetivo.** "62 commits atrás" en vez de "bastante atrasado".
53
62
  - **Unidad y fecha completas.** `2026-09-04`, no "ayer"; `312 KB`, no "poco".
63
+ - **El tamaño en unidades contables.** "3 archivos, 2 pasos, 1 PR", no "rápido" ni "un
64
+ rato". Nada de estimar minutos.
65
+
66
+ ## Seguimiento
67
+
68
+ - **Decí el estado en tareas de varios pasos.** "Paso 3 de 5 hecho: X. Sigue: Y." Si hay
69
+ herramienta de tareas, la lista de tareas reemplaza esa narración.
70
+ - **Que lo terminado se vea.** "El login ya funciona: probá `npm run dev` y entrá a
71
+ `/login`", no "hice algunos cambios".
72
+ - **Sin desvíos.** Si aparece un segundo tema, cerrá el actual y ofrecé el otro aparte, al
73
+ final. Una duda que surge en el medio, resolvela vos si podés.
74
+ - **Cerrá con una sola acción concreta** que el usuario pueda hacer en poco tiempo, si
75
+ queda algo abierto.
76
+
77
+ ## Cuándo se rompen estas reglas
78
+
79
+ 1. **"Explicame".** Se explica completo, con títulos. Sigue sin preámbulo ni cierre.
80
+ 2. **Algo destructivo por delante.** Confirmá antes de actuar: la seguridad gana a la
81
+ brevedad.
82
+ 3. **Espiral de debug.** Si los últimos 3 turnos fueron "sigue roto", dejá de tocar código.
83
+ Nombrá la suposición que puede estar mal y hacé una sola pregunta de diagnóstico.
84
+ 4. **Pedido ambiguo.** Una pregunta corta antes que adivinar.
85
+ 5. **"¿Qué opciones tengo?"** De 2 a 4 opciones con la recomendada primero: las opciones
86
+ son la respuesta.
87
+ 6. **El trabajo del agente lo hace el agente.** No preguntes "¿querés que lo haga?" por algo
88
+ que te toca hacer. Las decisiones que son del usuario siguen siendo preguntas.
89
+
90
+ ## Antes de enviar
91
+
92
+ Borrá:
93
+
94
+ 1. La primera oración, si anuncia lo que vas a hacer.
95
+ 2. La última, si pregunta "¿algo más?" o resume lo que pasó.
96
+ 3. Los "por cierto".
97
+ 4. Las dudas de relleno ("quizás", "podría"). Las que expresan incertidumbre real quedan.
98
+ 5. Los modismos.
99
+
100
+ Prueba final: leyendo solo la primera y la última línea, ¿se sabe qué pasó y qué sigue?
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-arcane",
3
- "version": "2.10.0",
3
+ "version": "2.12.0",
4
4
  "description": "Skills, agents, hooks and rules for Claude Code — installable via npx claude-code-arcane",
5
5
  "type": "module",
6
6
  "bin": {
@@ -32,6 +32,8 @@ skills:
32
32
  - performance
33
33
  - async-ops
34
34
  - ci-cd-setup
35
+ - worktree-isolation
36
+ - worktree-isolation-setup
35
37
 
36
38
  rules:
37
39
  universal:
@@ -27,6 +27,8 @@ skills:
27
27
  - audit-log
28
28
  - slo-sli
29
29
  - ci-cd-setup
30
+ - worktree-isolation
31
+ - worktree-isolation-setup
30
32
 
31
33
  rules:
32
34
  universal:
@@ -32,6 +32,8 @@ skills:
32
32
  - performance
33
33
  - async-ops
34
34
  - ci-cd-setup
35
+ - worktree-isolation
36
+ - worktree-isolation-setup
35
37
 
36
38
  rules:
37
39
  universal:
@@ -30,6 +30,8 @@ skills:
30
30
  - observability
31
31
  - ci-cd-setup
32
32
  - cdn-setup
33
+ - worktree-isolation
34
+ - worktree-isolation-setup
33
35
 
34
36
  rules:
35
37
  universal:
@@ -30,6 +30,8 @@ skills:
30
30
  - websocket-realtime-rooms
31
31
  - search-setup
32
32
  - ci-cd-setup
33
+ - worktree-isolation
34
+ - worktree-isolation-setup
33
35
 
34
36
  rules:
35
37
  universal:
@@ -28,6 +28,8 @@ skills:
28
28
  - websocket-realtime-rooms
29
29
  - search-setup
30
30
  - ci-cd-setup
31
+ - worktree-isolation
32
+ - worktree-isolation-setup
31
33
 
32
34
  rules:
33
35
  universal:
@@ -17,6 +17,7 @@ skills:
17
17
  rules:
18
18
  universal:
19
19
  - blender-pipeline
20
+ - blender-files
20
21
  gamedev:
21
22
  []
22
23
 
@@ -33,6 +33,9 @@ rules:
33
33
  - test-standards
34
34
  - implementation-workflow
35
35
  - code-comments
36
+ - verification
37
+ - agent-delegation
38
+ - git-worktrees
36
39
  gamedev:
37
40
  []
38
41
 
@@ -27,6 +27,8 @@ skills:
27
27
  - incident-commander
28
28
  - incident-response
29
29
  - git-worktree-manager
30
+ - worktree-isolation
31
+ - worktree-isolation-setup
30
32
 
31
33
  rules:
32
34
  universal:
@@ -15,6 +15,7 @@ skills:
15
15
  rules:
16
16
  universal:
17
17
  - meshy-assets
18
+ - meshy-files
18
19
  gamedev:
19
20
  []
20
21
 
@@ -0,0 +1,8 @@
1
+ # Agent Delegation Rule
2
+
3
+ Applies to the main session and to every subagent it starts.
4
+
5
+ - **Your final message is the deliverable.** Never end a turn with "waiting for the subagents": a started task is not a finished one.
6
+ - **If you delegate, you collect.** Wait for every result, integrate it, then answer. No fire-and-forget.
7
+ - **One agent by default.** Split work only when it cannot fit one context, or when the second agent needs something the first must not have: different tools or permissions, a clean context (a reviewer that must not see the maker's reasoning), or a different model.
8
+ - **The prompt is all the subagent knows.** It does not see this conversation: pass the goal, the relevant files and the output format you expect.
@@ -33,3 +33,10 @@ paths:
33
33
  - Nested business logic in DB queries (computed columns that reimplement rules)
34
34
  - Silent retries with no backoff, no max attempts, no circuit breaker
35
35
  - Returning raw DB rows as HTTP responses — always go through a DTO / view model
36
+
37
+ ## How to verify
38
+
39
+ - Run the tests that cover the change.
40
+ - Start the service locally and call the changed endpoint with `curl` (or the project's HTTP client). Show the status code and the body.
41
+ - Call one failure case too (invalid input, missing auth), not only the happy path.
42
+ - Read the server log for those requests: no stack trace, no unexpected warning.
@@ -0,0 +1,72 @@
1
+ ---
2
+ paths:
3
+ - "**/*.blend"
4
+ - "**/*.fbx"
5
+ - "**/*.glb"
6
+ - "**/*.gltf"
7
+ ---
8
+
9
+ # Blender Files
10
+
11
+ Como tiene que salir un asset de Blender hacia un engine o la web. Como operar Blender sin romper nada esta en `.claude/rules/blender-pipeline.md`, que se carga siempre.
12
+
13
+ ## Ejes, escala y unidades
14
+
15
+ Verificar una vez por proyecto, anotarlo, no volver a pensarlo.
16
+
17
+ | Destino | Convencion | Al exportar desde Blender |
18
+ |---|---|---|
19
+ | Blender | Z-up, right-handed, 1 unidad = 1 m | — |
20
+ | glTF / GLB | Y-up, metros | El exporter convierte solo (`+Y up`) |
21
+ | Unity | Y-up, left-handed, 1 unidad = 1 m | glTF sale derecho; en FBX revisar el eje |
22
+ | UE5 | Z-up, left-handed, 1 unidad = 1 cm | Factor 100 |
23
+
24
+ Reglas duras:
25
+
26
+ - **Aplicar escala antes de exportar** (`Object → Apply → Scale`). Un objeto que sale con `scale`
27
+ distinto de 1 arrastra el problema al engine y rompe la fisica y el skinning.
28
+ - Origen al piso para props y personajes; al centro para objetos que rotan sobre si mismos.
29
+ - Un nodo con escala `100` o `0.01` en el archivo exportado es una conversion de unidades sin
30
+ aplicar, no una decision de diseno. Se corrige, no se documenta.
31
+
32
+ ## Topologia
33
+
34
+ - **Quads en todo lo que deforma.** Tris solo en geometria estatica. N-gons en nada que deforme.
35
+ - Edge loops en articulaciones, poles de 5 aristas o menos.
36
+ - Presupuesto de triangulos declarado **antes** de modelar, no medido despues.
37
+ - Un LOD generado con Decimate es un borrador. Para heroes va retopo a mano.
38
+
39
+ ## Materiales y texturas
40
+
41
+ - **Principled BSDF y nada mas** en lo que se exporta. Los nodos procedurales no sobreviven a
42
+ glTF ni a FBX: si el look depende de ellos, hay que bakearlo a textura.
43
+ - Color space: Base Color en sRGB; Normal, Roughness, Metallic y AO en **Non-Color**. Es el bug
44
+ mas comun y el mas silencioso.
45
+ - Normal maps: Blender, glTF y Unity usan OpenGL (+Y). **UE5 usa DirectX (-Y)**: hay que invertir
46
+ el canal verde o marcarlo en el import.
47
+ - Resoluciones potencia de dos. Texel density consistente entre assets del mismo set.
48
+ - Cantidad de materiales = draw calls. Atlas antes de sumar materiales.
49
+
50
+ ## Animacion
51
+
52
+ - **Los constraints no se exportan, los keyframes si.** Todo rig con IK, drivers o constraints se
53
+ bakea (`nla.bake` con visual keying) antes de exportar.
54
+ - Frame rate del `.blend` igual al del engine. Un mismatch se ve como animacion lenta o acelerada,
55
+ no como error.
56
+ - Huesos con sufijo `.L` / `.R` para que la simetria funcione.
57
+ - Root motion: hueso raiz en el origen. Decidir in-place vs root motion **antes** de animar.
58
+
59
+ ## Git
60
+
61
+ - `*.blend *.fbx *.glb *.gltf` por **Git LFS**. Verificar `git lfs version` antes de agregar las
62
+ entradas: peor que no tenerlas es tenerlas sin LFS instalado.
63
+ - `*.blend1` y `*.blend2` (backups de Blender) van al `.gitignore`, nunca al repo.
64
+ - Las texturas fuente (`.psd`, `.kra`, `.exr` de bake) por LFS; los `.png` finales tambien.
65
+
66
+ ## Integracion con el resto del stack
67
+
68
+ `asset-spec` define que asset hace falta → Meshy o modelado a mano lo produce → **Blender lo
69
+ limpia y lo exporta** → `asset-audit` valida el resultado en el proyecto.
70
+
71
+ Blender es el paso del medio, no el principio ni el final. Si el asset vino de `meshy-derive`, el
72
+ `.blend` que bajo es el punto de entrada; no se regenera desde Meshy para arreglar topologia.
@@ -1,7 +1,6 @@
1
1
  # Blender Pipeline
2
2
 
3
- Reglas para trabajar assets en Blender con destino a un engine o a la web. Aplican a cualquier
4
- operacion que toque un `.blend` o exporte desde uno.
3
+ Reglas que tienen que estar presentes antes de operar Blender, por MCP o headless, aunque todavia no se haya tocado un `.blend`. Ejes, topologia, materiales, animacion y Git estan en `.claude/rules/blender-files.md`, que se carga al tocar un `.blend` o un archivo exportado.
5
4
 
6
5
  ## El MCP es opcional, el headless no
7
6
 
@@ -32,64 +31,3 @@ barrera**. Consecuencias que no son negociables:
32
31
  3. No apuntarlo a una maquina con material sensible ni a credenciales.
33
32
  4. Un script que borra (`bpy.data.*.remove`, `object.delete`) se muestra al usuario **antes** de
34
33
  correrlo, siempre, incluso si lo pidio.
35
-
36
- ## Ejes, escala y unidades
37
-
38
- Verificar una vez por proyecto, anotarlo, no volver a pensarlo.
39
-
40
- | Destino | Convencion | Al exportar desde Blender |
41
- |---|---|---|
42
- | Blender | Z-up, right-handed, 1 unidad = 1 m | — |
43
- | glTF / GLB | Y-up, metros | El exporter convierte solo (`+Y up`) |
44
- | Unity | Y-up, left-handed, 1 unidad = 1 m | glTF sale derecho; en FBX revisar el eje |
45
- | UE5 | Z-up, left-handed, 1 unidad = 1 cm | Factor 100 |
46
-
47
- Reglas duras:
48
-
49
- - **Aplicar escala antes de exportar** (`Object → Apply → Scale`). Un objeto que sale con `scale`
50
- distinto de 1 arrastra el problema al engine y rompe la fisica y el skinning.
51
- - Origen al piso para props y personajes; al centro para objetos que rotan sobre si mismos.
52
- - Un nodo con escala `100` o `0.01` en el archivo exportado es una conversion de unidades sin
53
- aplicar, no una decision de diseno. Se corrige, no se documenta.
54
-
55
- ## Topologia
56
-
57
- - **Quads en todo lo que deforma.** Tris solo en geometria estatica. N-gons en nada que deforme.
58
- - Edge loops en articulaciones, poles de 5 aristas o menos.
59
- - Presupuesto de triangulos declarado **antes** de modelar, no medido despues.
60
- - Un LOD generado con Decimate es un borrador. Para heroes va retopo a mano.
61
-
62
- ## Materiales y texturas
63
-
64
- - **Principled BSDF y nada mas** en lo que se exporta. Los nodos procedurales no sobreviven a
65
- glTF ni a FBX: si el look depende de ellos, hay que bakearlo a textura.
66
- - Color space: Base Color en sRGB; Normal, Roughness, Metallic y AO en **Non-Color**. Es el bug
67
- mas comun y el mas silencioso.
68
- - Normal maps: Blender, glTF y Unity usan OpenGL (+Y). **UE5 usa DirectX (-Y)**: hay que invertir
69
- el canal verde o marcarlo en el import.
70
- - Resoluciones potencia de dos. Texel density consistente entre assets del mismo set.
71
- - Cantidad de materiales = draw calls. Atlas antes de sumar materiales.
72
-
73
- ## Animacion
74
-
75
- - **Los constraints no se exportan, los keyframes si.** Todo rig con IK, drivers o constraints se
76
- bakea (`nla.bake` con visual keying) antes de exportar.
77
- - Frame rate del `.blend` igual al del engine. Un mismatch se ve como animacion lenta o acelerada,
78
- no como error.
79
- - Huesos con sufijo `.L` / `.R` para que la simetria funcione.
80
- - Root motion: hueso raiz en el origen. Decidir in-place vs root motion **antes** de animar.
81
-
82
- ## Git
83
-
84
- - `*.blend *.fbx *.glb *.gltf` por **Git LFS**. Verificar `git lfs version` antes de agregar las
85
- entradas: peor que no tenerlas es tenerlas sin LFS instalado.
86
- - `*.blend1` y `*.blend2` (backups de Blender) van al `.gitignore`, nunca al repo.
87
- - Las texturas fuente (`.psd`, `.kra`, `.exr` de bake) por LFS; los `.png` finales tambien.
88
-
89
- ## Integracion con el resto del stack
90
-
91
- `asset-spec` define que asset hace falta → Meshy o modelado a mano lo produce → **Blender lo
92
- limpia y lo exporta** → `asset-audit` valida el resultado en el proyecto.
93
-
94
- Blender es el paso del medio, no el principio ni el final. Si el asset vino de `meshy-derive`, el
95
- `.blend` que bajo es el punto de entrada; no se regenera desde Meshy para arreglar topologia.
@@ -59,6 +59,12 @@ Reglas production-ready para ASP.NET Core (.NET 10), ordenadas por impacto. Cat
59
59
  - `Domain` referenciando `Infrastructure` / EF Core (dependencia hacia afuera)
60
60
  - Forzar Clean Architecture en un CRUD simple (sobre-ingeniería)
61
61
 
62
+ ## How to verify
63
+
64
+ - `dotnet build` with no new warnings, and `dotnet test` for the projects the change touches.
65
+ - Run the API locally and call the changed endpoint with `curl`: show the status code and the body, plus one failure case (invalid input, missing auth).
66
+ - Read the log for those requests: no exception, no unexpected warning.
67
+
62
68
  ---
63
69
 
64
70
  _Derivado de [github/awesome-copilot](https://github.com/github/awesome-copilot) (dotnet-best-practices), [dotnet/skills](https://github.com/dotnet/skills) y [ardalis/CleanArchitecture](https://github.com/ardalis/CleanArchitecture). Condensado al formato Arcane._
@@ -33,3 +33,28 @@ paths:
33
33
  - Unmanaged re-renders triggered by new object/array literals in parent render
34
34
  - DOM manipulation via `document.querySelector` inside a component
35
35
  - Inline handlers defined in JSX for components that memoize
36
+
37
+ ## Visual Quality
38
+
39
+ - Do not ship library defaults as the design: a stock card grid, a centered hero with a gradient blob, the same radius and shadow on every component.
40
+ - Give each screen a hierarchy: one primary action, deliberate emphasis, designed hover, focus and active states.
41
+ - If the app has light and dark themes, both must look designed, not inverted.
42
+
43
+ ## Web Performance
44
+
45
+ - Images declare `width` and `height`, load `lazy` below the fold, and ship as AVIF or WebP near their rendered size.
46
+ - At most two font families, `font-display: swap`, and preload only the critical weight.
47
+ - Animate only `transform` and `opacity`; use `IntersectionObserver` instead of scroll handlers.
48
+ - Third-party scripts load `async` or `defer`, and only on the pages that need them.
49
+
50
+ ## How to verify
51
+
52
+ - The build passes and the type check is clean.
53
+ - For a web task done in Plan + Goal or Goal-driven mode, a Playwright check is required before the task counts as done:
54
+ 1. The page loads with no console errors.
55
+ 2. Screenshots at 320, 768, 1024 and 1440 px wide, in both themes if the app has a dark mode.
56
+ 3. Walk the flow you changed: clicks, forms, navigation.
57
+ 4. Keyboard: every control in the flow is reachable with Tab, usable with Enter or Space, and shows a visible focus.
58
+ 5. Keep the screenshots and show them as evidence.
59
+ - If Playwright is not installed, propose installing it once (`npm i -D @playwright/test`, then `npx playwright install chromium`). If the user declines, close the task with "visual result not verified".
60
+ - In React Native or Flutter Playwright does not apply: say what was not verified visually.
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  paths:
3
3
  - "src/ai/**"
4
+ - "Assets/**/Scripts/**/AI/**"
4
5
  ---
5
6
 
6
7
  # AI Code Rules
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  paths:
3
3
  - "src/audio/**"
4
+ - "Assets/**/Scripts/**/Audio/**"
4
5
  ---
5
6
 
6
7
  # Audio Code Rules
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  paths:
3
3
  - "src/core/**"
4
+ - "Assets/**/Scripts/Core/**"
4
5
  ---
5
6
 
6
7
  # Engine Code Rules
@@ -39,3 +40,9 @@ void FixedUpdate()
39
40
  nearby.AddRange(FindObjectsOfType<Enemy>()); // VIOLATION: scene scan every frame
40
41
  }
41
42
  ```
43
+
44
+ ## How to verify
45
+
46
+ - The project compiles with no new errors: the Unity console, or a batchmode compile (`Unity -batchmode -quit -projectPath . -logFile -`); for Unreal, see `unreal-code`.
47
+ - Run the EditMode and PlayMode tests that cover the change (`-runTests -testPlatform EditMode` or `PlayMode`).
48
+ - You cannot play the game. Name what needs a human playtest (game feel, timing, visuals, input) and list exactly what to try.
@@ -1,6 +1,8 @@
1
1
  ---
2
2
  paths:
3
3
  - "src/gameplay/**"
4
+ - "Assets/**/Scripts/Gameplay/**"
5
+ - "Assets/**/Scripts/Systems/**"
4
6
  ---
5
7
 
6
8
  # Gameplay Code Rules
@@ -28,3 +30,9 @@ float speed = stats.MovementSpeed * Time.deltaTime;
28
30
  float damage = 25.0f; // VIOLATION: hardcoded gameplay value
29
31
  float speed = 5.0f; // VIOLATION: not from config, not using delta
30
32
  ```
33
+
34
+ ## How to verify
35
+
36
+ - The project compiles with no new errors: the Unity console, or a batchmode compile (`Unity -batchmode -quit -projectPath . -logFile -`); for Unreal, see `unreal-code`.
37
+ - Run the EditMode and PlayMode tests that cover the change (`-runTests -testPlatform EditMode` or `PlayMode`).
38
+ - You cannot play the game. Name what needs a human playtest (game feel, timing, visuals, input) and list exactly what to try.
@@ -12,4 +12,4 @@ paths:
12
12
  - Mysteries must have documented "true answers" even if players never learn them
13
13
  - Faction motivations, relationships, and power structures must be internally logical
14
14
  - All narrative text must be localization-ready: no idioms that don't translate, named placeholders for variables
15
- - No line of dialogue should exceed 120 characters for dialogue box constraints
15
+ - No line of dialogue should exceed 200 characters for dialogue box constraints
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  paths:
3
3
  - "src/networking/**"
4
+ - "Assets/**/Scripts/**/Network*/**"
4
5
  ---
5
6
 
6
7
  # Network Code Rules
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  paths:
3
3
  - "assets/shaders/**"
4
+ - "Assets/**/Shaders/**"
5
+ - "**/*.shader"
6
+ - "**/*.hlsl"
4
7
  ---
5
8
 
6
9
  # Shader Code Standards