chore: adopt the shared skill template - #46
Conversation
Brings .github/ in line with netresearch/.github/templates/skill and adds
.github/template.yaml, so the template drift check applies from now on.
This repo carried an older generation of the shared workflows: they
predate the top-level `permissions: {}` block and, in release.yml, the
id-token and attestations scopes that Sigstore signing and the GitHub
attestation API require. Every affected file existed here in exactly one
revision shared with the other skill repos, so this is a generation gap
rather than local customisation.
Added: template.yaml labeler.yml check-template-drift.yml labeler.yml scorecard.yml
Replaced: zizmor.yml dependabot.yml release.yml security.yml lint.yml auto-merge-deps.yml harness-verify.yml eval-validate.yml
Signed-off-by: Sebastian Mendel <github@sebastianmendel.de>
|
Dependency ReviewThe following issues were found:
License Issues.github/workflows/labeler.yml
.github/workflows/scorecard.yml
OpenSSF Scorecard
Scanned Files
|
There was a problem hiding this comment.
Pull request overview
This PR adopts the shared netresearch/.github/templates/skill setup for this repository’s .github/ directory and adds .github/template.yaml so template drift checks will apply going forward. It also modernizes workflow security posture by denying permissions by default and re-declaring minimal job permissions for each reusable-workflow caller.
Changes:
- Standardize GitHub Actions workflows to the shared template pattern (
permissions: {}at top-level, explicit per-job permissions). - Add new templated workflows for scorecard, labeler, and template drift checking.
- Update security automation configuration (zizmor policy text, Dependabot configuration, richer workflow documentation comments).
Reviewed changes
Copilot reviewed 13 out of 13 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
| .github/zizmor.yml | Updates the unpinned-uses policy commentary to cover both reusable workflows and composite actions. |
| .github/workflows/security.yml | Expands documentation and keeps explicit per-job permissions while calling shared security reusables. |
| .github/workflows/scorecard.yml | Adds OpenSSF Scorecard workflow using the shared reusable with least-privilege permissions. |
| .github/workflows/release.yml | Adds top-level deny-all permissions and grants required scopes for signing/attestations in the reusable release pipeline. |
| .github/workflows/lint.yml | Switches to top-level deny-all permissions and explicitly grants read permissions to the reusable validation workflow. |
| .github/workflows/labeler.yml | Adds labeler workflow using pull_request_target with deny-all + minimal job permissions. |
| .github/workflows/harness-verify.yml | Switches to deny-all permissions and explicitly grants read permissions for the reusable harness verification. |
| .github/workflows/eval-validate.yml | Switches to deny-all permissions and explicitly grants read permissions for the reusable eval validation. |
| .github/workflows/check-template-drift.yml | Adds a workflow to enforce drift checks against the shared skill template. |
| .github/workflows/auto-merge-deps.yml | Documents and keeps pull_request_target usage while applying deny-all + explicit job permissions for the reusable auto-merge. |
| .github/template.yaml | Adds template binding/config that enables drift enforcement and documents common intentional drift patterns. |
| .github/labeler.yml | Adds label rules to categorize PRs based on changed files. |
| .github/dependabot.yml | Aligns Dependabot config with the template (github-actions + composer ecosystems, grouped updates). |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
Correction: the original description claimed |



Brings
.github/in line withnetresearch/.github/templates/skilland adds.github/template.yaml, which is what makes the template drift check apply to this repo from now on.Correction to the original description
The first version of this description claimed
release.ymllacked theid-token: writeandattestations: writescopes. That was wrong — all 17 repos in this rollout already had them. The claim came from reading a truncateddiffand seeing only the template side of a changed hunk.What
release.ymlactually gains is the top-levelpermissions: {}block and clearer comments. The scopes are unchanged.What this actually does
.github/template.yaml, socheck-template-driftgoverns this repo from now onpermissions: {}deny-by-default block to the shared workflows that lacked itWhy overwriting is safe
Measured across all 17 skill repos in the same position before touching any of them:
release.ymlandauto-merge-deps.ymlexist in exactly one revision each, the remaining files in two or three. No repo carries a local customisation — it is a single generation gap.The one shape that would be unsafe is a repo hosting its own reusable workflow, since the template ships the caller form: adopting it there replaces the reusable with a stub that
uses:itself, which is what broke every skill release org-wide on 2026-06-18. The rollout script refuses any repo containingworkflow_call:, and none of the 17 does.The commit message lists the files added and replaced for this specific repo.