Fountain Coach Gitowner-controlled · read only

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.