mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-17 20:19:29 +00:00
JVM startup, not analysis, is what a push scan spends its time on: each disposable script invocation costs 13 to 23 seconds while the work takes under a second. The session owns one Joern server per transaction on loopback with an OS-chosen port and no published port. Three properties are load-bearing, and the probe that settled the design demonstrated why each is needed. An HTTP status is not an answer. The server returns success even for a compile error, with the diagnostic in its body, so every request redirects the evaluated code's console output into a fresh private file behind a nonce, and the nonce is verified before the answer is accepted. The engine's body is retained for exactly the case where the receipt is missing, without which that failure explains nothing. A poisoned session answers nothing afterwards, and cancellation kills the process group rather than the launcher, which this project has already run a machine out of memory by neglecting. What the probe established about the engine, after three iterations that each failed loudly: runScript is absent from the server REPL; a shipped @main script cannot be nested in a block expression, so definitions go to the top level unwrapped; and the REPL shadows Console with io.joern.console.Console, which has no withOut, so capture must qualify scala.Console. With that fixed, both mechanisms answer identically to the disposable invocation, 0.8 s against 9.8 s. The backend routes batch and single queries through the session only when session_transport is enabled, which it is not by default. Any failure falls back to the disposable invocation rather than reporting a zero, and each script is defined under its own name because every script declares exec. Equivalence for taint, dominance and configuration is task 11.2 and gates any measured run. 1,391 tests passed, nine skipped. Rollout stays NO-GO. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
1314 lines
35 KiB
JSON
1314 lines
35 KiB
JSON
{
|
|
"modules": 117,
|
|
"counts": {
|
|
"load_bearing": 108,
|
|
"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",
|
|
"preprocess",
|
|
"push.assistance",
|
|
"push.cache",
|
|
"push.contracts",
|
|
"push.policy",
|
|
"push.report",
|
|
"push.reuse",
|
|
"push.runner",
|
|
"push.snapshot",
|
|
"push.vetoes"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"push.assistance"
|
|
]
|
|
},
|
|
{
|
|
"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": "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": "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.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.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.specs",
|
|
"pairs",
|
|
"semantic",
|
|
"semantic.obligations.check",
|
|
"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"
|
|
]
|
|
},
|
|
{
|
|
"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."
|
|
}
|