-
Notifications
You must be signed in to change notification settings - Fork 0
Prototype Council v8
Canonical source:
docs/prototypes/v8/COUNCIL-v8.md· Snapshot commit:e8130729d005
-
Feature:
PVA-003 Cross-month Almanac - Council date: 2026-08-14
-
Baseline: frozen v7 implementation/evidence commit
05975fc; freeze recorddda1b9c -
Branch:
prototype/calendar-ui-v8-cross-month-almanac -
Product Manager:
/root/prototype_product_manager -
UI/UX Designer:
/root/prototype_ui_designer -
Project Manager:
/root/prototype_project_manager - Council disposition: Approved for implementation
-
Gates: Product
A; DesignA; CouncilA; ImplementationIP; independent QA not yet assigned
This contract governs the v8 prototype slice. It represents the Almanac interaction and visual contract with fictional frontend fixtures. It does not prove database ordering or filtering, lifecycle enforcement, pagination, persistence, authentication, media delivery, deployment, accessibility conformance, or production readiness.
V8 turns the approved Monthly Almanac into the product's cross-month chronological browsing experience while preserving its book-like visual direction. Under Council decisions C-02 and C-03, the user-facing name remains Almanac, the Calendar/Almanac switcher remains the browse-mode control, and no third Timeline destination is added.
Authority used:
- Arun's direct approved Calendar/Almanac direction;
- Council decisions C-02 and C-03;
-
LID-REF-002in the PRD; - unsuperseded UX Timeline, navigation, responsive, and accessibility contracts;
- frozen v7 and v6 interaction/privacy invariants.
After independent QA passes, v8 may close audit gap 11 and mark only LID-REF-002 as prototype-represented. LID-REF-004, LID-REF-005, LID-REF-006, and LID-SCP-004 are regression requirements, not v8 closure claims. No implementation claim follows from a prototype pass.
No further decision from Arun is required.
The Product and Design contracts agree on the Almanac name, reverse chronology, semantic month sections and day articles, book-like presentation, collapsible local navigator, deterministic manual pagination, canonical Journal Day destination, progressive disclosure outside image pixels, responsive drawers, and safe accessibility behavior. Council resolves their remaining differences as follows:
| Topic | Product contract | Design contract | Council resolution |
|---|---|---|---|
| Initial loaded window | Exactly the newest/current synthetic month, August 2026 | At least two populated months, August and July |
Use Product: entry loads August only. Cross-month behavior is revealed deliberately through Load earlier days. |
| July fixture | July 2026 is a loaded empty month | July has at least three live days | Use Product: July is known empty. First load advances the boundary through July and reports zero days without jumping the reader. |
| Pagination unit | Exactly one immediately preceding calendar month per action, including an empty month | One earlier month/batch; first earlier fixture June | Use Product: first load July, second June, third May. No batching around empty months. |
| Fixture days | August six; June 27/9; May 31/14; hidden June 20 and May 18 | July populated; June three; May hidden/Trash | Use Product: exact fixture inventory in Section 11. |
| Load-success focus | Retain focus on the same Load control and compensate viewport offset | Replace old control with a focusable boundary-status anchor |
Use Product: keep the same logical Load control focused with preventScroll/viewport compensation; announce success through a polite status. |
| Jump label | Jump to month and year |
Jump to month |
Use Product: exact label Jump to month and year. |
| Jump commit | Immediate month commit resets the window to the selected month | Loaded target focuses; unloaded target loads a containing slice |
Use Product: every selection resets to exactly one target month; month=through=target. |
| Chapter CTA | Read full Journal Day |
Open full Journal Day |
Use Product: exact label Read full Journal Day. |
| Index contents | Loaded range, month groups, and live-day links | Month-level Loaded volumes only | Use Product content in Design hierarchy: month groups contain safe live-day links; no mini-calendar. |
| URL model |
month newest, through oldest, optional date anchor |
Safe optional month/year anchor | Use Product: deterministic boundary model in Section 8. |
Design governs hierarchy, editorial rhythm, media presentation, external provenance, truncation, responsive transformation, focus styling, and accessibility details wherever these do not conflict with the explicit Product acceptance above.
- The top browse switcher remains
Calendar | Almanac; Search remains a sibling; Management remains under Settings/More. - Almanac is one reverse-chronological reading surface across a loaded range, not a set of disconnected month pages, a Calendar grid, or a social feed.
- The page has exactly one H1,
Almanac, beneath eyebrowCHRONOLOGICAL ALMANACand leadYour Journal Days, arranged from newest to oldest. - A truth line reads
Live Journal Days only · Asia/Kolkata. - Loaded non-empty months render as semantic sections with H2 month/year headings, newest month first. Journal Days render as articles with H3 titles and descend by fixed
Asia/KolkataJournal Date inside each month. - Empty months crossed by pagination do not create false month-volume headings in the main reading flow. Their loaded boundary remains represented through safe range/status/index metadata. When an empty month is the sole jump target, the main surface shows
No journaled days in this month. - The term
Timelinedoes not appear as a competing navigation item. User-facing copy avoidsfeed,entries,memories for you, missing/gap/streak language, and social-engagement language.
- At wide widths, a 300–340 px collapsible
<aside aria-label="Almanac index">accompanies a reading column. - Heading:
Browse the Almanac; action:Jump to month and year; range group:Loaded volumes. - Replace the inherited duplicate month grid with a cross-month index. Each loaded month group shows month/year and derived live-day count. Each non-empty month contains live-day links with date, concise title, and safe cover indicator only—never caption, summary, source-journal excerpt, Trash/history content, or private media metadata.
- The current viewport chapter link has
aria-current="location"plus non-color shape/weight treatment. Updating the active item as the reader scrolls must not create URL/history churn. - The index may display a loaded empty boundary month as
July 2026 · 0 Journal Days, with no day links. It must not fabricate a main reading chapter. - Expanded action:
Hide index; collapsed control:Show indexplus the current visible month. Collapsing/expanding preserves loaded boundaries, selection, reading scroll, and logical focus. A versioned local preference may store only expanded/collapsed state. -
Journal Dates use Asia/Kolkataand the existing Upload Journal entry remain at the foot.
- At 960 px and below, replace the rail with a sticky
Browse Almanaccontrol plus visible current month. - It opens a focus-trapped
Almanac indexsheet: up to approximately 380 px wide at tablet, full-screen at phone, above bottom-navigation safe areas. - The sheet mirrors Jump, loaded month groups and live-day links, Upload, and Close. Selecting a link closes the sheet, focuses the exact target month/day destination, and preserves boundaries.
- Close and Escape restore the invoking Browse control.
Every visible Journal Day article contains:
- full Journal Date;
- generated title when current/available, without treating it as source truth;
- photo/journal counts;
- factual generated summary preview clamped to approximately three lines;
- at most three selected tags;
- the shared Calendar Cover using the same real-photo precedence;
- exact CTA
Read full Journal Day.
Rules:
- Do not render raw source-journal text or a collapsible source transcript in Almanac. Authentic sources remain in the canonical full Journal Day.
- Use one dominant stable 4:5 Calendar Cover. Additional media may be indicated outside pixels with a quiet
+N photoscue rather than an equal competing image. - A real Daily Photo is always the cover when present. AI artwork may cover only a day without real photos. A journal-only day receives a neutral no-image placard. Failed media receives a truthful unavailable fallback without hiding the day.
- Provenance and captions are external text at least 13 px, never an absolute/gradient image overlay:
Calendar Cover · Telegram photo,Calendar Cover · AI artwork,No cover image · Journal only, orCalendar Cover unavailable. - Derived attention appears outside media as
Review update. AI or media failure cannot hide authentic day identity or prevent navigation. - Real-photo alternative text uses only approved local/synthetic fixture text, never AI description. Artwork alternative text identifies it as AI artwork. No-image state is ordinary text, not decorative image alt.
-
Read full Journal Dayaccessible name includes the date.
- Include only Journal Days with at least one live Source Item.
- Sort and group by fixed
Asia/KolkataJournal Date, newest month/day first. - Exclude empty shells containing only historic or generated artifacts, Trash-only days, suppression-only days, unresolved Needs Date Review items, and invalid future-dated sources.
- A day containing both live and Trashed sources appears using only live/current source counts and presentation. Trash does not appear or count in Almanac.
- Hidden/Trash/history-only fixture sentinel strings must be absent from visible text, DOM text, accessible names, counts, jump metadata, and index links.
- This filtering is simulated fixture behavior; it is not evidence of backend lifecycle enforcement.
Whole-archive empty state:
- H1
Almanac; - copy
No live Journal Days are available to read.; - actions
View CalendarandUpload journal; - no first-use/readiness, failure, or blame implication.
- Initial entry loads exactly August 2026, the newest/current synthetic month.
-
Load earlier daysis the only pagination trigger. No infinite loading, scroll observer, auto-load, or focus-hostile endless stream is permitted. - Each activation appends exactly one immediately preceding calendar month and updates only the oldest
throughboundary. Existing months/articles remain in the same order and are not recreated, removed, or reordered. - First activation loads empty July and adds zero days. Second loads June. Third loads May. Reaching May shows
Beginning of this prototype archive; this is fixture scope, not a product retention/archive limit.
- Loading is scoped to the pagination region: disable the control, label it
Loading earlier days, setaria-busyonly on that region, and announceLoading the next earlier volume. - Before append, record the Load control and viewport offset. After success, keep the same logical Load control focused with
preventScrolland compensate the viewport so the reader does not jump. New content follows the existing reading flow. - Success announces, for example,
July 2026 loaded. No Journal Days.orJune 2026 loaded. 2 Journal Days added.without announcing appended prose. - Preserve all prior loaded content, selection, expanded state, and index state.
- End state:
Beginning of this prototype archiveandNo earlier live Journal Days are available.The Load action is removed or disabled honestly. - A component-local simulated failure says
Earlier Journal Days could not be loaded. What is already shown is unchanged.withRetry loading earlier days. Focus remains on Retry; retry never duplicates a month/day. Complete application failure handling remains v10. - Browser Back/Forward across Load actions restores the exact safe boundary and in-memory scroll/focus context without duplicate insertion.
Allowed Almanac state:
view=almanac
month=YYYY-MM newest loaded boundary
through=YYYY-MM oldest loaded boundary; omitted when equal to month
date=YYYY-MM-DD optional selected chapter anchor
screen=day only for canonical full Journal Day
rail=collapsed only for collapsed wide index
-
throughmust be no later thanmonth. Invalid or inverted ranges reset throughreplaceStateto one safe valid month. - The v7 representational year boundary
0001–9999remains a synthetic URL/chooser constraint, not a product archive-year cap. - No loaded arrays, title, summary, tag, caption, source text, query, scroll, focus selector, or other private state enters URL/history.
- Browser title remains
Life in Days. - Reload reconstructs the safe range and optional anchor. Exact scroll after reload is not promised beyond normal browser restoration.
- Load earlier changes only
throughand creates one history entry for a changed boundary. - Jump resets the range to exactly the selected target month:
month=target,through=target/omitted, then focuses the newest live day or empty-month note. - Index or Calendar arrival may set safe
dateand focus/scroll the chapter without opening full-day detail. Later chapter selection replaces the date in the same browse-history entry rather than generating scroll-history noise. - A valid deep-link date outside the stated range expands the range minimally between the newest boundary and the date's month, then canonicalizes.
- Invalid, hidden, Trash-only, or history-only
dateis removed without exposing or targeting it; the valid range remains.
- Every
Read full Journal Dayopens the exact inherited full-day renderer atview=almanac&month=<newest>&through=<oldest>&date=<day>&screen=day. - Full-day actions remain identical to Calendar. Adjacent populated-day navigation may cross a month boundary.
- Before opening, save only safe in-memory origin state: boundaries, scroll, invoking day/control, index state, and logical focus. Never serialize private content or scroll position.
- Browser Back and
Back to Almanacrestore the exact loaded range, selection, index state, reading scroll, and focus to the invoking Read control—even after adjacent-day navigation. - A direct full-day deep link without an origin returns to the normal safe Calendar/default destination rather than inventing Almanac history.
- Almanac → Calendar → Almanac restores range, scroll, selection, index state, and logical focus.
- Search return to Almanac preserves the range and anchors the selected result.
- Theme, index, resize, and reduced-motion re-render preserve the same safe browsing context.
- Trigger:
Jump to month and year. - Dialog/sheet title:
Jump to a month in the Almanac. - Support:
Moves to the first live Journal Day in that month. Journal Dates use Asia/Kolkata. - Reuse the v7 four-digit year row with
Previous year, visible year, andNext year, plus exactly 12 textualJan–Decbuttons. Year navigation changes draft year only. - Opening focuses the viewed target. Buttons expose selected/current state and safe full-month accessible names. No thumbnails, day titles, private visuals/text, year mosaic, On This Day, or import controls.
- Selecting a month commits immediately, closes, resets the window to that target only, clears an anchor outside it, and focuses the newest visible Journal Day.
- Known empty July/September targets focus the empty-month note and announce
No journaled days in this month.They never redirect to another month. - Cancel, Escape, and backdrop preserve the Almanac and return focus to the trigger.
- Future months may be browsed but contain no future-admitted Journal Days.
- The v7
0001–9999prototype-representation clarification applies at year edges, with disabled year controls and no product-year-cap implication.
-
>=1280: 300–340 px index; reading canvas approximately 1050–1120 px; prose remains 60–72ch even when index collapses. -
961–1279: 280–310 px index; metadata may remain two-column; media and placard may stack. - At exactly
960and through701: full-width reading, sticky compact Browse control, drawer up to 380 px, single-column cover. -
390/320: 14–16 px gutters, one column, stable 4:5 cover, external provenance, at most three tags, full-width 44 px primary/load controls, full-screen index sheet above safe-area-aware bottom navigation, and no page horizontal scroll. - At 200% text zoom, retain every action and essential text at least 13 px. Capture compact 400% observation; formal 400%/browser/accessibility closure remains v35.
- Semantic
<main>, month<section aria-labelledby>, day<article>, H1/H2/H3 hierarchy; no Calendar grid or social-feed semantics. - Index navigation has its own labels; current location uses
aria-current="location"; focus and state do not rely on color alone. - Retain v7 focus-visible contrast target and minimum target sizes. Dialog/drawer traps focus and always restores it. Programmatic month/chapter destinations may use
tabindex="-1". - Load status uses one polite live region. Do not announce inserted summaries or every index update.
- No parallax, page-turn, image zoom, autoplay, or insertion animation. Smooth jump scrolling is allowed only without reduced motion. Drawer/index transitions stay at or below 200 ms; reduced-motion path is immediate without translation.
All content is fictional.
| Month | Visible live fixtures | Boundary purpose |
|---|---|---|
| August 2026 | 13 real + attention; 11 AI art; 8 journal-only; 6 conflict; 4 image unavailable; 2 sparse journal | Initial six-day month, order 13, 11, 8, 6, 4, 2
|
| July 2026 | No live Journal Days | First Load earlier adds zero days; sole jump target shows quiet empty month |
| June 2026 | 27 real photo; 9 no image | Second Load earlier; order 27, 9
|
| May 2026 | 31 AI art; 14 real photo | Third Load earlier; oldest prototype boundary |
| Hidden sentinels | 20 June Trash-only; 18 May history-only | Must never render, count, appear in DOM/accessibility, index, jump, or targeting |
| September 2026 | Future known-empty month | Future browse without future Source Items |
V8 does not include or claim:
- a Timeline tab or third browse mode;
- infinite/automatic loading;
- year mosaic, media wall, map, On This Day, raw journal feed, or social interactions;
- v9 first-use readiness, v10 global state shell, v18 History, v19 Trash, v21 full Search, or v35 final accessibility evidence;
- historic automatic import, sharing/public links, coaching, reminders, streaks, semantic/AI search, offline mode, blank browser composition, or web photo upload;
- backend filtering/order/pagination, lifecycle enforcement, persistence, authentication, media/storage behavior, production accessibility, deployment, or production privacy evidence.
V8 must regress:
- frozen v7 Calendar chooser, external Today/selected/focus states, compact paper-day rule, safe year representation, C-01 clean-image tiles, and real-cover precedence;
- frozen v6 Search privacy and no
q/private URL state; - C-03 switcher, Museum Margin, canonical full day, gallery, Upload, generated reflection, Settings, themes,
Asia/Kolkata,en-IN, exact prospective tag, all deferred-scope exclusions, and no provider/production claim; - immutability of all v7 and earlier versioned artifacts.
A fresh QA agent must verify at minimum:
- default August contains one month group and ordered days
13, 11, 8, 6, 4, 2; - semantic H1/H2/H3/section/article hierarchy, complete chapter anatomy, clamped generated previews, and no raw source journal;
- correct real/art/no-image/unavailable cover variants, real-cover precedence, external provenance, and zero text overlays on pixels;
- wide index month/day hierarchy, active chapter tracking without history churn, and collapse/expand without scroll/focus loss;
- first Load earlier reaches empty July, adds zero days, preserves viewport/focus/content, updates only
through, and does not auto-load June; - second Load adds June once in order
27, 9, with hidden 20 June absent; Back/Forward restores the boundary without duplicates; - third Load adds May in order
31, 14, hidden 18 May absent, and reaches the honest prototype beginning; - component-local pagination failure and Retry preserve loaded content and create no duplicates;
- Jump cancel, immediate June commit, July empty result, September future-empty result, and Today reset to August;
- valid chapter anchor replacement, valid out-of-range deep-link minimal expansion, and invalid/inverted/hidden state sanitization;
- Read June 27 opens the canonical full Journal Day and Back restores exact range, scroll, index state, and invoking-control focus; adjacent cross-month navigation does not break return;
- Almanac/Calendar/Search transitions, theme, rail, resize, and reduced motion preserve safe context;
- 1280, 960, 700, 390, and 320 layouts; compact drawer; keyboard/focus/live-region behavior; light/dark; 200% text and compact 400% observation; no overflow;
- hidden/Trash sentinels absent from visible DOM/accessibility/counts/index/jump; safe URL/title/storage; console and syntax clean; frozen v6/v7 regression/immutability.
Pass means a user can browse newest-to-oldest across multiple months, deliberately load one deterministic earlier calendar month at a time, jump to a target month, enter the same full Journal Day, and return to the exact reading context. Only live/current fixtures appear, real-photo cover precedence holds, and provenance remains outside pixels. After a pass, the allowed conclusion is only: LID-REF-002 is prototype-represented; implementation remains unverified.
Issued: 2026-08-14
Disposition: Approved. This clarification supersedes only the unbounded materialization implications of Sections 7.1, 8.1, 8.2, and 9 for the fictional v8 dataset. It does not change the product's archive semantics or create a product archive-year cap.
The v8 prototype has declared synthetic data only from May through August 2026, plus known-empty September 2026. It must not materialize an arbitrary number of empty month sections merely because a syntactically valid four-digit URL or chooser state names a distant month.
Exact normalization rules:
-
Declared browse-range floor. For ordinary Almanac range state whose newest boundary is within the declared 2026 fixture window, any valid
throughearlier than2026-05is clamped throughreplaceStateto2026-05. No month before May 2026 is rendered, indexed, counted, loaded, or described as part of the prototype archive. -
Declared beginning. May 2026 remains
Beginning of this prototype archive. This wording describes the fictional evidence dataset only; it is not a retention rule, ingestion rule, product archive limit, or claim that earlier real Journal Dates are unsupported. -
Valid live-date anchor outside the current safe window. If a valid live Journal Day from a future expanded fixture or an inherited safe result is targeted and its month is outside the current loaded/safe materialization range, normalize the Almanac window to exactly that live date's month:
month=<date month>, omitthroughbecause it equalsmonth, preserve safedate=<live date>, and focus that chapter. Do not enumerate or render intervening empty months. -
No live target. A syntactically valid distant
datethat does not identify a live fictional Journal Day is removed. The nearest existing valid Almanac boundary remains; the prototype never invents a day or expands a range for it. - Jump to a distant month. Jump continues to reset the window to exactly the chosen target month, without materializing intervening months. If that target has no declared live fixtures, render the quiet sole-month empty state. Pagination from an out-of-fixture target must not imply that thousands of unknown months are known empty; return to the declared newest days or another explicit jump before using the fixed May-boundary evidence sequence.
-
Inverted and mixed-range state. After applying a valid live-date normalization,
throughcannot remain from the previous window. Otherwisethrough > monthstill resets to a single valid month, and an in-fixture range older than May still clamps to May. -
Bounded work invariant. No single route parse, Back/Forward transition, Search return, Calendar arrival, Jump, or detail return may create work proportional to the calendar distance from
0001or9999. For the current dataset, ordinary loaded-range materialization is bounded to May–August 2026. - Privacy and evidence boundary. Normalization uses only safe date keys and never puts title, query, source text, caption, scroll position, or focus selector in the URL. These rules demonstrate bounded synthetic UI behavior only; they do not select or verify the production pagination/data-access architecture.
Required QA additions:
-
view=almanac&month=2026-08&through=0001-01canonicalizes tothrough=2026-05without rendering pre-May month nodes; - a distant empty jump, such as year
9999, creates exactly one quiet empty target month and no intervening nodes; - returning from a synthetic valid live-date result outside the current window creates a one-month window anchored to that date rather than an expanded millennia-long range;
- an equally distant non-live date is removed without range expansion;
- Back/Forward, direct reload, and full-day return preserve the normalized bounded window;
- no copy implies that May 2026 is the product's earliest supported date.
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