claude-code-arcane 2.0.0 → 2.2.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 +24 -0
- package/README.md +6 -4
- package/agents/audio/audio-director.md +90 -0
- package/agents/audio/audio-programmer.md +97 -0
- package/agents/audio/audio-qa.md +95 -0
- package/agents/audio/composer.md +88 -0
- package/agents/audio/technical-sound-designer.md +90 -0
- package/agents/audio/voice-director.md +96 -0
- package/docs/SKILLS-CATALOG.md +45 -2
- package/docs/USER-GUIDE.md +2 -2
- package/package.json +1 -1
- package/profiles/audio.yaml +45 -0
- package/profiles/second-brain.yaml +37 -0
- package/rules/gamedev/audio-code.md +45 -0
- package/rules/vault-conventions.md +144 -0
- package/skills/adaptive-music/SKILL.md +171 -0
- package/skills/adaptive-music/references/anti-patterns.md +53 -0
- package/skills/audio-audit/SKILL.md +164 -0
- package/skills/audio-audit/references/anti-patterns.md +65 -0
- package/skills/audio-audit/scripts/check_assets.py +208 -0
- package/skills/audio-bible/SKILL.md +119 -0
- package/skills/audio-bible/references/anti-patterns.md +39 -0
- package/skills/audio-mix/SKILL.md +151 -0
- package/skills/audio-mix/references/anti-patterns.md +65 -0
- package/skills/audio-spec/SKILL.md +107 -0
- package/skills/audio-spec/references/anti-patterns.md +45 -0
- package/skills/brain-dump/SKILL.md +53 -0
- package/skills/hub-note/SKILL.md +68 -0
- package/skills/middleware-integration/SKILL.md +186 -0
- package/skills/middleware-integration/references/anti-patterns.md +69 -0
- package/skills/midi-compose/SKILL.md +136 -0
- package/skills/midi-compose/references/smf-format.md +129 -0
- package/skills/midi-compose/scripts/compose_midi.py +326 -0
- package/skills/midi-compose/templates/example-composition.json +69 -0
- package/skills/music-composition/SKILL.md +106 -0
- package/skills/music-composition/references/form.md +57 -0
- package/skills/music-composition/references/game-music.md +82 -0
- package/skills/music-composition/references/harmony.md +82 -0
- package/skills/music-composition/references/melody.md +48 -0
- package/skills/music-composition/references/orchestration.md +69 -0
- package/skills/music-composition/references/rhythm-groove.md +49 -0
- package/skills/obsidian-bases/SKILL.md +85 -0
- package/skills/obsidian-bases/references/bases-syntax.md +123 -0
- package/skills/obsidian-canvas/SKILL.md +91 -0
- package/skills/obsidian-markdown/SKILL.md +110 -0
- package/skills/pdf-generator/scripts/fill_inspect.py +2 -0
- package/skills/pdf-generator/scripts/render_body.py +2 -0
- package/skills/procedural-audio/SKILL.md +157 -0
- package/skills/procedural-audio/references/anti-patterns.md +45 -0
- package/skills/review-dump/SKILL.md +108 -0
- package/skills/review-monthly/SKILL.md +56 -0
- package/skills/review-weekly/SKILL.md +91 -0
- package/skills/second-brain/SKILL.md +211 -0
- package/skills/second-brain/hooks/hooks.json +16 -0
- package/skills/second-brain/hooks/validate-note.sh +85 -0
- package/skills/second-brain/references/cross-project.md +57 -0
- package/skills/second-brain/references/templates/Atomic.md +22 -0
- package/skills/second-brain/references/templates/Daily.md +25 -0
- package/skills/second-brain/references/templates/Dashboard.base +70 -0
- package/skills/second-brain/references/templates/Dump.md +11 -0
- package/skills/second-brain/references/templates/Hub.md +22 -0
- package/skills/second-brain/references/templates/Monthly.md +29 -0
- package/skills/second-brain/references/templates/Weekly.md +29 -0
- package/skills/second-brain/references/templates/codebases.md +37 -0
- package/skills/second-brain/references/templates/hot.md +37 -0
- package/skills/second-brain/references/templates/vault-CLAUDE.md +127 -0
- package/skills/sfx-design/SKILL.md +130 -0
- package/skills/sfx-design/references/anti-patterns.md +53 -0
- package/skills/spatial-audio/SKILL.md +139 -0
- package/skills/spatial-audio/references/anti-patterns.md +53 -0
- package/skills/ui-sound-design/SKILL.md +133 -0
- package/skills/ui-sound-design/references/anti-patterns.md +57 -0
- package/skills/vault-audit/SKILL.md +72 -0
- package/skills/vault-audit/scripts/vault_audit.py +539 -0
- package/skills/vault-clip/SKILL.md +73 -0
- package/skills/vault-recall/SKILL.md +82 -0
- package/skills/vault-recall/scripts/vault_index.py +626 -0
- package/skills/vault-tidy/SKILL.md +76 -0
- package/skills/voice-pipeline/SKILL.md +150 -0
- package/skills/voice-pipeline/references/anti-patterns.md +69 -0
- package/skills/xlsx-generator/scripts/formula_check.py +2 -0
- package/skills/xlsx-generator/scripts/libreoffice_recalc.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_add_column.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_insert_row.py +2 -0
- package/skills/xlsx-generator/scripts/xlsx_reader.py +2 -0
- package/skills/zettel/SKILL.md +66 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: vault-tidy
|
|
3
|
+
description: "Aplica los arreglos que reporto /vault-audit con approval item por item: linkear huerfanas, resolver nombres duplicados, cancelar tareas arrastradas, completar frontmatter y archivar. Nunca borra. Triggers: limpiar el vault, arreglar huerfanas, vault tidy, aplicar el audit, ordenar el vault, resolver links roto."
|
|
4
|
+
argument-hint: "[orphans | broken | duplicates | tasks | frontmatter | archive | all]"
|
|
5
|
+
category: "pkm"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Bash, Write, Edit
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Vault Tidy - Aplicar los arreglos
|
|
11
|
+
|
|
12
|
+
Sos la única skill del profile que edita notas existentes en volumen, y por eso la más peligrosa. Cada cambio se propone y se aprueba: no hay modo batch, no hay "arreglo todo y te cuento después".
|
|
13
|
+
|
|
14
|
+
Categoría a arreglar: `$ARGUMENTS` (default: preguntar cuál, nunca `all` por omisión)
|
|
15
|
+
|
|
16
|
+
Aplica la rule `vault-conventions`.
|
|
17
|
+
|
|
18
|
+
**Rutas por rol:** los destinos se nombran por rol y la ruta real de cada uno sale del `## Rutas` del `CLAUDE.md` del vault. Los defaults entre paréntesis solo aplican si el vault no declara otra cosa.
|
|
19
|
+
|
|
20
|
+
## Fase 1 - Antes de tocar nada
|
|
21
|
+
|
|
22
|
+
1. **Ubicar el vault** y leer su `CLAUDE.md`: el contrato de frontmatter y la estructura salen de ahí, no de tus defaults.
|
|
23
|
+
2. **Verificar git.** Si el vault es un repo y el árbol está sucio, parar y pedir commit primero. Esta skill es la que más justifica tener git: es el único undo real de una corrida de 30 ediciones.
|
|
24
|
+
3. **Correr `/vault-audit`** y trabajar sobre esos hallazgos. Nunca decidir a ojo qué arreglar.
|
|
25
|
+
4. **Acotar la corrida.** Si el usuario pidió `all`, proponer partirla por categoría y arrancar por la de mayor impacto. Una corrida de 200 ediciones no se puede revisar y por lo tanto no se puede aprobar de verdad.
|
|
26
|
+
|
|
27
|
+
## Fase 2 - Los arreglos, por categoría
|
|
28
|
+
|
|
29
|
+
### `duplicates` - Nombres duplicados
|
|
30
|
+
El más urgente: dos archivos con el mismo nombre hacen que todo `[[link corto]]` a ese nombre resuelva impredecible.
|
|
31
|
+
|
|
32
|
+
Para cada par: mostrar las dos notas y proponer renombrar la menos linkeada, o fusionarlas si son la misma cosa. **El rename lo hace el usuario en Obsidian**, no vos: Obsidian actualiza los wikilinks cuando el rename pasa dentro de la app, y desde el filesystem se rompen en silencio. Tu entregable acá es la lista de renames a hacer y el orden.
|
|
33
|
+
|
|
34
|
+
### `orphans` - Huérfanas
|
|
35
|
+
Para cada huérfana: leerla, proponer el hub o la nota desde donde linkearla, y agregar el link **en el hub**, no en la huérfana. El link entrante es el que la hace encontrable.
|
|
36
|
+
|
|
37
|
+
Si varias huérfanas son del mismo tema, el arreglo no es linkearlas una por una: es crear el hub que falta con `/hub-note` y linkearlas desde ahí. Decilo antes de empezar a parchear.
|
|
38
|
+
|
|
39
|
+
### `broken` - Links roto
|
|
40
|
+
Clasificar cada uno antes de tocarlo:
|
|
41
|
+
|
|
42
|
+
- **Typo:** el target existe con otro nombre. Corregir el link.
|
|
43
|
+
- **Intención:** la nota no existe todavía y el link es un recordatorio. **Se deja.** Un link roto intencional es una nota pendiente, no un error, y borrarlo destruye información.
|
|
44
|
+
- **Basura:** link a algo que ya no aplica. Quitar el link, dejar el texto.
|
|
45
|
+
|
|
46
|
+
Preguntá cuál es cuando no se pueda deducir del contexto. No adivines.
|
|
47
|
+
|
|
48
|
+
### `tasks` - Tareas arrastradas
|
|
49
|
+
Para cada tarea abierta en un día que ya cerró: marcarla `- [-]` en su día original y preguntar si sigue vigente. Si sigue, crearla en la nota del proyecto o en el dump de hoy. Nunca mover la original.
|
|
50
|
+
|
|
51
|
+
### `frontmatter` - Contrato
|
|
52
|
+
Completar los campos ausentes del contrato del vault. `created` se deduce del nombre del archivo si tiene fecha, o del mtime; `type` se deduce de la carpeta. Si no se puede deducir, preguntar. **Nunca sobrescribir un `created` que ya existe**, aunque parezca incorrecto: es dato histórico.
|
|
53
|
+
|
|
54
|
+
### `archive` - Archivar
|
|
55
|
+
Mover al rol `archive` (default `04_Archive/`) lo que el usuario confirme cerrado, preservando el nombre. **Nunca borrar nada.** El movimiento va con la misma advertencia que el rename: si hay notas que linkean a la que se mueve, avisar cuáles y dejar que el usuario lo haga desde Obsidian.
|
|
56
|
+
|
|
57
|
+
## Fase 3 - Aplicar y reportar
|
|
58
|
+
|
|
59
|
+
1. Proponer los cambios en una tabla: nota, qué cambia, por qué. Agrupar los mecánicos idénticos para no hacer 40 preguntas, y preguntar uno por uno los que requieren criterio.
|
|
60
|
+
2. Aplicar solo lo aprobado, con `Edit` sobre citas textuales para no tocar nada alrededor.
|
|
61
|
+
3. Reportar qué se cambió y qué quedó pendiente, y recordar el commit.
|
|
62
|
+
|
|
63
|
+
Tidy COMPLETE cuando los cambios aprobados están aplicados y el resto quedó explícitamente pendiente, no olvidado.
|
|
64
|
+
|
|
65
|
+
## Reglas
|
|
66
|
+
|
|
67
|
+
- **Nunca borrar una nota.** Archivar.
|
|
68
|
+
- **Nunca renombrar ni mover desde el filesystem** sin avisar que rompe wikilinks: proponé que lo haga el usuario desde Obsidian.
|
|
69
|
+
- Nada de ediciones en masa sin approval, ni siquiera las triviales.
|
|
70
|
+
- No tocar el rol `templates` (default `Templates/`) ni `.obsidian/`.
|
|
71
|
+
- No reescribir contenido del usuario: agregás links y frontmatter, no editás su prosa.
|
|
72
|
+
- Sin guiones largos.
|
|
73
|
+
|
|
74
|
+
## Handoff
|
|
75
|
+
|
|
76
|
+
Con los arreglos aplicados, volver a correr `/vault-audit` para confirmar que los números se movieron: si un hallazgo sigue igual, el arreglo no era el correcto. Si la corrida dejó al descubierto temas sin hub, el siguiente paso es `/hub-note`.
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: voice-pipeline
|
|
3
|
+
description: "Pipeline de voz: script de VO, casting, sesiones de grabacion, naming y batch processing, localizacion, lipsync y barks. Usar para: dialogo grabado, voice over, doblaje, localizacion de voz, gestion de assets de VO."
|
|
4
|
+
category: "audio"
|
|
5
|
+
argument-hint: "[script | casting | naming | loc | barks]"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Edit
|
|
8
|
+
---
|
|
9
|
+
# voice-pipeline — Voz y Localización
|
|
10
|
+
|
|
11
|
+
Gestiona el ciclo completo de voz grabada: del script al asset integrado y localizado.
|
|
12
|
+
|
|
13
|
+
La voz es el área de audio donde los errores son **más caros**: rehacer una sesión de grabación cuesta dinero y agenda de actores, y un error de naming multiplicado por 12 idiomas es inmanejable a mano.
|
|
14
|
+
|
|
15
|
+
## Cuándo usar
|
|
16
|
+
|
|
17
|
+
- Preparar un script de VO para grabación
|
|
18
|
+
- Definir naming y estructura antes de recibir assets
|
|
19
|
+
- Planificar localización a varios idiomas
|
|
20
|
+
- Gestionar barks (chatter de combate) y su variación
|
|
21
|
+
- El pipeline de VO se desordenó y hay que reorganizarlo
|
|
22
|
+
|
|
23
|
+
## Input
|
|
24
|
+
|
|
25
|
+
1. Leer audio bible (dirección de voz si existe) y el guion narrativo
|
|
26
|
+
2. Determinar: cuántos idiomas, cuántos personajes, si hay lipsync
|
|
27
|
+
3. Preguntar al usuario: presupuesto de grabación, si hay actores ya contratados, y plataforma de destino
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Naming — la decisión más importante
|
|
32
|
+
|
|
33
|
+
**El naming se define antes de grabar una sola línea.** Renombrar 4.000 archivos × 12 idiomas después no es una tarea, es un proyecto.
|
|
34
|
+
|
|
35
|
+
Patrón recomendado:
|
|
36
|
+
|
|
37
|
+
```
|
|
38
|
+
vo_<personaje>_<contexto>_<id>_<variante>
|
|
39
|
+
vo_kira_combat_taunt_003_a
|
|
40
|
+
vo_kira_story_ch02_017
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**Requisitos del patrón:**
|
|
44
|
+
- **ID estable y único** — nunca se reusa, ni si la línea se corta. Los huecos son gratis; renumerar no
|
|
45
|
+
- **Sin espacios ni acentos** — sobrevive a cualquier filesystem y a batch scripts
|
|
46
|
+
- **El idioma NO va en el nombre del archivo** — va en la ruta o en el bank de idioma. Así el mismo nombre resuelve en cualquier locale
|
|
47
|
+
- **Ordenable alfabéticamente** en el orden en que se usa
|
|
48
|
+
- **Longitud acotada** — algunas plataformas tienen límites de path
|
|
49
|
+
|
|
50
|
+
El ID es la llave que une script, sesión de grabación, asset, subtítulo y traducción. Si cambia en algún punto, el vínculo se rompe.
|
|
51
|
+
|
|
52
|
+
## Script de VO
|
|
53
|
+
|
|
54
|
+
Lo que el actor y el director necesitan por línea:
|
|
55
|
+
|
|
56
|
+
| Campo | Por qué |
|
|
57
|
+
|---|---|
|
|
58
|
+
| **ID** | La llave de todo el pipeline |
|
|
59
|
+
| **Personaje** | |
|
|
60
|
+
| **Texto** | Exacto, es lo que se graba y se subtitula |
|
|
61
|
+
| **Contexto** | Qué pasó antes; sin esto la actuación es a ciegas |
|
|
62
|
+
| **Dirección** | Emoción, intensidad, a quién le habla |
|
|
63
|
+
| **Restricción de duración** | Si tiene que calzar en una animación o un hueco de gameplay |
|
|
64
|
+
| **Tomas pedidas** | Cuántas variantes de intención |
|
|
65
|
+
|
|
66
|
+
**El contexto es lo que más se omite y lo que más arruina sesiones.** Un actor grabando líneas sueltas en orden alfabético, sin saber a quién le habla ni qué acaba de pasar, entrega material que no sirve y hay que volver a convocarlo.
|
|
67
|
+
|
|
68
|
+
**Orden de grabación:** por personaje y por escena, no por ID. Agrupar además por intensidad emocional — dejar los gritos para el final de la sesión, porque desgastan la voz y arruinan lo que venga después.
|
|
69
|
+
|
|
70
|
+
## Casting
|
|
71
|
+
|
|
72
|
+
- **Rango, no solo timbre** — el personaje que grita en el acto tres necesita un actor que pueda gritar sin perder la voz
|
|
73
|
+
- **Distinguibilidad** — dos personajes que suenan parecido confunden en un juego donde el jugador no siempre ve quién habla. Test: escuchar sin ver
|
|
74
|
+
- **Disponibilidad para pickups** — siempre hay pickups. Un actor imposible de reconvocar es un riesgo de producción
|
|
75
|
+
- **Consistencia entre idiomas** — el casting de localización debería mantener el *rol tímbrico*, no imitar al actor original
|
|
76
|
+
|
|
77
|
+
## Barks
|
|
78
|
+
|
|
79
|
+
El chatter de combate tiene reglas propias porque se escucha muchísimo:
|
|
80
|
+
|
|
81
|
+
- **Muchas variantes por intención** — mínimo 5-8 por tipo. Un bark repetido es lo primero que el jugador nota
|
|
82
|
+
- **Cortos** — 0.5 a 2 s. Un bark largo se pisa con el gameplay
|
|
83
|
+
- **Cooldown global por personaje y por tipo** — dos enemigos gritando lo mismo a la vez suena a bug
|
|
84
|
+
- **Prioridad baja** — un bark nunca debe tapar diálogo narrativo ni feedback del jugador
|
|
85
|
+
- **Bus separado** de `Dialogue` para que no duckeen la música (ver `/audio-mix`)
|
|
86
|
+
- **Interrumpibles** — si el personaje muere a mitad del bark, se corta
|
|
87
|
+
|
|
88
|
+
## Localización
|
|
89
|
+
|
|
90
|
+
| Decisión | Recomendación |
|
|
91
|
+
|---|---|
|
|
92
|
+
| Estructura | Un bank o carpeta por idioma, mismos nombres de archivo adentro |
|
|
93
|
+
| Idioma en runtime | Se resuelve cargando el bank del locale, sin lógica en gameplay |
|
|
94
|
+
| Fallback | Idioma base si falta el asset — nunca silencio |
|
|
95
|
+
| Expansión de texto | El alemán y el español crecen 20-35% sobre el inglés: los huecos de tiempo tienen que tolerarlo |
|
|
96
|
+
| Subtítulos | Mismo ID que el audio. Un ID sin subtítulo es un bug de accesibilidad |
|
|
97
|
+
| Sin doblar | Idiomas con subtítulo solo: definir explícitamente cuáles y que la mezcla lo contemple |
|
|
98
|
+
|
|
99
|
+
**La expansión de texto es el problema práctico más común.** Una línea que calza justo en inglés se pasa 30% en alemán, y si hay una animación fija o un hueco de gameplay, no entra. Presupuestar el hueco contra el idioma más largo del target, no contra el inglés.
|
|
100
|
+
|
|
101
|
+
## Procesamiento por lotes
|
|
102
|
+
|
|
103
|
+
El VO llega en crudo y necesita el mismo tratamiento en miles de archivos. Lo que debe ser automatizado, no manual:
|
|
104
|
+
|
|
105
|
+
1. **Recorte de silencios** con umbral consistente
|
|
106
|
+
2. **Normalización de loudness** a un target común
|
|
107
|
+
3. **De-noise / de-click** si la fuente lo pide
|
|
108
|
+
4. **Fades** de entrada y salida cortos
|
|
109
|
+
5. **Verificación**: sample rate, bit depth, canales, duración vs restricción
|
|
110
|
+
6. **Reporte** de los que no cumplen
|
|
111
|
+
|
|
112
|
+
El paso 5 y 6 son los que hay que exigir: sin verificación automática, los assets que no cumplen se descubren en integración.
|
|
113
|
+
|
|
114
|
+
## Lipsync
|
|
115
|
+
|
|
116
|
+
- **Basado en fonemas** (extraído del audio o del texto) o **basado en amplitud** (más barato, mucho peor)
|
|
117
|
+
- Si hay lipsync, el **texto tiene que coincidir exactamente** con lo grabado — una improvisación del actor rompe la sincronía
|
|
118
|
+
- La localización necesita lipsync regenerado por idioma, o aceptar el desfasaje explícitamente
|
|
119
|
+
- Los pickups tienen que regenerar el lipsync de la línea afectada
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## Proceso
|
|
124
|
+
|
|
125
|
+
1. **Definir el naming** y congelarlo. Este paso primero, sin excepción
|
|
126
|
+
2. **Armar el script** con contexto y dirección por línea
|
|
127
|
+
3. **Planificar las sesiones** por personaje/escena, con los gritos al final
|
|
128
|
+
4. **Definir la estructura** de localización y el fallback
|
|
129
|
+
5. **Definir el pipeline** de batch con su paso de verificación
|
|
130
|
+
6. **Definir barks** con variantes, cooldown y bus
|
|
131
|
+
7. **Escribir** — preguntar "¿Escribo el pipeline a `<path>`?" antes de usar Write
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Verdict
|
|
136
|
+
|
|
137
|
+
- **READY** — naming congelado, script con contexto y dirección, estructura de localización con fallback, pipeline de batch con verificación automática
|
|
138
|
+
- **CONCERNS** — el pipeline existe pero el script no tiene contexto por línea, o la expansión de texto no se presupuestó, o los barks no tienen cooldown
|
|
139
|
+
- **BLOCKED** — el naming no está definido: cualquier grabación antes de eso genera trabajo que se va a rehacer
|
|
140
|
+
|
|
141
|
+
## Anti-patterns
|
|
142
|
+
|
|
143
|
+
> → Read references/anti-patterns.md
|
|
144
|
+
|
|
145
|
+
## Next steps
|
|
146
|
+
|
|
147
|
+
- `/audio-mix` para el bus de diálogo y el ducking
|
|
148
|
+
- `/audio-spec` para el contrato de eventos de barks (concurrencia y cooldown)
|
|
149
|
+
- `/audio-audit` para verificar los assets entregados contra el spec
|
|
150
|
+
- `/middleware-integration` para los banks de idioma
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
# Voice Pipeline — Anti-patterns
|
|
2
|
+
|
|
3
|
+
## Grabar antes de definir el naming
|
|
4
|
+
|
|
5
|
+
El error más caro del pipeline. Renombrar 4.000 archivos × 12 idiomas, y actualizar script, subtítulos y referencias en el middleware, no es una tarea: es un proyecto. El naming se congela primero.
|
|
6
|
+
|
|
7
|
+
## Idioma en el nombre del archivo
|
|
8
|
+
|
|
9
|
+
`vo_kira_line_003_es.wav` obliga a lógica de resolución de nombre en runtime. El idioma va en la ruta o en el bank; el nombre del archivo es idéntico en todos los locales.
|
|
10
|
+
|
|
11
|
+
## Renumerar IDs
|
|
12
|
+
|
|
13
|
+
Se corta una línea y se renumeran las siguientes para "que quede ordenado". Se rompe el vínculo con subtítulos, traducciones y assets ya grabados. Los huecos en la numeración son gratis.
|
|
14
|
+
|
|
15
|
+
## Script sin contexto
|
|
16
|
+
|
|
17
|
+
El actor graba líneas sueltas en orden alfabético sin saber a quién le habla ni qué acaba de pasar. El material no sirve y hay que reconvocarlo. El contexto por línea es obligatorio.
|
|
18
|
+
|
|
19
|
+
## Grabar en orden de ID
|
|
20
|
+
|
|
21
|
+
El orden es por personaje y por escena. Y los gritos al final de la sesión: desgastan la voz y arruinan todo lo que venga después.
|
|
22
|
+
|
|
23
|
+
## Casting por timbre solamente
|
|
24
|
+
|
|
25
|
+
El personaje que grita en el acto tres necesita un actor con rango para gritar sin perder la voz. Y si dos personajes suenan parecido, el jugador que no ve quién habla se confunde.
|
|
26
|
+
|
|
27
|
+
## Actor imposible de reconvocar
|
|
28
|
+
|
|
29
|
+
Siempre hay pickups. Un actor sin disponibilidad futura es un riesgo de producción, no un detalle de contrato.
|
|
30
|
+
|
|
31
|
+
## Presupuestar los huecos contra el inglés
|
|
32
|
+
|
|
33
|
+
El alemán y el español crecen 20-35%. Una línea que calza justo en inglés no entra en alemán, y si hay animación fija, no hay arreglo. Presupuestar contra el idioma más largo del target.
|
|
34
|
+
|
|
35
|
+
## Fallback a silencio
|
|
36
|
+
|
|
37
|
+
Falta el asset en un idioma y no suena nada. El fallback es el idioma base, siempre.
|
|
38
|
+
|
|
39
|
+
## Subtítulo sin el mismo ID
|
|
40
|
+
|
|
41
|
+
Si el subtítulo no comparte la llave con el audio, mantener los dos sincronizados pasa a ser manual. Y una línea sin subtítulo es un bug de accesibilidad, no un pendiente.
|
|
42
|
+
|
|
43
|
+
## Barks con pocas variantes
|
|
44
|
+
|
|
45
|
+
Un bark repetido es lo primero que el jugador nota. Mínimo 5-8 por intención.
|
|
46
|
+
|
|
47
|
+
## Barks sin cooldown
|
|
48
|
+
|
|
49
|
+
Tres enemigos gritan la misma frase simultáneamente y suena a bug. Cooldown global por personaje y por tipo.
|
|
50
|
+
|
|
51
|
+
## Barks en el bus de diálogo
|
|
52
|
+
|
|
53
|
+
Cada bark de combate duckea la música. Bus separado.
|
|
54
|
+
|
|
55
|
+
## Barks que no se interrumpen
|
|
56
|
+
|
|
57
|
+
El personaje muere y su grito sigue sonando desde un cadáver.
|
|
58
|
+
|
|
59
|
+
## Batch sin verificación
|
|
60
|
+
|
|
61
|
+
Procesar miles de archivos sin un paso que valide sample rate, canales y duración deja que lo que no cumple se descubra en integración, cuando ya es tarde.
|
|
62
|
+
|
|
63
|
+
## Lipsync con texto que no coincide
|
|
64
|
+
|
|
65
|
+
El actor improvisó y el texto de referencia quedó viejo. La sincronía se rompe y nadie sabe por qué. El texto grabado y el de referencia son el mismo o el lipsync miente.
|
|
66
|
+
|
|
67
|
+
## Localización sin regenerar lipsync
|
|
68
|
+
|
|
69
|
+
O se regenera por idioma, o se acepta el desfasaje explícitamente como decisión. Lo que no se puede es descubrirlo en certificación.
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: zettel
|
|
3
|
+
description: "Crea una nota atomica en el vault a partir de una idea, un fragmento del dump o una nota de proyecto, con el criterio de cuando algo merece nota propia y a que linkearla. Triggers: nota atomica, zettel, esto merece nota propia, crear nota permanente, graduar esta idea, nota de concepto."
|
|
4
|
+
argument-hint: "[idea | ruta#seccion | dump YYYY-MM-DD]"
|
|
5
|
+
category: "pkm"
|
|
6
|
+
user-invocable: true
|
|
7
|
+
allowed-tools: Read, Glob, Grep, Write, Edit
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Zettel - Nota atómica
|
|
11
|
+
|
|
12
|
+
Creás una nota que contiene **una** idea, escrita para que se entienda sola en dos años y linkeada al resto del vault. La mitad del trabajo es decidir si la nota tiene que existir.
|
|
13
|
+
|
|
14
|
+
Idea o fuente: `$ARGUMENTS`
|
|
15
|
+
|
|
16
|
+
Aplica la rule `vault-conventions`.
|
|
17
|
+
|
|
18
|
+
**Rutas por rol:** los destinos se nombran por rol y la ruta real de cada uno sale del `## Rutas` del `CLAUDE.md` del vault (leelo antes de escribir). Los defaults entre paréntesis solo aplican si el vault no declara otra cosa.
|
|
19
|
+
|
|
20
|
+
## Fase 1 - Decidir si merece nota propia
|
|
21
|
+
|
|
22
|
+
Una idea merece nota atómica propia cuando pasa **las tres**:
|
|
23
|
+
|
|
24
|
+
1. **Es verdadera fuera del contexto que la produjo.** Si solo tiene sentido dentro del proyecto donde apareció, es una nota de proyecto y se queda ahí.
|
|
25
|
+
2. **La linkearías desde otra nota.** Si no se te ocurre ni un lugar desde donde apuntar a esto, todavía no es conocimiento: es un registro.
|
|
26
|
+
3. **El título puede afirmar algo.** "Los índices parciales pagan en tablas con lecturas sesgadas" es una idea. "Postgres" es un tema, y los temas son hub files, no notas atómicas.
|
|
27
|
+
|
|
28
|
+
Si falla alguna, decirlo y proponer el destino real: se queda en el dump, va a la nota del proyecto, o va al `## Historial` de un hub. Verdict de esta fase: PASS solo si las tres se cumplen. No crear la nota para no dejar al usuario con las manos vacías: una nota atómica de más ensucia el grafo para siempre.
|
|
29
|
+
|
|
30
|
+
## Fase 2 - Buscar duplicados
|
|
31
|
+
|
|
32
|
+
Antes de escribir, buscar duplicados con `/vault-recall` si está disponible (rankea, y encuentra la nota que usó otro nombre), o `Grep` en `<atomic>` (default `03_Resources/`) por los términos del título y sus sinónimos obvios. Si ya hay una nota que cubre la idea:
|
|
33
|
+
|
|
34
|
+
- **Misma idea:** proponer ampliar la nota existente en vez de crear otra. Es el caso más frecuente y el que evita el vault con cinco notas del mismo concepto bajo cinco nombres.
|
|
35
|
+
- **Idea relacionada pero distinta:** crear la nueva y linkear ambas explícitamente, con una línea de por qué se distinguen.
|
|
36
|
+
|
|
37
|
+
## Fase 3 - Escribir
|
|
38
|
+
|
|
39
|
+
Con approval sobre el título y el destino, crear la nota en `<atomic>` (default `03_Resources/`) desde `<templates>/Atomic.md`:
|
|
40
|
+
|
|
41
|
+
- **Título como afirmación**, no como etiqueta. Es el nombre del archivo y lo que vas a ver en el autocompletado de links dentro de tres años.
|
|
42
|
+
- **La idea en las palabras del usuario**, no en las de la fuente. Si es una cita, va entre comillas con su fuente; el cuerpo de la nota es la reformulación.
|
|
43
|
+
- **Sección `## Por qué me importa`:** una o dos líneas sobre qué problema del usuario toca. Es lo que separa una nota atómica de un resumen de Wikipedia. Si el usuario no lo dijo, preguntar en una línea, no inventarlo.
|
|
44
|
+
- **Sección `## Relacionado`:** al menos un `[[wikilink]]`, siempre. Si no hay a qué linkear, falta el hub del tema: crearlo con `/hub-note` antes de cerrar esta nota.
|
|
45
|
+
- **Sección `## Fuente`:** el clip, el libro, la conversación, o "propia" si salió del usuario.
|
|
46
|
+
- **`status` del frontmatter:** `seed` si la nota queda como semilla a propósito, `provisional` si ya tiene cuerpo. **Nunca pongas `evergreen` vos:** eso lo decide el usuario cuando la nota deja de moverse, y es lo que hace que el audit no la reporte como stale.
|
|
47
|
+
|
|
48
|
+
Si la idea vino de una nota de proyecto o de un dump, **la fuente no se vacía**: la línea original se queda donde estaba y se le agrega el link a la nota nueva.
|
|
49
|
+
|
|
50
|
+
## Fase 4 - Conectar
|
|
51
|
+
|
|
52
|
+
1. Linkear la nota desde el hub del tema (sección `## Notas` del hub). El link del hub a la nota es el que la hace encontrable.
|
|
53
|
+
2. Si la nota discute o contradice otra nota atómica, linkearlas entre sí con una línea de por qué. Las conexiones entre notas atómicas son laterales y sí son bidireccionales: es el único caso donde la regla de "links hacia arriba" no aplica, porque acá no hay jerarquía.
|
|
54
|
+
|
|
55
|
+
Nota COMPLETE cuando existe, tiene al menos un link entrante desde un hub y al menos uno saliente.
|
|
56
|
+
|
|
57
|
+
## Reglas
|
|
58
|
+
|
|
59
|
+
- Una idea por nota. Si necesitás dos `##` que no se relacionan, son dos notas.
|
|
60
|
+
- Nunca vaciar la fuente de la que salió la idea.
|
|
61
|
+
- No crear la nota si falla el criterio de graduación, aunque el usuario lo haya pedido: explicá por qué y proponé el destino correcto. Si insiste, se crea.
|
|
62
|
+
- Sin guiones largos.
|
|
63
|
+
|
|
64
|
+
## Handoff
|
|
65
|
+
|
|
66
|
+
Con la nota creada, el siguiente paso es `/hub-note` si el tema todavía no tiene hub, o volver a `/review-dump` si esto salió en medio de procesar un día. Al cierre de la semana `/review-weekly` va a levantar la nota como parte de lo que creció.
|