bookwright-cli 0.2.0__py3-none-any.whl
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.
- bookwright/__init__.py +3 -0
- bookwright/__main__.py +6 -0
- bookwright/cli.py +19 -0
- bookwright/commands/__init__.py +0 -0
- bookwright/commands/_envelope.py +36 -0
- bookwright/commands/check.py +75 -0
- bookwright/commands/graph/__init__.py +23 -0
- bookwright/commands/graph/build.py +157 -0
- bookwright/commands/graph/envelope.py +26 -0
- bookwright/commands/graph/query.py +98 -0
- bookwright/commands/init/__init__.py +5 -0
- bookwright/commands/init/conflict.py +107 -0
- bookwright/commands/init/envelope.py +322 -0
- bookwright/commands/init/git.py +96 -0
- bookwright/commands/init/main.py +263 -0
- bookwright/commands/init/resolve.py +193 -0
- bookwright/commands/init/scaffold.py +242 -0
- bookwright/commands/init/validate.py +172 -0
- bookwright/commands/integration/__init__.py +22 -0
- bookwright/commands/integration/use.py +120 -0
- bookwright/commands/validate.py +160 -0
- bookwright/commands/version.py +35 -0
- bookwright/core/__init__.py +35 -0
- bookwright/core/_blocks.py +239 -0
- bookwright/core/_build.py +154 -0
- bookwright/core/_research_block.py +56 -0
- bookwright/core/_translate.py +90 -0
- bookwright/core/errors.py +127 -0
- bookwright/core/iso639_1.py +200 -0
- bookwright/core/manifest.py +343 -0
- bookwright/errors.py +47 -0
- bookwright/golem/__init__.py +71 -0
- bookwright/golem/base.py +200 -0
- bookwright/golem/errors.py +29 -0
- bookwright/golem/modules/__init__.py +1 -0
- bookwright/golem/modules/character.py +109 -0
- bookwright/golem/modules/event.py +91 -0
- bookwright/golem/modules/feature.py +161 -0
- bookwright/golem/modules/inference.py +41 -0
- bookwright/golem/modules/narrative.py +55 -0
- bookwright/golem/modules/provenance.py +197 -0
- bookwright/golem/modules/relationship.py +38 -0
- bookwright/golem/modules/setting.py +30 -0
- bookwright/golem/namespaces.py +332 -0
- bookwright/golem/serialize.py +25 -0
- bookwright/golem/slug.py +22 -0
- bookwright/indexers/__init__.py +47 -0
- bookwright/indexers/base.py +55 -0
- bookwright/indexers/errors.py +80 -0
- bookwright/indexers/rdflib_indexer.py +89 -0
- bookwright/integrations/__init__.py +155 -0
- bookwright/integrations/base.py +117 -0
- bookwright/integrations/claude/__init__.py +29 -0
- bookwright/integrations/constants.py +38 -0
- bookwright/integrations/descriptions.py +48 -0
- bookwright/integrations/errors.py +170 -0
- bookwright/integrations/generic/__init__.py +56 -0
- bookwright/integrations/lint.py +160 -0
- bookwright/integrations/materialize.py +202 -0
- bookwright/integrations/options.py +203 -0
- bookwright/io/__init__.py +1 -0
- bookwright/io/bible.py +500 -0
- bookwright/io/errors.py +98 -0
- bookwright/io/frontmatter.py +61 -0
- bookwright/io/fs.py +226 -0
- bookwright/io/manuscript.py +15 -0
- bookwright/io/project.py +21 -0
- bookwright/io/report.py +107 -0
- bookwright/io/research.py +427 -0
- bookwright/resources/__init__.py +1 -0
- bookwright/resources/commands/bookwright-analyze.md +66 -0
- bookwright/resources/commands/bookwright-bible.md +96 -0
- bookwright/resources/commands/bookwright-checklist.md +67 -0
- bookwright/resources/commands/bookwright-clarify.md +65 -0
- bookwright/resources/commands/bookwright-constitution.md +79 -0
- bookwright/resources/commands/bookwright-continuity.md +70 -0
- bookwright/resources/commands/bookwright-draft.md +74 -0
- bookwright/resources/commands/bookwright-outline.md +71 -0
- bookwright/resources/commands/bookwright-research.md +107 -0
- bookwright/resources/commands/bookwright-scenes.md +66 -0
- bookwright/resources/commands/bookwright-synopsis.md +67 -0
- bookwright/resources/commands/bookwright-verify.md +136 -0
- bookwright/resources/commands/references/golem-character.md +65 -0
- bookwright/resources/commands/references/golem-events-timeline.md +56 -0
- bookwright/resources/commands/references/golem-relationships.md +53 -0
- bookwright/resources/commands/references/greimas-actants.md +57 -0
- bookwright/resources/commands/references/pending-protocol.md +72 -0
- bookwright/resources/commands/references/propp-functions.md +54 -0
- bookwright/resources/commands/references/research-format.md +136 -0
- bookwright/resources/project/.bookwright/cache/.gitkeep +0 -0
- bookwright/resources/project/.bookwright/schema/.gitkeep +0 -0
- bookwright/resources/project/.bookwright/templates/.gitkeep +0 -0
- bookwright/resources/project/.gitignore +23 -0
- bookwright/resources/project/README.md.j2 +40 -0
- bookwright/resources/project/__init__.py +6 -0
- bookwright/resources/project/bible/characters/.gitkeep +0 -0
- bookwright/resources/project/bible/constitution.md.j2 +74 -0
- bookwright/resources/project/bible/glossary.md +36 -0
- bookwright/resources/project/bible/locations/.gitkeep +0 -0
- bookwright/resources/project/bible/pov-structure.md +43 -0
- bookwright/resources/project/bible/relationships.md +36 -0
- bookwright/resources/project/bible/research/_index.md +28 -0
- bookwright/resources/project/bible/research/sources.md +23 -0
- bookwright/resources/project/bible/settings/.gitkeep +0 -0
- bookwright/resources/project/bible/subplots.md +35 -0
- bookwright/resources/project/bible/themes.md +36 -0
- bookwright/resources/project/bible/timeline.md +38 -0
- bookwright/resources/project/manuscript/.gitkeep +0 -0
- bookwright/resources/project/outline/arcs.md +34 -0
- bookwright/resources/project/outline/scenes.md +31 -0
- bookwright/resources/project/outline/structure.md +35 -0
- bookwright/resources/project/outline/synopsis.md +25 -0
- bookwright/resources/schemas/__init__.py +19 -0
- bookwright/resources/schemas/golem-1.1/VERSION +1 -0
- bookwright/resources/schemas/golem-1.1/golem.ttl +1947 -0
- bookwright/resources/schemas/golem-1.1/version.json +8 -0
- bookwright/resources/templates/__init__.py +1 -0
- bookwright/resources/templates/bible/character.md.tmpl +63 -0
- bookwright/resources/templates/bible/location.md.tmpl +37 -0
- bookwright/resources/templates/bible/research/_index.md.tmpl +25 -0
- bookwright/resources/templates/bible/research/sources.md.tmpl +21 -0
- bookwright/resources/templates/bible/research/tema.md.tmpl +37 -0
- bookwright/resources/templates/bible/setting.md.tmpl +38 -0
- bookwright/resources/templates/manifest.template.toml +79 -0
- bookwright/resources/templates/manuscript/chapter.md.tmpl +36 -0
- bookwright/resources/templates/scenes/scene.md.tmpl +37 -0
- bookwright/resources/vocabularies/__init__.py +6 -0
- bookwright/resources/vocabularies/greimas.ttl +4 -0
- bookwright/resources/vocabularies/propp.ttl +4 -0
- bookwright/resources/vocabularies/sources.ttl +82 -0
- bookwright/validation/__init__.py +33 -0
- bookwright/validation/anchor_queries.py +223 -0
- bookwright/validation/base.py +233 -0
- bookwright/validation/queries.py +197 -0
- bookwright/validation/registry.py +185 -0
- bookwright/validation/report.py +106 -0
- bookwright/validation/runner.py +65 -0
- bookwright/validation/validators/__init__.py +9 -0
- bookwright/validation/validators/character_presence.py +202 -0
- bookwright/validation/validators/factual_anchor.py +291 -0
- bookwright/validation/validators/focalization.py +152 -0
- bookwright/validation/validators/setting_continuity.py +100 -0
- bookwright/validation/validators/temporal.py +277 -0
- bookwright_cli-0.2.0.dist-info/METADATA +218 -0
- bookwright_cli-0.2.0.dist-info/RECORD +149 -0
- bookwright_cli-0.2.0.dist-info/WHEEL +4 -0
- bookwright_cli-0.2.0.dist-info/entry_points.txt +2 -0
- bookwright_cli-0.2.0.dist-info/licenses/LICENSE +202 -0
- bookwright_cli-0.2.0.dist-info/licenses/NOTICE +14 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
{#
|
|
2
|
+
Nota de mantenimiento (comentario Jinja: NO se renderiza en el README final).
|
|
3
|
+
Esta plantilla sólo puede usar las variables de contexto del andamiaje:
|
|
4
|
+
`title`, `project_slug`, `author`, `language`, `integration_key`. No añadas
|
|
5
|
+
otras: el render con `StrictUndefined` abortaría `init`.
|
|
6
|
+
-#}
|
|
7
|
+
# {{ title }}
|
|
8
|
+
|
|
9
|
+
<!--
|
|
10
|
+
Guía: este README es el punto de entrada del proyecto y orienta a quien lo abre
|
|
11
|
+
por primera vez. Edítalo libremente; borra este bloque cuando ya no lo necesites.
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
Proyecto Bookwright — identificador `{{ project_slug }}`.
|
|
15
|
+
Autoría: {{ author }}. Idioma de la obra: `{{ language }}`.
|
|
16
|
+
|
|
17
|
+
## Por dónde empezar
|
|
18
|
+
|
|
19
|
+
1. Abre `bible/constitution.md` y responde sus prompts `[PENDING: …]`: fija la
|
|
20
|
+
voz, el pacto con el lector y las líneas rojas de la obra.
|
|
21
|
+
2. Esboza la historia en `outline/` (sinopsis, estructura, arcos, escenas).
|
|
22
|
+
3. Da cuerpo al mundo en `bible/` (personajes, lugares, temas, glosario).
|
|
23
|
+
4. Escribe el manuscrito bajo `manuscript/`.
|
|
24
|
+
|
|
25
|
+
## Qué contiene cada directorio
|
|
26
|
+
|
|
27
|
+
- `bible/` — la "biblia" de la obra: personajes, escenarios, línea de tiempo,
|
|
28
|
+
relaciones, temas, glosario e investigación. Es la fuente de verdad del mundo.
|
|
29
|
+
- `outline/` — el plan: sinopsis corta y larga, estructura, arcos y escenas.
|
|
30
|
+
- `manuscript/` — el texto en sí, capítulo a capítulo.
|
|
31
|
+
- `.bookwright/` — estado interno del proyecto (caché, vocabularios, esquema);
|
|
32
|
+
no suele editarse a mano.
|
|
33
|
+
|
|
34
|
+
## Comandos clave
|
|
35
|
+
|
|
36
|
+
- `bookwright graph build` — indexa la biblia y construye el grafo GOLEM.
|
|
37
|
+
- `bookwright check` — verifica que el proyecto y la cadena de herramientas
|
|
38
|
+
están en orden.
|
|
39
|
+
|
|
40
|
+
Ejecuta los comandos desde la raíz del proyecto.
|
|
File without changes
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# {{ title }} — Constitución narrativa
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento es el contrato narrativo del proyecto. Todo comando de
|
|
5
|
+
escritura (redacción, revisión, validación) lo lee primero y lo trata como la
|
|
6
|
+
fuente de verdad del tono, los límites y las invariantes de la obra. Responde
|
|
7
|
+
cada prompt `[PENDING: …]` con una frase o un párrafo breve; conserva los
|
|
8
|
+
títulos de sección aunque borres esta guía: los comandos y el agente los
|
|
9
|
+
esperan. Escribe en el idioma de la obra; las claves técnicas y el token
|
|
10
|
+
`[PENDING]` se mantienen en inglés.
|
|
11
|
+
-->
|
|
12
|
+
|
|
13
|
+
## Voz y registro
|
|
14
|
+
|
|
15
|
+
<!-- Guía: define cómo "suena" el libro: persona narrativa, distancia, tono,
|
|
16
|
+
tiempo verbal dominante y nivel de formalidad. Ejemplo de respuesta:
|
|
17
|
+
"Tercera persona limitada, en pasado, tono lírico contenido, registro culto
|
|
18
|
+
con coloquialismos puntuales en el diálogo." -->
|
|
19
|
+
|
|
20
|
+
- **Voz narrativa**: [PENDING: ¿Quién narra y desde qué distancia (primera/tercera persona, omnisciente/limitada)?]
|
|
21
|
+
- **Tono**: [PENDING: ¿Qué tono domina la obra (neutral, lírico, coloquial, técnico…)?]
|
|
22
|
+
- **Tiempo verbal dominante**: [PENDING: ¿Pasado o presente como modo por defecto?]
|
|
23
|
+
- **Registro**: [PENDING: ¿Qué nivel de formalidad y qué textura léxica caracterizan la prosa?]
|
|
24
|
+
|
|
25
|
+
## Pacto con el lector
|
|
26
|
+
|
|
27
|
+
<!-- Guía: la promesa implícita del libro. Qué experiencia ofrece, qué reglas
|
|
28
|
+
del mundo respeta y qué nunca rompe sin coste narrativo. -->
|
|
29
|
+
|
|
30
|
+
[PENDING: ¿Qué promete esta obra al lector y qué reglas se compromete a no traicionar?]
|
|
31
|
+
|
|
32
|
+
## Pacto histórico-ficcional *(opcional)*
|
|
33
|
+
|
|
34
|
+
<!-- Guía: rellena esta sección sólo si la obra dialoga con hechos o periodos
|
|
35
|
+
reales. Si es ficción pura, escribe "No aplica" y continúa. Ejemplo:
|
|
36
|
+
"Los hechos públicos de 1937 son fieles; los personajes de la embajada
|
|
37
|
+
son inventados y nunca se les atribuyen actos documentados." -->
|
|
38
|
+
|
|
39
|
+
[PENDING: Si la obra toca hechos reales, ¿dónde termina el registro histórico y empieza la licencia ficcional?]
|
|
40
|
+
|
|
41
|
+
## Líneas rojas
|
|
42
|
+
|
|
43
|
+
<!-- Guía: lo que esta obra no hará nunca: recursos, giros, tonos o contenidos
|
|
44
|
+
vedados. El validador y el agente tratan estas líneas como límites duros.
|
|
45
|
+
Ejemplo: "Sin deus ex machina; ningún personaje de punto de vista muere
|
|
46
|
+
fuera de página." -->
|
|
47
|
+
|
|
48
|
+
- [PENDING: ¿Qué recurso narrativo o de tono queda explícitamente prohibido?]
|
|
49
|
+
|
|
50
|
+
## Invariantes de coherencia
|
|
51
|
+
|
|
52
|
+
<!-- Guía: hechos del mundo que deben mantenerse constantes a lo largo del
|
|
53
|
+
libro; sirven de checklist de continuidad. Ejemplo:
|
|
54
|
+
"La magia siempre cobra un precio físico visible." -->
|
|
55
|
+
|
|
56
|
+
- [PENDING: ¿Qué regla del mundo o del personaje debe ser cierta en cada capítulo?]
|
|
57
|
+
|
|
58
|
+
## Vocabularios activos
|
|
59
|
+
|
|
60
|
+
<!-- Guía: enumera los vocabularios narrativos que la obra usa de forma
|
|
61
|
+
consciente (por ejemplo funciones de Propp o actantes de Greimas) y cómo
|
|
62
|
+
se aplican. El indexador y los validadores se apoyan en estas etiquetas. -->
|
|
63
|
+
|
|
64
|
+
[PENDING: ¿Qué vocabularios o marcos narrativos (Propp, Greimas, propios) guían la estructura?]
|
|
65
|
+
|
|
66
|
+
## Notas para el agente
|
|
67
|
+
|
|
68
|
+
<!-- Guía: instrucciones operativas para el asistente de escritura: qué
|
|
69
|
+
consultar antes de redactar, qué preguntar cuando falte un dato y qué
|
|
70
|
+
nunca inventar. Ejemplo: "Antes de escribir una escena, verifica el POV
|
|
71
|
+
activo en outline/structure.md; ante un dato biográfico ausente, abre un
|
|
72
|
+
[PENDING] en lugar de inventarlo." -->
|
|
73
|
+
|
|
74
|
+
[PENDING: ¿Qué debe hacer el agente antes de redactar y cómo debe comportarse ante información faltante?]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Glosario y léxico inventado
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento fija la ortografía y el significado de todo término
|
|
5
|
+
inventado o de uso especial (topónimos, jerga, neologismos, tratamientos). No
|
|
6
|
+
lleva frontmatter indexado. Su función es garantizar consistencia: el agente lo
|
|
7
|
+
consulta antes de escribir un término del mundo para no introducir variantes.
|
|
8
|
+
Ejemplo de entrada del registro:
|
|
9
|
+
|
|
10
|
+
| Término | Significado | Capitalización | Variante prohibida |
|
|
11
|
+
| --- | --- | --- | --- |
|
|
12
|
+
| Ardía | Ciudad-puente sobre el río Vel | Siempre con mayúscula inicial | "ardia", "Hardía" |
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Registro de términos inventados
|
|
16
|
+
|
|
17
|
+
<!-- Guía: una fila por término. Incluye el significado breve y, si procede,
|
|
18
|
+
su etimología interna para mantener coherencia fonética. -->
|
|
19
|
+
|
|
20
|
+
| Término | Significado | Capitalización | Variante prohibida |
|
|
21
|
+
| --- | --- | --- | --- |
|
|
22
|
+
| [PENDING: ¿Qué término inventado necesita una entrada canónica?] | | | |
|
|
23
|
+
|
|
24
|
+
## Reglas de capitalización
|
|
25
|
+
|
|
26
|
+
<!-- Guía: criterios generales (cargos, gentilicios, nombres de instituciones)
|
|
27
|
+
para no decidir caso por caso. -->
|
|
28
|
+
|
|
29
|
+
[PENDING: ¿Qué clases de palabras del mundo se escriben con mayúscula y cuáles no?]
|
|
30
|
+
|
|
31
|
+
## Bitácora de consistencia
|
|
32
|
+
|
|
33
|
+
<!-- Guía: anota aquí las decisiones léxicas resueltas durante la escritura, con
|
|
34
|
+
fecha, para que una elección no se reabra sin querer. -->
|
|
35
|
+
|
|
36
|
+
[PENDING: ¿Qué dudas léxicas ya quedaron resueltas y cómo?]
|
|
File without changes
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Estructura de punto de vista (POV)
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento gobierna desde qué conciencia se narra cada tramo de la
|
|
5
|
+
obra. No lleva frontmatter indexado. **Sólo es relevante para obras multi-POV**:
|
|
6
|
+
si tu libro mantiene un único punto de vista, escribe "Obra de POV único" en la
|
|
7
|
+
primera sección y deja el resto como referencia. Ejemplo de calendario de POV:
|
|
8
|
+
|
|
9
|
+
| Capítulo | POV | Información que este POV NO conoce aún |
|
|
10
|
+
| --- | --- | --- |
|
|
11
|
+
| 1 | Ana | El verdadero plan de Marco |
|
|
12
|
+
| 2 | Marco | Que Ana ya sospecha |
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Modo narrativo
|
|
16
|
+
|
|
17
|
+
<!-- Guía: declara si la obra es de POV único o múltiple y, en este último caso,
|
|
18
|
+
la regla de rotación (por capítulo, por escena, por acto). -->
|
|
19
|
+
|
|
20
|
+
[PENDING: ¿La obra usa un POV único o varios? Si son varios, ¿cómo rotan?]
|
|
21
|
+
|
|
22
|
+
## Calendario de POV
|
|
23
|
+
|
|
24
|
+
<!-- Guía: tabla que asigna un POV a cada capítulo o escena. Aplica sólo a obras
|
|
25
|
+
multi-POV; en POV único, omítela. -->
|
|
26
|
+
|
|
27
|
+
| Capítulo | POV | Información que este POV NO conoce aún |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| [PENDING: ¿Qué capítulo?] | [PENDING: ¿Desde qué personaje se narra?] | |
|
|
30
|
+
|
|
31
|
+
## Diferenciación de voz
|
|
32
|
+
|
|
33
|
+
<!-- Guía: qué hace distinguible a cada voz narradora (léxico, ritmo, obsesiones)
|
|
34
|
+
para que el lector sepa "quién mira" sin que se lo digan. -->
|
|
35
|
+
|
|
36
|
+
[PENDING: ¿Qué rasgos de voz separan a un narrador-personaje de otro?]
|
|
37
|
+
|
|
38
|
+
## Mapa de asimetría de información
|
|
39
|
+
|
|
40
|
+
<!-- Guía: registra qué sabe cada POV y cuándo, para administrar el suspense y
|
|
41
|
+
evitar filtraciones de información entre líneas de punto de vista. -->
|
|
42
|
+
|
|
43
|
+
[PENDING: ¿Qué sabe cada POV en cada acto y qué se le oculta deliberadamente al lector?]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
---
|
|
2
|
+
relationships: []
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Relaciones
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Guía: registra aquí los vínculos sociales entre personajes. Cada relación es un
|
|
9
|
+
mapa `{ name, participants }`, donde `participants` es una lista de *slugs* de
|
|
10
|
+
personaje. El *slug* se deriva del campo `name` de la ficha (p. ej.
|
|
11
|
+
`name: "Ana Soler"` → `ana-soler`), no del nombre del archivo; nombra cada
|
|
12
|
+
`bible/characters/<slug>.md` con ese mismo slug para mantenerlos alineados.
|
|
13
|
+
El indexador sólo lee la clave `relationships:` del frontmatter — mantenla como
|
|
14
|
+
única clave de nivel superior. Deja la lista vacía hasta rellenarla; los
|
|
15
|
+
ejemplos viven dentro de este comentario para que nunca se indexen. Ejemplo:
|
|
16
|
+
|
|
17
|
+
relationships:
|
|
18
|
+
- name: "Lealtad fracturada"
|
|
19
|
+
participants: ["ana-soler", "marco-vega"]
|
|
20
|
+
- name: "Rivalidad heredada"
|
|
21
|
+
participants: ["marco-vega", "elsa-roan"]
|
|
22
|
+
-->
|
|
23
|
+
|
|
24
|
+
## Cómo se rellena
|
|
25
|
+
|
|
26
|
+
- Añade cada vínculo como un ítem bajo `relationships:` en el frontmatter.
|
|
27
|
+
- `name` es obligatorio y nombra la naturaleza del vínculo, no a las personas.
|
|
28
|
+
- `participants` enumera los *slugs* de los personajes implicados; deben existir
|
|
29
|
+
en `bible/characters/` para resolverse.
|
|
30
|
+
|
|
31
|
+
## Mapa de tensiones
|
|
32
|
+
|
|
33
|
+
<!-- Guía: en prosa, describe las alianzas y los conflictos que mueven la
|
|
34
|
+
trama, y cómo evolucionan a lo largo del libro. -->
|
|
35
|
+
|
|
36
|
+
[PENDING: ¿Cuáles son las tres relaciones que más empujan el conflicto central?]
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
open_questions: []
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Índice de investigación
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Guía: este índice mapea los temas investigados y reúne las preguntas abiertas
|
|
9
|
+
globales del proyecto. La clave `open_questions:` del frontmatter admite una
|
|
10
|
+
lista de preguntas, cada una con un `id`; déjala vacía (`[]`) hasta que tengas
|
|
11
|
+
alguna que quieras rastrear en el grafo. El cuerpo en prosa de abajo no se
|
|
12
|
+
indexa: úsalo como mapa legible. El comando `/bookwright-research` actualiza este
|
|
13
|
+
archivo en sitio siguiendo `references/research-format.md`.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Temas
|
|
17
|
+
|
|
18
|
+
<!-- Guía: enlaza aquí cada archivo `<tema>.md` a medida que lo creas, p. ej.
|
|
19
|
+
`- [Logística en 1943](logistica-en-1943.md)`. -->
|
|
20
|
+
|
|
21
|
+
[PENDING: ¿Qué temas necesitas investigar para sostener la verosimilitud de la obra?]
|
|
22
|
+
|
|
23
|
+
## Preguntas abiertas globales
|
|
24
|
+
|
|
25
|
+
<!-- Guía: cuando quieras rastrear una pregunta en el grafo, muévela a
|
|
26
|
+
`open_questions:` arriba con un `id` propio. -->
|
|
27
|
+
|
|
28
|
+
[PENDING: ¿Qué preguntas del mundo real o del mundo interno siguen sin respuesta?]
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
---
|
|
2
|
+
sources: []
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Registro de fuentes
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Guía: el registro de fuentes del proyecto. La clave `sources:` del frontmatter
|
|
9
|
+
admite una lista de fuentes, cada una con procedencia completa: `name`,
|
|
10
|
+
`reference`, `author`, `original_language`, `type`, `reliability`,
|
|
11
|
+
`reliability_justification`, `access_date`, `original_quote` y `translation`
|
|
12
|
+
cuando la lengua de la fuente difiera de la del libro. Déjala vacía (`[]`) hasta
|
|
13
|
+
registrar la primera fuente. El comando `/bookwright-research` la puebla
|
|
14
|
+
siguiendo `references/research-format.md`; no inventes fuentes a mano sin esa
|
|
15
|
+
procedencia.
|
|
16
|
+
-->
|
|
17
|
+
|
|
18
|
+
## Notas
|
|
19
|
+
|
|
20
|
+
<!-- Guía: usa esta prosa para anotaciones de trabajo; no se indexa. La fuente
|
|
21
|
+
real vive en `sources:` arriba. -->
|
|
22
|
+
|
|
23
|
+
[PENDING: ¿Qué fuentes sustentan la ambientación y qué nivel de fiabilidad exiges?]
|
|
File without changes
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Subtramas
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento ordena las líneas argumentales secundarias y sus puntos de
|
|
5
|
+
cruce con la trama principal. No lleva frontmatter indexado. Para cada subtrama
|
|
6
|
+
escribe un *beat sheet* breve (sus latidos esenciales) y marca dónde se entrelaza
|
|
7
|
+
con la historia central. Ejemplo de beat sheet:
|
|
8
|
+
|
|
9
|
+
- **Subtrama: la deuda de Marco**
|
|
10
|
+
1. Detonante: el prestamista aparece en el mercado.
|
|
11
|
+
2. Complicación: Marco oculta la deuda a Ana.
|
|
12
|
+
3. Cruce con la trama principal: la deuda fuerza el robo del capítulo 7.
|
|
13
|
+
4. Resolución: se salda con un coste moral irreversible.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Inventario de subtramas
|
|
17
|
+
|
|
18
|
+
<!-- Guía: lista cada subtrama con una frase que capture su pregunta dramática
|
|
19
|
+
("¿logrará X antes de Y?"). -->
|
|
20
|
+
|
|
21
|
+
[PENDING: ¿Qué subtramas acompañan a la trama principal y qué pregunta plantea cada una?]
|
|
22
|
+
|
|
23
|
+
## Beat sheets
|
|
24
|
+
|
|
25
|
+
<!-- Guía: para cada subtrama, ordena sus latidos (detonante, complicación,
|
|
26
|
+
clímax, resolución) en cuatro o cinco pasos. -->
|
|
27
|
+
|
|
28
|
+
[PENDING: ¿Cuáles son los latidos esenciales de cada subtrama?]
|
|
29
|
+
|
|
30
|
+
## Puntos de intersección con la trama principal
|
|
31
|
+
|
|
32
|
+
<!-- Guía: tabla o lista que indique en qué capítulo cada subtrama toca,
|
|
33
|
+
desvía o acelera la trama central, para sincronizar el ritmo. -->
|
|
34
|
+
|
|
35
|
+
[PENDING: ¿En qué capítulos cada subtrama se cruza con la historia central?]
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Temas y motivos
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento rastrea la capa simbólica de la obra. No lleva frontmatter
|
|
5
|
+
indexado: es material de consulta para el autor y el agente. Mantén tres
|
|
6
|
+
registros vivos — motivos, símbolos y mapa temático por capítulo — y actualízalos
|
|
7
|
+
cuando una escena introduzca o resuelva una imagen recurrente. Ejemplo de una
|
|
8
|
+
fila del rastreador de símbolos:
|
|
9
|
+
|
|
10
|
+
| Símbolo | Significado | Primera aparición | Reaparece en |
|
|
11
|
+
| --- | --- | --- | --- |
|
|
12
|
+
| El reloj parado | Duelo no resuelto | Cap. 1, escena 2 | Caps. 4, 9 |
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Registro de motivos
|
|
16
|
+
|
|
17
|
+
<!-- Guía: enumera los motivos (imágenes o ideas que reaparecen) y qué tensión
|
|
18
|
+
cargan. Un motivo no es un tema: es su vehículo concreto y repetible. -->
|
|
19
|
+
|
|
20
|
+
[PENDING: ¿Qué tres o cuatro motivos recurrentes vertebran la obra?]
|
|
21
|
+
|
|
22
|
+
## Rastreador de símbolos
|
|
23
|
+
|
|
24
|
+
<!-- Guía: tabla viva. Cada símbolo, su carga de significado, dónde aparece
|
|
25
|
+
primero y dónde reaparece, para vigilar la consistencia simbólica. -->
|
|
26
|
+
|
|
27
|
+
| Símbolo | Significado | Primera aparición | Reaparece en |
|
|
28
|
+
| --- | --- | --- | --- |
|
|
29
|
+
| [PENDING: ¿Qué objeto o imagen carga significado?] | | | |
|
|
30
|
+
|
|
31
|
+
## Mapa temático por capítulo
|
|
32
|
+
|
|
33
|
+
<!-- Guía: relaciona cada capítulo con el tema que pone en primer plano, para
|
|
34
|
+
evitar que un tema central desaparezca durante tramos largos. -->
|
|
35
|
+
|
|
36
|
+
[PENDING: ¿Qué tema domina cada acto o bloque de capítulos?]
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
---
|
|
2
|
+
events: []
|
|
3
|
+
---
|
|
4
|
+
|
|
5
|
+
# Línea de tiempo
|
|
6
|
+
|
|
7
|
+
<!--
|
|
8
|
+
Guía: registra aquí los hechos cronológicos de la obra. Cada evento es un
|
|
9
|
+
mapa `{ name, participants }`, donde `participants` es una lista de *slugs* de
|
|
10
|
+
personaje. El *slug* se deriva del campo `name` de la ficha (p. ej.
|
|
11
|
+
`name: "Ana Soler"` → `ana-soler`), no del nombre del archivo; nombra cada
|
|
12
|
+
`bible/characters/<slug>.md` con ese mismo slug para mantenerlos alineados.
|
|
13
|
+
El indexador sólo lee la clave `events:` del frontmatter — mantenla como única
|
|
14
|
+
clave de nivel superior. Deja la lista vacía hasta que el agente o tú la
|
|
15
|
+
rellenéis; los ejemplos viven dentro de este comentario para que nunca se
|
|
16
|
+
indexen. Ejemplo de lista poblada:
|
|
17
|
+
|
|
18
|
+
events:
|
|
19
|
+
- name: "Caída del puente de Ardía"
|
|
20
|
+
participants: ["ana-soler", "marco-vega"]
|
|
21
|
+
- name: "Pacto en la torre"
|
|
22
|
+
participants: ["ana-soler"]
|
|
23
|
+
-->
|
|
24
|
+
|
|
25
|
+
## Cómo se rellena
|
|
26
|
+
|
|
27
|
+
- Añade cada hecho como un ítem bajo `events:` en el frontmatter, no en el cuerpo.
|
|
28
|
+
- `name` es obligatorio y debe ser una cadena no vacía.
|
|
29
|
+
- `participants` es opcional; cada *slug* debe corresponder a un personaje real
|
|
30
|
+
de `bible/characters/` o aparecerá como referencia sin resolver.
|
|
31
|
+
- El orden de la lista refleja el orden cronológico interno de la historia.
|
|
32
|
+
|
|
33
|
+
## Notas de cronología
|
|
34
|
+
|
|
35
|
+
<!-- Guía: usa esta sección en prosa para anclar fechas, saltos temporales o
|
|
36
|
+
ambigüedades deliberadas que no encajan como eventos discretos. -->
|
|
37
|
+
|
|
38
|
+
[PENDING: ¿Cuál es el marco temporal global de la obra (época, duración, saltos)?]
|
|
File without changes
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
# Arcos
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: plantilla de arcos. Un arco describe la transformación de un personaje o
|
|
5
|
+
de una fuerza a lo largo de la obra: de dónde parte, qué lo quiebra y dónde
|
|
6
|
+
termina. No lleva frontmatter indexado. Completa un bloque por arco. Ejemplo:
|
|
7
|
+
|
|
8
|
+
- **Arco de Ana — del deber a la elección**
|
|
9
|
+
- Estado inicial: obedece sin preguntar.
|
|
10
|
+
- Punto de quiebre: descubre la mentira fundacional.
|
|
11
|
+
- Estado final: elige, y paga el precio de elegir.
|
|
12
|
+
- Evidencia por capítulo: 1 (deber), 5 (duda), 9 (ruptura), 12 (elección).
|
|
13
|
+
-->
|
|
14
|
+
|
|
15
|
+
## Arcos de personaje
|
|
16
|
+
|
|
17
|
+
<!-- Guía: para cada personaje con recorrido, declara estado inicial, punto de
|
|
18
|
+
quiebre y estado final, y ancla cada fase a capítulos concretos. -->
|
|
19
|
+
|
|
20
|
+
[PENDING: ¿Qué personajes cambian a lo largo de la obra y desde/hacia qué?]
|
|
21
|
+
|
|
22
|
+
## Arco temático o de la trama
|
|
23
|
+
|
|
24
|
+
<!-- Guía: el arco que recorre la historia misma (una idea que madura, un mundo
|
|
25
|
+
que se transforma), no atado a un solo personaje. -->
|
|
26
|
+
|
|
27
|
+
[PENDING: ¿Qué transformación recorre la obra más allá de los personajes individuales?]
|
|
28
|
+
|
|
29
|
+
## Sincronización de arcos
|
|
30
|
+
|
|
31
|
+
<!-- Guía: cómo se alinean los puntos de quiebre de los distintos arcos para que
|
|
32
|
+
el clímax los haga converger. -->
|
|
33
|
+
|
|
34
|
+
[PENDING: ¿En qué punto convergen los arcos principales?]
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
# Escenas
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: plantilla de escenas. Desglosa los capítulos en escenas concretas, la
|
|
5
|
+
unidad real de la redacción. No lleva frontmatter indexado. Para cada escena
|
|
6
|
+
anota objetivo, conflicto y cambio de estado (el "antes → después" que justifica
|
|
7
|
+
su existencia). Ejemplo de ficha:
|
|
8
|
+
|
|
9
|
+
- **Escena 1.2 — El mercado de Ardía**
|
|
10
|
+
- Objetivo del POV: comprar el salvoconducto.
|
|
11
|
+
- Conflicto: el vendedor la reconoce.
|
|
12
|
+
- Cambio de estado: de anónima a buscada.
|
|
13
|
+
- Lugar / momento: mercado, amanecer.
|
|
14
|
+
-->
|
|
15
|
+
|
|
16
|
+
## Lista de escenas
|
|
17
|
+
|
|
18
|
+
<!-- Guía: enumera las escenas en orden, identificadas por capítulo y posición
|
|
19
|
+
(p. ej. 3.1, 3.2). Cada una debe cambiar algo: si nada cambia, sobra. -->
|
|
20
|
+
|
|
21
|
+
[PENDING: ¿En qué escenas se divide cada capítulo y qué cambia en cada una?]
|
|
22
|
+
|
|
23
|
+
## Ficha de escena
|
|
24
|
+
|
|
25
|
+
<!-- Guía: usa esta ficha como patrón al detallar una escena: objetivo del POV,
|
|
26
|
+
conflicto que lo obstaculiza, y el estado que deja al terminar. -->
|
|
27
|
+
|
|
28
|
+
- **Escena**: [PENDING: ¿Qué identificador y título tiene la escena?]
|
|
29
|
+
- Objetivo del POV: [PENDING: ¿Qué quiere conseguir el personaje en esta escena?]
|
|
30
|
+
- Conflicto: [PENDING: ¿Qué se interpone?]
|
|
31
|
+
- Cambio de estado: [PENDING: ¿Cómo cambia la situación de principio a fin?]
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Estructura
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: plantilla estructural. Aquí defines el esqueleto de la obra: actos,
|
|
5
|
+
capítulos y los latidos mayores que sostienen el ritmo. No lleva frontmatter
|
|
6
|
+
indexado. Ajusta el número de actos a tu modelo (tres actos, cinco actos,
|
|
7
|
+
kishōtenketsu…). Ejemplo de fila del mapa de capítulos:
|
|
8
|
+
|
|
9
|
+
| Cap. | Acto | Función dramática | POV | Promesa/pago |
|
|
10
|
+
| --- | --- | --- | --- | --- |
|
|
11
|
+
| 1 | I | Detonante: rompe el statu quo | Ana | Promete el misterio del puente |
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
## Modelo estructural
|
|
15
|
+
|
|
16
|
+
<!-- Guía: declara el modelo (tres actos, cinco actos, viaje del héroe, etc.) y
|
|
17
|
+
por qué encaja con esta historia. -->
|
|
18
|
+
|
|
19
|
+
[PENDING: ¿Qué modelo estructural organiza la obra y por qué?]
|
|
20
|
+
|
|
21
|
+
## Latidos mayores
|
|
22
|
+
|
|
23
|
+
<!-- Guía: los puntos de inflexión obligatorios del modelo elegido (detonante,
|
|
24
|
+
primer giro, punto medio, clímax, resolución) y a qué capítulo caen. -->
|
|
25
|
+
|
|
26
|
+
[PENDING: ¿Dónde caen el detonante, el punto medio y el clímax?]
|
|
27
|
+
|
|
28
|
+
## Mapa de capítulos
|
|
29
|
+
|
|
30
|
+
<!-- Guía: una fila por capítulo con su función dramática y su POV; es la vista
|
|
31
|
+
de pájaro que evita capítulos sin propósito. -->
|
|
32
|
+
|
|
33
|
+
| Cap. | Acto | Función dramática | POV | Promesa/pago |
|
|
34
|
+
| --- | --- | --- | --- | --- |
|
|
35
|
+
| [PENDING: ¿Qué número de capítulo?] | | | | |
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Sinopsis
|
|
2
|
+
|
|
3
|
+
<!--
|
|
4
|
+
Guía: este documento mantiene dos resúmenes de la obra a distinta escala. La
|
|
5
|
+
sinopsis corta sirve de brújula y de texto de contraportada; la larga es el mapa
|
|
6
|
+
completo, con spoilers, para el autor y el agente. No lleva frontmatter indexado.
|
|
7
|
+
Mantén ambas sincronizadas con la trama real a medida que evoluciona. Ejemplo de
|
|
8
|
+
arranque de sinopsis corta: "Cuando el puente que sostiene Ardía empieza a
|
|
9
|
+
hundirse, Ana descubre que la única forma de salvarlo es traicionar a quien la
|
|
10
|
+
crió." -->
|
|
11
|
+
|
|
12
|
+
## Sinopsis corta (250–350 palabras)
|
|
13
|
+
|
|
14
|
+
<!-- Guía: una pieza autónoma y seductora, sin spoilers del desenlace; presenta
|
|
15
|
+
protagonista, conflicto y apuesta. Apunta a entre 250 y 350 palabras. -->
|
|
16
|
+
|
|
17
|
+
[PENDING: ¿Quién es el protagonista, qué quiere, qué se lo impide y qué está en juego?]
|
|
18
|
+
|
|
19
|
+
## Sinopsis larga (1000–2000 palabras)
|
|
20
|
+
|
|
21
|
+
<!-- Guía: el recorrido completo de la trama, acto por acto, **con** desenlace.
|
|
22
|
+
Es la referencia interna que mantiene la coherencia global. Apunta a entre
|
|
23
|
+
1000 y 2000 palabras. -->
|
|
24
|
+
|
|
25
|
+
[PENDING: ¿Cómo se desarrolla la trama de principio a fin, incluido el desenlace?]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Vendored, frozen schema resources (GOLEM ontology Turtle + provenance)."""
|
|
2
|
+
|
|
3
|
+
from __future__ import annotations
|
|
4
|
+
|
|
5
|
+
from importlib import resources
|
|
6
|
+
|
|
7
|
+
SCHEMA_DIR = "golem-1.1"
|
|
8
|
+
"""Vendored schema directory name — the single source of truth for the stamp."""
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
def load_schema_version() -> str:
|
|
12
|
+
"""Read the vendored schema's short version label (e.g. ``golem-1.1``).
|
|
13
|
+
|
|
14
|
+
Routed through this package's own anchor so the directory name lives in
|
|
15
|
+
exactly one place; both ``bookwright version`` and the ontology loader in
|
|
16
|
+
``golem.namespaces`` resolve the schema location from here (D11).
|
|
17
|
+
"""
|
|
18
|
+
resource = resources.files(__name__).joinpath(f"{SCHEMA_DIR}/VERSION")
|
|
19
|
+
return resource.read_text(encoding="utf-8").strip()
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
golem-1.1
|