# Review — vivify_abstraction.md and reify_phase2_spec.md against the live repos

The two documents are the strongest articulation of the system yet and largely implementable, but they were written without repo access and carry four factual drifts and two real design gaps.

- Reviewed 2026-07-11 against vivify-operators, vivify-inferences, pillars/logos, and the live Sutton inference (`inf_285ae7ab`)
- Companion files: [vivify_abstraction.md](vivify_abstraction.md), [reify_phase2_spec.md](reify_phase2_spec.md), reconciled revision in [reify_phase2_spec_r1.md](reify_phase2_spec_r1.md)

---

## What the code already proves

The documents describe a system that increasingly exists; two of their central principles have live demonstrations.

- Dual-Vocabulary Protocol (§2): the 2026-07-10 contamination fix made filing read left keywords only — membrane discipline enforced in code (operators commit `3944ecf`)
- Categorize/promote separation (§2): `promote.py` shipped 2026-07-10, exactly the "deciding and enacting are distinct" stage the abstraction claims
- Honest latency, two readers one truth, additive enrichment: all verifiable in the store today
- `signify` and `social_neurology` are grounded vocabulary — present in `pillars/logos/logos_schema_v01.json` and `logos_social_v01.json`

## Factual drift to correct

Four claims in the abstraction do not match the repos; each is a small fix that prevents large confusion.

- §1 operator list `(vivify, reify, payload, secrecy, freeze)` conflates the secret-server FABRIC with the inference pipeline — `payload/secrecy/freeze` belong to the secrets flow, not this system; the inference operators are the 9 logos operators plus pipeline stages
- §3 theorist bench "Dunbar, Machin, Ostrom, Tönnies, Douglas, Heath, Benedict" — live `_src` arrays actually cite Austin/Searle, Grice, Weber, Douglas, Dunbar/Tönnies/Ostrom, Granovetter/Glasl/Durkheim/Bandura; no Machin, Heath, or Benedict found
- §2 states typed tension and a past-threshold human-review gate as present fact; pillars/FLOW.md lists typed tension as unactualized (float only) and no review gate exists
- §1 "operators derived from the store's accumulated patterns" inverts provenance — operators were derived from `logos_combined_v01.json`; keep as normative direction, not history

## Design gap 1 — tension_delta category error

The spec's `tension_delta` types (structural/conflict/functional/resolution) are architectural node types, not per-account measurables.

- Functional tension is "rules in CLAUDE.md" — not a number an account carries; the spec turns a typology of the system into a per-account vector undefined at implementation time
- Recommendation (adopted in r1): deltas over the 8 logos dimensions plus the scalar tension_score delta — both already measured and membrane-validated

## Design gap 2 — terminal signatures outside the enums

The spec's example terminal values `resonance: aligned` and `authority: accountable` do not exist in `config/coordinates.json`, and `logos_fused` validates against those enums.

- Live enums: resonance `harmony|friction|illusion`, authority `sovereign|tribal|occult`
- `illusion → harmony` is already expressible; restored-authority vocabulary is not
- Decision required (surfaced in r1): reuse existing enums where expressible; grow enums only by deliberate `coordinates.json` change — never by example drift

## The good surprise — scale is half-built

The spec's "blocking dependency" is substantially implemented; the revision reconciles instead of restarting.

- `logos.structural` already carries `scale` and `layer` per inference (Sutton: `scale: institution`)
- `cross_scale.py` already builds Psi-Phi-Omega coordinate fingerprints and surfaces cross-scale isomorphic pairs — the spec's `cross_scale_analogy` concept and the neighbor-matching core of its precedent reader
- Remaining work is enum unification, corpus backfill (a structural_operator run), and requiring scale on the new container

## Smaller calls (adopted in r1)

- Operator name: `precedent`, not `resonate` — the abstraction's own terminology discipline forbids overloading the empathy axis
- `res_*` ids use the hash convention (`res_285ae7ab`), matching `inf_*`
- Enforce the no-import rule with a test, since the flat repo root makes convention the only wall
- `unresolved/` mirrors `unclustered/`; `promote.py`'s empty-paths branch is the ready-made pattern

<!-- llm: claude-fable-5 | 2026-07-11 | repos/pillars/reify_phase2/review_2026_07_11.md | created — review of the two consulted documents against live repo state; drift list, two design gaps, scale-already-built finding -->
