changing-gates

Guides edits to CI workflows, lefthook hooks, and tool configs that enforce repository checks.

Updated Sep 15, 2026
One-click install
npx skills add https://github.com/tomada1114/quick-reply-drill --skill changing-gates-tomada1114
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: changing-gates
Source: https://github.com/tomada1114/quick-reply-drill/tree/main/.agents/skills/changing-gates
Command: npx skills add https://github.com/tomada1114/quick-reply-drill --skill changing-gates-tomada1114

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Editing enforcement files — GitHub Actions workflows, lefthook.yml, ESLint, TypeScript, Vitest, Prettier, or Next.js configs — carries non-obvious risks: a mis-scoped ESLint block silently disables rules, an unpinned action opens a supply-chain hole, and a new check added to only one of check:source or ci.yml desynchronizes the two. This Skill encodes the rules, traps, and review obligations for changing any gate in this repository. ## Core Features & Use Cases - Gate synchronization rules: Explains that a new check requires three edits — the package script, the check:source composition, and the matching ci.yml step — kept in sync by tests/ci-sync.test.ts with explicit exception maps. - Workflow security linting knowledge: Documents every ERR_WORKFLOW_* rule enforced by tests/workflows.test.ts, including SHA-pinned actions, permissions blocks, concurrency rules, and fail-closed shell settings. - Hook and staged-content coverage: Details lefthook job ordering, the verify-never-install prepare script, and exactly what check-staged.mjs inspects (and deliberately skips, such as staged deletions). - Use Case: When asked to add a new CI job or loosen an ESLint rule, the Skill tells you which files must change together, which tests will fail if you skip one, and what the PR body must justify. ## Quick Start Ask the AI to add a new lint check to the repository's CI pipeline and explain which files must change together.

Frequently Asked Questions about changing-gates

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

FAQPage Schema
How do I add a new check to a GitHub Actions CI pipeline?▼

Adding a check requires three edits: create the package script, add it to the check:source composition in package.json, and add a matching step in ci.yml. The tests/ci-sync.test.ts suite fails if either side is missing the new step.

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

Pin every action to a 40-character commit SHA with a trailing comment like # vX.Y.Z naming the release. The workflow lint rejects unpinned actions, though local ./ actions are exempt since they have no SHA.

Why does my ESLint no-restricted-imports rule stop working after adding a config block?▼

no-restricted-syntax and no-restricted-imports replace their options across config objects rather than merging. A narrower block silently switches off entries it does not restate, so keep new blocks disjoint or restate shared constants.

Can a lefthook hook be installed automatically on pnpm install?▼

Lefthook's own postinstall installs the hook, but it ignores failures silently. The repository's prepare script runs a verifier that checks the hook exists and fails the install with an ERR_HOOKS_* report rather than re-installing.

What are the limitations of pre-commit secret scanning?▼

The staged-content check skips staged deletions entirely and misses secrets under eight characters, values mixing only two character classes, and interpolated strings. It trades coverage for not blocking ordinary code, since false positives push authors toward --no-verify.