Why
Nightly review findings, adopted in the 2026-08-31 stocktake triage (caty-ai/alpha-nightshift-dev#40). Five independent reports across 3 reviewers × 3 nights (2026-08-23 → 08-26) — the strongest convergence in the security batch — all still open in the ledger.
All six caller workflows (test-lint, gitleaks, history-check, pr-size, review-labels, release-sync; 11 references total) invoke caty-ai/family-dev-handbook reusable workflows at the mutable tag @ci-v1, while first-party actions in the same repo are pinned to full commit SHAs (e.g. actions/checkout@de0fac2e...). Consequences:
- A retag of
ci-v1 silently changes what every required merge gate runs, with no SHA-visible change in this repo — supply-chain and review-bypass boundary.
release-sync.yml additionally grants contents: write to code resolved through that mutable ref (highest blast radius).
- The pinning policy is internally inconsistent: low-risk first-party actions get SHA pinning, the highest-blast-radius gates do not.
- CI evidence referenced from README badges is not reproducible/content-addressed.
Done when
触るファイル / モジュール予測
.github/workflows/test-lint.yml
.github/workflows/gitleaks.yml
.github/workflows/history-check.yml
.github/workflows/pr-size.yml
.github/workflows/review-labels.yml
.github/workflows/release-sync.yml
- docs (pin-update procedure or accepted-posture record)
Note: if the SHA-pin posture is adopted family-wide, the policy decision itself belongs to caty-ai/family-dev-handbook; this issue covers the caller-side pins in this repo either way.
Findings: rv-security-codex-6780fb46b4f2-4444acdf, rv-dependency-grok-6780fb46b4f2-d80fef9e, rv-dependency-kimi-6780fb46b4f2-2dca4942, rv-dependency-grok-4221b8a1f10f-c735dbf1, rv-dependency-kimi-4221b8a1f10f-6aac41de (ledger: alpha-nightshift state/ledger/ledger.jsonl)
Why
Nightly review findings, adopted in the 2026-08-31 stocktake triage (caty-ai/alpha-nightshift-dev#40). Five independent reports across 3 reviewers × 3 nights (2026-08-23 → 08-26) — the strongest convergence in the security batch — all still open in the ledger.
All six caller workflows (
test-lint,gitleaks,history-check,pr-size,review-labels,release-sync; 11 references total) invokecaty-ai/family-dev-handbookreusable workflows at the mutable tag@ci-v1, while first-party actions in the same repo are pinned to full commit SHAs (e.g.actions/checkout@de0fac2e...). Consequences:ci-v1silently changes what every required merge gate runs, with no SHA-visible change in this repo — supply-chain and review-bypass boundary.release-sync.ymladditionally grantscontents: writeto code resolved through that mutable ref (highest blast radius).Done when
caty-ai/family-dev-handbookreusable workflows in the six caller workflows are pinned to a full commit SHA (with the tracking tag kept in a comment, e.g.@<sha> # ci-v1), or an explicit accepted-posture decision (rationale + compensating control such as tag-protection in the handbook repo) is recorded in-repo — one of the two, decided by the ownerrelease-sync.ymlpermissions are re-reviewed under the chosen posture;contents: writeis either justified next to the pin or narrowedci-v1(so pinning does not rot)触るファイル / モジュール予測
.github/workflows/test-lint.yml.github/workflows/gitleaks.yml.github/workflows/history-check.yml.github/workflows/pr-size.yml.github/workflows/review-labels.yml.github/workflows/release-sync.ymlNote: if the SHA-pin posture is adopted family-wide, the policy decision itself belongs to
caty-ai/family-dev-handbook; this issue covers the caller-side pins in this repo either way.Findings:
rv-security-codex-6780fb46b4f2-4444acdf,rv-dependency-grok-6780fb46b4f2-d80fef9e,rv-dependency-kimi-6780fb46b4f2-2dca4942,rv-dependency-grok-4221b8a1f10f-c735dbf1,rv-dependency-kimi-4221b8a1f10f-6aac41de(ledger: alpha-nightshiftstate/ledger/ledger.jsonl)