mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 03:49:26 +00:00
`ousast plane workspaces --validation-set ... --loop` appends the loop to a Run:
per case `alerts` (plane/tasks/alerts.py: the quick-mode scan on the vulnerable
and the fixed pin, a fixed-pin Workspace per case, alerts attributed to their
enclosing function by the repo-facts patterns, `in_fix_range` from the fix's
old-side and new-side ranges, failing on an unread tree) feeding `remember`,
then `memory-snapshot` -> `loop-measure` -> `loop-propose` -> `loop-improve`
(plane/tasks/loop.py). Every new task binds no Model and has budget
{usd: 0, calls: 0}. The snapshot is the store's rows after the train-on-test
guard, written on the host by memory.seed (a sandboxed run of it fails loudly);
propose runs M1/M2 against this repository at the commit under test; improve
runs one unchanged evolve.run_round and delivers gate.json, journal.json, the
sidecar, rule_policy.json only when accepted, and proposal_outcome rows that
the host ingests. Adoption stays a maintainer commit.
`remember` is now a Run entry per case (the image contains it), with the facts
row keyed by the image the facts were computed on (repo-facts records it in
its summary; unknown -> the row is omitted, never guessed). Alert rows carry
their own pin; improve/memory.py counts a repeated alert once.
Runner image rebuilt (+0.39 MB: only the new modules; the quick scan needs no
extra and the rulesets were already in the package), pushed, plane/ re-pinned
and regenerated (validation-46: 105 entries). Fixture test runs the whole loop
graph through the fake ax, whose new `exec` mode runs the real task modules.
Live: one loop Run over three validation-46 cases on the local ax, recorded in
benchmarks/measurements/2026-09-30-harnessx-removal-loop/ (all done, $0 new
spend, 0 proposals, gate verdict no_proposals).
Co-Authored-By: Claude Opus 5.5 <[email protected]>
Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo
1536 lines
41 KiB
JSON
1536 lines
41 KiB
JSON
{
|
|
"modules": 137,
|
|
"counts": {
|
|
"load_bearing": 128,
|
|
"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",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"plane.tasks.verify",
|
|
"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",
|
|
"plane.tasks.verify",
|
|
"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",
|
|
"plane.memory",
|
|
"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",
|
|
"plane.tasks.alerts",
|
|
"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",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"improve.memory",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"module": "improve.evolve",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"improve",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"module": "improve.journal",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"improve",
|
|
"improve.evolve",
|
|
"improve.memory",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"module": "improve.memory",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"cli",
|
|
"improve.evolve",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"module": "improve.validator",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"improve",
|
|
"improve.evolve",
|
|
"improve.memory",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"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",
|
|
"plane.tasks.alerts",
|
|
"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",
|
|
"plane.generate",
|
|
"plane.tasks.repo_facts",
|
|
"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",
|
|
"plane.generate",
|
|
"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",
|
|
"plane.tasks.repo_facts",
|
|
"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",
|
|
"improve.memory",
|
|
"model.candidates",
|
|
"pair_gate",
|
|
"plane.tasks.loop"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 1-4: the service plane package; runner and reconciler integration in tasks 3-4",
|
|
"importers": [
|
|
"cli",
|
|
"improve.memory",
|
|
"plane.egress",
|
|
"plane.generate",
|
|
"plane.memory",
|
|
"plane.reconciler",
|
|
"plane.router",
|
|
"plane.runner",
|
|
"plane.tasks.loop",
|
|
"plane.tasks.remember",
|
|
"plane.tasks.verify",
|
|
"plane.workspaces"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.budget",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 2.3/2.4: metered chat client with usd and calls ceilings; task integration in tasks 3, 6",
|
|
"importers": [
|
|
"plane.generate",
|
|
"plane.tasks.verify"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.doctor",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"plane.reconciler"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.egress",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"plane.reconciler"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.generate",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane task 7: an increment's Workspaces, per-case Tasks and Run from a recorded set",
|
|
"importers": [
|
|
"cli"
|
|
]
|
|
},
|
|
{
|
|
"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.egress",
|
|
"plane.generate",
|
|
"plane.reconciler",
|
|
"plane.router",
|
|
"plane.runner",
|
|
"plane.workspaces"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.memory",
|
|
"classification": "load_bearing",
|
|
"reason": "harnessx-removal Req 6.1/6.4: the memory store (file, MinIO), ingest and fact reuse; `ousast plane remember`",
|
|
"importers": [
|
|
"improve.memory",
|
|
"plane.generate",
|
|
"plane.tasks.loop",
|
|
"plane.tasks.remember"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.reconciler",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 3.1-3.5, 7.3: ax-backed Run execution, status attribution and doctor; `ousast plane`",
|
|
"importers": [
|
|
"plane.generate",
|
|
"plane.memory",
|
|
"plane.workspaces"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.router",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"plane.reconciler",
|
|
"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": "plane.tasks",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 4.1: the task entrypoint package the runner imports by name; runner integration pending (task 3)",
|
|
"importers": [
|
|
"cli",
|
|
"plane.generate",
|
|
"plane.memory",
|
|
"plane.tasks.agree",
|
|
"plane.tasks.alerts",
|
|
"plane.tasks.remember"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.tasks.agree",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 5.3/2.1: agreement across two verify passes with per-candidate cost, turns and site match",
|
|
"importers": []
|
|
},
|
|
{
|
|
"module": "plane.tasks.alerts",
|
|
"classification": "load_bearing",
|
|
"reason": "harnessx-removal Req 6.3: quick-mode alerts on a case's vulnerable and fixed pins, model-free",
|
|
"importers": []
|
|
},
|
|
{
|
|
"module": "plane.tasks.loop",
|
|
"classification": "load_bearing",
|
|
"reason": "harnessx-removal Req 6.3: the improvement loop's snapshot, measure, propose and improve steps",
|
|
"importers": [
|
|
"plane.memory"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.tasks.remember",
|
|
"classification": "load_bearing",
|
|
"reason": "harnessx-removal Req 6.1: a case's delivered artifacts as memory rows, model-free",
|
|
"importers": [
|
|
"cli"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.tasks.repo_facts",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 5.1/5.2: source-only functions and callers per file; runner integration pending",
|
|
"importers": [
|
|
"plane.generate",
|
|
"plane.tasks.alerts",
|
|
"plane.tasks.remember"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.tasks.verify",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane Req 5.3/2.1-2.3/7.2: the batched hunt with known callers, metered and resumable per file hunt",
|
|
"importers": [
|
|
"plane.generate",
|
|
"plane.tasks.agree"
|
|
]
|
|
},
|
|
{
|
|
"module": "plane.workspaces",
|
|
"classification": "load_bearing",
|
|
"reason": "ai-service-plane task 4: Workspace manifests per case pin of a population; `ousast plane workspaces`",
|
|
"importers": [
|
|
"cli"
|
|
]
|
|
},
|
|
{
|
|
"module": "policy",
|
|
"classification": "load_bearing",
|
|
"reason": "reachable from gate, map_gate, pair_gate or the CLI",
|
|
"importers": [
|
|
"cli",
|
|
"findings",
|
|
"hunter",
|
|
"hunter_harness",
|
|
"improve.evolve",
|
|
"improve.validator",
|
|
"plane.tasks.loop",
|
|
"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",
|
|
"plane.tasks.alerts",
|
|
"plane.tasks.repo_facts",
|
|
"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",
|
|
"plane.tasks.alerts",
|
|
"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.memory",
|
|
"improve.validator",
|
|
"pairs",
|
|
"plane.tasks.loop",
|
|
"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",
|
|
"plane.tasks.verify"
|
|
]
|
|
},
|
|
{
|
|
"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"
|
|
]
|
|
}
|
|
]
|
|
}
|