-
Notifications
You must be signed in to change notification settings - Fork 0
Docs Architecture Phase1 Implementation Plan
Canonical source:
docs/architecture/PHASE1-IMPLEMENTATION-PLAN.md· Snapshot commit:2f69111d7fca
- Date: 2026-08-14
- Owner: Product Council — Technical Architect
- Status: Detailed implementation baseline; implementation and deployment have not started Roadmap vocabulary: Backlog · Next · In progress · Done
This plan turns the global PRD, UX specification, v5 HTML, JavaScript, and CSS, the v5 feature audit, and shared-host spike into implementation-ready architecture and roadmap work packages.
The v5 HTML/JavaScript/CSS and screenshots are interaction evidence using fictional browser-memory fixtures. They are not application, persistence, integration, encryption, authentication, accessibility-conformance, backup, recovery, deployment, or production evidence.
Only the planning artifacts explicitly linked in a Done row are complete. Every product implementation, live-provider integration, host change, deployment, and launch task remains Next or Backlog until its own acceptance evidence exists.
- Direct owner decisions and corrections.
- Phase1 Roadmap Manifest for release, task, status, date, dependency, and roadmap metadata.
- Product Council release-specific PRDs/PID after they are accepted.
- Stable
LID-*requirements in the global PRD and canonical domain language. - UX behavior and accepted prototype decisions.
- This plan, the deployment spike, and runbooks.
An architecture recommendation cannot weaken a product acceptance criterion. A failed proof gate reopens the decision; it does not silently change product behavior.
| Release | Dates | User-verifiable outcome | Architectural focus |
|---|---|---|---|
| P0 — Council Planning Baseline | 2026-08-14 to 2026-08-16 | Review detailed plans and evidence boundaries | Council artifacts, traceability, roadmap contract |
| R0 — Shared-Host Private Foundation | 2026-08-17 to 2026-08-28 | Open a synthetic private shell; prove backup/restore and safe shared-host coexistence | Host qualification, stack/DB/crypto ADRs, Compose, Access, recovery foundation |
| R1 — Manual Journal Archive | 2026-08-31 to 2026-09-18 | Upload a .txt/.md journal, revisit its day, export and restore it |
Core domain, manual capture, calendar/day vertical slice |
| R2 — Telegram Photo Capture | 2026-09-21 to 2026-10-09 | Send a photo, receive durable acknowledgement, revisit it privately | Callback boundary, image validation/encryption, duplicates, date instructions |
| R3 — Retrieval and Date Integrity | 2026-10-12 to 2026-10-30 | Browse calendar/timeline, find a source, resolve uncertain dates | Retrieval, Needs Date Review, date/redating invariants, accessibility |
| R4 — Source History and Lifecycle Safety | 2026-11-02 to 2026-11-20 | Correct without overwriting, resolve conflict, Trash/restore, inspect history | Revisions, Corrections, conflicts, suppressions, lifecycle/export |
| R5 — Prospective VoiceNotes Sync | 2026-11-23 to 2026-12-11 | Prospectively import a qualifying synthetic/approved VoiceNotes journal and reconcile it | Contract spike, activation boundary, durable reconciliation, lifecycle |
| R6 — Generated Text Reflection | 2026-12-14 to 2027-01-08 | Generate and safely review title/summary/tags from approved journal text | Model qualification, text adapter, provenance, budget, protection/failures |
| R7 — Generated Artwork | 2027-01-11 to 2027-01-29 | Generate visibly labeled artwork from a Visual Brief without photo disclosure | Artwork evaluation, brief, manual/sweep jobs, versions/suppression |
| R8 — Operational Scale and Resilience | 2027-02-01 to 2027-02-19 | Inspect factual health, complete restore/export/security and failure drills | Recovery, observability, capacity, security/privacy/accessibility gates |
| R9 — Private Launch Acceptance and Stabilization | 2027-02-22 to 2027-03-12 | Owner performs the complete private workflow on an authorized deployment | RC, deploy/rollback, Recovery Ceremony, acceptance, stabilization |
| R10 — Conditional Object-store Transition | Trigger-based; no dates | Preserve all media while safely moving authority after a capacity trigger | Object-store dual-write/copy/reconcile/restore/cutover/observation/rollback |
R10 is intentionally date-free. It begins only when the PRD capacity trigger occurs and all migration prerequisites pass.
| Area | Baseline | Decision gate |
|---|---|---|
| Application | TypeScript modular monolith; one immutable image, separate web/hooks/worker processes | ADR-001 and target runtime proof |
| Browser | Responsive React UI served from the human same-origin service | UX acceptance and browser matrix |
| HTTP | Schema-validated API and strict callback gateway | Auth, body-limit, cache, CSRF, callback contract tests |
| Database | SQLCipher/SQLite + FTS5 in WAL mode | ADR-002 hard gates in R0 |
| Database fallback | Private PostgreSQL service with no host port | Only if SQLCipher hard gate fails |
| Jobs | Database-backed durable queue, leases, outbox, idempotency | ADR-003 kill/retry/concurrency proof |
| Media | Exact Original + metadata-free derivatives, authenticated application encryption | ADR-004 plus codec/staging/privacy proof |
| Launch storage | Encrypted existing-root media with PRD watermarks | Live filesystem and capacity proof |
| Conditional storage | Private Cloudflare R2 EU jurisdiction, opaque keys, encrypted objects | R10 inventory/backup/restore/cutover proof |
| Human access | Cloudflare Access plus origin JWT validation | Live policy, MFA/session, negative tests |
| Callback access | Separate host/port/service and provider-specific authentication | Telegram contract; VoiceNotes spike |
| Recovery | Application-consistent snapshot and encrypted Restic repository independent of live host | Clean restore and Recovery Ceremony |
| Deployment | Dedicated Docker Compose project on the existing host | Sanitized capacity/collision/rehearsal gate |
The Hetzner spike contains the SQLCipher/PostgreSQL comparison and the live admission rules.
| ADR | Decision | Required evidence |
|---|---|---|
| ADR-001 | Runtime, framework, monorepo, image, Compose/systemd boundary | Target OS/arch/runtime proof; reproducible build; resource measurements |
| ADR-002 | SQLCipher/SQLite + FTS5 or PostgreSQL fallback | Encryption, compile options, concurrency, backup, restore, migration spike |
| ADR-003 | Durable queue/outbox/lease protocol | Kill/restart, stale lease, unknown external-effect, replay tests |
| ADR-004 | Database/media encryption, key hierarchy, rotation, tmpfs, swap rule | Test vectors, canary inspection, threat review, recovery-key proof |
| ADR-005 | Root media and conditional Cloudflare R2 storage/backup-source contract | Complete listing, hashes, interrupted migration, Restic restore |
| ADR-006 | Shared-host Compose, Tunnel, deploy and rollback | Collision, resource, alternate-version/controlled-downtime rehearsal |
| ADR-007 | Encrypted export passphrase and download lifecycle | No persistent passphrase, restart/partial cleanup, success definition |
| ADR-008 | Access JWT, callback trust separation, CSRF/cookie/cache policy | Negative/expiry/rotation/cache tests |
flowchart TB
Access["Cloudflare Access"] --> Tunnel["Cloudflare Tunnel"]
Callbacks["Provider callbacks"] --> Tunnel
subgraph SharedHost["Existing shared host — live capacity gated"]
Tunnel --> WebPort["loopback human port"]
Tunnel --> HookPort["loopback callback port"]
WebPort --> Web["life-web"]
HookPort --> Hooks["life-hooks"]
Web --> DB["SQLCipher/SQLite + FTS5"]
Hooks --> DB
Worker["life-worker"] --> DB
Web --> Media["encrypted media"]
Worker --> Media
Backup["root-restricted backup task"] --> Prepared["consistent DB snapshot + manifest"]
Prepared --> Restic["independent encrypted Restic repository"]
Media -. "R10 only" .-> R2["private Cloudflare R2 EU"]
end
Worker --> Text["approved text provider"]
Worker --> Art["approved artwork provider"]
- Compose project, networks, volumes, ports, secrets, timers, and log files are unique to Life in Days.
- Human and callback services bind only to explicit loopback ports; no database port is published.
- No service mounts the Docker socket, another application's volume, or a broad host path.
- Web, hooks, and worker run non-root with a read-only root filesystem and only required writable mounts.
- Image derivation concurrency is one. Backup, export, media derivation, and artwork generation cannot run as unbounded heavy jobs concurrently.
- Container resource values are measured R0 outputs, not hard-coded assumptions about a 4 GB server.
- Deployment commands are always scoped with
-p life-in-days; no hostwide restart, prune, or cleanup is an application action. - System Health exposes resource pressure from durable evidence, while personal content and private topology remain absent.
apps/
web/ responsive browser UI
api/ human same-origin HTTP composition root
hooks/ provider callback gateway composition root
worker/ durable jobs and scheduled commands
packages/
domain/ aggregates, value objects, invariants, state machines
application/ commands, queries, transactions, ports, policies
contracts/ HTTP/webhook/provider schemas and typed DTOs
persistence/ migrations, SQLCipher repositories, FTS, online backup
jobs/ queue, leases, outbox, schedules, attempt state
media/ crypto envelopes, store ports, decoder/derivatives
integrations/ Telegram, VoiceNotes, text/art, Cloudflare R2 adapters
observability/ allowlisted events, health projections, retention
design-system/ tokens, accessible primitives, page-state components
test-fixtures/ fictional journals, images, webhooks, provider responses
infra/
compose/ secret-free Compose definition and overrides
cloudflare/ secret-free ingress/Access templates
backup/ snapshot/Restic/restore verifier commands
systemd/ scoped Compose and timer units
runbooks/ deploy, rollback, recovery, capacity, credential rotation
tests/
unit/ property/ contract/ integration/ e2e/ privacy/ accessibility/ recovery/
Module rules:
- Domain code imports no provider, HTTP, Docker, Cloudflare, filesystem, or database SDK type.
- Integration adapters never write domain tables directly; they call application commands.
- AI packages cannot import media, photo, Telegram payload, caption, EXIF, object-key, or signed-URL types.
- HTTP contracts and domain records are separate. Unknown input fields are rejected or stripped at the boundary according to an explicit schema.
- Every state change that crosses a database/external-effect boundary uses an outbox or resumable attempt record.
| Record | Essential fields | Invariants / security |
|---|---|---|
journal_days |
ID, Journal Date, visibility, cover projection, timestamps | Unique Asia/Kolkata date; visible only with a live Source Item |
source_items |
ID, kind, nullable day ID, origin, Original Timestamp, opaque upstream identity, lifecycle | Origin/timestamp immutable; day null only in Needs Date Review |
source_revisions |
ID, source ID, sequence, content, keyed checksum, upstream status/time | Append-only; content is searchable only inside the opened SQLCipher database; no overwrite |
corrections |
ID, source ID, base revision ID, corrected content/date, created time, state | Owner-authored layer in SQLCipher; never upstream text |
uploaded_files |
ID, source ID, original filename, encrypted object ref, MIME, byte size, keyed checksum, envelope version | Exact .txt/.md bytes remain individually recoverable; filename lives only in SQLCipher/export |
daily_photos |
ID, source ID, media asset ID, caption/private description, order, cover flag | Fields live only in SQLCipher and are excluded from AI; one logical reference per accepted capture |
media_assets |
ID, keyed/plain checksum representation, sizes/dimensions/MIME, envelope version, backend/key | One encrypted byte sequence may have many photo references |
media_derivatives |
ID, asset ID, type, envelope, dimensions, hash, state | Metadata stripped; never replaces Original |
derived_artifacts |
ID, day ID, kind, active version ID, protected/stale/suppression state | Source truth remains separate |
derived_versions |
ID, artifact ID, source revision set/hash, provider/model, prompt/schema version, DB content or encrypted artifact ref, usage/cost/result | Append-only provenance; no raw provider request/response in operational logs |
artwork_attempts |
ID, trigger, brief version, eligibility/budget snapshot, effect state, error/refusal | Manual or 01:00 sweep; no hidden fallback |
suppressions |
ID, kind, opaque identity, created/removed time | Explicit Source or Artwork suppression only |
trash_entries |
ID, target type/ID, deletion time, purge due, state | Thirty-day live recovery; backups age independently |
date_review_items |
ID, source ID, reason class, proposed text, source timestamp, state | No Journal Day until owner selects valid non-future date |
webhook_receipts |
provider, opaque external identity, auth/result state, received time | Idempotency; no raw payload in logs |
jobs |
type, minimized SQLCipher-resident payload, dedupe key, state, attempts, lease, next run | Durable; lease owner/expiry; bounded retries |
external_attempts |
job ID, provider, prepared/sending/unknown/confirmed state, safe request ID | Unknown outcome is reconciled, never blindly replayed |
outbox |
event type, opaque aggregate ID, payload, delivery state | Commits with domain transaction |
integration_state |
integration, activation instant, cursor, completeness, last success/error | Activation immutable; incomplete enumeration never means deletion |
usage_ledger |
provider/model, request/attempt ID, predicted/actual cost, allocation, month, state | Budget reservation atomic before call |
exports |
ID, state, manifest hash, encrypted artifact ref, expiry/download result | Passphrase never persisted |
backup_evidence |
snapshot/check/restore IDs, safe scope, duration, result | Successful upload is not restore evidence |
storage_migrations |
asset ID, source/target state/hash, backup proof, authority, rollback | Per-object reversible ledger |
audit_events |
time, actor class, opaque target, action, result | Allowlists only; no content/secrets/private identifiers |
- SQLCipher encrypts the complete database, including FTS tables, under a key supplied from a service-specific secret file. The key is not stored in the database, image, Compose file, logs, export, or backup manifest.
- The exact SQLCipher build must prove FTS5, encrypted WAL/journal/temp behavior, thread safety, and the selected crypto compatibility settings.
- FTS5 indexes only fields approved for deterministic local search. Query text stays in request memory and never enters URLs, ordinary logs, metrics, error reports, or browser storage.
- The PostgreSQL fallback is not authorized merely by starting a private database service. ADR-002 must separately prove copied-disk secrecy for rows, indexes, WAL, temporary work and backups while retaining the exact retrieval contract; it cannot inherit SQLCipher's whole-file encryption claim.
- Media uses authenticated, versioned per-object envelopes with unique nonces and opaque storage keys. Originals and derivatives are separately encrypted.
- The running host can decrypt content and is therefore trusted at runtime. This is not end-to-end encryption or zero knowledge.
- Database, media, Restic, and recovery/key-encryption domains use distinct keys derived or provisioned according to ADR-004.
- Rotation is versioned and resumable; a key change does not rewrite authentic source history semantically.
| Operation | Atomic database work | External/resumable work |
|---|---|---|
| Manual journal capture | Validate checksum/idempotency, source/revision/day/search/outbox commit | None after file is encrypted and durably placed |
| Telegram photo capture | Auth receipt, capture intent, encrypted object refs, source/photo/day/search/outbox commit | Telegram download before commit; acknowledgement after outbox delivery |
| Resolve date review | Attach source to day, recalc both day projections, search/stale/eligibility/outbox | None |
| Redate source | Old/new day membership, visibility, cover, search, staleness, suppressions | Cancel/reject stale long-running jobs by input hash |
| VoiceNotes reconcile | Completeness gate, source/revision/upstream status/cursor/outbox | Authoritative retrieval and pagination before commit |
| Generate text/art | Reserve budget and attempt; recheck input/config before call; append result version | Provider call with explicit unknown-outcome state |
| Delete/restore/purge | Trash/suppression/reference/day/search projections | Physical delete only after no live/Trash reference |
| Export | Freeze manifest input set and job state | Stream/decrypt/package/encrypt to temporary private artifact; cleanup on failure/expiry |
| Backup | Prepare consistent encrypted DB snapshot and inventory manifest | Restic snapshot/check/restore verification |
All routes require a valid Cloudflare Access assertion at origin. State changes also require same-origin checks, CSRF protection, schema/body limits, and optimistic concurrency where the user can act on stale state.
| Interface family | Representative capability | Requirements |
|---|---|---|
/api/calendar, /api/timeline, /api/days/:date
|
Calendar/timeline/day queries without full-text leakage |
LID-REF-001, 002, 004
|
/api/search POST |
Body-only lexical/date/tag query; optional history flag |
LID-REF-003, LID-OPS-016
|
/api/uploads/journals |
Review/commit .txt/.md with deliberate date and idempotency |
LID-UP-001–003
|
/api/date-review/* |
List, preview, resolve preserved undated sources |
LID-TG-006, LID-VN-004
|
/api/sources/* |
Correct, redate, conflict resolution, history |
LID-SRC-001–004
|
/api/photos/* |
Gallery order, cover, private description, download, lifecycle |
LID-TG-007, 009, 010
|
/api/derived/* |
Review/protect/resume text; brief/art attempts and versions |
LID-AIT-*, LID-AIA-*
|
/api/trash, /api/suppressions
|
Restore, permanent delete, allow re-import/generation |
LID-VN-007, LID-AIA-009, LID-OPS-010
|
/api/exports |
Review, create encrypted archive, one-time download state | LID-OPS-013 |
/api/health |
Safe factual projections, no raw log stream |
LID-OPS-014–018
|
Personal responses use Cache-Control: private, no-store. Only content-hashed, content-free application assets may be cacheable.
- Runs as
life-hookson a distinct loopback port and public hostname. - Exposes only exact provider path + method combinations; every other request is 404/405.
- Enforces a small body limit and rate/concurrency bounds before parsing or fetching media.
- Telegram validates webhook secret, numeric sender ID, and private-chat ID before download.
- VoiceNotes authentication and identity contract cannot be implemented until the synthetic spike passes.
- Callback response bodies contain no journal/photo content, private identifiers, host details, or human session links except the approved authenticated management link in a post-commit Telegram message.
- Raw payloads never enter ordinary logs. Durable receipt state uses opaque identity and safe error classes.
| Port | Minimum contract |
|---|---|
MediaStore |
putEncrypted, openCiphertext, head, complete paginated inventory, deleteIfUnreferenced, health
|
DatabaseBackup |
createConsistentEncryptedSnapshot, verifyOpen, manifest
|
JobQueue |
enqueueUnique, claimLease, heartbeat, complete, retry, deadLetter, recoverExpired
|
TelegramClient |
getFile, sendSafeMessage; no broad chat history |
VoiceNotesAuthority |
exact fetch/list/revision/tag/creation contract discovered by spike |
TextProvider |
typed approved configuration + allowlisted journal text input only |
ArtworkProvider |
typed approved configuration + Visual Brief only |
BudgetLedger |
reserve, reconcile, release, blockReason, monthly projection |
RecoveryRepository |
Restic command wrapper with scoped secret files and recorded exit/evidence |
queued → leased → running → succeeded | retryable | refused | budget-blocked | dead
External effects add:
prepared → sending → confirmed | known-failed | unknown-outcome
An unknown outcome is reconciled using provider idempotency/request identity where available. It is never retried blindly.
| Job | Trigger | Concurrency / idempotency |
|---|---|---|
| Telegram download/derive | Accepted receipt | Media heavy semaphore; update/message/file identities |
| Telegram acknowledgement | Durable capture outbox | Exactly one safe acknowledgement per capture result |
| VoiceNotes reconcile | Webhook wake + schedule + manual health action | One per integration/cursor window; complete enumeration required |
| Search reindex repair | Committed source/derived lifecycle event | Per aggregate/version hash |
| Text quiet-period/final refresh | Source change + 01:00 schedule | Per day + source-revision set + config |
| Artwork manual request/sweep | Explicit confirmation + 01:00 eligibility | Per attempt/idempotency hash; no fallback |
| Trash purge | Due schedule | Per target/lifecycle version; media ref recheck |
| Export | Owner request | Per export ID; bounded one at a time |
| Backup/check/sample restore | systemd schedule | Hostwide Life in Days lock; no overlap with export/media-heavy job |
| Storage migration | R10 state machine | Per asset/source-target hash; reversible authority |
| Log retention/health projection | schedule/event | Safe schema only |
- Target-host read-only qualification and coexistence budget.
- ADR-001–008 decisions and synthetic proofs.
- Reproducible image, Compose project, secret-file contract, loopback ports, health endpoints, schema migration command.
- SQLCipher/FTS/online-backup/queue kill-recovery proof or PostgreSQL fallback decision.
- Cloudflare Access/Tunnel templates and negative tests in a non-personal environment.
- Application/media encryption test vectors, tmpfs/staging/swap guard, synthetic root store.
- Restic repository integration, application-consistent snapshot, clean sample restore.
- Journal Day, Source Item, Source Revision, Uploaded Journal, checksum, day visibility, audit/outbox.
-
.txt/.md, UTF-8, 1 MiB, deliberate date, review, duplicate/Add Anyway, durable commit. - Minimum Calendar, Journal Day detail, authentic source labels, responsive states, and accessibility foundations.
- Complete restorable export of the implemented slice and backup/restore coverage.
- Callback secret/user/chat/group validation before download.
- Photo/document handling, decoded-type/size/pixel/dimension/animation limits, constrained libvips-compatible worker, HEIC/HEIF proof.
- Exact Original, derivative, global checksum dedup/reference lifecycle, album settling without invented completion event.
- Receipt-date and leading-date/caption grammar, invalid/future Needs Date Review, durable acknowledgement outbox.
- Complete Calendar, cross-month Timeline, day detail/gallery, private description, match-reason Search and Include History.
- Needs Date Review queue and resolution preview.
- Atomic redating projections and stale-job rejection.
- Loading/error/session/interruption states; 320 px, zoom, keyboard, screen reader, reduced motion, contrast and browser evidence.
- Append-only revisions, Correction editor, accessible diff, exactly three conflict outcomes.
- Source-set binding, protected fields foundation, redating/history event stream.
- Trash/restore/permanent delete, media reference lifecycle, Source/Artwork Suppression management.
- Export/import round trip preserves revisions, Corrections, Trash, suppressions, and checksums.
- Synthetic contract spike before adapter freeze.
- Webhook as wake signal; authoritative retrieval; exact
life-in-days; immutable Integration Activation. - Missing creation time to Needs Date Review; replay-safe complete reconciliation; partial page abort.
- Upstream revisions/untag/deletion as status; local suppression prevents resurrection.
- Approved synthetic model evaluation and exact provider/model configuration.
- Allowlisted text-only request serializer, prompt-injection/factuality/schema gates, no fallback.
- 15-minute quiet period and 01:00 final refresh; title/80–140 word summary/3–7 unique tags/Visual Brief.
- Independent protection, replacement review, Resume automatic updates, failure/refusal/provenance/budget states.
- Blind evaluation and exact configurations with manual-only flag for premium models.
- Read-only Visual Brief, 20-word manual generation, five-word warning, provider/model/cost/budget confirmation.
- 01:00 sweep, cover precedence, style/labeling, refusal/failure, versions, stale behavior, suppression.
- Privacy test proves no photo bytes/metadata/caption/description/identifier enters either AI path.
- Full export lifecycle ADR implementation and clean import validator.
- Restic retention/check/sample/full restore, capacity states, safe emergency media rejection.
- System Health, sanitized 30-day local logs, repeated-failure alerts, AI budget ledger.
- Threat review, dependency/SBOM/secret scan, failure injection, accessibility/browser regression and recovery rehearsal.
- Immutable RC and complete requirement-to-code-test-evidence matrix.
- Authorized loopback deployment and Tunnel/Access/callback configuration.
- Deploy, compatible rollback, separate-path restore, session expiry, cache, dependency outage, disk pressure, and clean recovery rehearsals.
- Recovery Ceremony and owner scenario sign-off before prospective personal capture is enabled.
- Stabilization monitors sanitized state only; no personal content enters evidence artifacts.
- Private Cloudflare R2 EU jurisdiction, public development URL disabled, opaque keys and ciphertext only.
- Dual-write, complete paginated inventory, count/size/hash reconciliation, interrupted-list fail-closed.
- Application-consistent remote-to-Restic snapshot and B2 restore proof.
- Reversible pointer cutover, seven-day observed reads, rollback, then root eviction only after proof.
This plan adopts the canonical seed from the Phase1 Roadmap Manifest without introducing architecture-only aliases. AUD-001, PC-001, and completed PRD/planning artifacts are Done only in the narrow evidence sense recorded by the manifest. SPK-R0-001 is In progress because this research report exists while live-host experiments remain open. Every implementation task remains Next or Backlog; no application feature, deployment, restore, release, or launch is claimed complete.
This table is rendered from the Phase1 Roadmap Manifest, the final authority for task status and metadata. The manifest retains the complete owner role, task type, priority, acceptance evidence, rollback/restore impact, GitHub fields, and per-requirement mapping.
| Task ID | Title | Status | Milestone | Proposed dates | Description | Requirement IDs | Dependencies | PRD/PID | Design artifacts |
|---|---|---|---|---|---|---|---|---|---|
AUD-001 |
v5 Feature Audit | Done | P0 | 2026-08-14 | Classify every v5 interaction as strong, partial, missing, or outside implementation evidence. | N/A — planning evidence | None | PRODUCT REQUIREMENTS |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PC-001 |
Integrated Council Planning Package | Done | P0 | 2026-08-14 to 2026-08-16 | Reconcile Product, Design, Architecture, and Project Management decisions into one delivery baseline. | N/A — planning evidence | AUD-001 |
PRODUCT REQUIREMENTS |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
SPK-R0-001 |
Shared-host Coexistence & Rollback Spike | In progress | R0 | 2026-08-17 to 2026-08-19 | Prove namespaced shared-host fit with synthetic data, explicit capacity assumptions, non-regression, restore, and rollback. |
LID-SCP-001, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-008, LID-OPS-011, LID-OPS-012, LID-OPS-014, LID-OPS-016, LID-OPS-018
|
PC-001 |
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
PRD-R0-001 |
Private Foundation PRD | Done | R0 | 2026-08-17 to 2026-08-20 | Define the synthetic-only private foundation outcome and prohibit authentic memory ingestion before R0 acceptance. |
LID-SCP-001, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-008, LID-OPS-011, LID-OPS-012, LID-OPS-014, LID-OPS-016, LID-OPS-018
|
PC-001 |
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
UX-R0-001 |
First-use/Access/Health States | Next | R0 | 2026-08-18 to 2026-08-21 | Design first use, access denial/expiry, System Health, synthetic recovery, failure, and rollback states. |
LID-SCP-001, LID-OPS-001, LID-OPS-012, LID-OPS-014, LID-OPS-018
|
PRD-R0-001, SPK-R0-001
|
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
ARCH-R0-001 |
Private Shell Architecture & Threat Baseline | Next | R0 | 2026-08-17 to 2026-08-21 | Freeze namespaced processes, loopback ingress, callback isolation, encryption, secrets, logging, backup, and recovery architecture. |
LID-SCP-001, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-008, LID-OPS-011, LID-OPS-012, LID-OPS-014, LID-OPS-016, LID-OPS-018
|
PRD-R0-001, SPK-R0-001
|
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
ENG-R0-001 |
Deploy Synthetic Private Shell | Next | R0 | 2026-08-21 to 2026-08-26 | Build and deploy an authenticated synthetic shell with health evidence and no route or data path for real memories. |
LID-SCP-001, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-008, LID-OPS-011, LID-OPS-012, LID-OPS-014, LID-OPS-016, LID-OPS-018
|
UX-R0-001, ARCH-R0-001
|
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R0-001 |
Restore/Rollback/Non-regression Acceptance | Next | R0 | 2026-08-27 to 2026-08-28 | Execute access, coexistence, encrypted synthetic restore, restart, rollback, and co-resident non-regression gates. |
LID-SCP-001, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-008, LID-OPS-011, LID-OPS-012, LID-OPS-014, LID-OPS-016, LID-OPS-018
|
ENG-R0-001 |
PRD R0 SHARED HOST PRIVATE FOUNDATION |
UX DESIGN REVIEW UX SPECIFICATION |
PRD-R1-001 |
Manual Archive PRD | Done | R1 | 2026-08-31 to 2026-09-02 | Define the first memory-creating release with explicit-date text upload and authentic Calendar/Journal Day recall. |
LID-SCP-002, LID-SCP-003, LID-UP-001, LID-UP-002, LID-UP-003, LID-REF-001, LID-REF-004, LID-REF-005, LID-REF-006, LID-OPS-011, LID-OPS-018
|
PC-001 |
PRD R1 MANUAL JOURNAL ARCHIVE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
UX-R1-001 |
Calendar/Day/Upload Designs | Backlog | R1 | 2026-08-31 to 2026-09-04 | Finalize Calendar, Journal Day, upload, empty/loading/error, responsive, theme, and accessibility states. |
LID-SCP-002, LID-SCP-003, LID-UP-001, LID-UP-003, LID-REF-001, LID-REF-004, LID-REF-005, LID-REF-006
|
PRD-R1-001 |
PRD R1 MANUAL JOURNAL ARCHIVE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ARCH-R1-001 |
Journal/Source/Encryption Schema | Backlog | R1 | 2026-08-31 to 2026-09-04 | Define Journal Day, immutable source file, checksum, encryption, index, backup, restore, and migration contracts. |
LID-SCP-002, LID-SCP-003, LID-UP-001, LID-UP-002, LID-UP-003, LID-OPS-011, LID-OPS-018
|
PRD-R1-001, REL-R0-001
|
PRD R1 MANUAL JOURNAL ARCHIVE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R1-001 |
Manual Upload & Reflection Core | Backlog | R1 | 2026-09-03 to 2026-09-15 | Implement durable explicit-date text upload, duplicate override, Calendar, and authentic Journal Day display. |
LID-SCP-002, LID-SCP-003, LID-UP-001, LID-UP-002, LID-UP-003, LID-REF-001, LID-REF-004, LID-REF-005, LID-REF-006, LID-OPS-011, LID-OPS-018
|
UX-R1-001, ARCH-R1-001, REL-R0-001
|
PRD R1 MANUAL JOURNAL ARCHIVE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
REL-R1-001 |
First-memory Restore/Rollback Acceptance | Backlog | R1 | 2026-09-16 to 2026-09-18 | Verify one owner-approved source survives upload, restart, export, backup, restore, and rollback without time/date drift. |
LID-SCP-002, LID-SCP-003, LID-UP-001, LID-UP-002, LID-UP-003, LID-REF-001, LID-REF-004, LID-REF-005, LID-REF-006, LID-OPS-011, LID-OPS-018
|
ENG-R1-001 |
PRD R1 MANUAL JOURNAL ARCHIVE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R2-001 |
Telegram Capture PRD | Done | R2 | 2026-09-21 to 2026-09-23 | Define authorized media forms, dating/review, durable acknowledgement, gallery, duplicate, caption, and privacy behavior. |
LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-OPS-005, LID-OPS-009, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
PC-001 |
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
UX-R2-001 |
Telegram/Date Review/Gallery Designs | Backlog | R2 | 2026-09-21 to 2026-09-25 | Design companion messages, media/date failures, Needs Date Review, gallery, cover, duplicates, and media management. |
LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-OPS-015
|
PRD-R2-001 |
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ARCH-R2-001 |
Media Pipeline & Asset Lifecycle | Backlog | R2 | 2026-09-21 to 2026-09-25 | Define callback authorization, bounded staging/decoding, ciphertext/derivative flow, media references, deduplication, and restore. |
LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-OPS-005, LID-OPS-009, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
PRD-R2-001, REL-R1-001
|
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R2-001 |
Telegram Authorization & Durable Capture | Backlog | R2 | 2026-09-24 to 2026-10-02 | Implement secret/sender/chat authorization, media validation, exact dating, review holding, and post-commit acknowledgement. |
LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-OPS-005, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
UX-R2-001, ARCH-R2-001, REL-R1-001
|
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R2-002 |
Gallery/Cover/Dedup/Derivatives | Backlog | R2 | 2026-09-28 to 2026-10-06 | Implement durable gallery order, real-photo cover, global checksum references, captions, byte-preserved Originals, and local metadata-free thumbnails. |
LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-OPS-009, LID-OPS-011, LID-OPS-018
|
ENG-R2-001 |
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
REL-R2-001 |
Media Privacy/Restore Acceptance | Backlog | R2 | 2026-10-07 to 2026-10-09 | Execute capture, invalid input/date, album, duplicate, cover, Original, AI-exclusion, media restore, and rollback fixtures. |
LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-OPS-005, LID-OPS-009, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
ENG-R2-001, ENG-R2-002
|
PRD R2 TELEGRAM PHOTO CAPTURE |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R3-001 |
Retrieval & Date Integrity PRD | Done | R3 | 2026-10-12 to 2026-10-14 | Define cross-month Timeline, exact retrieval, query privacy, Date Review, and atomic redating invariants. |
LID-SRC-003, LID-REF-002, LID-REF-003, LID-REF-006, LID-OPS-011, LID-OPS-018
|
PC-001 |
PRD R3 RETRIEVAL DATE INTEGRITY |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
UX-R3-001 |
Timeline/Search/Date Review Designs | Backlog | R3 | 2026-10-12 to 2026-10-16 | Design Timeline, search scope/results/history, Date Review, redating preview, interruption, and failure states. |
LID-SRC-003, LID-REF-002, LID-REF-003, LID-REF-006
|
PRD-R3-001 |
PRD R3 RETRIEVAL DATE INTEGRITY |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ARCH-R3-001 |
Search Index & Redating Transaction | Backlog | R3 | 2026-10-12 to 2026-10-16 | Define encrypted lexical indexes, query/log privacy, date-review storage, and one-transaction old/new-day redating. |
LID-SRC-003, LID-REF-002, LID-REF-003, LID-REF-006, LID-OPS-011, LID-OPS-018
|
PRD-R3-001, REL-R2-001
|
PRD R3 RETRIEVAL DATE INTEGRITY |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R3-001 |
Timeline/Search/Date Review/Redating | Backlog | R3 | 2026-10-15 to 2026-10-28 | Implement cross-month browsing, deterministic lexical/date/tag/caption retrieval, review resolution, and atomic redating. |
LID-SRC-003, LID-REF-002, LID-REF-003, LID-REF-006, LID-OPS-011, LID-OPS-018
|
UX-R3-001, ARCH-R3-001, REL-R2-001
|
PRD R3 RETRIEVAL DATE INTEGRITY |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
REL-R3-001 |
Query Privacy & Date Atomicity Acceptance | Backlog | R3 | 2026-10-29 to 2026-10-30 | Verify exact results, opt-in history, zero query leakage, two-day atomicity, index recovery, restore, and rollback. |
LID-SRC-003, LID-REF-002, LID-REF-003, LID-REF-006, LID-OPS-011, LID-OPS-018
|
ENG-R3-001 |
PRD R3 RETRIEVAL DATE INTEGRITY |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R4-001 |
Lifecycle PRD | Done | R4 | 2026-11-02 to 2026-11-04 | Define Corrections, conflict choices, source binding, History, Trash, suppressions, confirmations, and complete export. |
LID-SCP-004, LID-SRC-001, LID-SRC-002, LID-SRC-004, LID-REF-007, LID-OPS-010, LID-OPS-011, LID-OPS-013, LID-OPS-018
|
PC-001 |
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
UX-R4-001 |
Diff/History/Trash/Export Designs | Backlog | R4 | 2026-11-02 to 2026-11-06 | Design accessible diff, Correction, History, Trash, suppression, confirmation, and encrypted-export workflows. |
LID-SCP-004, LID-SRC-001, LID-SRC-002, LID-SRC-004, LID-REF-007, LID-OPS-010, LID-OPS-013
|
PRD-R4-001 |
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
ARCH-R4-001 |
Revision/Suppression/Export Lifecycle | Backlog | R4 | 2026-11-02 to 2026-11-06 | Define immutable revisions/Corrections, active display binding, Trash/suppression state machine, passphrase handoff, export cleanup, and restore. |
LID-SCP-004, LID-SRC-001, LID-SRC-002, LID-SRC-004, LID-REF-007, LID-OPS-010, LID-OPS-011, LID-OPS-013, LID-OPS-018
|
PRD-R4-001, REL-R3-001
|
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
ENG-R4-001 |
Corrections/Conflict/History | Backlog | R4 | 2026-11-05 to 2026-11-13 | Implement immutable Corrections, retained revisions, exactly three conflict outcomes, exact source-set binding, and inspectable History. |
LID-SCP-004, LID-SRC-001, LID-SRC-002, LID-SRC-004, LID-REF-007, LID-OPS-011, LID-OPS-018
|
UX-R4-001, ARCH-R4-001, REL-R3-001
|
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
ENG-R4-002 |
Trash/Suppressions/Export | Backlog | R4 | 2026-11-09 to 2026-11-18 | Implement 30-day Trash, restoration/permanent deletion, suppressions, complete encrypted export, cleanup, and import validation. |
LID-SCP-004, LID-REF-007, LID-OPS-010, LID-OPS-011, LID-OPS-013, LID-OPS-018
|
ENG-R4-001 |
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R4-001 |
Lifecycle/Export Restore Acceptance | Backlog | R4 | 2026-11-19 to 2026-11-20 | Verify conflict outcomes, deletion/restoration, day visibility, suppression, export completeness, import/restore, and rollback. |
LID-SCP-004, LID-SRC-001, LID-SRC-002, LID-SRC-004, LID-REF-007, LID-OPS-010, LID-OPS-011, LID-OPS-013, LID-OPS-018
|
ENG-R4-001, ENG-R4-002
|
PRD R4 SOURCE HISTORY LIFECYCLE |
UX DESIGN REVIEW UX SPECIFICATION |
SPK-R5-001 |
VoiceNotes Synthetic Contract Spike | Backlog | R5 | 2026-11-23 to 2026-11-25 | Prove exact note/revision identity, unattended authorization, authoritative retrieval, tag/date/transcript, wakeups, reconciliation, and failure behavior using synthetic data. |
LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005
|
REL-R4-001 |
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
PRD-R5-001 |
VoiceNotes PRD | Done | R5 | 2026-11-23 to 2026-11-27 | Define spike-gated prospective eligibility, activation, dating, reconciliation, revisions, suppression, and lifecycle behavior. |
LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
PC-001 |
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
UX-R5-001 |
Integration/Reconciliation/Lifecycle Designs | Backlog | R5 | 2026-11-24 to 2026-11-27 | Design activation, integration health, Date Review, reconciliation, upstream revision/conflict, suppression, and re-import states. |
LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-OPS-015
|
PRD-R5-001, SPK-R5-001
|
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
ARCH-R5-001 |
VoiceNotes Adapter & Reconciliation Contract | Backlog | R5 | 2026-11-24 to 2026-11-27 | Freeze the spike-proven adapter, opaque identities, authorization renewal, fail-closed paging, durable jobs, reconciliation, and restore design. |
LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
PRD-R5-001, SPK-R5-001, REL-R4-001
|
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
ENG-R5-001 |
Prospective Import & Revisions | Backlog | R5 | 2026-11-26 to 2026-12-09 | Implement exact post-activation import, creation-time dating/review, replay-safe reconciliation, revisions, upstream status, suppression, and alerts. |
LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
UX-R5-001, ARCH-R5-001, REL-R4-001
|
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R5-001 |
Replay/Suppression/Restore Acceptance | Backlog | R5 | 2026-12-10 to 2026-12-11 | Verify activation boundaries, missed/duplicate/out-of-order replay, revisions, suppression/re-import, integration failure isolation, restore, and rollback. |
LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-OPS-011, LID-OPS-015, LID-OPS-018
|
ENG-R5-001 |
PRD R5 PROSPECTIVE VOICENOTES SYNC |
UX DESIGN REVIEW UX SPECIFICATION |
EVAL-R6-001 |
Text Model Evaluation | Backlog | R6 | 2026-12-14 to 2026-12-18 | Evaluate exact text provider/model snapshots against privacy, fidelity, schema, language, latency, and measured-cost hard gates. |
LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-006, LID-AIT-007, LID-OPS-017
|
REL-R5-001 |
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R6-001 |
Generated Text PRD | Done | R6 | 2026-12-14 to 2026-12-18 | Define evaluated optional text derivation, typed inputs, quiet/final refresh, protection, provenance, failures, and budgets. |
LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
PC-001 |
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
UX-R6-001 |
Text/Provider/Budget States | Backlog | R6 | 2026-12-16 to 2026-12-22 | Design title/summary/tag/brief review, field protection, stale suggestions, provenance, provider health, budget, and failure states. |
LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-007, LID-REF-006, LID-OPS-017
|
PRD-R6-001, EVAL-R6-001
|
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ARCH-R6-001 |
Text Adapter/Jobs/Budget/Provenance | Backlog | R6 | 2026-12-16 to 2026-12-22 | Define typed allowlist serialization, exact adapter configuration, source-race-safe jobs, independent protection, provenance, usage ledger, and restore. |
LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
PRD-R6-001, EVAL-R6-001, REL-R5-001
|
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R6-001 |
Text Derivation & Protected Fields | Backlog | R6 | 2026-12-21 to 2027-01-06 | Implement evaluated title/summary/tag/Visual Brief derivation, quiet/final refresh, field protection, version choice, provenance, and budget enforcement. |
LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
UX-R6-001, ARCH-R6-001, REL-R5-001
|
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
REL-R6-001 |
Text Privacy/Quality/Restore Acceptance | Backlog | R6 | 2027-01-07 to 2027-01-08 | Verify hard-gate model quality, photo/caption exclusion, source races, protected fields, failures, monthly ceiling, derived restore, and rollback. |
LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
ENG-R6-001 |
PRD R6 GENERATED TEXT REFLECTION |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
EVAL-R7-001 |
Artwork Model Evaluation | Backlog | R7 | 2027-01-11 to 2027-01-13 | Evaluate exact artwork provider/model configurations against non-photorealism, safety, quality, latency, cost, and automatic-sweep eligibility gates. |
LID-AIA-001, LID-AIA-003, LID-AIA-005, LID-AIA-006, LID-AIA-011, LID-OPS-017
|
REL-R6-001 |
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R7-001 |
Artwork PRD | Done | R7 | 2027-01-11 to 2027-01-13 | Define evaluated Visual Brief, manual/sweep generation, safety/failure, labeling, versions, cover precedence, suppression, and configuration. |
LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
PC-001 |
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
UX-R7-001 |
Artwork/Version/Suppression Designs | Backlog | R7 | 2027-01-12 to 2027-01-15 | Design preflight, meaningful-word, safety/failure, persistent label, versions, stale, suppression, and real-photo-cover states. |
LID-AIA-002, LID-AIA-003, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-REF-006, LID-OPS-017
|
PRD-R7-001, EVAL-R7-001
|
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ARCH-R7-001 |
Artwork Adapter/Sweep/Budget/Provenance | Backlog | R7 | 2027-01-12 to 2027-01-15 | Define exact adapter/configuration, preflight, idempotent sweep, artifact lifecycle, provenance, budget reservation, suppression, and restore. |
LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
PRD-R7-001, EVAL-R7-001, REL-R6-001
|
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
ENG-R7-001 |
Manual & Sweep Artwork Lifecycle | Backlog | R7 | 2027-01-14 to 2027-01-27 | Implement evaluated explicit/sweep generation, versions, labeling, stale state, suppression, cover precedence, failures, and spend control. |
LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
UX-R7-001, ARCH-R7-001, REL-R6-001
|
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
REL-R7-001 |
Artwork Privacy/Cover/Restore Acceptance | Backlog | R7 | 2027-01-28 to 2027-01-29 | Verify privacy, evaluation gates, preflight, failures, versions, suppression, real-photo cover, budget, artifact restore, and rollback. |
LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-REF-006, LID-OPS-011, LID-OPS-017, LID-OPS-018
|
ENG-R7-001 |
PRD R7 GENERATED ARTWORK |
UX DESIGN REVIEW UX SPECIFICATION index v5 |
PRD-R8-001 |
Resilience PRD | Done | R8 | 2027-02-01 to 2027-02-03 | Define measured capacity, safe degradation, health, alerts, failure isolation, integrated recovery, and hardening outcomes. |
LID-OPS-006, LID-OPS-011, LID-OPS-014, LID-OPS-018, LID-REF-006
|
PC-001 |
PRD R8 OPERATIONAL SCALE RESILIENCE |
UX DESIGN REVIEW UX SPECIFICATION |
ARCH-R8-001 |
Capacity/Health/Alert/Fault Hardening | Backlog | R8 | 2027-02-01 to 2027-02-05 | Harden measured watermarks, process/job supervision, durable health, alert transitions, dependency isolation, and recovery operations. |
LID-OPS-006, LID-OPS-011, LID-OPS-014, LID-OPS-018, LID-REF-006
|
PRD-R8-001, REL-R7-001
|
PRD R8 OPERATIONAL SCALE RESILIENCE |
UX DESIGN REVIEW UX SPECIFICATION |
QA-R8-001 |
Integrated Fault/Security/Browser/Accessibility Suite | Backlog | R8 | 2027-02-04 to 2027-02-17 | Execute integrated capacity, restart, dependency, privacy, security, browser, keyboard, screen-reader, zoom, theme, and restore tests. |
LID-SCP-001, LID-SCP-002, LID-SCP-003, LID-SCP-004, LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-UP-001, LID-UP-002, LID-UP-003, LID-SRC-001, LID-SRC-002, LID-SRC-003, LID-SRC-004, LID-REF-001, LID-REF-002, LID-REF-003, LID-REF-004, LID-REF-005, LID-REF-006, LID-REF-007, LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-005, LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-009, LID-OPS-010, LID-OPS-011, LID-OPS-012, LID-OPS-013, LID-OPS-014, LID-OPS-015, LID-OPS-016, LID-OPS-017, LID-OPS-018
|
ARCH-R8-001, REL-R7-001
|
PRD R8 OPERATIONAL SCALE RESILIENCE |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R8-001 |
Resilience Release Acceptance | Backlog | R8 | 2027-02-18 to 2027-02-19 | Accept the integrated operating envelope only after faults, alerts, capacity, backup/restore, rollback, and regressions pass. |
LID-SCP-001, LID-SCP-002, LID-SCP-003, LID-SCP-004, LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-UP-001, LID-UP-002, LID-UP-003, LID-SRC-001, LID-SRC-002, LID-SRC-003, LID-SRC-004, LID-REF-001, LID-REF-002, LID-REF-003, LID-REF-004, LID-REF-005, LID-REF-006, LID-REF-007, LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-005, LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-009, LID-OPS-010, LID-OPS-011, LID-OPS-012, LID-OPS-013, LID-OPS-014, LID-OPS-015, LID-OPS-016, LID-OPS-017, LID-OPS-018
|
QA-R8-001 |
PRD R8 OPERATIONAL SCALE RESILIENCE |
UX DESIGN REVIEW UX SPECIFICATION |
PRD-R9-001 |
Launch Acceptance Plan | Done | R9 | 2027-02-22 to 2027-02-24 | Define the owner UAT, Recovery Ceremony, severity gate, observation window, explicit authority, go/no-go, and rollback plan with no feature growth. |
LID-SCP-001, LID-SCP-002, LID-SCP-003, LID-SCP-004, LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-UP-001, LID-UP-002, LID-UP-003, LID-SRC-001, LID-SRC-002, LID-SRC-003, LID-SRC-004, LID-REF-001, LID-REF-002, LID-REF-003, LID-REF-004, LID-REF-005, LID-REF-006, LID-REF-007, LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-005, LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-009, LID-OPS-010, LID-OPS-011, LID-OPS-012, LID-OPS-013, LID-OPS-014, LID-OPS-015, LID-OPS-016, LID-OPS-017, LID-OPS-018
|
PC-001 |
PRD R9 PRIVATE LAUNCH ACCEPTANCE |
UX DESIGN REVIEW UX SPECIFICATION |
QA-R9-001 |
Owner UAT/Recovery Ceremony/Stabilization | Backlog | R9 | 2027-02-22 to 2027-03-10 | Execute complete owner journeys, full representative recovery, defect stabilization, accessibility, privacy, spend, capacity, and failure scenarios. |
LID-SCP-001, LID-SCP-002, LID-SCP-003, LID-SCP-004, LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-UP-001, LID-UP-002, LID-UP-003, LID-SRC-001, LID-SRC-002, LID-SRC-003, LID-SRC-004, LID-REF-001, LID-REF-002, LID-REF-003, LID-REF-004, LID-REF-005, LID-REF-006, LID-REF-007, LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-005, LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-009, LID-OPS-010, LID-OPS-011, LID-OPS-012, LID-OPS-013, LID-OPS-014, LID-OPS-015, LID-OPS-016, LID-OPS-017, LID-OPS-018
|
PRD-R9-001, REL-R8-001
|
PRD R9 PRIVATE LAUNCH ACCEPTANCE |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R9-001 |
Private Launch Go/No-go & Observation | Backlog | R9 | 2027-03-11 to 2027-03-12 | Record explicit owner authority, severity status, Recovery Ceremony, observation evidence, and go/no-go or rollback decision. |
LID-SCP-001, LID-SCP-002, LID-SCP-003, LID-SCP-004, LID-TG-001, LID-TG-002, LID-TG-003, LID-TG-004, LID-TG-005, LID-TG-006, LID-TG-007, LID-TG-008, LID-TG-009, LID-TG-010, LID-VN-001, LID-VN-002, LID-VN-003, LID-VN-004, LID-VN-005, LID-VN-006, LID-VN-007, LID-UP-001, LID-UP-002, LID-UP-003, LID-SRC-001, LID-SRC-002, LID-SRC-003, LID-SRC-004, LID-REF-001, LID-REF-002, LID-REF-003, LID-REF-004, LID-REF-005, LID-REF-006, LID-REF-007, LID-AIT-001, LID-AIT-002, LID-AIT-003, LID-AIT-004, LID-AIT-005, LID-AIT-006, LID-AIT-007, LID-AIA-001, LID-AIA-002, LID-AIA-003, LID-AIA-004, LID-AIA-005, LID-AIA-006, LID-AIA-007, LID-AIA-008, LID-AIA-009, LID-AIA-010, LID-AIA-011, LID-OPS-001, LID-OPS-002, LID-OPS-003, LID-OPS-004, LID-OPS-005, LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-009, LID-OPS-010, LID-OPS-011, LID-OPS-012, LID-OPS-013, LID-OPS-014, LID-OPS-015, LID-OPS-016, LID-OPS-017, LID-OPS-018
|
QA-R9-001 |
PRD R9 PRIVATE LAUNCH ACCEPTANCE |
UX DESIGN REVIEW UX SPECIFICATION |
PID-R10-001 |
Object-store Transition PID | Done | R10 | No date — trigger required | Define the date-free capacity trigger, user-visible states, outcomes, non-goals, cutover, recovery, rollback, and owner acceptance boundary. |
LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-011, LID-OPS-014, LID-OPS-018
|
PC-001 |
PID R10 OBJECT STORE TRANSITION |
UX DESIGN REVIEW UX SPECIFICATION |
ARCH-R10-001 |
Migration/Inventory/Backup/Rollback Runbook | Backlog | R10 | No date — trigger required | Define complete pagination/inventory, encrypted keys, dual-write/copy, reconciliation, remote backup/restore, reversible pointers, observation, and rollback. |
LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-011, LID-OPS-014, LID-OPS-018
|
PID-R10-001, REL-R9-001
|
PID R10 OBJECT STORE TRANSITION |
UX DESIGN REVIEW UX SPECIFICATION |
REL-R10-001 |
Conditional Transition Acceptance | Backlog | R10 | No date — trigger required | After an approved trigger, execute and verify reversible object-store transition before retiring any local authoritative copy. |
LID-OPS-006, LID-OPS-007, LID-OPS-008, LID-OPS-011, LID-OPS-014, LID-OPS-018
|
ARCH-R10-001 |
PID R10 OBJECT STORE TRANSITION |
UX DESIGN REVIEW UX SPECIFICATION |
The canonical rows remain the scheduling and status authority. Architecture elaborates them as follows without creating new roadmap IDs:
| Canonical tasks | Architecture responsibility and required evidence |
|---|---|
SPK-R0-001, ARCH-R0-001
|
Execute the sanitized host/collision/capacity probes in the shared-host runbook; prove SQLCipher/FTS/queue/backup/restore or approve PostgreSQL fallback; record threat, port, secret, cache and rollback decisions. |
ENG-R0-001, REL-R0-001
|
Build only a synthetic shell; prove isolated Compose scope, Access/callback negative cases, restart, consistent backup, separate-path restore, rollback and co-resident non-regression before any personal memory. |
ARCH-R1-001, ENG-R1-001, REL-R1-001
|
Deliver schema/encryption/source invariants, manual upload and reflection slice, then checksum/backup/restore/rollback evidence for the first approved text fixture. |
ARCH-R2-001, ENG-R2-001, ENG-R2-002, REL-R2-001
|
Deliver the authorized bounded media pipeline and gallery lifecycle; prove idempotency, date/album/duplicate paths, no-photo-to-AI serialization, every media-shape restore and rollback. |
ARCH-R3-001, ENG-R3-001, REL-R3-001
|
Deliver body-only retrieval and atomic redating; prove URL/log/cache privacy, known-result recall, midnight/future cases, two-day invariants, index rebuild, restore and rollback. |
ARCH-R4-001, ENG-R4-001, ENG-R4-002, REL-R4-001
|
Deliver immutable revisions, Corrections, suppressions, Trash and complete export; prove every transition and a clean import/restore of current and historical shapes. |
SPK-R5-001, ARCH-R5-001, ENG-R5-001, REL-R5-001
|
Gate on a synthetic provider contract; deliver prospective-only replay-safe reconciliation; prove no pre-activation import, partial-list fail-closed behavior, suppression, restore and rollback. |
EVAL-R6-001, ARCH-R6-001, ENG-R6-001, REL-R6-001
|
Gate on an approved exact text-model configuration; deliver typed allowlists, durable attempts, protection and cost controls; prove fidelity, forbidden-field absence, restore and rollback. |
EVAL-R7-001, ARCH-R7-001, ENG-R7-001, REL-R7-001
|
Gate on an approved exact artwork configuration; deliver Visual-Brief-only jobs, versions, suppression and cover precedence; prove privacy, safety, budget, restore and rollback. |
ARCH-R8-001, QA-R8-001, REL-R8-001
|
Define measured watermarks and safe degradation; execute fault/security/browser/accessibility/backup/restore suites; accept only from measured evidence. |
QA-R9-001, REL-R9-001
|
Execute owner UAT and Recovery Ceremony, severity disposition, deployment rollback readiness, controlled prospective-live entry and observation; add no new scope. |
PID-R10-001, ARCH-R10-001, REL-R10-001
|
Remain date-free and unstarted until a documented watermark triggers entry; then require inventory, reconciliation, remote-backup source, restore, observed reads and reversible authority switch. |
Change task metadata in the canonical manifest first and re-render downstream views; do not create replacement or architecture-only task IDs. GitHub Project fields must also carry the manifest's exact LID-* IDs, evidence link, and rollback/restore impact. A document, prototype, code branch, passing unit test, uploaded backup or deployment event is not by itself sufficient for implementation or release Done.
- Access JWT signature, issuer, audience, expiry and key rotation validation at origin.
- No public origin listener; no public bucket/object route; separate callback gateway.
- Secure same-origin cookie policy where needed, CSRF, Origin checks, CSP, frame denial, strict transport, referrer and permissions policies.
- Root-restricted service secret files, service-specific grants, rotation without rewriting source history, secret scanning and no secret values in docs/chat/evidence.
- Constrained image decoder, strict decoded format/size/pixel/dimension/animation rules, tmpfs only, crash cleanup, no unencrypted swap.
- SQLCipher and per-object authenticated encryption with versioned envelopes/test vectors/recovery.
- Allowlists for logs and AI serializers. Unique forbidden-field canaries must remain absent from provider bytes, logs, URLs, caches, exports and support evidence.
- Dependency lockfile, immutable digest, SBOM, vulnerability/license review and reproducible build.
- Destructive operations use consequence preview, explicit action, optimistic concurrency, audit and defined restoration/rollback.
Unauthorized browser/user; Access bypass; forged/replayed callback; malformed image; prompt injection; leaked credential; copied disk; running-host compromise; dependency/image compromise; cache/public object leak; disk exhaustion; partial backup/migration; lost key; operator error; other shared-host workload contention.
- Quiesce or transactionally mark the backup boundary.
- On the preferred branch, use the SQLCipher-compatible SQLite Online Backup path to create a verified encrypted snapshot; never
cpthe live DB/WAL pair. If ADR-002 selects PostgreSQL, replace this step with the approved consistentpg_dump/physical-backup contract, including roles, extensions, version compatibility, protected output and clean restore proof. - Emit a manifest of schema/application version, opaque object identities, ciphertext sizes/hashes, counts and relationships.
- Back up the snapshot, encrypted source/files/media/artifacts, manifest and minimal secret-free rebuild configuration.
- Record Restic snapshot result, repository check result, and safe metadata.
- Restore a sample into a fresh temporary environment; open with recovery material; compare invariants/checksums and representative renderable source.
- At scheduled full drill, rebuild the entire disposable stack and measure recovery time against the four-hour acceptance target without calling it an SLA.
Retention: 48 hourly, 30 daily, and 12 monthly snapshots, implemented with a reviewed Restic policy. Retention/prune and repository check do not replace restore testing.
The export job creates JSON, Markdown, browsable HTML, Originals, artwork, revisions, checksums and a manifest, with Trash and suppressions clearly separated. AES-256 ZIP with one-time passphrase is the default product contract. ADR-007 must prove passphrase handling, partial cleanup, restart behavior, expiry, one-time download semantics and internal restore validation before implementation.
Allowed operational fields are: time, opaque internal correlation ID, component, operation class, outcome, duration bucket, count/byte bucket, retry count, safe configuration ID, error class and software/schema version.
Forbidden fields include journal/source/derived text, titles, tags, captions, private filenames, Visual Briefs, prompts/responses, images, thumbnails, EXIF, provider identifiers tied to personal content, Access assertion/email, tokens, object keys, signed URLs, query text, private host identifiers and raw stack variables.
System Health derives from completed durable evidence and distinguishes: unknown, never run, healthy, delayed, blocked, failed and recovery verified. It includes capture, reconciliation, queue, capacity, AI budget/config health, backup/check/restore, export cleanup, schema/app version and Recovery Ceremony state.
Failure isolation rules:
- AI failure never blocks authentic capture, browsing, correction, backup or export.
- Callback failure does not remove already captured sources.
- Worker pressure stops new heavy work before it makes the web read path unsafe.
- Storage emergency rejects new media clearly while preserving non-media operations named by the PRD.
- Search/index repair uses durable events; a stale index is visible, never presented as authoritative completeness.
- No external fallback provider is selected silently.
| Layer | Required proof |
|---|---|
| Domain unit/property/model | Dates, cover, visibility, revisions/Corrections, protection, eligibility, budgets, Trash/suppressions, arbitrary lifecycle sequences |
| Contract | HTTP/callback/provider/export schemas, payload limits, exact errors, unknown-field behavior |
| Persistence/integration | SQLCipher/FTS, migrations, WAL/leases/outbox, online backup, media crypto/store, provider fixtures |
| Application | Capture, redating, reconciliation, generation, lifecycle, export and backup end to end with synthetic data |
| Privacy/security | Auth denial, forged callbacks, canary serialization, log/URL/cache/export/client-bundle scan, malformed image, prompt injection |
| Browser/accessibility | 320 px, 200% text/400% page zoom, keyboard, focus, screen reader semantics, contrast, reduced motion, named browser versions |
| Recovery/migration | Upgrade/compatible rollback, forward-fix, separate-path restore, export round trip, Restic clean rebuild, object-store cutover/rollback |
| Failure/chaos | Kill web/worker mid-state, unknown provider outcome, disk pressure, partial listing, corrupt object, expired Access, provider outage |
| Coexistence | Existing workload baseline/soak, port/resource isolation, heavy-job schedule, worker stop/read-only degradation |
Every release evidence bundle must be synthetic and public-safe. Screenshots, logs, and reports contain no real journal/photo, prompt/response, credentials, private URLs, host identifiers, account details or derived descriptions of private photos.
- Immutable image digest from one commit plus SBOM.
- Reviewed database migration and postcheck.
- Secret-free Compose/Tunnel/systemd templates.
- Static assets and API/worker/hooks from the same version.
- Runbook, rollback/forward-fix decision, expected schema version and evidence manifest.
- Pass the shared-host preflight and restore gate.
- Pull image and validate resolved configuration without changing the running stack.
- Prepare an application-consistent predeploy snapshot and manifest.
- Pause new job claims and use controlled private downtime if parallel old/new stacks exceed measured headroom.
- Run migration precheck, apply the approved forward migration, and start the scoped stack.
- Verify local health, Access, callback negatives, media, search, queue, budget, cache and schema.
- Resume jobs; observe both the app and existing host workload.
- Compatible schema: switch to prior digest, verify, resume.
- Forward-only schema: reviewed forward fix; no improvised destructive downgrade.
- Corruption/incompatibility: freeze writes, restore into a separate location, verify, then cut over.
- Callback regression: disable only that route while preserving receipts/reconciliation.
- AI regression: disable exact configuration; no alternate provider fallback.
- Object-store issue: restore authority to the verified root copy while the migration ledger allows it.
Commands and stop conditions are in HETZNER-SHARED-HOST-RUNBOOK.
A task is ready only when its requirement IDs, release PRD/PID, design link, data classification, state/error behavior, trust boundary, dependencies, migration, observability, capacity, rollback, fixtures and acceptance evidence are explicit.
A task is Done only when the named behavior works in the named environment; risk-appropriate tests pass; migrations/rollback/recovery are proven; System Health/runbook/traceability are updated; no forbidden data is present in evidence; no critical/high finding remains; and required Product, UX, Architecture, QA/Security and owner approvals are recorded.
Code exists, prototype exists, CI passed, backup uploaded, and deployed are each narrower claims and never sufficient by themselves.
The canonical manifest maps all 78 unique LID-* IDs currently present in the global PRD: 71 active requirements are assigned to release tasks and seven deferred requirements remain explicitly outside R0–R10 implementation. This is planning-traceability evidence, not behavior or test evidence.
| Requirement family | Architecture sections | Releases |
|---|---|---|
LID-SCP-* product/date/provenance |
5–7 | R1–R4 |
LID-TG-* Telegram/media |
6–9 | R2–R4 |
LID-VN-* VoiceNotes |
6–9 | R5 |
LID-UP-*, LID-SRC-* upload/revisions/Corrections |
6–9 | R1, R3, R4 |
LID-REF-* reflection/retrieval/accessibility |
7, 9, 14 | R1, R3, R4 |
LID-AIT-* text AI |
6–9, 11–13 | R6 |
LID-AIA-* artwork |
6–9, 11–13 | R7 |
LID-OPS-001–018
|
3–4, 6–8, 11–15 | R0, every release, R8–R10 |
LID-DEF-* deferred boundaries |
1–2, 9 | Remain outside R0–R10 unless a new decision is approved |
Individual requirement rows remain authoritative in the global PRD. Roadmap items created from section 10 should link the release-specific PRD/PID when published while retaining the exact LID-* IDs.
Generated from arunpr614/Life-Reflection@6b8b70b72148 · Canonical content lives in Git · Fictional prototype data only
- Life in Days — Hetzner shared-host runbook
- Life in Days — Phase1 implementation plan
- PID R10 — Conditional Object-Store Transition
- PRD R0 — Shared-Host Private Foundation
- PRD R1 — Manual Journal Archive
- PRD R2 — Telegram Photo Capture
- PRD R3 — Retrieval and Date Integrity
- PRD R4 — Source History and Lifecycle Safety
- PRD R5 — Prospective VoiceNotes Sync
- PRD R6 — Generated Text Reflection
- PRD R7 — Generated Artwork
- PRD R8 — Operational Scale and Resilience
- PRD R9 — Private Launch Acceptance and Stabilization
- Life in Days release documents
- Life in Days Phase 1 — AI agent resource index
- Codex Goal prompt — Phase 1 P0 requirements to private production
- P0 Codex Gold Goal prompt — complete P0 and R0 only
- Phase 1 GitHub Project V2 sync
- Life in Days — Phase 1 Release Plan
- Life in Days — detailed implementation plan
- Life in Days Global PRD
- Life in Days — project tracker
- Life in Days — prototype completeness tracker
- Life in Days — requirements traceability
- Life in Days — UX specification
- Life in Days — AI Artwork Model Evaluation
- Life in Days — AI Text Model Evaluation
- Initial product brief
- Life in Days: Private Media Storage Evaluation
- Requirements under discovery
- Product and integration research
- Project Git provenance
- Life in Days — proposed shared understanding
- Life in Days — Product Council planning-baseline review
- Life in Days Phase 1 — Independent QA Lead charter
- Agent charter — Project Manager
- Agent charter — Senior Product Manager
- Agent charter — Technical Architect
- Agent charter — UI/UX Design Lead
- Life in Days Phase 1 — P0 Owner Action Ledger
- Life in Days Phase 1 — P0 execution context digest
- Life in Days Phase 1 — P0 execution authorization addendum
- Life in Days Phase 1 — P0 execution council charter
- Life in Days Phase 1 — P0 execution decision ledger
- Life in Days Phase 1 — P0 task Definition of Ready
- Life in Days Phase 1 — P0 execution-control review
- P0/R0 Stage 0 control-repair candidate review dossier
- P0/R0 Stage 0 delivery checklist
- P0/R0 Stage 0 rollback and recovery plan
- P0/R0 Stage 0 state contract
- P0/R0 Stage 0 test plan
- PC-001 readiness-control hardening — planning review
- Life in Days — Phase 1 Product Council Decision Record
- Life in Days Phase 1 — source baseline
- Life in Days Phase 1 — Product Council charter
- Life in Days — Product Manager Council Review
- Life in Days — Project Manager Council Review
- Life in Days — Product Council UX Design Review
- Life in Days Product Council
- Life in Days — calendar UI prototype
- Life in Days — calendar UI prototype v2
- Life in Days — unified Calendar and Almanac prototype v3
- Life in Days — Museum Margin Calendar prototype v4
- Life in Days — private Settings and compact privacy prototype v5
- Life in Days — private Search prototype v6
- Life in Days — Calendar contract prototype v7
- Life in Days — Cross-month Almanac prototype v8
- Life in Days — First-use Readiness prototype v9
- Life in Days — Resilient Application Shell prototype v10
- Life in Days calendar UI prototype
- Life in Days calendar UI prototype v2
- Life in Days unified calendar prototype v3
- Life in Days Museum Margin prototype v4
- Life in Days Settings prototype v5
- Life in Days — private Search prototype v6
- Life in Days prototype v7 — Calendar contract completion
- Life in Days prototype v8 — Cross-month Almanac
- Life in Days prototype v9 — First-use Readiness
- Life in Days prototype v10 — Resilient Application Shell
- v6 Product Council contract — Private Search State
- Life in Days prototype v7 — Product Council contract
- Life in Days prototype v8 — Product Council contract
- Life in Days prototype v9 — Product Council contract
- Life in Days prototype v10 — Product Council contract
- Life in Days v2 — design QA
- Life in Days unified prototype v3 — design QA
- Life in Days v4 — design QA
- Life in Days v5 design QA
- Life in Days v5 design QA
- Life in Days v6 — independent design and interaction QA
- Life in Days v7 — independent design and interaction QA
- Life in Days prototype v8 — independent design QA
- Life in Days prototype v9 — independent design QA
- Life in Days prototype v10 — independent design QA
- Life in Days prototype v5 — PRD feature audit
- AI agent operating contract — keep Phase 1 alive
- Contributing to Life in Days
- GitHub Projects Roadmap — current capability research
- Life in Days — Hetzner shared-host deployment spike
- Wayfinder for Life in Days Phase 1 — adoption and GitHub integration report
- Life in Days — GitHub Projects Roadmap design spike
- ARCH-R0-001 — Product Council task readiness
- ARCH-R0-001 — task delivery checklist
- ARCH-R0-001 — task design specification
- ARCH-R0-001 — task product requirements
- ARCH-R0-001 — task QA plan
- ARCH-R0-001 — task technical plan
- ARCH-R1-001 — Product Council task readiness
- ARCH-R1-001 — task delivery checklist
- ARCH-R1-001 — task design specification
- ARCH-R1-001 — task product requirements
- ARCH-R1-001 — task QA plan
- ARCH-R1-001 — task technical plan
- ARCH-R2-001 — Product Council task readiness
- ARCH-R2-001 — task delivery checklist
- ARCH-R2-001 — task design specification
- ARCH-R2-001 — task product requirements
- ARCH-R2-001 — task QA plan
- ARCH-R2-001 — task technical plan
- ARCH-R3-001 — Product Council task readiness
- ARCH-R3-001 — task delivery checklist
- ARCH-R3-001 — task design specification
- ARCH-R3-001 — task product requirements
- ARCH-R3-001 — task QA plan
- ARCH-R3-001 — task technical plan
- ARCH-R4-001 — Product Council task readiness
- ARCH-R4-001 — task delivery checklist
- ARCH-R4-001 — task design specification
- ARCH-R4-001 — task product requirements
- ARCH-R4-001 — task QA plan
- ARCH-R4-001 — task technical plan
- ARCH-R5-001 — Product Council task readiness
- ARCH-R5-001 — task delivery checklist
- ARCH-R5-001 — task design specification
- ARCH-R5-001 — task product requirements
- ARCH-R5-001 — task QA plan
- ARCH-R5-001 — task technical plan
- ARCH-R6-001 — Product Council task readiness
- ARCH-R6-001 — task delivery checklist
- ARCH-R6-001 — task design specification
- ARCH-R6-001 — task product requirements
- ARCH-R6-001 — task QA plan
- ARCH-R6-001 — task technical plan
- ARCH-R7-001 — Product Council task readiness
- ARCH-R7-001 — task delivery checklist
- ARCH-R7-001 — task design specification
- ARCH-R7-001 — task product requirements
- ARCH-R7-001 — task QA plan
- ARCH-R7-001 — task technical plan
- ARCH-R8-001 — Product Council task readiness
- ARCH-R8-001 — task delivery checklist
- ARCH-R8-001 — task design specification
- ARCH-R8-001 — task product requirements
- ARCH-R8-001 — task QA plan
- ARCH-R8-001 — task technical plan
- ARCH-R10-001 — Product Council task readiness
- ARCH-R10-001 — task delivery checklist
- ARCH-R10-001 — task design specification
- ARCH-R10-001 — task product requirements
- ARCH-R10-001 — task QA plan
- ARCH-R10-001 — task technical plan
- AUD-001 — Product Council task readiness
- AUD-001 — task delivery checklist
- AUD-001 — task design specification
- AUD-001 — task product requirements
- AUD-001 — task QA plan
- AUD-001 — task technical plan
- ENG-R0-001 — Product Council task readiness
- ENG-R0-001 — task delivery checklist
- ENG-R0-001 — task design specification
- ENG-R0-001 — task product requirements
- ENG-R0-001 — task QA plan
- ENG-R0-001 — task technical plan
- ENG-R1-001 — Product Council task readiness
- ENG-R1-001 — task delivery checklist
- ENG-R1-001 — task design specification
- ENG-R1-001 — task product requirements
- ENG-R1-001 — task QA plan
- ENG-R1-001 — task technical plan
- ENG-R2-001 — Product Council task readiness
- ENG-R2-001 — task delivery checklist
- ENG-R2-001 — task design specification
- ENG-R2-001 — task product requirements
- ENG-R2-001 — task QA plan
- ENG-R2-001 — task technical plan
- ENG-R2-002 — Product Council task readiness
- ENG-R2-002 — task delivery checklist
- ENG-R2-002 — task design specification
- ENG-R2-002 — task product requirements
- ENG-R2-002 — task QA plan
- ENG-R2-002 — task technical plan
- ENG-R3-001 — Product Council task readiness
- ENG-R3-001 — task delivery checklist
- ENG-R3-001 — task design specification
- ENG-R3-001 — task product requirements
- ENG-R3-001 — task QA plan
- ENG-R3-001 — task technical plan
- ENG-R4-001 — Product Council task readiness
- ENG-R4-001 — task delivery checklist
- ENG-R4-001 — task design specification
- ENG-R4-001 — task product requirements
- ENG-R4-001 — task QA plan
- ENG-R4-001 — task technical plan
- ENG-R4-002 — Product Council task readiness
- ENG-R4-002 — task delivery checklist
- ENG-R4-002 — task design specification
- ENG-R4-002 — task product requirements
- ENG-R4-002 — task QA plan
- ENG-R4-002 — task technical plan
- ENG-R5-001 — Product Council task readiness
- ENG-R5-001 — task delivery checklist
- ENG-R5-001 — task design specification
- ENG-R5-001 — task product requirements
- ENG-R5-001 — task QA plan
- ENG-R5-001 — task technical plan
- ENG-R6-001 — Product Council task readiness
- ENG-R6-001 — task delivery checklist
- ENG-R6-001 — task design specification
- ENG-R6-001 — task product requirements
- ENG-R6-001 — task QA plan
- ENG-R6-001 — task technical plan
- ENG-R7-001 — Product Council task readiness
- ENG-R7-001 — task delivery checklist
- ENG-R7-001 — task design specification
- ENG-R7-001 — task product requirements
- ENG-R7-001 — task QA plan
- ENG-R7-001 — task technical plan
- EVAL-R6-001 — Product Council task readiness
- EVAL-R6-001 — task delivery checklist
- EVAL-R6-001 — task design specification
- EVAL-R6-001 — task product requirements
- EVAL-R6-001 — task QA plan
- EVAL-R6-001 — task technical plan
- EVAL-R7-001 — Product Council task readiness
- EVAL-R7-001 — task delivery checklist
- EVAL-R7-001 — task design specification
- EVAL-R7-001 — task product requirements
- EVAL-R7-001 — task QA plan
- EVAL-R7-001 — task technical plan
- PC-001 — readiness-control hardening Council record
- PC-001 — readiness-control hardening delivery plan
- PC-001 — readiness-control evidence design specification
- PC-001 — readiness-control hardening product requirements
- PC-001 — readiness-control hardening QA plan
- PC-001 — readiness-control hardening technical plan
- PID-R10-001 — Product Council task readiness
- PID-R10-001 — task delivery checklist
- PID-R10-001 — task design specification
- PID-R10-001 — task product requirements
- PID-R10-001 — task QA plan
- PID-R10-001 — task technical plan
- PRD-R0-001 — Product Council task readiness
- PRD-R0-001 — task delivery checklist
- PRD-R0-001 — task design specification
- PRD-R0-001 — task product requirements
- PRD-R0-001 — task QA plan
- PRD-R0-001 — task technical plan
- PRD-R1-001 — Product Council task readiness
- PRD-R1-001 — task delivery checklist
- PRD-R1-001 — task design specification
- PRD-R1-001 — task product requirements
- PRD-R1-001 — task QA plan
- PRD-R1-001 — task technical plan
- PRD-R2-001 — Product Council task readiness
- PRD-R2-001 — task delivery checklist
- PRD-R2-001 — task design specification
- PRD-R2-001 — task product requirements
- PRD-R2-001 — task QA plan
- PRD-R2-001 — task technical plan
- PRD-R3-001 — Product Council task readiness
- PRD-R3-001 — task delivery checklist
- PRD-R3-001 — task design specification
- PRD-R3-001 — task product requirements
- PRD-R3-001 — task QA plan
- PRD-R3-001 — task technical plan
- PRD-R4-001 — Product Council task readiness
- PRD-R4-001 — task delivery checklist
- PRD-R4-001 — task design specification
- PRD-R4-001 — task product requirements
- PRD-R4-001 — task QA plan
- PRD-R4-001 — task technical plan
- PRD-R5-001 — Product Council task readiness
- PRD-R5-001 — task delivery checklist
- PRD-R5-001 — task design specification
- PRD-R5-001 — task product requirements
- PRD-R5-001 — task QA plan
- PRD-R5-001 — task technical plan
- PRD-R6-001 — Product Council task readiness
- PRD-R6-001 — task delivery checklist
- PRD-R6-001 — task design specification
- PRD-R6-001 — task product requirements
- PRD-R6-001 — task QA plan
- PRD-R6-001 — task technical plan
- PRD-R7-001 — Product Council task readiness
- PRD-R7-001 — task delivery checklist
- PRD-R7-001 — task design specification
- PRD-R7-001 — task product requirements
- PRD-R7-001 — task QA plan
- PRD-R7-001 — task technical plan
- PRD-R8-001 — Product Council task readiness
- PRD-R8-001 — task delivery checklist
- PRD-R8-001 — task design specification
- PRD-R8-001 — task product requirements
- PRD-R8-001 — task QA plan
- PRD-R8-001 — task technical plan
- PRD-R9-001 — Product Council task readiness
- PRD-R9-001 — task delivery checklist
- PRD-R9-001 — task design specification
- PRD-R9-001 — task product requirements
- PRD-R9-001 — task QA plan
- PRD-R9-001 — task technical plan
- QA-R8-001 — Product Council task readiness
- QA-R8-001 — task delivery checklist
- QA-R8-001 — task design specification
- QA-R8-001 — task product requirements
- QA-R8-001 — task QA plan
- QA-R8-001 — task technical plan
- QA-R9-001 — Product Council task readiness
- QA-R9-001 — task delivery checklist
- QA-R9-001 — task design specification
- QA-R9-001 — task product requirements
- QA-R9-001 — task QA plan
- QA-R9-001 — task technical plan
- REL-R0-001 — Product Council task readiness
- REL-R0-001 — task delivery checklist
- REL-R0-001 — task design specification
- REL-R0-001 — task product requirements
- REL-R0-001 — task QA plan
- REL-R0-001 — task technical plan
- REL-R1-001 — Product Council task readiness
- REL-R1-001 — task delivery checklist
- REL-R1-001 — task design specification
- REL-R1-001 — task product requirements
- REL-R1-001 — task QA plan
- REL-R1-001 — task technical plan
- REL-R2-001 — Product Council task readiness
- REL-R2-001 — task delivery checklist
- REL-R2-001 — task design specification
- REL-R2-001 — task product requirements
- REL-R2-001 — task QA plan
- REL-R2-001 — task technical plan
- REL-R3-001 — Product Council task readiness
- REL-R3-001 — task delivery checklist
- REL-R3-001 — task design specification
- REL-R3-001 — task product requirements
- REL-R3-001 — task QA plan
- REL-R3-001 — task technical plan
- REL-R4-001 — Product Council task readiness
- REL-R4-001 — task delivery checklist
- REL-R4-001 — task design specification
- REL-R4-001 — task product requirements
- REL-R4-001 — task QA plan
- REL-R4-001 — task technical plan
- REL-R5-001 — Product Council task readiness
- REL-R5-001 — task delivery checklist
- REL-R5-001 — task design specification
- REL-R5-001 — task product requirements
- REL-R5-001 — task QA plan
- REL-R5-001 — task technical plan
- REL-R6-001 — Product Council task readiness
- REL-R6-001 — task delivery checklist
- REL-R6-001 — task design specification
- REL-R6-001 — task product requirements
- REL-R6-001 — task QA plan
- REL-R6-001 — task technical plan
- REL-R7-001 — Product Council task readiness
- REL-R7-001 — task delivery checklist
- REL-R7-001 — task design specification
- REL-R7-001 — task product requirements
- REL-R7-001 — task QA plan
- REL-R7-001 — task technical plan
- REL-R8-001 — Product Council task readiness
- REL-R8-001 — task delivery checklist
- REL-R8-001 — task design specification
- REL-R8-001 — task product requirements
- REL-R8-001 — task QA plan
- REL-R8-001 — task technical plan
- REL-R9-001 — Product Council task readiness
- REL-R9-001 — task delivery checklist
- REL-R9-001 — task design specification
- REL-R9-001 — task product requirements
- REL-R9-001 — task QA plan
- REL-R9-001 — task technical plan
- REL-R10-001 — Product Council task readiness
- REL-R10-001 — task delivery checklist
- REL-R10-001 — task design specification
- REL-R10-001 — task product requirements
- REL-R10-001 — task QA plan
- REL-R10-001 — task technical plan
- SPK-R0-001 — Product Council task readiness
- SPK-R0-001 — task delivery checklist
- SPK-R0-001 — task design specification
- SPK-R0-001 — task product requirements
- SPK-R0-001 — task QA plan
- SPK-R0-001 — task technical plan
- SPK-R5-001 — Product Council task readiness
- SPK-R5-001 — task delivery checklist
- SPK-R5-001 — task design specification
- SPK-R5-001 — task product requirements
- SPK-R5-001 — task QA plan
- SPK-R5-001 — task technical plan
- UX-R0-001 — Product Council task readiness
- UX-R0-001 — task delivery checklist
- UX-R0-001 — task design specification
- UX-R0-001 — task product requirements
- UX-R0-001 — task QA plan
- UX-R0-001 — task technical plan
- UX-R1-001 — Product Council task readiness
- UX-R1-001 — task delivery checklist
- UX-R1-001 — task design specification
- UX-R1-001 — task product requirements
- UX-R1-001 — task QA plan
- UX-R1-001 — task technical plan
- UX-R2-001 — Product Council task readiness
- UX-R2-001 — task delivery checklist
- UX-R2-001 — task design specification
- UX-R2-001 — task product requirements
- UX-R2-001 — task QA plan
- UX-R2-001 — task technical plan
- UX-R3-001 — Product Council task readiness
- UX-R3-001 — task delivery checklist
- UX-R3-001 — task design specification
- UX-R3-001 — task product requirements
- UX-R3-001 — task QA plan
- UX-R3-001 — task technical plan
- UX-R4-001 — Product Council task readiness
- UX-R4-001 — task delivery checklist
- UX-R4-001 — task design specification
- UX-R4-001 — task product requirements
- UX-R4-001 — task QA plan
- UX-R4-001 — task technical plan
- UX-R5-001 — Product Council task readiness
- UX-R5-001 — task delivery checklist
- UX-R5-001 — task design specification
- UX-R5-001 — task product requirements
- UX-R5-001 — task QA plan
- UX-R5-001 — task technical plan
- UX-R6-001 — Product Council task readiness
- UX-R6-001 — task delivery checklist
- UX-R6-001 — task design specification
- UX-R6-001 — task product requirements
- UX-R6-001 — task QA plan
- UX-R6-001 — task technical plan
- UX-R7-001 — Product Council task readiness
- UX-R7-001 — task delivery checklist
- UX-R7-001 — task design specification
- UX-R7-001 — task product requirements
- UX-R7-001 — task QA plan
- UX-R7-001 — task technical plan
- Life in Days — document index
- Life in Days
- Life in Days - Running Log
- Publication provenance
- Pull-Request-Template
- Life in Days
- Security and privacy reporting