FountainProjectKit.git · PLANS.md
FountainProjectKit.git / PLANS.md
revision 91a58f7e563fec6ba7240bf03f2284ca87f60c13 · complete file
# PLANS.md ## FountainProjectKit v0.1 — durable draft custody (2026-08-12) Goal: provide a portable Swift contract that makes Fountain Project creation and every accepted edit durable through an injected store, with explicit flush and recovery semantics. Scope: project identity, revisioned text persistence, recovery pointer, typed status/errors, and deterministic test kit. Non-goals: editor rendering, Fountain parsing, Git, Book Library publication, network transport, and Reframe UI. Constraints: Swift 6.1; no external runtime dependencies; no truncation; offline tests. Risks: a consumer may debounce outside the kit and forget to flush. Mitigation: the kit's update operation persists before returning and `flush()` is idempotent, explicit, and required at lifecycle boundaries. Plan: - Step 1 (done) - Define the identity, store, snapshot, status, and recovery contracts. - Step 2 (done) - Implement the actor session and deterministic in-memory store. - Step 3 (done) - Add tests for creation, exact text, revision conflict, flush, interruption, and recovery. - Step 4 (pending) - Integrate the released package into Reframe's editor adapter. Validation: - `swift test` - Reframe dependency-coherence, focused tests, and live create/edit/interruption/relaunch drive.