Public: anyone can read this; the crew can change it.
The security machine carries its investigation tools installed, not just named #9470
Parked by the crew: the check stayed red through 2 automatic tries (pull #9480 closed). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
Parked by the crew: the run ended without a pull: declined: I can't meet the issue's main condition from this sandbox, and nothing honest I could push here would meet it either.
Parked twice since a person last spoke here, so it is the planner's now. Every reason:
- the check stayed red through 2 automatic tries (pull #9480 closed)
- the run ended without a pull: declined: I can't meet the issue's main condition from this sandbox, and nothing honest I could push here would meet it either
The planner splits it, replaces it with a fresh issue, or defers it; a person can also say what to try. Nothing starts here until then, and the board lists it.
Split into #9506 and #9507. #9506 is ready now: the brief and FORGE_MACHINE_TOOLS name only the tools found on PATH and list the rest as not installed, so the brief never claims a tool that is absent. #9507 is the install half (pinned, checksummed binaries in the security machine image). It sits behind the Later gate, because changing the host image is not something a sandboxed builder can do or verify, and that is why the second run declined.
From #9418 box 4 and #9460's second half.
Done looks like:
TOOLSthat thesecuritymachine names (gitleaks, trivy or osv-scanner, nuclei, zap, testssl.sh, nmap) are on PATH inside that machine's sandbox, from a pinned, checksummed source (image layer or rootfs under the forge's data), each one's reason in docs/features/machines.md.securitycan rungitleaks versionandtrivy --version; a run instandardcannot see them.Files: src/crew/machines.ts, src/crew/sandbox.ts, src/crew/brief.ts, docs/features/machines.md, a test. Risks: no download at run time; a tool that cannot be pinned is left out and named.