claude-code-arcane 2.10.0 → 2.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +26 -0
- package/README.md +8 -8
- package/dist/cli.js +15 -0
- package/docs/SKILLS-CATALOG.md +4 -2
- package/docs/USER-GUIDE.md +1 -1
- package/docs/templates/skill-test-spec.md +0 -1
- package/output-styles/arcane.md +51 -4
- package/package.json +1 -1
- package/profiles/backend-dotnet.yaml +2 -0
- package/profiles/backend-go.yaml +2 -0
- package/profiles/backend-nestjs.yaml +2 -0
- package/profiles/backend-nextjs.yaml +2 -0
- package/profiles/backend-ts.yaml +2 -0
- package/profiles/backend-typescript.yaml +2 -0
- package/profiles/blender.yaml +1 -0
- package/profiles/core.yaml +3 -0
- package/profiles/infra.yaml +2 -0
- package/profiles/meshy.yaml +1 -0
- package/rules/agent-delegation.md +8 -0
- package/rules/backend-code.md +7 -0
- package/rules/blender-files.md +72 -0
- package/rules/blender-pipeline.md +1 -63
- 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/narrative.md +1 -1
- 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/meshy-assets.md +9 -78
- package/rules/meshy-files.md +83 -0
- package/rules/migration-code.md +6 -0
- package/rules/nestjs-code.md +6 -0
- package/rules/verification.md +13 -0
- package/skills/agent-protocol/SKILL.md +1 -1
- package/skills/agent-protocol/references/communication-standard.md +2 -2
- package/skills/ai-security/SKILL.md +4 -0
- package/skills/audit-dev/SKILL.md +1 -1
- package/skills/blender-animation/SKILL.md +1 -1
- package/skills/blender-export/SKILL.md +1 -1
- package/skills/blender-materials/SKILL.md +1 -1
- package/skills/blender-modeling/SKILL.md +1 -1
- package/skills/check/SKILL.md +1 -1
- package/skills/chief-of-staff/SKILL.md +1 -1
- package/skills/cloud-security/SKILL.md +4 -0
- package/skills/isms-audit-expert/SKILL.md +2 -0
- package/skills/meshy-derive/SKILL.md +1 -1
- package/skills/meshy-generate/SKILL.md +1 -1
- package/skills/meshy-setup/SKILL.md +1 -1
- package/skills/owasp-top10-check/SKILL.md +1 -1
- package/skills/qms-audit-expert/SKILL.md +2 -0
- package/skills/security-pen-testing/SKILL.md +1 -1
- package/skills/seo-audit/SKILL.md +1 -1
- package/skills/skill-auditor/SKILL.md +0 -1
- package/skills/skill-improve/SKILL.md +6 -7
- package/skills/skill-test/SKILL.md +3 -3
- package/skills/skill-test/references/static-checks.md +13 -8
- package/skills/standup-report/SKILL.md +1 -1
- package/skills/vn-gdd/SKILL.md +2 -0
- package/skills/web-security/SKILL.md +4 -0
- package/skills/worktree-isolation/README.md +6 -6
- package/skills/worktree-isolation/SKILL.md +5 -2
- package/skills/worktree-isolation-setup/README.md +7 -11
- package/skills/worktree-isolation-setup/SKILL.md +15 -6
- package/skills/worktree-isolation-setup/scripts/apply.py +0 -178
- package/skills/worktree-isolation-setup/scripts/install_hook.py +0 -118
- package/skills/worktree-isolation-setup/scripts/lib.py +0 -371
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/meshy-assets.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Meshy Assets
|
|
2
2
|
|
|
3
|
-
Reglas
|
|
3
|
+
Reglas que tienen que estar presentes antes de cualquier llamada a Meshy, aunque no se toque ningun archivo: cada llamada gasta creditos. Estructura en disco, ledger, ejes, rigging y Git estan en `.claude/rules/meshy-files.md`, que se carga al tocar `assets/3d/`.
|
|
4
4
|
|
|
5
5
|
## Creditos — cada llamada cuesta plata real
|
|
6
6
|
|
|
@@ -29,83 +29,14 @@ Reglas para produccion de assets 3D con Meshy. Aplican a cualquier operacion que
|
|
|
29
29
|
|
|
30
30
|
Ante cualquier duda sobre si una operacion gasta, correr `meshy_check_balance` antes y despues y reportar el delta real.
|
|
31
31
|
|
|
32
|
-
##
|
|
32
|
+
## Antes de gastar
|
|
33
33
|
|
|
34
|
-
|
|
34
|
+
- Ningun target se genera desde el prompt: todos salen del master con `meshy_convert` (1).
|
|
35
|
+
- Nunca usar `remesh` (5) cuando `convert` (1) alcanza, ni para LODs de web: `gltf-transform` los hace gratis.
|
|
36
|
+
- `meshy_rig` (5) es solo para humanoides: con otro modelo se gastan los creditos y no sirve.
|
|
37
|
+
- Si existe un art bible en el proyecto, el prompt de generacion se deriva de ahi, no se inventa.
|
|
38
|
+
- `meshy_analyze_printability` (gratis) **siempre** antes de `meshy_repair_printability` (10). Print (20 white / 40 multicolor): doble confirmacion.
|
|
35
39
|
|
|
36
|
-
|
|
37
|
-
|---|---|---|
|
|
38
|
-
| Unity y UE5 | `meshy_convert` -> `fbx` (un solo archivo sirve para los dos) | 1 |
|
|
39
|
-
| Blender | `meshy_convert` -> `blend` | 1 |
|
|
40
|
-
| Impresion | `meshy_convert` -> `stl` (`3mf` si es multicolor) | 1 |
|
|
41
|
-
| Web / three.js | `npx gltf-transform optimize --simplify` | **0** |
|
|
40
|
+
## Secretos
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
- Nunca usar `remesh` para LODs de web: `gltf-transform` hace decimation, meshopt y KTX2 en local y gratis.
|
|
45
|
-
|
|
46
|
-
## Estructura en disco
|
|
47
|
-
|
|
48
|
-
```
|
|
49
|
-
assets/3d/<slug>/
|
|
50
|
-
meshy.json # ledger, ver abajo
|
|
51
|
-
master.glb # refined, inmutable
|
|
52
|
-
thumb.png
|
|
53
|
-
targets/
|
|
54
|
-
web.glb # <=15k tris, texturas 1024, KTX2 + draco
|
|
55
|
-
game.fbx # Unity + UE5
|
|
56
|
-
edit.blend
|
|
57
|
-
print.stl
|
|
58
|
-
```
|
|
59
|
-
|
|
60
|
-
Slugs en kebab-case, sin fechas ni task_ids en el path.
|
|
61
|
-
|
|
62
|
-
## Ledger: `meshy.json`
|
|
63
|
-
|
|
64
|
-
Obligatorio por asset. Sin esto cada sesion nueva arranca ciega y se paga dos veces el mismo modelo.
|
|
65
|
-
|
|
66
|
-
```json
|
|
67
|
-
{
|
|
68
|
-
"slug": "rune-pedestal",
|
|
69
|
-
"prompt": "...",
|
|
70
|
-
"ai_model": "meshy-5",
|
|
71
|
-
"tasks": [
|
|
72
|
-
{ "id": "...", "op": "text_to_3d_preview", "credits": 5, "at": "2026-08-18T14:02:00Z" },
|
|
73
|
-
{ "id": "...", "op": "text_to_3d_refine", "credits": 25, "at": "2026-08-18T14:11:00Z" }
|
|
74
|
-
],
|
|
75
|
-
"credits_total": 30,
|
|
76
|
-
"derived": ["targets/web.glb", "targets/game.fbx"]
|
|
77
|
-
}
|
|
78
|
-
```
|
|
79
|
-
|
|
80
|
-
Actualizar `meshy.json` **en el mismo turno** en que se genera. No dejarlo para despues.
|
|
81
|
-
|
|
82
|
-
## Ejes y escala
|
|
83
|
-
|
|
84
|
-
Verificar una vez, anotar en el ledger, no volver a pensarlo.
|
|
85
|
-
|
|
86
|
-
| Destino | Convencion |
|
|
87
|
-
|---|---|
|
|
88
|
-
| GLB | Y-up, metros |
|
|
89
|
-
| Unity | Y-up, 1 unidad = 1 m |
|
|
90
|
-
| UE5 | Z-up, 1 unidad = 1 cm (rotacion + factor 100) |
|
|
91
|
-
| Blender | Z-up, metros |
|
|
92
|
-
|
|
93
|
-
## Impresion 3D
|
|
94
|
-
|
|
95
|
-
Correr `meshy_analyze_printability` (gratis) **siempre** antes de `meshy_repair_printability` (10). `meshy_resize` a milimetros reales antes de exportar STL. Las operaciones de print (20 white / 40 multicolor) son las mas caras del catalogo: doble confirmacion.
|
|
96
|
-
|
|
97
|
-
## Rigging
|
|
98
|
-
|
|
99
|
-
`meshy_rig` es solo humanoides. El esqueleto que devuelve **no** es el mannequin de UE5: el retargeting es manual. En UE5 los static meshes van a Nanite y no necesitan decimation; los skeletal meshes si necesitan LODs propios.
|
|
100
|
-
|
|
101
|
-
## Git y secretos
|
|
102
|
-
|
|
103
|
-
- `*.glb *.fbx *.blend *.stl *.3mf` por **Git LFS**.
|
|
104
|
-
- `meshy.json` y `thumb.png` van como archivos normales — son chicos y son lo que hace grepeable el catalogo.
|
|
105
|
-
- `MESHY_API_KEY` (formato `msy_...`) va en `.env`, **nunca** en el repo ni en un SKILL.md.
|
|
106
|
-
|
|
107
|
-
## Integracion con el resto del stack
|
|
108
|
-
|
|
109
|
-
`asset-spec` define que asset hace falta -> Meshy lo genera -> `asset-audit` valida el resultado. Meshy no reemplaza a ninguno de los dos.
|
|
110
|
-
|
|
111
|
-
Si existe un art bible en el proyecto, el prompt de generacion se deriva de ahi, no se inventa.
|
|
42
|
+
`MESHY_API_KEY` (formato `msy_...`) va en `.env`, **nunca** en el repo ni en un SKILL.md.
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
---
|
|
2
|
+
paths:
|
|
3
|
+
- "assets/3d/**"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Meshy Files
|
|
7
|
+
|
|
8
|
+
Como se guardan los assets de Meshy. Los creditos y las reglas de gasto estan en `.claude/rules/meshy-assets.md`, que se carga siempre.
|
|
9
|
+
|
|
10
|
+
## Master unico, derivados baratos
|
|
11
|
+
|
|
12
|
+
El GLB refined es la fuente de verdad y es **inmutable**. Ningun target se genera desde el prompt: todos salen del master.
|
|
13
|
+
|
|
14
|
+
| Target | Como | Creditos |
|
|
15
|
+
|---|---|---|
|
|
16
|
+
| Unity y UE5 | `meshy_convert` -> `fbx` (un solo archivo sirve para los dos) | 1 |
|
|
17
|
+
| Blender | `meshy_convert` -> `blend` | 1 |
|
|
18
|
+
| Impresion | `meshy_convert` -> `stl` (`3mf` si es multicolor) | 1 |
|
|
19
|
+
| Web / three.js | `npx gltf-transform optimize --simplify` | **0** |
|
|
20
|
+
|
|
21
|
+
## Estructura en disco
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
assets/3d/<slug>/
|
|
25
|
+
meshy.json # ledger, ver abajo
|
|
26
|
+
master.glb # refined, inmutable
|
|
27
|
+
thumb.png
|
|
28
|
+
targets/
|
|
29
|
+
web.glb # <=15k tris, texturas 1024, KTX2 + draco
|
|
30
|
+
game.fbx # Unity + UE5
|
|
31
|
+
edit.blend
|
|
32
|
+
print.stl
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
Slugs en kebab-case, sin fechas ni task_ids en el path.
|
|
36
|
+
|
|
37
|
+
## Ledger: `meshy.json`
|
|
38
|
+
|
|
39
|
+
Obligatorio por asset. Sin esto cada sesion nueva arranca ciega y se paga dos veces el mismo modelo.
|
|
40
|
+
|
|
41
|
+
```json
|
|
42
|
+
{
|
|
43
|
+
"slug": "rune-pedestal",
|
|
44
|
+
"prompt": "...",
|
|
45
|
+
"ai_model": "meshy-5",
|
|
46
|
+
"tasks": [
|
|
47
|
+
{ "id": "...", "op": "text_to_3d_preview", "credits": 5, "at": "2026-08-18T14:02:00Z" },
|
|
48
|
+
{ "id": "...", "op": "text_to_3d_refine", "credits": 25, "at": "2026-08-18T14:11:00Z" }
|
|
49
|
+
],
|
|
50
|
+
"credits_total": 30,
|
|
51
|
+
"derived": ["targets/web.glb", "targets/game.fbx"]
|
|
52
|
+
}
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
Actualizar `meshy.json` **en el mismo turno** en que se genera. No dejarlo para despues.
|
|
56
|
+
|
|
57
|
+
## Ejes y escala
|
|
58
|
+
|
|
59
|
+
Verificar una vez, anotar en el ledger, no volver a pensarlo.
|
|
60
|
+
|
|
61
|
+
| Destino | Convencion |
|
|
62
|
+
|---|---|
|
|
63
|
+
| GLB | Y-up, metros |
|
|
64
|
+
| Unity | Y-up, 1 unidad = 1 m |
|
|
65
|
+
| UE5 | Z-up, 1 unidad = 1 cm (rotacion + factor 100) |
|
|
66
|
+
| Blender | Z-up, metros |
|
|
67
|
+
|
|
68
|
+
## Impresion 3D
|
|
69
|
+
|
|
70
|
+
`meshy_resize` a milimetros reales antes de exportar STL.
|
|
71
|
+
|
|
72
|
+
## Rigging
|
|
73
|
+
|
|
74
|
+
El esqueleto que devuelve `meshy_rig` **no** es el mannequin de UE5: el retargeting es manual. En UE5 los static meshes van a Nanite y no necesitan decimation; los skeletal meshes si necesitan LODs propios.
|
|
75
|
+
|
|
76
|
+
## Git
|
|
77
|
+
|
|
78
|
+
- `*.glb *.fbx *.blend *.stl *.3mf` por **Git LFS**.
|
|
79
|
+
- `meshy.json` y `thumb.png` van como archivos normales — son chicos y son lo que hace grepeable el catalogo.
|
|
80
|
+
|
|
81
|
+
## Integracion con el resto del stack
|
|
82
|
+
|
|
83
|
+
`asset-spec` define que asset hace falta -> Meshy lo genera -> `asset-audit` valida el resultado. Meshy no reemplaza a ninguno de los dos.
|
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.
|
|
@@ -90,7 +90,7 @@ All C-suite output follows ONE format. See `references/communication-standard.md
|
|
|
90
90
|
|
|
91
91
|
1. **Bottom line first.** The founder's time is the scarcest resource.
|
|
92
92
|
2. **Results and decisions only.** No process narration.
|
|
93
|
-
3. **
|
|
93
|
+
3. **About 5 bullets per section, ranked by impact.** Keep what changes the decision; the rest goes to a reference doc. Never drop a critical finding to fit the number: show it, and point to the doc for detail.
|
|
94
94
|
4. **Actions have owners and deadlines.** "We should consider" is banned.
|
|
95
95
|
5. **Decisions framed as options** with trade-offs and recommendation.
|
|
96
96
|
6. **Risks are concrete.** "If X happens, Y breaks, costing $Z."
|
|
@@ -16,7 +16,7 @@ WHAT
|
|
|
16
16
|
• [Finding 1 — most critical]
|
|
17
17
|
• [Finding 2]
|
|
18
18
|
• [Finding 3]
|
|
19
|
-
(
|
|
19
|
+
(About 5, ranked by impact. More only if critical; detail → reference doc.)
|
|
20
20
|
|
|
21
21
|
WHY THIS MATTERS
|
|
22
22
|
[1-2 sentences. Business impact. Not theory — consequence.]
|
|
@@ -106,7 +106,7 @@ ACTION ITEMS
|
|
|
106
106
|
1. **Bottom line first.** Always. The founder's time is the scarcest resource.
|
|
107
107
|
2. **Results and decisions only.** No process narration ("First I analyzed..."). No thinking out loud.
|
|
108
108
|
3. **What + Why + How.** Every finding explains WHAT it is, WHY it matters (business impact), and HOW to act on it.
|
|
109
|
-
4. **
|
|
109
|
+
4. **About 5 bullets per section, ranked by impact.** Keep what changes the decision; the rest goes to a reference doc. Never drop a critical finding to fit the number: show it, and point to the doc for detail.
|
|
110
110
|
5. **Actions have owners and deadlines.** "We should consider" is banned. Who does what by when.
|
|
111
111
|
6. **Decisions framed as options.** Not "what do you think?" — "Option A or B, here's the trade-off, here's my recommendation."
|
|
112
112
|
7. **The founder decides.** Roles recommend. The founder approves, modifies, or rejects. Every output respects this hierarchy.
|
|
@@ -72,6 +72,10 @@ Injection score (0.0-1.0) measures proportion of matched signatures. Score above
|
|
|
72
72
|
|
|
73
73
|
Full ATLAS technique coverage and guardrail patterns: `references/atlas-coverage.md`
|
|
74
74
|
|
|
75
|
+
### Step 5: Verdict
|
|
76
|
+
|
|
77
|
+
**Verdict:** **FAIL** if any finding is Critical or High; **CONCERNS** if only Medium or Low findings remain; **PASS** if nothing actionable turned up. A prompt-injection score above 0.5 counts as High.
|
|
78
|
+
|
|
75
79
|
---
|
|
76
80
|
|
|
77
81
|
## Tool Reference
|
|
@@ -30,7 +30,7 @@ Identificar lenguajes/frameworks/package manager. Leer configs raíz. Mapear car
|
|
|
30
30
|
|
|
31
31
|
## Phase 3 — Producir reporte
|
|
32
32
|
|
|
33
|
-
Guardar como `AUDIT.md` en raíz. Secciones: fecha/stack/estado general, resumen ejecutivo (3-5 oraciones), scorecard (tabla dimensión/estado OK-WARN-CRIT/nota), hallazgos críticos, hallazgos importantes, observaciones, lo que está bien, plan de acción recomendado, detalles por dimensión con evidencia (paths, líneas).
|
|
33
|
+
Guardar como `AUDIT.md` en raíz. Secciones: fecha/stack/estado general (**SALUDABLE** si todas las dimensiones del scorecard están en OK, **NECESITA ATENCIÓN** si alguna quedó en WARN, **CRÍTICO** si alguna quedó en CRIT), resumen ejecutivo (3-5 oraciones), scorecard (tabla dimensión/estado OK-WARN-CRIT/nota), hallazgos críticos, hallazgos importantes, observaciones, lo que está bien, plan de acción recomendado, detalles por dimensión con evidencia (paths, líneas).
|
|
34
34
|
|
|
35
35
|
## Rules
|
|
36
36
|
|
|
@@ -164,4 +164,4 @@ influencias maximas por vertice, que se bakeo, y decision de root motion por cli
|
|
|
164
164
|
|
|
165
165
|
---
|
|
166
166
|
|
|
167
|
-
> → Bake de constraints, frame rate y ejes estan en `.claude/rules/blender-
|
|
167
|
+
> → Bake de constraints, frame rate y ejes estan en `.claude/rules/blender-files.md`.
|
package/skills/check/SKILL.md
CHANGED
|
@@ -17,6 +17,6 @@ Run a comprehensive code quality and security check on the current project:
|
|
|
17
17
|
- Hardcoded secrets, API keys, tokens in source code
|
|
18
18
|
- Known vulnerable dependencies (npm audit, pip audit, etc.)
|
|
19
19
|
- SQL injection, XSS, or command injection patterns
|
|
20
|
-
6. **Report** — Summarize findings with severity levels and suggested fixes
|
|
20
|
+
6. **Report** — Summarize findings with severity levels and suggested fixes, then close with a verdict: **FAIL** if tests or type checks fail, or a secret or critical vulnerability turned up; **CONCERNS** if only lint issues or lower-severity findings remain; **PASS** if nothing actionable came up
|
|
21
21
|
|
|
22
22
|
Focus on actionable issues, not style nitpicks.
|
|
@@ -59,7 +59,7 @@ Before delivering ANY output to the founder:
|
|
|
59
59
|
- Company context loaded (not generic advice)
|
|
60
60
|
- Actions have owners and deadlines
|
|
61
61
|
- Conflicts named, not smoothed
|
|
62
|
-
-
|
|
62
|
+
- About 5 bullets per section, ranked by impact; a critical finding is never dropped to fit
|
|
63
63
|
|
|
64
64
|
## Ecosystem Awareness
|
|
65
65
|
|
|
@@ -73,6 +73,10 @@ Full escalation combos, severity guide, and least privilege recommendations: `re
|
|
|
73
73
|
|
|
74
74
|
Catch misconfigurations at definition time in Terraform, CloudFormation, Kubernetes manifests, and Helm charts. Integrate into CI/CD as a pre-apply gate.
|
|
75
75
|
|
|
76
|
+
### Step 6: Verdict
|
|
77
|
+
|
|
78
|
+
**Verdict:** **FAIL** if any finding is Critical or High; **CONCERNS** if only Medium or Low findings remain; **PASS** if nothing actionable turned up. Apply the severity modifier first: an internet-facing or regulated-data resource raises the finding's severity before the verdict is taken.
|
|
79
|
+
|
|
76
80
|
---
|
|
77
81
|
|
|
78
82
|
## Cloud Provider Coverage
|
|
@@ -54,6 +54,8 @@ For detailed control testing procedures by Annex A control, see [references/secu
|
|
|
54
54
|
| Minor Nonconformity | Isolated deviation with limited impact | 90 days |
|
|
55
55
|
| Observation | Improvement opportunity | Next audit cycle |
|
|
56
56
|
|
|
57
|
+
**Audit conclusion:** **CONFORMING** (observations at most), **MINOR NONCONFORMITIES** (minor only), or **MAJOR NONCONFORMITY** (at least one major, which blocks a certification recommendation until it is corrected).
|
|
58
|
+
|
|
57
59
|
### Corrective Action Workflow
|
|
58
60
|
|
|
59
61
|
1. Auditee acknowledges finding
|
|
@@ -116,4 +116,4 @@ Reportar: targets generados, creditos gastados reales (delta de `check_balance`)
|
|
|
116
116
|
|
|
117
117
|
---
|
|
118
118
|
|
|
119
|
-
> Presupuestos, estructura de `targets
|
|
119
|
+
> Presupuestos, estructura de `targets/` y formato del ledger: `.claude/rules/meshy-files.md`. Tabla de creditos completa: `.claude/rules/meshy-assets.md`.
|
|
@@ -115,4 +115,4 @@ Reportar:
|
|
|
115
115
|
|
|
116
116
|
---
|
|
117
117
|
|
|
118
|
-
> Tabla de creditos completa, reglas de gasto, formato del ledger y convenciones de ejes/escala: `.claude/rules/meshy-assets.md`.
|
|
118
|
+
> Tabla de creditos completa, reglas de gasto, formato del ledger y convenciones de ejes/escala: `.claude/rules/meshy-assets.md` y `.claude/rules/meshy-files.md`. Leerlas antes de la Phase 3.
|
|
@@ -113,4 +113,4 @@ Reportar:
|
|
|
113
113
|
|
|
114
114
|
---
|
|
115
115
|
|
|
116
|
-
> Las reglas de gasto, estructura de `assets/3d/`, ledger `meshy.json` y tabla de derivados estan en `.claude/rules/meshy-assets.md`. Leerlas antes de cualquier operacion que gaste creditos.
|
|
116
|
+
> Las reglas de gasto, estructura de `assets/3d/`, ledger `meshy.json` y tabla de derivados estan en `.claude/rules/meshy-assets.md` y `.claude/rules/meshy-files.md`. Leerlas antes de cualquier operacion que gaste creditos.
|
|
@@ -86,7 +86,7 @@ Auditoría contra OWASP Top 10 2021. Go backend + TS/React frontend. Datos de me
|
|
|
86
86
|
|
|
87
87
|
## Reporte Output
|
|
88
88
|
|
|
89
|
-
Formato: Resumen ejecutivo (hallazgos por severidad) → Hallazgos por categoría (archivo:línea, descripción, PoC, remediación, ticket Jira) → Plan priorizado → Herramientas ejecutadas.
|
|
89
|
+
Formato: Resumen ejecutivo (hallazgos por severidad y veredicto: **FAIL** si hay algún hallazgo Critical o High, **CONCERNS** si quedan solo Medium o Low, **PASS** si no hay nada accionable) → Hallazgos por categoría (archivo:línea, descripción, PoC, remediación, ticket Jira) → Plan priorizado → Herramientas ejecutadas.
|
|
90
90
|
|
|
91
91
|
## Educabot Specifics
|
|
92
92
|
|
|
@@ -63,6 +63,8 @@ Gap: [How evidence fails to meet requirement]
|
|
|
63
63
|
| Minor | Isolated lapse or partial implementation | Recommended | 60 days |
|
|
64
64
|
| Observation | Improvement opportunity | Optional | As appropriate |
|
|
65
65
|
|
|
66
|
+
**Audit conclusion:** **CONFORMING** (observations at most), **MINOR NONCONFORMITIES** (minor only), or **MAJOR NONCONFORMITY** (at least one major, which blocks a certification recommendation until it is corrected).
|
|
67
|
+
|
|
66
68
|
### Corrective Action Integration
|
|
67
69
|
|
|
68
70
|
| Severity | CAPA Depth | Verification |
|
|
@@ -74,7 +74,7 @@ Key tests: XSS (reflected, stored, DOM-based), CSRF (token replay, SameSite), SQ
|
|
|
74
74
|
python scripts/pentest_report_generator.py --findings findings.json --format md --output report.md
|
|
75
75
|
```
|
|
76
76
|
|
|
77
|
-
Report structure: executive summary, scope, methodology, findings table (by severity/CVSS), detailed findings with evidence and remediation, priority matrix.
|
|
77
|
+
Report structure: executive summary with a verdict (**FAIL** if any finding is Critical or High, **CONCERNS** if only Medium or Low remain, **PASS** if nothing actionable turned up), scope, methodology, findings table (by severity/CVSS), detailed findings with evidence and remediation, priority matrix.
|
|
78
78
|
|
|
79
79
|
Responsible disclosure timeline and templates: `references/responsible_disclosure.md`
|
|
80
80
|
|
|
@@ -43,7 +43,7 @@ Before auditing, understand:
|
|
|
43
43
|
### Audit Report Structure
|
|
44
44
|
|
|
45
45
|
**Executive Summary**
|
|
46
|
-
- Overall health
|
|
46
|
+
- Overall health: **HEALTHY** (no critical or high-impact issues), **NEEDS WORK** (high-impact issues, nothing blocking), or **CRITICAL** (something blocks indexation or ranking)
|
|
47
47
|
- Top 3-5 priority issues
|
|
48
48
|
- Quick wins identified
|
|
49
49
|
|
|
@@ -68,7 +68,6 @@ Scan the body for required elements:
|
|
|
68
68
|
|
|
69
69
|
- **Sections**: At least 2 phase headings (`## Phase`, `## Step`, `## Workflow`, or `###` subsections)
|
|
70
70
|
- **Verdict keywords**: For review/analysis skills: APPROVED, PASS, FAIL, NEEDS REVISION (or equivalent)
|
|
71
|
-
- **Collaborative protocol**: For file-modifying skills (Write/Edit in allowed-tools): must contain "May I write" or equivalent approval gate
|
|
72
71
|
- **Next-step handoff**: Last section should guide what to do after the skill completes
|
|
73
72
|
|
|
74
73
|
### 1.4 Detect hallucinations
|
|
@@ -17,7 +17,7 @@ Read skill name from first arg. Verify `skills/[name]/SKILL.md` exists. If missi
|
|
|
17
17
|
|
|
18
18
|
## Phase 2: Baseline Test
|
|
19
19
|
|
|
20
|
-
Run `/skill-test static [name]`. Record FAILs, WARNs, which checks failed (1-
|
|
20
|
+
Run `/skill-test static [name]`. Record FAILs, WARNs, which checks failed (1-6).
|
|
21
21
|
|
|
22
22
|
### Phase 2b: Category Baseline
|
|
23
23
|
|
|
@@ -30,12 +30,11 @@ Read full skill file. For each failing/warning check, identify exact gap:
|
|
|
30
30
|
| Check | Gap if failing |
|
|
31
31
|
|-------|---------------|
|
|
32
32
|
| 1 | Missing frontmatter field |
|
|
33
|
-
| 2 |
|
|
34
|
-
| 3 |
|
|
35
|
-
| 4 |
|
|
36
|
-
| 5 (warn) |
|
|
37
|
-
| 6 (warn) |
|
|
38
|
-
| 7 (warn) | argument-hint empty or mismatched with modes |
|
|
33
|
+
| 2 | Over 40 lines with fewer than two `##` sections |
|
|
34
|
+
| 3 | A value from the catalog's `verdict:` list missing from the skill |
|
|
35
|
+
| 4 (warn) | No follow-up/next-step section |
|
|
36
|
+
| 5 (warn) | `context: fork` with <5 phases |
|
|
37
|
+
| 6 (warn) | argument-hint mismatched with modes |
|
|
39
38
|
|
|
40
39
|
For category checks: identify text gaps (e.g., G2: missing director prompts, A2: no per-section May-I-write, T3: BLOCKED not surfaced). Show full diagnosis before proposing changes.
|
|
41
40
|
|
|
@@ -15,18 +15,18 @@ Validates `skills/*/SKILL.md` for structural compliance and behavioral correctne
|
|
|
15
15
|
|
|
16
16
|
| Mode | Command | Purpose | Cost |
|
|
17
17
|
|------|---------|---------|------|
|
|
18
|
-
| `static` | `/skill-test static [name\|all]` |
|
|
18
|
+
| `static` | `/skill-test static [name\|all]` | 6 structural checks per skill | Low (~1k/skill) |
|
|
19
19
|
| `spec` | `/skill-test spec [name]` | Behavioral assertions from test spec | Medium (~5k/skill) |
|
|
20
20
|
| `category` | `/skill-test category [name\|all]` | Category-specific rubric metrics | Low (~2k/skill) |
|
|
21
21
|
| `audit` | `/skill-test audit` | Coverage report — skills, agents, test dates | Low (~3k total) |
|
|
22
22
|
|
|
23
23
|
## Phase 1: Parse Arguments
|
|
24
24
|
|
|
25
|
-
`static [name]` →
|
|
25
|
+
`static [name]` → 6 checks on one skill. `static all` → all skills (Glob `skills/*/SKILL.md`). `spec [name]` → read skill + test spec, evaluate assertions. `category [name|all]` → category rubric from `skills-selftest/quality-rubric.md`. `audit` (or no arg) → read catalog, list all, show coverage. Missing/unrecognized → output usage and stop.
|
|
26
26
|
|
|
27
27
|
## Phase 2A: Static Mode
|
|
28
28
|
|
|
29
|
-
> → Read references/static-checks.md for the
|
|
29
|
+
> → Read references/static-checks.md for the 6 structural validation checks and verdict criteria
|
|
30
30
|
|
|
31
31
|
## Phase 2B: Spec Mode
|
|
32
32
|
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
# Static Checks —
|
|
1
|
+
# Static Checks — 6 Structural Validations
|
|
2
|
+
|
|
3
|
+
Checks 1-3 are also enforced in CI by `src/__tests__/skill-static.test.ts`, so in this repo a skill that fails them never merges. Apply them here anyway: the skill may be running in a project with its own skills, where no test covers them.
|
|
2
4
|
|
|
3
5
|
| Check | What | Verdict |
|
|
4
6
|
|-------|------|---------|
|
|
5
|
-
| 1 — Frontmatter | `name
|
|
6
|
-
| 2 —
|
|
7
|
-
| 3 — Verdict
|
|
8
|
-
| 4 —
|
|
9
|
-
| 5 —
|
|
10
|
-
| 6 —
|
|
11
|
-
|
|
7
|
+
| 1 — Frontmatter | `name` (matching the directory), `description`, `argument-hint`, `user-invocable`, `allowed-tools` present; an empty `argument-hint` still counts as present | FAIL if any absent |
|
|
8
|
+
| 2 — Sections | A skill longer than 40 lines has at least two `##` sections. Shorter skills are exempt | FAIL if longer than 40 lines with fewer than two |
|
|
9
|
+
| 3 — Verdict | Only for skills that judge something: those with `verdict:` in `skills-selftest/catalog.yaml`. Every value listed there appears in the skill (SKILL.md or `references/`), in the skill's own vocabulary. Skills that build, write or advise do not need a verdict | FAIL if a listed value is missing |
|
|
10
|
+
| 4 — Next-Step Handoff | Final section mentions another skill, "next step", or follow-up | WARN if absent |
|
|
11
|
+
| 5 — Fork Complexity | If `context: fork`, must have >=5 phase headings | WARN if <5 |
|
|
12
|
+
| 6 — Argument Hint | Documented modes should match the hint | WARN if mismatch |
|
|
13
|
+
|
|
14
|
+
A new skill that judges something gets a `verdict:` list in the catalog when it is added; that is what makes check 3 apply to it.
|
|
15
|
+
|
|
16
|
+
There is no check for ask-before-write language. Whether Claude may write without asking is set by the permission mode of each session, not by the skill, so a skill with `Write` or `Edit` is not non-compliant for leaving the decision there.
|
|
12
17
|
|
|
13
18
|
**Output:** per-skill table of check results + verdict (COMPLIANT / WARNINGS / NON-COMPLIANT). For `static all`: summary table + aggregate counts.
|
|
@@ -48,4 +48,4 @@ Flujo: detectar team/proyecto → pull data en paralelo (git, ClickUp, Jira, Git
|
|
|
48
48
|
- NO incluir contenido sensible (PII, passwords, secrets)
|
|
49
49
|
- Grouping lógico: mergear commits del mismo ticket
|
|
50
50
|
- Sugerencias "hoy" basadas en tickets In Progress + priorities
|
|
51
|
-
-
|
|
51
|
+
- Unos 5 bullets por sección, ordenados por impacto, y el resto colapsado. Un blocker nunca se colapsa para respetar el número
|
package/skills/vn-gdd/SKILL.md
CHANGED
|
@@ -82,6 +82,10 @@ HSTS rollout: start with short `max-age` (300s), escalate to 2 years, then submi
|
|
|
82
82
|
- **Threat modeling**: complex trust boundaries need STRIDE before implementation
|
|
83
83
|
- **CSP breaks prod**: revert to report-only immediately; analyze before re-enforcing
|
|
84
84
|
|
|
85
|
+
## Verdict
|
|
86
|
+
|
|
87
|
+
**Verdict:** **FAIL** if any finding is Critical or High; **CONCERNS** if only Medium or Low findings remain; **PASS** if nothing actionable turned up.
|
|
88
|
+
|
|
85
89
|
## Checklist
|
|
86
90
|
|
|
87
91
|
- [ ] All required security headers present and returning correct values (target A+ on securityheaders.com)
|