-
Notifications
You must be signed in to change notification settings - Fork 0
Docs Project Phase1 Github Project Sync
Canonical source:
docs/project/PHASE1-GITHUB-PROJECT-SYNC.md· Snapshot commit:6b8b70b72148
Status: current R0-only control contract as of 2026-08-16; all R1-R10 tasks/artifacts are frozen and out of scope until a new direct Product Owner activation; the 2026-08-14 publication reconciliation below remains historical evidence
Target: https://github.com/users/arunpr614/projects/1
Canonical source: PHASE1-ROADMAP-MANIFEST.json
Tool: sync_phase1_github.mjs
The P0 control package was merged through PR #64. Clean fetched source, origin/main, and remote main all resolved to merge commit dbd497b496c0bfb982d67a61d6b93ab29d7c59ad; published head a3701d2d3e14d7c87b39f9c30a26a03d098292cf is its ancestor. Five-seat review binds exact candidate 1391bea9abcc899aefcad446324d7c0a2b0199c2; the published head has the same tree except for the append-only running-log and P0 control-review attestation updates.
The live update was deliberately split into least-expansive stages:
- Retain sanitized rollback snapshots for all 58 issues, 12 milestones, Project items, fields, and complete view configurations.
- Run the then-supported
--apply --project-only --skip-viewsbootstrap command to create/populate the required task fields and reconcile all 58 issue-backed items without touching issue content or saved views. That creation-capable mode is historical and is not present in the current tool. - Apply Phase 1 Status and Phase 1 Roadmap separately, verifying between mutations. Both now use
repo:arunpr614/Life-Reflection is:issue label:phase1; Status remains a board grouped by Status and Roadmap remains grouped by Milestone. - Review an issue-only dry run, then run the then-supported
--apply --issues-onlypath without the optional close flag. This updated the 58 existing issue bodies and changed only issue titles #22 and #24 from Timeline to Almanac. The current tool no longer accepts any issue-state mutation flag. - Run
--verifytwice with a 15-second quiescent interval.
The final verified state is:
- 58 unique managed issues and 58 issue-backed Project items;
- 45 issues open and 13 closed, unchanged by the P0 synchronization;
- 40 Backlog, 4 Next, 1 In progress, and 13 Done;
- exactly five expected labels and six task-bound P0 dossier links on every issue;
- all 58 issues assigned across the expected 12 milestones, with R10 still undated;
- 986/986 managed field comparisons passing: 17 fields across 58 tasks;
- 58
Incomplete, zeroReady, and zero tasks/issues withexecutionAllowed=true; and - two 437-byte verifier outputs, captured at 23:30:14 and 23:30:35 IST, each with
passed: trueandmismatchCount: 0; the files are byte-identical at SHA-2564f94bf15d12ef1bfbdb2eda1679ec1ae836d301af8ef74109e5c6e67c1c2ccfc.
The first Status-view apply attempt failed before mutation because seven target fields did not yet exist. The safe recovery was to populate Project fields first, then apply each saved view separately. The reconciliation created or deleted no issue, changed no issue state, changed no Project workflow, and wrote no private content. The package remains a planning/control publication; it is not implementation, deployment, recovery, or production evidence.
The bounded readiness-control implementation followed the reviewed three-stage sequence. Gate A planning merged through PR #66 at 2fc31ec905f4c664b86bebdc511a87390a24a4e9. Five independent seats approved exact Gate B implementation candidate 946a36e2e68796f4c7a0cd2156103fbd1416302d, canonical dossier sha256:1facc3894f745ab695d52d61fb034f6c7c42ae82cc810d0778095d4e28787dd6, and review context 8efcd458442920dc0a9f050c691d677ec2c811e502dfb9555ae0c6c393a198b8 with no vetoes. Audit-only registry commit 6bf7da157220f59cb0fab6e07d0bf783e8b4265b preserved those exact attestations without creating a task approval, and PR #67 merged normally at 0694e7ad548d15132171d7c910ce35d8bc05a4bc with required checks passing.
From a clean non-detached branch tracking exact merged origin/main, the reviewed apply had canonical delta digest sha256:2b34c39c849ced1b92c79d77762fc000ab66ed1884f93592ed4b1a52a36f648e and changed only:
- 58 existing issue bodies; and
- 174 existing Project values:
Execution scope,Evidence, andTask summaryfor each of the 58 issue-backed items.
The apply created no issue or Project item, changed no issue state/status/label/milestone, created or reconfigured no field/view/workflow, and did not rewrite the public issue map. Its built-in post-apply parity passed. Two later, separately invoked --verify reports are byte-identical at SHA-256 2e3cc06bac969760809a12e4aef28d1e3fcb082207139fc5efa0c12b77bbe710; both bind source 0694e7ad548d15132171d7c910ce35d8bc05a4bc, report passed: true, and have mismatchCount: 0. The resulting Project distribution remains 40 Backlog / 4 Next / 1 In progress / 13 Done; issue state remains 45 open / 13 closed.
Wiki publication is separate from issue/Project parity. Wiki commit 25f438faa2adc57d42f62ef139a9f615de57af99 was pushed normally from two byte-identical builds of the same merged source. A fresh clone was clean, contained exactly 456 generated files, and matched the build byte-for-byte. Page-Audit.md has SHA-256 e0799bf18967e9c264547f729de4daf6e8a84d7ca8582d24a9ad0a1304b8a8b7, identifies source 0694e7ad548d15132171d7c910ce35d8bc05a4bc, maps all 450 Markdown sources exactly once, and records zero preserved live-only pages.
This evidence establishes local/public control publication and planning-surface parity only. All 58 dossiers remain Incomplete, all 342 non-PC artifacts remain Draft, all six PC-001 artifacts remain In review, and zero tasks are Ready or execution-authorized. No R0 implementation, private-system read, authentic-media access, credential use, deployment, release, or production operation occurred.
Use the manifest-driven script only to reconcile the existing canonical 58 issues and 58 Project items. Dry-run remains the default. Every real mode first captures exact manifest/issue-map bytes and runs the local structural validator across that guarded snapshot; failure stops live modes before fetch or gh. Only a passing live --apply then fetches canonical origin and requires a clean non-detached branch tracking origin/main with exact HEAD === origin/main. It resolves all 58 issues/items, all 17 managed fields, and both saved views before the first mutation. Any source drift, missing identity, item, field, option, or view fails closed.
The current apply boundary permits only mismatched issue-body and existing Project-field-value updates. Before the first mutation, before every issue or Project target mutation, and after automatic parity, it re-fetches canonical origin/main and requires the checkout, upstream, clean state, manifest bytes, and issue-map bytes to remain bound to the original verified source revision. Immediately before each issue write it also re-reads and compares the complete issue snapshot; immediately before each changed Project item it re-queries and compares all managed field values. Source or target drift aborts before that target is written. It creates no issue/item/field/view/workflow, changes no issue state/status/label/milestone, reconfigures no Project definition, and never rewrites the issue map. Every issue and item still projects the six task-bound P0 artifacts; shared release/global documents remain inputs rather than task approval.
The script verifies, but does not create or update, two saved views by exact name, layout, and filter:
| View | Layout | Verified API configuration |
|---|---|---|
| Phase 1 Status | Board | Exact Phase 1 issue filter only; visible fields and grouping remain UI-managed and are not verified by this tool |
| Phase 1 Roadmap | Roadmap | Exact Phase 1 issue filter only; selected date fields and Milestone grouping remain UI-managed and are not verified by this tool |
The established Status board was historically configured with 18 visible fields: Status, Milestone, Start date, Target date, Priority, Owner role, PRD / PID, Design artifact, Architecture plan, QA plan, Delivery control, Council decision, Task dossier, Artifact readiness, Execution scope, Requirement IDs, Evidence, and Task summary. The current verifier does not query or attest that visible-field configuration. It also does not attest board grouping, roadmap grouping, or selected roadmap date fields. Those UI-managed settings require a separate read-only UI review before any claim about them.
The earlier live apply and independent read-only reconciliation on 2026-08-14 established the following historical baseline. It does not prove current parity after later local changes:
- GitHub CLI 2.94.0 is installed and includes
gh projectfield/item commands. - The credential initially lacked Project access; it was subsequently refreshed outside this spike and now has
project. The smallest direct Project query succeeds. - Sanitized live metadata confirms Project #1 is linked to
arunpr614/Life-Reflectionand had 25 GraphQL-visible fields at the historical baseline. All 11 then-required board fields—including built-in Milestone—existed with the expected types. The current P0 reconciliation has since created/populated every required task-readiness field and verified all 17 managed fields for all 58 tasks. Status has exactly Backlog, Next, In progress, and Done. - The authorized apply created or synchronized 58 issue-backed Phase 1 items and 12 milestones; issue state is 45 open and 13 evidence-backed Done/closed. A later owner-requested cleanup removed the eight initial-spike
[PVA-001]through[PVA-008]drafts and the templateMonthly roadmap,Quarterly roadmap, andBacklogviews. The Project now contains the 58 canonical issues and separately filtered merged pull-request records, with no draft items; only the canonical Phase 1 Status and Phase 1 Roadmap views remain. - At the earlier baseline, every task matched its issue title, body, labels, milestone, state, Project item, and the ten then-managed Project field values: 580 field-value checks with zero mismatches. The P0 reconciliation above supersedes that historical count with 986/986 current managed-field comparisons. Status is exactly 40 Backlog, 4 Next, 1 In progress, and 13 Done. R10 has no milestone due date or task dates.
-
Phase 1 Status and Phase 1 Roadmap were observed with the broad
repo:arunpr614/Life-Reflection is:issuefilter. That historical filter must not be described as Phase 1 containment: the current canonical filter isrepo:arunpr614/Life-Reflection is:issue label:phase1. The board grouping and roadmap date/grouping settings remain UI-managed. - The first saved-view attempt exposed a live compatibility failure: the published user-owned
POST /users/{user_id}/projectsV2/{project_number}/viewsroute returned 404 with API version2026-03-10. The idempotent recovery used the live GraphQL view mutations and succeeded without deleting or duplicating existing content. - Live GraphQL schema introspection shows
createProjectV2View,updateProjectV2View, anddeleteProjectV2View.CreateProjectV2ViewInputaccepts name, layout, project ID, and visible-field configuration.UpdateProjectV2ViewInputadditionally accepts a filter. Neither input exposes grouping or roadmap date-field selection. - The canonical manifest, public issue map, and both workbook copies were regenerated with the 58 live issue URLs. The map intentionally retains no private Project item, field, account, or view node IDs. This evidence validates planning synchronization only; it does not claim application implementation, Hetzner readiness, deployment, or release acceptance.
For read-only inspection only:
gh auth refresh -h github.com -s read:projectFor the actual sync:
gh auth refresh -h github.com -s projectproject is the smallest additional OAuth scope that covers both Project V2 queries and mutations; it subsumes the read-only Project access needed by the preflight. The existing repository authorization is still needed to create or update issues. This runbook assumes the GitHub CLI's current authenticated user token.
The current CLI credential now has project; the refresh commands above remain the minimum-scope recipe for another workstation or replacement credential.
Do not run both refresh commands. Use read:project for a read-only audit or project for an approved apply.
Query Project #1 without printing item content:
gh api graphql \
-f query='query($login:String!,$number:Int!){user(login:$login){projectV2(number:$number){id number title url}}}' \
-f login='arunpr614' \
-F number=1Equivalent current CLI discovery:
gh project view 1 --owner arunpr614 --format json
gh project field-list 1 --owner arunpr614 --limit 100 --format json
gh project item-list 1 --owner arunpr614 --limit 100 --format jsonThe script uses cursor-paginated GraphQL queries with totalCount reconciliation for Project items, fields, and views, so pull-request growth cannot hide items behind a fixed CLI limit and the tool does not rely on the 100-record CLI examples.
| Field | Type | Values/source |
|---|---|---|
| Status | Single select | Backlog, Next, In progress, Done |
| Start date | Date |
task.startDate; cleared for trigger-gated R10 |
| Target date | Date |
task.targetDate; cleared for trigger-gated R10 |
| Priority | Single select | High, Medium, Low |
| PRD / PID | Text | task-bound task.taskPrdUrl; parent release PRD/PID remains linked in the issue |
| Design artifact | Text | task-bound task.taskDesignUrl
|
| Architecture plan | Text | task-bound task.taskArchitectureUrl
|
| QA plan | Text | task-bound task.taskQaUrl
|
| Delivery control | Text | task-bound task.taskDeliveryUrl
|
| Council decision | Text | task-bound task.taskCouncilUrl
|
| Task dossier | Text | newline-separated URLs for all six task-bound artifacts |
| Artifact readiness | Text | task.artifactReadiness |
| Execution scope | Text | two lines: derived `Execution allowed: No |
| Requirement IDs | Text | comma-separated task.requirementIds, or Planning-only
|
| Evidence | Text | exact ordered lines: `Control validation: Passed |
| Owner role | Text | task.ownerRole |
| Task summary | Text | exact order: Roadmap status (Planning Done — historical for Done), task description, Blockers count plus deterministic first-eight code preview, and Next action; the linked issue/dossier retains the complete set |
Every generated Text value is asserted at 1,000 characters or fewer before a dry-run or apply can proceed; the longest current Requirement IDs value is 901 characters. The script does not silently truncate a field value.
When a required field, option, item, or view is absent or type/configuration drifted, current apply fails before mutation. Field/view/workflow creation or reconfiguration requires a separately reviewed P0-OA-002-compatible control change; it is not a recovery behavior of this sync.
The creation commands below document the historical bootstrap API only. The current existing-only apply path never invokes item-add, field-create, view-create/update, label creation, milestone creation, or issue creation.
The historical bootstrap CLI equivalent for adding one of the 58 issues was the following. It is not an authorized current sync operation:
gh project item-add 1 \
--owner arunpr614 \
--url 'https://github.com/arunpr614/Life-Reflection/issues/ISSUE_NUMBER' \
--format jsonThe historical bootstrap implementation used the documented GraphQL mutation below so it could use the issue's node ID directly. The current script contains no item-add mutation:
gh api graphql \
-f query='mutation($projectId:ID!,$contentId:ID!){addProjectV2ItemById(input:{projectId:$projectId,contentId:$contentId}){item{id}}}' \
-f projectId='PROJECT_NODE_ID' \
-f contentId='ISSUE_NODE_ID'At bootstrap time, GitHub documented that adding content already present returned the existing Project item ID instead of making a duplicate and required item-add and item-update to be separate calls. This is provenance, not current behavior claimed or invoked by the tool.
CLI field creation examples:
gh project field-create 1 --owner arunpr614 --name 'Status' --data-type SINGLE_SELECT --single-select-options 'Backlog,Next,In progress,Done' --format json
gh project field-create 1 --owner arunpr614 --name 'Start date' --data-type DATE --format json
gh project field-create 1 --owner arunpr614 --name 'Task summary' --data-type TEXT --format jsonCLI field-value equivalents after resolving the Project, item, field, and option node IDs:
gh project item-edit --project-id PROJECT_NODE_ID --id ITEM_NODE_ID --field-id STATUS_FIELD_NODE_ID --single-select-option-id STATUS_OPTION_ID
gh project item-edit --project-id PROJECT_NODE_ID --id ITEM_NODE_ID --field-id START_FIELD_NODE_ID --date '2026-08-17'
gh project item-edit --project-id PROJECT_NODE_ID --id ITEM_NODE_ID --field-id SUMMARY_FIELD_NODE_ID --text 'TASK_SUMMARY'
gh project item-edit --project-id PROJECT_NODE_ID --id ITEM_NODE_ID --field-id START_FIELD_NODE_ID --clearFor efficiency, the current script batches only mismatched existing updateProjectV2ItemFieldValue or clearProjectV2ItemFieldValue operations for one already-resolved item. It performs no add mutation.
The mutation shapes below preserve historical bootstrap/rollback knowledge. Current apply verifies the two established views and refuses drift; it does not execute these mutations.
At the historical bootstrap, gh project had no saved-view create/update subcommand, so the bootstrap used the then-observed createProjectV2View and updateProjectV2View mutations. Current apply rejects either operation.
The historical creation used this shape; the Status board supplied all 18 field node IDs, including built-in Milestone, in visibleFieldIds, while the Roadmap omitted configuration:
gh api graphql --input - <<'JSON'
{
"query": "mutation($input:CreateProjectV2ViewInput!){createProjectV2View(input:$input){projectV2View{id name layout}}}",
"variables": {
"input": {
"projectId": "PROJECT_NODE_ID",
"name": "Phase 1 Status",
"layout": "BOARD_LAYOUT",
"configuration": {
"visibleFieldIds": [
"STATUS_FIELD_NODE_ID",
"MILESTONE_FIELD_NODE_ID",
"START_FIELD_NODE_ID",
"TARGET_FIELD_NODE_ID",
"PRIORITY_FIELD_NODE_ID",
"OWNER_ROLE_FIELD_NODE_ID",
"PRD_PID_FIELD_NODE_ID",
"DESIGN_FIELD_NODE_ID",
"ARCHITECTURE_FIELD_NODE_ID",
"QA_FIELD_NODE_ID",
"DELIVERY_FIELD_NODE_ID",
"COUNCIL_FIELD_NODE_ID",
"DOSSIER_FIELD_NODE_ID",
"READINESS_FIELD_NODE_ID",
"EXECUTION_SCOPE_FIELD_NODE_ID",
"REQUIREMENTS_FIELD_NODE_ID",
"EVIDENCE_FIELD_NODE_ID",
"SUMMARY_FIELD_NODE_ID"
]
}
}
}
}
JSONAt that bootstrap snapshot, CreateProjectV2ViewInput did not contain filter, so creation was followed by an update. The historical update shape is retained below only as rollback/provenance knowledge:
gh api graphql --input - <<'JSON'
{
"query": "mutation($input:UpdateProjectV2ViewInput!){updateProjectV2View(input:$input){projectV2View{id name layout filter}}}",
"variables": {
"input": {
"viewId": "VIEW_NODE_ID",
"name": "Phase 1 Status",
"layout": "BOARD_LAYOUT",
"filter": "repo:arunpr614/Life-Reflection is:issue label:phase1",
"configuration": {
"visibleFieldIds": ["STATUS_FIELD_NODE_ID", "OTHER_VISIBLE_FIELD_NODE_IDS"]
}
}
}
}
JSONThe historical bootstrap's retry behavior was exact-name based:
- No match meant create the view, then update its filter and configuration.
- One match meant update its name, layout, filter, and board-visible fields in place.
- Multiple exact matches stopped without guessing which view to modify.
- A failure after create but before update could be rerun; the next run found and updated the new view.
None of those creation/update branches exists in the current script. Any missing or drifted view now fails before mutation and requires a separately authorized control change.
The live inputs expose no horizontal/vertical grouping, roadmap date-field selection, zoom, marker, or view-order properties. Those settings remain explicit UI completion steps; the script does not claim them as API-synchronized.
Safe local dry-run; no gh process is started and no files are written:
node tools/sync_phase1_github.mjsBefore constructing any real dry-run, verify, or apply projection, the script executes the structural P0 validator. It guards the captured manifest/issue-map bytes before and after validation and immediately before projection/output; drift raises P0_CONTROL_SNAPSHOT_DRIFT. The six-line Evidence value derives Control validation: Passed|Failed from that result; it never derives validation from readiness or execution permission. A failed dry-run still emits the complete reviewable 58-task fail-closed payload with Control validation: Failed and exits nonzero, while live verify/apply stops before fetch or gh. Missing, blank, malformed, or partial candidate, digest, authority, or reference values use the frozen Not yet recorded copy; complete valid values are preserved. The exact local sync oracle is 56/56: it retains the 30 existing-only/mutation cases, 16 projection-contract cases (including ten fallback-normalization cases), two snapshot-binding cases, four source-main movement boundaries, exact frozen-scope target rejection, and a real subprocess capture proving the greater-than-64-KiB freeze adapter flushes as complete parseable JSON.
The dry-run JSON includes every exact generated issue body and all 17 expected Project field values, so public wording, dossier URLs, hashes, owner actions, scope, and blockers can be reviewed before any mutation. Apply records a canonical delta digest, rechecks exact-main source provenance and each exact target immediately before its bounded mutation, automatically runs full read-only parity after the last mutation, then re-fetches and rechecks the source revision once more; a moved source or nonzero post-apply mismatch is a hard failure.
Direct read-only parity verification first passes the local structural/snapshot gate, then fetches origin and requires the same clean, non-detached, exact-origin/main provenance as apply. It binds its in-memory manifest and issue-map bytes to that verified Git revision, then performs live GitHub reads without mutation or file writes:
node tools/sync_phase1_github.mjs --verifyIt reports the exact source revision and compares all 58 canonical issues, the public issue map, repository title/body/labels/milestone/state, Project membership and all 17 managed field values, R10 date absence, and both saved-view names/layouts/filters. It does not verify saved-view visible fields, grouping, or selected date fields. Pull-request items are counted separately and are not treated as delivery tasks. Any provenance failure, mismatch, or ambiguous task identity is a hard failure.
After the reviewed source is merged, use a clean non-detached exact-main checkout. The apply command records the exact source revision and a digest of the complete preflighted delta, then changes only mismatched existing bodies/values:
git fetch origin main
git switch --create codex/p0-exact-main-reconcile --track origin/main
node tools/sync_phase1_github.mjs --apply
node tools/sync_phase1_github.mjs --verifyThe branch name is not special; it must be non-detached, track origin/main, be clean, and have HEAD === origin/main. A local branch named main is not required. If only existing Project field values should change:
node tools/sync_phase1_github.mjs --apply --project-onlyThat project-only command still performs the complete issue/item/field/view preflight, then skips issue-body writes. It does not create or update views, items, fields, issues, milestones, or the issue map.
If only existing issue bodies should change:
node tools/sync_phase1_github.mjs --apply --issues-onlyLegacy issue-state and view-mutation arguments are rejected as unsupported. Any issue state/status/label/milestone change or Project item/field/view/workflow creation/configuration requires a separately scoped, reviewed tool change and authority. After any apply, run two consecutive quiescent read-only verifier snapshots before calling the roadmap synchronized.
- Before mutation, all 58 managed issues must satisfy canonical title prefix, hidden task marker,
phase1label, public issue-map number/URL/status/state, manifest ID, labels, milestone, and state. All 58 Project items, 17 existing fields/options, and two saved views must also resolve exactly. - It creates, deletes, or reconfigures nothing and never changes issue state/status/labels/milestones. Static drift is a blocker, not an implicit repair authorization.
- It is not externally atomic: a network/API failure can leave a prefix of the preflighted body/value delta synchronized, and GitHub exposes no cross-issue/Project transaction or conditional Project-field version. Per-target source refetch/byte checks and target rechecks narrow but cannot eliminate the final check-to-write micro-race or a remote main change after the last fetch. The source revision, delta digest, automatic post-apply parity, and final source recheck make retry comparison auditable; inspect and verify before retrying or claiming success.
- It fails closed if R10 acquires dates or if any established Project definition/view drifts.
- Review the dry-run first. Apply itself requires a zero-mismatch post-apply parity read. Then run
--verifytwice as separate consecutive quiescent snapshots before calling the roadmap synchronized. - If an incorrect body/value is written, correct the source, merge normally, and rerun from exact main. Destructive removal or definition repair is outside this script.
- Phase 1 Status uses Status as its columns and shows Backlog, Next, In progress, and Done.
- Phase 1 Roadmap groups rows by Milestone.
- Start date and Target date drive the roadmap bars.
- Month zoom is retained; no optional date marker is required for this baseline.
- Both views use the exact
repo:arunpr614/Life-Reflection is:issue label:phase1filter and display exactly the 58 managed tasks; two quiescent read-only verifier snapshots confirm zero drift. - R10 dates remain blank until its measured threshold trigger is approved.
- GitHub, Using the API to manage Projects
- GitHub, OAuth scopes
- GitHub, REST API endpoints for Project views — published endpoint evaluated during the spike; the live user-owned POST returned 404, so the script does not use it
- GitHub CLI,
gh project - GitHub CLI,
gh project field-create - GitHub CLI,
gh project item-add - GitHub CLI,
gh project item-edit
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