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,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.
|