AppStore2031

process

Decision ledger

A public AppStore2031 research record. The readable view is generated without changing the preserved source.

Open the exact Markdown source

Research boundary: Observed evidence, inference, scenario and fictional forecast claims retain the labels used in the source record.

Decision ledger

D-001 — Evergreen identity

  • Decision: Use App Store Forecast as the working identity and appstoreforecast as the repository name; keep 2031 as an edition target.
  • Reason: A year in the brand would prevent later forecast editions.
  • Rejected: Chart 31, AppStore31.
  • Status: Superseded for the public identity by D-015. The repository name is retained as an internal compatibility path.

D-002 — Inventory depth

  • Decision: Exactly ten ranked apps per research-derived category.
  • Reason: Fewer, better-supported forecasts are more educational and easier to refresh than twenty thin entries.
  • Rejected: Top 20 per category.

D-003 — Storage

  • Decision: Use version-controlled static data for the first release.
  • Reason: 230 forecast records plus sources and relationships do not justify a database; static editions improve inspectability and history.
  • Revisit when: Public submissions, accounts, voting, saved forecasts, or a multi-author editorial workflow is authorised.

D-004 — Geographic evidence

  • Decision: Use a transparent global composite with explicit regional lenses.
  • Reason: Consumer-app futures will be shaped by different policy, energy, hardware, payment, cultural, and platform conditions across leading markets.
  • Rejected: Treating UK policy or one national storefront as globally representative.

D-005 — Public process

  • Decision: Publish material sources considered, including rejected and contradictory research, plus prompts, concise critic verdicts, limitations, and edition diffs.
  • Reason: The research process is a first-class educational output and the primary basis for AI credibility.

D-006 — Forecast surface

  • Decision: Forecast Top Free iPhone category charts averaged across July 2031.
  • Reason: Free, paid and revenue charts measure different things; public Apple surfaces do not expose a defensible global grossing chart or download totals.
  • Rejected: Mixing free, paid and grossing rankings; one-day 31 July snapshot.

D-007 — Global display

  • Decision: Use a 12-lens coverage-balanced consensus built from 27 named storefronts, with countries equal inside each lens and lenses equal globally.
  • Reason: This is transparent and does not pretend to know global downloads or revenue. Regional results remain inspectable.
  • Rejected: Calling the result an Apple global chart; silently weighting by market size without dated installed-base evidence.

D-008 — Research-derived taxonomy

  • Decision: Publish 23 primary forecast categories and five watchlist candidates; keep Kids as a special surface.
  • Reason: The 0.50 cross-market coverage gate, distinct-discovery test and ten-archetype capacity test produced that result after every current category was accounted for.
  • Rejected: Forcing the early estimate of about 15 categories.

D-009 — Backtest claim

  • Decision: Publish improvement not demonstrated.
  • Reason: The available 2021 and 2026 chart record does not satisfy the preregistered monthly/daily data gate, despite a favourable exploratory proxy.
  • Rejected: Presenting the proxy result as validated forecasting skill.

D-010 — Distribution boundary

  • Decision: Build and prove the local static site, but do not deploy it or register/configure appstoreforecast.com in this scope.
  • Reason: The Gauntlet approval covered research and build, not public release or an external domain action.

D-011 — Probability-blind category calibration

  • Decision: Author all 27 storefront category-existence probabilities from packets that omit previous probabilities, coverage scores, ranks and model output; integrate only after all independent records pass.
  • Reason: Explanations generated around already selected values are not independent forecasts and create false confidence.
  • Empty-evidence rule: Keep the citation array empty and make the research gap explicit; do not borrow evidence from another country.
  • Refresh rule: Preserve prior calibrations only under a comparison-baseline directory and require a blank active calibration set for each new edition.

D-012 — Country-level conditional app fit

  • Decision: Keep twelve broad app-fit priors, then author a separate zero-sum ten-app adjustment vector for each storefront inside every multi-country lens before generated ranks are visible.
  • Reason: Country-specific category existence alone cannot support a claim that conditional app ordering reflects separate evidence for Singapore and Indonesia, Brazil and Mexico, UAE and Saudi Arabia, or South Africa, Nigeria and Kenya.
  • Bounds: Adjustments use a 0.025 grid from -0.15 to +0.15 and sum to zero per category/storefront. Empty local evidence forces all zeros and an explicit gap; it never licenses borrowing another country's evidence.
  • Refresh rule: Preserve previous app/storefront records as comparison-only, start a blank active authoring directory and reconcile every changed numeric app adjustment in the refresh delta.

D-013 — Cloudflare Worker delivery convention

  • Decision: Match the existing project convention with npm run dev for a local Cloudflare Worker and npm run deploy for a guarded production upload.
  • Reason: The forecast is a static, data-backed SPA, so Cloudflare Workers Static Assets is sufficient; adding a database or request-handling Worker would create infrastructure without a current product need.
  • Guardrail: Production deployment runs data validation, type checking and the test suite before Wrangler can upload assets. npm run deploy:dry-run exercises the same gate without publishing.
  • Boundary: This decision adds delivery wiring only. No deployment, custom domain route, edition freeze or publication action was performed.

D-014 — Product opportunity explanations are separate from rank inputs

  • Status: Superseded for the active v2 forecast by D-021. Retained here as the historical rule used by the withdrawn continuity draft.

  • Decision: Store the plain-English product, demand and build explanation in a companion product-stories/<category-id>.json file and join it only after the joint model has computed ranks.

  • Reason: Better editorial explanation must not silently alter numeric inputs, joint-model hashes or rank order. The separation also makes future refresh changes inspectable.

  • Reader rule: Write for a bright 16-year-old, use concrete benefits and short sentences, and translate technical terms when they cannot be avoided.

  • Evidence rule: Inline sources support current premises, never the fictional app or rank. Story sources must already belong to that app's evidence case.

  • Historic technology rule: The withdrawn draft gave every app an explicit digital-currency and blockchain verdict. V2 no longer treats one named technology as a universal checklist item.

D-015 — AppStore2031 public identity

  • Decision: Rename the public project AppStore2031 and use the supplied faceted 31 artwork in the header, footer and browser icon.
  • Reason: The name tells a first-time visitor what year is being forecast, and the distinctive mark makes the educational project easier to remember.
  • Refresh rule: A later forecast is a new immutable edition. It must not silently move or overwrite the dated 2031 claims.
  • Compatibility boundary: Keep the existing appstoreforecast repository and refresh-skill paths plus the separately held appstoreforecast.com domain reference. These are internal addresses, not the current public name.
  • Release boundary: Public name/trademark clearance, deployment and domain attachment remain separate authorised actions.

D-016 — Research records have readable and source views

  • Decision: Render preserved Markdown as semantic headings, prose, lists, links, callouts, code and responsive tables by default; retain a one-click exact-source view in the same reader.
  • Reason: The research is a primary educational product, not a developer attachment. A raw monospace dump makes long methods and evidence tables much harder to understand, while removing source access would weaken scrutiny.
  • Safety boundary: Parse Markdown into React elements, support the table and task-list features already used by the records, and do not execute raw HTML.
  • Design rule: Use the existing paper, ink and signal-blue system. Major headings inherit the evidence rail's blue node rather than introducing a separate documentation theme.
  • Data boundary: The renderer changes presentation only. It does not rewrite the preserved Markdown, research claims, ranks, probabilities or evidence.

D-017 — Withdraw the continuity-biased first forecast

  • Decision: Treat edition 2031-2026-07-31 as a superseded research record and remove its categories, listings, ranks and method claims from the active storefront before any freeze, deployment or publication.
  • Reason: A dated prior-art review found that representative central jobs were already substantially delivered by the evidence cutoff. The scoring and category process rewarded present-day reference classes and did not require five-year temporal distance.
  • Preservation rule: Keep the evidence and failed forecast inspectable as an audit record. Do not delete evidence or rewrite the historical reasoning to make it appear successful.
  • Carry-over rule: No old category, listing, score or rank enters method v2 by default.

D-018 — Generate from future worlds before prior-art comparison

  • Decision: Horizon scanning, cross-impact worlds, changed actors, marketplace ontology, categories and product candidates are authored without access to current-product comparisons or the previous inventory.
  • Reason: Looking at current products during generation anchors the result to incremental evolution. Current products are needed later to reject concepts that are already delivered, not to inspire the future catalogue.
  • Neutrality rule: No named company, product or user-suggested technology is hard-coded into the method. The comparison set is rebuilt dynamically at each evidence cutoff.

D-019 — Disable and replace the refresh skill

  • Decision: Disable both matching copies of app-store-forecast-refresh until a method-v2 workflow passes the replacement Gauntlet.
  • Reason: The v1 skill cloned the previous taxonomy and inputs, restricted research primarily to the delta window, preserved unchanged forecasts and fixed the old model version. Those rules would reproduce the anchoring.
  • Replacement rule: A refresh must rederive worlds, needs, categories and candidates independently, run a new prior-art rejection audit, then compare completed editions only after generation.

D-020 — Hold Stage D until lived experience is represented

  • Decision: Archive the incomplete Stage D packet and all three proposals as provenance-only evidence. Publish no canonical taxonomy until independently researched lived-experience needs are combined with the 114 valid institutional needs in a new hash-bound union packet.
  • Reason: Two independent comparative critics found that the input produced a procurement and commissioned-service catalogue rather than the full range of products ordinary people might browse in a successor app store.
  • Preservation rule: Keep the incomplete artifacts and their exact hashes, but prohibit their use for category selection, merging, seeding or ranking.
  • Carry-forward rule: The institutional need set and world basis remain valid; this is an input-completeness correction, not a rewrite of Stages A–C.

D-021 — Explain causal dependencies, not fashionable technologies

  • Decision: Every v2 candidate must identify the technical, institutional, legal and physical dependencies that perform a necessary job in its product. Digital currencies, cryptography, blockchain, agent identity, advanced AI or any other named technology appears only when its causal job, readiness, simpler alternative and missing-dependency failure are stated.
  • Reason: A fixed technology checklist would hard-code the researcher's ideas into every product and make the catalogue look futuristic without proving why the technology is needed.
  • Reader rule: Explain the dependency so a thoughtful 16-year-old can understand what it enables and what breaks without it.

D-022 — One category per candidate-author context

  • Decision: Dispatch one provisional category and its 12 alternative candidate briefs to one fresh external author context. Use a different context for every category and disclose that candidates inside a category may influence one another.
  • Reason: The rejected three-or-four-category design rendered 3,464,126 bytes for its first delivery and expected one session to create 36 rich products. That exceeded a reliable review and authoring boundary before any candidate had been written.
  • Delivery rule: Deduplicate shared category, world, need and marketplace-unit records for the author while retaining and reconstructing every immutable per-candidate packet receipt. Size-check the rendered delivery before dispatch.
  • Refresh rule: Category count is research-derived. A later edition therefore creates exactly one author group for each of its own provisional categories; it never copies the current list or a fixed number of groups.

D-023 — Stop Stage E for a missing discontinuity world

  • Decision: Do not seal, audit, rank or publish the 228-candidate draft derived from the six-world set. Preserve it as failed-run evidence while repairing Stages A–D.
  • Reason: The set covers strong delegated AI but does not include a first-class possible-AGI/post-labour stress case. Without it, the catalogue cannot expose marketplace needs caused by radically cheaper cognitive labour, changed ownership and demand, or contribution and belonging after paid work.
  • Research boundary: The repair must not claim AGI is certain or assign a probability unsupported by evidence. It must define thresholds, causal paths, regional variants, countercases and invalidators.
  • Restart rule: Candidate authoring may restart only after affected Stage C needs and Stage D categories pass fresh criticism. Existing candidate names, concepts and ranks do not carry forward automatically.

D-024 — Model a possible discontinuity without declaring it inevitable

  • Decision: Add a bounded high-capability stress world only when its capability, economic-substitution and diffusion conditions are explicit. Activation gates classify which world fits a later observed state; they are not a probability that the state will occur.
  • Reason: Excluding a possible AGI/post-labour discontinuity made the first world set too conservative. Treating AGI as certain would create the opposite error and hide the substantial evidence gaps between benchmarks, dependable work, profitable substitution and global diffusion.
  • Scarcity rule: Abundant machine cognition does not imply abundant electricity, compute, physical execution, treatment, housing, legal permission, trusted human attention, responsibility or appeal. New needs must follow the complete causal chain, including whichever scarcities remain.
  • Evidence rule: Unsupported downstream claims stay conditional or move to Watch. A fashionable technology, product launch or weak analogy cannot promote a need. The place-derived robot-data hypothesis was downgraded under this rule.
  • Restart rule: The repair creates a clean edition and reauthors Stages B-D. It does not patch the old worlds, categories or candidates or make them canonical again.

D-025 — Use six minimum-sufficient worlds only while their discriminators hold

  • Decision: The replacement Stage B set contains six unweighted July 2031 worlds: supervised work systems, distributed cognitive dividend, enclosed cognitive economy, maintained physical renewal, hardened service corridors and mediated social life.
  • Reason: Three closed-allowlist authors independently produced four, five and six worlds. A separate synthesis mapped all 15 proposals and found three repeated clusters plus three irreducible splits. Independent count and coverage critics passed the repaired synthesis at 0.95 and high confidence.
  • Non-inheritance rule: Six is an observed synthesis result, not the failed edition's count and not a future refresh target. The dynamic protocol accepts any evidence-justified contiguous world set.
  • W06 rule: Mediated social life remains a separate world only when persistent identity-linked memory, recurring institutional adoption, synthetic attention/status allocation and measured bridge/substitution groups with staffed-capacity displacement form the audited directed loop. If a conjunct or the loop fails, relational mediation becomes a cross-impact inside the matching economic, physical or continuity world.
  • Probability rule: World membership is a conditional placement decision. No world receives a probability, preference or frequency weight.
  • Stage C rule: Changed actors and needs are rederived only from the reviewed synthesis and its allowlisted evidence. Old needs and categories are not supplied or carried over.

D-026 — Make reviewed code-owned receipts the Stage B/C trust roots

  • Decision: Production Stage B and Stage C compilers use frozen, code-owned approvals for exact reviewed path, byte and SHA-256 receipts. Public APIs do not accept approval overrides and do not export approval factories.
  • Reason: No finite prose blocklist can prove that every paraphrase of current- app anchoring, numeric certainty or scenario preference has been excluded. Exact reviewed bytes plus independent A verdicts create an auditable human judgement boundary; semantic guards remain defence-in-depth.
  • Test rule: Dynamic fixture approvals live only in test helpers. Production exports, CLI paths, preparers and downstream compilers reject caller approval, path, count and staging-hook authority.
  • Refresh rule: A future refresh must receive new independent A verdicts and explicitly advance the approval ID and all exact receipts. It cannot quietly rebind modified research.

D-027 — Preserve Stage C one-to-one; group only in Stage D

  • Decision: Every Stage C changed actor and need survives into the canonical synthesis exactly once, in source order and in its original layer. Stage C cannot merge or delete records.
  • Reason: Early consolidation hid ordinary lived experience and rewarded broad procurement-style buckets in the failed run. Need grouping is an ontology judgement and therefore belongs in Stage D, where every source need remains visible in reconciliation.
  • Stage D rule: A need may seed, support or constrain several categories only with a material boundary explanation, but it receives one primary disposition and is never dropped. External public duties and research gaps remain in the reconciliation even when they do not seed a marketplace category.
  • Count rule: The current 60 actors, 41 institutional needs, 33 lived needs, six worlds and nine lenses are observations. No reusable validator treats them as quotas.

D-028 — Preserve and replace the unsatisfiable Stage D assignments

  • Decision: The first fresh Stage D packet and its three assignments remain immutable failed-contract evidence. Corrected artifacts use new versioned paths and new receipts; they do not overwrite the files that passed the incomplete automated review.
  • Reason: All three isolated builders independently found that the assignment registry allowed only trusted-* owner IDs while the proposal validator simultaneously required registered authority-*, appeal-* and remedy-* IDs. No proposal could pass both conditions.
  • Contract rule: Prepared assignments must be rejected unless their exact trusted registry contains at least one usable owner for every required role. A regression must exercise the public preparation path and the downstream proposal validator together, not only each component separately.
  • Evidence rule: Stage D cannot create an allowlist from Stage C assertions alone. It must replay the reviewed Stage C input/author receipts and bind each cited evidence ID transitively to the approved Stage B source universe.
  • Verdict rule: Each semantic author-verdict receipt and required check name must match the exact replayed Stage C author output set. Matching only the number and shape of verdict records is insufficient.
  • Transaction rule: Packet paths, assignment paths and all reserved proposal paths remain collision-checked through the final atomic commit. A collision introduced after preflight aborts the complete write and preserves the colliding file.
  • Restart rule: The builders restart in fresh contexts only after the corrected bytes pass independent hostile criticism. No draft produced against the bad assignment may enter synthesis.
  • Version rule: internal-dynamic-stage-d-proposal-v3 is the authorised successor to the unsatisfiable proposal v2 contract. The corrected Stage D input protocol has its own v2 identifier and directory; every generated assignment must explicitly bind proposal v3. Failed root-v1 handoff paths are mechanically denied rather than relying on documentation alone.
  • Acceptance record: The corrected handoff passed independent exact-byte criticism at A/0.995. Its packet receipt is 772b7407ffa6205b7b3a9d09c6bcec7e5c1ea038b9d2e8a201854d3fe44432df; assignment receipts are dd4d3097734bde258fdf601003649bd475e76585b741575063462c51397683fd, cf16d38e5b064027ca65721dc23f3ac90488c86ead08b85680353f973f5e17f7 and 143f76566d2826c2336ffba2c7e25e440fddb4b1ffb806fe7e1835cac51665aa.

D-029 — Keep geographic-lens counts evidence-derived

  • Decision: The storefront validates a non-empty unique lens set and displays its authored count. It does not require or label twelve lenses.
  • Reason: The fresh approved handoff currently derives nine lenses. Both nine and twelve are observations from particular research designs, not permanent truths about how many geographic paths a later forecast must represent.
  • Downstream rule: Ranking, projection and refresh tooling must bind the exact reviewed lens set for its edition and reject missing, duplicate or substituted lenses without embedding a count from an older edition.

D-030 — Split unlike causal finishes without weakening no-loss

  • Decision: Stage D proposal contract v4 permits one or more consecutive causal paths for each applicable world. The collapsed world groups must exactly match the category's ordered applicable-world list, and every category need must appear exactly once across those paths.
  • Reason: Builder B's v3 repair preserved 74 different finishes, harms and recoveries by giving each need its own path, but v3 required exactly one path object per world. That rule rewarded broad prose which could mention many needs while preserving only one of them.
  • No-loss rule: A path cannot cite an unknown, out-of-category or world- incompatible need. A need cannot be missing or repeated, even across two different world groups. World groups cannot be reordered or interleaved.
  • Readability rule: The existing per-field prose limits remain in force. An artifact which satisfies the new grouping rule can still fail for language that is too long or unclear; contract repair is not permission to lower the bright-sixteen-year-old standard.
  • Version rule: Proposal v4 is authorised only by the new approved-dynamic-stage-d-input-v3 packet and assignments under stage-d-fresh/v3. Every v2 artifact remains exact historical evidence and cannot be silently reinterpreted under v4.
  • Acceptance record: The focused proposal and input suites pass 66/66. The new packet receipt is 4c9d295ad742ac3a7b3bdc1c92966a24557f8cc87c875b6d185f4d0e5206cccd; assignment receipts are 743cf0ada1c893aa0f1e0daa75ff0c1c5526b3a4cb8506d5f5b401455bb85a03, fa3f399bc837949afa2819283ea5c5f50ae2a2692c033b715ec9bedbc1698b9b and 9b9a2dda2184c4ddd2ede9b9573f58f8db4d0ab5cd0a53f315f5a3b2b39770b3.
  • Discovered-content rule: The exact B R4 rebound clears the v4 world and need invariants, then fails the unchanged prose limit in 137 fields. That is a versioned Builder B language repair, not a reason to weaken the contract or hide the failed file.

D-031 — Make canonical synthesis replay the evidence it claims to combine

  • Decision: A Stage D synthesis report cannot validate a canonical ontology by describing it. The gate must replay the exact proposal-v4 assignment and full proposal contract against the approved Stage B/C sources, then bind the exact canonical bytes and complete collision matrix.
  • Reason: The first synthesis core passed 11 tests while accepting a fixture that was not a valid v4 proposal. Hostile attacks added present-product input, arbitrary assignment bytes, an omitted world, extra proposal fields and a duplicate collision record without being rejected.
  • Approval rule: Accepted alternatives come only from a code-owned Stage D alternatives approval which binds each exact assignment, proposal and fresh independent A-grade synthesis-scoped verdict. Prose containing the words independent or synthesis is not evidence of either condition.
  • Dynamic rule: Need, world, lens, category and unit counts are observations derived from approved source bytes. The current 74 needs and six worlds are not reusable refresh quotas.
  • No-loss rule: The synthesis report accounts for every category in every accepted alternative as retained, merged or rejected, with exact source and target hashes. Every approved world has either a retained category or a typed unresolved gap tied to that world's exact needs.
  • Collision rule: Recombination always triggers the complete v4 collision replay. Each public re-audit record additionally binds both category definitions and need sets; an earlier alternative's collision receipt cannot be copied into the canonical result.
  • Publication rule: A valid synthesis remains unapproved until separate fresh structural and semantic critics return A and a second code-owned canonical approval advances. A report, envelope or synthesizer cannot approve itself.
  • R2 boundary record: The repaired internal core passed fresh hostile review at A/0.995, including exact v4 replays and a six-need dynamic fixture. The first production-wrapper review found alternate-path receipt relabelling and an unbound canonical lens list. R2 path-locks proposal/report receipts, checks the assignment's exact ordered lenses against the approved packet and accepts only {projectRoot}. Fresh hostile re-review returned A/0.995, scoped only to this production boundary. An injected test authority or validated report is still not canonical publication authority.

D-032 — Admit Stage D to Stage E through one narrow public authority

  • Decision: The only Stage D authority Stage E may consume is the return value of validateReviewedStageDCanonicalApproval({projectRoot}) from the public canonical-approval module.
  • Exact result: Synthesis R2 contains eight retained categories, six provisional and two watch. Fresh structural and semantic critics returned A at 0.997 and 0.995. The separate canonical-approval boundary returned A at 0.995 after recursively verifying 54 nested receipts.
  • Exclusion rule: Failed R1 verdicts, a synthesis report, a proposal, critic wording, an internal core function or a digest cannot authorize Stage E.
  • Scope rule: Canonical approval permits ontology use by Stage E only. It grants no authority for candidate content, inventory, ranking, storefront copy, public publication, deployment or domain changes.
  • Watch rule: Categories 007 and 008 remain visible research outcomes but are excluded from automatic Stage E candidate publication until their explicit promotion evidence is satisfied.

D-033 — Keep approval identity separate from need content

  • Decision: Stage E uses the canonical approval identity to prove each need's ID, layer and source hash, but reads world applicability and product-shaping content only from the exact hash-bound need record.
  • Reason: The approval identity deliberately does not duplicate worldIds. Treating it as the content record crashed real author-packet preparation and would have weakened the source boundary if fixed by copying fields into it.
  • Normalisation rule: Stage C lower-case world IDs are matched to the reviewed upper-case world IDs without changing either source artifact.
  • Dispatch result: Six provisional categories receive 12 candidate briefs each; two watch categories receive none. This is an observed edition result, not a reusable category or inventory quota.

D-034 — Refreshes must rederive their own dimensions

  • Decision: The project and installed refresh skill derive category, candidate, world and geographic-lens counts from each new edition's reviewed artifacts.
  • Reason: Fixed examples from an older design can quietly become generation or validation targets even when the written method says categories are unknown.
  • Regression rule: Governance tests reject fixed 12-category/120-candidate and six-world/12-lens language, while preserving exactly six independent final Gauntlet critic scopes as a quality-control design rather than a forecast dimension.

D-035 — Validate the direct-v4 edition without manufacturing legacy research files

  • Decision: The clean active edition is validated from its exact 20-artifact research snapshot, public Stage D approval and schema-4 Stage E packet tree. It must not create sources/claims/horizons/worlds/ontology files merely to satisfy an older schema-3 intermediate validator.
  • Reason: The first active validation route still tried to read the withdrawn schema-3 ontology and four legacy Stage A-D lifecycle records even though the direct-v4 integration deliberately preserves a different, receipt-bound research structure.
  • Validation rule: Preparation counts, provisional and watch category sets, need/world/lens counts, source receipts, packet hashes, category groups and output roots are rederived from the edition-local v4 boundary. Each author group is replayed through the same loader used by its clean-room delivery.
  • Projection rule: Public evidence files may be created later as deterministic reader and ranking projections. They cannot become substitute authority for the reviewed v4 research or recreate the invalidated ontology lineage.

D-036 — Project public evidence without changing research authority

  • Decision: The clean edition's sources.json and claims.json are a deterministic public-reader projection of the exact Stage B-bound registries and edition-local reviewed Stage B–D snapshot. They are not a new research input and cannot approve candidates, ranks or publication.
  • Identity rule: Evidence identifiers remain byte-for-byte meaningful, including uppercase and dotted IDs. The active validator does not force them through the obsolete lower-case product-ID grammar.
  • Coverage rule: Every evidence ID used by the direct-v4 snapshot must resolve; source-to-claim reverse indexes and source/claim input receipts must match exactly. Registry or edition-local receipt drift fails validation.
  • Disclosure rule: A missing exact access date is represented by the edition cutoff only as a projection boundary, with an explicit qualification; it is never presented as a claimed visit date.
  • Result: 463 source records and 264 claims resolve all 129 referenced evidence IDs. The exclusive writer produced SHA-256 d4aa775db4fcf014724838bde4b367335aa69067d08e1e7a1fe6d2f07ebf25bf for sources and 835a4505d204b7d19c2fd80fe5e2c2a0e63bc068c2b9ab821ae1d3ca7de61094 for claims.

D-037 — Mechanically protect author metadata; author only the judgement

  • Decision: Do not weaken candidate validation when a long-form author changes a locked world, timestamp or required array. Reject and archive the whole group, then improve the hand-off so immutable identity and coverage fields are mechanically scaffolded while the independent author supplies the product idea and explanations.
  • Reason: The second wave reproduced transcription errors despite stronger prose instructions: categories 001 and 003 changed a candidate's applicable world, category 002 supplied too short a causal chain, and the later isolated category 004 and 005 runs changed applicable worlds again. These are workflow-shape failures, not evidence that the underlying drafts passed.
  • No-salvage rule: Failed group prose cannot be copied into a fresh context. Failed files stay outside the active edition as transparent correction history.

D-038 — Treat author time as receipt metadata, not forecast evidence

  • Decision: Before live session integration, authoredAt must be a valid ISO timestamp but is not compared with packet creation. The integrator replaces it with the exact externally verified task completion time. Once a session receipt exists, that integrated time must follow packet creation.
  • Reason: An author supplied a schema placeholder 10 milliseconds before packet creation even though the candidate hash deliberately excludes that field and the integrator never retains it. Rejecting product judgement for that value was a false acceptance trap rather than a research safeguard.
  • Boundary: Author identity, packet receipt, category, unit, worlds, evidence, substantive prose and every other candidate field remain exact and hash-bound. This decision does not permit guessed session times or weaken the externally verified receipt.

D-039 — Show the evidence ladder instead of a JSON wall

  • Decision: A listing explains three separate layers in reading order: current evidence, forecast inference and the fictional product consequence. Exact raw records stay available in the research library, but are not the primary explanation.
  • Reason: Credibility requires both inspectable sources and a clear account of how the forecast moves beyond them. A raw evidence-reference array exposed data without teaching that reasoning.
  • UI rule: Scenario and listing pages use plain language suitable for a thoughtful 16-year-old, preserve limitations and uncertainty, link to the original source where available and never present imagined product or review material as observed fact.

D-040 — Authors write product judgement; the integrator owns candidate identity

  • Decision: New author groups write only the twelve substantive candidate sections in candidate-content.json. They cannot write candidate identity, schema/protocol, authorship, category, marketplace unit, top-level world coverage, geography row IDs, scenario row IDs or receipt pointers.
  • Reason: Multiple independent v2 groups continued to change one machine field despite an explicit immutable scaffold. Repeating the same prompt was no longer a useful quality loop. Immutability must be a property of the file contract, not an instruction that an author can accidentally violate.
  • Merge rule: The integrator constructs candidate.json by explicitly selecting authored sections and injecting packet-owned fields. It adds geography and world row IDs by exact array position. Wrong row counts or any author-supplied ID fail; no judgement is repaired, defaulted, reordered or normalised.
  • Receipt rule: V3 binds both the exact authored file bytes and the deterministic canonical projection. V2 remains independently replayable so the accepted category 002 receipt and hashes are not rewritten. Unknown or mismatched protocol versions fail closed.
  • No-salvage rule: The new format applies only to fresh contexts. None of the prose in rejected or interrupted v2 groups may seed a v3 author.

D-041 — Canonicalise an exact world identity, never infer a world choice

  • Decision: In v3 only, a nested authored world ID may be projected to the packet's canonical spelling when and only when there is exactly one case-insensitive allowed match. This covers the reviewed Stage C lower-case and Stage D upper-case representations of the same world.
  • Boundary: Unknown, out-of-packet, ambiguous or duplicate-after-projection IDs fail. The rule applies only to the three nested world-reference arrays in evidence anchors, build dependencies and readiness steps. It does not select a world, change evidence, normalise prose or alter any v2 candidate.
  • Receipt rule: The exact authored bytes and payload SHA preserve the writer's representation. The deterministic canonical candidate and its separate hash use the packet identity, so both the input and projection remain auditable.

D-042 — Distinguish canonical world IDs from receipt shorthand in the author instruction

  • Decision: V3 authors must copy nested world strings exactly and case-sensitively from assignment.authoredSelectionLimits.allowedWorldIds. When exactWorldArrayWhenSingleWorld exists, the entire supplied array must be copied verbatim. W01-style receipt, source or display shorthand is not an authored world ID unless that exact string is explicitly allowed.
  • Reason: Five fresh content-only groups independently chose the right-looking W01, W03 or W05 receipt label instead of the packet's canonical world identifier. The strict validator correctly rejected all sixty files, but the repeated pattern showed that the signed bootstrap did not explain the two ID systems clearly enough.
  • Boundary: The canonical projection and validator are unchanged. They still reject unknown, out-of-packet, ambiguous and duplicate world choices. This is an instruction repair, not an alias rule or a way to salvage failed prose.
  • Compatibility: The accepted category 002 v2 bootstrap, external receipt and candidate-set hashes remain byte-for-byte frozen. Only fresh v3 sessions use the clearer bootstrap.

D-043 — Do not ask an author to choose when the packet permits one world

  • Decision: Author protocol v4 removes worldIds from the three nested authored row shapes. Any author-supplied nested worldIds key fails exact-key validation. The integrator injects the candidate packet's complete exact world array into every canonical evidence-anchor, dependency and readiness row after the authored content has passed validation.
  • Reason: Even after the signed v3 bootstrap explicitly prohibited shorthand and required exact per-assignment copying, four of five fresh groups copied a valid world from another candidate. Every active packet currently permits exactly one world, so transcription was not a substantive judgement and repeated retries could not improve the forecast.
  • Authorship boundary: Authors still originate the product promise, causal explanation, evidence choices, build dependencies, readiness sequence, regional and scenario judgements, harms, authority limits, resolution test and counter-case. Only the packet-owned world membership is injected.
  • Compatibility: Integrated v2 category 002 and v3 category 003 remain byte-bound and replay under their original protocols. Mixed v2/v3/v4 receipt validation is required; unknown protocols fail closed.

D-044 — A closed critic corpus must include the complete authorable contract

  • Decision: Collision protocol v2 gives each fresh critic the complete exact top-level and nested result schema, all derived-decision and action rules and candidate-specific anchor tuples needed by the validator. The critic may use only that receipt-bound corpus and cannot author its own session receipt.
  • Reason: The previous compact delivery prohibited additional reads but omitted several exact structures the validator required. A compliant critic could therefore fail through undisclosed formatting rather than a bad collision judgement. The shortest per-domain anchors were also not guaranteed to satisfy the validator's candidate-specific phrase rule.
  • Recovery rule: A legitimate pre-seal revise or reject is preserved in a hash-inventoried no-salvage archive. Every implicated full author group is removed from active use and must be freshly re-authored, after which the complete set is recompiled, repacketed and reviewed by fresh critics. Archived author and critic contexts can never re-enter later integration.
  • Boundary: Collision decisions, pair coverage, cross-category assessment, context independence, sealing and rollback remain strict. This repair does not touch post-seal present-day prior-art replacement.

D-045 — Present-day rejection must have a production replacement transaction

  • Decision: If a Stage F audit leaves a category with fewer than ten surviving candidates, use the versioned production replacement cycle rather than manually reinstalling a fixture tree. Each removed candidate receives one never-used successor ID, unchanged Stage E artifacts remain byte-exact and the prior audit history remains immutable.
  • Isolation rule: Fresh replacement authors receive only isolated replacement packets with no rejected-candidate, audit, current-product or prior-art material. Fresh external authors and collision critics must replay from their exact session transcripts before a successor set can be resealed.
  • Transaction rule: The replacement registry, full collision re-review, successor protocol tree and new seal install atomically. A late failure rolls back, and an interrupted committed cleanup can be recovered without editing historical artifacts.
  • Reason: The first Stage F implementation understood replacement lineage in fixtures but had no safe public path to prepare authors, integrate critics or reseal after live audit artifacts existed. Starting an audit without this path could strand an otherwise honest edition after a legitimate rejection.

D-046 — Freeze every dependency of a signed delivery while authors are active

  • Decision: From an external author's first immutable delivery retrieval until receipt integration or explicit interruption, do not change any code or contract that can alter the reconstructed delivery or validator output. Run adjacent protocol repairs before dispatch, then hold that boundary fixed.
  • Reason: Two locally valid v4 groups could not replay their first delivery after collision and Stage F hardening legitimately changed shared validation dependencies during their turns. The content had not failed, but the corpus could no longer be proven byte-identical. Two zero-file sessions with the same exposure were stopped rather than allowed to waste more work.
  • No-salvage rule: Completed groups affected by delivery drift are archived in full and freshly authored after the dependency tree stabilises. A matching bootstrap string is insufficient when the bootstrap retrieves changed delivery bytes.

D-047 — Stop the oversized Stage F audit instead of redesigning it again

  • Decision: No Stage F category-audit output is accepted for edition 2031-2026-08-02. The sealed worlds, needs, categories and 72 candidates remain valid inputs; only the uncompleted present-day overlap audit is stopped.
  • Evidence: The final fresh audit delivery was 360–410 KB per category. In live external contexts the permitted retrieval repeatedly exposed only the first candidate and reported roughly 78,000–85,000 omitted tokens. The auditor could not inspect candidates 2–12 or their exact bindings.
  • Boundary: Earlier interrupted contexts wrote no accepted output or receipt. Their prose is not reused. The public method discloses incomplete semantic current-market coverage rather than claiming global novelty.
  • Reason: A sixth transport redesign would improve proof machinery, not the forecast. The user explicitly required a bounded finish rather than another protocol loop.

D-048 — Use one transparent bounded Top 10 judgement per category

  • Decision: Six fresh category synthesizers compare all twelve sealed concepts in one category, select exactly ten and explain the two exclusions.
  • Scoring: Future distance ×5, need scale ×4, global breadth ×3, marketplace clarity ×3, 2031 delivery readiness ×3 and trust/safety ×2. Each dimension is an integer from 1 to 5, for a maximum total of 100.
  • Boundary: Scores are authored judgements, not probabilities. Ties require a written causal judgement. Every row explains its position, the adjacent comparison, move conditions and strongest counter-case; rank 10 compares with the strongest excluded candidate.
  • Outcome: Six categories, 60 selected listings and 12 explicit exclusions. Category and candidate counts remain observations of this edition, never quotas for a refresh.

D-049 — Use a bounded exact-name screen and state what it cannot prove

  • Decision: Search every selected fictional name with quoted app, software and company terms. Replace material collisions and repeat the search until all 60 names have no-material-collision-found.
  • Evidence: The first screen found numerous real collisions, including existing apps, software products and technology organisations. Twenty-eight names were replaced and searched again; the edition preserves queries, URLs, reasons and the final row for every candidate.
  • Boundary: This is not trademark, company-name, domain, language, cultural or legal clearance. Similarity and rights questions still require professional review before real use.

D-050 — Keep the final synthesis edition-scoped and make refresh reproduce the method

  • Decision: Category syntheses and name audits live under data/editions/2031-2026-08-02/workflow/final-synthesis/. The public projection and research library are compiled from those edition-scoped records.
  • Skill: The repository and installed app-store-forecast-refresh skill copies now specify the future-world-first stages, the bounded overlap-review rule, the 100-point Top 10 judgement, plain-language listings and bounded name screen. The abandoned audit-v3, causal-v8 and name-v3 protocols are no longer active refresh requirements.
  • Release boundary: The edition remains researching with asOf: null. These changes do not authorise freeze, deployment, domain work, commit or push.

D-051 — Release the finished forecast through bounded product checks

  • Decision: Preserve the older protocol-laboratory tests as provenance, but use the compiled final forecast, public library, refresh-skill governance, typography and Worker wiring as the active local release gate.
  • Reason: The abandoned Stage A–H experiments assert historical intermediate states such as zero active listings and cannot truthfully grade the completed 60-listing product. Keeping them in the default command would mistake failed research paths for current acceptance criteria.
  • Proof: The active suite passes 30/30, the final synthesis and projection validators pass, and signed-out mobile and desktop journeys each show six categories, ten rows in the selected category, six worlds and zero browser errors. Closing a product sheet returns focus to its originating row or search control, and explanatory detail text is at least 16px.
  • Crash recovery: The final critic first found the pre-crash local preview process accepting connections without returning bytes. That single process was terminated and restarted; HTTP 200 and the complete route proof then passed, and the same critic returned PASS.
  • Boundary: This is a local release candidate only. No deployment, domain attachment, freeze, publication, commit or push is authorised by this check.

D-052 — Publish the working forecast at appstore2031.com

  • Decision: The user explicitly authorised deployment of the current working forecast to the purchased Cloudflare-managed domain appstore2031.com on 3 August 2026.
  • Route: The appstore2031 static-assets Worker is the origin for the apex Custom Domain. Cloudflare manages the generated DNS record and certificate.
  • Canonical host: Crawlable pages, structured data, the sitemap and citation guidance use https://appstore2031.com.
  • Boundary: This authorises this Worker deployment and apex-domain attachment. It does not freeze the forecast, add other domains, commit, push or authorise unrelated production changes elsewhere in the workspace.