mirror of
https://github.com/DeusData/codebase-memory-mcp.git
synced 2026-10-28 07:03:20 +08:00
Adding the VirusTotal step left one trip unavailable: build straight to the scan. Smoke is in the VirusTotal job's needs, so the only way to reach the scan was to run smoke first — and a smoke failure would withhold precisely the answer such a run was dispatched to get. The skips now cover the three questions worth asking separately: skip_builds no artifacts at all "do lint and tests pass?" skip_smoke build + scan, no smoke "does this diff scan red?" skip_virustotal build + smoke + soak, no scan "do the archives pass CI?" skip_smoke is for the case where the scan verdict is the entire point: the last release scanned clean, so the question is only whether the accumulated diff turns it red. Everything between build and the scan is cost without information for that question. VirusTotal keeps smoke and soak in its needs, and that is deliberate: they order the job last, they do not gate it. A SKIPPED smoke leaves the scan reachable (result 'skipped', which is not 'failure'); a FAILED smoke still withholds it, because a verdict on artifacts already known to be broken is not worth two hours of polling. The release-gate-chain contract covers exactly this distinction — an optional phase must not silently disable the phases after it — and passes. Signed-off-by: Martin Vogel <martin.vogel.tech@gmail.com>