Skip to main content
Criticality Spectrometer mark

Criticality Spectrometer

Measure node criticality as a curve across adaptation horizons in AND/OR dependency systems.

CI PyPI Python 3.10+ MIT license Release DOI

Three node-removal impact curves: persistent, fully adaptable, and none

Most network rankings assign one importance score per node. Criticality Spectrometer instead removes each node, sweeps the time at which substitutes become available, and records mission loss at every horizon. The result distinguishes a node that must be protected now and later from one whose risk can be reduced by enabling alternatives.

Install

pip install criticality-spectrometer

That puts the criticality-spectrometer command and the Python API on your system. From v0.1.2, the demo fixtures are also bundled with the package, so the 60-second demo needs no clone:

criticality-spectrometer example canonical --output model.json
criticality-spectrometer run model.json

The full worked examples, tests, and tutorial ship with the source; clone the repository to explore those:

git clone https://github.com/AMBRA7592/criticality-spectrometer.git
cd criticality-spectrometer

Run it in 60 seconds

criticality-spectrometer run examples/canonical/model.json

The canonical model is a seven-node, hand-verifiable fixture. Its bottleneck has impact 1 at tau=0 and 0 after its backup activates at tau=12:

node                     impact               shape                OR gap
bottleneck               [1, 0, 0]            fully_adaptable      [1, 0, 0]

Use JSON output for a reproducible artifact:

criticality-spectrometer run examples/canonical/model.json --format json > result.json

JSON reports identify the instrument and schema versions, model SHA-256, horizons, and run configuration. The contract is schema/result.schema.json.

Prefer the Python API?

from criticality_spectrometer import load_model, run_sweep

model = load_model("examples/tutorial/model.json")
result = run_sweep(model)
print(result.curves["runner_primary"].impact)
# [1, 0]

The narrated model-your-first-system tutorial builds that ten-node CI pipeline from scratch.

CLI exit codes are stable: 0 means success, 2 means invalid CLI input or an invalid model, and 3 means the model failed the positive, constant-baseline requirement. criticality-spectrometer --version prints the installed version.

Explain a curve

run tells you what a node's curve is; explain shows why — per horizon: lost and restored sinks, casualties grouped by cascade round, every unsatisfied requirement group, and which substitutes are active versus actually rescuing a group. Rounds are propagation stages, not unique-causality claims.

criticality-spectrometer explain examples/canonical/model.json bottleneck
tau=0   impact 1   lost sinks: sink
  round 1: assembler — unsatisfied: stage_bottleneck (members: bottleneck; pending: backup@12)
  round 2: sink — unsatisfied: final (members: assembler)
  ...
tau=12   impact 0   lost sinks: none   restored: sink
  rescuing substitutes: backup -> assembler.stage_bottleneck @12

--format json emits a self-identifying document conforming to schema/explain.schema.json.

What the instrument returns

For every node, the sweep reports an impact curve and a conservative shape class:

shape curve behavior interpretation
persistent positive and unchanged alternatives do not reduce measured loss
fully_adaptable falls to zero available alternatives eventually restore the mission
partially_adaptable declines but stays positive adaptation helps without eliminating loss
none zero at every horizon removal does not reduce the selected mission outcome

These labels describe model output. They are not policy recommendations or empirical claims by themselves.

Model contract

A model contains:

  • nodes;
  • identified requirement groups with AND or OR logic;
  • substitutes targeted to a specific requirement group and activation time;
  • one mission outcome: served_sinks or ordered_served_sinks.

The machine-readable contract is in schema/model.schema.json. The formal cascade, outcome, baseline, and comparison semantics are in docs/method.md.

Worked example: AI compute supply chain

The repository includes a 52-node worked example expressed entirely as model data; the engine contains no semiconductor-specific entities. Three missions separate topology, an advanced-fab path, and the primary ordered frontier stack.

The primary stack reproduces the prior case study's seven named acceptance tests at the shape level. For example, the modeled EUV corridor is persistent, TSMC is fully adaptable over the specified horizons, and germanium has no impact on that mission. The example is an application, not cross-domain validation.

Rebuild and verify the example:

python examples/ai_compute/build_ai_case.py
pytest -q tests/test_ai_case.py

How it differs from common network measures

method represents answer type
Centrality position in a graph scalar score
Critical-node detection disconnection caused by removal scalar or set
Criticality Spectrometer mission loss across adaptation horizons under explicit requirements curve and shape class

Scope of v0.1

This is an alpha research instrument with one canonical fixture and one empirical domain. It does not infer dependencies, estimate activation times, prove causal claims, or turn shape classes into policy prescriptions. The current model contract also lacks connectivity-only edges; the worked example logs where that boundary matters.

See docs/nonclaims.md for the full boundary and CHANGELOG.md for release history.

Development

python -m pip install -e ".[test]"
pytest -q

Contributions are welcome, especially independent examples that exercise the frozen model contract without adding domain logic to the engine. See CONTRIBUTING.md.

Citation and license

Citation metadata is provided in CITATION.cff. Released under the MIT License.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

criticality_spectrometer-0.1.2.tar.gz (73.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

criticality_spectrometer-0.1.2-py3-none-any.whl (29.9 kB view details)

Uploaded Python 3

File details

Details for the file criticality_spectrometer-0.1.2.tar.gz.

File metadata

  • Download URL: criticality_spectrometer-0.1.2.tar.gz
  • Upload date:
  • Size: 73.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for criticality_spectrometer-0.1.2.tar.gz
Algorithm Hash digest
SHA256 c418d9ea87777a59fa6ad56ad25d9dea28e69068f685fb837c1c1aa00f568801
MD5 d357403b35ec2bbf0948fac303962044
BLAKE2b-256 97529a0084f6b1eb2bdbbe4484939c1c73b1af92b83673a66ae259309a392ab5

See more details on using hashes here.

Provenance

The following attestation bundles were made for criticality_spectrometer-0.1.2.tar.gz:

Publisher: release.yml on AMBRA7592/criticality-spectrometer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file criticality_spectrometer-0.1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for criticality_spectrometer-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 59b71607876a5cc307949c1dbd9f104f36c5cb81b525c80f3d67810e6803de2a
MD5 456f1aa68ffb8897b910cf2debb75667
BLAKE2b-256 337616034a43ace653082d3ff9d52d6e5b4b84d71a2aeceffd32e2692b505275

See more details on using hashes here.

Provenance

The following attestation bundles were made for criticality_spectrometer-0.1.2-py3-none-any.whl:

Publisher: release.yml on AMBRA7592/criticality-spectrometer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.0

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page