mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-18 12:39:28 +00:00
ai-service-plane task 3, Requirements 4.1-4.4 (with 2.2 and 2.3 honoured by the exit-code contract): - src/openultrasast/plane/runner.py: the ax-task-runner entrypoint. Reads the Task from AX_TASK_YAML and the bound Workspaces from AX_WORKSPACES_YAML (task-1 loaders), serves /healthz and /readyz on port 80 (AX_RUNNER_PORT; 0 picks a free port, AX_RUNNER_HTTP=0 disables it for unit tests), materialises each workspace at its bound path (spec.files verbatim; spec.git at <path>/<name>, exported from the OUSAST_CASE_CACHE checkout whose origin matches, else a shallow clone at the pin; a repo already present on a resumed volume is kept) and only then answers 200 on /readyz. Runs spec.command by importing openultrasast.plane.tasks.<name> with the remaining elements as argv; sets OUSAST_WORKSPACE_DIR from the first binding when the Task's env leaves it unset. A crash writes summary.json with status failed and the traceback. When OUSAST_ARTIFACT_URL is set, the whole OUSAST_OUTPUT_DIR is POSTed as an uncompressed tar (Content-Type application/x-tar, X-Ousast-Task, X-Ousast-Run) with three attempts and backoff; a failed delivery rewrites summary.json to failed and exits 2. Exit codes: done 0, failed 2, unfinished 3. - plane/Dockerfile.runner: python:3.12-slim + git, `pip install .` (no extras), a shell wrapper at /usr/local/bin/ax-task-runner exec'ing the module; built and loaded into kind by ops/ax/up.sh, not by the tests. - tests/test_plane_runner.py (+ tests/plane_stub_task.py registered as the task module): env contract on a files workspace, readyz 503 then 200, delivery to a local receiver with the headers and tar checked, delivery failure -> failed and exit 2 after three attempts, crash -> failed with traceback, exit codes per status, case-cache export at the pin, shallow-clone fallback, resume keeps the checkout. - model/audit.py: SPEC_OWNED row for plane.runner; module-audit measurement regenerated (122 modules, no orphans, note kept). Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
1359 lines
36 KiB
JSON
1359 lines
36 KiB
JSON
{
|
|
"modules": 122,
|
|
"counts": {
|
|
"load_bearing": 113,
|
|
"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": [
|
|
"plane.runner"
|
|
]
|
|
},
|
|
{
|
|
"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.runner"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.runner",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 4.1-4.4: the ax-task-runner entrypoint (PID 1 of the task image); delivers the output directory",
|
|
"importers": []
|
|
},
|
|
{
|
|
"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."
|
|
}
|