Document validated authoring prototype
This commit is contained in:
11
SPEC.md
11
SPEC.md
@@ -1,6 +1,6 @@
|
||||
# SPEC.md — Drafting Engine Brief Specification
|
||||
|
||||
**Version:** 0.5.3-windowed-draft
|
||||
**Version:** 0.5.4-windowed-prototype-validated
|
||||
**Terminology:** per AUTHORING.md Appendix A.
|
||||
**Status:** DRAFT — freeze before any SFT data generation
|
||||
**Rule:** Once frozen, changes require a version bump and a retrain. Argue here, not later.
|
||||
@@ -17,6 +17,12 @@ Defines the exact input package the drafting engine receives and the output it r
|
||||
|
||||
The engine honors everything inside the package and nothing outside it. Producing the package (timeline maintenance, character snapshots, tail selection, notes content) is upstream work — author + authoring system — and out of the engine's scope.
|
||||
|
||||
### Prototype validation note — 2026-08-27
|
||||
|
||||
The complete package was assembled, inspected, sent to a frontier-model stand-in, edited by an author, and accepted into a live Scrivener manuscript through the companion prototype. This demonstrates that the nine-section package is usable as an authoring interface: its fields can be selected independently, its context can be made visible before drafting, and it supports repeatable scene creation without embedding chapter labels in the package.
|
||||
|
||||
This is **operational validation, not a format freeze or a training result**. The open decisions in §9 still require corpus and dedicated-engine evaluation before SFT generation.
|
||||
|
||||
v0.4 extended the format to a multi-author training corpus (Lovecraft, Galsworthy, Dreiser, Maugham, Hapa Girls). Voice is an explicit, conditioned input via the STYLE section: the engine learns to map a style reference and/or description onto prose. A STYLE may name an author, describe observable techniques, or do both; it does not carry source passages.
|
||||
|
||||
v0.5 makes the package **bounded and closure-aware**, driven by a genre review against epic fantasy but general in effect:
|
||||
@@ -122,6 +128,7 @@ The alternative — constructing SFT pairs whose response defies its own directi
|
||||
- `Warder — capitalized when it denotes the bond, lowercase in ordinary use.`
|
||||
- **Project versus package scope:** the authoring project maintains a complete book lexicon. The package carries the author-selected subset relevant to the forthcoming scene. The system may suggest entries found in BRIEF or established continuity, but it must not select them silently.
|
||||
- The selected subset carries forward as the default for succeeding scenes until the author alters it. The project-level scope of this carry-forward and the master-list threshold that makes subset selection mandatory remain open decisions (§9).
|
||||
- The prototype validated a practical author control: a master lexicon maintained as one `term — definition` entry per paragraph can be presented as selectable entries, loaded into an editable package field, and then carried forward. This is an implementation convenience, not additional package syntax.
|
||||
- **Package cap: open.** The prior 25-line cap is retained as a working target, not a frozen rule. If nothing applies: `(none)`.
|
||||
- A new term found in an accepted scene may be proposed for addition to the complete lexicon. Text from rejected or uncommitted drafts never creates a lexicon entry.
|
||||
- Spelling conformance is additionally checked downstream (AUTHORING.md §7). Conditioning reduces the error rate; the check catches the remainder.
|
||||
@@ -139,6 +146,7 @@ The alternative — constructing SFT pairs whose response defies its own directi
|
||||
- Written upstream and maintained as a rolling record; the engine never updates it.
|
||||
- If the scene opens a new thread, unrelated to the scenes that came before it (including the opening of the first book), the literal line: `(none - new storyline)`.
|
||||
- The author chooses the thread for a scene. The authoring system defaults that choice to the thread of the preceding canonical scene, but the author may resume any existing thread or create a new one. Summaries are derived from accepted scenes and may be edited by the author; an author-edited approved summary is the one used in future packages.
|
||||
- **Thread membership is independent of package context.** A scene may start a new thread while drawing STORY summaries, PREVIOUS text, or RECALL from any author-selected earlier scene; conversely, a continuation need not use every available context source. The recorded thread link is continuity bookkeeping, while STORY, PREVIOUS, and RECALL are the author’s separate package choices.
|
||||
|
||||
### 4.4 CHARACTERS — required
|
||||
|
||||
@@ -389,4 +397,5 @@ Collected here per the header rule: argue in this document, version-bump, retrai
|
||||
| 0.5.2-windowed | 2026-08-02 | **Chapters removed from the package.** The engine's units are the scene and the thread; a chapter is presentation owned by the author (`AUTHORING.md` §3) and carries nothing the engine can act on, so no field refers to one. New rule in §3 with the reason stated — §4.10 forbids the engine from producing headers, and feeding it chapter references teaches the habit that prohibition exists to prevent. RECALL source markers restructured: the type suffix stays mandatory, placement becomes an optional phrase in engine-meaningful terms (`(earlier in this book — full text)`, `(Book 1 — summary)`, bare `(full text)`). NOTES state facts rather than citing where they were established — provenance lives in the world-fact envelope and is not projected. CHARACTERS status example de-cited. Validation rule 6a added; §8 gains a reverse-instruction audit, since source novels cite their own chapters constantly and a package builder will carry the habit. Books remain citable — a prior volume is a real boundary in the state model |
|
||||
| 0.5.1-windowed | 2026-08-02 | Round 1 state-perturbation results folded in (`STATE_PERTURBATION_REPORT.md`). **New §3.1 — precedence:** DIRECTIVE overrides the state fields whenever they conflict, established by measurement (1.00 responsiveness when DIRECTIVE is silent on the perturbed field, 0.00 when it names the affected behavior; four checkpoints, three architectures, three scoring passes, no dissent). Recorded as a contract rather than a defect, with the structural cause named — reverse instruction makes DIRECTIVE/state agreement hold in 100% of training pairs, so conflict is out of distribution — and the obligation assigned upstream to the authoring system. §4.4: **CHARACTERS death/status rule promoted from v0.6 candidate to required**, with the finding that the entry alone is insufficient against a competing directive. §4.9: DIRECTIVE named as the highest-authority field, with the rule that it must never name a specific character action (actions belong in BRIEF, manner to DIRECTIVE). §9 renumbered; the narrative-transformation candidate now carries a §3.1 caution, and the state-perturbation entry rewritten to split future rounds into state-reading and precedence families, carrying forward the generous `n_predict` and the pre-registration discipline that caught this round's confound |
|
||||
| 0.5.3-windowed-draft | 2026-08-23 | Authoring-system review. STYLE may name an author and may vary only through declared Part-level alternatives. LEXICON is now a complete project-level register projected into packages by author selection, with a rolling selected subset; new terms are proposed only from accepted scenes. STORY thread selection defaults to the preceding canonical scene's thread but remains author-selectable; author-approved generated summaries become its source. CHARACTERS uses an author-selected rolling roster and admits planned, BRIEF-introduced, and accepted-scene-proposed characters. RECALL is explicitly author-selected across threads and earlier series volumes. PREVIOUS defaults to a paragraph-boundary 300–500-word tail but is author-adjustable. NOTES may carry explicitly marked required verbatim text. BRIEF has no authoring-time length limit; unusual lengths receive confirmation. DIRECTIVE requires word limit plus closure semantics, while its fixed wording remains under evaluation. §9 records all remaining package decisions before freeze. |
|
||||
| 0.5.4-windowed-prototype-validated | 2026-08-27 | A local authoring prototype successfully exercised the package against a live Scrivener manuscript and a frontier-model stand-in. Added the operational-validation note: package fields are practical to select and inspect; lexicon entries can be selected from a project register; and narrative-thread membership is independent of STORY, PREVIOUS, and RECALL context choices. No package delimiter, field order, or training/freeze decision changed. |
|
||||
| | | *(freeze entry goes here: "0.5.3 FROZEN — SFT generation begins")* |
|
||||
|
||||
Reference in New Issue
Block a user