Fountain Coach Gitowner-controlled · read only

FountainImagePublicationKit.git · PLANS.md

FountainImagePublicationKit.git / PLANS.md

revision 55cf5e871e396bf2e0974a433a1db76126595d7e · complete file

# Plans

## Phase 0/1 — public package and core contracts (2026-08-13)

Goal: establish the standalone FCIS-Kit repository and dependency-light contracts before transport, server, or Reframe
integration.

Non-goals: iCloud/PhotoKit publication, local image authority, server deployment, OpenAI calls, image bytes in source,
and Reframe UI changes.

Acceptance: clean SwiftPM build, focused Codable/decision tests, cross-platform Foundation-compatible core, no private
data fixtures, and README claims that clearly distinguish this tranche from later runtime capabilities.

## Phase 2 — typed client/server seam (2026-08-13)

Goal: prove content-addressed intake, idempotency, status, and typed receipts without choosing production storage or
server framework.

Acceptance: the in-memory server and client share the same transport contract; duplicate intake returns the same
receipt; a reused idempotency key with another content hash fails; status is recoverable by asset reference; no image
bytes enter logs or repository fixtures.

## Phase 3 — durable host storage (2026-08-13)

Goal: add a migratable content-addressed filesystem adapter and persist receipts/state independently of one server
process.

Acceptance: a second `ImageCloudServer` instance using the same explicitly configured root recovers the original intake
receipt and status; writes are atomic and hash conflicts fail; the adapter remains behind `ImageCloudObjectStore`.