scriveno 3.6.0: multi-book identity, slug naming, series store
Multi-book identity, slug-based naming, and a first-class series store.
What changed
- Your books now have a real identity. Each project records its
title,author, and a stablesluginconfig.json, so export, cover, and series tooling stop guessing. Existing projects keep working; the identity is filled in for new and imported works. - Deliverables that never collide. Exports and covers still write their familiar default filenames, and now also write a self-describing
{slug}-...copy when your book has an identity. Collect three books' files in one upload folder and they no longer overwrite each other. Per-platform EPUB builds (ebook-{platform}.epub) are now named per platform, matching the print builds. - Series are first-class. The series bible lives in a safely named per-series store (
~/.scriveno/series/{series_slug}/) with a realbooks.jsonindex and a legacy-path migration shim. A series can now carry a shared voice profile, art direction, and glossary that each book inherits and can override, which is what keeps Book 5 sounding, and looking, like Book 1. - Honest project switching.
/scr:manager --switchnow tells you the exactcdto run instead of implying a persistent switch it never had. - Translation and reissue covers. Translated and alternate editions get their own cover slots (
build/{lang}/...,build/editions/{edition}/...), falling back to your primary cover when none is set.
Under the hood
- New canonical contract
docs/naming-conventions.mdand dependency-free helperlib/slug.js(genericsanitizeSlug+buildDeliverableName). - New tests: slug-helper unit coverage and a series-naming contract suite. Full suite green (2151 tests), writing-policy clean.
See the CHANGELOG for the full list.