SDLC Evidence
Refresh the proof that makes an Agent SDLC PR reviewable or mergeable.
Workflow
- Read the issue and PR:
gh issue view <number> --json number,title,body,labels,url,stategh pr view <number> --json number,title,url,state,isDraft,headRefOid,statusCheckRollup,reviewDecision,files
- Compare PR
headRefOidwith any head recorded in## Agent State. - Read declared verification, CI tier, simulator evidence, and review verdict from the issue/PR.
- Classify missing or deferred proof:
review_blocker: reviewer cannot trust the change yet.merge_blocker: implementation can be approved, but merge evidence is pending.human_gate: product, risk, access, or release decision needs the user.non_blocking: residual note only.
- Update the PR body or comment with current head, checks, attached evidence, and blockers.
- Update issue
## Agent State:Status: evidence_readywhen review can proceed.Status: merge_readywhen review is approved and required merge evidence is current.Status: needs_humanfor human gates.Status: blockedfor fix-required blockers.
- Re-read the PR and issue after each mutation. Body edits, label changes, and draft-to-ready transitions can enqueue a fresh workflow run; if they do, wait for that run and refresh the exact-head check readback before claiming
merge_ready.
GitHub attachment evidence
- For each GitHub user-attachment URL in the PR or issue, run
node plugins/agent-sdlc/scripts/fetch-github-attachment.js <url>and use the returned temporarypathfor actual visual inspection. A PR-body link by itself is not inspection. - The helper fetches without authentication first. A first
404meansprivate_attachment_auth_requireduntilgh auth tokenretrieval and the authenticated retry complete; do not call it missing evidence yet. - Treat an authenticated
404asmissing_evidence. Treat unavailable credentials or an authenticated non-404 failure as an authentication/retrievalreview_blocker, not as proof that the artifact is absent.
Rules
- Current-head evidence must name the exact PR head SHA.
- A local screenshot path does not count as attached proof. Use a GitHub-hosted image/video link when simulator evidence is required.
- Before
gh issue edit --body-fileorgh pr edit --body-file, runnode plugins/agent-sdlc/scripts/guardrails.js body --body-file <draft> > <safe-body>and edit from the safe file. - Do not rerun hosted CI when the known blocker is account capacity, spending limit, or another external startup failure; record it as a blocker with the right class.
- Do not downgrade a valid approved/evidence-ready state to
needs_humanmerely because a reviewer thread or API call transiently errors; reserve that class for an actual user, access, product, or risk gate.