Session C_n Template — Grey-Zone Invariant Resolution
Usage: This is the shared framework for per-invariant grey-zone resolution sessions (one C_n per grey-zone entry identified by Session B). Individual C_n prompts live in the follow-up-prompt section of
docs/governance/invariant_classification_audit.mdand should reference this template by pointing at it. Each C_n prompt supplies the specific invariant context; this template supplies the framework every C_n session must follow.
1. What a Session C_n Is
Each Session C_n resolves exactly one grey-zone invariant flagged by Session B. The session produces a governance decision:
- universal — the invariant is substrate-independent after all. Either the original wording was fine, or a minor re-statement shows it is.
- emergent on [SD-.., ARC-..] — the invariant genuinely depends on specific substrates.
- re-state — the invariant should be re-worded to make a universal reading work. Commit the re-wording and classify as universal.
- retract — the invariant is ill-formed regardless of substrate and should be withdrawn. Status moves to
retracted,invariant_typestaysgrey_zonewith a retraction note. - reclassify claim_type — the claim is well-formed but is not an invariant of the REE architecture; it is a clinical, phenomenological, or empirical prediction that holds only conditional on REE modelling the target domain correctly. The entry moves out of
claim_type: invariantto a more appropriate type (typically a prediction or derived-prediction type). Flagged for this outcome during Session B user review: INV-047, INV-048, INV-061, INV-062 (see audit registry).
Only one of these outcomes lands per session. If the session cannot reach a clear outcome after genuine effort, the correct result is a narrower grey-zone entry with a sharper follow-up question — not a forced classification.
2. Read These First
- This template (you are here).
REE_assembly/docs/architecture/invariant_types.md— schema and classification criteria.- The relevant section of
REE_assembly/docs/governance/invariant_classification_audit.md— Session B’s reasoning about this specific invariant, including the candidate classifications and the follow-up question. - The invariant’s current YAML entry in
REE_assembly/docs/claims/claims.yaml(search for the INV- ID). - Any reference doc listed in the invariant’s
locationorsourcefields — oftendocs/invariants.mdordocs/processed/.... Read the surrounding context to understand what the invariant was meant to capture when it was written. - If the invariant’s candidate emergent substrates are listed, read the relevant SD/ARC entries and any
docs/architecture/*.mddoc that defines them.
Do not read other grey-zone invariants in the same session. Each C_n is deliberately single-focus to keep judgment clean.
3. Decision Procedure
Work through these questions in order:
Q1. Subject test
If the claim’s subject (what it is about) references REE-specific machinery (z_goal, z_world, z_harm, residue field, commitment boundary, hypothesis tag, stored/active distinction, etc.), ask: could the subject be re-stated in substrate-neutral terms without loss of meaning?
- Yes, re-statable cleanly → likely universal (with possible re-wording).
- No, the machinery is load-bearing → likely emergent.
- Not sure the subject has meaning at all under alternative substrates → likely emergent or retract.
Q2. Retract-and-check
Imagine retracting the candidate substrate(s) one by one. For each:
- Does the invariant become falsified (evidence says it’s wrong) → this is an evidence question, not a type question. The invariant stays well-formed; classify based on whether other substrates underwrite its subject.
- Does the invariant become unevidenced → this is also an evidence question. Same answer.
- Does the invariant become ill-formed (the subject loses coherence) → the substrate is genuinely underwriting the claim. emergent_from should list that substrate.
A common error: treating “unevidenced” as “ill-formed.” Evidence questions are about whether the claim is true; type questions are about whether the claim’s subject exists. Keep these separate.
Q3. Substrate plurality
If the invariant’s subject is underwritten by two or more substrates (e.g., commitment requires both a commitment boundary and a prospective attention channel), list all of them in emergent_from. An emergent invariant with multiple underwriters is normal.
Q4. Universal-but-REE-flavored
If the invariant is universal in principle but currently worded in REE-specific vocabulary, choose:
- re-state — rewrite the title/body in substrate-neutral terms, commit the rewrite, classify as universal.
- classify emergent — accept the REE-specific wording as the canonical form, point at the substrate(s). Usually the right call if the REE-specific terms have become load-bearing for the project’s reasoning, even if a universal version exists in principle.
Prefer re-statement when the universal form is genuinely cleaner and doesn’t lose precision. Prefer emergent when the REE-specific wording is doing real work.
Q5. Cannot decide
If after all of the above you still cannot classify confidently, the correct outcome is a narrower grey-zone entry with a sharper follow-up question. Write the narrower question, update the audit registry, and stop. This is not a failure — it is honest reporting.
Do not coin-flip between universal and emergent to “make progress.”
4. Applying the Decision
Outcome: universal (no re-wording)
In claims.yaml, for the target invariant:
- Replace
invariant_type: grey_zonewithinvariant_type: universal. - Remove
candidate_emergent_fromif present. - Update
noteswith: “Resolved universal in Session C_n. Rationale: ."
Outcome: universal (with re-wording)
- Edit
title(and any relevant body text) to the substrate-neutral form. Keep the ID. - Replace
invariant_type: grey_zonewithinvariant_type: universal. - Update
noteswith: “Re-stated and resolved universal in Session C_n. Prior wording: ' '. Rationale: ." - If the re-wording changes the reference doc, also edit
docs/invariants.md(or whatever is listed inlocation).
Outcome: emergent
- Replace
invariant_type: grey_zonewithinvariant_type: emergent. - Add
emergent_from: [SD-.., ARC-..]. Every ID inemergent_frommust also appear independs_on— if missing, add it todepends_ontoo. - If any substrate in
emergent_fromis belowactivestatus, addpending_substrate_reconfirmation: true. - Remove
candidate_emergent_fromif present. - Update
noteswith: “Resolved emergent in Session C_n. Rationale: ."
Outcome: retract
- Leave
invariant_type: grey_zonein place (so it shows up in future audits as “was grey, now retracted”). - Change
statustoretracted. - Update
noteswith: “Retracted in Session C_n. Rationale: <two sentences — what was ill-formed and why no substrate choice fixes it>."
Outcome: reclassify claim_type
Applies when the entry is a well-formed prediction about a target domain (e.g., human psychiatric syndromes, clinical pharmacology, dream phenomenology) rather than an architectural invariant of REE. This is a governance-level decision — if the schema does not yet include a dedicated prediction claim_type, pause and flag the gap to the user rather than forcing a type that does not exist.
If the target claim_type exists:
- Change
claim_typefrominvariantto the appropriate type. - Remove
invariant_typeandcandidate_emergent_fromfields (no longer meaningful off the invariant track). - Preserve
emergent_fromonly if the new claim_type schema supports it (most prediction types will not). - Update
noteswith: “Reclassified from claim_type: invariant in Session C_n. Rationale: <one sentence — why this is a prediction rather than an architectural invariant>." - Move the entry to the appropriate section of
docs/invariants.mdor to its new reference doc; updatelocationfield.
If the target claim_type does not yet exist in the schema:
- Leave the entry as-is in claims.yaml.
- Update the audit registry entry noting the schema gap.
- Surface the gap to the user as a governance schema decision. Do not invent a claim_type in this session.
Outcome: narrower grey-zone (cannot decide)
- Leave
invariant_type: grey_zonein place. - Update
candidate_emergent_fromif the narrower question changed it. - Update the entry’s note in the audit registry with the sharper follow-up question for Session C_n+1.
5. Update the Audit Registry
In docs/governance/invariant_classification_audit.md:
- Move the resolved invariant out of the “Grey Zone” section into “Clear Universal” or “Clear Emergent” as appropriate (retractions get a new “Retracted” section at the bottom).
- Replace its section body with:
- Resolved:
in Session C_n -
Outcome: universal emergent on [SD-..] re-stated universal retracted - Rationale:
- Resolved:
- Decrement the Grey Zone count in the Summary.
- Increment the appropriate bucket count in the Summary.
If the outcome was “narrower grey-zone,” leave the entry in place but update its follow-up question.
6. Validation and Commit
/opt/local/bin/python3 scripts/validate_claims.py— confirm 0 errors (or that any remaining errors are pre-existing and unrelated to the entry you just edited)./opt/local/bin/python3 scripts/build_claims_json.py— rebuild.- Spot-check the target entry in
docs/assets/data/claims.json.
Commit:
git add docs/claims/claims.yaml \
docs/assets/data/claims.json \
docs/governance/invariant_classification_audit.md
# plus docs/invariants.md if re-worded
git commit -m "Session C_n: resolve INV-XXX (<outcome>)"
git push origin HEAD:master
In REE_Working/: add a brief Recent Work entry to WORKSPACE_STATE.md and mark your TASK_CLAIMS.json entry status: "done".
7. Scope Discipline
A Session C_n touches:
- one invariant entry in claims.yaml,
- that invariant’s section in the audit registry,
- claims.json (rebuilt),
- possibly docs/invariants.md (only if the invariant was re-worded),
- WORKSPACE_STATE.md and TASK_CLAIMS.json.
It does not touch:
- other invariants,
- substrate claims (SD/ARC),
- other docs,
- the validator script,
generate_pending_review.py,- any experiment files.
If while resolving one grey-zone entry you notice that another grey-zone entry’s follow-up question is wrong, do not fix it in this session. Note the issue in your commit message and move on. The next C_n session can address it.
8. Key Principle
The goal of Session C_n is not to clear the grey zone at all costs. The goal is to produce a defensible governance decision for one invariant. If the honest outcome is “still ambiguous, here is a sharper question,” that is a successful session.
The registry is more valuable with 5 honest grey zones than with 5 forced classifications that governance will have to undo later.