# V6 Remediation Log — 2026-06-12

Source of findings: `V1_V7_PLAN_SET_AUDIT_2026-06-12.md` (V6 sections, §3.3,
§5 "V6", §8). Scope: V6 planning corpus only (`V6/` docs and gate artifacts).
Honesty model: `V3/VERIFICATION_AUDIT_2026-05-31.md` ("structural gates ≠
operational proof") and the V5 completion-state banner
(`V5/V5_TODOS.md:40-54`).

Checkbox legend used below: `[x]→[~]` = not locally actionable (external
vendor approvals / real-world operations / destination-realm liveness);
`[x]→[ ]` = claimed but contradicted by repo state. **No checkbox was marked
`[x]` by this remediation.** Every re-mark was judged individually; no batch
edits.

## 1. Broken anchor in gate artifact (audit: V6 finding "non-existent anchor")

- `V6/performance/latency-budgets.v6perf.json:6` —
  `V6/V6_features.md#Performance-Budget-and-Scale` →
  `V6/V6_features.md#performance-budgets`. The real heading is
  `## Performance Budgets` (`V6/V6_features.md`), slug `performance-budgets`.

## 2. Cost-figure canonicity contradiction

- `V6/V6_features.md` §"Concrete Budget Shape": now states
  **`V6_DEPENDENCIES.md` §19 is the sole canonical cost-figure source**, notes
  arch holds no figures and defers to deps§19, and marks features' own
  duplicated budget bullets as a **non-normative convenience mirror** of
  deps§19 (deps wins on disagreement).
- `V6/V6_ARCHITECTURE.md:1150-1151` (defers to DEPENDENCIES) and
  `V6/V6_DEPENDENCIES.md:402-403` (claims canonicity) already agreed; only
  features was edited for this finding.

## 3. Lachesis cap mismatch (docs 150–400 "no hard cap" vs artifact 400/400)

One coherent story adopted: **design range 150–400 per resident world; hard
cap 400** (the upper design point is the hard cap).

- `V6/V6_features.md` concurrency-caps bullet: "design target of 150–400
  agents" → "design range of 150–400 agents per resident world with a hard cap
  of 400".
- `V6/V6_DEPENDENCIES.md` §19 concurrency-caps table, Lachesis row: now
  "Design range 150–400 …; hard cap 400", cross-referencing the artifact.
- `V6/evals/cost-budget/launch-token-budgets.json` Lachesis concurrency cap:
  values unchanged (designTarget 400 / hardCap 400 — consistent with the
  adopted story); added a `note` field stating designTarget 400 is the upper
  point of the 150–400 design range.

## 4. Launch DAU projection quantified (was load-bearing but never defined)

- `V6/V6_DEPENDENCIES.md` §19: added canonical block **"Launch DAU projection
  (canonical planning assumption, adopted 2026-06-12)"** — 30,000 DAU
  (assumption, not a market forecast) → ≈10,000 DAU/region across the 3
  sustained-load regions (iad/fra/sin) → 10% peak concurrency ≈1,000
  concurrent players/region → ≈10.2 agents per concurrently-active player
  (≈10 Lachesis from the "company you can know" household scale,
  features§"The Household Roster", + 0.2 Clotho ≈ 13 full ≤16-agent active
  scenes per region, matching the manifest's `clothoActiveSceneCount: 13`) →
  **≈10,200 concurrently-resident agents per region = the §42 fixed mix
  (10,000 Lachesis + 200 Clotho)**. Also states the equivalent decomposition
  (≈25–66 fully-resident Solo worlds at 150–400 each) and that a real
  forecast above 30,000 DAU forces re-derivation.
- Gate references now point at the number:
  - `V6/V6_features.md` §"Launch Readiness" Moirai bullet,
  - `V6/V6_ARCHITECTURE.md` §"Launch Readiness" Moirai bullet,
  - `V6/V6_TODOS.md` "V6 Exit Criteria (high level)" bullet and §48 Moirai
    item (the §48 item also re-marked `[~]`, see §9 below).

## 5. Eval-set taxonomy mismatch (5 named vs 13 required)

- `V6/V6_TODOS.md` §41 first task (text only, checkbox kept `[x]`): now
  enumerates all 13 suites `V6/evals/agent-behavior/suites.json` requires
  (value-refusal, continuity, grounding, learning-by-example, negotiation,
  objective-assignment, goal-arc, gifts-opportunity, life-arc, crossroads,
  persona-policy, crisis, minor-protection), noting persona-policy / crisis /
  minor-protection are **safety-classified** per `features§"Safety Evals"`.
- `V6/V6_DEPENDENCIES.md` §35: "Agent-behavior eval harness" row enumerates
  the 13 suites with the safety-classification note; "Safety eval harness" row
  cross-references that the same three suites are the safety-classified ones.
- `V6/V6_features.md:1720-1728` safety classification left intact (as
  required).

## 6. Commons scale claim vs test (thousands promised, 32 measured)

- `V6/V6_features.md` §"The Commons" "shared world" bullet: now states the
  AoI/interest-management design explicitly — 4,096 agents simulated,
  per-client fully-replicated visible set capped ~32, up to ~150 drawn via
  density LOD with crowd impostors/silhouettes beyond, bandwidth measured
  against the capped visible set.
- `V6/performance/commons-scale-load.v6perf.json`: added
  `measurementScopeNote` field clarifying what was measured (bandwidth at
  visibleAgentCount 32, not replication of thousands to one client) and that
  console/mobile platformMeasurements are repo-authored projections, not
  captured device runs.

## 7. Launch locales + accessibility standard never named

- `V6/V6_features.md` §"Localization": added a **Launch locales** paragraph —
  exactly **en-US, es-ES, yo-NG**, citing
  `V6/localization/region-rating-residency.v6loc.json` (`checkedLocales`).
- `V6/V6_features.md` §"Accessibility": named the standard — **WCAG 2.2 Level
  AA**, evaluated by axe-core in CI plus per-platform a11y suites for the UE
  client.
- `V6/V6_TODOS.md` §39 fourth task: acceptance text now reads "green against
  WCAG 2.2 AA …" (text only; checkbox unchanged).

## 8. V2–V5 liveness dependency re-scoped (coherence break)

- `V6/V6_features.md` §"Launch Readiness" Aye bullet: "All four Aye Thresholds
  operational … for every realm that is itself live" → integration-tested
  against per-destination adapters and realm stubs; **production liveness of
  each destination realm is an EXTERNAL dependency tracked outside V6 and
  re-verified at each realm's GA** (none of V2–V5 is live as of 2026-06-12).
- `V6/V6_DEPENDENCIES.md` Aye Threshold readiness gate paragraph: same
  re-scope; the gate explicitly does **not** prove V2–V5 are operational live
  realms.
- Checkbox re-marks (liveness-dependent):
  - §48 "All four Aye Thresholds operational with round-trip journals for
    every live Aye realm" — `[x]→[~]` (destination-realm liveness external).
  - §38 "[P2] Implement Aye campaigns" — `[x]→[~]` (an open V2 season / V5
    chapter requires a live destination realm).
  - §27 Aye Bridge implementation tasks left `[x]` — they are locally
    verifiable against adapters/stubs and do not claim realm liveness.

## 9. Externally-unverifiable evidence marked done

- (a) **Platform cert**: `V6/release/CROSS_PLATFORM_CERTIFICATION.md` —
  provenance caveat added above the Required Outcomes table ("approved and
  published" rows are pending vendor evidence; approvals cannot be proven from
  repo artifacts; the verifier does not call store APIs).
  `V6/V6_TODOS.md` §45 "Pass platform cert …" — `[x]→[~]`.
- (b) **Staging telemetry**:
  `V6/evals/cost-budget/staging-token-telemetry.json` — added
  `provenance: "synthetic-fixture"` and `provenanceNote` (hand-authored
  fixture; no V6 staging environment has emitted real Moirai telemetry; real
  telemetry pending).
- (c) **Other real-world-operation claims in TODOS**, each judged
  individually:
  - §42 "Run a sustained load test … 7 consecutive days" — `[x]→[~]`
    "structural evidence only; operational run pending" (the manifest's
    evidence is local cargo tests that complete in seconds; a 7-day 3-region
    infra run cannot have occurred). Matching `provenanceNote` added to
    `V6/performance/sustained-load.v6perf.json`.
  - §42 "Run a Commons-scale load test" — `[x]→[~]` (real local
    bandwidth/cognition tests, but console/mobile frame/memory figures are
    repo-authored projections; see artifact `measurementScopeNote`).
  - §40 "Implement region rating variants …. Done when: shipped locales meet
    their region rating" — `[x]→[~]` (ESRB/PEGI/IARC outcomes in the locale
    artifact are external rating-board decisions for an unshipped product;
    the variant mechanism itself is repo-verifiable).
  - §48 Moirai launch-readiness item — `[x]→[~]` (depends on the §42
    sustained-load operational run and the synthetic §36 staging telemetry).
  - §48 "Accessibility, localization, cert, security …" aggregate — `[x]→[~]`
    (its Done-when requires §40/§45 items now `[~]`).
  - §48 "V6 Exit Criteria all met" — `[x]→[ ]` (contradicted: unchecked and
    `[~]` tasks now exist in the document).
  - Judged and left `[x]`: §14 "≥150 grounded wild agents seeded" (seed pool
    is a repo fixture), §47 runbooks/production-setup (docs exist in repo),
    §45 cross-progression (fixture-verifiable), §44 DSAR (code-verifiable).

## 10. District "authoring" honesty

- `V6/V6_ARCHITECTURE.md` §"Game Feature Plugins": added a **District scene
  descriptors — disclosure** paragraph defining the descriptor convention
  (`DistrictScene_<Name>.v6district.json` = design artifact / machine-checked
  contract, **not** cooked UE content; `V6/ue/Content/` is `.gitkeep`-empty;
  in-engine authoring requires World Partition maps, meshes, lighting,
  navmesh, cooked content).
- `V6/V6_TODOS.md` §28, judged per task wording:
  - All six "Author the <district>" tasks (Grove of Beginnings, Ateliers,
    Commons Heart, Wilds, Ancestor Grove, Thresholds) — `[x]→[ ]` "descriptor
    only; no UE content exists" (each cites its descriptor file).
  - §28 "Sign every district scene … and promote" — left `[x]`: it operates on
    the scene descriptors (signing/promotion of the artifacts), not on
    in-engine world authoring.
  - §48 "All six districts of Orun open and authored" — `[x]→[ ]`
    (contradicted by the §28 reverts).

## 11. Vague-in-doc, quantified-only-in-artifact

- `V6/V6_features.md` §"Performance Budgets": Chronicle "within a few seconds"
  now pinned **≤ 3,500 ms**; shard/Threshold "perceptible stall" now pinned
  **≤ 50 ms max client stall**; escalation-rehydration grace window **DEFINED:
  ≤ 500 ms** marked "budget adopted 2026-06-12; measurement pending".
- `V6/V6_ARCHITECTURE.md` §"Performance Budgets": same three numbers added.
- `V6/performance/latency-budgets.v6perf.json`: added
  `sharedBudgets.escalationRehydrationGraceMs: 500` plus a `budgetNotes`
  entry stating it is a target only with **no observed measurement** (no
  assertion claims one) — honestly recorded as adopted-not-measured.

## 12. Completion-state banner

- `V6/V6_TODOS.md`: warning banner added near the top (modeled on
  `V5/V5_TODOS.md:40-54`): V6 has never received an adversarial
  implementation verification; `[x]` attests to repo artifacts only, not
  operational proof or vendor approvals; operationally-unverifiable items
  re-marked `[~]` on 2026-06-12 per this log.

## Checkbox re-mark summary

| Task (V6/V6_TODOS.md)                                   | Change      | Reason class                                  |
| ------------------------------------------------------- | ----------- | --------------------------------------------- |
| §28 Author the Grove of Beginnings                      | `[x]`→`[ ]` | descriptor only; no UE content                |
| §28 Author the Ateliers                                 | `[x]`→`[ ]` | descriptor only; no UE content                |
| §28 Author the Commons Heart                            | `[x]`→`[ ]` | descriptor only; no UE content                |
| §28 Author the Wilds                                    | `[x]`→`[ ]` | descriptor only; no UE content                |
| §28 Author the Ancestor Grove                           | `[x]`→`[ ]` | descriptor only; no UE content                |
| §28 Author the Thresholds                               | `[x]`→`[ ]` | descriptor only; no UE content                |
| §38 Aye campaigns [P2]                                  | `[x]`→`[~]` | external destination-realm liveness           |
| §40 Region rating variants                              | `[x]`→`[~]` | external rating-board outcomes                |
| §42 Sustained 7-day load test                           | `[x]`→`[~]` | structural evidence only; operational pending |
| §42 Commons-scale load test                             | `[x]`→`[~]` | structural evidence only; device runs pending |
| §45 Pass platform cert                                  | `[x]`→`[~]` | external vendor approvals                     |
| §48 All six districts open and authored                 | `[x]`→`[ ]` | contradicted by §28 reverts                   |
| §48 Moirai at launch DAU projection                     | `[x]`→`[~]` | depends on §42 run + synthetic telemetry      |
| §48 All four Aye Thresholds operational                 | `[x]`→`[~]` | external destination-realm liveness           |
| §48 Accessibility/localization/cert/security aggregate  | `[x]`→`[~]` | depends on §40/§45 external items             |
| §48 V6 Exit Criteria all met                            | `[x]`→`[ ]` | contradicted (unchecked/`[~]` tasks exist)    |

## Known consequence: verifier pins will fail closed (intentional)

Several `scripts/v6/verify-v6-*.mjs` gates pin the exact former `- [x] ...`
TODO lines and will now fail (fail-closed), including at least:
`verify-v6-cross-platform-certification.mjs`, `verify-v6-sustained-load.mjs`,
`verify-v6-commons-scale-load.mjs`, `verify-v6-region-rating-residency.mjs`,
`verify-v6-aye-campaigns.mjs`, `verify-v6-aye-threshold-readiness.mjs`,
`verify-v6-moirai-cost-load-readiness.mjs`,
`verify-v6-grove-of-beginnings.mjs` (and the other district verifiers),
`verify-v6-accessibility-localization-security-cert-readiness.mjs`,
and `verify-v6-exit-criteria-readiness` (which requires zero unchecked
boxes). Post-edit spot-runs: `run-cost-budget-harness.mjs` and
`verify-v6-latency-budgets.mjs` still pass; `verify-v6-sustained-load.mjs`
and `verify-v6-commons-scale-load.mjs` now fail closed on the re-marked
checkboxes as predicted (`verify-v6-docs-drift.mjs` fails for a pre-existing,
unrelated reason: the VRM4U submodule is not initialized in this checkout).
This is the honest outcome: those gates were attesting to claims the
repo cannot prove. Updating the gate scripts to reflect the re-scoped claims
is follow-up engineering work, deliberately **not** done here (this
remediation does not edit code outside `V6/`).

All five touched JSON artifacts re-parse cleanly
(`latency-budgets.v6perf.json`, `sustained-load.v6perf.json`,
`commons-scale-load.v6perf.json`, `launch-token-budgets.json`,
`staging-token-telemetry.json`); the fixed anchor slug
`performance-budgets` matches the real `## Performance Budgets` heading.
