gate-build

Deploys non-root container user and digest-pinned devcontainer controls into a target repository.

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

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Container images that run as root and devcontainer configurations with floating image tags or partially pinned features create security and reproducibility gaps that nothing on disk reveals. This Skill deploys the BLD-001 (non-root container user) and DEV-001 (version-pinned devcontainer) controls into a repository and wires enforcement at pre-commit and CI loci. ## Core Features & Use Cases - Non-root container enforcement: Stamps or writes a remoteUser in devcontainer.json so the container never silently runs as root, and stops when a Dockerfile's final stage ends as root. - Digest pinning: Resolves floating image tags to @sha256: digests and regenerates devcontainer-lock.json so every declared feature is pinned, catching partial-lock half-states. - Locus wiring with provenance stamps: Writes a pre-commit hook and CI step carrying per-control stamps, then verifies the deployment by running register-check run --control BLD-001 --control DEV-001 and reporting the verdict verbatim. - Use Case: Point the skill at a repository with an existing devcontainer on a floating tag; it pins the image digest, completes the lock file, wires both enforcement loci, and proves the result with the same checker that audits the repo. ## Quick Start Ask the AI to deploy gate-build into the current repository so the devcontainer user and image pins are enforced at pre-commit and CI.

Frequently Asked Questions about gate-build

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

FAQPage Schema
How do I pin a devcontainer image to a digest?▼

The skill resolves the floating tag with docker buildx imagetools inspect and writes the image as an @sha256: digest reference in devcontainer.json, keeping the readable tag in a comment. It also runs devcontainer upgrade so every declared feature is pinned in devcontainer-lock.json.

How do I enforce a non-root user in a devcontainer?▼

The skill reads the user the base image provides via docker run id -un and writes it as remoteUser in devcontainer.json, stamped for BLD-001. If the declared user is root it stops, because BLD-001 forbids variance and there is no tolerated list.

Does gate-build work without a controls.yaml register?▼

No. The register is the single source of truth for which properties are required and how loci reach the checker, so the skill aborts if no register loads. Deploy the register first, or use register-adopt which plans across the whole register.

Why does register-check report UNCLASSIFIED for hadolint?▼

A repository with a Dockerfile runs BLD-001's hadolint block, and an absent linter is UNCLASSIFIED rather than a pass. Close it by adding a tools.hadolint entry to that repository's own register naming the loci where the linter is installed.

When should I not use gate-build?▼

Skip it when the repository has neither a Dockerfile nor a .devcontainer directory, since both controls skip on their predicates. Also use register-adopt instead when you want every gate deployed rather than just BLD-001 and DEV-001.