Skip to content

v5.34.0

Choose a tag to compare

@github-actions github-actions released this 18 Aug 21:20
· 7 commits to main since this release
e1d279a

v5.34.0 -- 2026-08-18

Summary

  • Book-scale drafting starts here. A book does not fit in a context
    window, so its structure cannot live in a model's memory of an earlier
    call. This release adds the artefact it lives in instead: an outline per
    book on disk, approved by a human before any prose is generated.
  • python -m src.draft spec writes, shows, signs and reports on that
    outline. spec show --unit <id> prints exactly the slice a genre skill
    should generate one section from, rather than having it invent structure
    per invocation.
  • New document: docs/BOOKS.md,
    which will grow one section per piece of the track as the rest lands.

What's Changed

Full Changelog: v5.33.0...v5.34.0

In Detail

The outline is four heading levels -- book, part, chapter, section -- and the
section is the generation unit. Three decisions are worth knowing about:

  • Every part, chapter and section needs an explicit {#id}. A slug
    derived from the heading would change the moment someone reworded it,
    silently orphaning every unit written against the old spelling. At chapter
    scale a person notices; across 300 pages nobody does.
  • Sign-off lives in a sibling signoff.md, as a digest of spec.md.
    Writing the digest into the file it measures would guarantee no later read
    ever matched. It carries no timestamp, so two sign-offs of an unchanged
    outline are byte-identical.
  • spec status's non-zero exit is not a new gate. It reads back a record
    of a person's decision -- did a human approve this outline? -- rather than
    judging any draft's content. python -m src.draft gate remains the only
    gate in the project.

src/spec/ is stdlib-only, so a genre skill can read a unit slice under bare
python with no venv, like the citation gate.

Upgrading

Nothing to do. The new command is additive, writes only under
content/specs/, and no existing command, output format or config key
changed.