feat: Environmental stress test — the architecture works OUTSIDE cyber (Phase Ω, data-only)

First NON-cyber stress test. Every prior journey was cyber (infosec/software/product security).
Environmental brings a completely different mental model (substance flows, emissions, water,
chemicals, energy, circularity). The claim under test: RS-005 carries it UNCHANGED — only new DATA,
zero runtime code.

ISO 14001 (an EMS) is modelled as a Company Profile and run through the SAME engines as ISO 27001 ->
CRA (new pattern transition_pattern_iso14001_to_environmental_v1.yaml, capabilities as VERBS):
  - ISO 14001 yields 5 environmental MANAGEMENT capabilities (Welt-1, probably present)
  - the concrete substance/emission/water/material EVIDENCE is the 11-capability delta
  - rejected_assumptions state what ISO 14001 does NOT produce (substance lists, REACH, emissions,
    battery passports, water analyses) — preserving the Welt-1/Welt-2 separation
  - the Journey Matcher stays domain-agnostic: ISO14001->Environmental 100%, cyber journeys 0%

Result: a non-cyber domain ran through Reality -> ... -> Journey with 0 new runtime classes and 0
new pipeline — a stronger generality proof than ten more cyber regulations.

Also extends the Architecture Stability ledger with the third KPI column the user requested — "new
capability types" — as a granularity Frühindikator (a domain needing ~80 new types at 0 runtime would
flag a too-coarse/too-fine capability model). Environmental = 16 types (5 mgmt + 11 evidence), in
range. Ledger now flags cyber vs non_cyber family. Non-runtime -> no deploy. 19 tests pass, check-loc 0.
This commit is contained in:
Benjamin Admin
2026-06-28 11:10:07 +02:00
parent 2805256c33
commit fbbd0957bd
8 changed files with 382 additions and 19 deletions
@@ -47,6 +47,19 @@ def test_kpis_reported_at_full_stability():
assert "Knowledge Velocity: %d/%d = 100%%" % (n, n) in out
def test_capability_types_column_and_non_cyber_generality():
out = _run()
# the third KPI column (capability-model granularity Frühindikator) is present and populated
assert "neue Capability-Typen" in out
assert "Capability-Modell-Frühindikator" in out
# the first non-cyber domain is recorded and carried the pipeline 0/0
assert "non_cyber" in out
assert "Generalität über Cyber hinaus" in out
# every ledger source carries a capability-type count
for s in _ledger()["sources"]:
assert s["new_capability_types"] >= 1, s["source"]
def test_pipeline_functions_are_one_time_infrastructure():
out = _run()
assert "EINMALIG (jetzt eingefroren)" in out