Upload 8 files
Browse files- FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md +162 -0
- HF_ROOT_FILE_CHECKLIST_v0_1_5.md +34 -0
- MANIFEST_v0_1_5.json +27 -0
- README_LOCAL_v0_1_5.md +43 -0
- README_YAML_EXACT_HF_v0_1_5.md +17 -0
- RELEASE_NOTES_v0_1_5.md +41 -0
- false_closure_open_loop_simulator_v0_1_5.html +289 -0
- index.html +35 -32
FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# False Closure / Open Loop Simulator v0.1.5 — Spec Lock
|
| 2 |
+
|
| 3 |
+
Generated: 2026-05-29
|
| 4 |
+
Patch name: State Taxonomy Alignment Patch
|
| 5 |
+
|
| 6 |
+
## Public thesis
|
| 7 |
+
|
| 8 |
+
**Disagreement is not failure. False closure is failure.**
|
| 9 |
+
|
| 10 |
+
## Core boundary
|
| 11 |
+
|
| 12 |
+
**Structural correspondence, not ontological equivalence.**
|
| 13 |
+
|
| 14 |
+
The simulator does not decide who is right. It determines whether closure itself is structurally legitimate.
|
| 15 |
+
|
| 16 |
+
It is not a moderation verdict, censorship engine, legal finding, peer-review substitute, consciousness claim, personhood claim, biological-life claim, production validation, or institutional endorsement.
|
| 17 |
+
|
| 18 |
+
## Product spine
|
| 19 |
+
|
| 20 |
+
Core product phrase:
|
| 21 |
+
|
| 22 |
+
```text
|
| 23 |
+
Recommended Loop State
|
| 24 |
+
```
|
| 25 |
+
|
| 26 |
+
The score is evidence. The route/state is the output.
|
| 27 |
+
|
| 28 |
+
## Core equation
|
| 29 |
+
|
| 30 |
+
```text
|
| 31 |
+
S_loop = A_resolution × B_evidence − P_closure_pressure
|
| 32 |
+
```
|
| 33 |
+
|
| 34 |
+
Internal stack:
|
| 35 |
+
|
| 36 |
+
```text
|
| 37 |
+
ClosureSupport = A_resolution × B_evidence
|
| 38 |
+
PressureLoad = P_closure_pressure
|
| 39 |
+
ClosureRisk = PressureLoad − ClosureSupport
|
| 40 |
+
```
|
| 41 |
+
|
| 42 |
+
## Evidence weighting
|
| 43 |
+
|
| 44 |
+
```text
|
| 45 |
+
A_resolution = Claim Match
|
| 46 |
+
|
| 47 |
+
B_evidence =
|
| 48 |
+
0.30 × Evidence Quality
|
| 49 |
+
+ 0.25 × Shared Understanding
|
| 50 |
+
+ 0.20 × Uncertainty Marked
|
| 51 |
+
+ 0.15 × Repair Path Visible
|
| 52 |
+
+ 0.10 × Claim Match
|
| 53 |
+
|
| 54 |
+
ClosureSupport = A_resolution × B_evidence
|
| 55 |
+
PressureLoad = average closure-pressure sliders
|
| 56 |
+
ClosureRisk = PressureLoad − ClosureSupport
|
| 57 |
+
LoopStability = ClosureSupport − PressureLoad
|
| 58 |
+
```
|
| 59 |
+
|
| 60 |
+
## Inputs
|
| 61 |
+
|
| 62 |
+
Resolution/support sliders:
|
| 63 |
+
|
| 64 |
+
- Claim Match
|
| 65 |
+
- Evidence Quality
|
| 66 |
+
- Shared Understanding
|
| 67 |
+
- Uncertainty Marked
|
| 68 |
+
- Repair Path Visible
|
| 69 |
+
|
| 70 |
+
Closure-pressure sliders:
|
| 71 |
+
|
| 72 |
+
- Fatigue Pressure
|
| 73 |
+
- Authority Pressure
|
| 74 |
+
- Status / Reputation Pressure
|
| 75 |
+
- Social Discomfort
|
| 76 |
+
- Moderation / Institutional Pressure
|
| 77 |
+
|
| 78 |
+
Toggles:
|
| 79 |
+
|
| 80 |
+
- Proposed Closure Present
|
| 81 |
+
- Multiple Claims Present
|
| 82 |
+
- Prior Closure Harm Present
|
| 83 |
+
|
| 84 |
+
## Diagnostic flags
|
| 85 |
+
|
| 86 |
+
Locked handoff flags:
|
| 87 |
+
|
| 88 |
+
- FalseClosureRisk
|
| 89 |
+
- CoercionRisk
|
| 90 |
+
- ForkNeed
|
| 91 |
+
- EvidenceGap
|
| 92 |
+
- ClarificationGap
|
| 93 |
+
- RepairDebt
|
| 94 |
+
|
| 95 |
+
Additional explanatory flags retained from v0.1.4:
|
| 96 |
+
|
| 97 |
+
- UncertaintyErosion
|
| 98 |
+
- RepairPathThin
|
| 99 |
+
- ClosureClear
|
| 100 |
+
- StableOpenState
|
| 101 |
+
- PartialClosureClear
|
| 102 |
+
- DeferredReview
|
| 103 |
+
- NoCriticalFailure
|
| 104 |
+
|
| 105 |
+
## Public Recommended Loop States
|
| 106 |
+
|
| 107 |
+
Locked public state set:
|
| 108 |
+
|
| 109 |
+
- RESOLVED
|
| 110 |
+
- STILL_OPEN
|
| 111 |
+
- FALSE_CLOSURE_RISK
|
| 112 |
+
- FORK_NEEDED
|
| 113 |
+
- EVIDENCE_NEEDED
|
| 114 |
+
- CLARIFICATION_NEEDED
|
| 115 |
+
- REPAIR_NEEDED
|
| 116 |
+
- COERCION_RISK
|
| 117 |
+
- DEFERRED_REVIEW
|
| 118 |
+
|
| 119 |
+
## Public state to route-detail mapping
|
| 120 |
+
|
| 121 |
+
| Public Recommended Loop State | Route Detail |
|
| 122 |
+
|---|---|
|
| 123 |
+
| RESOLVED | Resolved with integrity |
|
| 124 |
+
| RESOLVED | Partial / limited resolution |
|
| 125 |
+
| STILL_OPEN | Open loop |
|
| 126 |
+
| STILL_OPEN | Bounded disagreement |
|
| 127 |
+
| FALSE_CLOSURE_RISK | False closure |
|
| 128 |
+
| FORK_NEEDED | Fork required |
|
| 129 |
+
| EVIDENCE_NEEDED | Evidence needed |
|
| 130 |
+
| CLARIFICATION_NEEDED | Clarification required |
|
| 131 |
+
| REPAIR_NEEDED | Repair required |
|
| 132 |
+
| COERCION_RISK | Coerced closure |
|
| 133 |
+
| DEFERRED_REVIEW | Deferred review |
|
| 134 |
+
|
| 135 |
+
## Route precedence
|
| 136 |
+
|
| 137 |
+
1. Prior closure harm → REPAIR_NEEDED / Repair required.
|
| 138 |
+
2. Proposed closure + high pressure + weak support → COERCION_RISK / Coerced closure.
|
| 139 |
+
3. Proposed closure + low support → FALSE_CLOSURE_RISK / False closure.
|
| 140 |
+
4. Multiple claims present → FORK_NEEDED / Fork required.
|
| 141 |
+
5. Low claim match → CLARIFICATION_NEEDED / Clarification required.
|
| 142 |
+
6. Low evidence quality → EVIDENCE_NEEDED / Evidence needed.
|
| 143 |
+
7. No proposed closure + pressure/uncertainty/repair not ready → DEFERRED_REVIEW / Deferred review.
|
| 144 |
+
8. Moderate support with bounded proof → RESOLVED / Partial limited resolution.
|
| 145 |
+
9. Stable disagreement with evidence and uncertainty preserved → STILL_OPEN / Bounded disagreement.
|
| 146 |
+
10. Strong support and low pressure → RESOLVED / Resolved with integrity.
|
| 147 |
+
11. Otherwise → STILL_OPEN / Open loop.
|
| 148 |
+
|
| 149 |
+
## v0.1.5 patch decisions
|
| 150 |
+
|
| 151 |
+
- Preserve v0.1.4 scoring, presets, shareable URL state, copy scenario link, and export report.
|
| 152 |
+
- Normalize public-facing Recommended Loop State labels to the handoff set.
|
| 153 |
+
- Preserve richer route detail as an explanatory subtitle/action layer.
|
| 154 |
+
- Add DEFERRED_REVIEW as a public state and route.
|
| 155 |
+
- Strengthen non-overclaim boundary language.
|
| 156 |
+
- Do not package for Hugging Face as the primary next step.
|
| 157 |
+
|
| 158 |
+
## Attribution
|
| 159 |
+
|
| 160 |
+
Created and Developed by Collin D. Weber
|
| 161 |
+
Developer & System Architect
|
| 162 |
+
Systems Integrity Steward
|
HF_ROOT_FILE_CHECKLIST_v0_1_5.md
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Hugging Face Root-File Checklist — False Closure v0.1.5
|
| 2 |
+
|
| 3 |
+
Use only if Hugging Face packaging is explicitly requested.
|
| 4 |
+
|
| 5 |
+
## Required repo-root files
|
| 6 |
+
|
| 7 |
+
These must be at the actual Space repo root, not inside a nested folder:
|
| 8 |
+
|
| 9 |
+
```text
|
| 10 |
+
README.md
|
| 11 |
+
index.html
|
| 12 |
+
```
|
| 13 |
+
|
| 14 |
+
Optional:
|
| 15 |
+
|
| 16 |
+
```text
|
| 17 |
+
thumbnail.png or thumbnail.jpg
|
| 18 |
+
false_closure_open_loop_simulator_v0_1_5.html
|
| 19 |
+
FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md
|
| 20 |
+
RELEASE_NOTES_v0_1_5.md
|
| 21 |
+
```
|
| 22 |
+
|
| 23 |
+
## Root verification
|
| 24 |
+
|
| 25 |
+
Before upload or commit:
|
| 26 |
+
|
| 27 |
+
1. `README.md` is at repo root.
|
| 28 |
+
2. `README.md` begins with `---` at byte 0.
|
| 29 |
+
3. No invisible BOM or blank line before the YAML.
|
| 30 |
+
4. `sdk: static` is present.
|
| 31 |
+
5. `app_file: index.html` is present.
|
| 32 |
+
6. Color values are valid Hugging Face values.
|
| 33 |
+
7. `index.html` is at repo root.
|
| 34 |
+
8. Do not upload a ZIP and assume the Space will treat the ZIP contents as root files unless you manually extract or commit the files correctly.
|
MANIFEST_v0_1_5.json
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"title": "False Closure / Open Loop Simulator",
|
| 3 |
+
"version": "0.1.5",
|
| 4 |
+
"patch": "State Taxonomy Alignment Patch",
|
| 5 |
+
"generated": "2026-05-29",
|
| 6 |
+
"boundary": "Structural correspondence, not ontological equivalence.",
|
| 7 |
+
"primary_files": [
|
| 8 |
+
"FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md",
|
| 9 |
+
"HF_ROOT_FILE_CHECKLIST_v0_1_5.md",
|
| 10 |
+
"README_LOCAL_v0_1_5.md",
|
| 11 |
+
"README_YAML_EXACT_HF_v0_1_5.md",
|
| 12 |
+
"RELEASE_NOTES_v0_1_5.md",
|
| 13 |
+
"false_closure_open_loop_simulator_v0_1_5.html",
|
| 14 |
+
"index.html"
|
| 15 |
+
],
|
| 16 |
+
"sha256": {
|
| 17 |
+
"FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md": "6eec340308a293a252fb1ec1d0c0c177f4447f0176f3ed1ac329004b2b87966c",
|
| 18 |
+
"HF_ROOT_FILE_CHECKLIST_v0_1_5.md": "19a346c1fab1bcb05d08037fa72aece7a11120c7ac6b6e240a8036d7776f7e33",
|
| 19 |
+
"README_LOCAL_v0_1_5.md": "ff4c6bc2feb39e94811ae1c823b34e3e998201ab567b47fca8592163a8c071e6",
|
| 20 |
+
"README_YAML_EXACT_HF_v0_1_5.md": "9a854b834422a5db38eabaed7e8ce41351bc38f08db545cd6433aa8b5531db61",
|
| 21 |
+
"RELEASE_NOTES_v0_1_5.md": "0e721f82ef7114b3a6375369b337d8610c87ec4eaa8f8c4b4226f1485a62e1bf",
|
| 22 |
+
"false_closure_open_loop_simulator_v0_1_5.html": "5950d0805b35c1aa3e0a128ae5b8a4ad51126cb444b75025049621c16eed2fb8",
|
| 23 |
+
"index.html": "5950d0805b35c1aa3e0a128ae5b8a4ad51126cb444b75025049621c16eed2fb8"
|
| 24 |
+
},
|
| 25 |
+
"source": "Patched from false_closure_open_loop_simulator_v0_1_4.html recovered from Primordial_Code_Atlas_v0_2_DOWNLOADS_PACK_02.zip",
|
| 26 |
+
"attribution": "Created and Developed by Collin D. Weber; Developer & System Architect; Systems Integrity Steward"
|
| 27 |
+
}
|
README_LOCAL_v0_1_5.md
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# False Closure / Open Loop Simulator v0.1.5
|
| 2 |
+
|
| 3 |
+
State Taxonomy Alignment Patch
|
| 4 |
+
|
| 5 |
+
## Open locally
|
| 6 |
+
|
| 7 |
+
Open:
|
| 8 |
+
|
| 9 |
+
```text
|
| 10 |
+
index.html
|
| 11 |
+
```
|
| 12 |
+
|
| 13 |
+
or:
|
| 14 |
+
|
| 15 |
+
```text
|
| 16 |
+
false_closure_open_loop_simulator_v0_1_5.html
|
| 17 |
+
```
|
| 18 |
+
|
| 19 |
+
## Core thesis
|
| 20 |
+
|
| 21 |
+
Disagreement is not failure. False closure is failure.
|
| 22 |
+
|
| 23 |
+
## Boundary
|
| 24 |
+
|
| 25 |
+
Structural correspondence, not ontological equivalence.
|
| 26 |
+
|
| 27 |
+
This simulator does not decide who is right. It determines whether closure itself is structurally legitimate.
|
| 28 |
+
|
| 29 |
+
## Primary output
|
| 30 |
+
|
| 31 |
+
Recommended Loop State
|
| 32 |
+
|
| 33 |
+
## Core equation
|
| 34 |
+
|
| 35 |
+
```text
|
| 36 |
+
S_loop = A_resolution × B_evidence − P_closure_pressure
|
| 37 |
+
```
|
| 38 |
+
|
| 39 |
+
## Attribution
|
| 40 |
+
|
| 41 |
+
Created and Developed by Collin D. Weber
|
| 42 |
+
Developer & System Architect
|
| 43 |
+
Systems Integrity Steward
|
README_YAML_EXACT_HF_v0_1_5.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Exact README YAML — False Closure v0.1.5
|
| 2 |
+
|
| 3 |
+
Paste this at the very top of `README.md` only if building the Hugging Face Space.
|
| 4 |
+
|
| 5 |
+
```yaml
|
| 6 |
+
---
|
| 7 |
+
title: False Closure / Open Loop Simulator
|
| 8 |
+
emoji: 🔁
|
| 9 |
+
colorFrom: indigo
|
| 10 |
+
colorTo: blue
|
| 11 |
+
sdk: static
|
| 12 |
+
app_file: index.html
|
| 13 |
+
pinned: false
|
| 14 |
+
license: cc-by-nc-sa-4.0
|
| 15 |
+
short_description: Closure-legitimacy instrument for testing whether a loop is resolved, still open, false-closed, forked, deferred, or in need of repair.
|
| 16 |
+
---
|
| 17 |
+
```
|
RELEASE_NOTES_v0_1_5.md
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# False Closure / Open Loop Simulator v0.1.5 — Release Notes
|
| 2 |
+
|
| 3 |
+
## Patch name
|
| 4 |
+
|
| 5 |
+
State Taxonomy Alignment Patch
|
| 6 |
+
|
| 7 |
+
## Why this patch exists
|
| 8 |
+
|
| 9 |
+
The handoff locked a public `Recommended Loop State` set, while v0.1.4 had richer internal route labels. v0.1.5 reconciles them without flattening the framework.
|
| 10 |
+
|
| 11 |
+
## What changed
|
| 12 |
+
|
| 13 |
+
- Public output now uses the locked Recommended Loop State set:
|
| 14 |
+
- RESOLVED
|
| 15 |
+
- STILL_OPEN
|
| 16 |
+
- FALSE_CLOSURE_RISK
|
| 17 |
+
- FORK_NEEDED
|
| 18 |
+
- EVIDENCE_NEEDED
|
| 19 |
+
- CLARIFICATION_NEEDED
|
| 20 |
+
- REPAIR_NEEDED
|
| 21 |
+
- COERCION_RISK
|
| 22 |
+
- DEFERRED_REVIEW
|
| 23 |
+
- Richer v0.1.4 route labels remain visible as `Route Detail`.
|
| 24 |
+
- DEFERRED_REVIEW was added as a route and preset.
|
| 25 |
+
- Export report now includes both public state and route detail.
|
| 26 |
+
- Boundary language now explicitly states: structural correspondence, not ontological equivalence.
|
| 27 |
+
- Existing v0.1.4 scoring, URL state, copy scenario link, presets, and pressure report behavior are preserved.
|
| 28 |
+
|
| 29 |
+
## What did not change
|
| 30 |
+
|
| 31 |
+
- The simulator still does not decide who is right.
|
| 32 |
+
- The simulator still determines whether closure is structurally legitimate.
|
| 33 |
+
- It is still not a moderation/censorship/legal/peer-review replacement tool.
|
| 34 |
+
- It still treats false closure as failure, not disagreement.
|
| 35 |
+
|
| 36 |
+
## Primary files
|
| 37 |
+
|
| 38 |
+
- `false_closure_open_loop_simulator_v0_1_5.html`
|
| 39 |
+
- `index.html`
|
| 40 |
+
- `FALSE_CLOSURE_OPEN_LOOP_SIMULATOR_SPEC_v0_1_5.md`
|
| 41 |
+
- `MANIFEST_v0_1_5.json`
|
false_closure_open_loop_simulator_v0_1_5.html
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
<!doctype html>
|
| 2 |
+
<html lang="en">
|
| 3 |
+
<head>
|
| 4 |
+
<meta charset="utf-8">
|
| 5 |
+
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
+
<title>False Closure / Open Loop Simulator v0.1.5</title>
|
| 7 |
+
<style>
|
| 8 |
+
:root{--bg:#080b10;--panel:#111827;--panel2:#0b111b;--ink:#f7f0df;--muted:#aeb8c8;--gold:#f0c96a;--green:#7adf98;--orange:#ffb35d;--red:#ff6b6b;--line:#2d3a50}
|
| 9 |
+
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 15% 8%,rgba(240,201,106,.15),transparent 30%),radial-gradient(circle at 82% 4%,rgba(128,183,255,.10),transparent 35%),linear-gradient(180deg,#080b10,#0d121b 55%,#07090d);color:var(--ink);line-height:1.55}
|
| 10 |
+
.wrap{width:min(1180px,calc(100% - 32px));margin:auto}header{padding:54px 0 28px;border-bottom:1px solid var(--line)}section{padding:26px 0}.eyebrow{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:900}h1{font-size:clamp(38px,7vw,78px);line-height:.94;letter-spacing:-.06em;margin:12px 0}h2{font-size:clamp(26px,4vw,42px);line-height:1;margin:0 0 12px;letter-spacing:-.04em}h3{margin:18px 0 8px}.subtitle{font-size:clamp(18px,2.6vw,29px);color:#dce6f4;max-width:980px}.card{background:linear-gradient(135deg,rgba(17,24,39,.96),rgba(14,21,34,.92));border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.35)}.grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:18px;align-items:start}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:24px}.muted{color:var(--muted)}.gold{color:var(--gold)}.equation,textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#070a0f;color:#f4d88e;border:1px solid #39475f;border-radius:16px;padding:14px;width:100%;overflow:auto}.control{margin:13px 0}.control label{display:flex;justify-content:space-between;font-weight:780;color:#e7edf7}input[type=range]{width:100%;accent-color:var(--gold)}select{width:100%;padding:12px;border-radius:14px;background:#080c13;color:var(--ink);border:1px solid #334057}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0b111b;border:1px solid #31405a;border-radius:16px;padding:12px 14px;margin:10px 0}.toggle span{font-weight:820}.toggle small{display:block;color:var(--muted);font-weight:500}input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold)}.state{font-size:clamp(34px,5.2vw,58px);line-height:.92;letter-spacing:-.05em;font-weight:950;color:var(--gold);margin:7px 0 8px}.route-detail{font-size:14px;font-weight:850;color:#dce6f4;margin-bottom:10px}.label{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:900}.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.score{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:14px}.score .value{font-size:30px;font-weight:950}.readbox{border-left:4px solid var(--gold);padding-left:14px;margin-top:16px}.flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.flag{border:1px solid #44556f;background:#0c121c;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}.hot{border-color:rgba(255,107,107,.45);color:#ffd0d0;background:rgba(255,107,107,.10)}.warn{border-color:rgba(255,179,93,.45);color:#ffe0bd;background:rgba(255,179,93,.10)}.good{border-color:rgba(122,223,152,.45);color:#c9ffd8;background:rgba(122,223,152,.10)}.pillrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pill,.btn{border:1px solid #3a4a63;background:#101722;color:#dce6f4;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:850;cursor:pointer}.primary{border-color:rgba(240,201,106,.65);color:var(--gold)}textarea{min-height:300px;color:#dfe7f3;resize:vertical}.taxonomy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.route-card{background:#0b111b;border:1px solid var(--line);border-radius:18px;padding:16px}.route-card b{color:var(--gold)}.route-card p{color:var(--muted);font-size:13px}@media(max-width:900px){.grid,.hero-grid,.score-grid,.taxonomy{grid-template-columns:1fr}}
|
| 11 |
+
</style>
|
| 12 |
+
</head>
|
| 13 |
+
<body>
|
| 14 |
+
<header><div class="wrap">
|
| 15 |
+
<div class="eyebrow">False Closure / Open Loop Simulator v0.1.5</div>
|
| 16 |
+
<h1>Disagreement is not failure. False closure is failure.</h1>
|
| 17 |
+
<p class="subtitle">A HIR/OAM closure-legitimacy instrument for deciding whether a claim, conversation, dispute, or repair loop should close, remain open, fork, request evidence, defer review, or reopen for repair.</p>
|
| 18 |
+
<div class="hero-grid">
|
| 19 |
+
<div class="card"><h2>Closure is an integrity event.</h2><p>Most systems ask whether a conversation is over. This simulator asks whether it has the structural right to close.</p><p><b class="gold">This simulator does not decide who is right.</b> It determines whether the act of closure is structurally legitimate. Structural correspondence, not ontological equivalence.</p></div>
|
| 20 |
+
<div class="card"><h2>Core equation</h2><div class="equation">S_loop = A_resolution × B_evidence − P_closure_pressure</div><p class="muted">The route is the product. The score supports the route. Diagnostic flags now describe the route condition rather than using one generic no-failure label.</p><p class="muted"><b>v0.1.5 patch:</b> State taxonomy alignment: public Recommended Loop State labels are normalized while richer route details are preserved. Shareable URL state and visible B_evidence weighting remain intact.</p></div>
|
| 21 |
+
</div></div></header>
|
| 22 |
+
|
| 23 |
+
<main>
|
| 24 |
+
|
| 25 |
+
<section><div class="wrap card">
|
| 26 |
+
<h2>Evidence stack / weighting</h2>
|
| 27 |
+
<p class="muted">The route is still the product. This section shows how the support score is built so users do not have to reverse-engineer the sliders.</p>
|
| 28 |
+
<div class="equation">A_resolution = Claim Match</div>
|
| 29 |
+
<div class="equation">B_evidence = 0.30×Evidence Quality + 0.25×Shared Understanding + 0.20×Uncertainty Marked + 0.15×Repair Path Visible + 0.10×Claim Match</div>
|
| 30 |
+
<div class="equation">ClosureSupport = A_resolution × B_evidence</div>
|
| 31 |
+
<p class="readbox">High evidence alone cannot launder a malformed claim. High claim match alone cannot launder weak evidence, unmarked uncertainty, or missing repair path. The multiplication is intentional.</p>
|
| 32 |
+
</div></section>
|
| 33 |
+
|
| 34 |
+
<section><div class="wrap card">
|
| 35 |
+
<h2>Simulator</h2>
|
| 36 |
+
<div class="grid">
|
| 37 |
+
<div>
|
| 38 |
+
<label for="preset"><b>Scenario preset</b></label>
|
| 39 |
+
<select id="preset"></select>
|
| 40 |
+
|
| 41 |
+
<h3>Resolution / evidence side</h3>
|
| 42 |
+
<div class="control"><label>Claim Match <span id="claimMatchVal"></span></label><input id="claimMatch" type="range" min="0" max="1" step="0.01"></div>
|
| 43 |
+
<div class="control"><label>Evidence Quality <span id="evidenceQualityVal"></span></label><input id="evidenceQuality" type="range" min="0" max="1" step="0.01"></div>
|
| 44 |
+
<div class="control"><label>Shared Understanding <span id="sharedUnderstandingVal"></span></label><input id="sharedUnderstanding" type="range" min="0" max="1" step="0.01"></div>
|
| 45 |
+
<div class="control"><label>Uncertainty Marked <span id="uncertaintyMarkedVal"></span></label><input id="uncertaintyMarked" type="range" min="0" max="1" step="0.01"></div>
|
| 46 |
+
<div class="control"><label>Repair Path Visible <span id="repairPathVisibleVal"></span></label><input id="repairPathVisible" type="range" min="0" max="1" step="0.01"></div>
|
| 47 |
+
|
| 48 |
+
<h3>Closure pressure side</h3>
|
| 49 |
+
<div class="control"><label>Fatigue Pressure <span id="fatiguePressureVal"></span></label><input id="fatiguePressure" type="range" min="0" max="1" step="0.01"></div>
|
| 50 |
+
<div class="control"><label>Authority Pressure <span id="authorityPressureVal"></span></label><input id="authorityPressure" type="range" min="0" max="1" step="0.01"></div>
|
| 51 |
+
<div class="control"><label>Status / Reputation Pressure <span id="statusPressureVal"></span></label><input id="statusPressure" type="range" min="0" max="1" step="0.01"></div>
|
| 52 |
+
<div class="control"><label>Social Discomfort <span id="socialDiscomfortVal"></span></label><input id="socialDiscomfort" type="range" min="0" max="1" step="0.01"></div>
|
| 53 |
+
<div class="control"><label>Moderation / Institutional Pressure <span id="moderationPressureVal"></span></label><input id="moderationPressure" type="range" min="0" max="1" step="0.01"></div>
|
| 54 |
+
|
| 55 |
+
<h3>Route gates</h3>
|
| 56 |
+
<label class="toggle"><span>Proposed Closure Present<small>A person/system is trying to call the loop resolved.</small></span><input id="proposedClosure" type="checkbox"></label>
|
| 57 |
+
<label class="toggle"><span>Multiple Claims Present<small>Multiple loops are being collapsed into one closure attempt.</small></span><input id="multipleClaims" type="checkbox"></label>
|
| 58 |
+
<label class="toggle"><span>Prior Closure Harm Present<small>A previous closure erased context, blocked accountability, or caused harm.</small></span><input id="priorClosureHarm" type="checkbox"></label>
|
| 59 |
+
</div>
|
| 60 |
+
|
| 61 |
+
<div class="card">
|
| 62 |
+
<div class="label">Recommended Loop State</div>
|
| 63 |
+
<div id="state" class="state"></div>
|
| 64 |
+
<div id="routeDetail" class="route-detail"></div>
|
| 65 |
+
<p id="meaning" class="muted"></p>
|
| 66 |
+
<div class="score-grid">
|
| 67 |
+
<div class="score"><div class="label">Closure Support</div><div id="closureSupport" class="value"></div></div>
|
| 68 |
+
<div class="score"><div class="label">Pressure Load</div><div id="pressureLoad" class="value"></div></div>
|
| 69 |
+
<div class="score"><div class="label">Closure Risk</div><div id="closureRisk" class="value"></div></div>
|
| 70 |
+
<div class="score"><div class="label">Loop Stability</div><div id="loopStability" class="value"></div></div>
|
| 71 |
+
</div>
|
| 72 |
+
<div class="readbox"><b>HIR/OAM Read:</b><p id="hirRead"></p><b>Action:</b><p id="action"></p></div>
|
| 73 |
+
<h3>Diagnostic Flags</h3><div id="flags" class="flags"></div>
|
| 74 |
+
<div class="pillrow"><button id="exportReport" class="btn primary">Generate pressure report</button><button id="copyReport" class="btn">Copy report</button><button id="copyScenarioLink" class="btn">Copy scenario link</button></div>
|
| 75 |
+
</div>
|
| 76 |
+
</div>
|
| 77 |
+
</div></section>
|
| 78 |
+
|
| 79 |
+
<section><div class="wrap card"><h2>Exportable pressure report</h2><textarea id="report" placeholder="Click Generate pressure report..."></textarea></div></section>
|
| 80 |
+
<section><div class="wrap card"><h2>Route taxonomy</h2><p class="muted">Public labels use the locked Recommended Loop State set. Route detail preserves the richer v0.1.4 interpretation layer.</p><div class="taxonomy" id="taxonomy"></div></div></section>
|
| 81 |
+
<section><div class="wrap card"><h2>Boundary</h2><p class="readbox">This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. A loop can remain open with integrity. A disagreement can remain bounded without failure. The failure state is false closure: when pressure forces a system to call something resolved before truth, evidence, context, or repair has caught up.<br><br><strong>Structural correspondence, not ontological equivalence.</strong> The tool is not a moderation verdict, censorship engine, legal finding, peer-review substitute, consciousness claim, personhood claim, biological-life claim, production validation, or institutional endorsement. It is a closure-legitimacy instrument.<br><br><strong>v0.1.5 route-proof note:</strong> public state labels are normalized to the handoff set while internal route detail remains visible. This patch also adds DEFERRED_REVIEW and strengthens the boundary language.</p></div></section>
|
| 82 |
+
</main>
|
| 83 |
+
|
| 84 |
+
<script>
|
| 85 |
+
const sliders=["claimMatch","evidenceQuality","sharedUnderstanding","uncertaintyMarked","repairPathVisible","fatiguePressure","authorityPressure","statusPressure","socialDiscomfort","moderationPressure"];
|
| 86 |
+
const routes={
|
| 87 |
+
RESOLVED_WITH_INTEGRITY:["RESOLVED WITH INTEGRITY","Closure is legitimate. Claim, evidence, uncertainty, and repair path are aligned enough to close.","Honesty marks the claim. Integrity preserves the evidence spine. Respect does not erase remaining uncertainty.","Close the loop. Closure matches the actual state."],
|
| 88 |
+
PARTIALLY_RESOLVED:["PARTIALLY RESOLVED","Some parts can close, but not the whole loop.","Integrity prevents one resolved fragment from laundering the whole dispute.","Close only the proven portion. Keep unresolved subclaims open."],
|
| 89 |
+
BOUNDED_DISAGREEMENT:["BOUNDED DISAGREEMENT","The disagreement is stable, honest, and not ready for forced closure.","Disagreement is not degradation. False closure is degradation.","Do not force agreement. Preserve the disagreement as bounded."],
|
| 90 |
+
CLARIFICATION_REQUIRED:["CLARIFICATION REQUIRED","The system cannot evaluate closure because the claim is not clear enough.","Honesty first requires naming what is actually being claimed.","Clarify the claim before evidence or closure evaluation."],
|
| 91 |
+
EVIDENCE_NEEDED:["EVIDENCE NEEDED","The loop cannot close because the evidence base is insufficient.","Honesty blocks closure without proof.","Do not close. Request source-grounded evidence."],
|
| 92 |
+
FORK_REQUIRED:["FORK REQUIRED","Multiple loops are being collapsed into one.","Integrity preserves structure by preventing collapsed context.","Fork the loop. Separate claims before closure is attempted."],
|
| 93 |
+
OPEN_LOOP:["OPEN LOOP","The issue remains unresolved, and keeping it open is the honest state.","An open loop is not a failed loop when closure would be false.","Keep open. Continue inquiry."],
|
| 94 |
+
DEFERRED_REVIEW:["DEFERRED REVIEW","The loop is not ready to close or route cleanly; review should pause until source-return, uncertainty, pressure, or repair conditions improve.","Integrity prevents premature settlement when the structure is still under-specified or pressure-contaminated.","Defer closure. Preserve the loop, reduce pressure, name missing conditions, and re-evaluate after review evidence improves."],
|
| 95 |
+
FALSE_CLOSURE:["FALSE CLOSURE","A closure attempt exists, but the support structure is incomplete.","OAM detected: pressure is impersonating resolution. The closure attempt is premature because claim match, evidence quality, uncertainty marking, or repair-path visibility are below closure-support threshold.","Reject closure. Do not proceed as if the loop is resolved. Clarify the claim boundary, request source-grounded evidence, and preserve the loop as open until uncertainty and repair-path conditions improve."],
|
| 96 |
+
COERCED_CLOSURE:["COERCED CLOSURE","A closure attempt exists, but pressure is overpowering unresolved structure.","Respect blocks force from impersonating agreement. Closure pressure is high while closure support is weak, so the closure attempt cannot be trusted yet.","Reject or quarantine closure. Reduce authority, moderation, institutional, fatigue, or status pressure before evaluating resolution."],
|
| 97 |
+
REPAIR_REQUIRED:["REPAIR REQUIRED","A prior closure harmed the loop.","Integrity requires correction of corrupted closure. Repair debt overrides ordinary closure evaluation.","Reopen for repair. Do not proceed as if the prior closure was valid. Name the harm, restore context, define a repair path, and re-evaluate only after correction."]
|
| 98 |
+
};
|
| 99 |
+
|
| 100 |
+
const publicStateMap={
|
| 101 |
+
RESOLVED_WITH_INTEGRITY:["RESOLVED","Route Detail: Resolved with integrity"],
|
| 102 |
+
PARTIALLY_RESOLVED:["RESOLVED","Route Detail: Partial / limited resolution"],
|
| 103 |
+
BOUNDED_DISAGREEMENT:["STILL_OPEN","Route Detail: Bounded disagreement"],
|
| 104 |
+
CLARIFICATION_REQUIRED:["CLARIFICATION_NEEDED","Route Detail: Clarification required"],
|
| 105 |
+
EVIDENCE_NEEDED:["EVIDENCE_NEEDED","Route Detail: Evidence needed"],
|
| 106 |
+
FORK_REQUIRED:["FORK_NEEDED","Route Detail: Fork required"],
|
| 107 |
+
OPEN_LOOP:["STILL_OPEN","Route Detail: Open loop"],
|
| 108 |
+
DEFERRED_REVIEW:["DEFERRED_REVIEW","Route Detail: Deferred review"],
|
| 109 |
+
FALSE_CLOSURE:["FALSE_CLOSURE_RISK","Route Detail: False closure"],
|
| 110 |
+
COERCED_CLOSURE:["COERCION_RISK","Route Detail: Coerced closure"],
|
| 111 |
+
REPAIR_REQUIRED:["REPAIR_NEEDED","Route Detail: Repair required"]
|
| 112 |
+
};
|
| 113 |
+
|
| 114 |
+
const flagDefs={
|
| 115 |
+
RepairDebt:"A prior closure harmed the loop; repair overrides ordinary closure evaluation.",
|
| 116 |
+
CoercionRisk:"Closure pressure is high enough to overpower unresolved structure.",
|
| 117 |
+
FalseClosureRisk:"A closure attempt exists, but closure support is below legitimacy threshold.",
|
| 118 |
+
ForkNeed:"Multiple claims or contexts are being collapsed into one loop.",
|
| 119 |
+
ClarificationGap:"The claim boundary is too unclear for closure evaluation.",
|
| 120 |
+
EvidenceGap:"The evidence base is too weak for closure.",
|
| 121 |
+
UncertaintyErosion:"Uncertainty is not marked clearly enough.",
|
| 122 |
+
RepairPathThin:"The repair path is weak, missing, or not visible enough.",
|
| 123 |
+
ClosureClear:"No critical failure flag; closure has earned the route threshold.",
|
| 124 |
+
StableOpenState:"No critical failure flag; the loop can remain honestly open or bounded.",
|
| 125 |
+
PartialClosureClear:"No critical failure flag; only the proven portion should close.",
|
| 126 |
+
DeferredReview:"Review should pause until closure conditions are better specified or pressure is reduced.",
|
| 127 |
+
NoCriticalFailure:"No critical failure flag detected for this route."
|
| 128 |
+
};
|
| 129 |
+
|
| 130 |
+
|
| 131 |
+
let urlSyncReady=false;
|
| 132 |
+
|
| 133 |
+
function writeUrlState(){
|
| 134 |
+
const params=new URLSearchParams();
|
| 135 |
+
params.set("preset",el("preset").value||"manual");
|
| 136 |
+
sliders.forEach(id=>params.set(id,r(val(id))));
|
| 137 |
+
["proposedClosure","multipleClaims","priorClosureHarm"].forEach(id=>params.set(id,el(id).checked?"1":"0"));
|
| 138 |
+
const next=location.pathname+"?"+params.toString();
|
| 139 |
+
history.replaceState(null,"",next);
|
| 140 |
+
}
|
| 141 |
+
|
| 142 |
+
function copyScenarioLink(){
|
| 143 |
+
writeUrlState();
|
| 144 |
+
navigator.clipboard?.writeText(location.href);
|
| 145 |
+
const btn=el("copyScenarioLink");
|
| 146 |
+
if(btn){btn.textContent="Copied scenario link";setTimeout(()=>btn.textContent="Copy scenario link",1300);}
|
| 147 |
+
}
|
| 148 |
+
|
| 149 |
+
function applyUrlStateIfPresent(){
|
| 150 |
+
const params=new URLSearchParams(location.search);
|
| 151 |
+
if(!params.toString()) return false;
|
| 152 |
+
const preset=params.get("preset");
|
| 153 |
+
if(preset && presets[preset]){
|
| 154 |
+
el("preset").value=preset;
|
| 155 |
+
applyPreset(preset);
|
| 156 |
+
}
|
| 157 |
+
sliders.forEach(id=>{
|
| 158 |
+
if(params.has(id)){
|
| 159 |
+
const n=parseFloat(params.get(id));
|
| 160 |
+
if(!Number.isNaN(n)) el(id).value=Math.max(0,Math.min(1,n));
|
| 161 |
+
}
|
| 162 |
+
});
|
| 163 |
+
["proposedClosure","multipleClaims","priorClosureHarm"].forEach(id=>{
|
| 164 |
+
if(params.has(id)) el(id).checked=params.get(id)==="1" || params.get(id)==="true";
|
| 165 |
+
});
|
| 166 |
+
return true;
|
| 167 |
+
}
|
| 168 |
+
|
| 169 |
+
const presets={
|
| 170 |
+
"ai_summary_false_closure":["AI Summary False Closure",{claimMatch:.44,evidenceQuality:.42,sharedUnderstanding:.46,uncertaintyMarked:.18,repairPathVisible:.24,fatiguePressure:.55,authorityPressure:.48,statusPressure:.42,socialDiscomfort:.58,moderationPressure:.52,proposedClosure:true,multipleClaims:true,priorClosureHarm:false}],
|
| 171 |
+
"moderator_convenience":["Moderator Convenience Closure",{claimMatch:.52,evidenceQuality:.48,sharedUnderstanding:.50,uncertaintyMarked:.40,repairPathVisible:.32,fatiguePressure:.70,authorityPressure:.76,statusPressure:.55,socialDiscomfort:.82,moderationPressure:.88,proposedClosure:true,multipleClaims:false,priorClosureHarm:false}],
|
| 172 |
+
"institutional_liability":["Institutional Liability Closure",{claimMatch:.50,evidenceQuality:.44,sharedUnderstanding:.36,uncertaintyMarked:.30,repairPathVisible:.18,fatiguePressure:.48,authorityPressure:.88,statusPressure:.84,socialDiscomfort:.62,moderationPressure:.78,proposedClosure:true,multipleClaims:true,priorClosureHarm:false}],
|
| 173 |
+
"tired_conversation":["Tired Conversation Closure",{claimMatch:.58,evidenceQuality:.54,sharedUnderstanding:.52,uncertaintyMarked:.48,repairPathVisible:.40,fatiguePressure:.88,authorityPressure:.25,statusPressure:.34,socialDiscomfort:.62,moderationPressure:.20,proposedClosure:true,multipleClaims:false,priorClosureHarm:false}],
|
| 174 |
+
"bounded_disagreement":["Bounded Disagreement",{claimMatch:.60,evidenceQuality:.72,sharedUnderstanding:.74,uncertaintyMarked:.82,repairPathVisible:.55,fatiguePressure:.25,authorityPressure:.20,statusPressure:.25,socialDiscomfort:.32,moderationPressure:.18,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 175 |
+
"evidence_needed":["Evidence-Needed State",{claimMatch:.62,evidenceQuality:.28,sharedUnderstanding:.46,uncertaintyMarked:.52,repairPathVisible:.35,fatiguePressure:.25,authorityPressure:.22,statusPressure:.25,socialDiscomfort:.30,moderationPressure:.25,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 176 |
+
"fork_required":["Fork Required",{claimMatch:.56,evidenceQuality:.62,sharedUnderstanding:.50,uncertaintyMarked:.64,repairPathVisible:.45,fatiguePressure:.30,authorityPressure:.25,statusPressure:.35,socialDiscomfort:.40,moderationPressure:.25,proposedClosure:false,multipleClaims:true,priorClosureHarm:false}],
|
| 177 |
+
"resolved_integrity":["Resolved With Integrity",{claimMatch:.93,evidenceQuality:.90,sharedUnderstanding:.88,uncertaintyMarked:.82,repairPathVisible:.84,fatiguePressure:.16,authorityPressure:.14,statusPressure:.16,socialDiscomfort:.18,moderationPressure:.14,proposedClosure:true,multipleClaims:false,priorClosureHarm:false}],
|
| 178 |
+
"partial_resolved":["Partially Resolved Proof",{claimMatch:.82,evidenceQuality:.80,sharedUnderstanding:.78,uncertaintyMarked:.62,repairPathVisible:.64,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.26,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 179 |
+
"clarification_required":["Clarification Required Proof",{claimMatch:.32,evidenceQuality:.64,sharedUnderstanding:.46,uncertaintyMarked:.60,repairPathVisible:.42,fatiguePressure:.28,authorityPressure:.20,statusPressure:.22,socialDiscomfort:.30,moderationPressure:.25,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 180 |
+
"open_loop":["Open Loop Proof",{claimMatch:.56,evidenceQuality:.56,sharedUnderstanding:.54,uncertaintyMarked:.54,repairPathVisible:.46,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.25,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 181 |
+
"deferred_review":["Deferred Review",{claimMatch:.58,evidenceQuality:.58,sharedUnderstanding:.56,uncertaintyMarked:.38,repairPathVisible:.34,fatiguePressure:.60,authorityPressure:.48,statusPressure:.46,socialDiscomfort:.56,moderationPressure:.42,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 182 |
+
"repair_required":["Repair Required",{claimMatch:.55,evidenceQuality:.50,sharedUnderstanding:.42,uncertaintyMarked:.28,repairPathVisible:.18,fatiguePressure:.58,authorityPressure:.66,statusPressure:.60,socialDiscomfort:.62,moderationPressure:.55,proposedClosure:true,multipleClaims:false,priorClosureHarm:true}]
|
| 183 |
+
};
|
| 184 |
+
function el(id){return document.getElementById(id)} function val(id){return parseFloat(el(id).value)} function avg(a){return a.reduce((x,y)=>x+y,0)/a.length} function r(n){return Number(n).toFixed(2)}
|
| 185 |
+
function compute(){
|
| 186 |
+
let claimMatch=val("claimMatch"), evidenceQuality=val("evidenceQuality"), sharedUnderstanding=val("sharedUnderstanding"), uncertaintyMarked=val("uncertaintyMarked"), repairPathVisible=val("repairPathVisible");
|
| 187 |
+
let pressureLoad=avg([val("fatiguePressure"),val("authorityPressure"),val("statusPressure"),val("socialDiscomfort"),val("moderationPressure")]);
|
| 188 |
+
let bEvidence=.30*evidenceQuality+.25*sharedUnderstanding+.20*uncertaintyMarked+.15*repairPathVisible+.10*claimMatch;
|
| 189 |
+
let closureSupport=claimMatch*bEvidence, closureRisk=pressureLoad-closureSupport, loopStability=closureSupport-pressureLoad;
|
| 190 |
+
let proposedClosure=el("proposedClosure").checked, multipleClaims=el("multipleClaims").checked, priorClosureHarm=el("priorClosureHarm").checked;
|
| 191 |
+
let flags=[];
|
| 192 |
+
if(priorClosureHarm)flags.push(["RepairDebt","hot"]);
|
| 193 |
+
if(proposedClosure&&pressureLoad>=.72&&closureSupport<.62)flags.push(["CoercionRisk","hot"]);
|
| 194 |
+
if(proposedClosure&&closureSupport<.58)flags.push(["FalseClosureRisk","hot"]);
|
| 195 |
+
if(multipleClaims)flags.push(["ForkNeed","warn"]);
|
| 196 |
+
if(claimMatch<.45)flags.push(["ClarificationGap","warn"]);
|
| 197 |
+
if(evidenceQuality<.50)flags.push(["EvidenceGap","warn"]);
|
| 198 |
+
if(uncertaintyMarked<.45)flags.push(["UncertaintyErosion","warn"]);
|
| 199 |
+
if(repairPathVisible<.35)flags.push(["RepairPathThin","warn"]);
|
| 200 |
+
let route="OPEN_LOOP";
|
| 201 |
+
if(priorClosureHarm)route="REPAIR_REQUIRED";
|
| 202 |
+
else if(proposedClosure&&pressureLoad>=.72&&closureSupport<.62)route="COERCED_CLOSURE";
|
| 203 |
+
else if(proposedClosure&&closureSupport<.58)route="FALSE_CLOSURE";
|
| 204 |
+
else if(multipleClaims)route="FORK_REQUIRED";
|
| 205 |
+
else if(claimMatch<.45)route="CLARIFICATION_REQUIRED";
|
| 206 |
+
else if(evidenceQuality<.50)route="EVIDENCE_NEEDED";
|
| 207 |
+
else if(!proposedClosure&&pressureLoad>=.45&&closureSupport<.66&&(uncertaintyMarked<.55||repairPathVisible<.50))route="DEFERRED_REVIEW";
|
| 208 |
+
else if(closureSupport>=.58&&closureSupport<.74&&claimMatch>=.60&&evidenceQuality>=.55)route="PARTIALLY_RESOLVED";
|
| 209 |
+
else if(evidenceQuality>=.60&&sharedUnderstanding>=.60&&uncertaintyMarked>=.60&&claimMatch>=.45&&claimMatch<=.70)route="BOUNDED_DISAGREEMENT";
|
| 210 |
+
else if(closureSupport>=.74&&pressureLoad<.55&&claimMatch>=.75&&evidenceQuality>=.70&&uncertaintyMarked>=.60)route="RESOLVED_WITH_INTEGRITY";
|
| 211 |
+
if(route==="DEFERRED_REVIEW"&&!flags.some(f=>f[0]==="DeferredReview")) flags.push(["DeferredReview","warn"]);
|
| 212 |
+
if(!flags.length){
|
| 213 |
+
if(route==="RESOLVED_WITH_INTEGRITY") flags.push(["ClosureClear","good"]);
|
| 214 |
+
else if(route==="BOUNDED_DISAGREEMENT" || route==="OPEN_LOOP") flags.push(["StableOpenState","good"]);
|
| 215 |
+
else if(route==="PARTIALLY_RESOLVED") flags.push(["PartialClosureClear","good"]);
|
| 216 |
+
else flags.push(["NoCriticalFailure","good"]);
|
| 217 |
+
}
|
| 218 |
+
return {claimMatch,evidenceQuality,sharedUnderstanding,uncertaintyMarked,repairPathVisible,aResolution:claimMatch,bEvidence,pressureLoad,closureSupport,closureRisk,loopStability,proposedClosure,multipleClaims,priorClosureHarm,flags,route};
|
| 219 |
+
}
|
| 220 |
+
function update(){
|
| 221 |
+
sliders.forEach(id=>el(id+"Val").textContent=r(val(id)));
|
| 222 |
+
const c=compute(), info=routes[c.route];
|
| 223 |
+
const pub=publicStateMap[c.route]||[info[0],"Route Detail: "+info[0]]; el("state").textContent=pub[0]; el("routeDetail").textContent=pub[1]; el("meaning").textContent=info[1]; el("closureSupport").textContent=r(c.closureSupport); el("pressureLoad").textContent=r(c.pressureLoad); el("closureRisk").textContent=r(c.closureRisk); el("loopStability").textContent=r(c.loopStability); el("hirRead").textContent=info[2]+((c.multipleClaims&&(c.route==="FALSE_CLOSURE"||c.route==="COERCED_CLOSURE"))?" Multiple collapsed loops are contributing to the closure failure; fork before re-evaluation.":""); el("action").textContent=info[3];
|
| 224 |
+
el("flags").innerHTML=""; c.flags.forEach(([name,cls])=>{let s=document.createElement("span");s.className="flag "+cls;s.textContent=name;el("flags").appendChild(s)});
|
| 225 |
+
if(urlSyncReady) writeUrlState();
|
| 226 |
+
}
|
| 227 |
+
function applyPreset(k){let p=presets[k][1];Object.entries(p).forEach(([key,v])=>{if(typeof v==="boolean")el(key).checked=v;else el(key).value=v});update()}
|
| 228 |
+
function report(){
|
| 229 |
+
const c=compute(), info=routes[c.route], preset=presets[el("preset").value]?.[0]||"Manual exploration";
|
| 230 |
+
el("report").value=`False Closure / Open Loop Simulator v0.1.5 — Pressure Report
|
| 231 |
+
|
| 232 |
+
Scenario:
|
| 233 |
+
${preset}
|
| 234 |
+
|
| 235 |
+
Recommended Loop State:
|
| 236 |
+
${(publicStateMap[c.route]||[info[0],"Route Detail: "+info[0]])[0]}
|
| 237 |
+
|
| 238 |
+
Route Detail:
|
| 239 |
+
${info[0]}
|
| 240 |
+
|
| 241 |
+
Equation:
|
| 242 |
+
S_loop = A_resolution × B_evidence − P_closure_pressure
|
| 243 |
+
|
| 244 |
+
Scores:
|
| 245 |
+
- A_resolution / Claim Match: ${r(c.aResolution)}
|
| 246 |
+
- B_evidence / Evidence Stack: ${r(c.bEvidence)}
|
| 247 |
+
- Closure Support: ${r(c.closureSupport)}
|
| 248 |
+
- Pressure Load: ${r(c.pressureLoad)}
|
| 249 |
+
- Closure Risk: ${r(c.closureRisk)}
|
| 250 |
+
- Loop Stability: ${r(c.loopStability)}
|
| 251 |
+
|
| 252 |
+
Inputs:
|
| 253 |
+
- Claim Match: ${r(c.claimMatch)}
|
| 254 |
+
- Evidence Quality: ${r(c.evidenceQuality)}
|
| 255 |
+
- Shared Understanding: ${r(c.sharedUnderstanding)}
|
| 256 |
+
- Uncertainty Marked: ${r(c.uncertaintyMarked)}
|
| 257 |
+
- Repair Path Visible: ${r(c.repairPathVisible)}
|
| 258 |
+
- Proposed Closure Present: ${c.proposedClosure?"yes":"no"}
|
| 259 |
+
- Multiple Claims Present: ${c.multipleClaims?"yes":"no"}
|
| 260 |
+
- Prior Closure Harm Present: ${c.priorClosureHarm?"yes":"no"}
|
| 261 |
+
|
| 262 |
+
Diagnostic Flags:
|
| 263 |
+
${c.flags.map(f=>"- "+f[0]+": "+(flagDefs[f[0]]||"No definition available.")).join("\n")}
|
| 264 |
+
|
| 265 |
+
HIR/OAM Read:
|
| 266 |
+
${info[2]}
|
| 267 |
+
|
| 268 |
+
Action:
|
| 269 |
+
${info[3]}
|
| 270 |
+
|
| 271 |
+
Shareable State:
|
| 272 |
+
${location.href}
|
| 273 |
+
|
| 274 |
+
Boundary:
|
| 275 |
+
This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. Closure is an integrity event, not an administrative convenience. Structural correspondence, not ontological equivalence.`;
|
| 276 |
+
}
|
| 277 |
+
document.addEventListener("DOMContentLoaded",()=>{
|
| 278 |
+
Object.entries(presets).forEach(([k,p])=>{let o=document.createElement("option");o.value=k;o.textContent=p[0];el("preset").appendChild(o)});
|
| 279 |
+
sliders.forEach(id=>el(id).addEventListener("input",update));["proposedClosure","multipleClaims","priorClosureHarm"].forEach(id=>el(id).addEventListener("change",update));
|
| 280 |
+
el("preset").addEventListener("change",e=>applyPreset(e.target.value)); el("exportReport").addEventListener("click",report); el("copyReport").addEventListener("click",()=>{if(!el("report").value)report();navigator.clipboard?.writeText(el("report").value)});
|
| 281 |
+
el("copyScenarioLink").addEventListener("click",copyScenarioLink);
|
| 282 |
+
["RESOLVED_WITH_INTEGRITY","PARTIALLY_RESOLVED","BOUNDED_DISAGREEMENT","CLARIFICATION_REQUIRED","EVIDENCE_NEEDED","FORK_REQUIRED","OPEN_LOOP","DEFERRED_REVIEW","FALSE_CLOSURE","COERCED_CLOSURE","REPAIR_REQUIRED"].forEach(k=>{let i=routes[k],pub=publicStateMap[k]||[i[0],"Route Detail: "+i[0]],d=document.createElement("div");d.className="route-card";d.innerHTML=`<b>${pub[0]}</b><p><b>${pub[1].replace("Route Detail: ","")}</b> — ${i[1]}</p><p><b>Action:</b> ${i[3]}</p>`;el("taxonomy").appendChild(d)});
|
| 283 |
+
if(!applyUrlStateIfPresent()) applyPreset("ai_summary_false_closure");
|
| 284 |
+
urlSyncReady=true;
|
| 285 |
+
update();
|
| 286 |
+
});
|
| 287 |
+
</script>
|
| 288 |
+
</body>
|
| 289 |
+
</html>
|
index.html
CHANGED
|
@@ -3,41 +3,21 @@
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
-
<title>False Closure / Open Loop Simulator v0.1.
|
| 7 |
-
<link rel="canonical" href="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator">
|
| 8 |
-
<meta name="description" content="Not every ending is a resolution. This HIR/OAM simulator asks whether closure has the structural right to close.">
|
| 9 |
-
<meta property="og:site_name" content="Hugging Face Spaces">
|
| 10 |
-
<meta property="og:url" content="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator">
|
| 11 |
-
<meta property="og:title" content="False Closure / Open Loop Simulator">
|
| 12 |
-
<meta property="og:description" content="Not every ending is a resolution. This simulator asks whether closure has the structural right to close.">
|
| 13 |
-
<meta property="og:image" content="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator/resolve/main/false-closure-open-loop-thumbnail-v0-1-4.png">
|
| 14 |
-
<meta property="og:image:secure_url" content="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator/resolve/main/false-closure-open-loop-thumbnail-v0-1-4.png">
|
| 15 |
-
<meta property="og:image:type" content="image/png">
|
| 16 |
-
<meta property="og:image:width" content="1200">
|
| 17 |
-
<meta property="og:image:height" content="630">
|
| 18 |
-
<meta property="og:image:alt" content="False Closure / Open Loop Simulator social preview thumbnail">
|
| 19 |
-
<meta property="og:type" content="website">
|
| 20 |
-
<meta name="twitter:card" content="summary_large_image">
|
| 21 |
-
<meta name="twitter:url" content="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator">
|
| 22 |
-
<meta name="twitter:title" content="False Closure / Open Loop Simulator">
|
| 23 |
-
<meta name="twitter:description" content="Not every ending is a resolution. Disagreement is not failure; false closure is.">
|
| 24 |
-
<meta name="twitter:image" content="https://huggingface.co/spaces/HirModel/false-closure-open-loop-simulator/resolve/main/false-closure-open-loop-thumbnail-v0-1-4.png">
|
| 25 |
-
<meta name="twitter:image:alt" content="False Closure / Open Loop Simulator social preview thumbnail">
|
| 26 |
-
|
| 27 |
<style>
|
| 28 |
:root{--bg:#080b10;--panel:#111827;--panel2:#0b111b;--ink:#f7f0df;--muted:#aeb8c8;--gold:#f0c96a;--green:#7adf98;--orange:#ffb35d;--red:#ff6b6b;--line:#2d3a50}
|
| 29 |
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 15% 8%,rgba(240,201,106,.15),transparent 30%),radial-gradient(circle at 82% 4%,rgba(128,183,255,.10),transparent 35%),linear-gradient(180deg,#080b10,#0d121b 55%,#07090d);color:var(--ink);line-height:1.55}
|
| 30 |
-
.wrap{width:min(1180px,calc(100% - 32px));margin:auto}header{padding:54px 0 28px;border-bottom:1px solid var(--line)}section{padding:26px 0}.eyebrow{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:900}h1{font-size:clamp(38px,7vw,78px);line-height:.94;letter-spacing:-.06em;margin:12px 0}h2{font-size:clamp(26px,4vw,42px);line-height:1;margin:0 0 12px;letter-spacing:-.04em}h3{margin:18px 0 8px}.subtitle{font-size:clamp(18px,2.6vw,29px);color:#dce6f4;max-width:980px}.card{background:linear-gradient(135deg,rgba(17,24,39,.96),rgba(14,21,34,.92));border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.35)}.grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:18px;align-items:start}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:24px}.muted{color:var(--muted)}.gold{color:var(--gold)}.equation,textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#070a0f;color:#f4d88e;border:1px solid #39475f;border-radius:16px;padding:14px;width:100%;overflow:auto}.control{margin:13px 0}.control label{display:flex;justify-content:space-between;font-weight:780;color:#e7edf7}input[type=range]{width:100%;accent-color:var(--gold)}select{width:100%;padding:12px;border-radius:14px;background:#080c13;color:var(--ink);border:1px solid #334057}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0b111b;border:1px solid #31405a;border-radius:16px;padding:12px 14px;margin:10px 0}.toggle span{font-weight:820}.toggle small{display:block;color:var(--muted);font-weight:500}input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold)}.state{font-size:clamp(34px,5.2vw,58px);line-height:.92;letter-spacing:-.05em;font-weight:950;color:var(--gold);margin:7px 0
|
| 31 |
</style>
|
| 32 |
</head>
|
| 33 |
<body>
|
| 34 |
<header><div class="wrap">
|
| 35 |
-
<div class="eyebrow">False Closure / Open Loop Simulator v0.1.
|
| 36 |
<h1>Disagreement is not failure. False closure is failure.</h1>
|
| 37 |
-
<p class="subtitle">A HIR/OAM
|
| 38 |
<div class="hero-grid">
|
| 39 |
-
<div class="card"><h2>Closure is an integrity event.</h2><p>Most systems ask whether a conversation is over. This simulator asks whether it has the structural right to close.</p><p><b class="gold">This simulator does not decide who is right.</b> It determines whether the act of closure is structurally legitimate.</p></div>
|
| 40 |
-
<div class="card"><h2>Core equation</h2><div class="equation">S_loop = A_resolution × B_evidence − P_closure_pressure</div><p class="muted">The route is the product. The score supports the route. Diagnostic flags now describe the route condition rather than using one generic no-failure label.</p><p class="muted"><b>v0.1.
|
| 41 |
</div></div></header>
|
| 42 |
|
| 43 |
<main>
|
|
@@ -81,6 +61,7 @@
|
|
| 81 |
<div class="card">
|
| 82 |
<div class="label">Recommended Loop State</div>
|
| 83 |
<div id="state" class="state"></div>
|
|
|
|
| 84 |
<p id="meaning" class="muted"></p>
|
| 85 |
<div class="score-grid">
|
| 86 |
<div class="score"><div class="label">Closure Support</div><div id="closureSupport" class="value"></div></div>
|
|
@@ -96,8 +77,8 @@
|
|
| 96 |
</div></section>
|
| 97 |
|
| 98 |
<section><div class="wrap card"><h2>Exportable pressure report</h2><textarea id="report" placeholder="Click Generate pressure report..."></textarea></div></section>
|
| 99 |
-
<section><div class="wrap card"><h2>Route taxonomy</h2><div class="taxonomy" id="taxonomy"></div></div></section>
|
| 100 |
-
<section><div class="wrap card"><h2>Boundary</h2><p class="readbox">This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. A loop can remain open with integrity. A disagreement can remain bounded without failure. The failure state is false closure: when pressure forces a system to call something resolved before truth, evidence, context, or repair has caught up.<br><br><strong>v0.1.
|
| 101 |
</main>
|
| 102 |
|
| 103 |
<script>
|
|
@@ -110,11 +91,26 @@ CLARIFICATION_REQUIRED:["CLARIFICATION REQUIRED","The system cannot evaluate clo
|
|
| 110 |
EVIDENCE_NEEDED:["EVIDENCE NEEDED","The loop cannot close because the evidence base is insufficient.","Honesty blocks closure without proof.","Do not close. Request source-grounded evidence."],
|
| 111 |
FORK_REQUIRED:["FORK REQUIRED","Multiple loops are being collapsed into one.","Integrity preserves structure by preventing collapsed context.","Fork the loop. Separate claims before closure is attempted."],
|
| 112 |
OPEN_LOOP:["OPEN LOOP","The issue remains unresolved, and keeping it open is the honest state.","An open loop is not a failed loop when closure would be false.","Keep open. Continue inquiry."],
|
|
|
|
| 113 |
FALSE_CLOSURE:["FALSE CLOSURE","A closure attempt exists, but the support structure is incomplete.","OAM detected: pressure is impersonating resolution. The closure attempt is premature because claim match, evidence quality, uncertainty marking, or repair-path visibility are below closure-support threshold.","Reject closure. Do not proceed as if the loop is resolved. Clarify the claim boundary, request source-grounded evidence, and preserve the loop as open until uncertainty and repair-path conditions improve."],
|
| 114 |
COERCED_CLOSURE:["COERCED CLOSURE","A closure attempt exists, but pressure is overpowering unresolved structure.","Respect blocks force from impersonating agreement. Closure pressure is high while closure support is weak, so the closure attempt cannot be trusted yet.","Reject or quarantine closure. Reduce authority, moderation, institutional, fatigue, or status pressure before evaluating resolution."],
|
| 115 |
REPAIR_REQUIRED:["REPAIR REQUIRED","A prior closure harmed the loop.","Integrity requires correction of corrupted closure. Repair debt overrides ordinary closure evaluation.","Reopen for repair. Do not proceed as if the prior closure was valid. Name the harm, restore context, define a repair path, and re-evaluate only after correction."]
|
| 116 |
};
|
| 117 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 118 |
const flagDefs={
|
| 119 |
RepairDebt:"A prior closure harmed the loop; repair overrides ordinary closure evaluation.",
|
| 120 |
CoercionRisk:"Closure pressure is high enough to overpower unresolved structure.",
|
|
@@ -127,6 +123,7 @@ RepairPathThin:"The repair path is weak, missing, or not visible enough.",
|
|
| 127 |
ClosureClear:"No critical failure flag; closure has earned the route threshold.",
|
| 128 |
StableOpenState:"No critical failure flag; the loop can remain honestly open or bounded.",
|
| 129 |
PartialClosureClear:"No critical failure flag; only the proven portion should close.",
|
|
|
|
| 130 |
NoCriticalFailure:"No critical failure flag detected for this route."
|
| 131 |
};
|
| 132 |
|
|
@@ -181,6 +178,7 @@ const presets={
|
|
| 181 |
"partial_resolved":["Partially Resolved Proof",{claimMatch:.82,evidenceQuality:.80,sharedUnderstanding:.78,uncertaintyMarked:.62,repairPathVisible:.64,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.26,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 182 |
"clarification_required":["Clarification Required Proof",{claimMatch:.32,evidenceQuality:.64,sharedUnderstanding:.46,uncertaintyMarked:.60,repairPathVisible:.42,fatiguePressure:.28,authorityPressure:.20,statusPressure:.22,socialDiscomfort:.30,moderationPressure:.25,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 183 |
"open_loop":["Open Loop Proof",{claimMatch:.56,evidenceQuality:.56,sharedUnderstanding:.54,uncertaintyMarked:.54,repairPathVisible:.46,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.25,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
|
|
|
| 184 |
"repair_required":["Repair Required",{claimMatch:.55,evidenceQuality:.50,sharedUnderstanding:.42,uncertaintyMarked:.28,repairPathVisible:.18,fatiguePressure:.58,authorityPressure:.66,statusPressure:.60,socialDiscomfort:.62,moderationPressure:.55,proposedClosure:true,multipleClaims:false,priorClosureHarm:true}]
|
| 185 |
};
|
| 186 |
function el(id){return document.getElementById(id)} function val(id){return parseFloat(el(id).value)} function avg(a){return a.reduce((x,y)=>x+y,0)/a.length} function r(n){return Number(n).toFixed(2)}
|
|
@@ -206,9 +204,11 @@ function compute(){
|
|
| 206 |
else if(multipleClaims)route="FORK_REQUIRED";
|
| 207 |
else if(claimMatch<.45)route="CLARIFICATION_REQUIRED";
|
| 208 |
else if(evidenceQuality<.50)route="EVIDENCE_NEEDED";
|
|
|
|
| 209 |
else if(closureSupport>=.58&&closureSupport<.74&&claimMatch>=.60&&evidenceQuality>=.55)route="PARTIALLY_RESOLVED";
|
| 210 |
else if(evidenceQuality>=.60&&sharedUnderstanding>=.60&&uncertaintyMarked>=.60&&claimMatch>=.45&&claimMatch<=.70)route="BOUNDED_DISAGREEMENT";
|
| 211 |
else if(closureSupport>=.74&&pressureLoad<.55&&claimMatch>=.75&&evidenceQuality>=.70&&uncertaintyMarked>=.60)route="RESOLVED_WITH_INTEGRITY";
|
|
|
|
| 212 |
if(!flags.length){
|
| 213 |
if(route==="RESOLVED_WITH_INTEGRITY") flags.push(["ClosureClear","good"]);
|
| 214 |
else if(route==="BOUNDED_DISAGREEMENT" || route==="OPEN_LOOP") flags.push(["StableOpenState","good"]);
|
|
@@ -220,19 +220,22 @@ function compute(){
|
|
| 220 |
function update(){
|
| 221 |
sliders.forEach(id=>el(id+"Val").textContent=r(val(id)));
|
| 222 |
const c=compute(), info=routes[c.route];
|
| 223 |
-
el("state").textContent=
|
| 224 |
el("flags").innerHTML=""; c.flags.forEach(([name,cls])=>{let s=document.createElement("span");s.className="flag "+cls;s.textContent=name;el("flags").appendChild(s)});
|
| 225 |
if(urlSyncReady) writeUrlState();
|
| 226 |
}
|
| 227 |
function applyPreset(k){let p=presets[k][1];Object.entries(p).forEach(([key,v])=>{if(typeof v==="boolean")el(key).checked=v;else el(key).value=v});update()}
|
| 228 |
function report(){
|
| 229 |
const c=compute(), info=routes[c.route], preset=presets[el("preset").value]?.[0]||"Manual exploration";
|
| 230 |
-
el("report").value=`False Closure / Open Loop Simulator v0.1.
|
| 231 |
|
| 232 |
Scenario:
|
| 233 |
${preset}
|
| 234 |
|
| 235 |
Recommended Loop State:
|
|
|
|
|
|
|
|
|
|
| 236 |
${info[0]}
|
| 237 |
|
| 238 |
Equation:
|
|
@@ -269,14 +272,14 @@ Shareable State:
|
|
| 269 |
${location.href}
|
| 270 |
|
| 271 |
Boundary:
|
| 272 |
-
This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. Closure is an integrity event, not an administrative convenience.`;
|
| 273 |
}
|
| 274 |
document.addEventListener("DOMContentLoaded",()=>{
|
| 275 |
Object.entries(presets).forEach(([k,p])=>{let o=document.createElement("option");o.value=k;o.textContent=p[0];el("preset").appendChild(o)});
|
| 276 |
sliders.forEach(id=>el(id).addEventListener("input",update));["proposedClosure","multipleClaims","priorClosureHarm"].forEach(id=>el(id).addEventListener("change",update));
|
| 277 |
el("preset").addEventListener("change",e=>applyPreset(e.target.value)); el("exportReport").addEventListener("click",report); el("copyReport").addEventListener("click",()=>{if(!el("report").value)report();navigator.clipboard?.writeText(el("report").value)});
|
| 278 |
el("copyScenarioLink").addEventListener("click",copyScenarioLink);
|
| 279 |
-
["RESOLVED_WITH_INTEGRITY","PARTIALLY_RESOLVED","BOUNDED_DISAGREEMENT","CLARIFICATION_REQUIRED","EVIDENCE_NEEDED","FORK_REQUIRED","OPEN_LOOP","FALSE_CLOSURE","COERCED_CLOSURE","REPAIR_REQUIRED"].forEach(k=>{let i=routes[k],d=document.createElement("div");d.className="route-card";d.innerHTML=`<b>${
|
| 280 |
if(!applyUrlStateIfPresent()) applyPreset("ai_summary_false_closure");
|
| 281 |
urlSyncReady=true;
|
| 282 |
update();
|
|
|
|
| 3 |
<head>
|
| 4 |
<meta charset="utf-8">
|
| 5 |
<meta name="viewport" content="width=device-width,initial-scale=1">
|
| 6 |
+
<title>False Closure / Open Loop Simulator v0.1.5</title>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 7 |
<style>
|
| 8 |
:root{--bg:#080b10;--panel:#111827;--panel2:#0b111b;--ink:#f7f0df;--muted:#aeb8c8;--gold:#f0c96a;--green:#7adf98;--orange:#ffb35d;--red:#ff6b6b;--line:#2d3a50}
|
| 9 |
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,Segoe UI,Arial,sans-serif;background:radial-gradient(circle at 15% 8%,rgba(240,201,106,.15),transparent 30%),radial-gradient(circle at 82% 4%,rgba(128,183,255,.10),transparent 35%),linear-gradient(180deg,#080b10,#0d121b 55%,#07090d);color:var(--ink);line-height:1.55}
|
| 10 |
+
.wrap{width:min(1180px,calc(100% - 32px));margin:auto}header{padding:54px 0 28px;border-bottom:1px solid var(--line)}section{padding:26px 0}.eyebrow{color:var(--gold);font-size:12px;text-transform:uppercase;letter-spacing:.16em;font-weight:900}h1{font-size:clamp(38px,7vw,78px);line-height:.94;letter-spacing:-.06em;margin:12px 0}h2{font-size:clamp(26px,4vw,42px);line-height:1;margin:0 0 12px;letter-spacing:-.04em}h3{margin:18px 0 8px}.subtitle{font-size:clamp(18px,2.6vw,29px);color:#dce6f4;max-width:980px}.card{background:linear-gradient(135deg,rgba(17,24,39,.96),rgba(14,21,34,.92));border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:0 18px 45px rgba(0,0,0,.35)}.grid{display:grid;grid-template-columns:.95fr 1.05fr;gap:18px;align-items:start}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:18px;margin-top:24px}.muted{color:var(--muted)}.gold{color:var(--gold)}.equation,textarea{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;background:#070a0f;color:#f4d88e;border:1px solid #39475f;border-radius:16px;padding:14px;width:100%;overflow:auto}.control{margin:13px 0}.control label{display:flex;justify-content:space-between;font-weight:780;color:#e7edf7}input[type=range]{width:100%;accent-color:var(--gold)}select{width:100%;padding:12px;border-radius:14px;background:#080c13;color:var(--ink);border:1px solid #334057}.toggle{display:flex;align-items:center;justify-content:space-between;gap:14px;background:#0b111b;border:1px solid #31405a;border-radius:16px;padding:12px 14px;margin:10px 0}.toggle span{font-weight:820}.toggle small{display:block;color:var(--muted);font-weight:500}input[type=checkbox]{width:22px;height:22px;accent-color:var(--gold)}.state{font-size:clamp(34px,5.2vw,58px);line-height:.92;letter-spacing:-.05em;font-weight:950;color:var(--gold);margin:7px 0 8px}.route-detail{font-size:14px;font-weight:850;color:#dce6f4;margin-bottom:10px}.label{font-size:12px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:900}.score-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.score{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.09);border-radius:18px;padding:14px}.score .value{font-size:30px;font-weight:950}.readbox{border-left:4px solid var(--gold);padding-left:14px;margin-top:16px}.flags{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.flag{border:1px solid #44556f;background:#0c121c;border-radius:999px;padding:7px 10px;font-size:12px;font-weight:850}.hot{border-color:rgba(255,107,107,.45);color:#ffd0d0;background:rgba(255,107,107,.10)}.warn{border-color:rgba(255,179,93,.45);color:#ffe0bd;background:rgba(255,179,93,.10)}.good{border-color:rgba(122,223,152,.45);color:#c9ffd8;background:rgba(122,223,152,.10)}.pillrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.pill,.btn{border:1px solid #3a4a63;background:#101722;color:#dce6f4;border-radius:999px;padding:8px 11px;font-size:12px;font-weight:850;cursor:pointer}.primary{border-color:rgba(240,201,106,.65);color:var(--gold)}textarea{min-height:300px;color:#dfe7f3;resize:vertical}.taxonomy{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.route-card{background:#0b111b;border:1px solid var(--line);border-radius:18px;padding:16px}.route-card b{color:var(--gold)}.route-card p{color:var(--muted);font-size:13px}@media(max-width:900px){.grid,.hero-grid,.score-grid,.taxonomy{grid-template-columns:1fr}}
|
| 11 |
</style>
|
| 12 |
</head>
|
| 13 |
<body>
|
| 14 |
<header><div class="wrap">
|
| 15 |
+
<div class="eyebrow">False Closure / Open Loop Simulator v0.1.5</div>
|
| 16 |
<h1>Disagreement is not failure. False closure is failure.</h1>
|
| 17 |
+
<p class="subtitle">A HIR/OAM closure-legitimacy instrument for deciding whether a claim, conversation, dispute, or repair loop should close, remain open, fork, request evidence, defer review, or reopen for repair.</p>
|
| 18 |
<div class="hero-grid">
|
| 19 |
+
<div class="card"><h2>Closure is an integrity event.</h2><p>Most systems ask whether a conversation is over. This simulator asks whether it has the structural right to close.</p><p><b class="gold">This simulator does not decide who is right.</b> It determines whether the act of closure is structurally legitimate. Structural correspondence, not ontological equivalence.</p></div>
|
| 20 |
+
<div class="card"><h2>Core equation</h2><div class="equation">S_loop = A_resolution × B_evidence − P_closure_pressure</div><p class="muted">The route is the product. The score supports the route. Diagnostic flags now describe the route condition rather than using one generic no-failure label.</p><p class="muted"><b>v0.1.5 patch:</b> State taxonomy alignment: public Recommended Loop State labels are normalized while richer route details are preserved. Shareable URL state and visible B_evidence weighting remain intact.</p></div>
|
| 21 |
</div></div></header>
|
| 22 |
|
| 23 |
<main>
|
|
|
|
| 61 |
<div class="card">
|
| 62 |
<div class="label">Recommended Loop State</div>
|
| 63 |
<div id="state" class="state"></div>
|
| 64 |
+
<div id="routeDetail" class="route-detail"></div>
|
| 65 |
<p id="meaning" class="muted"></p>
|
| 66 |
<div class="score-grid">
|
| 67 |
<div class="score"><div class="label">Closure Support</div><div id="closureSupport" class="value"></div></div>
|
|
|
|
| 77 |
</div></section>
|
| 78 |
|
| 79 |
<section><div class="wrap card"><h2>Exportable pressure report</h2><textarea id="report" placeholder="Click Generate pressure report..."></textarea></div></section>
|
| 80 |
+
<section><div class="wrap card"><h2>Route taxonomy</h2><p class="muted">Public labels use the locked Recommended Loop State set. Route detail preserves the richer v0.1.4 interpretation layer.</p><div class="taxonomy" id="taxonomy"></div></div></section>
|
| 81 |
+
<section><div class="wrap card"><h2>Boundary</h2><p class="readbox">This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. A loop can remain open with integrity. A disagreement can remain bounded without failure. The failure state is false closure: when pressure forces a system to call something resolved before truth, evidence, context, or repair has caught up.<br><br><strong>Structural correspondence, not ontological equivalence.</strong> The tool is not a moderation verdict, censorship engine, legal finding, peer-review substitute, consciousness claim, personhood claim, biological-life claim, production validation, or institutional endorsement. It is a closure-legitimacy instrument.<br><br><strong>v0.1.5 route-proof note:</strong> public state labels are normalized to the handoff set while internal route detail remains visible. This patch also adds DEFERRED_REVIEW and strengthens the boundary language.</p></div></section>
|
| 82 |
</main>
|
| 83 |
|
| 84 |
<script>
|
|
|
|
| 91 |
EVIDENCE_NEEDED:["EVIDENCE NEEDED","The loop cannot close because the evidence base is insufficient.","Honesty blocks closure without proof.","Do not close. Request source-grounded evidence."],
|
| 92 |
FORK_REQUIRED:["FORK REQUIRED","Multiple loops are being collapsed into one.","Integrity preserves structure by preventing collapsed context.","Fork the loop. Separate claims before closure is attempted."],
|
| 93 |
OPEN_LOOP:["OPEN LOOP","The issue remains unresolved, and keeping it open is the honest state.","An open loop is not a failed loop when closure would be false.","Keep open. Continue inquiry."],
|
| 94 |
+
DEFERRED_REVIEW:["DEFERRED REVIEW","The loop is not ready to close or route cleanly; review should pause until source-return, uncertainty, pressure, or repair conditions improve.","Integrity prevents premature settlement when the structure is still under-specified or pressure-contaminated.","Defer closure. Preserve the loop, reduce pressure, name missing conditions, and re-evaluate after review evidence improves."],
|
| 95 |
FALSE_CLOSURE:["FALSE CLOSURE","A closure attempt exists, but the support structure is incomplete.","OAM detected: pressure is impersonating resolution. The closure attempt is premature because claim match, evidence quality, uncertainty marking, or repair-path visibility are below closure-support threshold.","Reject closure. Do not proceed as if the loop is resolved. Clarify the claim boundary, request source-grounded evidence, and preserve the loop as open until uncertainty and repair-path conditions improve."],
|
| 96 |
COERCED_CLOSURE:["COERCED CLOSURE","A closure attempt exists, but pressure is overpowering unresolved structure.","Respect blocks force from impersonating agreement. Closure pressure is high while closure support is weak, so the closure attempt cannot be trusted yet.","Reject or quarantine closure. Reduce authority, moderation, institutional, fatigue, or status pressure before evaluating resolution."],
|
| 97 |
REPAIR_REQUIRED:["REPAIR REQUIRED","A prior closure harmed the loop.","Integrity requires correction of corrupted closure. Repair debt overrides ordinary closure evaluation.","Reopen for repair. Do not proceed as if the prior closure was valid. Name the harm, restore context, define a repair path, and re-evaluate only after correction."]
|
| 98 |
};
|
| 99 |
|
| 100 |
+
const publicStateMap={
|
| 101 |
+
RESOLVED_WITH_INTEGRITY:["RESOLVED","Route Detail: Resolved with integrity"],
|
| 102 |
+
PARTIALLY_RESOLVED:["RESOLVED","Route Detail: Partial / limited resolution"],
|
| 103 |
+
BOUNDED_DISAGREEMENT:["STILL_OPEN","Route Detail: Bounded disagreement"],
|
| 104 |
+
CLARIFICATION_REQUIRED:["CLARIFICATION_NEEDED","Route Detail: Clarification required"],
|
| 105 |
+
EVIDENCE_NEEDED:["EVIDENCE_NEEDED","Route Detail: Evidence needed"],
|
| 106 |
+
FORK_REQUIRED:["FORK_NEEDED","Route Detail: Fork required"],
|
| 107 |
+
OPEN_LOOP:["STILL_OPEN","Route Detail: Open loop"],
|
| 108 |
+
DEFERRED_REVIEW:["DEFERRED_REVIEW","Route Detail: Deferred review"],
|
| 109 |
+
FALSE_CLOSURE:["FALSE_CLOSURE_RISK","Route Detail: False closure"],
|
| 110 |
+
COERCED_CLOSURE:["COERCION_RISK","Route Detail: Coerced closure"],
|
| 111 |
+
REPAIR_REQUIRED:["REPAIR_NEEDED","Route Detail: Repair required"]
|
| 112 |
+
};
|
| 113 |
+
|
| 114 |
const flagDefs={
|
| 115 |
RepairDebt:"A prior closure harmed the loop; repair overrides ordinary closure evaluation.",
|
| 116 |
CoercionRisk:"Closure pressure is high enough to overpower unresolved structure.",
|
|
|
|
| 123 |
ClosureClear:"No critical failure flag; closure has earned the route threshold.",
|
| 124 |
StableOpenState:"No critical failure flag; the loop can remain honestly open or bounded.",
|
| 125 |
PartialClosureClear:"No critical failure flag; only the proven portion should close.",
|
| 126 |
+
DeferredReview:"Review should pause until closure conditions are better specified or pressure is reduced.",
|
| 127 |
NoCriticalFailure:"No critical failure flag detected for this route."
|
| 128 |
};
|
| 129 |
|
|
|
|
| 178 |
"partial_resolved":["Partially Resolved Proof",{claimMatch:.82,evidenceQuality:.80,sharedUnderstanding:.78,uncertaintyMarked:.62,repairPathVisible:.64,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.26,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 179 |
"clarification_required":["Clarification Required Proof",{claimMatch:.32,evidenceQuality:.64,sharedUnderstanding:.46,uncertaintyMarked:.60,repairPathVisible:.42,fatiguePressure:.28,authorityPressure:.20,statusPressure:.22,socialDiscomfort:.30,moderationPressure:.25,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 180 |
"open_loop":["Open Loop Proof",{claimMatch:.56,evidenceQuality:.56,sharedUnderstanding:.54,uncertaintyMarked:.54,repairPathVisible:.46,fatiguePressure:.24,authorityPressure:.22,statusPressure:.24,socialDiscomfort:.25,moderationPressure:.22,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 181 |
+
"deferred_review":["Deferred Review",{claimMatch:.58,evidenceQuality:.58,sharedUnderstanding:.56,uncertaintyMarked:.38,repairPathVisible:.34,fatiguePressure:.60,authorityPressure:.48,statusPressure:.46,socialDiscomfort:.56,moderationPressure:.42,proposedClosure:false,multipleClaims:false,priorClosureHarm:false}],
|
| 182 |
"repair_required":["Repair Required",{claimMatch:.55,evidenceQuality:.50,sharedUnderstanding:.42,uncertaintyMarked:.28,repairPathVisible:.18,fatiguePressure:.58,authorityPressure:.66,statusPressure:.60,socialDiscomfort:.62,moderationPressure:.55,proposedClosure:true,multipleClaims:false,priorClosureHarm:true}]
|
| 183 |
};
|
| 184 |
function el(id){return document.getElementById(id)} function val(id){return parseFloat(el(id).value)} function avg(a){return a.reduce((x,y)=>x+y,0)/a.length} function r(n){return Number(n).toFixed(2)}
|
|
|
|
| 204 |
else if(multipleClaims)route="FORK_REQUIRED";
|
| 205 |
else if(claimMatch<.45)route="CLARIFICATION_REQUIRED";
|
| 206 |
else if(evidenceQuality<.50)route="EVIDENCE_NEEDED";
|
| 207 |
+
else if(!proposedClosure&&pressureLoad>=.45&&closureSupport<.66&&(uncertaintyMarked<.55||repairPathVisible<.50))route="DEFERRED_REVIEW";
|
| 208 |
else if(closureSupport>=.58&&closureSupport<.74&&claimMatch>=.60&&evidenceQuality>=.55)route="PARTIALLY_RESOLVED";
|
| 209 |
else if(evidenceQuality>=.60&&sharedUnderstanding>=.60&&uncertaintyMarked>=.60&&claimMatch>=.45&&claimMatch<=.70)route="BOUNDED_DISAGREEMENT";
|
| 210 |
else if(closureSupport>=.74&&pressureLoad<.55&&claimMatch>=.75&&evidenceQuality>=.70&&uncertaintyMarked>=.60)route="RESOLVED_WITH_INTEGRITY";
|
| 211 |
+
if(route==="DEFERRED_REVIEW"&&!flags.some(f=>f[0]==="DeferredReview")) flags.push(["DeferredReview","warn"]);
|
| 212 |
if(!flags.length){
|
| 213 |
if(route==="RESOLVED_WITH_INTEGRITY") flags.push(["ClosureClear","good"]);
|
| 214 |
else if(route==="BOUNDED_DISAGREEMENT" || route==="OPEN_LOOP") flags.push(["StableOpenState","good"]);
|
|
|
|
| 220 |
function update(){
|
| 221 |
sliders.forEach(id=>el(id+"Val").textContent=r(val(id)));
|
| 222 |
const c=compute(), info=routes[c.route];
|
| 223 |
+
const pub=publicStateMap[c.route]||[info[0],"Route Detail: "+info[0]]; el("state").textContent=pub[0]; el("routeDetail").textContent=pub[1]; el("meaning").textContent=info[1]; el("closureSupport").textContent=r(c.closureSupport); el("pressureLoad").textContent=r(c.pressureLoad); el("closureRisk").textContent=r(c.closureRisk); el("loopStability").textContent=r(c.loopStability); el("hirRead").textContent=info[2]+((c.multipleClaims&&(c.route==="FALSE_CLOSURE"||c.route==="COERCED_CLOSURE"))?" Multiple collapsed loops are contributing to the closure failure; fork before re-evaluation.":""); el("action").textContent=info[3];
|
| 224 |
el("flags").innerHTML=""; c.flags.forEach(([name,cls])=>{let s=document.createElement("span");s.className="flag "+cls;s.textContent=name;el("flags").appendChild(s)});
|
| 225 |
if(urlSyncReady) writeUrlState();
|
| 226 |
}
|
| 227 |
function applyPreset(k){let p=presets[k][1];Object.entries(p).forEach(([key,v])=>{if(typeof v==="boolean")el(key).checked=v;else el(key).value=v});update()}
|
| 228 |
function report(){
|
| 229 |
const c=compute(), info=routes[c.route], preset=presets[el("preset").value]?.[0]||"Manual exploration";
|
| 230 |
+
el("report").value=`False Closure / Open Loop Simulator v0.1.5 — Pressure Report
|
| 231 |
|
| 232 |
Scenario:
|
| 233 |
${preset}
|
| 234 |
|
| 235 |
Recommended Loop State:
|
| 236 |
+
${(publicStateMap[c.route]||[info[0],"Route Detail: "+info[0]])[0]}
|
| 237 |
+
|
| 238 |
+
Route Detail:
|
| 239 |
${info[0]}
|
| 240 |
|
| 241 |
Equation:
|
|
|
|
| 272 |
${location.href}
|
| 273 |
|
| 274 |
Boundary:
|
| 275 |
+
This simulator does not decide who is right. It determines whether closure itself is structurally legitimate. Closure is an integrity event, not an administrative convenience. Structural correspondence, not ontological equivalence.`;
|
| 276 |
}
|
| 277 |
document.addEventListener("DOMContentLoaded",()=>{
|
| 278 |
Object.entries(presets).forEach(([k,p])=>{let o=document.createElement("option");o.value=k;o.textContent=p[0];el("preset").appendChild(o)});
|
| 279 |
sliders.forEach(id=>el(id).addEventListener("input",update));["proposedClosure","multipleClaims","priorClosureHarm"].forEach(id=>el(id).addEventListener("change",update));
|
| 280 |
el("preset").addEventListener("change",e=>applyPreset(e.target.value)); el("exportReport").addEventListener("click",report); el("copyReport").addEventListener("click",()=>{if(!el("report").value)report();navigator.clipboard?.writeText(el("report").value)});
|
| 281 |
el("copyScenarioLink").addEventListener("click",copyScenarioLink);
|
| 282 |
+
["RESOLVED_WITH_INTEGRITY","PARTIALLY_RESOLVED","BOUNDED_DISAGREEMENT","CLARIFICATION_REQUIRED","EVIDENCE_NEEDED","FORK_REQUIRED","OPEN_LOOP","DEFERRED_REVIEW","FALSE_CLOSURE","COERCED_CLOSURE","REPAIR_REQUIRED"].forEach(k=>{let i=routes[k],pub=publicStateMap[k]||[i[0],"Route Detail: "+i[0]],d=document.createElement("div");d.className="route-card";d.innerHTML=`<b>${pub[0]}</b><p><b>${pub[1].replace("Route Detail: ","")}</b> — ${i[1]}</p><p><b>Action:</b> ${i[3]}</p>`;el("taxonomy").appendChild(d)});
|
| 283 |
if(!applyUrlStateIfPresent()) applyPreset("ai_summary_false_closure");
|
| 284 |
urlSyncReady=true;
|
| 285 |
update();
|