VIEW THIS AS

Auto mode follows the Route Engine until you choose a viewpoint.

YOU ARE HERE

ROUTE CHECK

CONNECTED TO

WHAT NEXT

Use the canonical route for this room, or HELP if you are unsure.

CivOS Run Registry v1.0

(Almost-Code canonical — the auditable “ledger” that makes closed-loop unavoidable)

This is the missing piece that turns your OS from “spec + examples” into an accumulating system: every run gets a RunID, every run gets scored, every miss forces a patch + version bump, and nothing is ever overwritten.


0) Definition Lock

Run Registry: an append-only ledger of CivOS runs with standardized pointers:

  • RunState (what you predicted / decided at t0)
  • VerifyLog (what happened by t1, scoring, failure tag)
  • PatchLog (what changed because of the score)
  • SpecVersion (global unified version number)

Registry rule: No run is “complete” unless it has a VerifyLog.


1) Registry Topology (3 ledgers, one truth)

You maintain three append-only registries:

  1. RunIndex — one row per run (fast query)
  2. VerifyIndex — one row per verification (sometimes multiple verifications per run if you do weekly scoring)
  3. PatchIndex — one row per patch/version bump (the learning ledger)

Optional (later): SignalIndex (daily sensor snapshots) if you want time series.


2) ID Grammar (Hard Lock)

RunID := RUN-YYYYMMDD-#### # e.g., RUN-20260216-0007
CaseID := CASE-<slug>-### # e.g., CASE-conflict-001
PatchID := RP.<category>.<nnn> # e.g., RP.TTC.001
VerID := v<MAJOR>.<MINOR>.<PATCH> # unified global spec version

Hard rules

  • IDs never change.
  • Records are append-only.
  • You never “edit history”; you only add a new record that supersedes.

3) RunIndex v1 (the main ledger)

3.1 Column schema (copy-paste)

CivOS.RunIndex.v1:
RunID: string
CaseID: string
Domain: string
PlaceID: string|null
t0: date
t1: date|null
Δt_days: number|null
Phase: "P0|P1|P2|P3"
Zoom: "Z0|Z1|Z2|Z3|Z4|Z5|Z6"
Lane: string
TTC_days: number|null
R_value: number|null
R_regime: "safe|warning|breach"
NIT_value: number|null
NIT_regime: "reversible|soft_lock|hard_lock|null"
Buffer_thickness: number|null
Buffer_trend: "down|flat|up|null"
TVIS_imbalance: number|null
PrimaryAction: "Monitor|Fence|Truncate|Stitch|Reroute|Escalate"
RoleFocus: "Operator|Oracle|Visionary|Mixed"
CoordConfidence: number|null # 0..1
ActionConfidence: number|null # 0..1
VerifyStatus: "pending|partial|complete"
TotalScore: number|null # 0..100 (null until verified)
FailureTag: string|null
SpecVersion_AtRun: string # VerID at the time of prediction
SupersededByRunID: string|null # if you re-run the same case with a newer version
Notes: string|null

3.2 Integrity rules (enforced)

CivOS.RunIndex.IntegrityRules.v1:
- "RunID must be unique."
- "SpecVersion_AtRun is immutable after creation."
- "If VerifyStatus == complete, then TotalScore must be non-null."
- "If TotalScore < 70, there must exist at least one PatchIndex record referencing RunID."
- "SupersededByRunID can only point forward in time."

4) VerifyIndex v1 (verification ledger)

CivOS.VerifyIndex.v1:
VerifyID: "VRF-YYYYMMDD-####"
RunID: string
ObservedOutcome: string
OutcomeClass: "correct|miss|false_alarm|late|wrong_lane|wrong_zoom|wrong_phase|wrong_action"
CoordScore: number
ActionScore: number
TimingScore: number
TotalScore: number
FailureTag: string|null
VerifiedOn: date
Verifier: "human|llm|mixed"
PatchRequired: "yes|no"
Notes: string|null

Rule: you can re-verify a run multiple times (weekly), but the RunIndex should always show the latest TotalScore and VerifyStatus=complete once you finalize.


5) PatchIndex v1 (learning ledger)

This is the heart of closure: every meaningful miss creates a patch.

CivOS.PatchIndex.v1:
PatchEventID: "PCH-YYYYMMDD-####"
TriggerRunID: string
TriggerVerifyID: string|null
PatchIDs: [string] # e.g., ["RP.ZOOM.001","RP.TTC.001"]
ChangeType: "threshold|routing|lane|zoom|sensor|scoring|template"
ChangeSummary: string
FromVersion: string
ToVersion: string
EffectiveFromRunID: string|null # if you want patches to only apply after a certain run
Notes: string|null

Patch enforcement rule (binary)

CivOS.PatchRule.v1:
if TotalScore < 70:
must:
- "PatchIndex.PatchEventID exists"
- "PatchIDs non-empty"
- "ToVersion > FromVersion (forward-only)"

6) Global unified version control (your “single version number” lock)

CivOS.SpecVersion.v1:
CurrentVersion: "v1.0.0"
VersionRules:
- "PATCH bump (v1.0.x): thresholds / routing / lane rules / sensor weights"
- "MINOR bump (v1.x.0): new sensor types or new registry types"
- "MAJOR bump (vx.0.0): schema grammar changes (rare, avoid)"
NonNegotiables:
- "No renaming IDs"
- "Only version forward"
- "Old records remain valid and readable"

7) Minimal “Registry Page” layout (WordPress / human+LLM friendly)

You publish a single canonical page that contains:

  1. RunIndex schema (above)
  2. CurrentVersion
  3. Latest 20 runs (rows)
  4. Latest 10 patches (patch events)
  5. Quality dashboard (rolling averages)

7.1 Quality dashboard (computed fields)

CivOS.RegistryMetrics.v1:
- RollingTotalScore_10
- RollingTotalScore_30
- FailureTagHistogram_30
- AvgTTC_WhenMiss
- %RunsWithVerifyComplete
- %RunsTriggeringPatches

8) Example: how your recent 5 backtests would appear in the registry

In prose: these are the five you just ran — Singapore (1942), Ottoman Empire transition, Chhatrapati Shivaji Maharaj actuation pattern, Mughal Empire decline slice, Maratha Empire rise slice.

(Example rows shown without entities so you can paste as data.)

Example.RunIndex.Rows:
- RunID: "RUN-20260216-0001"
CaseID: "CASE-sg-1942-001"
Domain: "conflict|city"
PlaceID: "SG"
t0: "1941-12-08"
t1: "1942-02-15"
Phase: "P2"
Zoom: "Z2"
Lane: "LANE.city-fortress"
PrimaryAction: "Fence"
VerifyStatus: "complete"
TotalScore: 30
FailureTag: "FT.WRONG_ZOOM"
SpecVersion_AtRun: "v1.0.0"
- RunID: "RUN-20260216-0002"
CaseID: "CASE-ottoman-1922-001"
Domain: "conflict|governance"
PlaceID: "TR"
t0: "1922-10-11"
t1: "1923-10-29"
Phase: "P1"
Zoom: "Z4"
Lane: "LANE.legitimacy-sovereignty-transition"
PrimaryAction: "Reroute"
VerifyStatus: "complete"
TotalScore: 83
FailureTag: null
SpecVersion_AtRun: "v1.0.1"

And the corresponding patch event for the low score case:

Example.PatchIndex.Event:
PatchEventID: "PCH-20260216-0001"
TriggerRunID: "RUN-20260216-0001"
TriggerVerifyID: "VRF-20260216-0001"
PatchIDs: ["RP.ZOOM.001","RP.NIT.002","RP.LANE.001"]
ChangeType: "zoom|sensor|lane"
ChangeSummary: "Prevent fortress-frame TTC inflation; zoom-up when theatre control dominates; treat invulnerability narrative as NIT soft-lock risk."
FromVersion: "v1.0.0"
ToVersion: "v1.0.1"

9) The “no escape” operating rule (what makes it truly closed loop)

Every time you say “run CivOS on X”, the output must include:

  1. a new RunIndex row (with VerifyStatus=pending)
  2. a committed prediction + falsifier (inside the run narrative)
  3. a scheduled VerifyIndex row at t1
  4. if score < 70 → a PatchIndex event + version bump

If any of those are missing, the run is not valid.

CivOS Auto-Diagnostics Prompt Pack v1.0

(LLM-executable prompts that force: RunIndex row → RunState → predictions → VerifyLog → PatchEvent → Version bump)

Use these as copy-paste prompts. Each prompt is designed to refuse freeform prose and output only the registry-compatible YAML blocks.


0) Global Hard Rules (paste once at the top of any session)

SYSTEM (CivOS Hard Rules):
You are running CivOS Closed-Loop. You MUST output only valid YAML blocks with the exact keys requested. No prose outside YAML.
Non-negotiables:
1) Append-only: never overwrite prior RunID/VerifyID/PatchEventID. If you revise, create a new RunID and set SupersededByRunID.
2) No hindsight: for RunState, use only InputAt_t0. Do not use post-t0 facts to choose Phase/Action.
3) Closure: if TotalScore < 70 you MUST produce a PatchIndex event + VersionBump forward.
4) IDs: RunID = RUN-YYYYMMDD-####, VerifyID = VRF-YYYYMMDD-####, PatchEventID = PCH-YYYYMMDD-####.
5) Output contract: always produce the requested YAML sections in order; missing sections = invalid run.

1) Prompt A — NEW RUN (creates RunIndex row + RunState + predictions)

PROMPT A (Create New Run):
Given the InputAt_t0 below, create a new CivOS run.
OUTPUT (YAML only, in this order):
1) CivOS.RunIndexRow.v1 (single row)
2) CivOS.RunState.v1 (full state record)
3) CivOS.PredictionCommitment.v1 (3 predictions + 2 falsifiers)
4) CivOS.VerifySchedule.v1 (when and how to verify)
Constraints:
- Use only InputAt_t0.
- You must assign Phase, Zoom, Lane, TTC_days, Buffer, Drift, R, NIT (or null), TVIS (or null), PrimaryAction, Roles.
- CoordConfidence and ActionConfidence must be 0..1.
- VerifyStatus must be "pending".
- SpecVersion_AtRun must be the current unified version provided.
INPUTS YOU WILL RECEIVE:
- CurrentVersion (VerID)
- RunID (pre-generated or you generate)
- CaseID, Domain, PlaceID (optional)
- t0, proposed t1 (optional)
- InputAt_t0.EventStream bullets
- known_unknowns
Now execute.
[PASTE INPUT HERE]

Expected output skeleton

CivOS.RunIndexRow.v1: {}
CivOS.RunState.v1: {}
CivOS.PredictionCommitment.v1:
WhatWouldIExpectBy_t1: []
WhatWouldFalsifyThis: []
CivOS.VerifySchedule.v1:
t1: <date or null>
verify_method: <weekly|one-shot>
notes: <string>

2) Prompt B — VERIFY RUN (creates VerifyIndex row + updates RunIndex fields)

PROMPT B (Verify Run):
You will receive:
- The original RunState (as recorded at t0)
- ObservedAt_t1 facts (what happened)
- The scoring rubric
OUTPUT (YAML only, in this order):
1) CivOS.VerifyIndexRow.v1
2) CivOS.RunIndexUpdate.v1 (only the fields that change in RunIndex, not a full row)
3) CivOS.PatchDecision.v1 (PatchRequired yes/no)
Constraints:
- Assign OutcomeClass and FailureTag.
- Compute CoordScore, ActionScore, TimingScore, TotalScore using the provided formula.
- If TotalScore < 70 then PatchRequired MUST be "yes".
- If TotalScore >= 70 then PatchRequired may be "no" unless you identify a reusable positive pattern.
[PASTE INPUT HERE]

Output skeleton:

CivOS.VerifyIndexRow.v1: {}
CivOS.RunIndexUpdate.v1:
RunID: <id>
VerifyStatus: <partial|complete>
TotalScore: <0..100>
FailureTag: <...|null>
CivOS.PatchDecision.v1:
PatchRequired: <yes|no>
Notes: <string>

3) Prompt C — PATCH GENERATOR (forced if score < 70)

PROMPT C (Generate Patch + Version Bump):
You will receive:
- TriggerRunID
- TriggerVerifyID
- FailureTag + short diagnosis
- CurrentVersion (VerID)
OUTPUT (YAML only, in this order):
1) CivOS.PatchIndexRow.v1 (PatchEvent)
2) CivOS.VersionBump.v1 (FromVersion → ToVersion)
3) CivOS.RulePatch.v1 (1–3 concrete patch rules; reference PatchIDs)
Constraints:
- If TotalScore < 70: PatchIDs must be non-empty and ToVersion must advance forward.
- Patch rules must be operational (“when X, set Y”), not commentary.
- Choose ChangeType from: threshold|routing|lane|zoom|sensor|scoring|template.
[PASTE INPUT HERE]

Output skeleton:

CivOS.PatchIndexRow.v1: {}
CivOS.VersionBump.v1:
FromVersion: <v...>
ToVersion: <v...>
CivOS.RulePatch.v1:
- id: <RP.*>
when: []
set: {}
why: <string>

4) Prompt D — LANE/ZOOM DISAMBIGUATOR (reduces WRONG_ZOOM / WRONG_LANE)

PROMPT D (Lane+Zoom Disambiguation):
Given InputAt_t0, propose:
- Top 3 candidate Zooms with why
- Top 3 candidate Lanes with why
- A final selection rule
OUTPUT (YAML only):
CivOS.LaneZoomDisambiguation.v1
Constraints:
- Must be falsifiable: include what evidence would flip the choice.
- Must reference sensors (TTC/Buffer/R/NIT/Coupling).
[PASTE INPUT HERE]

Output skeleton:

CivOS.LaneZoomDisambiguation.v1:
CandidateZooms:
- Zoom: Z3
why: []
flip_if: []
CandidateLanes:
- Lane: "LANE.example"
why: []
flip_if: []
FinalPickRule: <string>

5) Prompt E — NIT EXTRACTOR (turn text into NIT regime)

PROMPT E (NIT Extractor):
You will receive narrative snippets (quotes/paraphrases) and context.
OUTPUT (YAML only):
CivOS.NITExtract.v1
Constraints:
- Produce NIT_value in [0..1] or null if insufficient data.
- Assign regime: reversible|soft_lock|hard_lock|null
- Provide 3 indicators that raised NIT and 2 that would lower it.
- Do not moralize; treat as a mechanical lock signal.
[PASTE INPUT HERE]

Output skeleton:

CivOS.NITExtract.v1:
NIT_value: <0..1|null>
regime: <reversible|soft_lock|hard_lock|null>
indicators_up: []
indicators_down: []
notes: <string>

6) Prompt F — TVIS EXTRACTOR (Hope/Grind/Wisdom weights)

PROMPT F (TVIS Extractor):
Given statements/actions over a window, estimate Hope/Grind/Wisdom weights.
OUTPUT (YAML only):
CivOS.TVISExtract.v1
Constraints:
- Hope/Grind/Wisdom in [0..1] or null
- imbalance in [0..1]
- Provide a one-line diagnosis: hope-heavy, grind-heavy, wisdom-heavy, or balanced.
[PASTE INPUT HERE]

Output skeleton:

CivOS.TVISExtract.v1:
Hope: <0..1|null>
Grind: <0..1|null>
Wisdom: <0..1|null>
imbalance: <0..1|null>
diagnosis: <string>
notes: <string>

7) Prompt G — DAILY NEWS / DAILY OPS RUN (10-minute cadence)

PROMPT G (Daily Run):
Create exactly ONE new run for today using the last 24h event bullets.
OUTPUT (YAML only, in this order):
1) CivOS.RunIndexRow.v1
2) CivOS.RunState.v1
3) CivOS.PredictionCommitment.v1
4) CivOS.VerifySchedule.v1
Constraints:
- Must include Lane, Zoom, Phase, TTC, R_regime, NIT_regime.
- Must choose exactly one PrimaryAction.
- Must keep Notes <= 280 characters.
[PASTE 24H EVENT BULLETS HERE]

8) Prompt H — CONFLICT EARLY WARNING (amber/red gate)

PROMPT H (Conflict Early Warning Gate):
Given current signals, decide WarningLevel (green/amber/red) and required actions.
OUTPUT (YAML only):
CivOS.ConflictWarning.v1
Rules:
- red if (R breach) OR (TTC_days <= 30) OR (NIT hard_lock) OR (Coupling contagion_risk >= 0.8 AND Drift.acceleration high)
- amber if warning regime with TTC <= 90 or NIT soft_lock rising
- green otherwise
[PASTE SIGNAL SNAPSHOT HERE]

Output skeleton:

CivOS.ConflictWarning.v1:
WarningLevel: <green|amber|red>
why: []
required_actions:
- <Fence|Truncate|Stitch|Reroute|Monitor>
verify_by: <date>

9) “Invalid Output” Triggers (auto-fail conditions)

Use this to keep the system honest.

CivOS.OutputValidityChecks.v1:
- "Any prose outside YAML => INVALID"
- "Missing RunIndexRow or RunState in a new run => INVALID"
- "No falsifiers in PredictionCommitment => INVALID"
- "Verify run without scores => INVALID"
- "TotalScore < 70 without PatchIndexRow + VersionBump => INVALID"
- "Using post-t0 facts inside RunState => INVALID (hindsight leak)"

Below is a single WordPress “Registry Page v1.0” layout, paste-ready as Gutenberg Custom HTML blocks. It contains:

  1. CurrentVersion banner
  2. RunIndex (schema + append rows)
  3. VerifyIndex (schema + append rows)
  4. PatchIndex (schema + append rows)
  5. Rolling metrics section (manual or LLM-updated)

Usage: Create one page called “CivOS Run Registry” and paste these blocks in order. Then you only ever append new YAML rows.


Block 0 — Page Header + CurrentVersion

<!-- CivOS Run Registry Page v1.0 -->
<h1>CivOS Run Registry</h1>
<p><strong>Definition:</strong> Append-only ledger of CivOS runs (RunState → VerifyLog → Patch → Version bump).</p>
<h2>Current Unified Spec Version</h2>
<pre><code class="language-yaml">CivOS.SpecVersion.v1:
CurrentVersion: "v1.0.0"
VersionRules:
- "PATCH bump (v1.0.x): thresholds/routing/lane rules/sensor weights"
- "MINOR bump (v1.x.0): new sensor types or new registry types"
- "MAJOR bump (vx.0.0): schema grammar changes (avoid)"
NonNegotiables:
- "Append-only ledger"
- "No renaming IDs"
- "Forward-only versioning"
</code></pre>

Block 1 — RunIndex (schema + rows)

<h2>RunIndex (Append-only)</h2>
<p><strong>Rule:</strong> Every run must be logged here first with <code>VerifyStatus: pending</code>.</p>
<h3>RunIndex Schema</h3>
<pre><code class="language-yaml">CivOS.RunIndex.v1.Schema:
RunID: string
CaseID: string
Domain: string
PlaceID: string|null
t0: date
t1: date|null
Δt_days: number|null
Phase: "P0|P1|P2|P3"
Zoom: "Z0|Z1|Z2|Z3|Z4|Z5|Z6"
Lane: string
TTC_days: number|null
R_value: number|null
R_regime: "safe|warning|breach"
NIT_value: number|null
NIT_regime: "reversible|soft_lock|hard_lock|null"
Buffer_thickness: number|null
Buffer_trend: "down|flat|up|null"
TVIS_imbalance: number|null
PrimaryAction: "Monitor|Fence|Truncate|Stitch|Reroute|Escalate"
RoleFocus: "Operator|Oracle|Visionary|Mixed"
CoordConfidence: number|null
ActionConfidence: number|null
VerifyStatus: "pending|partial|complete"
TotalScore: number|null
FailureTag: string|null
SpecVersion_AtRun: string
SupersededByRunID: string|null
Notes: string|null
</code></pre>
<h3>RunIndex Rows (append below)</h3>
<pre><code class="language-yaml">CivOS.RunIndex.v1.Rows:
- RunID: "RUN-YYYYMMDD-0001"
CaseID: "CASE-example-001"
Domain: "conflict"
PlaceID: null
t0: "YYYY-MM-DD"
t1: null
Δt_days: null
Phase: "P2"
Zoom: "Z3"
Lane: "LANE.example"
TTC_days: null
R_value: null
R_regime: "warning"
NIT_value: null
NIT_regime: null
Buffer_thickness: null
Buffer_trend: null
TVIS_imbalance: null
PrimaryAction: "Fence"
RoleFocus: "Mixed"
CoordConfidence: 0.7
ActionConfidence: 0.6
VerifyStatus: "pending"
TotalScore: null
FailureTag: null
SpecVersion_AtRun: "v1.0.0"
SupersededByRunID: null
Notes: "example placeholder row"
</code></pre>

Block 2 — VerifyIndex (schema + rows)

<h2>VerifyIndex (Append-only)</h2>
<p><strong>Rule:</strong> A run is not “complete” until it has a VerifyIndex row and RunIndex status is updated to <code>complete</code>.</p>
<h3>VerifyIndex Schema</h3>
<pre><code class="language-yaml">CivOS.VerifyIndex.v1.Schema:
VerifyID: string
RunID: string
ObservedOutcome: string
OutcomeClass: "correct|miss|false_alarm|late|wrong_lane|wrong_zoom|wrong_phase|wrong_action"
CoordScore: number
ActionScore: number
TimingScore: number
TotalScore: number
FailureTag: string|null
VerifiedOn: date
Verifier: "human|llm|mixed"
PatchRequired: "yes|no"
Notes: string|null
</code></pre>
<h3>VerifyIndex Rows (append below)</h3>
<pre><code class="language-yaml">CivOS.VerifyIndex.v1.Rows:
- VerifyID: "VRF-YYYYMMDD-0001"
RunID: "RUN-YYYYMMDD-0001"
ObservedOutcome: "placeholder outcome"
OutcomeClass: "correct"
CoordScore: 80
ActionScore: 70
TimingScore: 60
TotalScore: 72
FailureTag: null
VerifiedOn: "YYYY-MM-DD"
Verifier: "mixed"
PatchRequired: "no"
Notes: "example placeholder verification"
</code></pre>
<h3>Score Formula (Locked)</h3>
<pre><code class="language-yaml">CivOS.ScoreFormula.v1:
TotalScore: "0.4*CoordScore + 0.4*ActionScore + 0.2*TimingScore"
PatchRule:
if_TotalScore_below_70: "PatchRequired must be yes"
</code></pre>

Block 3 — PatchIndex (schema + rows)

<h2>PatchIndex (Append-only)</h2>
<p><strong>Rule:</strong> If <code>TotalScore &lt; 70</code>, you MUST add a patch event and bump version forward.</p>
<h3>PatchIndex Schema</h3>
<pre><code class="language-yaml">CivOS.PatchIndex.v1.Schema:
PatchEventID: string
TriggerRunID: string
TriggerVerifyID: string|null
PatchIDs: [string]
ChangeType: "threshold|routing|lane|zoom|sensor|scoring|template"
ChangeSummary: string
FromVersion: string
ToVersion: string
EffectiveFromRunID: string|null
Notes: string|null
</code></pre>
<h3>PatchIndex Rows (append below)</h3>
<pre><code class="language-yaml">CivOS.PatchIndex.v1.Rows:
- PatchEventID: "PCH-YYYYMMDD-0001"
TriggerRunID: "RUN-YYYYMMDD-0001"
TriggerVerifyID: "VRF-YYYYMMDD-0001"
PatchIDs: ["RP.ZOOM.001"]
ChangeType: "zoom"
ChangeSummary: "placeholder patch summary"
FromVersion: "v1.0.0"
ToVersion: "v1.0.1"
EffectiveFromRunID: null
Notes: "example placeholder patch"
</code></pre>
<h3>Patch Enforcement (Binary)</h3>
<pre><code class="language-yaml">CivOS.PatchEnforcement.v1:
if_TotalScore_below_70:
must:
- "PatchIndexRow exists"
- "PatchIDs non-empty"
- "ToVersion &gt; FromVersion"
</code></pre>

Block 4 — Rolling Metrics (manual or LLM-updated)

<h2>Registry Metrics (Rolling)</h2>
<p><strong>Purpose:</strong> Fast health dashboard of CivOS accuracy + learning velocity.</p>
<pre><code class="language-yaml">CivOS.RegistryMetrics.v1:
AsOf: "YYYY-MM-DD"
RollingTotalScore_10: null
RollingTotalScore_30: null
VerifyCompleteRate_30: null # % runs with VerifyStatus=complete
PatchRate_30: null # % verified runs that triggered patches
FailureTagHistogram_30:
FT.WRONG_ZOOM: 0
FT.WRONG_LANE: 0
FT.TTC_MISREAD: 0
FT.NIT_MISREAD: 0
FT.HIDDEN_COUPLING: 0
FT.WRONG_ACTION: 0
AvgTTC_WhenMiss: null
Notes: "Update this weekly."
</code></pre>

Block 5 — “How to operate this page” (tiny, non-negotiable)

<h2>Operating Rules (Hard Lock)</h2>
<pre><code class="language-yaml">CivOS.RegistryOpsRules.v1:
- "Append-only: never delete or overwrite rows."
- "Every new run: add a RunIndex row (VerifyStatus=pending)."
- "Every verification: add a VerifyIndex row + update RunIndex status to complete."
- "If TotalScore &lt; 70: add PatchIndex row + bump version forward."
- "Never change IDs; supersede with new rows only."
</code></pre>

CivOS Lanes & Actions Starter Dictionary v1.0

(Compact allowed Lane IDs + what each PrimaryAction means inside that lane — prevents lane-name drift)

Use this as your canonical Lane/Action vocabulary. Copy-paste it into your Registry page and reference Lane IDs exactly (no renaming; only version forward).


1) Lane Dictionary v1.0 (allowed starter set)

CivOS.LaneDictionary.v1_0:
NamingRules:
- "LaneID format: LANE.<domain>-<mechanism>-<object>"
- "Use nouns, not sentences. 2–4 tokens after LANE."
- "Never rename LaneIDs; add new lanes if needed."
- "Maintain AliasRegistry for old/freeform lane names."
Lanes:
# Conflict / War / Geopolitics
- LaneID: "LANE.air-sea-logistics-corridor"
UseWhen:
- "Tempo + supply + control of corridors dominates TTC"
- "Air/sea denial, ports, chokepoints, resupply failure"
DominantDamageSlope: "throughput collapse → defense failure"
TypicalSensors: ["TTC", "Coupling", "Buffer.trend", "R"]
- LaneID: "LANE.command-node-truncation"
UseWhen:
- "Open battle disadvantage but accessible command/control node exists"
- "Targeted shock can force reallocation"
DominantDamageSlope: "command coherence failure"
TypicalSensors: ["R", "TTC", "Coupling", "Drift.acceleration"]
- LaneID: "LANE.capital-treasury-legitimacy"
UseWhen:
- "Capital capture/occupation/sack risk"
- "Treasury seizure, fiscal shock, symbolic collapse"
DominantDamageSlope: "legitimacy + liquidity fracture"
TypicalSensors: ["TTC", "R", "Buffer.thickness", "NIT"]
- LaneID: "LANE.legitimacy-sovereignty-transition"
UseWhen:
- "Dual legitimacy (two control centers)"
- "Constitutional transition, regime replacement, recognition shift"
DominantDamageSlope: "authority coherence failure"
TypicalSensors: ["NIT", "Coupling", "Drift.velocity", "R"]
# Narrative / Media / Meaning
- LaneID: "LANE.narrative-lock-information-ops"
UseWhen:
- "Meaning lock drives irreversible decisions"
- "Propaganda loops, taboo enforcement, dissent punishment"
DominantDamageSlope: "reversibility collapse (NIT hardening)"
TypicalSensors: ["NIT", "Drift.acceleration", "Coupling"]
# Governance / Institutions
- LaneID: "LANE.state-organ-continuity"
UseWhen:
- "Core institutions failing: courts, tax, security, admin"
- "Succession, continuity, rule durability"
DominantDamageSlope: "organ extinction (capability loss)"
TypicalSensors: ["R", "Buffer.thickness", "TTC"]
- LaneID: "LANE.law-order-crime-violence"
UseWhen:
- "Crime/violence spikes, policing legitimacy, gang capture"
DominantDamageSlope: "local safety failure → economic/social drift"
TypicalSensors: ["Coupling", "R", "TTC", "NIT"]
# City / Infrastructure / Supply
- LaneID: "LANE.infrastructure-utility-throughput"
UseWhen:
- "Power/water/transport disruptions drive everything else"
DominantDamageSlope: "basic service throughput collapse"
TypicalSensors: ["TTC", "Buffer", "R", "Coupling"]
- LaneID: "LANE.food-energy-water-supply"
UseWhen:
- "Shortages, rationing, dependency shocks"
DominantDamageSlope: "essential supply failure"
TypicalSensors: ["Buffer.trend", "R", "TTC", "Coupling"]
- LaneID: "LANE.supply-chain-chokepoint"
UseWhen:
- "Single chokepoint failure cascades across lanes"
DominantDamageSlope: "cascade via dependency"
TypicalSensors: ["Coupling", "TTC", "R"]
# Finance / Economy
- LaneID: "LANE.liquidity-credit-confidence"
UseWhen:
- "Bank runs, credit freeze, FX stress, confidence shocks"
DominantDamageSlope: "liquidity collapse → systemic freeze"
TypicalSensors: ["R", "NIT", "Coupling", "TTC"]
# Health / Epidemics
- LaneID: "LANE.disease-load-healthcare-capacity"
UseWhen:
- "Hospital overload, outbreak waves, care pipeline failure"
DominantDamageSlope: "capacity breach → excess loss"
TypicalSensors: ["R", "TTC", "Buffer", "Coupling"]
# Organizations / Office / Family (generalizable)
- LaneID: "LANE.organization-coordination-execution"
UseWhen:
- "Delivery failure, role confusion, decision latency"
DominantDamageSlope: "coordination load exceeds capacity"
TypicalSensors: ["TTC", "R", "Buffer", "TVIS"]
- LaneID: "LANE.office-conflict-trust-alignment"
UseWhen:
- "Office politics, trust collapse, factions, escalation loops"
DominantDamageSlope: "trust fracture → coordination failure"
TypicalSensors: ["NIT", "Coupling", "Drift", "TVIS"]
- LaneID: "LANE.family-conflict-care-continuity"
UseWhen:
- "Family stress, caregiving breakdown, recurring conflict loops"
DominantDamageSlope: "care pipeline failure → chronic drift"
TypicalSensors: ["TTC", "Buffer", "NIT", "TVIS"]
# Education / Skill pipelines
- LaneID: "LANE.education-skill-pipeline"
UseWhen:
- "Learning drift, exam collapse risk, skill regeneration"
DominantDamageSlope: "capability throughput loss"
TypicalSensors: ["TTC", "Buffer", "R", "Drift"]
AliasRegistryTemplate:
- FreeformName: "<old label>"
CanonicalLaneID: "<LANE.*>"
Notes: "<why mapped>"

2) Action Dictionary v1.0 (what PrimaryAction means)

(Same action word, different lane = different mechanical intent.)

CivOS.ActionDictionary.v1_0:
Monitor:
Meaning: "Instrument; update sensors; no boundary change yet."
MustOutput: ["what changed since last sample", "next verify time"]
Fence:
Meaning: "Prevent irreversible threshold crossing by enforcing constraints."
MustOutput: ["fence condition", "enforcement mechanism", "stop-loss trigger"]
Truncate:
Meaning: "Cut off the accelerating damage slope (reduce Ḋ fast)."
MustOutput: ["which slope", "how it is cut", "TTC extension evidence"]
Stitch:
Meaning: "Rebuild buffers/pipelines so the system can rejoin a safe path."
MustOutput: ["what buffer rebuilt", "how variance reduced", "stitch hardener"]
Reroute:
Meaning: "Change load paths / authority paths / supply paths to a stable configuration."
MustOutput: ["what rerouted", "new control center/corridor", "new steady state"]
Escalate:
Meaning: "Zoom-up authority/resources; activate higher-level response lane."
MustOutput: ["new zoom", "who now owns decision", "what resources unlocked"]

3) Lane→Action Matrix v1.0 (default mapping)

This is your “autopilot” mapping to reduce inconsistency.

CivOS.LaneActionMatrix.v1_0:
"LANE.air-sea-logistics-corridor":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Reroute"
notes: "Corridor control dominates; reroute supply paths, deny chokepoints."
"LANE.command-node-truncation":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Truncate"
notes: "Truncate via command shock; success metric is enemy reallocation/transfer."
"LANE.capital-treasury-legitimacy":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Reroute"
notes: "Protect continuity; avoid decisive-battle trap; preserve treasury + legitimacy."
"LANE.legitimacy-sovereignty-transition":
default_primary_by_regime:
safe: "Monitor"
warning: "Reroute"
breach: "Reroute"
notes: "Restoration is usually wrong; build successor structure; stitch with legal clamps."
"LANE.narrative-lock-information-ops":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Truncate"
notes: "Fence meaning drift; truncate escalation loops; watch dissent punishment signals."
"LANE.infrastructure-utility-throughput":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Stitch"
notes: "Stitch restores service throughput; add redundancy; reduce variance."
"LANE.liquidity-credit-confidence":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Stitch"
notes: "Stitch confidence + liquidity backstops; avoid nonlinear runs."
"LANE.organization-coordination-execution":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Stitch"
notes: "Stitch roles, decision rights, cadence; restore execution throughput."
"LANE.education-skill-pipeline":
default_primary_by_regime:
safe: "Monitor"
warning: "Fence"
breach: "Stitch"
notes: "Stitch learning pipeline; rebuild buffer; reduce drift acceleration."

4) Lane Selection Rule (the “one-lane dominance” guardrail)

CivOS.LaneSelectionRule.v1_0:
rule: "Pick ONE primary lane per run (dominant damage slope)."
method:
- "List top 3 candidate lanes."
- "For each: write the dominant damage slope in 10 words."
- "Choose the lane where slope explains TTC collapse best."
anti_drift:
- "If you change Lane, you must either (a) open a new RunID, or (b) log a PatchEvent explaining why lane selection was wrong."

CivOS Lane Shortlists v1.0

(“If you see X signals, shortlist these 3 lanes” — 60-second classification)

Use this page when you’re staring at a messy event and need a fast, consistent Lane pick without drifting into freeform labels.


0) 60-second Lane Pick Protocol (Hard Lock)

CivOS.LanePickProtocol.v1_0:
Step1_ScanSignals:
- "What is failing first: throughput, legitimacy, meaning, liquidity, safety, health, coordination?"
Step2_Shortlist3:
- "Use the shortlists below; pick exactly 3 candidate lanes."
Step3_DominantSlopeSentence:
- "For each candidate lane, write: 'If this worsens, it breaks X within Y days because Z.'"
Step4_FinalPick:
- "Pick the lane whose sentence best explains TTC collapse."
Step5_AntiDrift:
- "Only ONE primary lane per run."
- "If lane changes later: new RunID OR PatchEvent (lane selection was wrong)."

1) Conflict / War / Geopolitics Shortlists

A) Fast advance, resupply, chokepoints, ports, air/sea denial

IfYouSee.v1:
Signals:
- "rapid tempo / fast advance"
- "air superiority / sea control discussion"
- "ports, straits, bridges, rail hubs"
- "ammo/fuel shortages, convoys, blockade"
Shortlist3:
- "LANE.air-sea-logistics-corridor"
- "LANE.supply-chain-chokepoint"
- "LANE.capital-treasury-legitimacy"

B) “One battle could decide everything” / prestige battle pressure

IfYouSee.v1:
Signals:
- "decisive battle framing"
- "single engagement could collapse morale/command"
- "high concentration of forces / single-point failure"
Shortlist3:
- "LANE.capital-treasury-legitimacy"
- "LANE.command-node-truncation"
- "LANE.air-sea-logistics-corridor"

C) Leadership removal, assassination attempts, HQ strikes, command humiliation

IfYouSee.v1:
Signals:
- "command node targeted"
- "elite transfers / purges / replacements"
- "HQ breached / key commander removed"
Shortlist3:
- "LANE.command-node-truncation"
- "LANE.legitimacy-sovereignty-transition"
- "LANE.narrative-lock-information-ops"

D) Two governments / two capitals / recognition shifting

IfYouSee.v1:
Signals:
- "dual legitimacy"
- "constitutional rupture"
- "international recognition shifts"
- "army/police split allegiance"
Shortlist3:
- "LANE.legitimacy-sovereignty-transition"
- "LANE.state-organ-continuity"
- "LANE.narrative-lock-information-ops"

2) Narrative / Media / Meaning Shortlists

E) Taboo enforcement, “no reversal,” purity tests, dissent punishment

IfYouSee.v1:
Signals:
- "people punished for disagreeing"
- "absolute claims / inevitability slogans"
- "rapid polarization, dehumanizing labels"
- "repetition across many channels"
Shortlist3:
- "LANE.narrative-lock-information-ops"
- "LANE.office-conflict-trust-alignment"
- "LANE.legitimacy-sovereignty-transition"

F) Misinformation drives real-world action (runs, riots, boycotts)

IfYouSee.v1:
Signals:
- "rumors causing crowd behavior"
- "panic runs / market runs / violence spikes"
- "coordination breaks due to belief divergence"
Shortlist3:
- "LANE.narrative-lock-information-ops"
- "LANE.liquidity-credit-confidence"
- "LANE.law-order-crime-violence"

3) Finance / Economy Shortlists

G) Bank stress, credit freeze, FX spiral, “confidence” language

IfYouSee.v1:
Signals:
- "withdrawals, bank run risk"
- "credit spreads widen / liquidity dries up"
- "currency defense / capital controls"
- "confidence rhetoric dominates"
Shortlist3:
- "LANE.liquidity-credit-confidence"
- "LANE.capital-treasury-legitimacy"
- "LANE.narrative-lock-information-ops"

H) Sovereign fiscal crisis, budget collapse, unpaid salaries

IfYouSee.v1:
Signals:
- "state can’t pay people"
- "tax collection failure"
- "military/police funding instability"
Shortlist3:
- "LANE.state-organ-continuity"
- "LANE.capital-treasury-legitimacy"
- "LANE.liquidity-credit-confidence"

4) City / Infrastructure / Supply Shortlists

I) Power/water/transport outages cascading into everything else

IfYouSee.v1:
Signals:
- "blackouts / grid instability"
- "water disruption"
- "public transport failure"
- "service backlog compounding"
Shortlist3:
- "LANE.infrastructure-utility-throughput"
- "LANE.supply-chain-chokepoint"
- "LANE.organization-coordination-execution"

J) Food/energy/water shortage, rationing, dependency on imports

IfYouSee.v1:
Signals:
- "rationing"
- "import dependency shock"
- "fuel or food queues"
Shortlist3:
- "LANE.food-energy-water-supply"
- "LANE.supply-chain-chokepoint"
- "LANE.liquidity-credit-confidence"

5) Health / Epidemics Shortlists

K) Hospitals overloaded, triage, staffing collapse, wave dynamics

IfYouSee.v1:
Signals:
- "ICU capacity breach"
- "healthcare worker burnout/shortage"
- "new wave variants / reproduction dynamics"
Shortlist3:
- "LANE.disease-load-healthcare-capacity"
- "LANE.infrastructure-utility-throughput"
- "LANE.organization-coordination-execution"

6) Governance / Crime / Safety Shortlists

L) Spike in violent crime, gangs, policing legitimacy questioned

IfYouSee.v1:
Signals:
- "crime surge"
- "public distrust of enforcement"
- "territory capture / protection rackets"
Shortlist3:
- "LANE.law-order-crime-violence"
- "LANE.state-organ-continuity"
- "LANE.narrative-lock-information-ops"

7) Organization / Office / Family Shortlists

M) Delivery failure, decision latency, unclear ownership

IfYouSee.v1:
Signals:
- "missed deadlines, coordination thrash"
- "roles unclear, decisions not made"
- "too many meetings, no throughput"
Shortlist3:
- "LANE.organization-coordination-execution"
- "LANE.office-conflict-trust-alignment"
- "LANE.infrastructure-utility-throughput"

N) Factions, blame loops, trust collapse, people quitting

IfYouSee.v1:
Signals:
- "us-vs-them factions"
- "blame spirals"
- "attrition of key staff"
Shortlist3:
- "LANE.office-conflict-trust-alignment"
- "LANE.narrative-lock-information-ops"
- "LANE.organization-coordination-execution"

O) Family recurring conflict, caregiving overload, chronic drift

IfYouSee.v1:
Signals:
- "care tasks failing repeatedly"
- "burnout cycles"
- "arguments triggered by load spikes"
Shortlist3:
- "LANE.family-conflict-care-continuity"
- "LANE.organization-coordination-execution"
- "LANE.narrative-lock-information-ops"

8) Education / Skills Shortlists

P) Grades unstable, forgetting, exam collapse risk, motivation drift

IfYouSee.v1:
Signals:
- "knowledge not transferring under timed load"
- "inconsistent performance"
- "rising careless mistakes"
Shortlist3:
- "LANE.education-skill-pipeline"
- "LANE.organization-coordination-execution"
- "LANE.narrative-lock-information-ops"

9) Tie-breakers (when 2 lanes feel equally right)

CivOS.LaneTieBreakers.v1_0:
- "If TTC is collapsing due to physical movement/supply: prefer LANE.air-sea-logistics-corridor."
- "If TTC is collapsing due to belief lock/punishment: prefer LANE.narrative-lock-information-ops."
- "If TTC is collapsing due to legitimacy split: prefer LANE.legitimacy-sovereignty-transition."
- "If TTC is collapsing due to money/credit confidence: prefer LANE.liquidity-credit-confidence."
- "If TTC is collapsing due to internal execution failure: prefer LANE.organization-coordination-execution."

If you want, paste any messy situation (even one paragraph) and I’ll run Prompt D (Lane+Zoom disambiguator) and output the top-3 shortlist + the final pick rule in YAML using this dictionary.

Start Here:

Start here if you want the full sequence:

Vocabulary OS Series Index:
https://edukatesg.com/vocabulary-os-series-index/

Fence English Learning System: 

eduKateSG Learning Systems: 

Recommended Internal Links (Spine)

Start Here for Lattice Infrastructure Connectors


Start Here:

Start here if you want the full sequence:

Vocabulary OS Series Index:
https://edukatesg.com/vocabulary-os-series-index/

Fence English Learning System: 

eduKateSG Learning Systems: 

Recommended Internal Links (Spine)

Start Here for Lattice Infrastructure Connectors