Skip to content

fix: guard artifact action version pairing + reviewer guard + comment-language convention#32

Merged
wei18 merged 3 commits into
mainfrom
fix/issue-25-audit-findings
Jul 21, 2026
Merged

fix: guard artifact action version pairing + reviewer guard + comment-language convention#32
wei18 merged 3 commits into
mainfrom
fix/issue-25-audit-findings

Conversation

@wei18

@wei18 wei18 commented Jul 21, 2026

Copy link
Copy Markdown
Owner

Summary

Fixes the 3 findings from the self-audit tracking issue #25:

  • F1 (high).github/actions/*/action.yml pin actions/upload-artifact@v7 and actions/download-artifact@v8 across the discovery -> reviewer -> synthesis -> report pipeline, a boundary that has been format-incompatible before (v3->v4). Rather than downgrading either action (no shared major exists — upload-artifact tops out at v7, download-artifact at v8), added test/action-pins.test.ts which asserts all upload-artifact pins match, all download-artifact pins match, and the pair equals an explicit ALLOWED_PAIR constant documented with the compatibility evidence: v8's release notes (ESM migration, digest-mismatch defaults to error, Content-Type-driven unzip) don't change the artifact format v7 upload produces, and the 2026-07-20 self-audit run exercised this exact pairing end-to-end successfully. Verified the test fails when a pin is changed and passes again once reverted.
  • F2 (low) — root action.yml's docs_staleness reviewer step was missing the always() && guard the other six reviewer steps have, so it alone implicitly depended on the discovery step succeeding. Added the guard for consistency.
  • F3 (low)src/*.ts comments were split between Traditional Chinese and English with no recorded convention. Recorded "English, matching README.md's en base" in CLAUDE.md's Working conventions, and translated the remaining zh-TW comments to English across types.ts, issue.ts, matrix.ts, rubric.ts, find-issue.ts, discovery.ts, gitmeta.ts, consolidate.ts, classify.ts. Comment-only change — no code lines touched.

Test plan

  • npx vitest run test/action-pins.test.ts — green (4/4)
  • Negative check: temporarily bumped discovery/action.yml's upload-artifact pin to v8 — 2 assertions failed as expected; reverted — green again
  • npm test — 148/148 passing across 28 files
  • npm run build — tsc clean
  • git diff main -- src/ touches comment lines only; rg -n '[一-鿿]' src/ — no output
  • grep -n "always()" action.yml — all 7 reviewer steps guarded

Closes #25

🤖 Generated with Claude Code

wei18 added 3 commits July 21, 2026 22:18
Self-audit issue #25 flagged upload-artifact@v7 vs download-artifact@v8
across the discovery -> reviewer -> synthesis -> report pipeline as a
high-severity drift risk, since these companion actions have had
format-incompatible major bumps before (v3->v4).

Verified compatible: v8's release notes (ESM migration, digest-mismatch
defaults to error, Content-Type-driven unzip) don't change the artifact
format v7 upload produces, and the 2026-07-20 self-audit run exercised
upload@v7 + download@v8 across the full pipeline successfully. So this
keeps the current pins and adds a regression test instead of downgrading
download-artifact.
The other six reviewer steps in the Marketplace action.yml use
`if: always() && contains(...)` so each reviewer runs regardless of
discovery's outcome. docs_staleness was missing `always() &&`, so a
bare if implicitly depended on success(), breaking that uniform
contract (issue #25).
…h comments

Self-audit issue #25 found src/ comments split roughly evenly between
Traditional Chinese and English with no recorded convention. Records
English (matching README.md's en base) in CLAUDE.md and translates the
remaining Traditional-Chinese comments across src/*.ts to English.
Comment text only — no behavioral changes.
@wei18
wei18 merged commit b853e4b into main Jul 21, 2026
2 checks passed
@wei18
wei18 deleted the fix/issue-25-audit-findings branch July 21, 2026 14:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

🔍 Upkeep Report

1 participant