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.
- package/CHANGELOG.md +46 -0
- package/README.md +2 -2
- package/agents/ai/ai-architect.md +1 -1
- package/agents/ai/data-engineer.md +1 -1
- package/agents/ai/data-scientist.md +1 -1
- package/agents/ai/ml-engineer.md +1 -1
- package/agents/audio/audio-director.md +32 -40
- package/agents/audio/audio-programmer.md +32 -45
- package/agents/audio/audio-qa.md +36 -47
- package/agents/audio/composer.md +32 -42
- package/agents/audio/technical-sound-designer.md +32 -43
- package/agents/audio/voice-director.md +33 -42
- package/agents/business/business-ops-lead.md +1 -0
- package/agents/business/financial-analyst.md +1 -0
- package/agents/business/sales-engineer.md +1 -0
- package/agents/career/career-strategist.md +1 -1
- package/agents/career/cv-reviewer.md +1 -1
- package/agents/career/hiring-manager.md +1 -1
- package/agents/career/mock-interviewer.md +1 -1
- package/agents/clevel/ceo-advisor.md +2 -2
- package/agents/clevel/cfo-advisor.md +2 -2
- package/agents/clevel/chief-of-staff.md +2 -2
- package/agents/clevel/cmo-advisor.md +2 -2
- package/agents/clevel/coo-advisor.md +2 -2
- package/agents/clevel/cto-advisor.md +2 -2
- package/agents/devops/cloud-architect.md +2 -3
- package/agents/devops/devops-engineer.md +48 -0
- package/agents/devops/platform-lead.md +2 -3
- package/agents/devops/sre-lead.md +2 -3
- package/agents/ecommerce/ecommerce-architect.md +1 -0
- package/agents/engineering/android-engineer.md +1 -0
- package/agents/engineering/backend-architect.md +3 -4
- package/agents/engineering/chief-technology-officer.md +53 -0
- package/agents/engineering/database-architect.md +2 -3
- package/agents/engineering/dotnet-engineer.md +2 -1
- package/agents/engineering/e2e-tester.md +2 -1
- package/agents/engineering/flutter-engineer.md +1 -0
- package/agents/engineering/frontend-architect.md +3 -4
- package/agents/engineering/go-engineer.md +2 -1
- package/agents/engineering/ios-engineer.md +1 -0
- package/agents/engineering/mobile-lead.md +59 -0
- package/agents/engineering/nestjs-engineer.md +2 -1
- package/agents/engineering/nextjs-engineer.md +2 -1
- package/agents/engineering/nextjs-reviewer.md +4 -3
- package/agents/engineering/node-engineer.md +2 -1
- package/agents/engineering/react-engineer.md +2 -1
- package/agents/engineering/react-native-engineer.md +2 -1
- package/agents/engineering/sql-specialist.md +3 -2
- package/agents/engineering/vp-engineering.md +54 -0
- package/agents/freelance/client-screener.md +1 -1
- package/agents/freelance/discovery-call.md +1 -1
- package/agents/freelance/pipeline-strategist.md +1 -1
- package/agents/freelance/proposal-reviewer.md +1 -1
- package/agents/game/accessibility-specialist.md +39 -51
- package/agents/game/ai-programmer.md +32 -44
- package/agents/game/analytics-engineer.md +32 -44
- package/agents/game/art-director.md +1 -0
- package/agents/game/creative-director.md +48 -0
- package/agents/game/economy-designer.md +35 -60
- package/agents/game/game-designer.md +1 -0
- package/agents/game/gameplay-programmer.md +32 -47
- package/agents/game/lead-programmer.md +2 -1
- package/agents/game/level-designer.md +35 -60
- package/agents/game/live-ops-designer.md +36 -56
- package/agents/game/narrative-director.md +1 -0
- package/agents/game/network-programmer.md +32 -44
- package/agents/game/performance-analyst.md +32 -44
- package/agents/game/producer.md +50 -0
- package/agents/game/qa-lead.md +3 -2
- package/agents/game/qa-tester-gamedev.md +33 -45
- package/agents/game/release-manager.md +2 -1
- package/agents/game/sound-designer.md +33 -45
- package/agents/game/systems-designer.md +35 -60
- package/agents/game/technical-artist.md +32 -44
- package/agents/game/technical-director.md +2 -1
- package/agents/game/ue-blueprint-specialist.md +36 -48
- package/agents/game/ue-gas-specialist.md +36 -48
- package/agents/game/ue-replication-specialist.md +36 -48
- package/agents/game/ue-umg-specialist.md +36 -48
- package/agents/game/unity-shader-specialist.md +36 -48
- package/agents/game/unity-specialist.md +36 -51
- package/agents/game/unreal-specialist.md +36 -48
- package/agents/game/ux-designer.md +35 -55
- package/agents/game/world-builder.md +35 -60
- package/agents/game/writer.md +32 -50
- package/agents/integrations/api-tools-specialist.md +2 -2
- package/agents/integrations/comms-tools-specialist.md +2 -2
- package/agents/integrations/design-tools-specialist.md +53 -7
- package/agents/integrations/docs-tools-specialist.md +18 -2
- package/agents/integrations/integrations-architect.md +2 -2
- package/agents/integrations/project-tools-specialist.md +18 -2
- package/agents/management/delivery-manager.md +2 -1
- package/agents/management/program-director.md +2 -1
- package/agents/management/project-manager.md +2 -2
- package/agents/management/scrum-master.md +2 -2
- package/agents/marketing/content-lead.md +1 -0
- package/agents/marketing/growth-lead.md +1 -0
- package/agents/marketing/marketing-analyst.md +1 -0
- package/agents/marketing/marketing-director.md +1 -0
- package/agents/marketing/seo-lead.md +1 -0
- package/agents/product/chief-product-officer.md +1 -0
- package/agents/product/design-system-lead.md +3 -3
- package/agents/product/product-manager.md +2 -2
- package/agents/product/ui-lead.md +2 -4
- package/agents/product/ux-lead.md +2 -5
- package/agents/quality/qa-director.md +2 -5
- package/agents/quality/qa-engineer.md +1 -0
- package/agents/quality/security-architect.md +2 -5
- package/agents/regulatory/compliance-officer.md +1 -0
- package/agents/regulatory/quality-manager.md +1 -0
- package/agents/regulatory/regulatory-director.md +1 -0
- package/agents/visualnovel/vn-comfyui-artist.md +35 -14
- package/agents/visualnovel/vn-narrative-director.md +36 -30
- package/agents/visualnovel/vn-producer.md +36 -12
- package/agents/visualnovel/vn-renpy-developer.md +34 -12
- package/agents/visualnovel/vn-scene-director.md +34 -9
- package/agents/visualnovel/vn-ui-designer.md +36 -20
- package/dist/cli.js +487 -322
- package/docs/USER-GUIDE.md +26 -1
- package/docs/agent-hierarchy.md +42 -2
- package/docs/collaborative-design.md +2 -1
- package/docs/directory-structure.md +18 -13
- package/hooks/statusline.sh +17 -4
- package/output-styles/arcane.md +53 -0
- package/package.json +2 -1
- package/profiles/backend-go.yaml +1 -0
- package/profiles/core.yaml +4 -0
- package/profiles/docs.yaml +0 -2
- package/profiles/security.yaml +1 -1
- package/profiles/unity-design.yaml +2 -0
- package/profiles/unity-dev.yaml +2 -0
- package/profiles/unreal-dev.yaml +1 -0
- package/profiles/visual-novel.yaml +1 -0
- package/rules/code-comments.md +63 -0
- package/rules/gamedev/audio-code.md +0 -1
- package/rules/gamedev/gameplay-code.md +0 -1
- package/rules/gamedev/shader-code.md +0 -1
- package/skills/architecture-review/SKILL.md +1 -0
- package/skills/balance-check/SKILL.md +1 -0
- package/skills/code-review/SKILL.md +49 -16
- package/skills/create-epics/SKILL.md +2 -1
- package/skills/create-stories/SKILL.md +5 -4
- package/skills/database-indexing/SKILL.md +2 -1
- package/skills/help/SKILL.md +6 -2
- package/skills/hotfix/SKILL.md +11 -3
- package/skills/patch-notes/SKILL.md +2 -1
- package/skills/perf-profile/SKILL.md +0 -1
- package/skills/prototype/SKILL.md +0 -2
- package/skills/qa-plan/SKILL.md +2 -1
- package/skills/retrospective/SKILL.md +4 -2
- package/skills/security-audit/SKILL.md +2 -1
- package/skills/skill-auditor/SKILL.md +16 -4
- package/skills/skill-auditor/references/frontmatter-spec.md +93 -86
- package/skills/slo-sli/SKILL.md +2 -2
- package/skills/sprint-plan/SKILL.md +4 -2
- package/skills/story-readiness/SKILL.md +1 -1
- package/skills/ux-design/SKILL.md +2 -1
- package/skills/ux-review/SKILL.md +2 -1
package/docs/USER-GUIDE.md
CHANGED
|
@@ -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**, **
|
|
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:
|
package/docs/agent-hierarchy.md
CHANGED
|
@@ -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 (
|
|
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
|
-
|
|
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
|
-
- **
|
|
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/ #
|
|
31
|
-
│ ├──
|
|
32
|
-
│ ├──
|
|
33
|
-
│ ├──
|
|
34
|
-
│ ├──
|
|
35
|
-
│ ├──
|
|
36
|
-
│ ├──
|
|
37
|
-
│ ├──
|
|
38
|
-
│ ├──
|
|
39
|
-
│ ├──
|
|
40
|
-
│ ├──
|
|
41
|
-
│ ├──
|
|
42
|
-
│
|
|
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
|
package/hooks/statusline.sh
CHANGED
|
@@ -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
|
-
|
|
|
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
|
-
|
|
|
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
|
-
|
|
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.
|
|
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": {
|
package/profiles/backend-go.yaml
CHANGED
package/profiles/core.yaml
CHANGED
package/profiles/docs.yaml
CHANGED
package/profiles/security.yaml
CHANGED
package/profiles/unity-dev.yaml
CHANGED
package/profiles/unreal-dev.yaml
CHANGED
|
@@ -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
|
|
@@ -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:
|
|
14
|
+
## Phase 2: Resolve which specialists exist
|
|
16
15
|
|
|
17
|
-
|
|
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
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
47
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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-
|
|
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-
|
|
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 `
|
|
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
|
|
package/skills/help/SKILL.md
CHANGED
|
@@ -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
|