Skip to main content

Spec-driven authoring toolkit for novels, essays, and memoirs.

Project description

Bookwright — toolkit de autoría spec-driven para novelas, ensayos y memorias

CI Versión 0.3.0 Licencia: Apache-2.0 Python 3.11+ Cobertura ≥80% Lint con Ruff Tipado con mypy --strict Hecho con Spec Kit

Toolkit de autoría spec-driven para novelas, ensayos y memorias.
Read in English

Bookwright aplica el patrón Spec-Driven Development a la escritura de formato largo: destilas tus ideas en un conjunto reducido de documentos canónicos (constitución, biblia, outline, escenas) y dejas que un agente IA escriba a partir de ellos, no de un chat libre. Tu libro vive en texto plano, versionado en git, completamente auditable, y sobrevive al toolkit.

Estado: v0.3.0

Tres hitos están en main. v0.1.0 (el toolkit base, iteraciones 1–11): scaffolding del proyecto (bookwright init), el modelo de dominio GOLEM, el indexer y los comandos bookwright graph, las skills de autoría materializadas como Agent Skills, y el sistema de validación de continuidad. v0.2.0 / M4 (investigación y verificación, iteraciones 12–18): el modelo de procedencia Source / Finding / Anchor, las skills /bookwright-research y /bookwright-verify, el validador factual_anchor y la envoltura --json unificada. v0.3.0 / M5 (orquestación de contexto, iteraciones 19–23): el foco autoral ([focus] + bookwright focus), el estado derivado bookwright status con sus next_actions, y las skills que lo consumen para guiar el siguiente paso. La documentación de usuario completa vive en el sitio de documentación.

El loop del escritor

El loop del escritor: idea → scaffolding → destila → build y valida → edita, y vuelta a empezar

  1. Idea libremente — conversa con tu agente o tu libreta y vuelca un brief a Markdown.

  2. Scaffolding del proyectobookwright init mi-novela --integration claude genera la estructura de directorios, los templates de los documentos canónicos e instala los Agent Skills de Bookwright en .claude/skills/.

  3. Destila, en orden — abre el proyecto con Claude Code (o cualquier agente compatible con agentskills.io) y ejecuta:

    /bookwright-constitution   ← reglas no negociables de la obra
    /bookwright-bible          ← personajes, settings, lore
    /bookwright-outline        ← estructura de actos/capítulos
    /bookwright-scenes         ← desglose beat por beat
    /bookwright-draft          ← generación de prosa por escena
    

    Cada comando toma input no estructurado y produce un artefacto Markdown / Turtle versionable. Iteras los documentos, no el borrador.

  4. Construye y validabookwright graph build deriva el grafo narrativo GOLEM y bookwright validate corre los chequeos de continuidad (continuidad temporal, presencia de personajes, focalización, continuidad de settings).

  5. Edita en tu editor favorito — Bookwright no es un editor de texto. Abre los .md en Obsidian, Scrivener, VS Code o vim.

Instalación

El paquete en PyPI es bookwright-cli; el comando que instala es bookwright.

Desde PyPI (recomendado):

uv tool install bookwright-cli   # con uv
pipx install bookwright-cli      # o con pipx
bookwright version

Directamente desde el repositorio (última versión de main):

uv tool install "git+https://github.com/jmorenobl/bookwright"
# o:  pipx install "git+https://github.com/jmorenobl/bookwright"

¿Solo quieres probarlo una vez, sin instalar nada?

uvx --from bookwright-cli bookwright version

Para desarrollar sobre el toolkit, clona el repo y sincroniza el entorno:

git clone https://github.com/jmorenobl/bookwright && cd bookwright
uv sync
uv run bookwright --help

Quickstart en 5 minutos

bookwright init mi-novela --integration claude   # scaffolding + Agent Skills
cd mi-novela

Abre el proyecto en tu agente y destila tu idea con las skills (no editas los documentos a mano; las skills leen tu brief y te preguntan lo que falte):

/bookwright-constitution lee idea.md y destila la constitución
/bookwright-bible        ← personajes, settings, cronología
/bookwright-outline      ← arcos y estructura
/bookwright-scenes       ← desglose en escenas
/bookwright-draft        ← redacta la prosa de una escena

Para obra basada en hechos (p. ej. novela histórica), el loop opcional de investigación documenta fuentes, hallazgos y anclas, y contrasta la prosa contra ellas:

/bookwright-research <tema>   ← documenta hallazgos con procedencia completa
/bookwright-verify            ← contrasta la prosa redactada con las anclas

Y construye/valida desde el CLI:

bookwright graph build                            # → bible/graph.ttl
bookwright graph query "SELECT ?c WHERE { ?c a golem:G1_Character }" --json
bookwright validate                               # exit 0 si no hay errores

Para mantener el hilo conductor entre sesiones, fija tu foco autoral y deja que Bookwright derive el estado y el siguiente paso:

bookwright focus set --target "Cerrar la investigación del libro de jornales"
bookwright status --json                          # estado derivado + next_actions

¿Quieres cambiar de integración (p. ej. de claude a generic)?

bookwright integration use generic                # re-materializa en .agents/skills/

El recorrido completo está en docs/getting-started.md.

Principios de diseño

  • El texto plano es la fuente de verdad. Manuscrito, biblia, constitución y grafo narrativo son Markdown, TOML o Turtle (RDF). Auditables por humanos, diffables en git, portables.
  • Agnóstico de agente. La capa de comandos se materializa como Agent Skills portables. Bookwright entrega dos integraciones (claude, generic); agentes como Codex, Cursor o Copilot consumen la salida generic directamente, sin integración nativa dedicada.
  • Batch, no conversacional. Tú consolidas el input; el comando lo destila. El agente no es un co-escritor frase a frase.
  • GOLEM por debajo. El grafo narrativo usa la ontología GOLEM publicada (personajes, eventos, settings, relaciones, estructura narrativa, procedencia de inferencias) serializada en Turtle.

Roadmap y fuera de scope

Hecho: v0.2 / M4 — investigación y verificación (modelo de procedencia, skills research/verify, validador factual_anchor); v0.3 / M5 — orquestación de contexto (foco autoral [focus] + bookwright focus, estado derivado bookwright status con next_actions, y las skills que lo consumen). Planificado: v0.4 — búsqueda vectorial (ChromaDB sobre rdflib, desacoplada); v1.0 — export a EPUB / PDF / impresión vía pandoc.

Cancelado (decisión del owner), no lo pidas: presets de género / paquetes de plantilla (la resolución es de 2 capas, overrides → core); el motor Grafeo / GrafeoIndexer; integraciones más allá de claude y generic; el sistema de extensiones. Agentes como Codex, Cursor o Copilot ya se soportan hoy vía la integración generic con --integration-options="--skills-dir …", sin integración nativa dedicada.

Documentos del proyecto

Licencia

Apache-2.0. Consulta NOTICE para la atribución.

Esta licencia cubre solo el software bookwright. El contenido que crees con la herramienta —bibles, escaletas, manuscritos y los grafos de conocimiento derivados— sigue siendo enteramente tuyo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bookwright_cli-0.3.1.tar.gz (204.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

bookwright_cli-0.3.1-py3-none-any.whl (283.0 kB view details)

Uploaded Python 3

File details

Details for the file bookwright_cli-0.3.1.tar.gz.

File metadata

  • Download URL: bookwright_cli-0.3.1.tar.gz
  • Upload date:
  • Size: 204.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.12

File hashes

Hashes for bookwright_cli-0.3.1.tar.gz
Algorithm Hash digest
SHA256 ad53d69a698d5874a74bf03fc218d32adcbf92e2dce39004ed962e75ff846d56
MD5 8332f3ec8fa40f671337474a19530b56
BLAKE2b-256 d2566ce8c14b6e80254df5de4dbab79c8528d70a48673db9f29b28f39a0e89bd

See more details on using hashes here.

File details

Details for the file bookwright_cli-0.3.1-py3-none-any.whl.

File metadata

File hashes

Hashes for bookwright_cli-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6952a0cdd9102ce00468986d37ccc47eee04c35983178cecc521497eadb3e5a3
MD5 86fe2846b14ffbfd331e841b27e3ee15
BLAKE2b-256 3851943fcb8d69c481080cbe37f671241cf35d172e570f43bb56578d875b24e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page