ci: the three SDLC gates (decisions, verification, review) - #475
ci: the three SDLC gates (decisions, verification, review)#475rita-aga wants to merge 9 commits into
Conversation
The enforced stages of the loop as required CI checks: - sdlc-decisions: no PR without a shaped decision log - sdlc-verification: no merge without proof (skips PRs that change no app code) - sdlc-review: no merge without a review record; cost-tiered (computer > cursor > model APIs), the computer runs the panel on flat subscriptions Pilot on temperpaw. All three fetch their gate logic from arni-labs/stack. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VLPhB9kjLeE48kLUyAXXq2
| CODE=$(git diff --name-only "${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }}" | grep -vE '^(\.github/|docs/|\.agents/|\.claude/|\.cursor/|README|.*\.md$)' || true) | ||
| if [ -z "$CODE" ]; then echo "needs=false" >> "$GITHUB_OUTPUT"; echo "No app code changed - proof not required."; else echo "needs=true" >> "$GITHUB_OUTPUT"; fi |
There was a problem hiding this comment.
When the base commit is absent from the default depth-one checkout, git diff fails, but the pipeline suppresses the error and leaves CODE empty. The workflow then sets needs=false, allowing an application-code PR to pass without requiring or validating proof.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/sdlc-verification.yml
Line: 38-39
Comment:
**Diff failures bypass proof**
When the base commit is absent from the default depth-one checkout, `git diff` fails, but the pipeline suppresses the error and leaves `CODE` empty. The workflow then sets `needs=false`, allowing an application-code PR to pass without requiring or validating proof.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.| if: ${{ env.VERCEL_TOKEN != '' }} | ||
| env: | ||
| VERCEL_TOKEN: ${{ secrets.VERCEL_TOKEN }} | ||
| VERCEL_ORG_ID: ${{ secrets.VERCEL_ORG_ID }} | ||
| VERCEL_PROJECT_ID: ${{ secrets.VERCEL_PROJECT_ID }} |
There was a problem hiding this comment.
Deployment condition always skips
When the documented Vercel secrets are configured, this condition still sees an empty VERCEL_TOKEN because the variable is defined only in the same step's env block. The deployment is therefore always skipped, and the PR comment incorrectly falls back to the artifact while reporting that Vercel secrets are unset.
Prompt To Fix With AI
This is a comment left during a code review.
Path: .github/workflows/sdlc-verification.yml
Line: 57-61
Comment:
**Deployment condition always skips**
When the documented Vercel secrets are configured, this condition still sees an empty `VERCEL_TOKEN` because the variable is defined only in the same step's `env` block. The deployment is therefore always skipped, and the PR comment incorrectly falls back to the artifact while reporting that Vercel secrets are unset.
---
For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.
Review — ci the three SDLC gates decisions verification review: FAILPanel: grok, codex, fable, greptile Full effort report (proof + review) linked from the verification comment. |
Vendors the enforced SDLC-loop gates into temperpaw as required CI checks. This is the pilot that runs all three gates on a real PR (ARN-411).
Decisions & Tradeoffs
Verification
Workflow-only change — the verification gate skips by design. The decisions gate reads this PR body (this section satisfies it). The review gate runs the computer panel on the diff. Watching the checks on this PR is the proof.
Authored by Fable 5 via Claude Code.
Greptile Summary
The PR adds three GitHub Actions workflows enforcing decision records, implementation proof, and review records.
Confidence Score: 3/5
The PR is not yet safe to merge because application changes can bypass proof validation and configured Vercel report deployments are still skipped.
The verification workflow suppresses failures when diffing against a base commit absent from its shallow checkout, classifying application changes as not requiring proof. Its deployment condition also reads a token unavailable at that evaluation scope, preventing the configured protected report deployment.
Files Needing Attention: .github/workflows/sdlc-verification.yml
Important Files Changed
Reviews (6): Last reviewed commit: "ci: re-trigger review (all reviewers lea..." | Re-trigger Greptile