oc1 — design-corpus STATUS
Источник:
dev/fera-research/docs/oc1/STATUS.md(read-only; сгенерировано scripts/sync-docs.mjs)
oc1 — design-corpus STATUS
Section titled “oc1 — design-corpus STATUS”Zone: ~/dev/fera/project-design/context/ (whole corpus) + read-only
cross-checks into ~/dev/fera/fera (workspace layout reality).
Mission: internal contradictions between design docs, design gaps, stale decisions, TECHSPEC-vs-ADR consistency, triage of every OQ.
Method
Section titled “Method”- Read
ADR.md(1040 lines) andTECHSPEC.md(469) first-hand; meta-rules from~/dev/fera-project-design/{README,CLAUDE}.md. - Three read-only subagents (they report; I write and commit): OQ.md triage · RFC/QA/FUTURE-CHECKS/RESEARCH-OQ-003 audit · NAMING-UX/PREDICT/OPTIM-IDEAS audit. Every load-bearing claim they made was re-verified by me against the files before it went into a finding.
- Cross-checked doc claims against the real workspace
(
~/dev/fera/fera,ed4d66e pre-migration snapshot). - Findings 1–26 in
docs/oc1/, one per file, committed individually.
Findings (26)
Section titled “Findings (26)”| # | File | Kind | Sev | One line |
|---|---|---|---|---|
| 001 | 001-gpui-residue-after-adr028.md |
problem | mid | GPUI killed by ADR-028 but normative in 14 places; renderer-gpui vs renderer-vello; local UI state has no home |
| 002 | 002-style-token-ron-vs-kdl.md |
problem | mid | Style tokens: RON (ADR-029/TECHSPEC/RFC) vs KDL→rkyv (ADR-030); the KDL→rkv compiler is missing from the §0 layout |
| 003 | 003-techspec-tbd-pointers-resolved.md |
problem | mid | All 9 TECHSPEC “TBD — see OQ.md” points at resolved OQs |
| 004 | 004-adr031-self-contradiction-search-index.md |
problem | high | ADR-031:653-655 content tier vs :675-677 plaintext-at-rest for the same field; needs a “locked search?” product call |
| 005 | 005-encrypted-phantom-type-does-not-encode-tier.md |
problem | mid | ADR-016’s compile-time tier guarantee is false; decrypt<T> unbounded |
| 006 | 006-metadata-tier-unauthenticated-no-aad.md |
risk | high | “ChaCha20 or AES-GCM” left open in an Accepted ADR; no AAD → ReadState/outbox/timestamps forgeable |
| 007 | 007-multiaccount-specified-once-contradicted-everywhere.md |
problem | high | Multi-account exists only in TECHSPEC §8; every contract is single-account; no AccountId type exists |
| 008 | 008-frame-budgets-unowned-unfalsifiable-governor-loops-the-bench.md |
risk | mid | 24/45/60–75 fps in 5 docs, zero ADRs; QA gate can’t fail; “never share a frame loop” is unimplementable on one winit surface; the governor adapts the frozen bench’s parameter |
| 009 | 009-ebr-does-not-make-dlclose-safe.md |
problem | high | ADR-001/ADR-020 rest on “epoch drain ⇒ safe unload”; EBR protects data, not code |
| 010 | 010-native-abi-and-reclamation-three-answers.md |
problem | high | ABI and reclamation each have three live answers (#[repr(C)] vs pinned rustc; EBR vs QSBR vs split) |
| 011 | 011-rfc-v1-scope-contradicts-adr025-026-027.md |
problem | high | RFC §2 lists secret chats as a non-goal vs ADR-025 full v1 support; grammers wrap vs mandatory fork; 7 of 31 ADRs have no downstream mention |
| 012 | 012-naming-renames-never-propagated.md |
problem | mid | fload/nylon-ring (20+ vs 2), thefera/the-fera, dangling context/LATTICE.md, 3 names for the ffmpeg module |
| 013 | 013-no-media-cache-eviction-or-quota-policy.md |
problem | high | Research proves ~90 MiB/sticker and demands a quota; no OQ/ADR/QA gate covers eviction for any on-disk cache |
| 014 | 014-qa-gates-wrong-by-construction.md |
problem | mid | 4 QA gates unsatisfiable/superseded, the manifest gate omits layer, and both completeness gates fail today |
| 015 | 015-module-axis-unimplemented-undocumented.md |
risk | high | Zero dylibs in the repo, no nylon dep, and ADR-001/002 list protocol/predictor/engine as swappable while TECHSPEC builds them as core crates |
| 016 | 016-two-mandated-contract-tests-have-no-trait.md |
problem | mid | ADR-014 mandates suites for SearchEngine and renderer Engine; neither trait is defined anywhere |
| 017 | 017-no-schema-migration-policy-rollback-conflict.md |
problem | high | No migration policy anywhere; ADR-021’s “swap ≠ migration” contradicts ADR-024’s N-1 rollback |
| 018 | 018-amendment-hygiene-no-precedence-rule.md |
problem | mid | ADR bodies never rewritten on amendment; Superseded/Proposed legend values unused; no ADR-vs-downstream precedence rule (root cause of 001/002/003/008/011/014) |
| 019 | 019-missing-decisions-proxy-i18n-conflict-revocation.md |
question | high | Seven absent decisions: MTProto proxy, i18n/RTL, two-device conflict, session revocation, account lifecycle, notification policy, backup/export |
| 020 | 020-capability-ids-frozen-before-written.md |
problem | mid | ADR-022 freezes the capability-ID set additively/must-understand; the set has never been enumerated (0 hits corpus-wide) |
| 021 | 021-downloaded-artifact-hash-warning-is-decorative.md |
risk | high | ADR-004’s warning-only hash policy applied to the update path ⇒ verified-then-ignored artifacts on the one path a network attacker uses |
| 022 | 022-target-platform-set-never-stated-qt-ghost.md |
problem | mid | Target OS set stated only inside a QA gate; native-qt appears once and vanishes; “triads” still operative |
| 023 | 023-no-virtualization-strategy-for-single-pass-list.md |
problem | high | Single-pass immediate-mode + 5000-message scene with zero virtualization/windowing/recycling strategy, and no benchmark axis for history depth |
| 024 | 024-turso-promoted-with-no-adr-no-tier-no-owner.md |
problem | mid | Turso has 3 live roles + signed files in the runtime tree, 0 mentions in ADR/TECHSPEC/RFC/QA, no tier, no module home, readiness never re-verified |
| 025 | 025-predictor-tier-layout-window-and-scope-conflicts.md |
problem | mid | Predictor log tier has 3 answers; PREDICT §9 contradicts its own §12; ADR-019/TECHSPEC still train the discarded 5-minute target; PREDICT vs OQ-023 scope conflict |
| 026 | 026-oq-triage-blockers-stale-resolutions.md |
question | mid | Triage of all 27 OQs: 4 block the critical path (003/012/019/020/027), 4 “resolved” entries mislead, OQ-002 duplicated with the stale copy second |
| 027 | 027-canonical-serialization-undefined.md |
problem | high | The signature covers “the whole entry in canonical serialization” — the phrase occurs exactly twice (the rule and its TECHSPEC echo) and is defined nowhere; three serializations (signed JSON vs RON “canonical” copy) in the tree |
Cross-cutting conclusions (worth more than the individual findings)
Section titled “Cross-cutting conclusions (worth more than the individual findings)”- The corpus’s failure mode is one-directional propagation. OQ→ADR is maintained (12 dated markers, all mappings correct); ADR→downstream (TECHSPEC/RFC/QA) is not, and ADR→ADR amendment rewriting is not. That single mechanism explains findings 001, 002, 003, 004 (partly), 008, 011, 014, 018, 022, 025 — nine of twenty-six.
- Three ADRs are wrong in their bodies (ADR-008 GPUI, ADR-009 axes,
ADR-001 swappable list) and one in its load-bearing premise
(ADR-020/ADR-001
dlclose). The status legend has an unusedSupersededvalue. - The “surrounding machinery designed, leaf artifact missing” shape
recurs: capability IDs (020),
Engine/SearchEnginetraits (016), migration hooks (017), cache quota (013), localization (019), andStorageEngine’s delete/transaction/migrate methods. Each is cheap now and expensive once the format ships. - The most valuable single artifact missing is a v1 scope list (finding 011 + OQ-019). Secret chats, passkeys and calls entered v1 by ADR, not by survey; RFC says the opposite for secret chats.
fera-scene-v0has never been executed — the generator is a 15-LOC skeleton, and three independent agents (mine, oc4, oc5) found consequences of that (frozen params vs an assert; the governor adapting a frozen parameter).
- Intro (seq 4); crypto-tiering broadcast (seq 7); module-unload + cache
broadcast (seq 15); answered oc4’s ADR-022 freeze question + contested
oc4’s idea-04
#[repr(C)]resolution (seq 20). - Confirmed convergences with oc2 (no window layer / no display-list
producer — consistent with my 015/016/023), oc4 (ungated contract suite
= my 016’s subject), oc5 (
CELL_BUDGETvs frozen scene).
Next (if continued)
Section titled “Next (if continued)”- File the three cheap-but-frozen artifacts as concrete drafts: capability table (020), data-version/migration policy (017), cache quota (013) — each is a few paragraphs and blocks a format decision.
- Re-check
_history/icloud-snapshotonly if a contradiction above turns out to be a snapshot artifact. - Review other agents’ committed findings for doc-side contradictions (oc2/oc4/oc5 have posted several claims about ADR-023/030/024 wording).