gate-supply-chain

Deploys frozen lockfile installs, dependency update configs, and SHA-pinned CI actions into repositories.

1|Updated Aug 16, 2026
One-click install
npx skills add https://github.com/Eaiger-Ent/ee-standard --skill gate-supply-chain-eaiger-ent
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: gate-supply-chain
Source: https://github.com/Eaiger-Ent/ee-standard/tree/main/plugins/control-register/skills/gate-supply-chain
Command: npx skills add https://github.com/Eaiger-Ent/ee-standard --skill gate-supply-chain-eaiger-ent

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Repositories often have supply-chain controls that exist on paper but are not enforced: lockfiles committed but ignored by non-frozen installs, dependency updates never proposed, and CI actions referenced by mutable tags that owners can move. This Skill wires those controls into CI workflows, pre-commit hooks, and bot configurations, deriving every value from a central controls.yaml register and verifying its own work with the same checker that audits the repository. ## Core Features & Use Cases - Frozen install wiring (SUP-001): Writes a frozen-lockfile install step at the top of the gating CI job, using the register's command for the ecosystem and lockfile actually present. - Dependency update proposals (SUP-002): Generates a Dependabot or Renovate configuration with one entry per ecosystem detected, plus github-actions and devcontainers entries where those features exist. - Action pinning (SUP-003): Resolves every third-party workflow action tag to its current commit SHA via the GitHub API and rewrites the reference, keeping the tag as a comment; owner-owned actions are exempted. - Digest verification (SUP-004): Ensures pinned release artefact digests are checked against what the project published. - Use Case: Point the skill at a repository with a controls.yaml register, and it produces a reviewable change wiring all four supply-chain controls, then runs register-check to confirm the deployment passes the same audit that will enforce it. ## Quick Start Ask the AI to deploy gate-supply-chain into the current repository using its controls.yaml register and report the checker verdict.

Frequently Asked Questions about gate-supply-chain

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I pin GitHub Actions to a commit SHA?▼

Pin GitHub Actions by resolving each tag to the commit it points at with the GitHub API, then rewriting the uses: reference to the full 40-character SHA with the tag kept as a trailing comment. This skill does that for every third-party action in every workflow, skipping actions owned by the repository's own owner.

How to enforce frozen lockfile installs in CI?▼

Enforce frozen installs by placing a frozen-lockfile install step (such as npm ci or uv sync --frozen) at the top of the gating CI job, above every other gate's steps. The exact command comes from the controls.yaml register's frozen_install_command for the lockfile the repository tracks.

Does this work with both Dependabot and Renovate?▼

Yes, the skill supports both Dependabot and Renovate configurations and leaves both in place if a repository runs them for different ecosystems. It checks that their entries do not overlap, since duplicate proposals for one ecosystem train reviewers to ignore real ones.

Can the skill enable Dependabot or install the Renovate app?▼

No, enabling Dependabot on a repository or installing the Renovate app are platform acts requiring a human with admin access. The skill writes the configuration file and reports which platform step still needs a human, since the config is inert until then.

What happens if a repository has no tracked lockfile?▼

The skill stops before writing anything when an ecosystem lacks a tracked lockfile, because a lockfile it generated would pin a resolution nobody reviewed. It reports which lockfile is missing and the command that produces it.

Why does the pre-commit hook run register-check instead of an action linter?▼

The hook runs register-check because no third-party action linter shares the register's notion of an owner-exempt action, so a second implementation would eventually disagree with the auditor. Using the same pinned binary at every locus guarantees one consistent verdict.