The problem
The README's hand-copy env block (README.md ~line 135) is the only place the APPWRITE_PROD_FORECASTS_* variables were ever documented — and it is where the June 2026 failure's phantom forecasts_metadata collection ID came from (someone hand-exported the documented lie; the postmortem found the collection never existed). After the postmortem the block was flagged TODO: verify and the collection ID left as ... — still unresolved today.
The live-verified values (2026-07-19/20 forensics)
export APPWRITE_PROD_FORECASTS_BUCKET_ID=production_forecasts
export APPWRITE_PROD_FORECASTS_BUCKET_NAME="Production Forecasts"
export APPWRITE_PROD_FORECASTS_COLLECTION_ID=production_forecasts
export APPWRITE_PROD_FORECASTS_COLLECTION_NAME="Production Forecasts"
export APPWRITE_METADATA_DATABASE_ID=file_metadata
Receipts: verified against live Appwrite on 2026-07-20 (STORE_ACTIVE, real_collection_present: True, 318 files); encoded as constants with regression tests in views-models tools/liveness/appwrite_store.py:37-39; cross-repo review artifact views-models/reports/expert_reviews/2026-07-19_adr013_wire_contract_review_views_models_seat.md §3.4. This closes ADR-013's §7(b) prerequisite and views-models#230 blocker A (the run env itself was fixed locally 2026-07-20).
Beyond the value fix (the mechanism)
Hand-copy-from-README is the failure mechanism, not just the wrong value: an unverified doc block feeding production env by clipboard. When resolving the TODO, consider having the block point at a canonical .env location instead of inviting the copy (the current de-facto canonical file is views-faoapi/.env) — the broader "config that references external reality must be validated" story is views-models register C-100 (Mitigated via tools/liveness) and lands in the delivery acceptance document.
Filed from the views-models seat during the 2026-07-20 FAO delivery push (maintainer-directed).
The problem
The README's hand-copy env block (
README.md~line 135) is the only place theAPPWRITE_PROD_FORECASTS_*variables were ever documented — and it is where the June 2026 failure's phantomforecasts_metadatacollection ID came from (someone hand-exported the documented lie; the postmortem found the collection never existed). After the postmortem the block was flaggedTODO: verifyand the collection ID left as...— still unresolved today.The live-verified values (2026-07-19/20 forensics)
Receipts: verified against live Appwrite on 2026-07-20 (
STORE_ACTIVE,real_collection_present: True, 318 files); encoded as constants with regression tests in views-modelstools/liveness/appwrite_store.py:37-39; cross-repo review artifactviews-models/reports/expert_reviews/2026-07-19_adr013_wire_contract_review_views_models_seat.md§3.4. This closes ADR-013's §7(b) prerequisite and views-models#230 blocker A (the run env itself was fixed locally 2026-07-20).Beyond the value fix (the mechanism)
Hand-copy-from-README is the failure mechanism, not just the wrong value: an unverified doc block feeding production env by clipboard. When resolving the TODO, consider having the block point at a canonical
.envlocation instead of inviting the copy (the current de-facto canonical file isviews-faoapi/.env) — the broader "config that references external reality must be validated" story is views-models register C-100 (Mitigated viatools/liveness) and lands in the delivery acceptance document.Filed from the views-models seat during the 2026-07-20 FAO delivery push (maintainer-directed).