Skip to content

docs: correct the pinning contract to digest pins - #45

Merged
github-actions[bot] merged 2 commits into
developfrom
docs/pinning-governance-digest
Aug 17, 2026
Merged

docs: correct the pinning contract to digest pins#45
github-actions[bot] merged 2 commits into
developfrom
docs/pinning-governance-digest

Conversation

@nolte

@nolte nolte commented Aug 17, 2026

Copy link
Copy Markdown
Owner

Summary

PR #40 moved every workflow uses: reference to a full-length commit digest,
but four prose locations still describe the old tag-based scheme. CLAUDE.md is
the binding instruction file for AI-assisted edits here, so its stale claim
actively invites an agent to replace the digest pins with tags and undo the
supply-chain protection.

Changes

  • CLAUDE.md §CI: state the digest form, name the current digest, and forbid
    replacing it with a bare tag. Was Pinning is by tag (currently v1.1.10).
  • docs/{en,de}/references/governance.md §Reusable workflows: name the digest
    with its version instead of v1.1.18.
  • docs/{en,de}/references/governance.md §Dependency governance: replace "All
    pins use released tags" with the digest requirement, and give the reason.
  • docs/{en,de}/guides/contributing.md §Pull request flow: same correction for
    contributors.

Linked issues

None

Testing

  • Established, grep -rho 'gh-plumbing/.github/workflows/[^@]*@[a-f0-9]*' .github/workflows/ | sed 's/.*@//' | sort -u → a single value,
    d51e51ec3ec17ceea09fe9eb40ac00857b6fa1be. Every workflow is on one digest,
    so naming one current pin is accurate.
  • task --yes lint — all pre-commit hooks pass.
  • vale --minAlertLevel=error on the five changed files: 0 errors, 0 warnings and 0 suggestions in 5 files.
  • Repo-wide Vale is unchanged by this PR: vale --minAlertLevel=error docs/ CLAUDE.md reports 11 errors both on develop and on this branch. Those 11
    are pre-existing and live in files this PR doesn't touch.

Risk / rollout notes

None. Documentation only; no workflow, module, or consumer-facing behaviour
changes.

Two adjacent observations, deliberately not fixed here to keep the change
reviewable:

Originating source: /code-review of PR #43, which flagged the governance and CLAUDE.md staleness while reviewing an unrelated diff
Dispatched specialist: no matching specialist existed — generalist handled

PR #40 moved every `uses:` reference in .github/workflows/ to a full-length
commit digest (d51e51e, v2.0.0), but four prose locations still describe the
old scheme:

- docs/{en,de}/references/governance.md name `v1.1.18` as "the current pin"
  and require that "all pins use released tags"
- docs/{en,de}/guides/contributing.md name the same stale tag
- CLAUDE.md names `v1.1.10` and states "pinning is by tag"

CLAUDE.md is the binding instruction file for AI-assisted edits, so the stale
claim actively invites an agent to replace the digest pins with tags — undoing
the supply-chain protection the digest form exists for. The governance page
carries the same risk for a human reviewer judging a future Renovate digest PR.

State the digest form, name the current digest with its version, and give the
reason a bare tag is not acceptable (a tag can be moved onto different code,
which is what the March 2025 tj-actions/changed-files compromise did).

Left alone deliberately: the `v1.1.18` occurrence in governance.md's Vale
section, which is an illustrative example of a version-pin-shaped token for the
disabled Microsoft.Ranges rule, not a claim about the current pin.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A4KA8swD1ZzDqknDV5TUxx
Review of #45 found the first pass re-created the staleness it removes, at a
shorter half-life: it hard-coded the 40-character digest in five prose
locations, while upstream Renovate runs with `pinDigests: true` and bumps that
digest in a PR that touches only .github/workflows/. The next bump would leave
CLAUDE.md — the binding instruction file — naming a digest no workflow uses.

Name the released version instead, and point at .github/workflows/ as the
source of truth for the digest itself.

Also fix README.md:115, a fifth stale location the first pass missed. It sits
outside the intro/usage markers, so docs/index.md doesn't inherit the corrected
text from anywhere else.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01A4KA8swD1ZzDqknDV5TUxx
@nolte
nolte marked this pull request as ready for review August 17, 2026 21:24
@nolte nolte added the automerge Allow automatic Merge. label Aug 17, 2026
@github-actions
github-actions Bot merged commit 475ab53 into develop Aug 17, 2026
7 of 8 checks passed
@github-actions
github-actions Bot deleted the docs/pinning-governance-digest branch August 17, 2026 21:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

automerge Allow automatic Merge. documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant