diff --git a/experiments/thesis-g/README.md b/experiments/thesis-g/README.md new file mode 100644 index 0000000..2e15fe9 --- /dev/null +++ b/experiments/thesis-g/README.md @@ -0,0 +1,29 @@ +# experiments/ — non-canonical sandbox + +**Nothing in this directory is canonical.** It is a standalone spike space for +learning about theses the core has deliberately *not* opened, without touching +core ASSAY. + +Rules that keep it from polluting the core: + +- No file here is imported by `src/`, `schema/`, `specs/`, or `docs/research/`. +- No schema change, no `npm run gen`, no LinkML class. Sandboxes define their own + local throwaway types. +- No register decision (DEC). Findings feed back only as **flagged concept §6 + candidates** for a future batch (DEC-2) — they assert nothing. +- Reads of core fixtures are one-way and read-only. + +## thesis-g/ — interdependency (PMESII node-link) + +Probes concept §6.3's open question: *does thesis G admit any honest v1 slice, or +is it horizon-only?* Thesis G is flagged "highest false-precision risk" (concept +§1); `assay-knowledge-model.md:484` keeps PMESII shapes out of the core on purpose. + +- `thesis-g-interdependency.md` — the design note (this spike's DEC-11-shaped + gate, kept *out* of `docs/research/` because it gates no build stage and + decides nothing canonical). +- `demonstrator.html` — the built three-panel demonstrator. Self-contained and + offline; open it directly in a browser (no build step, no network, no `src/` + import). Picks a question, reads the Meridian-derived PMESII graph three ways + (reachability / signed direction / weighted-trap), and runs an in-page honesty + self-check. `preview-*.png` are verification screenshots. diff --git a/experiments/thesis-g/demonstrator.html b/experiments/thesis-g/demonstrator.html new file mode 100644 index 0000000..e16b6ae --- /dev/null +++ b/experiments/thesis-g/demonstrator.html @@ -0,0 +1,442 @@ + + + + + +Thesis G — interdependency, read three ways (non-canonical spike) + + + +
+

Interdependency, read three ways experimental · not canonical

+

+ A sandbox demonstrator for thesis G (PMESII interdependency), the highest-false-precision-risk thesis. + One Meridian-derived graph, three reads — finding the rung where honesty ends. Meridian is fiction (vignette §8); + nothing here touches core ASSAY. See thesis-g-interdependency.md for the argument. +

+ +
+ + +
+ + + +
+
+ +
+ +
+
+ +
+ +
+ + +
+ + + + diff --git a/experiments/thesis-g/preview-straddle.png b/experiments/thesis-g/preview-straddle.png new file mode 100644 index 0000000..03a36de Binary files /dev/null and b/experiments/thesis-g/preview-straddle.png differ diff --git a/experiments/thesis-g/preview-trap.png b/experiments/thesis-g/preview-trap.png new file mode 100644 index 0000000..ae9945e Binary files /dev/null and b/experiments/thesis-g/preview-trap.png differ diff --git a/experiments/thesis-g/thesis-g-interdependency.md b/experiments/thesis-g/thesis-g-interdependency.md new file mode 100644 index 0000000..6a8f146 --- /dev/null +++ b/experiments/thesis-g/thesis-g-interdependency.md @@ -0,0 +1,430 @@ +# Sandbox note — Thesis G: is interdependency honestly computable? + +**Non-canonical spike.** `experiments/thesis-g/` · 2026-07-18 +Probes: concept §6.3 (does thesis G admit any honest v1 slice, or is it horizon-only?) +Adjacent: `docs/research/horizon-forward-derivation.md` (the derivation-direction question sits underneath thesis G); issue #24 (focused dependency-graph view — sibling presentation slice); thesis F (staleness — the honest slice turns out to be a generalisation of it) + +This note decides nothing canonical. It gates no build stage, changes no schema, +and asserts no register decision. Its job is to think through what a standalone +demonstrator should *learn* about thesis G before any code, and to record a +provisional verdict on where the honest line falls. If anything here survives +scrutiny it becomes a **flagged** concept §6 candidate for a future batch +(register-first, DEC-2) — never an assertion made from a peer document. + +--- + +## 1. The claim, and why it is the highest false-precision risk + +**G · Interdependency:** *systems-perspective (PMESII node-link) knowledge can be +computable* (concept §1). PMESII = the Political / Military / Economic / Social / +Information / Infrastructure systems, represented as a graph of nodes whose states +affect one another across system boundaries. The ambition is to make that graph — +and the propagation of effects across it — into typed, exploitable knowledge, the +way theses A–F made single objects and their verdicts exploitable. + +The core keeps it out on purpose. `assay-knowledge-model.md:484`: *"No PMESII +node-link classes — thesis G is horizon (concept §1); admitting shapes for it now +would be false-precision risk with no consumer."* Concept §1 stamps it *"highest +false-precision risk."* + +That stamp is not vague nervousness; it names a specific, historically documented +failure mode. **Effects-Based Operations (EBO)** and its analytical engine, +**Operational Net Assessment / System-of-Systems Analysis (ONA / SoSA)**, tried in +the 2000s to make exactly this graph *predictively* computable — model the +adversary as a PMESII system-of-systems, assign nodes and links, and reason +"strike this node, these effects propagate, with this confidence." US Joint Forces +Command formally repudiated the approach (the 2008 Mattis guidance) on the grounds +that it manufactured false certainty about a **complex adaptive system** whose +second- and third-order effects are not reliably predictable and whose links are +not stable numbers. The critique is the exact one ASSAY's constitution is built to +enforce: a number presented as knowledge that no honest source can ground. + +So the demonstrator's real research question is **not** "can we draw a PMESII +graph" — the representation is easy, and the core already has most of the +machinery (the trace graph, `traceView.ts`'s `EDGE_ORIENTATION` reading, the +DEC-47 transitive dependency-graph view). The question is: **is there a slice of +interdependency that survives the EBO/ONA critique — that is honestly computable +under ASSAY's banded, no-weights, everything-attributed discipline — and where +exactly does it turn into false precision?** + +It is useful to see the ambition as a **three-rung ladder** of how much a link +claims, and to find the highest rung that stays honest: + +| Rung | The link claims | Example | +|---|---|---| +| **1 · Reachability** | *X can reach Y* (topology only) | "striking the substation can reach the field hospital" | +| **2 · Signed direction** | *X pushes Y up / down* (sign, no magnitude) | "mining the strait **increases** ANVIL's threat exposure" | +| **3 · Weighted magnitude** | *X changes Y by this much, with this confidence* | "cranes down → throughput −60% (conf 0.7)" | + +Rung 3 is EBO/ONA and is out (§5). The interesting work — and the reason this +note was worth rewriting — is that **rung 2 does not sit cleanly on one side of +the line.** It is honest one attributed hop at a time and dishonest the moment it +*composes*, and pinning exactly where it breaks sharpens the whole verdict (§4, +§6). §3 takes rung 1; §4 takes rung 2 (the proof); §5 takes rung 3 (the trap). + +## 2. Meridian already contains a latent PMESII graph + +We do not need to invent a world. The Meridian vignette is dense with +cross-system interdependency stated as *prose* and never typed — which is precisely +the "stated gap" the doctrine crosswalk already admits at JIPOE Step 3 +(`assay-doctrine.html:101`: red ORBAT is prose, no HVT/COG shapes, "a deliberate +deferral (thesis G)"). Surfacing that latent graph *is* the test: does real +JIPOE-shaped material admit an honest interdependency read? + +Mapping the vignette (§1–§6) onto PMESII systems: + +| System | Meridian nodes (from the prose) | +|---|---| +| **Infrastructure** | Port Halcyon + its cranes; the Ledger–Anchor causeway; Carrick airstrip; Ledger quay berths | +| **Military** | Garrison battalion; Carrick Head battery (fire-control radar, K8); FAC squadron + 2 minelayers; air-defence section (K7); mine stocks (K12) | +| **Social** | Civilian population dependent on seaborne resupply (K3, 35–55 k in the port district) | +| **Economic** | Stocks ashore running out; the relief convoy (FE-PACKHORSE) as the resupply flow | +| **Information** | Garrison HQ radio traffic (K13); the intercepted maintenance return behind K8 | +| **Political** | Directorate home government "distracted"; émigré chatter (K10, the refused assumption) | + +And the *cross-system edges* are already implied by the scenario's own causal +language — for example: + +- **R3 demolishes the port cranes** → Port Halcyon unusable → the relief convoy + cannot offload → the resupply-dependent population is affected. + (Infrastructure → Economic → Social.) +- **R3 drops the causeway** → no overland route from a Ledger lodgement (K2's + causeway-load fact goes moot) → ANVIL's resupply is sea-only; C5 is foreclosed. + (Infrastructure → Military.) +- **K8 (battery radar) operational** → north approach unsafe → PACKHORSE routing + and BROOM's sweep sequence change → C1/C2 timing. + (Military/Information → Military → mission timing.) + +Every one of these is a genuine PMESII interdependency, and **none of it is in the +typed model** — the core scores C1–C6 without ever representing "the cranes feed +the population." That is the gap thesis G names. The demonstrator's substrate is +this graph, read-only from the fixtures; we imply nothing about the core storing it. + +**One distinction is the intellectual core of the whole spike.** ASSAY's existing +trace graph is *epistemic* — it records **how we came to believe** a value (K9 +`supersedes` K5; K12a `contests` K12b; a channel `compiled_into` from a knowledge +object). A PMESII interdependency graph is *ontic* — it records **how the parts of +the world affect each other** (cranes → offload → population). These are different +graphs over different node types, and conflating them is a category error. The open +question is whether the *attribution discipline* that makes the epistemic graph +honest transfers to the ontic one. This note's provisional answer: **the attribution +transfers; the magnitude does not.** + +## 3. The honest read — attributed reachability + +Claim: the honest, false-precision-proof slice of interdependency is **attributed +reachability / path-surfacing**, and it is thesis F (staleness) generalised from the +epistemic graph to the ontic one. + +A reachability read answers exactly one kind of question, qualitatively: + +> *"A perturbation at node X **can reach** node Y along this stated path; each link +> on the path was asserted by [source], at [assessment grade]. Here is a path you +> may not have considered."* + +It carries: + +- **Topology, not magnitude.** "Can reach" / "cannot reach" — a set-membership fact + about the graph, not a number about how much. No edge weight, no propagation + coefficient, no confidence scalar. (DEC-19: no numeric weights; DEC-15: a Band has + no interior — and here we don't even claim a band, we claim reachability.) +- **Full attribution on every edge.** Each interdependency link renders with a + provenance chip — *who asserts that the cranes feed the population, on what basis*. + An unattributed link does not render as a fact; it renders as an assertion needing + an owner (constitution: everything traces to a named owner; G3). +- **Honest dead ends.** Where the stated knowledge runs out, the walk stops and + *says so* — "no stated dependency beyond here" — rather than inventing a + continuation. (The G3/G4 no-silent-drop discipline, lifted to this view exactly as + the DEC-47 graph lifts it.) + +The **value** of this read is not prediction — it is **surprise-surfacing**: the +non-obvious path (strike the substation → lose the field hospital's power) that a +planner would not enumerate unaided. That is a real, defensible operational good, +and it needs no number to deliver. Structurally it is the same walk `TraceStore.walk` +already performs under `EDGE_ORIENTATION`; the novelty is only that the nodes are +world features, not knowledge objects, and that each edge must carry its own +provenance. + +**Why I expect this to come out honest:** it makes no claim the EBO/ONA critique can +puncture. It never says an effect *will* happen, or *how much*; it says a dependency +*is asserted to exist*, names who asserts it, and shows what it connects to. A +commander can act on "you may not have considered that this strike reaches the +hospital" without the system having laundered a value judgement. + +## 4. The intermediate — signed direction (the proof) + +Rung 2 is the one that repays the work. The tempting summary — *"sign needs a +model, so park it with the trap"* — is wrong; so is *"sign is magnitude-free, so +park it with reachability."* The honest answer is that **rung 2 splits**, and +locating the split is the sharpest thing in this note. + +### 4.1 Per-link signed direction is honest + +Start with the strongest reason to *doubt* it: to say "increases/decreases" you +assert a monotone relationship, which is more than "a link exists." Doesn't that +smuggle a model in? + +No — because **ASSAY is already signed-without-magnitude at its core**, and treats +that as honest: + +- Commitments are **directional**: C1's `at_most`, C5's `at_least` are signs on a + threshold, not magnitudes. +- The verdict scale is a **signed margin band with the interior explicitly + refused**. Oracle O-3 is exactly this: as the threshold sweeps, the verdict + changes *only at the band edges* — the scorer reports the **sign of the margin** + (`m_lo > 0` ⇒ robust; `m_hi < 0` ⇒ violated) and says "neither" for the interior. + "Signed, magnitude-free, interior-refused" is not alien to the honesty model; it + *is* how scoring works. + +So a **single, stated, attributed, one-hop** directional assertion — "the allied +LNO asserts that laying more mines **increases** the strait threat channel" — is a +qualitative fact with an owner, no more a smuggled scalar than a Band is. It is a +genuine *refinement of rung 1*: reachability says "X can reach Y"; signed +reachability says "X is asserted to push Y **up** (or **down**)", still with no +magnitude, still fully attributed. **This is honest, and it is more useful than +bare reachability.** + +### 4.2 Sign stays honest only one attributed hop at a time — composition breaks it + +The dishonesty does not live in the sign; it lives in **composing** signs across +the graph, and there are two distinct failure modes. + +**(a) Same-direction chains — survivable, but only with per-hop honesty.** To carry +a sign along a chain (*cranes down → throughput down → relief down → shortfall up*) +you must assert **each hop's monotonicity separately, with an owner, rendered per +hop** — and stop where a hop's monotonicity is *not* asserted. Some hops are +monotone by definition (less relief delivered ⇒ more shortfall); the physical ones +(demolition ⇒ throughput) need a named asserter. Rendered that way — a chain of +attributed, individually-owned monotone claims — it is still rung 2, still honest. +Rendered as a single "cranes → shortfall: ↑" with the intermediate assumptions +swallowed, it has invented the links it skipped. The honesty condition is *no +swallowed hop*, which is just G3 applied to signs. + +**(b) Opposing parallel paths — the killer, and where magnitude sneaks back in.** +When X reaches Y along one **increasing** and one **decreasing** stated path, the +*net* sign is **undefined without weighing the two paths against each other** — and +weighing is precisely the magnitude judgement DEC-19 forbids. You cannot honestly +emit "net ↑" or "net ↓"; choosing one is a rung-3 act wearing a rung-2 costume. + +The honest resolution is **the O-3 move, lifted from the number line to the +graph.** Just as the scorer refuses the interior of a straddling band ("neither +robust nor violated"), the honest sign-composer refuses the net of opposing paths: + +> *"X pushes Y **up** along one stated path and **down** along another. The net +> direction is a magnitude judgement the system does not make — here are both +> paths, each attributed."* + +That is *more* informative than a fabricated net sign, and it is honest. Note the +consequence: honest sign-**composition** over a real (multi-path) graph +**degenerates back to reachability plus a straddle flag** in exactly the cases that +matter. It does *not* deliver a general magnitude-free net direction — the general +net direction was never magnitude-free. + +### 4.3 Meridian shows both cases + +- **Honest opposing straddle (rung 2b → refuse the net).** Target: `threat_exposure(FE-ANVIL)` + (C4's metric). Two stated influences oppose — FALCON suppressing the Carrick Head + battery **decreases** it; ANVIL pushing forward to cover BROOM's sweep **increases** + it. The honest output is the straddle: both paths, attributed, no net. A panel that + announced "ANVIL exposure: net ↓" would have silently weighed suppression against + exposure — a commander's judgement, not the system's (DEC-19; the same firewall + DEC-35 holds for civil harm). +- **Honest same-direction chain (rung 2a).** *R3 demolishes cranes* **↓** port + throughput **↓** relief delivered **↑** civilian shortfall — legitimate rung 2 + *only* while each hop is a stated, owned monotone assertion shown in the chain, and + it stops at the first hop no source will sign. + +### 4.4 What 4.1–4.3 do to the boundary + +The magnitude line drawn in the first draft (§5) was *right but too coarse*. Rung 2 +proves the real boundary is not "topology vs magnitude" but **per-link attributed +facts vs any aggregation that weighs paths against each other.** Magnitude (rung 3) +is the obvious such aggregation; **net-sign-over-opposing-paths is a subtler one +that looks magnitude-free but is not.** Single-hop sign (rung 2a) sits with +reachability on the honest side; net-sign composition (rung 2b) sits with weighting +on the dishonest side, and the honest system handles it by *reporting the straddle*, +never resolving it. + +## 5. The trap — weighted propagation + +The tempting version, and the one the demonstrator should **build in order to +label**, is **weighted propagation**: give each edge a weight and each node a state, +and propagate: + +> *"Demolishing the cranes reduces relief throughput by 60% (confidence 0.7), +> cascading to a 0.4 civilian-shortfall index and a 0.3 political-instability score."* + +Every number in that sentence is dishonest in a way ASSAY has already ruled out +elsewhere: + +- The **edge weights** are the smuggled scalars DEC-19 forbids — a value judgement + ("this link matters 0.6-much") dressed as knowledge. No assessed source produces + them; they are authored and then presented as if derived. +- The **propagation** claims stable, composable, predictable second-/third-order + effects across a complex adaptive system — the precise ONA/SoSA overreach JFCOM + repudiated. +- The **confidence figures** are false precision on top of false precision: a + point probability where even the honest knowledge objects (K6, K8) only ever give + bands. + +This is why the demonstrator's design is **three reads over one graph** (§7): the +honest reachability read, the signed-reachability read with its straddle refusal, +and this weighted-propagation read — built, rendered, and then **stamped with a red +"FALSE PRECISION — this is the EBO/ONA failure mode"** banner that explains, per +number, *why* it lies. That is not a strawman; it is ASSAY's own DEC-4 move ("show +the scripted/uncomputed thing visibly labelled, never fake it") lifted from a single +value to a whole thesis. You learn the boundary by seeing the reads of the *same* +graph side by side and feeling where each one starts inventing. + +## 6. Provisional verdict — where the line falls + +Stated as this note's finding, explicitly non-asserting (a flagged candidate, not a +decision). The first draft said the boundary was *magnitude*; rung 2 (§4) sharpens +it: + +> **Interdependency is honestly computable as per-link attributed facts — +> reachability ("X can reach Y") and single-hop signed direction ("X is asserted to +> push Y up / down"). It is not honestly computable as any aggregation that weighs +> paths against each other** — neither weighted magnitude (rung 3, EBO/ONA) nor +> *net sign over opposing paths* (rung 2b), which looks magnitude-free but silently +> weighs. Where influences oppose, the honest system **reports the straddle and +> refuses the net** — the O-3 discipline lifted from the number line to the graph. + +Four consequences worth recording: + +1. **Thesis G is not wholly horizon.** Concept §6.3 asks whether it admits *any* + honest v1 slice; this note's provisional answer is **yes — the reachability slice, + refined to signed reachability** — a smaller, more defensible claim than the + concept's blanket "horizon; highest false-precision risk", and one that would + refine that line. +2. **The boundary is not magnitude; it is aggregation-that-weighs.** This is the + rewrite's main gain. Magnitude is merely the loudest violation. The subtle one — + emitting a net direction across opposing stated paths — is caught by the *same* + rule and handled by the *same* device the scorer already uses for straddling + bands (O-3). One honesty principle covers rung 2b and rung 3 at once. +3. **The honest slice needs almost no new machinery** — it is a projection over a + graph the core already knows how to walk (`TraceStore.walk` / `EDGE_ORIENTATION`), + plus a per-edge sign and provenance, plus the O-3 straddle check reused as a + graph operation. All of it lives in the sandbox; none touches the core. +4. **The boundary is testable, not a matter of taste.** On Meridian, removing K3 + (the civil-density band) leaves every C3 verdict identical (`tests/k3-trace.test.ts`, + the SPEC-18/DEC-35 honest gap) — the core *already* refuses to let civil-harm + magnitude drive a verdict. A weighted-PMESII panel that made "55 k vs 5 k" move an + output, or a signed panel that announced a net direction across ANVIL's opposing + exposure paths (§4.3), would each be doing exactly what DEC-19/DEC-35 already + decline. The boundary is the one the core holds; thesis G states it for a graph. + +## 7. Honesty invariants the demonstrator must not break + +Even a sandbox that exists to explore a horizon thesis must not model dishonesty as +if it were fine. The reachability and signed-reachability panels must keep: + +- **No scalar anywhere** (DEC-19 / banded honesty). Reachability is set membership; + a sign is a direction, not a number. No weights, no confidences, no propagation + coefficients. If a panel ever needs a number to say something, that something is + out of scope. +- **Every edge attributed, and every sign owned** (G3 / constitution). An + interdependency link with no named asserter renders as an open assertion, never a + fact; a directional claim (↑/↓) with no owner does not render as signed at all. +- **No swallowed hop in a signed chain** (§4.2a; G3). A chain sign is legitimate only + while every hop's monotonicity is separately asserted and shown; it stops at the + first hop no source will sign. +- **Refuse the net across opposing paths** (§4.2b; the O-3 discipline). When stated + influences on a target oppose, report both paths and *decline the net direction* — + never emit a resolved net sign, which would silently weigh (DEC-19). +- **Honest dead ends and stated coverage** (G4-shaped). The walk stops where stated + knowledge stops and says so; the graph declares which cross-system links it does + *not* model rather than implying completeness. (The same "no silent drop" the + horizon-forward note §2.5 reaches for at the generator level.) +- **The trap is labelled, never hidden** (DEC-4). The weighted panel exists only as a + rendered-and-labelled counter-example; it is never presented as a computed result, + and it writes nothing. +- **No core contamination** (this experiment's own rule). No schema class, no import + into `src/`, no register assertion. Fixture reads are one-way. + +If a read cannot be delivered under all of these, it is not honest and the verdict in +§6 is wrong — the same falsification test SPEC-09 applied to weighted CSP and note 06 +applied to minimax regret. + +## 8. What the demonstrator shows — **built**: `demonstrator.html` + +Built as a single self-contained, offline HTML page (the band-pill embed pattern — +no bundler, no network, no `src/` import), one screen, the same Meridian-derived +PMESII graph read three ways. Verified end-to-end in Chromium (all three tabs across +all four questions; the in-page honesty self-check all-pass; zero console errors) — +see `preview-straddle.png` (the rung-2b refusal) and `preview-trap.png` (the labelled +rung-3 trap). The reads: + +- **Reachability (honest).** Pick a node (e.g. *R3 demolishes the port cranes*). The + graph highlights what that perturbation *can reach*, hop by hop, along stated links, + each edge with a provenance chip. Qualitative: *can reach*, *asserted by*, *path you + may not have considered*, *no stated dependency beyond here*. No magnitude. +- **Signed reachability (honest, with the straddle refusal).** The same walk, edges + now labelled ↑/↓ with the owner of each directional claim; same-direction chains + render hop-by-hop (§4.2a). The centrepiece is the **straddle detector**: pick a + target reached by opposing signs (e.g. `threat_exposure(FE-ANVIL)`, §4.3) and the + panel **refuses the net** — showing both the ↑ and the ↓ path, attributed, with the + explicit "net direction is a magnitude judgement the system does not make." This is + O-3 made visible on a graph and is the single most instructive moment in the demo. +- **Weighted propagation (the labelled trap).** The same graph, edges weighted and + nodes propagating a fabricated "shortfall index", under a red **FALSE PRECISION — + EBO/ONA failure mode** banner annotating each invented number. + +The learning artifact is §6's verdict made *visceral* — three reads of one graph, and +the exact rung where invention starts. If it holds up under a look, the signed- +reachability slice (with the straddle refusal) graduates to a flagged concept §6 +candidate. + +**The honesty invariants of §7 are checked in-page, not just asserted.** The +demonstrator runs a self-check on load that verifies: no scalar magnitude is stored +on any node or edge (DEC-19); every edge carries a named asserter (G3); the ANVIL- +exposure straddle is detected and its net refused (rung 2b); and the R3-cranes walk +reaches civilian shortfall and dead-ends there honestly (no fabricated Social → +Political cascade). All pass. The fabricated numbers in the trap panel are generated +at render time and never stored on the graph — the "no scalar" check would fail if +they were. + +## 9. Feedback path (register-first, asserts nothing) + +Nothing here touches canon. If the verdict survives: + +- Record a **candidate** in concept §6 (a PMESII *signed-reachability* slice — with + the opposing-path straddle refusal — as thesis G's honest v1), flagged, awaiting a + future register batch (DEC-2). +- Note that it would *refine* the concept §1 "horizon; highest false-precision risk" + line for thesis G — narrowing "horizon-only" to **"horizon for any path-weighing + aggregation (magnitude, and net sign over opposing paths); buildable for per-link + reachability and signed direction."** +- Ratification, and any move into `src/`/`schema/`, is a future research-first slice + (DEC-11) behind its own *canonical* note — this sandbox note is not that note. + +## Sources + +**Doctrine / history.** JP 2-01.3 (2014) ch. II — JIPOE step 3 (evaluate the +adversary: ORBAT, capabilities, HVT, COG). JP 5-0 — operational design. +Effects-Based Operations and Operational Net Assessment / System-of-Systems +Analysis, and the US Joint Forces Command repudiation (Mattis, "Assessment of +Effects Based Operations", 2008) — the documented false-precision failure of +predictive PMESII node-link modelling; the founding cautionary tale for thesis G. +Complex-adaptive-systems critique of predictive effects modelling (the second-/ +third-order-effect instability that motivates the reachability-not-magnitude line). + +**Signed graphs / composition.** System-dynamics causal-loop diagrams (Sterman, +*Business Dynamics*, 2000) use exactly rung-2 signed links and loop polarity — and +their well-documented limitation grounds §4.2: link polarities do **not** compose +reliably, and loop-dominance / net-effect over opposing paths cannot be read off the +signs but requires simulation (i.e. magnitude). That is the same wall this note hits +at rung 2b, reached from the modelling literature rather than from ASSAY's O-3. + +**ASSAY canon (read-only).** `assay-concept.md` §1 (thesis catalogue G), §6.3 (the +open question this note probes); `assay-knowledge-model.md` §12 / :484 (PMESII shapes +kept out deliberately); `assay-vignette.md` §1–§6 (the latent PMESII graph); +`assay-doctrine.html` (JIPOE Step 3 stated gap); register DEC-2 (register-first), +DEC-4 (label, never fake), DEC-11 (research-first), DEC-15 (banded, no interior), +DEC-19 (no numeric weights), DEC-35 (civil harm stays geometric, never quantified); +`assay-vignette.md` §9 oracle O-3 (the straddle / interior-refused discipline reused +for opposing-path net sign, §4.2b); the signed-margin verdict mapping (`src/verdictMap.ts`, +research note `03-score-plan.md`); +`docs/research/horizon-forward-derivation.md` (§2.5 the sibling "no silent drop" +discipline); `tests/k3-trace.test.ts` (the magnitude boundary already held on +Meridian). diff --git a/scripts/build-site.ts b/scripts/build-site.ts index 664a3fb..1ae5804 100644 --- a/scripts/build-site.ts +++ b/scripts/build-site.ts @@ -148,6 +148,66 @@ copyFileSync( fileURLToPath(new URL('index.html', mockDir)), ); +// Non-canonical experiments (sandbox spikes) — review-only, and DELIBERATELY +// NOT linked from the Home page. These probe theses the core has consciously +// not opened (e.g. thesis G, PMESII interdependency); featuring one on the +// public face would be exactly the false-precision pollution the sandbox +// exists to avoid. They are an accepted exception to the copy-and-link +// convention above (cf. the dep-graph mockups): reachable under /experiments/ +// if you navigate there, each self-stamped "experimental · not canonical", +// never presented as ASSAY output. The `experiments/` tree is source, not a +// build product (see experiments/README.md). +const experimentsRoot = new URL('experiments/', site); +const thesisGDir = new URL('experiments/thesis-g/', site); +mkdirSync(fileURLToPath(thesisGDir), { recursive: true }); +copyFileSync( + fileURLToPath(new URL('experiments/thesis-g/demonstrator.html', root)), + fileURLToPath(new URL('demonstrator.html', thesisGDir)), +); +// A self-describing, clearly-labelled landing so /experiments/ announces what +// it is rather than serving a bare file. +writeFileSync( + fileURLToPath(new URL('index.html', experimentsRoot)), + ` + +ASSAY experiments — non-canonical sandbox +
+ experimental · not canonical +

ASSAY experiments

+
Not part of ASSAY canon. This area holds standalone sandbox spikes that + explore theses the core has deliberately not opened. Nothing here is a decided design, + a shipped surface, or a register decision — it decides nothing and is linked from no canonical page.
+ +

Thesis G — interdependency, read three ways

+

A PMESII interdependency demonstrator: one Meridian-derived graph read as reachability, + signed direction (with the opposing-path straddle refused), and the labelled weighted-propagation + trap — probing where honesty ends. See experiments/thesis-g/ in the repo for the argument.

+
+

Meridian is fiction (vignette §8). These pages touch no core ASSAY code, schema, or register.

+
+`, +); + // The blog and its standalone embeds, copied verbatim (self-contained static; // comms plan §8). Markdown sources (README, backlog) are dev-facing and skipped. cpSync(