Files
Open_Ultra_SAST/benchmarks/measurements/2026-09-08-module-audit.json
T
Marius CiepluchandClaude Fable 5.1 4866665e5e feat(plane): ax-backed reconciler, status attribution and doctor (task 4)
Requirements 3.1, 3.2, 3.3, 3.4, 3.5, 2.2, 7.1, 7.3 of ai-service-plane.

- plane/reconciler.py (492 lines, test-counted): a Run's tasks submitted to ax
  in dependency order through the injectable `ax` CLI (apply / get task /
  delete task), serialize labels never overlapping, --workers, state.json with
  pending|running|suspended|done|failed|unfinished, a PID lock per run, done
  tasks skipped on rerun, unfinished tasks holding their dependants, a failed
  task halting the run. Budgets, inputs, output dir, artifact URL and the bound
  Model (annotation openultrasast.io/model; identity and priced parameters) go
  to the task as env in the rendered Task; consumed artifacts travel as files
  of a generated Workspace bound under /workspace. A threaded HTTP receiver
  takes each task's tar delivery, validating run/task and rejecting traversal.
  Outcome comes from the delivered summary.json (done only when every unit
  finished), never from ax's phase alone. status prints the token attribution
  table per task and Model from the summaries' usage fields (n/a, never an
  estimate) and writes attribution.json; doctor runs the four host checks.
- plane/workspaces.py: one Workspace manifest per case pin of a population.
- CLI: ousast plane run|status|doctor|workspaces.
- tests/test_plane_reconciler.py: a fake ax executable drives the DAG;
  tests/test_plane_ax_live.py (marker ax) applies ops/ax/smoke-task.yaml on a
  live cluster and skips unless doctor passes.
- Module audit rows and regenerated manifest.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
2026-09-29 18:10:09 +02:00

1371 lines
36 KiB
JSON

{
"modules": 123,
"counts": {
"load_bearing": 114,
"standalone_capability": 9
},
"orphaned": [],
"standalone": {
"fusion": "two-panel adjudication engine; reached from the scan's report stage and used standalone",
"harness_ext": "HarnessX extension surface; loaded by name when the optional harness is present",
"hunter_harness": "harness wiring for the tool hunter; used by the hunter path and by mcp",
"mcp": "narrow MCP server over stdio; its own `ousast mcp` entry point and OpenCode integration",
"push_inputs": "pre-push-safety-net task 1.2: offline input provenance validator; python -m openultrasast.push_inputs",
"push_scoring": "pre-push-safety-net task 1.3: frozen-profile diagnostic outcome scorer; python -m openultrasast.push_scoring",
"skills": "skill router; consumed by mcp and by the OpenCode integration, not by the scan path",
"slot_contract": "the slot/contract protocol stage_processors implements",
"stage_processors": "HarnessX slot-contracted scan stages; pinned by the zero-dependency guard in test_gate"
},
"rows": [
{
"module": "benchmark",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"gate",
"improve.evolve",
"map_gate",
"mcp",
"pairs"
]
},
{
"module": "calibration",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "cli",
"classification": "load_bearing",
"reason": "entry point",
"importers": [
"mcp"
]
},
{
"module": "complexity",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"complexity.hints",
"complexity.ledger",
"complexity.map",
"map_gate",
"regress.candidate",
"semantic.prove_filter",
"tool_hunter"
]
},
{
"module": "complexity.hints",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"complexity",
"complexity.map"
]
},
{
"module": "complexity.ledger",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"complexity",
"complexity.map",
"regress.candidate"
]
},
{
"module": "complexity.map",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"complexity",
"complexity.hints",
"complexity.ledger",
"map_gate",
"regress.candidate",
"semantic.prove_filter",
"tool_hunter"
]
},
{
"module": "complexity.signals",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"complexity",
"complexity.hints",
"complexity.map"
]
},
{
"module": "config",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"harness",
"hunter_tools",
"model.endpoint",
"pairs",
"push.assistance",
"push.policy",
"push.runner",
"regress.candidate",
"regress.recipes",
"run"
]
},
{
"module": "contracts",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 7.3: strict shared manifest serialization, independent of push",
"importers": [
"config",
"cpg.artifact",
"model.contracts",
"push.cache",
"push.contracts",
"push.policy",
"push.vetoes"
]
},
{
"module": "cpg",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 4: the CPG seam package",
"importers": [
"cli",
"cpg.artifact",
"cpg.backend",
"model.config_value",
"model.dominance",
"model.judge",
"model.partitions",
"model.pipeline",
"model.scan",
"model.taint",
"push.cache",
"push.eligibility",
"push.policy",
"push.reuse",
"push.runner"
]
},
{
"module": "cpg.artifact",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 4.3/7.3: backend graph identity and live lease contract; validation integration pending",
"importers": [
"cpg.backend",
"push.cache",
"push.eligibility",
"push.policy",
"push.reuse",
"push.runner"
]
},
{
"module": "cpg.backend",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 4.1/4.5: the single Joern subprocess boundary",
"importers": [
"cli",
"cpg.artifact",
"model.config_value",
"model.dominance",
"model.judge",
"model.partitions",
"model.pipeline",
"model.scan",
"model.taint",
"push.cache",
"push.policy",
"push.reuse",
"push.runner"
]
},
{
"module": "cpg.capability",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 4.2/4.3: the engine probe that degrades to suspicion",
"importers": [
"cpg.backend"
]
},
{
"module": "cpg.session",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cpg.backend"
]
},
{
"module": "findings",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"benchmark",
"calibration",
"cli",
"complexity.ledger",
"complexity.map",
"complexity.signals",
"fusion",
"gate",
"hunter",
"hunter_harness",
"hunter_tools",
"improve.evolve",
"map_gate",
"model.ladder",
"model.report",
"pairs",
"rank",
"regress.candidate",
"reports",
"scoring.project_score",
"semantic.obligations.check",
"semantic.overlay",
"semantic.prove_filter",
"stage_processors",
"tool_hunter",
"verification",
"verify_judge"
]
},
{
"module": "fusion",
"classification": "standalone_capability",
"reason": "two-panel adjudication engine; reached from the scan's report stage and used standalone",
"importers": [
"cli"
]
},
{
"module": "gate",
"classification": "load_bearing",
"reason": "entry point",
"importers": [
"cli"
]
},
{
"module": "harness",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"slot_contract"
]
},
{
"module": "harness_ext",
"classification": "standalone_capability",
"reason": "HarnessX extension surface; loaded by name when the optional harness is present",
"importers": [
"cli",
"fusion",
"hunter_harness",
"stage_processors",
"verify_judge"
]
},
{
"module": "hunter",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"hunter_harness"
]
},
{
"module": "hunter_harness",
"classification": "standalone_capability",
"reason": "harness wiring for the tool hunter; used by the hunter path and by mcp",
"importers": [
"cli"
]
},
{
"module": "hunter_tools",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"tool_hunter"
]
},
{
"module": "improve",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"improve.evolve"
]
},
{
"module": "improve.evolve",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"improve"
]
},
{
"module": "improve.journal",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"improve",
"improve.evolve"
]
},
{
"module": "improve.validator",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"improve",
"improve.evolve"
]
},
{
"module": "index",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"skills"
]
},
{
"module": "map_gate",
"classification": "load_bearing",
"reason": "entry point",
"importers": []
},
{
"module": "mapping",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"gate",
"hunter_tools",
"improve.evolve",
"map_gate",
"model.scan",
"pairs",
"preprocess",
"push.runner",
"stage_processors"
]
},
{
"module": "mcp",
"classification": "standalone_capability",
"reason": "narrow MCP server over stdio; its own `ousast mcp` entry point and OpenCode integration",
"importers": [
"cli"
]
},
{
"module": "model",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"cpg.backend",
"cpg.session",
"model.candidates",
"model.config_value",
"model.dominance",
"model.execution",
"model.judge",
"model.layout",
"model.partitions",
"model.pipeline",
"model.regions",
"model.report",
"model.scan",
"model.specs",
"model.taint",
"plane.budget",
"preprocess",
"push.assistance",
"push.cache",
"push.contracts",
"push.policy",
"push.report",
"push.reuse",
"push.runner",
"push.snapshot",
"push.vetoes",
"tool_hunter"
]
},
{
"module": "model.audit",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 3: this classifier; run by the maintainer, not by the scan",
"importers": []
},
{
"module": "model.calibrate",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 9: the corpus as the model's calibration set",
"importers": []
},
{
"module": "model.candidates",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"model.scan"
]
},
{
"module": "model.config_value",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 6.3: constant abstraction for the configuration families",
"importers": [
"model.pipeline",
"model.scan"
]
},
{
"module": "model.contracts",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 4.1/7.3: generic deadline, change and exact scope contracts; integration pending",
"importers": [
"cli",
"cpg.backend",
"cpg.session",
"model.partitions",
"model.regions",
"model.scan",
"push.assistance",
"push.cache",
"push.contracts",
"push.policy",
"push.report",
"push.reuse",
"push.runner",
"push.snapshot",
"push.vetoes"
]
},
{
"module": "model.dominance",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 6.2: guard dominance, the arbiter for bugs that never crash",
"importers": [
"model.pipeline",
"model.scan"
]
},
{
"module": "model.endpoint",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 8: the judge client, wired by model/judge.py in group 3",
"importers": [
"cli",
"plane.budget",
"push.assistance",
"tool_hunter"
]
},
{
"module": "model.evidence",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.scan"
]
},
{
"module": "model.execution",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 10: the deferred execution tier seam, adopted not built",
"importers": []
},
{
"module": "model.judge",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 8: one bounded question, checked against the model",
"importers": []
},
{
"module": "model.ladder",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 5: the evidence ladder every finding carries",
"importers": [
"model.config_value",
"model.dominance",
"model.execution",
"model.judge",
"model.pipeline",
"model.scan",
"model.taint",
"push.policy"
]
},
{
"module": "model.layout",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.partitions",
"model.scan",
"preprocess",
"push.runner"
]
},
{
"module": "model.partitions",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.scan"
]
},
{
"module": "model.pipeline",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 8: the enumerator proposes, the LLM answers, the model disposes",
"importers": [
"model.scan",
"push.policy"
]
},
{
"module": "model.regions",
"classification": "load_bearing",
"reason": "contributor-scan Req 2: regions from entry points, with the families each admits",
"importers": [
"cli",
"model.layout",
"model.scan",
"push.policy",
"push.reuse",
"push.runner"
]
},
{
"module": "model.report",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 9.3/11.1: per-slice reporting with the overfitting gap",
"importers": [
"cli"
]
},
{
"module": "model.scan",
"classification": "load_bearing",
"reason": "contributor-scan Req 3: the repository driver -- one CPG, one budget, ranked spend",
"importers": [
"cli",
"push.policy",
"push.report",
"push.runner",
"push.vetoes"
]
},
{
"module": "model.shipped",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"push.runner"
]
},
{
"module": "model.specs",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 7.2-7.4: the security vocabularies the CPG queries are parameterised by",
"importers": [
"model.config_value",
"model.dominance",
"model.judge",
"model.pipeline",
"model.regions",
"model.report",
"model.scan",
"model.taint",
"push.policy"
]
},
{
"module": "model.taint",
"classification": "load_bearing",
"reason": "model-grounded-detection Req 6.1: taint reachability over the CPG, the flow-family arbiter",
"importers": [
"model.judge",
"model.pipeline",
"model.scan"
]
},
{
"module": "model.taxonomy",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"model.candidates",
"model.report",
"model.scan",
"model.specs"
]
},
{
"module": "pair_gate",
"classification": "load_bearing",
"reason": "entry point",
"importers": [
"cli"
]
},
{
"module": "pairs",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"improve",
"improve.evolve",
"model.candidates",
"pair_gate"
]
},
{
"module": "plane",
"classification": "load_bearing",
"reason": "ai-service-plane Req 1-4: the service plane package; runner and reconciler integration in tasks 3-4",
"importers": [
"cli",
"plane.reconciler",
"plane.workspaces"
]
},
{
"module": "plane.budget",
"classification": "load_bearing",
"reason": "ai-service-plane Req 2.3/2.4: metered chat client with usd and calls ceilings; task integration in tasks 3, 6",
"importers": []
},
{
"module": "plane.manifests",
"classification": "load_bearing",
"reason": "ai-service-plane Req 1.1-1.4: ax-shaped Task/Workspace/Model and the Run kind, validated before anything runs",
"importers": [
"plane.reconciler"
]
},
{
"module": "plane.reconciler",
"classification": "load_bearing",
"reason": "ai-service-plane Req 3.1-3.5, 7.3: ax-backed Run execution, status attribution and doctor; `ousast plane`",
"importers": [
"plane.workspaces"
]
},
{
"module": "plane.workspaces",
"classification": "load_bearing",
"reason": "ai-service-plane task 4: Workspace manifests per case pin of a population; `ousast plane workspaces`",
"importers": [
"cli"
]
},
{
"module": "policy",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"findings",
"hunter",
"hunter_harness",
"improve.evolve",
"improve.validator",
"scoring.project_score",
"semantic.overlay",
"stage_processors"
]
},
{
"module": "policy.verycode",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"policy"
]
},
{
"module": "preprocess",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"complexity.hints",
"complexity.map",
"complexity.signals",
"findings",
"gate",
"hunter",
"hunter_harness",
"hunter_tools",
"improve.evolve",
"index",
"map_gate",
"mapping",
"model.candidates",
"model.partitions",
"model.scan",
"pairs",
"push.runner",
"rank",
"regress.candidate",
"semantic.overlay",
"skills",
"stage_processors"
]
},
{
"module": "profiling",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "provenance",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "provider",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.endpoint",
"tool_hunter"
]
},
{
"module": "provider.openrouter",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.endpoint",
"tool_hunter"
]
},
{
"module": "push",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 5.5/7.3: experimental push contract package; no hook installed",
"importers": [
"cli",
"push.assistance",
"push.eligibility",
"push.policy",
"push.report",
"push.reuse",
"push.runner",
"push.snapshot",
"push.vetoes"
]
},
{
"module": "push.assistance",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"push.runner"
]
},
{
"module": "push.cache",
"classification": "load_bearing",
"reason": "pre-push-safety-net task 6.2: bounded artifact publication and leased eviction; runner integration in 6.4",
"importers": [
"push.policy",
"push.reuse",
"push.runner"
]
},
{
"module": "push.contracts",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 5.5/7.3: immutable comparisons and independent result statuses; runner pending",
"importers": [
"push.policy",
"push.report",
"push.reuse",
"push.runner",
"push.snapshot",
"push.vetoes"
]
},
{
"module": "push.eligibility",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"push.runner"
]
},
{
"module": "push.policy",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 2.4/3.1/3.4/4.1: targeted same-semantics base comparison; replay integration pending",
"importers": [
"push.eligibility",
"push.report",
"push.runner",
"push.vetoes"
]
},
{
"module": "push.report",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 5.1/5.2/5.5/7.3: compact output and complete artifacts; runner integration pending",
"importers": [
"push.assistance",
"push.runner"
]
},
{
"module": "push.reuse",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"push.runner"
]
},
{
"module": "push.runner",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"push.assistance"
]
},
{
"module": "push.snapshot",
"classification": "load_bearing",
"reason": "pre-push-safety-net Req 1.1/1.3/1.4/7.1: local immutable ref resolution; runner integration pending",
"importers": [
"push.runner"
]
},
{
"module": "push.vetoes",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"push.runner"
]
},
{
"module": "push_inputs",
"classification": "standalone_capability",
"reason": "pre-push-safety-net task 1.2: offline input provenance validator; python -m openultrasast.push_inputs",
"importers": []
},
{
"module": "push_scoring",
"classification": "standalone_capability",
"reason": "pre-push-safety-net task 1.3: frozen-profile diagnostic outcome scorer; python -m openultrasast.push_scoring",
"importers": [
"push.eligibility"
]
},
{
"module": "rank",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"calibration",
"cli",
"findings",
"gate",
"hunter",
"hunter_harness",
"hunter_tools",
"improve.evolve",
"map_gate",
"pairs",
"stage_processors"
]
},
{
"module": "redaction",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"harness",
"model.judge",
"model.pipeline",
"push.assistance",
"push.report",
"reports",
"semantic.obligations.intent"
]
},
{
"module": "regress",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"regress.candidate"
]
},
{
"module": "regress.candidate",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"regress"
]
},
{
"module": "regress.recipes",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"regress",
"regress.candidate"
]
},
{
"module": "regress.safety",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"regress",
"regress.candidate"
]
},
{
"module": "regress.verdict",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"regress",
"regress.candidate"
]
},
{
"module": "reports",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "repos",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"push_inputs"
]
},
{
"module": "ruleset",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"findings",
"hunter",
"hunter_harness",
"improve.evolve",
"improve.validator",
"pairs",
"stage_processors"
]
},
{
"module": "ruleset.store",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"improve.validator",
"ruleset"
]
},
{
"module": "run",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"reports"
]
},
{
"module": "sandbox",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"regress.candidate",
"regress.recipes",
"regress.safety",
"regress.verdict"
]
},
{
"module": "sandbox.probe",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"sandbox"
]
},
{
"module": "sandbox.runner",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"regress.candidate",
"regress.recipes",
"regress.safety",
"sandbox"
]
},
{
"module": "scoring",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"improve.evolve",
"stage_processors"
]
},
{
"module": "scoring.project_score",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"scoring"
]
},
{
"module": "semantic",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"cpg.capability",
"hunter_tools",
"mapping",
"model.candidates",
"model.layout",
"model.scan",
"model.specs",
"pairs",
"semantic.cst",
"semantic.engines",
"semantic.functions",
"semantic.ir",
"semantic.obligations.check",
"semantic.obligations.facts",
"semantic.obligations.operations",
"semantic.obligations.shapes",
"semantic.overlay",
"semantic.prove_filter",
"semantic.taint"
]
},
{
"module": "semantic.cst",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic.ir"
]
},
{
"module": "semantic.engines",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cpg.capability",
"semantic",
"semantic.overlay"
]
},
{
"module": "semantic.extra",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic",
"semantic.cst",
"semantic.engines"
]
},
{
"module": "semantic.facts",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"hunter_tools",
"mapping",
"model.candidates",
"model.layout",
"model.scan",
"model.specs",
"pairs",
"semantic",
"semantic.obligations.check",
"semantic.obligations.facts",
"semantic.obligations.operations",
"semantic.obligations.shapes",
"semantic.overlay",
"semantic.taint"
]
},
{
"module": "semantic.functions",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"hunter_tools",
"pairs",
"semantic.obligations.shapes",
"semantic.overlay"
]
},
{
"module": "semantic.ir",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"hunter_tools",
"model.candidates",
"pairs",
"semantic.cst",
"semantic.functions",
"semantic.obligations.check",
"semantic.obligations.operations",
"semantic.obligations.shapes",
"semantic.overlay",
"semantic.taint"
]
},
{
"module": "semantic.obligations",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"hunter_tools",
"model.candidates",
"model.specs",
"pairs",
"semantic.obligations.check",
"semantic.obligations.dominance",
"semantic.obligations.intent",
"semantic.obligations.operations",
"semantic.obligations.policy",
"semantic.obligations.shapes",
"semantic.obligations.siblings"
]
},
{
"module": "semantic.obligations.check",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"semantic.obligations",
"semantic.obligations.intent"
]
},
{
"module": "semantic.obligations.dominance",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"hunter_tools",
"pairs",
"semantic.obligations.check"
]
},
{
"module": "semantic.obligations.facts",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.specs",
"pairs",
"semantic.obligations",
"semantic.obligations.check",
"semantic.obligations.operations",
"semantic.obligations.policy",
"semantic.obligations.shapes",
"semantic.obligations.siblings"
]
},
{
"module": "semantic.obligations.intent",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "semantic.obligations.operations",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.candidates",
"semantic.obligations.check",
"semantic.obligations.dominance",
"semantic.obligations.siblings"
]
},
{
"module": "semantic.obligations.policy",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli",
"semantic.obligations.check"
]
},
{
"module": "semantic.obligations.shapes",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic.obligations",
"semantic.obligations.operations"
]
},
{
"module": "semantic.obligations.siblings",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic.obligations.check"
]
},
{
"module": "semantic.overlay",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic",
"semantic.prove_filter"
]
},
{
"module": "semantic.prove_filter",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic"
]
},
{
"module": "semantic.taint",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"semantic.overlay"
]
},
{
"module": "skills",
"classification": "standalone_capability",
"reason": "skill router; consumed by mcp and by the OpenCode integration, not by the scan path",
"importers": [
"hunter",
"hunter_harness"
]
},
{
"module": "slot_contract",
"classification": "standalone_capability",
"reason": "the slot/contract protocol stage_processors implements",
"importers": [
"stage_processors"
]
},
{
"module": "stage_processors",
"classification": "standalone_capability",
"reason": "HarnessX slot-contracted scan stages; pinned by the zero-dependency guard in test_gate",
"importers": []
},
{
"module": "stages",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
},
{
"module": "tool_hunter",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"model.endpoint",
"plane.budget"
]
},
{
"module": "verification",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"calibration",
"cli",
"fusion",
"reports",
"verify_judge"
]
},
{
"module": "verify_judge",
"classification": "load_bearing",
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
"importers": [
"cli"
]
}
],
"note": "Group 8: runner reaches recomputed versioned eligibility and its frozen scorer."
}