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.
Files changed (149) hide show
  1. bookwright/__init__.py +3 -0
  2. bookwright/__main__.py +6 -0
  3. bookwright/cli.py +19 -0
  4. bookwright/commands/__init__.py +0 -0
  5. bookwright/commands/_envelope.py +36 -0
  6. bookwright/commands/check.py +75 -0
  7. bookwright/commands/graph/__init__.py +23 -0
  8. bookwright/commands/graph/build.py +157 -0
  9. bookwright/commands/graph/envelope.py +26 -0
  10. bookwright/commands/graph/query.py +98 -0
  11. bookwright/commands/init/__init__.py +5 -0
  12. bookwright/commands/init/conflict.py +107 -0
  13. bookwright/commands/init/envelope.py +322 -0
  14. bookwright/commands/init/git.py +96 -0
  15. bookwright/commands/init/main.py +263 -0
  16. bookwright/commands/init/resolve.py +193 -0
  17. bookwright/commands/init/scaffold.py +242 -0
  18. bookwright/commands/init/validate.py +172 -0
  19. bookwright/commands/integration/__init__.py +22 -0
  20. bookwright/commands/integration/use.py +120 -0
  21. bookwright/commands/validate.py +160 -0
  22. bookwright/commands/version.py +35 -0
  23. bookwright/core/__init__.py +35 -0
  24. bookwright/core/_blocks.py +239 -0
  25. bookwright/core/_build.py +154 -0
  26. bookwright/core/_research_block.py +56 -0
  27. bookwright/core/_translate.py +90 -0
  28. bookwright/core/errors.py +127 -0
  29. bookwright/core/iso639_1.py +200 -0
  30. bookwright/core/manifest.py +343 -0
  31. bookwright/errors.py +47 -0
  32. bookwright/golem/__init__.py +71 -0
  33. bookwright/golem/base.py +200 -0
  34. bookwright/golem/errors.py +29 -0
  35. bookwright/golem/modules/__init__.py +1 -0
  36. bookwright/golem/modules/character.py +109 -0
  37. bookwright/golem/modules/event.py +91 -0
  38. bookwright/golem/modules/feature.py +161 -0
  39. bookwright/golem/modules/inference.py +41 -0
  40. bookwright/golem/modules/narrative.py +55 -0
  41. bookwright/golem/modules/provenance.py +197 -0
  42. bookwright/golem/modules/relationship.py +38 -0
  43. bookwright/golem/modules/setting.py +30 -0
  44. bookwright/golem/namespaces.py +332 -0
  45. bookwright/golem/serialize.py +25 -0
  46. bookwright/golem/slug.py +22 -0
  47. bookwright/indexers/__init__.py +47 -0
  48. bookwright/indexers/base.py +55 -0
  49. bookwright/indexers/errors.py +80 -0
  50. bookwright/indexers/rdflib_indexer.py +89 -0
  51. bookwright/integrations/__init__.py +155 -0
  52. bookwright/integrations/base.py +117 -0
  53. bookwright/integrations/claude/__init__.py +29 -0
  54. bookwright/integrations/constants.py +38 -0
  55. bookwright/integrations/descriptions.py +48 -0
  56. bookwright/integrations/errors.py +170 -0
  57. bookwright/integrations/generic/__init__.py +56 -0
  58. bookwright/integrations/lint.py +160 -0
  59. bookwright/integrations/materialize.py +202 -0
  60. bookwright/integrations/options.py +203 -0
  61. bookwright/io/__init__.py +1 -0
  62. bookwright/io/bible.py +500 -0
  63. bookwright/io/errors.py +98 -0
  64. bookwright/io/frontmatter.py +61 -0
  65. bookwright/io/fs.py +226 -0
  66. bookwright/io/manuscript.py +15 -0
  67. bookwright/io/project.py +21 -0
  68. bookwright/io/report.py +107 -0
  69. bookwright/io/research.py +427 -0
  70. bookwright/resources/__init__.py +1 -0
  71. bookwright/resources/commands/bookwright-analyze.md +66 -0
  72. bookwright/resources/commands/bookwright-bible.md +96 -0
  73. bookwright/resources/commands/bookwright-checklist.md +67 -0
  74. bookwright/resources/commands/bookwright-clarify.md +65 -0
  75. bookwright/resources/commands/bookwright-constitution.md +79 -0
  76. bookwright/resources/commands/bookwright-continuity.md +70 -0
  77. bookwright/resources/commands/bookwright-draft.md +74 -0
  78. bookwright/resources/commands/bookwright-outline.md +71 -0
  79. bookwright/resources/commands/bookwright-research.md +107 -0
  80. bookwright/resources/commands/bookwright-scenes.md +66 -0
  81. bookwright/resources/commands/bookwright-synopsis.md +67 -0
  82. bookwright/resources/commands/bookwright-verify.md +136 -0
  83. bookwright/resources/commands/references/golem-character.md +65 -0
  84. bookwright/resources/commands/references/golem-events-timeline.md +56 -0
  85. bookwright/resources/commands/references/golem-relationships.md +53 -0
  86. bookwright/resources/commands/references/greimas-actants.md +57 -0
  87. bookwright/resources/commands/references/pending-protocol.md +72 -0
  88. bookwright/resources/commands/references/propp-functions.md +54 -0
  89. bookwright/resources/commands/references/research-format.md +136 -0
  90. bookwright/resources/project/.bookwright/cache/.gitkeep +0 -0
  91. bookwright/resources/project/.bookwright/schema/.gitkeep +0 -0
  92. bookwright/resources/project/.bookwright/templates/.gitkeep +0 -0
  93. bookwright/resources/project/.gitignore +23 -0
  94. bookwright/resources/project/README.md.j2 +40 -0
  95. bookwright/resources/project/__init__.py +6 -0
  96. bookwright/resources/project/bible/characters/.gitkeep +0 -0
  97. bookwright/resources/project/bible/constitution.md.j2 +74 -0
  98. bookwright/resources/project/bible/glossary.md +36 -0
  99. bookwright/resources/project/bible/locations/.gitkeep +0 -0
  100. bookwright/resources/project/bible/pov-structure.md +43 -0
  101. bookwright/resources/project/bible/relationships.md +36 -0
  102. bookwright/resources/project/bible/research/_index.md +28 -0
  103. bookwright/resources/project/bible/research/sources.md +23 -0
  104. bookwright/resources/project/bible/settings/.gitkeep +0 -0
  105. bookwright/resources/project/bible/subplots.md +35 -0
  106. bookwright/resources/project/bible/themes.md +36 -0
  107. bookwright/resources/project/bible/timeline.md +38 -0
  108. bookwright/resources/project/manuscript/.gitkeep +0 -0
  109. bookwright/resources/project/outline/arcs.md +34 -0
  110. bookwright/resources/project/outline/scenes.md +31 -0
  111. bookwright/resources/project/outline/structure.md +35 -0
  112. bookwright/resources/project/outline/synopsis.md +25 -0
  113. bookwright/resources/schemas/__init__.py +19 -0
  114. bookwright/resources/schemas/golem-1.1/VERSION +1 -0
  115. bookwright/resources/schemas/golem-1.1/golem.ttl +1947 -0
  116. bookwright/resources/schemas/golem-1.1/version.json +8 -0
  117. bookwright/resources/templates/__init__.py +1 -0
  118. bookwright/resources/templates/bible/character.md.tmpl +63 -0
  119. bookwright/resources/templates/bible/location.md.tmpl +37 -0
  120. bookwright/resources/templates/bible/research/_index.md.tmpl +25 -0
  121. bookwright/resources/templates/bible/research/sources.md.tmpl +21 -0
  122. bookwright/resources/templates/bible/research/tema.md.tmpl +37 -0
  123. bookwright/resources/templates/bible/setting.md.tmpl +38 -0
  124. bookwright/resources/templates/manifest.template.toml +79 -0
  125. bookwright/resources/templates/manuscript/chapter.md.tmpl +36 -0
  126. bookwright/resources/templates/scenes/scene.md.tmpl +37 -0
  127. bookwright/resources/vocabularies/__init__.py +6 -0
  128. bookwright/resources/vocabularies/greimas.ttl +4 -0
  129. bookwright/resources/vocabularies/propp.ttl +4 -0
  130. bookwright/resources/vocabularies/sources.ttl +82 -0
  131. bookwright/validation/__init__.py +33 -0
  132. bookwright/validation/anchor_queries.py +223 -0
  133. bookwright/validation/base.py +233 -0
  134. bookwright/validation/queries.py +197 -0
  135. bookwright/validation/registry.py +185 -0
  136. bookwright/validation/report.py +106 -0
  137. bookwright/validation/runner.py +65 -0
  138. bookwright/validation/validators/__init__.py +9 -0
  139. bookwright/validation/validators/character_presence.py +202 -0
  140. bookwright/validation/validators/factual_anchor.py +291 -0
  141. bookwright/validation/validators/focalization.py +152 -0
  142. bookwright/validation/validators/setting_continuity.py +100 -0
  143. bookwright/validation/validators/temporal.py +277 -0
  144. bookwright_cli-0.2.0.dist-info/METADATA +218 -0
  145. bookwright_cli-0.2.0.dist-info/RECORD +149 -0
  146. bookwright_cli-0.2.0.dist-info/WHEEL +4 -0
  147. bookwright_cli-0.2.0.dist-info/entry_points.txt +2 -0
  148. bookwright_cli-0.2.0.dist-info/licenses/LICENSE +202 -0
  149. bookwright_cli-0.2.0.dist-info/licenses/NOTICE +14 -0
@@ -0,0 +1,65 @@
1
+ ---
2
+ name: bookwright-clarify
3
+ description: >-
4
+ Revisa los artefactos del proyecto y devuelve una lista de preguntas abiertas
5
+ que el autor debería resolver antes de seguir. Review the project artifacts and
6
+ return a list of open questions the author should resolve before continuing.
7
+ Úsalo cuando el autor pregunte "¿qué me falta por aclarar antes de seguir?",
8
+ "¿qué dudas quedan?" / "what's still unclear?", "what do I need to decide
9
+ next?". Es de solo lectura. Pregunta por DUDAS abiertas, NO comprueba la
10
+ completitud de un artefacto concreto (eso es bookwright-checklist).
11
+ ---
12
+
13
+ # /bookwright-clarify
14
+
15
+ ## Rol
16
+
17
+ Eres un editor que hace las preguntas difíciles. Tu tarea es **detectar lo que
18
+ queda sin decidir** y devolverlo como una lista de preguntas, sin tocar nada.
19
+
20
+ ## Input
21
+
22
+ `{ARGS}` — opcional: el nombre de un artefacto para acotar la revisión a él. Sin
23
+ argumento, revisa el proyecto entero.
24
+
25
+ ## Procedimiento
26
+
27
+ 1. Lee los artefactos disponibles (`bible/`, `outline/`, `manuscript/`), o solo
28
+ el indicado en `{ARGS}` si se dio.
29
+ 2. Localiza los `[PENDING: …]` aún abiertos y las `open_questions:` registradas en
30
+ `bible/research/_index.md` y, además, las decisiones que el material deja
31
+ ambiguas o contradictorias aunque no estén marcadas.
32
+ 3. Si el proyecto está vacío o falta el prerrequisito a revisar, dilo claramente
33
+ ("nada que aclarar todavía / falta el prerrequisito"), no falles de forma
34
+ opaca.
35
+ 4. Redacta cada hallazgo como una **pregunta** concreta dirigida al autor,
36
+ agrupada por artefacto y ordenada por impacto (primero lo que bloquea el avance).
37
+
38
+ ## Output
39
+
40
+ Un reporte en prosa con la lista de preguntas abiertas, agrupadas por artefacto y
41
+ priorizadas. **No escribe nada** en el proyecto.
42
+
43
+ ## Archivos a leer
44
+
45
+ - Cualquier artefacto del proyecto: `bible/`, `outline/`, `manuscript/` (o solo el
46
+ indicado en `{ARGS}`).
47
+
48
+ ## Archivos a escribir
49
+
50
+ - Ninguno. Este comando es de **solo lectura**: no escribe nada en el proyecto;
51
+ solo emite un reporte.
52
+
53
+ ## Información faltante
54
+
55
+ Si el artefacto indicado en `{ARGS}` no existe, o el proyecto aún no tiene el
56
+ material a revisar, repórtalo como "prerrequisito ausente" y sugiere qué comando
57
+ generarlo (p. ej. `bookwright-constitution`). No inventes contenido para poder
58
+ preguntar sobre él.
59
+
60
+ ## Qué NO hacer
61
+
62
+ - No escribas ni modifiques ningún archivo: este comando solo pregunta.
63
+ - No resuelvas tú las dudas inventando respuestas: el autor decide.
64
+ - No compruebes la completitud sección-a-sección de un artefacto: eso es
65
+ `bookwright-checklist`.
@@ -0,0 +1,79 @@
1
+ ---
2
+ name: bookwright-constitution
3
+ description: >-
4
+ Define la constitución narrativa del libro: voz, tono, pacto con el lector,
5
+ líneas rojas e invariantes de coherencia — el paso de configuración que va
6
+ ANTES de la biblia. Build the book's narrative constitution: voice, tone,
7
+ reader pact, red lines and coherence invariants — the setup step BEFORE the
8
+ bible. Úsalo cuando el autor quiera fijar el tono, la voz o las reglas de su
9
+ obra ("define el tono", "set the tone/voice", "establece las bases"). NO
10
+ genera fichas de personajes ni localizaciones: eso es bookwright-bible, que va
11
+ después.
12
+ ---
13
+
14
+ # /bookwright-constitution
15
+
16
+ ## Rol
17
+
18
+ Eres un editor narrativo experimentado. Tu tarea es **destilar la constitución**
19
+ del libro a partir del input que se te entrega y dejarla escrita como el contrato
20
+ de tono, límites e invariantes que toda la obra respetará después.
21
+
22
+ ## Input
23
+
24
+ `{ARGS}` — un brief no estructurado o una conversación previa con el autor. Si
25
+ está vacío, pídele al autor que describa su proyecto antes de continuar.
26
+
27
+ ## Procedimiento
28
+
29
+ 1. Lee el input completo (`{ARGS}` y la conversación disponible).
30
+ 2. Lee `bible/constitution.md`: `init` ya lo estampó con las secciones y sus
31
+ prompts `[PENDING: …]`. Es tu molde; conserva todos los títulos de sección.
32
+ 3. Identifica en el input: voz narrativa y registro, tono, tiempo verbal, pacto
33
+ con el lector, pacto histórico-ficcional (si la obra toca hechos reales),
34
+ líneas rojas, invariantes de coherencia y qué vocabularios narrativos conviene
35
+ activar (Propp, Greimas, propios).
36
+ 4. Rellena cada sección con material del input. Donde el brief no aporte un dato,
37
+ sigue `references/pending-protocol.md`: marca `[PENDING: <pregunta>]` y
38
+ continúa; detente solo si rellenarlo exigiera inventar el rumbo de la obra.
39
+ 5. En "Vocabularios activos" enumera los marcos que la obra usará de forma
40
+ consciente y cómo se aplican; el indexador se apoya en estas etiquetas.
41
+ 6. Escribe el resultado en `bible/constitution.md` **actualizando en sitio**
42
+ (ver "Información faltante").
43
+ 7. Ejecuta `bookwright graph build --json` y consume el JSON que devuelve:
44
+ confirma que el grafo se reconstruyó sin errores y revisa los avisos. Si
45
+ reporta un problema de parseo, corrígelo antes de terminar.
46
+ 8. Reporta al autor (ver "Output").
47
+
48
+ ## Output
49
+
50
+ Un reporte en prosa (no escribe ningún archivo extra) que enumera: qué campos
51
+ quedaron `[PENDING: …]`, qué vocabularios narrativos activaste, el resultado del
52
+ `graph build` y la sugerencia de ejecutar `bookwright-clarify` para resolver lo
53
+ pendiente **antes** de pasar a `bookwright-bible`.
54
+
55
+ ## Archivos a leer
56
+
57
+ - El brief / la conversación (`{ARGS}`).
58
+ - `bible/constitution.md` (molde estampado por `init`).
59
+
60
+ ## Archivos a escribir
61
+
62
+ - `bible/constitution.md`.
63
+
64
+ ## Información faltante
65
+
66
+ Sigue `references/pending-protocol.md`. **Actualización en sitio**: lee el
67
+ `bible/constitution.md` existente, trata como autoritativo todo lo que ya haya
68
+ escrito un humano o cualquier `[PENDING]` ya resuelto, rellena solo los huecos y
69
+ los `[PENDING: …]` aún abiertos, y nunca sobrescribas ni dupliques prosa ya
70
+ redactada.
71
+
72
+ ## Qué NO hacer
73
+
74
+ - No inventes tono, pacto o líneas rojas que el brief no respalde: márcalos
75
+ `[PENDING: …]`.
76
+ - No generes fichas de personajes, escenarios ni outline: eso es trabajo de
77
+ `bookwright-bible` y `bookwright-outline`.
78
+ - No borres ni renombres secciones del molde.
79
+ - No omitas el `bookwright graph build --json` final.
@@ -0,0 +1,70 @@
1
+ ---
2
+ name: bookwright-continuity
3
+ description: >-
4
+ Revisa la consistencia POST-redacción del manuscrito frente a la biblia:
5
+ cumplimiento de la biblia, coherencia de los arcos de personaje y de la línea de
6
+ tiempo. Check POST-draft continuity of the manuscript against the bible: bible
7
+ compliance, character-arc consistency and timeline coherence. Úsalo cuando el
8
+ autor pida "revisa si mi manuscrito es coherente con la biblia" / "check my
9
+ manuscript against the bible". Es de solo lectura y trabaja en fase POST-draft.
10
+ NO revisa la planificación antes de redactar (eso es pre-draft:
11
+ bookwright-analyze).
12
+ ---
13
+
14
+ # /bookwright-continuity
15
+
16
+ ## Rol
17
+
18
+ Eres un editor de continuidad. Tu tarea es **comparar el manuscrito ya escrito**
19
+ con la biblia y reportar dónde se desvía, sin tocar nada.
20
+
21
+ ## Input
22
+
23
+ `{ARGS}` — foco opcional (p. ej. un capítulo o un personaje). La base es el
24
+ manuscrito y la biblia.
25
+
26
+ ## Procedimiento
27
+
28
+ 1. Lee el manuscrito (`manuscript/`) y la biblia (`bible/`), en especial las
29
+ fichas de personaje, `bible/timeline.md` y `bible/relationships.md`.
30
+ 2. Ejecuta `bookwright graph build --json` y consume el JSON que devuelve:
31
+ razona sobre el grafo del proyecto (entidades, eventos, relaciones,
32
+ referencias sin resolver) para cotejar el manuscrito contra él.
33
+ 3. Revisa tres ejes: **cumplimiento de la biblia** (¿el texto respeta los hechos
34
+ de las fichas y las invariantes de la constitución?), **coherencia de arcos**
35
+ (¿la evolución de cada personaje sigue su arco?) y **coherencia temporal**
36
+ (¿el orden de los hechos encaja con `bible/timeline.md`? — ver
37
+ `references/golem-events-timeline.md` y `references/golem-relationships.md`).
38
+ 4. Si no hay manuscrito todavía, repórtalo como "prerrequisito ausente" (nada que
39
+ verificar), no falles de forma opaca.
40
+ 5. Redacta los hallazgos como una lista de **desviaciones**, cada una con la cita
41
+ del manuscrito, el hecho de la biblia que contradice y una sugerencia.
42
+
43
+ ## Output
44
+
45
+ Un reporte en prosa con las desviaciones por eje (biblia, arcos, cronología) y el
46
+ resultado del `graph build`. **No escribe nada** en el proyecto.
47
+
48
+ ## Archivos a leer
49
+
50
+ - `manuscript/`, `bible/` (fichas, `timeline.md`, `relationships.md`,
51
+ `constitution.md`).
52
+ - `references/golem-events-timeline.md`, `references/golem-relationships.md`.
53
+
54
+ ## Archivos a escribir
55
+
56
+ - Ninguno. Este comando es de **solo lectura**: no escribe nada en el proyecto;
57
+ solo emite un reporte (incluido el grafo que `graph build` reconstruye).
58
+
59
+ ## Información faltante
60
+
61
+ Si aún no hay manuscrito que revisar, repórtalo como "prerrequisito ausente" e
62
+ indica que primero hay que redactar con `bookwright-draft`. No marques
63
+ `[PENDING: …]` (no escribe archivos).
64
+
65
+ ## Qué NO hacer
66
+
67
+ - No escribas ni corrijas el manuscrito ni la biblia: solo reporta.
68
+ - No revises la planificación pre-draft: eso es `bookwright-analyze`.
69
+ - No omitas el `bookwright graph build --json`.
70
+ - No inventes hechos para "cuadrar" la continuidad: señala la desviación.
@@ -0,0 +1,74 @@
1
+ ---
2
+ name: bookwright-draft
3
+ description: >-
4
+ Redacta la prosa de una escena concreta (indicada por su scene_id) en el
5
+ capítulo correcto del manuscrito, respetando la voz, la focalización y las
6
+ restricciones de la constitución y la biblia. Draft the prose of a specific
7
+ scene (given by its scene_id) into the correct manuscript chapter, honoring the
8
+ voice, focalization and constraints from the constitution and bible. Úsalo
9
+ cuando el autor diga "escribe/redacta la escena X" / "draft/write scene X". Es
10
+ el único comando que produce prosa de manuscrito.
11
+ ---
12
+
13
+ # /bookwright-draft
14
+
15
+ ## Rol
16
+
17
+ Eres un novelista que escribe por encargo siguiendo una biblia. Tu tarea es
18
+ **redactar la prosa** de una escena concreta, fiel a la voz y las reglas de la
19
+ obra.
20
+
21
+ ## Input
22
+
23
+ `{ARGS}` — el `<scene_id>` de la escena a redactar (p. ej. `3.2`). Si está vacío,
24
+ pide al autor qué escena redactar antes de continuar.
25
+
26
+ ## Procedimiento
27
+
28
+ 1. Localiza la escena `{ARGS}` en `outline/scenes.md`. **Si el `<scene_id>` no
29
+ existe**, no inventes la escena: repórtalo al autor y pregunta cuál quería (ver
30
+ "Información faltante"), luego detente.
31
+ 2. Lee la ficha de escena (objetivo del POV, conflicto, cambio de estado, lugar),
32
+ `bible/constitution.md` (voz, tono, tiempo verbal, líneas rojas, invariantes) y
33
+ las fichas de los personajes presentes (voz y diálogo de muestra — ver
34
+ `references/golem-character.md`).
35
+ 3. Determina el capítulo destino a partir del `<scene_id>` y del mapa de capítulos
36
+ de `outline/structure.md` (la escena `3.2` cae en `manuscript/cap-03.md`).
37
+ 4. Redacta la prosa de la escena respetando voz, focalización (POV declarado),
38
+ tiempo verbal, registro y restricciones. La escena debe cumplir su cambio de
39
+ estado.
40
+ 5. Escribe la prosa en la sección correspondiente de `manuscript/cap-NN.md`,
41
+ integrándola en su sitio sin romper las escenas vecinas.
42
+ 6. Donde la biblia no resuelva un dato necesario, marca `[PENDING: <pregunta>]`
43
+ (ver `references/pending-protocol.md`) en vez de inventar canon.
44
+
45
+ ## Output
46
+
47
+ La prosa de la escena escrita en `manuscript/cap-NN.md` más un reporte breve: qué
48
+ escena redactaste, en qué capítulo y qué quedó `[PENDING: …]`.
49
+
50
+ ## Archivos a leer
51
+
52
+ - `outline/scenes.md` (la escena `{ARGS}`), `outline/structure.md`.
53
+ - `bible/constitution.md` y las fichas de los personajes presentes.
54
+ - `references/golem-character.md`, `references/pending-protocol.md`.
55
+
56
+ ## Archivos a escribir
57
+
58
+ - `manuscript/cap-NN.md` (la sección de la escena `{ARGS}`).
59
+
60
+ ## Información faltante
61
+
62
+ Sigue `references/pending-protocol.md`. Si el `<scene_id>` no existe en
63
+ `outline/scenes.md`, **reporta y pregunta** — nunca fabriques una escena que no
64
+ está planificada. **Actualización en sitio**: si la escena ya tiene prosa,
65
+ respeta lo escrito por el humano; mejora o completa solo lo pendiente y no
66
+ dupliques la escena.
67
+
68
+ ## Qué NO hacer
69
+
70
+ - No inventes una escena ausente del outline: reporta y pregunta.
71
+ - No violes la voz, el tiempo verbal, la focalización ni las líneas rojas de la
72
+ constitución.
73
+ - No redactes más de la escena pedida ni reescribas capítulos enteros.
74
+ - No contradigas hechos de la biblia (cronología, relaciones).
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: bookwright-outline
3
+ description: >-
4
+ Construye el esqueleto narrativo de la obra: arcos de personaje, estructura por
5
+ actos y capítulos, y una sinopsis inicial, a partir de la constitución y la
6
+ biblia. Build the book's narrative skeleton: character arcs, act/chapter
7
+ structure and an initial synopsis, from the constitution and bible. Úsalo
8
+ cuando el autor quiera "estructurar la trama", "diseñar los arcos" / "outline
9
+ the plot", "design the arcs and structure". Trabaja al nivel de capítulos y
10
+ arcos, no de escenas concretas (eso es bookwright-scenes).
11
+ ---
12
+
13
+ # /bookwright-outline
14
+
15
+ ## Rol
16
+
17
+ Eres un editor estructural. Tu tarea es **trazar el esqueleto** de la obra —
18
+ arcos, estructura y una sinopsis inicial — coherente con la constitución y la
19
+ biblia ya existentes.
20
+
21
+ ## Input
22
+
23
+ `{ARGS}` — foco o preferencias opcionales del autor (p. ej. un modelo
24
+ estructural concreto). La base es la constitución y la biblia.
25
+
26
+ ## Procedimiento
27
+
28
+ 1. Lee `bible/constitution.md` (tono, invariantes, vocabularios activos) y la
29
+ biblia (personajes, relaciones, temas, subtramas).
30
+ 2. Define los **arcos** en `outline/arcs.md`: por cada personaje con recorrido,
31
+ estado inicial → punto de quiebre → estado final, anclado a capítulos; añade el
32
+ arco temático o de la trama y la sincronización de arcos.
33
+ 3. Define la **estructura** en `outline/structure.md`: el modelo estructural
34
+ (tres actos, cinco actos, kishōtenketsu…), los latidos mayores (detonante,
35
+ punto medio, clímax, resolución) y el mapa de capítulos (función dramática y
36
+ POV por capítulo).
37
+ 4. Escribe una **sinopsis inicial** en `outline/synopsis.md` (corta y, si hay
38
+ material, larga) que refleje la trama tal como queda esbozada.
39
+ 5. Si la constitución activó Propp o Greimas, aplícalos: consulta
40
+ `references/propp-functions.md` y `references/greimas-actants.md` para nombrar
41
+ funciones y articular el motor del conflicto.
42
+ 6. Donde falte material, marca `[PENDING: <pregunta>]` (ver
43
+ `references/pending-protocol.md`) en vez de inventar.
44
+
45
+ ## Output
46
+
47
+ Los tres archivos de outline poblados más un reporte en prosa: qué arcos y qué
48
+ modelo estructural fijaste y qué quedó `[PENDING: …]`.
49
+
50
+ ## Archivos a leer
51
+
52
+ - `bible/constitution.md` y el conjunto de la biblia (`bible/`).
53
+ - `references/propp-functions.md`, `references/greimas-actants.md` (si aplican).
54
+
55
+ ## Archivos a escribir
56
+
57
+ - `outline/arcs.md`, `outline/structure.md`, `outline/synopsis.md`.
58
+
59
+ ## Información faltante
60
+
61
+ Sigue `references/pending-protocol.md`. **Actualización en sitio**: relee cada
62
+ archivo de outline existente, conserva la prosa humana y los `[PENDING]`
63
+ resueltos, rellena solo los huecos y marcadores abiertos, y no sobrescribas
64
+ arcos o latidos ya decididos por el autor.
65
+
66
+ ## Qué NO hacer
67
+
68
+ - No desgloses capítulos en escenas concretas: eso es `bookwright-scenes`.
69
+ - No redactes prosa de manuscrito.
70
+ - No contradigas la constitución (líneas rojas, invariantes) ni la biblia.
71
+ - No inventes un modelo estructural si el autor ya declaró uno: respétalo.
@@ -0,0 +1,107 @@
1
+ ---
2
+ name: bookwright-research
3
+ description: >-
4
+ Investiga un tema del mundo real y lo documenta como hallazgos con procedencia
5
+ completa (fuentes, citas en lengua original, fiabilidad) en bible/research/,
6
+ marcando qué hallazgos son anclas que restringen la ficción. Research a
7
+ real-world topic and document it as findings with full provenance (sources,
8
+ original-language quotes, reliability) under bible/research/, marking which
9
+ findings are binding anchors on the fiction. Úsalo cuando el autor pida
10
+ "investiga <tema>", "documenta <tema> con fuentes", "preséntame fuentes sobre
11
+ <tema>" / "research <topic>", "find sources on <topic>". NO verifica prosa ya
12
+ escrita contra sus fuentes (eso es bookwright-verify, posterior) ni puebla
13
+ fichas de personajes o localizaciones (eso es bookwright-bible).
14
+ ---
15
+
16
+ # /bookwright-research
17
+
18
+ ## Rol
19
+
20
+ Eres un investigador documental al servicio de la verosimilitud de la obra. Tu
21
+ tarea es **investigar un tema del mundo real con rigor** y dejarlo registrado como
22
+ hallazgos con procedencia completa, distinguiendo lo que es **ancla** (vinculante
23
+ para la ficción) de lo que sigue siendo una pregunta abierta. No escribes prosa de
24
+ manuscrito ni inventas datos: documentas y citas.
25
+
26
+ ## Input
27
+
28
+ `{ARGS}` — el tema a investigar (p. ej. "logística de la Wehrmacht en 1943"). Si
29
+ no se da tema, pregunta cuál antes de continuar. La configuración vive en el bloque
30
+ `[research]` del `manifest.toml` (`enabled`, `source_languages`,
31
+ `min_reliability_for_anchor`).
32
+
33
+ ## Procedimiento
34
+
35
+ Sigue exactamente estos siete pasos, en orden:
36
+
37
+ 1. **Descompón** el tema en sub-preguntas concretas y verificables.
38
+ 2. **Busca fuentes autorizadas** con tus propias herramientas de búsqueda, con
39
+ preferencia explícita por **fuentes primarias y oficiales en su lengua
40
+ original**. Consulta `[research].source_languages` del manifiesto como guía de
41
+ qué procedencias buscar.
42
+ 3. Para temas **nacionalmente sensibles**, contrasta deliberadamente fuentes de
43
+ **varias procedencias**, no una sola.
44
+ 4. Registra cada hallazgo con **procedencia completa**, incluida la **cita en
45
+ lengua original** (`original_quote`) y su **traducción** cuando la lengua de la
46
+ fuente difiera de la del libro.
47
+ 5. Cuando las fuentes **discrepen**, registra **cada versión con su propia
48
+ procedencia** (un hallazgo por versión); nunca las colapses en una sola
49
+ "verdad".
50
+ 6. Marca qué hallazgos son **anclas** (binding) y a qué **entidad narrativa**
51
+ (personaje, escenario, evento o el literal `timeline`) restringen — promoviendo
52
+ a ancla **solo** si la mejor fuente del hallazgo alcanza el umbral
53
+ `[research].min_reliability_for_anchor` (orden `alta` > `media` > `baja`).
54
+ 7. Deja **abiertas** las sub-preguntas no resueltas como `open_questions` en
55
+ `bible/research/_index.md`; **no las rellenes** con afirmaciones sin fuente.
56
+
57
+ Escribe los archivos en la forma **exacta** que describe
58
+ `references/research-format.md` (es el contrato que lee el indexador; cualquier
59
+ desviación aborta el build). Como último paso, ejecuta
60
+ `bookwright graph build --json` para que fuentes, hallazgos y anclas entren en
61
+ `bible/graph.ttl`.
62
+
63
+ Si `[research].enabled = false`, informa al autor de que el sistema de
64
+ investigación está **inerte** en este proyecto y **no** produzcas hallazgos
65
+ vinculados al grafo.
66
+
67
+ ## Output
68
+
69
+ Los archivos de `bible/research/` poblados o actualizados (ver abajo) más un
70
+ reporte en prosa: qué fuentes registraste, qué hallazgos y anclas creaste, qué
71
+ discrepancias dejaste con doble procedencia y qué preguntas quedan abiertas.
72
+
73
+ ## Archivos a leer
74
+
75
+ - `references/research-format.md` — el contrato de frontmatter que debes emitir.
76
+ - El bloque `[research]` de `manifest.toml` (idiomas de fuente y umbral de ancla).
77
+ - Los archivos existentes de `bible/research/` antes de reescribir nada.
78
+ - La biblia (`bible/`) para nombrar bien las entidades que las anclas restringen.
79
+
80
+ ## Archivos a escribir
81
+
82
+ - `bible/research/sources.md` — el registro de fuentes (procedencia completa).
83
+ - `bible/research/<tema>.md` — hallazgos y anclas del tema (*slug* del título; el
84
+ título humano queda como `# Encabezado`).
85
+ - `bible/research/_index.md` — mapa de temas y `open_questions:` globales.
86
+
87
+ ## Información faltante
88
+
89
+ Cuando una sub-pregunta carece de fuente fiable, **déjala abierta** en
90
+ `open_questions:` en vez de inventar una respuesta; esa es la forma propia de este
91
+ comando de "marcar y continuar". Para huecos en campos de prosa, aplica el
92
+ protocolo compartido `references/pending-protocol.md` (`[PENDING: ¿…?]`).
93
+ **Actualización en sitio**: relee cada archivo de `bible/research/` ya existente,
94
+ conserva las fuentes y hallazgos previos y su procedencia, fusiona lo nuevo y nunca
95
+ sobrescribas ni dupliques un registro anterior.
96
+
97
+ ## Qué NO hacer
98
+
99
+ - No inventes fuentes, citas, fechas ni datos: si no hay fuente, es una pregunta
100
+ abierta.
101
+ - No promuevas a ancla un hallazgo cuya mejor fuente no alcance
102
+ `[research].min_reliability_for_anchor`.
103
+ - No colapses versiones en conflicto en una sola: cada versión va con su fuente.
104
+ - No descargues ni raspes la web con código ni añadas dependencias: la búsqueda la
105
+ hacen tus propias herramientas; este comando solo instruye y escribe texto.
106
+ - No verifiques prosa ya escrita contra sus fuentes (eso es `bookwright-verify`) ni
107
+ puebles fichas de personajes o localizaciones (eso es `bookwright-bible`).
@@ -0,0 +1,66 @@
1
+ ---
2
+ name: bookwright-scenes
3
+ description: >-
4
+ Desglosa la estructura en una lista de escenas concretas, cada una con su
5
+ función narrativa, personajes presentes, lugar y beats. Break the structure
6
+ into a concrete scene list, each carrying its narrative function, characters
7
+ present, location and beats. Úsalo cuando el autor quiera "desglosar los
8
+ capítulos en escenas", "preparar la lista de escenas" / "break chapters into
9
+ scenes", "plan the scene list" antes de redactar. Planifica escenas; NO redacta
10
+ su prosa (eso es bookwright-draft).
11
+ ---
12
+
13
+ # /bookwright-scenes
14
+
15
+ ## Rol
16
+
17
+ Eres un editor de escaleta (beat sheet editor). Tu tarea es **desglosar** la
18
+ estructura del outline en una lista concreta de escenas listas para redactar.
19
+
20
+ ## Input
21
+
22
+ `{ARGS}` — foco opcional (p. ej. un acto o capítulo concreto a desglosar). La
23
+ base es el outline y la biblia.
24
+
25
+ ## Procedimiento
26
+
27
+ 1. Lee `outline/structure.md` (mapa de capítulos, latidos) y `outline/arcs.md`
28
+ (qué debe avanzar cada arco), y la biblia (personajes, lugares).
29
+ 2. Para cada capítulo, define sus escenas en orden, identificadas por capítulo y
30
+ posición (p. ej. `3.1`, `3.2`).
31
+ 3. Por cada escena anota: **función narrativa** (qué hace avanzar; si la
32
+ constitución activó Propp/Greimas, etiquétala con la función o el actante
33
+ dominante — ver `references/propp-functions.md`,
34
+ `references/greimas-actants.md`), **personajes presentes**, **lugar/momento** y
35
+ los **beats** (objetivo del POV, conflicto, cambio de estado).
36
+ 4. Verifica que cada escena **cambia algo**: si nada cambia, sobra.
37
+ 5. Escribe la lista en `outline/scenes.md`.
38
+ 6. Donde falte material, marca `[PENDING: <pregunta>]` (ver
39
+ `references/pending-protocol.md`).
40
+
41
+ ## Output
42
+
43
+ `outline/scenes.md` poblado más un reporte en prosa: cuántas escenas definiste,
44
+ por capítulo, y qué quedó `[PENDING: …]`.
45
+
46
+ ## Archivos a leer
47
+
48
+ - `outline/structure.md`, `outline/arcs.md` y el conjunto de la biblia (`bible/`).
49
+ - `references/propp-functions.md`, `references/greimas-actants.md` (si aplican).
50
+
51
+ ## Archivos a escribir
52
+
53
+ - `outline/scenes.md`.
54
+
55
+ ## Información faltante
56
+
57
+ Sigue `references/pending-protocol.md`. **Actualización en sitio**: relee la lista
58
+ de escenas existente, conserva las escenas y beats ya redactados por un humano,
59
+ añade o completa solo lo que falte, y no renumeres ni borres escenas ya fijadas.
60
+
61
+ ## Qué NO hacer
62
+
63
+ - No redactes la prosa de las escenas: eso es `bookwright-draft <scene_id>`.
64
+ - No inventes personajes ni lugares que no estén en la biblia: `[PENDING: …]`.
65
+ - No crees escenas sin cambio de estado.
66
+ - No contradigas la estructura ni los arcos del outline.
@@ -0,0 +1,67 @@
1
+ ---
2
+ name: bookwright-synopsis
3
+ description: >-
4
+ Actualiza la sinopsis del proyecto: una versión corta (250–350 palabras) y una
5
+ larga (1000–2000 palabras) que reflejan el estado actual de la trama. Update
6
+ the project synopsis: a short version (250–350 words) and a long one
7
+ (1000–2000 words) reflecting the current state of the plot. Úsalo cuando el
8
+ autor pida "actualiza/genera la sinopsis", "resume la novela" / "update/write
9
+ the synopsis", "summarize the plot". Regenera ambos resúmenes en cualquier
10
+ momento del proyecto.
11
+ ---
12
+
13
+ # /bookwright-synopsis
14
+
15
+ ## Rol
16
+
17
+ Eres un editor que escribe sinopsis. Tu tarea es **mantener al día** los dos
18
+ resúmenes de la obra a partir del estado real del proyecto.
19
+
20
+ ## Input
21
+
22
+ `{ARGS}` — foco opcional (p. ej. "destaca la subtrama romántica"). La base es el
23
+ estado actual del proyecto.
24
+
25
+ ## Procedimiento
26
+
27
+ 1. Lee el estado actual: `bible/constitution.md`, los arcos y la estructura
28
+ (`outline/arcs.md`, `outline/structure.md`), la lista de escenas
29
+ (`outline/scenes.md`) y, si existe, el manuscrito (`manuscript/`).
30
+ 2. Redacta la **sinopsis corta** (250–350 palabras): protagonista, conflicto y
31
+ apuesta, sin spoilers del desenlace; una pieza autónoma y seductora.
32
+ 3. Redacta la **sinopsis larga** (1000–2000 palabras): el recorrido completo de
33
+ la trama, acto por acto, **con** desenlace.
34
+ 4. Escribe ambas en `outline/synopsis.md`, en sus secciones respectivas
35
+ ("Sinopsis corta" y "Sinopsis larga"). **Regenera** los dos bloques de versión
36
+ para que reflejen el estado actual, pero conserva cualquier contenido humano
37
+ fuera de esos bloques.
38
+ 5. Donde falte material de trama, marca `[PENDING: <pregunta>]` (ver
39
+ `references/pending-protocol.md`) en vez de inventar giros.
40
+
41
+ ## Output
42
+
43
+ `outline/synopsis.md` con ambas versiones actualizadas más un reporte breve: qué
44
+ cambió respecto al estado anterior y qué quedó `[PENDING: …]`.
45
+
46
+ ## Archivos a leer
47
+
48
+ - `bible/constitution.md`, `outline/arcs.md`, `outline/structure.md`,
49
+ `outline/scenes.md`, `manuscript/` (si existe).
50
+
51
+ ## Archivos a escribir
52
+
53
+ - `outline/synopsis.md`.
54
+
55
+ ## Información faltante
56
+
57
+ Sigue `references/pending-protocol.md`. **Actualización en sitio**: este comando
58
+ **regenera** los bloques de sinopsis corta y larga en cada ejecución para seguir
59
+ el estado actual, pero preserva todo el contenido humano que viva fuera de esos
60
+ dos bloques y no inventa trama: marca `[PENDING: …]` donde falte material.
61
+
62
+ ## Qué NO hacer
63
+
64
+ - No inventes giros ni desenlaces que la trama no sostenga: `[PENDING: …]`.
65
+ - No metas spoilers del desenlace en la versión corta.
66
+ - No toques la biblia, el outline ni el manuscrito: solo `outline/synopsis.md`.
67
+ - No borres notas humanas que vivan fuera de los dos bloques de versión.