2026-09-08 12:15:54 +02:00
{
"counts" : {
2026-09-09 08:10:59 +02:00
"load_bearing" : 89 ,
2026-09-08 12:15:54 +02:00
"standalone_capability" : 7
},
2026-09-09 08:10:59 +02:00
"generated" : "2026-09-09 (regenerated after contributor-scan 2.1 added the pinned-checkout recipes)" ,
2026-09-08 12:15:54 +02:00
"kept_with_a_lever_stripped" : {
"improve/evolve.py + improve/validator.py" : "the design's Removed list named these whole, but each is a mix: the mechanism lever (removed) and the deterministic rule-status improve loop that `ousast improve` still runs from benchmark evidence, which has no LLM in it and is not what this feature supersedes. Deleting the files would have taken a retained capability with them."
},
2026-09-09 08:10:59 +02:00
"modules" : 96 ,
2026-09-08 12:15:54 +02:00
"note" : "Classification of every source module after the group-1 subtraction. load_bearing = reachable from a gate, the CLI, or named by a surviving requirement; standalone_capability = its own entry point or protocol, deliberately off the scan path; orphaned = no importer, no entry point, no surviving requirement -- removed, never carried." ,
"orphaned" : [],
"removed_in_this_pass" : {
"learning/ (16 modules)" : "the noise architecture: rounds, acceptance, proposer, journal, canaries, verifiers, difficulty, scoring, classify, detectors, split, publish. Taxonomy, candidates and endpoint were re-homed to model/ first." ,
"semantic/loo.py" : "leave-one-out scoring of the mechanism store" ,
"semantic/mechanisms.py" : "the mechanism store and the shape search that fed the optimisation loop" ,
"semantic/prove_budget.py" : "embedding-ordered promotion budget, driven by the mechanism store" ,
"semantic/seed.py" : "the mechanism exporter" ,
"semantic/variant_search.py" : "variant search over the mechanism store" ,
"semantic/variants.py" : "the shape-derivation optimisation surface; its guard vocabulary was ported verbatim to model/specs.py first, and trailing_name re-homed to semantic/ir.py" ,
"vectorstore.py" : "a vector-store bakeoff harness with no production caller and no CLI entry, kept alive only by its own test -- the one genuine orphan the audit found"
},
"rows" : [
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"gate" ,
"improve.evolve" ,
"map_gate" ,
"mcp" ,
"pairs"
],
"module" : "benchmark" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "calibration" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"mcp"
],
"module" : "cli" ,
"reason" : "entry point"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"complexity.hints" ,
"complexity.ledger" ,
"complexity.map" ,
"map_gate" ,
"regress.candidate" ,
"semantic.prove_filter" ,
"tool_hunter"
],
"module" : "complexity" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"complexity" ,
"complexity.map"
],
"module" : "complexity.hints" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"complexity" ,
"complexity.map" ,
"regress.candidate"
],
"module" : "complexity.ledger" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"complexity" ,
"complexity.hints" ,
"complexity.ledger" ,
"map_gate" ,
"regress.candidate" ,
"semantic.prove_filter" ,
"tool_hunter"
],
"module" : "complexity.map" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"complexity" ,
"complexity.hints" ,
"complexity.map"
],
"module" : "complexity.signals" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"harness" ,
"hunter_tools" ,
"model.endpoint" ,
"pairs" ,
"regress.candidate" ,
"regress.recipes" ,
"run"
],
"module" : "config" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
2026-09-08 12:23:40 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
"cpg.backend" ,
2026-09-08 15:00:41 +02:00
"model.config_value" ,
2026-09-08 14:45:12 +02:00
"model.dominance" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-08 12:23:40 +02:00
"model.taint"
],
"module" : "cpg" ,
"reason" : "model-grounded-detection Req 4: the CPG seam package"
},
{
"classification" : "load_bearing" ,
"importers" : [
2026-09-08 15:00:41 +02:00
"model.config_value" ,
2026-09-08 14:45:12 +02:00
"model.dominance" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-08 12:23:40 +02:00
"model.taint"
],
"module" : "cpg.backend" ,
"reason" : "model-grounded-detection Req 4.1/4.5: the single Joern subprocess boundary"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cpg.backend"
],
"module" : "cpg.capability" ,
"reason" : "model-grounded-detection Req 4.2/4.3: the engine probe that degrades to suspicion"
},
2026-09-08 12:15:54 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
"benchmark" ,
"calibration" ,
"cli" ,
"complexity.ledger" ,
"complexity.map" ,
"complexity.signals" ,
"fusion" ,
"gate" ,
"hunter" ,
"hunter_harness" ,
"hunter_tools" ,
"improve.evolve" ,
"map_gate" ,
2026-09-08 13:49:55 +02:00
"model.ladder" ,
2026-09-08 16:28:10 +02:00
"model.report" ,
2026-09-08 12:15:54 +02:00
"pairs" ,
"rank" ,
"regress.candidate" ,
"reports" ,
"scoring.project_score" ,
"semantic.obligations.check" ,
"semantic.overlay" ,
"semantic.prove_filter" ,
"stage_processors" ,
"tool_hunter" ,
"verification" ,
"verify_judge"
],
"module" : "findings" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"cli"
],
"module" : "fusion" ,
"reason" : "two-panel adjudication engine; reached from the scan's report stage and used standalone"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "gate" ,
"reason" : "entry point"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"slot_contract"
],
"module" : "harness" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"cli" ,
"fusion" ,
"hunter_harness" ,
"stage_processors" ,
"verify_judge"
],
"module" : "harness_ext" ,
"reason" : "HarnessX extension surface; loaded by name when the optional harness is present"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"hunter_harness"
],
"module" : "hunter" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"cli"
],
"module" : "hunter_harness" ,
"reason" : "harness wiring for the tool hunter; used by the hunter path and by mcp"
},
{
"classification" : "load_bearing" ,
"importers" : [
"tool_hunter"
],
"module" : "hunter_tools" ,
"reason" : "imported by tool_hunter"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"improve.evolve"
],
"module" : "improve" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"improve"
],
"module" : "improve.evolve" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"improve" ,
"improve.evolve"
],
"module" : "improve.journal" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"improve" ,
"improve.evolve"
],
"module" : "improve.validator" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"skills"
],
"module" : "index" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "map_gate" ,
"reason" : "entry point"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"gate" ,
"hunter_tools" ,
"improve.evolve" ,
"map_gate" ,
"pairs" ,
"preprocess" ,
"stage_processors"
],
"module" : "mapping" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"cli"
],
"module" : "mcp" ,
"reason" : "narrow MCP server over stdio; its own `ousast mcp` entry point and OpenCode integration"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
2026-09-08 13:49:55 +02:00
"model.candidates" ,
2026-09-08 15:00:41 +02:00
"model.config_value" ,
2026-09-08 14:45:12 +02:00
"model.dominance" ,
2026-09-08 16:58:03 +02:00
"model.execution" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-09 07:28:30 +02:00
"model.regions" ,
"model.scan" ,
2026-09-08 12:23:40 +02:00
"model.specs" ,
"model.taint"
2026-09-08 12:15:54 +02:00
],
"module" : "model" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.audit" ,
"reason" : "model-grounded-detection Req 3: this classifier; run by the maintainer, not by the scan"
},
2026-09-08 16:28:10 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.calibrate" ,
"reason" : "model-grounded-detection Req 9: the corpus as the model's calibration set"
},
2026-09-08 12:15:54 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
2026-09-09 07:28:30 +02:00
"cli" ,
"model.scan"
2026-09-08 12:15:54 +02:00
],
"module" : "model.candidates" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
2026-09-08 15:00:41 +02:00
{
"classification" : "load_bearing" ,
2026-09-09 07:28:30 +02:00
"importers" : [
"model.pipeline"
],
2026-09-08 15:00:41 +02:00
"module" : "model.config_value" ,
"reason" : "model-grounded-detection Req 6.3: constant abstraction for the configuration families"
},
2026-09-08 14:45:12 +02:00
{
"classification" : "load_bearing" ,
2026-09-09 07:28:30 +02:00
"importers" : [
"model.pipeline"
],
2026-09-08 14:45:12 +02:00
"module" : "model.dominance" ,
"reason" : "model-grounded-detection Req 6.2: guard dominance, the arbiter for bugs that never crash"
},
2026-09-08 12:15:54 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.endpoint" ,
"reason" : "model-grounded-detection Req 8: the judge client, wired by model/judge.py in group 3"
},
2026-09-08 16:58:03 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.execution" ,
"reason" : "model-grounded-detection Req 10: the deferred execution tier seam, adopted not built"
},
2026-09-08 13:49:55 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.judge" ,
"reason" : "model-grounded-detection Req 8: one bounded question, checked against the model"
},
2026-09-08 12:15:54 +02:00
{
"classification" : "load_bearing" ,
2026-09-08 12:23:40 +02:00
"importers" : [
2026-09-08 15:00:41 +02:00
"model.config_value" ,
2026-09-08 14:45:12 +02:00
"model.dominance" ,
2026-09-08 16:58:03 +02:00
"model.execution" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-09 07:28:30 +02:00
"model.scan" ,
2026-09-08 12:23:40 +02:00
"model.taint"
],
"module" : "model.ladder" ,
"reason" : "model-grounded-detection Req 5: the evidence ladder every finding carries"
},
2026-09-08 17:41:45 +02:00
{
"classification" : "load_bearing" ,
2026-09-09 07:28:30 +02:00
"importers" : [
"model.scan"
],
2026-09-08 17:41:45 +02:00
"module" : "model.pipeline" ,
"reason" : "model-grounded-detection Req 8: the enumerator proposes, the LLM answers, the model disposes"
},
2026-09-09 07:28:30 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
"model.scan"
],
"module" : "model.regions" ,
"reason" : "contributor-scan Req 2: regions from entry points, with the families each admits"
},
2026-09-08 16:28:10 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.report" ,
"reason" : "model-grounded-detection Req 9.3/11.1: per-slice reporting with the overfitting gap"
},
2026-09-09 07:28:30 +02:00
{
"classification" : "load_bearing" ,
"importers" : [],
"module" : "model.scan" ,
"reason" : "contributor-scan Req 3: the repository driver -- one CPG, one budget, ranked spend"
},
2026-09-08 12:23:40 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
2026-09-08 15:00:41 +02:00
"model.config_value" ,
2026-09-08 14:45:12 +02:00
"model.dominance" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-09 07:28:30 +02:00
"model.regions" ,
"model.scan" ,
2026-09-08 12:23:40 +02:00
"model.taint"
],
2026-09-08 12:15:54 +02:00
"module" : "model.specs" ,
"reason" : "model-grounded-detection Req 7.2-7.4: the security vocabularies the CPG queries are parameterised by"
},
2026-09-08 12:23:40 +02:00
{
"classification" : "load_bearing" ,
2026-09-08 13:49:55 +02:00
"importers" : [
2026-09-08 17:41:45 +02:00
"model.judge" ,
"model.pipeline"
2026-09-08 13:49:55 +02:00
],
2026-09-08 12:23:40 +02:00
"module" : "model.taint" ,
"reason" : "model-grounded-detection Req 6.1: taint reachability over the CPG, the flow-family arbiter"
},
2026-09-08 12:15:54 +02:00
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
2026-09-08 13:49:55 +02:00
"model.candidates" ,
2026-09-09 07:28:30 +02:00
"model.scan" ,
2026-09-08 12:15:54 +02:00
"model.specs"
],
"module" : "model.taxonomy" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "pair_gate" ,
"reason" : "entry point"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"improve" ,
"improve.evolve" ,
"model.candidates" ,
"pair_gate"
],
"module" : "pairs" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"findings" ,
"hunter" ,
"hunter_harness" ,
"improve.evolve" ,
"improve.validator" ,
"scoring.project_score" ,
"semantic.overlay" ,
"stage_processors"
],
"module" : "policy" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"policy"
],
"module" : "policy.verycode" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"complexity.hints" ,
"complexity.map" ,
"complexity.signals" ,
"findings" ,
"gate" ,
"hunter" ,
"hunter_harness" ,
"hunter_tools" ,
"improve.evolve" ,
"index" ,
"map_gate" ,
"mapping" ,
"model.candidates" ,
"pairs" ,
"rank" ,
"regress.candidate" ,
"semantic.overlay" ,
"skills" ,
"stage_processors"
],
"module" : "preprocess" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "provenance" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"model.endpoint" ,
"tool_hunter"
],
"module" : "provider" ,
"reason" : "imported by model.endpoint, tool_hunter"
},
{
"classification" : "load_bearing" ,
"importers" : [
"model.endpoint" ,
"tool_hunter"
],
"module" : "provider.openrouter" ,
"reason" : "imported by model.endpoint, tool_hunter"
},
{
"classification" : "load_bearing" ,
"importers" : [
"calibration" ,
"cli" ,
"findings" ,
"gate" ,
"hunter" ,
"hunter_harness" ,
"hunter_tools" ,
"improve.evolve" ,
"map_gate" ,
"pairs" ,
"stage_processors"
],
"module" : "rank" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"harness" ,
2026-09-08 13:49:55 +02:00
"model.judge" ,
2026-09-08 17:41:45 +02:00
"model.pipeline" ,
2026-09-08 12:15:54 +02:00
"reports" ,
"semantic.obligations.intent"
],
"module" : "redaction" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"regress.candidate"
],
"module" : "regress" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"regress"
],
"module" : "regress.candidate" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"regress" ,
"regress.candidate"
],
"module" : "regress.recipes" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"regress" ,
"regress.candidate"
],
"module" : "regress.safety" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"regress" ,
"regress.candidate"
],
"module" : "regress.verdict" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "reports" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"findings" ,
"hunter" ,
"hunter_harness" ,
"improve.evolve" ,
"improve.validator" ,
"pairs" ,
"stage_processors"
],
"module" : "ruleset" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"improve.validator" ,
"ruleset"
],
"module" : "ruleset.store" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"reports"
],
"module" : "run" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"regress.candidate" ,
"regress.recipes" ,
"regress.safety" ,
"regress.verdict"
],
"module" : "sandbox" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"sandbox"
],
"module" : "sandbox.probe" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"regress.candidate" ,
"regress.recipes" ,
"regress.safety" ,
"sandbox"
],
"module" : "sandbox.runner" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"improve.evolve" ,
"stage_processors"
],
"module" : "scoring" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"scoring"
],
"module" : "scoring.project_score" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
2026-09-08 12:23:40 +02:00
"cpg.capability" ,
2026-09-08 12:15:54 +02:00
"hunter_tools" ,
"model.candidates" ,
"model.specs" ,
"pairs" ,
"semantic.cst" ,
"semantic.engines" ,
"semantic.functions" ,
"semantic.ir" ,
"semantic.obligations.check" ,
"semantic.obligations.operations" ,
"semantic.obligations.shapes" ,
"semantic.overlay" ,
"semantic.prove_filter" ,
"semantic.taint"
],
"module" : "semantic" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic.ir"
],
"module" : "semantic.cst" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
2026-09-08 12:23:40 +02:00
"cpg.capability" ,
2026-09-08 12:15:54 +02:00
"semantic" ,
"semantic.overlay"
],
"module" : "semantic.engines" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic" ,
"semantic.cst" ,
"semantic.engines"
],
"module" : "semantic.extra" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"hunter_tools" ,
"model.candidates" ,
"model.specs" ,
"pairs" ,
"semantic" ,
"semantic.obligations.check" ,
"semantic.obligations.operations" ,
"semantic.obligations.shapes" ,
"semantic.overlay" ,
"semantic.taint"
],
"module" : "semantic.facts" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"hunter_tools" ,
"pairs" ,
"semantic.obligations.shapes" ,
"semantic.overlay"
],
"module" : "semantic.functions" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"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.ir" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"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" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"semantic.obligations" ,
"semantic.obligations.intent"
],
"module" : "semantic.obligations.check" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"hunter_tools" ,
"pairs" ,
"semantic.obligations.check"
],
"module" : "semantic.obligations.dominance" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"model.specs" ,
"pairs" ,
"semantic.obligations" ,
"semantic.obligations.check" ,
"semantic.obligations.operations" ,
"semantic.obligations.policy" ,
"semantic.obligations.shapes" ,
"semantic.obligations.siblings"
],
"module" : "semantic.obligations.facts" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "semantic.obligations.intent" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"model.candidates" ,
"semantic.obligations.check" ,
"semantic.obligations.dominance" ,
"semantic.obligations.siblings"
],
"module" : "semantic.obligations.operations" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli" ,
"semantic.obligations.check"
],
"module" : "semantic.obligations.policy" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic.obligations" ,
"semantic.obligations.operations"
],
"module" : "semantic.obligations.shapes" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic.obligations.check"
],
"module" : "semantic.obligations.siblings" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic" ,
"semantic.prove_filter"
],
"module" : "semantic.overlay" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic"
],
"module" : "semantic.prove_filter" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"semantic.overlay"
],
"module" : "semantic.taint" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"hunter" ,
"hunter_harness"
],
"module" : "skills" ,
"reason" : "skill router; consumed by mcp and by the OpenCode integration, not by the scan path"
},
{
"classification" : "standalone_capability" ,
"importers" : [
"stage_processors"
],
"module" : "slot_contract" ,
"reason" : "the slot/contract protocol stage_processors implements"
},
{
"classification" : "standalone_capability" ,
"importers" : [],
"module" : "stage_processors" ,
"reason" : "HarnessX slot-contracted scan stages; pinned by the zero-dependency guard in test_gate"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "stages" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"model.endpoint"
],
"module" : "tool_hunter" ,
"reason" : "imported by model.endpoint"
},
{
"classification" : "load_bearing" ,
"importers" : [
"calibration" ,
"cli" ,
"fusion" ,
"reports" ,
"verify_judge"
],
"module" : "verification" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
},
{
"classification" : "load_bearing" ,
"importers" : [
"cli"
],
"module" : "verify_judge" ,
"reason" : "reachable from gate, map_gate, pair_gate or the CLI"
}
],
"spec" : "model-grounded-detection Req 3 (the outgrowth audit)" ,
"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" ,
"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"
}
}