claude-code-arcane 2.11.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.
- package/CHANGELOG.md +9 -0
- package/README.md +2 -2
- package/docs/USER-GUIDE.md +1 -1
- package/output-styles/arcane.md +51 -4
- package/package.json +1 -1
- package/profiles/core.yaml +3 -0
- package/rules/agent-delegation.md +8 -0
- package/rules/backend-code.md +7 -0
- package/rules/dotnet-code.md +6 -0
- package/rules/frontend-code.md +25 -0
- package/rules/gamedev/ai-code.md +1 -0
- package/rules/gamedev/audio-code.md +1 -0
- package/rules/gamedev/engine-code.md +7 -0
- package/rules/gamedev/gameplay-code.md +8 -0
- package/rules/gamedev/network-code.md +1 -0
- package/rules/gamedev/shader-code.md +3 -0
- package/rules/gamedev/ui-code.md +7 -0
- package/rules/gamedev/unreal-code.md +6 -0
- package/rules/git-worktrees.md +22 -0
- package/rules/implementation-workflow.md +9 -0
- package/rules/infra-code.md +6 -0
- package/rules/migration-code.md +6 -0
- package/rules/nestjs-code.md +6 -0
- package/rules/verification.md +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,12 @@
|
|
|
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
|
+
|
|
1
10
|
# [2.11.0](https://github.com/SebastianLuser/claude-code-arcane/compare/v2.10.0...v2.11.0) (2026-10-11)
|
|
2
11
|
|
|
3
12
|
|
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Claude Code Arcane
|
|
2
2
|
|
|
3
|
-
> **437 skills, 115 agents, 17 hooks and
|
|
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
|
|
|
@@ -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/ #
|
|
464
|
+
├── rules/ # 36 rules (Markdown)
|
|
465
465
|
├── templates/ # Gamedev templates
|
|
466
466
|
├── docs/ # Documentation
|
|
467
467
|
└── skills-selftest/ # QA framework
|
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**, **115 agents**, **17 hooks**, and **
|
|
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
|
|
package/output-styles/arcane.md
CHANGED
|
@@ -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é
|
|
15
|
-
para
|
|
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
|
-
- **
|
|
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
package/profiles/core.yaml
CHANGED
|
@@ -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.
|
package/rules/backend-code.md
CHANGED
|
@@ -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.
|
package/rules/dotnet-code.md
CHANGED
|
@@ -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._
|
package/rules/frontend-code.md
CHANGED
|
@@ -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.
|
package/rules/gamedev/ai-code.md
CHANGED
|
@@ -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.
|
package/rules/gamedev/ui-code.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
paths:
|
|
3
3
|
- "src/ui/**"
|
|
4
|
+
- "Assets/**/Scripts/UI/**"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# UI Code Rules
|
|
@@ -13,3 +14,9 @@ paths:
|
|
|
13
14
|
- UI must never block the game thread
|
|
14
15
|
- Scalable text and colorblind modes are mandatory, not optional
|
|
15
16
|
- Test all screens at minimum and maximum supported resolutions
|
|
17
|
+
|
|
18
|
+
## How to verify
|
|
19
|
+
|
|
20
|
+
- The project compiles with no new errors: the Unity console, or a batchmode compile (`Unity -batchmode -quit -projectPath . -logFile -`); for Unreal, see `unreal-code`.
|
|
21
|
+
- Run the EditMode and PlayMode tests that cover the change (`-runTests -testPlatform EditMode` or `PlayMode`).
|
|
22
|
+
- You cannot play the game. Name what needs a human playtest (game feel, timing, visuals, input) and list exactly what to try.
|
|
@@ -123,3 +123,9 @@ class AGate : public AActor
|
|
|
123
123
|
}
|
|
124
124
|
};
|
|
125
125
|
```
|
|
126
|
+
|
|
127
|
+
## How to verify
|
|
128
|
+
|
|
129
|
+
- The editor target compiles with no new errors or warnings (Build in the IDE, or `Build.bat <Project>Editor Win64 Development <path>.uproject`).
|
|
130
|
+
- Run the automation tests that cover the change (`UnrealEditor-Cmd <project>.uproject -ExecCmds="Automation RunTests <Filter>;Quit" -unattended -nullrhi`).
|
|
131
|
+
- You cannot play the game. Name what needs a human playtest (game feel, replication under latency, visuals) and list exactly what to try.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Git Worktree Rule
|
|
2
|
+
|
|
3
|
+
A session can run inside a git worktree: a second checkout of the same repository, usually under `.claude/worktrees/`. You are in one when `git rev-parse --git-dir` and `git rev-parse --git-common-dir` print different paths.
|
|
4
|
+
|
|
5
|
+
## Decide by the branch the action is about
|
|
6
|
+
|
|
7
|
+
| The action is about | Where to run it |
|
|
8
|
+
|---|---|
|
|
9
|
+
| The worktree's own branch: commit, push, rebase, merge `main` into it | Inside the worktree. First push: `git push -u origin HEAD` |
|
|
10
|
+
| Another branch: `main`, or whatever the main checkout has (checkout, switch, pull, update) | Outside: leave the worktree first |
|
|
11
|
+
| Unclear | Ask once |
|
|
12
|
+
|
|
13
|
+
## Leaving the worktree
|
|
14
|
+
|
|
15
|
+
The user authorizes you to leave a worktree without asking, in two cases:
|
|
16
|
+
|
|
17
|
+
1. **The task is done.** Commit the work on the worktree branch, push it if the task included pushing, then call `ExitWorktree` with `action: "keep"`. Tell the user the worktree path and its branch.
|
|
18
|
+
2. **You need another branch** (second row of the table). Leave with `ExitWorktree` (`keep`), run the operation, and enter again if the task continues.
|
|
19
|
+
|
|
20
|
+
Always `keep`. Never `remove` a worktree: deleting worktrees is the user's call.
|
|
21
|
+
|
|
22
|
+
`ExitWorktree` only acts on a worktree this session entered with `EnterWorktree`. If it does nothing (the session started inside the worktree, or it was made with `git worktree add` or `arcane worktree`), run git against the main checkout instead: `git -C "<main checkout>" pull`. The main checkout is the parent directory of `git rev-parse --git-common-dir`. Tell the user the session itself is still inside the worktree.
|
|
@@ -39,6 +39,15 @@ Use AskUserQuestion exactly like this:
|
|
|
39
39
|
- **Goal-driven:** Help the user define a verifiable goal statement and 2-4 checkpoints, create tasks, implement toward each checkpoint. No formal plan.
|
|
40
40
|
- **Directo:** Proceed immediately without ceremony.
|
|
41
41
|
|
|
42
|
+
## Before writing new code
|
|
43
|
+
|
|
44
|
+
In every mode, search in this order and take the first option that fully works:
|
|
45
|
+
|
|
46
|
+
1. **The codebase**: a helper, component or pattern that already does it.
|
|
47
|
+
2. **The standard library** or a platform feature.
|
|
48
|
+
3. **A dependency the project already has.**
|
|
49
|
+
4. **A new dependency**, only when 1–3 cannot do it. Name the package and why before installing it.
|
|
50
|
+
|
|
42
51
|
## Key principles
|
|
43
52
|
|
|
44
53
|
- One question, not a wall of text — present options and wait
|
package/rules/infra-code.md
CHANGED
|
@@ -45,3 +45,9 @@ paths:
|
|
|
45
45
|
- Inline shell scripts in CI that do complex logic — move to a versioned script with tests
|
|
46
46
|
- Copying `production.tf` to `staging.tf` and diverging them by hand
|
|
47
47
|
- Running DB migrations from a CI job that doesn't have transactional rollback if the deploy fails after
|
|
48
|
+
|
|
49
|
+
## How to verify
|
|
50
|
+
|
|
51
|
+
- Validate without applying: `terraform plan`, `helm lint` + `helm template`, `docker compose config`, `docker build`. Show the output.
|
|
52
|
+
- Never run `apply`, a deploy or `kubectl apply` to verify a change.
|
|
53
|
+
- For a CI workflow, run `actionlint` if it is installed, and say that the workflow itself only proves itself on the next push.
|
package/rules/migration-code.md
CHANGED
|
@@ -39,3 +39,9 @@ paths:
|
|
|
39
39
|
- `DELETE FROM users WHERE ...` in a migration without a backup and written-out rollback
|
|
40
40
|
- Migration that depends on application code (calling service layer) — migrations run with DB access only, not app code
|
|
41
41
|
- Migrations that only work if previous migration left specific data — be defensive, check before mutating
|
|
42
|
+
|
|
43
|
+
## How to verify
|
|
44
|
+
|
|
45
|
+
- On the local database, run the migration up, then down, then up again. All three must succeed.
|
|
46
|
+
- After up, confirm the schema change landed: `\d <table>` in psql, `DESCRIBE <table>` in MySQL, or the ORM's status command.
|
|
47
|
+
- For a backfill, run it twice: the second run must change nothing.
|
package/rules/nestjs-code.md
CHANGED
|
@@ -71,3 +71,9 @@ Reglas production-ready para NestJS, ordenadas por impacto. Catálogo completo (
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
73
|
_Derivado de [kadajett/agent-nestjs-skills](https://github.com/kadajett/agent-nestjs-skills) (nestjs-best-practices). Condensado al formato Arcane._
|
|
74
|
+
|
|
75
|
+
## How to verify
|
|
76
|
+
|
|
77
|
+
- Run the tests that cover the change (`npm test`, or the project's script) and the type check.
|
|
78
|
+
- Start the app locally and call the changed endpoint with `curl`: show the status code and the body, plus one failure case (invalid DTO, missing auth).
|
|
79
|
+
- Read the app log for those requests: no stack trace, no unexpected warning.
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# Verification Rule
|
|
2
|
+
|
|
3
|
+
Every claim about the state of the work rests on evidence produced in this session.
|
|
4
|
+
|
|
5
|
+
- **No claim without a run.** "Tests pass", "it builds" and "it works" each need the command you ran in this session and its result. If you did not run it, say so.
|
|
6
|
+
- **Read before you edit.** Never change or overwrite a file you have not read in this session: the user may have changed it.
|
|
7
|
+
- **Search, don't guess.** Before you use a path, function, flag or config key you are not sure exists, find it (Grep, Glob, `--help`, the source).
|
|
8
|
+
- **The installed version beats memory.** Before you use a library API from memory, check its version in the lockfile; when in doubt, read the installed types or source.
|
|
9
|
+
- **Fix the code, not the check.** Never edit a test, a lint/format/type config or a CI step to make it pass, unless the task is about that test or config. If you think the test is wrong, say so and ask.
|
|
10
|
+
- **Filter long output.** Pipe it through `tail`, `grep` or a quiet flag instead of pouring thousands of lines into the context.
|
|
11
|
+
- **Close with what was not verified.** End a task by naming what you could not check: a platform, a manual flow, a visual result.
|
|
12
|
+
|
|
13
|
+
Domain rules add a `## How to verify` section with what counts as evidence in that kind of code.
|