claude-code-arcane 2.7.1 → 2.9.1

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 (158) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +2 -2
  3. package/agents/ai/ai-architect.md +1 -1
  4. package/agents/ai/data-engineer.md +1 -1
  5. package/agents/ai/data-scientist.md +1 -1
  6. package/agents/ai/ml-engineer.md +1 -1
  7. package/agents/audio/audio-director.md +32 -40
  8. package/agents/audio/audio-programmer.md +32 -45
  9. package/agents/audio/audio-qa.md +36 -47
  10. package/agents/audio/composer.md +32 -42
  11. package/agents/audio/technical-sound-designer.md +32 -43
  12. package/agents/audio/voice-director.md +33 -42
  13. package/agents/business/business-ops-lead.md +1 -0
  14. package/agents/business/financial-analyst.md +1 -0
  15. package/agents/business/sales-engineer.md +1 -0
  16. package/agents/career/career-strategist.md +1 -1
  17. package/agents/career/cv-reviewer.md +1 -1
  18. package/agents/career/hiring-manager.md +1 -1
  19. package/agents/career/mock-interviewer.md +1 -1
  20. package/agents/clevel/ceo-advisor.md +2 -2
  21. package/agents/clevel/cfo-advisor.md +2 -2
  22. package/agents/clevel/chief-of-staff.md +2 -2
  23. package/agents/clevel/cmo-advisor.md +2 -2
  24. package/agents/clevel/coo-advisor.md +2 -2
  25. package/agents/clevel/cto-advisor.md +2 -2
  26. package/agents/devops/cloud-architect.md +2 -3
  27. package/agents/devops/devops-engineer.md +48 -0
  28. package/agents/devops/platform-lead.md +2 -3
  29. package/agents/devops/sre-lead.md +2 -3
  30. package/agents/ecommerce/ecommerce-architect.md +1 -0
  31. package/agents/engineering/android-engineer.md +1 -0
  32. package/agents/engineering/backend-architect.md +3 -4
  33. package/agents/engineering/chief-technology-officer.md +53 -0
  34. package/agents/engineering/database-architect.md +2 -3
  35. package/agents/engineering/dotnet-engineer.md +2 -1
  36. package/agents/engineering/e2e-tester.md +2 -1
  37. package/agents/engineering/flutter-engineer.md +1 -0
  38. package/agents/engineering/frontend-architect.md +3 -4
  39. package/agents/engineering/go-engineer.md +2 -1
  40. package/agents/engineering/ios-engineer.md +1 -0
  41. package/agents/engineering/mobile-lead.md +59 -0
  42. package/agents/engineering/nestjs-engineer.md +2 -1
  43. package/agents/engineering/nextjs-engineer.md +2 -1
  44. package/agents/engineering/nextjs-reviewer.md +4 -3
  45. package/agents/engineering/node-engineer.md +2 -1
  46. package/agents/engineering/react-engineer.md +2 -1
  47. package/agents/engineering/react-native-engineer.md +2 -1
  48. package/agents/engineering/sql-specialist.md +3 -2
  49. package/agents/engineering/vp-engineering.md +54 -0
  50. package/agents/freelance/client-screener.md +1 -1
  51. package/agents/freelance/discovery-call.md +1 -1
  52. package/agents/freelance/pipeline-strategist.md +1 -1
  53. package/agents/freelance/proposal-reviewer.md +1 -1
  54. package/agents/game/accessibility-specialist.md +39 -51
  55. package/agents/game/ai-programmer.md +32 -44
  56. package/agents/game/analytics-engineer.md +32 -44
  57. package/agents/game/art-director.md +1 -0
  58. package/agents/game/creative-director.md +48 -0
  59. package/agents/game/economy-designer.md +35 -60
  60. package/agents/game/game-designer.md +1 -0
  61. package/agents/game/gameplay-programmer.md +32 -47
  62. package/agents/game/lead-programmer.md +2 -1
  63. package/agents/game/level-designer.md +35 -60
  64. package/agents/game/live-ops-designer.md +36 -56
  65. package/agents/game/narrative-director.md +1 -0
  66. package/agents/game/network-programmer.md +32 -44
  67. package/agents/game/performance-analyst.md +32 -44
  68. package/agents/game/producer.md +50 -0
  69. package/agents/game/qa-lead.md +3 -2
  70. package/agents/game/qa-tester-gamedev.md +33 -45
  71. package/agents/game/release-manager.md +2 -1
  72. package/agents/game/sound-designer.md +33 -45
  73. package/agents/game/systems-designer.md +35 -60
  74. package/agents/game/technical-artist.md +32 -44
  75. package/agents/game/technical-director.md +2 -1
  76. package/agents/game/ue-blueprint-specialist.md +36 -48
  77. package/agents/game/ue-gas-specialist.md +36 -48
  78. package/agents/game/ue-replication-specialist.md +36 -48
  79. package/agents/game/ue-umg-specialist.md +36 -48
  80. package/agents/game/unity-shader-specialist.md +36 -48
  81. package/agents/game/unity-specialist.md +36 -51
  82. package/agents/game/unreal-specialist.md +36 -48
  83. package/agents/game/ux-designer.md +35 -55
  84. package/agents/game/world-builder.md +35 -60
  85. package/agents/game/writer.md +32 -50
  86. package/agents/integrations/api-tools-specialist.md +2 -2
  87. package/agents/integrations/comms-tools-specialist.md +2 -2
  88. package/agents/integrations/design-tools-specialist.md +53 -7
  89. package/agents/integrations/docs-tools-specialist.md +18 -2
  90. package/agents/integrations/integrations-architect.md +2 -2
  91. package/agents/integrations/project-tools-specialist.md +18 -2
  92. package/agents/management/delivery-manager.md +2 -1
  93. package/agents/management/program-director.md +2 -1
  94. package/agents/management/project-manager.md +2 -2
  95. package/agents/management/scrum-master.md +2 -2
  96. package/agents/marketing/content-lead.md +1 -0
  97. package/agents/marketing/growth-lead.md +1 -0
  98. package/agents/marketing/marketing-analyst.md +1 -0
  99. package/agents/marketing/marketing-director.md +1 -0
  100. package/agents/marketing/seo-lead.md +1 -0
  101. package/agents/product/chief-product-officer.md +1 -0
  102. package/agents/product/design-system-lead.md +3 -3
  103. package/agents/product/product-manager.md +2 -2
  104. package/agents/product/ui-lead.md +2 -4
  105. package/agents/product/ux-lead.md +2 -5
  106. package/agents/quality/qa-director.md +2 -5
  107. package/agents/quality/qa-engineer.md +1 -0
  108. package/agents/quality/security-architect.md +2 -5
  109. package/agents/regulatory/compliance-officer.md +1 -0
  110. package/agents/regulatory/quality-manager.md +1 -0
  111. package/agents/regulatory/regulatory-director.md +1 -0
  112. package/agents/visualnovel/vn-comfyui-artist.md +35 -14
  113. package/agents/visualnovel/vn-narrative-director.md +36 -30
  114. package/agents/visualnovel/vn-producer.md +36 -12
  115. package/agents/visualnovel/vn-renpy-developer.md +34 -12
  116. package/agents/visualnovel/vn-scene-director.md +34 -9
  117. package/agents/visualnovel/vn-ui-designer.md +36 -20
  118. package/dist/cli.js +487 -322
  119. package/docs/USER-GUIDE.md +26 -1
  120. package/docs/agent-hierarchy.md +42 -2
  121. package/docs/collaborative-design.md +2 -1
  122. package/docs/directory-structure.md +18 -13
  123. package/hooks/statusline.sh +17 -4
  124. package/output-styles/arcane.md +53 -0
  125. package/package.json +2 -1
  126. package/profiles/backend-go.yaml +1 -0
  127. package/profiles/core.yaml +4 -0
  128. package/profiles/docs.yaml +0 -2
  129. package/profiles/security.yaml +1 -1
  130. package/profiles/unity-design.yaml +2 -0
  131. package/profiles/unity-dev.yaml +2 -0
  132. package/profiles/unreal-dev.yaml +1 -0
  133. package/profiles/visual-novel.yaml +1 -0
  134. package/rules/code-comments.md +63 -0
  135. package/rules/gamedev/audio-code.md +0 -1
  136. package/rules/gamedev/gameplay-code.md +0 -1
  137. package/rules/gamedev/shader-code.md +0 -1
  138. package/skills/architecture-review/SKILL.md +1 -0
  139. package/skills/balance-check/SKILL.md +1 -0
  140. package/skills/code-review/SKILL.md +49 -16
  141. package/skills/create-epics/SKILL.md +2 -1
  142. package/skills/create-stories/SKILL.md +5 -4
  143. package/skills/database-indexing/SKILL.md +2 -1
  144. package/skills/help/SKILL.md +6 -2
  145. package/skills/hotfix/SKILL.md +11 -3
  146. package/skills/patch-notes/SKILL.md +2 -1
  147. package/skills/perf-profile/SKILL.md +0 -1
  148. package/skills/prototype/SKILL.md +0 -2
  149. package/skills/qa-plan/SKILL.md +2 -1
  150. package/skills/retrospective/SKILL.md +4 -2
  151. package/skills/security-audit/SKILL.md +2 -1
  152. package/skills/skill-auditor/SKILL.md +16 -4
  153. package/skills/skill-auditor/references/frontmatter-spec.md +93 -86
  154. package/skills/slo-sli/SKILL.md +2 -2
  155. package/skills/sprint-plan/SKILL.md +4 -2
  156. package/skills/story-readiness/SKILL.md +1 -1
  157. package/skills/ux-design/SKILL.md +2 -1
  158. package/skills/ux-review/SKILL.md +2 -1
@@ -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**, **109 agents**, **17 hooks**, and **30 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 **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.
6
6
 
7
7
  ## Table of Contents
8
8
 
@@ -392,6 +392,31 @@ my-project/.claude/
392
392
  └── docs/ # General documentation
393
393
  ```
394
394
 
395
+ ### Qué agentes instala un profile
396
+
397
+ La lista `agents:` de un profile acepta dos formas:
398
+
399
+ ```yaml
400
+ agents:
401
+ - game # la división entera: 30 agentes
402
+ - quality/security-architect # solo ese agente
403
+ ```
404
+
405
+ La forma por división es la original y sigue siendo el default. La granular
406
+ existe porque **las divisiones son temáticas, no funcionales**: `qa-lead`,
407
+ `ux-designer` y `performance-analyst` viven en `game/` y los quieren profiles
408
+ que no tienen nada de gamedev. Antes la única manera de alcanzar uno era
409
+ instalar los 30 — justo el peso que los profiles existen para evitar.
410
+
411
+ Reglas:
412
+
413
+ - Si un profile ya trae la división entera, una entrada granular de esa misma
414
+ división es un no-op, no una segunda copia.
415
+ - Al desinstalar, una entrada granular borra solo su archivo, y se lleva el
416
+ directorio de la división únicamente si queda vacío.
417
+ - Si otro profile activo declara la división completa, esa gana: la entrada
418
+ granular no borra nada, porque rompería al otro profile.
419
+
395
420
  ### settings.json
396
421
 
397
422
  Generated automatically with merged permissions from all selected profiles. Includes:
@@ -21,7 +21,14 @@ Cada división sigue una jerarquía de estudio real con 3 niveles de autoridad:
21
21
 
22
22
  ---
23
23
 
24
- ## Roster Completo (143 Agentes)
24
+ ## Roster Completo (115 Agentes)
25
+
26
+ > Los 109 agentes de abajo son los que existen en `agents/`. El roster
27
+ > original de este documento listaba 143, de los cuales se implementaron
28
+ > 109: los 34 restantes generaban delegaciones a agentes inexistentes.
29
+ > `src/__tests__/agents-integrity.test.ts` verifica que cada delegacion
30
+ > resuelva, asi que agregar un nombre aca sin crear el archivo rompe el
31
+ > build.
25
32
 
26
33
  ### División 1 — Game Development Studio (44)
27
34
 
@@ -150,4 +157,37 @@ Se lanzan desde los skills de `+freelance`. `client-screener` y `proposal-review
150
157
  3. **Lead de una división → Lead de otra división** (para colaboración cross-area)
151
158
  4. **Director → Director** (para conflictos estratégicos)
152
159
 
153
- **Los agentes NUNCA escriben a archivos directamente.** Todos los writes los hace la main session después de que el agente devuelve análisis/propuestas al usuario.
160
+ ## Consultores y ejecutores
161
+
162
+ Cada agente es una de dos cosas, nunca las dos. La distinción no es de estilo:
163
+ **un subagente no puede hacer preguntas.** `AskUserQuestion` no está en su pool
164
+ de tools y su única salida es el reporte final al parent. Un agente con
165
+ `Write`/`Edit` y la instrucción de pedir aprobación antes de escribir lee,
166
+ formula sus preguntas, no tiene a quién hacérselas, devuelve texto y no toca un
167
+ archivo. Ese fue el bug: 46 de 109 agentes estaban en esa situación.
168
+
169
+ ### Consultores (15) - read-only por diseño
170
+
171
+ `career/` (4), `freelance/` (4), `clevel/` (6) y `engineering/nextjs-reviewer`.
172
+
173
+ Existen para dar una lectura independiente: el que escribió el CV no lo puede
174
+ revisar, y el que redactó la propuesta está convencido de su propio texto.
175
+ Declaran `tools` sin `Write`/`Edit` y `disallowedTools: Bash, Write, Edit`.
176
+ Read-only por diseño, no por precaución.
177
+
178
+ ### Ejecutores (94) - escriben
179
+
180
+ Todo el resto. Declaran `permissionMode: acceptEdits`, que es el campo oficial
181
+ que deja al subagente escribir sin gate interactivo.
182
+
183
+ Su protocolo no es "preguntá y esperá" sino **declará el supuesto y seguí**:
184
+ ante una ambigüedad eligen la opción más consistente con el código existente,
185
+ la anotan en el reporte en una línea que empieza con `ASSUMPTION:` para que el
186
+ caller pueda grepearla y contradecirla, y avanzan. La disciplina de leer el
187
+ diseño antes de escribir se mantiene; lo que se eliminó es la espera imposible.
188
+
189
+ ### Quién aplica los cambios
190
+
191
+ El ejecutor escribe sus propios archivos. La main session sigue siendo la que
192
+ decide *a quién* invocar y la que integra los resultados, pero ya no es el
193
+ único camino a disco.
@@ -434,6 +434,7 @@ Si alguno es "no" → el agente no fue lo suficientemente colaborativo.
434
434
  Este principio debe estar embebido en:
435
435
 
436
436
  - **CLAUDE.md** — sección de collaboration protocol
437
- - **Todos los agents** — enforce question-asking antes de Write/Edit
437
+ - **Skills y main session** — enforce question-asking antes de Write/Edit
438
+ - **Subagentes ejecutores** — NO pueden preguntar (`AskUserQuestion` no está en su pool). Declaran el supuesto con `ASSUMPTION:` en el reporte y avanzan. Ver `agent-hierarchy.md` § Consultores y ejecutores.
438
439
  - **Todos los skills** — require approval antes de escribir
439
440
  - **Team orchestrators** — decision points entre fases
@@ -27,19 +27,24 @@ Claude-Code-Arcane/
27
27
  │ ├── regulatory.profile # Add-on: Regulatory & compliance
28
28
  │ └── ... # agile, testing, infra, security, etc.
29
29
  │
30
- ├── agents/ # 80 agent definitions (root level)
31
- │ ├── game/ # División 1 — Game Dev (27 agents)
32
- │ ├── engineering/ # División 2 — Software Eng (14 agents)
33
- │ ├── devops/ # División 3 — DevOps (3 agents)
34
- │ ├── product/ # División 4 — Product & Design (5 agents)
35
- │ ├── management/ # División 5 — PMO (4 agents)
36
- │ ├── quality/ # División 6 — Quality & Security (3 agents)
37
- │ ├── integrations/ # División 8 — Tools & Integrations (6 agents)
38
- │ ├── ai/ # División 9 — AI & Data Science (4 agents)
39
- │ ├── clevel/ # División 10 — C-Suite Advisory (6 agents)
40
- │ ├── business/ # División 11 — Business & Finance (3 agents)
41
- │ ├── marketing/ # División 12 — Marketing (5 agents)
42
- │ └── regulatory/ # División 13 — Regulatory (3 agents)
30
+ ├── agents/ # 115 agent definitions (root level)
31
+ │ ├── ai/ # 4 agents
32
+ │ ├── audio/ # 6 agents
33
+ │ ├── business/ # 3 agents
34
+ │ ├── career/ # 4 agents
35
+ │ ├── clevel/ # 6 agents
36
+ │ ├── devops/ # 4 agents
37
+ │ ├── ecommerce/ # 1 agent
38
+ │ ├── engineering/ # 19 agents
39
+ │ ├── freelance/ # 4 agents
40
+ │ ├── game/ # 32 agents
41
+ │ ├── integrations/ # 6 agents
42
+ │ ├── management/ # 4 agents
43
+ │ ├── marketing/ # 5 agents
44
+ │ ├── product/ # 5 agents
45
+ │ ├── quality/ # 3 agents
46
+ │ ├── regulatory/ # 3 agents
47
+ │ └── visualnovel/ # 6 agents
43
48
  │
44
49
  ├── .claude/ # Claude Code configuration
45
50
  │ ├── settings.json # Hooks, permissions, safety
@@ -15,12 +15,17 @@ fi
15
15
  # Skills/agents Claude can actually invoke = global (~/.claude) + project (.claude),
16
16
  # deduped by name (project overrides global). Follow -L so .claude/skills junctions count.
17
17
  # Top-level only (mindepth/maxdepth 2) so bundled sub-skills don't inflate the total.
18
+ #
19
+ # Names are extracted with a single awk, never `xargs -n1 dirname|basename`: that spawned one
20
+ # process per file (~160 here), which cost ~1.7s of the ~2.5s total on Windows and made the
21
+ # status line miss its execution window under load — Claude Code drops the output on a
22
+ # non-zero exit or an abort, so the bar vanished at random.
18
23
  SKILLS=$( { find -L "$HOME/.claude/skills" -mindepth 2 -maxdepth 2 -name "SKILL.md" 2>/dev/null;
19
24
  find -L .claude/skills -mindepth 2 -maxdepth 2 -name "SKILL.md" 2>/dev/null; } \
20
- | xargs -n1 dirname 2>/dev/null | xargs -n1 basename 2>/dev/null | sort -u | wc -l | tr -d ' ')
25
+ | awk -F/ 'NF>1{print $(NF-1)}' | sort -u | wc -l | tr -d ' ')
21
26
  AGENTS=$( { find -L "$HOME/.claude/agents" -name "*.md" 2>/dev/null;
22
27
  find -L .claude/agents -name "*.md" 2>/dev/null; } \
23
- | xargs -n1 basename 2>/dev/null | sort -u | wc -l | tr -d ' ')
28
+ | awk -F/ '{print $NF}' | sort -u | wc -l | tr -d ' ')
24
29
 
25
30
  PYCMD=$(command -v python 2>/dev/null || command -v python3 2>/dev/null || command -v py 2>/dev/null)
26
31
 
@@ -117,8 +122,16 @@ PREFIX="🔮 ${PROJECT}"
117
122
 
118
123
  PARTS="${PREFIX}"
119
124
  [ -n "$BRANCH" ] && PARTS="${PARTS} | 🌿 ${BRANCH}"
120
- PARTS="${PARTS} | 🛠️ ${SKILLS} skills"
121
- [ "$AGENTS" -gt 0 ] 2>/dev/null && PARTS="${PARTS} | 🤖 ${AGENTS} agents"
125
+ PARTS="${PARTS} | 🛠️ ${SKILLS:-0} skills"
126
+ case "$AGENTS" in
127
+ ''|*[!0-9]*) ;;
128
+ 0) ;;
129
+ *) PARTS="${PARTS} | 🤖 ${AGENTS} agents" ;;
130
+ esac
122
131
  [ -n "$EXTRA" ] && PARTS="${PARTS} | ${EXTRA}"
123
132
 
124
133
  echo "$PARTS"
134
+
135
+ # Claude Code discards the status line on a non-zero exit, so never inherit one from the
136
+ # last conditional above.
137
+ exit 0
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: arcane
3
+ description: Respuestas compactas, tablas para comparar, lenguaje literal y estructura legible — pensado para lectura con TEA y dislexia.
4
+ ---
5
+
6
+ # Arcane
7
+
8
+ Respondé de forma compacta, literal y estructurada. Estas instrucciones son sobre **la
9
+ forma** de la respuesta, no sobre el alcance del trabajo: no reducen lo que hay que hacer ni
10
+ autorizan entregar menos.
11
+
12
+ ## Largo
13
+
14
+ - **La respuesta primero.** Primera línea: qué pasó o qué contestás. El detalle va después,
15
+ para quien lo quiera.
16
+ - **Sin preámbulo.** No repitas la pregunta, no anuncies lo que vas a hacer, no cierres
17
+ resumiendo lo que acabás de decir.
18
+ - **Un tema por párrafo, tres líneas como máximo.** Si un párrafo crece, partilo o pasalo a
19
+ lista.
20
+ - **Cortá cuando terminaste.** Nada de relleno, cierres corteses ni ofertas genéricas de
21
+ ayuda.
22
+ - **No enumeres lo que descartaste.** Si evaluaste opciones y elegiste, decí la elegida y el
23
+ porqué en una línea.
24
+
25
+ ## Estructura
26
+
27
+ - **Tabla siempre que compares.** Dos o más cosas con dos o más atributos (opciones,
28
+ versiones, proyectos, trade-offs) van en tabla, no en prosa ni en bullets paralelos. Una
29
+ columna por atributo, una fila por cosa.
30
+ - **Listas para pasos y hallazgos.** Prosa solo para el razonamiento que une las cosas.
31
+ - **Títulos cuando hay más de un tema.** Que se pueda saltar a la parte que importa sin
32
+ leer todo.
33
+ - **`backticks` en todo identificador** — archivos, comandos, ramas, funciones, flags.
34
+ - **Bold para lo importante**, no italics: es más fácil de decodificar. Nunca MAYÚSCULAS
35
+ para enfatizar, deforman la silueta de la palabra.
36
+
37
+ ## Lenguaje
38
+
39
+ - **Literal.** Sin ironía, sarcasmo, modismos, metáforas ni preguntas retóricas. Si algo
40
+ está mal, decilo derecho.
41
+ - **Un término por concepto, siempre el mismo.** No alternes sinónimos para la misma cosa:
42
+ si es `worktree`, es `worktree` en toda la respuesta.
43
+ - **Oraciones cortas, una idea cada una.** Preferí punto sobre subordinada.
44
+ - **Voz activa y sujeto explícito.** Decí quién hace qué.
45
+ - **La incertidumbre se declara, no se insinúa.** "No sé si X" o "no lo verifiqué", en vez
46
+ de prosa condicional que deja al lector adivinando el nivel de confianza.
47
+ - **Decí explícitamente qué esperás del otro.** Si hace falta una decisión, que se vea que
48
+ hace falta y cuáles son las alternativas.
49
+
50
+ ## Números y datos
51
+
52
+ - **El dato antes que el adjetivo.** "62 commits atrás" en vez de "bastante atrasado".
53
+ - **Unidad y fecha completas.** `2026-09-04`, no "ayer"; `312 KB`, no "poco".
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-code-arcane",
3
- "version": "2.7.1",
3
+ "version": "2.9.1",
4
4
  "description": "Skills, agents, hooks and rules for Claude Code — installable via npx claude-code-arcane",
5
5
  "type": "module",
6
6
  "bin": {
@@ -15,6 +15,7 @@
15
15
  "rules/",
16
16
  "templates/",
17
17
  "docs/",
18
+ "output-styles/",
18
19
  "CHANGELOG.md"
19
20
  ],
20
21
  "scripts": {
@@ -46,6 +46,7 @@ rules:
46
46
 
47
47
  agents:
48
48
  - engineering
49
+ - quality/security-architect
49
50
 
50
51
  permissions:
51
52
  allow:
@@ -32,9 +32,13 @@ rules:
32
32
  - prototype-code
33
33
  - test-standards
34
34
  - implementation-workflow
35
+ - code-comments
35
36
  gamedev:
36
37
  []
37
38
 
39
+ output_styles:
40
+ - arcane
41
+
38
42
  agents:
39
43
  - quality
40
44
 
@@ -8,8 +8,6 @@ skills:
8
8
  - xlsx-generator
9
9
  - docx-generator
10
10
  - architecture-decision
11
- - architecture-review
12
-
13
11
  rules:
14
12
  universal:
15
13
  []
@@ -21,7 +21,7 @@ rules:
21
21
  []
22
22
 
23
23
  agents:
24
- []
24
+ - quality/security-architect
25
25
 
26
26
  permissions:
27
27
  allow:
@@ -20,6 +20,7 @@ skills:
20
20
  - playtest-report
21
21
  - consistency-check
22
22
  - asset-audit
23
+ - architecture-review
23
24
 
24
25
  rules:
25
26
  universal:
@@ -30,6 +31,7 @@ rules:
30
31
 
31
32
  agents:
32
33
  - game
34
+ - product/ux-lead
33
35
 
34
36
  permissions:
35
37
  allow:
@@ -23,6 +23,7 @@ skills:
23
23
  - consistency-check
24
24
  - doc-gdd
25
25
  - playtest-report
26
+ - architecture-review
26
27
 
27
28
  rules:
28
29
  universal:
@@ -37,6 +38,7 @@ rules:
37
38
 
38
39
  agents:
39
40
  - game
41
+ - quality/security-architect
40
42
 
41
43
  permissions:
42
44
  allow:
@@ -3,6 +3,7 @@ description: "Programador Unreal Engine 5 — C++, Blueprints, GAS, replication,
3
3
  category: gamedev
4
4
 
5
5
  skills:
6
+ - architecture-review
6
7
  # Foundation — read this first, every other ue-* skill depends on it
7
8
  - ue-project-context
8
9
  - ue-naming-conventions
@@ -20,6 +20,7 @@ skills:
20
20
  - asset-spec
21
21
  - playtest-report
22
22
  - balance-check
23
+ - architecture-review
23
24
 
24
25
  rules:
25
26
  universal:
@@ -0,0 +1,63 @@
1
+ ---
2
+ paths:
3
+ - "**/*.cs"
4
+ - "**/*.ts"
5
+ - "**/*.tsx"
6
+ - "**/*.js"
7
+ - "**/*.jsx"
8
+ - "**/*.py"
9
+ - "**/*.go"
10
+ - "**/*.java"
11
+ - "**/*.kt"
12
+ - "**/*.swift"
13
+ - "**/*.rb"
14
+ - "**/*.rs"
15
+ - "**/*.php"
16
+ - "**/*.dart"
17
+ - "**/*.c"
18
+ - "**/*.cpp"
19
+ - "**/*.cc"
20
+ - "**/*.h"
21
+ - "**/*.hpp"
22
+ - "**/*.sh"
23
+ - "**/*.sql"
24
+ - "**/*.shader"
25
+ - "**/*.hlsl"
26
+ - "**/*.glsl"
27
+ - "**/*.gd"
28
+ - "**/*.lua"
29
+ ---
30
+
31
+ # Code Comments Rule
32
+
33
+ Comments are written in **English**, whatever language the conversation is in.
34
+
35
+ ## Never write
36
+
37
+ - **Session narration.** No comment records what was decided, changed, tried or removed
38
+ while working. Not `// removed the old validation`, not `// now uses a dictionary instead
39
+ of a list`, not `// moved above the null check as discussed`, not `// changed from 30 to
40
+ 50`. The commit message carries the story; the code carries the result.
41
+ - **WHAT restated.** The code already says what it does. `// increment the counter` above
42
+ `counter++` is noise.
43
+ - **Ticket, task or doc references.** No `// added for JIRA-123`, no `// part of sprint04`,
44
+ no `// implements the boss design doc`. Traceability lives in the commit and the PR, where
45
+ it stays accurate and searchable.
46
+ - **Attribution or dates.** No `// author:`, no `// created 2026-09-04`. Git owns that and
47
+ never goes stale.
48
+ - **Multi-paragraph docstrings on simple functions.**
49
+ - **`// used by X`.** Tooling answers that better and this rots the first time X moves.
50
+
51
+ ## Write
52
+
53
+ - **The WHY that the code cannot show.** A constant that looks arbitrary, an ordering that
54
+ matters, a deliberate break from the surrounding pattern.
55
+ - **Workarounds**, with a link to the upstream bug.
56
+ - **Non-obvious invariants or preconditions** a caller has to respect.
57
+ - **Doc comments on public APIs** consumed from outside the module. Private ones need none.
58
+ - **`TODO(@owner, YYYY-MM-DD): description`.** Never a bare `TODO`.
59
+
60
+ ## Shape
61
+
62
+ One line, unless the reason honestly needs two. A comment that needs a paragraph to explain
63
+ the code beneath it is a signal to fix the code instead.
@@ -14,7 +14,6 @@ paths:
14
14
  - Voice budget is a hard limit: define max simultaneous voices per category and drop by priority, never let it grow unbounded
15
15
  - Audio must degrade silently — a missing bank or failed event NEVER throws into the gameplay frame
16
16
  - Keep the audio update off the render-critical path; audio work budget is 5-10% of frame time
17
- - Reference the audio bible section each event implements in code comments
18
17
 
19
18
  ## Examples
20
19
 
@@ -11,7 +11,6 @@ paths:
11
11
  - Every gameplay system must implement a clear interface
12
12
  - State machines must have explicit transition tables with documented states
13
13
  - Write unit tests for all gameplay logic — separate logic from presentation
14
- - Document which design doc each feature implements in code comments
15
14
  - No static singletons for game state — use dependency injection
16
15
 
17
16
  ## Examples
@@ -20,7 +20,6 @@ visual quality, performance, and cross-platform compatibility.
20
20
  - Group related parameters (Unity: `[Header]`, Unreal: Category)
21
21
  - Comment non-obvious calculations (especially math-heavy sections)
22
22
  - No magic numbers — use named constants or documented uniform values
23
- - Include authorship and purpose comment at the top of each shader file
24
23
 
25
24
  ## Performance Requirements
26
25
  - Document the target platform and complexity budget for each shader
@@ -5,6 +5,7 @@ category: "workflow"
5
5
  argument-hint: "[focus: full | coverage | consistency | engine | single-gdd path | rtm]"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep, Write, Task, AskUserQuestion
8
+ context: fork
8
9
  agent: technical-director
9
10
  model: opus
10
11
  ---
@@ -5,6 +5,7 @@ category: "gamedev"
5
5
  argument-hint: "[system-name|path-to-data-file]"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep
8
+ context: fork
8
9
  agent: economy-designer
9
10
  ---
10
11
 
@@ -1,20 +1,34 @@
1
1
  ---
2
2
  name: code-review
3
- description: "Architectural and quality code review: standards compliance, SOLID principles, testability, performance."
3
+ description: "Architectural and quality code review: standards compliance, SOLID principles, testability, performance. Usar para revisar un archivo o directorio antes de mergear, o cuando se pide code review."
4
4
  category: "workflow"
5
5
  argument-hint: "[path-to-file-or-directory]"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep, Bash, Task
8
- agent: lead-programmer
9
8
  ---
10
9
 
11
10
  ## Phase 1: Load Target Files
12
11
 
13
12
  Read target file(s) in full. Read CLAUDE.md for project coding standards.
14
13
 
15
- ## Phase 2: Identify Engine Specialists
14
+ ## Phase 2: Resolve which specialists exist
16
15
 
17
- Read `.claude/docs/technical-preferences.md` → `## Engine Specialists`. Note Primary, Language/Code, Shader, UI specialists. If `[TO BE CONFIGURED]` → skip engine specialist steps.
16
+ **Do not invent specialist names.** List what is actually installed:
17
+
18
+ !`ls .claude/agents/*/ 2>/dev/null | sed 's/\.md$//' | tr '\n' ' ' || echo "NO-AGENTS-INSTALLED"`
19
+
20
+ Rules:
21
+
22
+ - Only spawn an agent whose file appeared in that listing. A `Task` call naming
23
+ an agent that is not installed does not fail loudly - it falls back to a
24
+ general-purpose agent with no specialised prompt, which reads broadly, burns
25
+ its turn budget, and returns a generic summary. That is worse than not
26
+ spawning at all.
27
+ - If the listing is empty or `NO-AGENTS-INSTALLED`, **skip Phase 7 entirely**
28
+ and do the whole review inline. Say so in the report.
29
+ - Match by role, not by guess: a reviewer for the stack under review
30
+ (`react-engineer`, `go-engineer`, `nestjs-engineer`, `unity-specialist`,
31
+ `unreal-specialist`…), plus `qa-engineer` for testability when installed.
18
32
 
19
33
  ## Phase 3: ADR Compliance Check
20
34
 
@@ -30,34 +44,53 @@ Per referenced ADR, read Decision + Consequences sections, classify deviations:
30
44
 
31
45
  ## Phase 4: Standards Compliance
32
46
 
33
- Identify system category (engine, gameplay, AI, networking, UI, tools). Check: doc comments on public methods, cyclomatic complexity <10/method, methods ≤40 lines, DI (no static singletons), config from data files, interfaces exposed.
47
+ Identify system category from the code under review. Check: doc comments on public methods, cyclomatic complexity <10/method, methods ≤40 lines, DI (no static singletons), config from data files, interfaces exposed.
34
48
 
35
49
  ## Phase 5: Architecture and SOLID
36
50
 
37
51
  - **Architecture**: correct dependency direction, no circular deps, proper layer separation, events for cross-system communication, consistent patterns
38
52
  - **SOLID**: SRP, OCP, LSP, ISP, DIP — check each principle
39
53
 
40
- ## Phase 6: Game-Specific Concerns
54
+ ## Phase 6: Runtime-loop concerns — only for game/realtime projects
55
+
56
+ **Skip this phase unless the project actually has a frame loop.** Signal: a
57
+ Unity, Unreal or Godot project file, or a render/tick loop in the code under
58
+ review. On a backend or web project this phase produces noise, not findings.
41
59
 
42
- Frame-rate independence (delta time), no allocations in hot paths, null/empty handling, thread safety, resource cleanup.
60
+ When it applies: frame-rate independence (delta time), no allocations in hot
61
+ paths, null/empty handling, thread safety, resource cleanup.
43
62
 
44
63
  ## Phase 7: Specialist Reviews (Parallel)
45
64
 
46
- Spawn applicable specialists via Task simultaneously:
47
- - Primary language files → Language/Code Specialist
48
- - Shader files → Shader Specialist
49
- - UI code → UI Specialist
50
- - Cross-cutting → Primary Specialist
65
+ Only if Phase 2 found installed agents. **At most 3 in parallel** — beyond that
66
+ the wall-clock cost outweighs the extra coverage.
51
67
 
52
- ### QA Testability Review
68
+ | Trigger in the diff | Spawn (only if installed) |
69
+ |---------------------|---------------------------|
70
+ | Primary language of the changed files | the matching `*-engineer` / `*-specialist` |
71
+ | Shader / material files | `unity-shader-specialist` or `technical-artist` |
72
+ | UI / component code | `ui-lead` or `ue-umg-specialist` |
73
+ | Test or testability questions | `qa-engineer` |
53
74
 
54
- For Logic/Integration stories, spawn `qa-tester` in parallel. Evaluate: test hooks exposed, QA test cases map to code paths, acceptance criteria testable, new edge cases covered, side effects tested. For Visual/UI stories: verify manual steps are reachable.
75
+ Give each one the file list and the specific question. Do **not** ask an agent
76
+ to "review this" — ask what you actually need decided.
77
+
78
+ ### Testability review
79
+
80
+ When `qa-engineer` is installed, ask it: are test hooks exposed, do test cases
81
+ map to code paths, are acceptance criteria testable, are new edge cases and
82
+ side effects covered. For visual/UI changes: are the manual steps reachable.
55
83
 
56
84
  ## Phase 8: Output Review
57
85
 
58
- Report sections: Engine Specialist Findings, Testability, ADR Compliance, Standards Compliance (X/6), Architecture, SOLID, Game-Specific Concerns, Positive Observations, Required Changes (violations always here), Suggestions. Verdict: APPROVED / APPROVED WITH SUGGESTIONS / CHANGES REQUIRED.
86
+ Report sections: Specialist Findings (name which agents ran, and say plainly if
87
+ none were installed), Testability, ADR Compliance, Standards Compliance (X/6),
88
+ Architecture, SOLID, Runtime-loop Concerns (omit if skipped), Positive
89
+ Observations, Required Changes (violations always here), Suggestions.
90
+
91
+ Verdict: APPROVED / APPROVED WITH SUGGESTIONS / CHANGES REQUIRED.
59
92
 
60
- This skill is read-only.
93
+ This skill is read-only: it writes no files. The report is the deliverable.
61
94
 
62
95
  ## Phase 9: Next Steps
63
96
 
@@ -5,7 +5,8 @@ category: "agile"
5
5
  argument-hint: "[system-name | layer: foundation|core|feature|presentation | all] [--review full|lean|solo]"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep, Write, Task, AskUserQuestion
8
- agent: technical-director
8
+ context: fork
9
+ agent: product-manager
9
10
  ---
10
11
  # Create Epics
11
12
 
@@ -5,7 +5,8 @@ category: "agile"
5
5
  argument-hint: "[epic-slug | epic-path] [--review full|lean|solo]"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep, Write, Task, AskUserQuestion
8
- agent: lead-programmer
8
+ context: fork
9
+ agent: product-manager
9
10
  ---
10
11
  # Create Stories
11
12
 
@@ -41,7 +42,7 @@ For each GDD AC: group related criteria → each group = one story. Order: found
41
42
 
42
43
  ### 4b. QA Lead Gate (full mode only)
43
44
 
44
- Solo/lean → skip. Full → spawn `qa-lead` gate QL-STORY-READY with story list + ACs + types + TR-IDs. Revise until ADEQUATE. Then qa-lead produces test case specs per story:
45
+ Solo/lean → skip. Full → spawn `qa-director` gate QL-STORY-READY with story list + ACs + types + TR-IDs. Revise until ADEQUATE. Then `qa-director` produces test case specs per story:
45
46
 
46
47
  - **Logic/Integration:** Given/When/Then + edge cases per AC
47
48
  - **Visual/UI:** Setup/Verify/Pass condition per AC
@@ -54,13 +55,13 @@ Show full story list (title, type, ADR, TR-IDs covered, test required) before wr
54
55
 
55
56
  ## 6. Write Story Files
56
57
 
57
- Each story file includes: header (epic, status, layer, type, manifest version), context (GDD path, TR-ID, ADR + decision summary, engine risk + notes, manifest rules), acceptance criteria (from GDD), implementation notes (from ADR), out of scope, QA test cases (from qa-lead), test evidence (required path by type + status), dependencies (depends on / unlocks).
58
+ Each story file includes: header (epic, status, layer, type, manifest version), context (GDD path, TR-ID, ADR + decision summary, engine risk + notes, manifest rules), acceptance criteria (from GDD), implementation notes (from ADR), out of scope, QA test cases (from qa-director), test evidence (required path by type + status), dependencies (depends on / unlocks).
58
59
 
59
60
  Also update EPIC.md with populated stories table.
60
61
 
61
62
  ### 4b. Producer Epic Gate (full mode only)
62
63
 
63
- Solo/lean → skip. Full → spawn `producer` gate PR-EPIC before writing.
64
+ Solo/lean → skip. Full → spawn `delivery-manager` gate PR-EPIC before writing.
64
65
 
65
66
  ## 7. After Writing
66
67
 
@@ -2,10 +2,11 @@
2
2
  name: database-indexing
3
3
  description: "PostgreSQL indexing: B-tree, GIN, GiST, composite, partial, covering, CONCURRENTLY, bloat detection."
4
4
  category: "database"
5
- stack: PostgreSQL 15+
6
5
  argument-hint: "[analyze|create|drop] [table]"
7
6
  user-invocable: true
8
7
  allowed-tools: Read, Glob, Grep, Bash, Write, Edit, Task
8
+ metadata:
9
+ stack: PostgreSQL 15+
9
10
  ---
10
11
  # Database Indexing (PostgreSQL)
11
12
 
@@ -5,13 +5,17 @@ category: "workflow"
5
5
  argument-hint: "[optional: what you just finished, e.g. 'finished design-review' or 'stuck on ADRs']"
6
6
  user-invocable: true
7
7
  allowed-tools: Read, Glob, Grep
8
- context: |
9
- !echo "=== Live Project State ===" && echo "Stage: $(cat production/stage.txt 2>/dev/null | tr -d '[:space:]' || echo 'not set')" && echo "Latest sprint: $(ls -t production/sprints/*.md 2>/dev/null | head -1 || echo 'none')" && echo "Session state: $(head -5 production/session-state/active.md 2>/dev/null || echo 'none')"
10
8
  model: haiku
11
9
  ---
12
10
 
13
11
  # Studio Help — What Do I Do Next?
14
12
 
13
+ ## Live Project State
14
+
15
+ - Stage: !`cat production/stage.txt 2>/dev/null | tr -d '[:space:]' || echo 'not set'`
16
+ - Latest sprint: !`ls -t production/sprints/*.md 2>/dev/null | head -1 || echo 'none'`
17
+ - Session state: !`head -5 production/session-state/active.md 2>/dev/null || echo 'none'`
18
+
15
19
  Read-only skill — reports findings, writes no files. Lightweight orientation; for full gap analysis use `/project-stage-detect`.
16
20
 
17
21
  ## Step 1: Read Catalog + Find Uncataloged Skills