Skip to content
Back to skills

Quality Gate

ASecurity

Run the full quality gate and report every step with numbers - tests, release build with the pinned toolchain, front-end builds, vocabulary/translation checker for every configured language, contract tests (changelog, languages, plurals, light/dark theme contrast), the design system check (names, both themes, documented contrast pairs), accessibility (axe in light and dark at 390/1440), screenshots, privacy and data-residency checks, What's new, and CI green. Profile-aware. Use before reporti...

  • 2 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 17, 2026
ai-agentsbashreactnodeazuregitdatabase

Security analysis

A100/100

Scanned October 17, 2026

npx -y skills add peterruiter/claude-build-framework --skill quality-gate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Quality Gate?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Quality Gate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/peterruiter-quality-gate/badge)](https://www.skillsdirectory.com/skills/peterruiter-quality-gate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: quality-gate
description: Run the full quality gate and report every step with numbers - tests, release build with the pinned toolchain, front-end builds, vocabulary/translation checker for every configured language, contract tests (changelog, languages, plurals, light/dark theme contrast), the design system check (names, both themes, documented contrast pairs), accessibility (axe in light and dark at 390/1440), screenshots, privacy and data-residency checks, What's new, and CI green. Profile-aware. Use before reporting work as done, before a release, or when the user says "run the gate", "run all checks", "is it green", "verify".
argument-hint: "[--release] [scope]"
---

# Quality gate

Reference: `${CLAUDE_PLUGIN_ROOT}/docs/quality-gate.md`.

## 0. Know the commands

- Read CLAUDE.md for the project's gate commands and profile. If a profile is used, read its
  README in `${CLAUDE_PLUGIN_ROOT}/profiles/<profile>/` for the exact build/test commands and the
  pinned toolchain (`dotnet-react-azure`, `dataverse-solution`, `power-platform-pcf`,
  `dataverse-plugins`; a project may use several, run every one's gate).
- For a release (`--release`), run everything in the clean release worktree, not the shared tree.
- Check the tools first: `node "${CLAUDE_PLUGIN_ROOT}/scripts/check-prereqs.mjs" <profile>`. A
  required tool missing or too old fails the gate before any step runs; report the install
  commands it prints.

## 1. Run, in order, and record numbers

| # | Step | Command (stack-neutral part) |
| --- | --- | --- |
| 1 | Tests (unit, database on a scratch DB, node) | profile |
| 2 | Release build with the image's exact toolchain (temporary pin, removed afterwards) | profile |
| 3 | Front-end type check and production builds | profile |
| 4 | Vocabulary | `node scripts/check-vocabulary.mjs` |
| 5 | Contracts (includes the theme contrast test on the generated tokens, in light and dark) | `node --test "tests/contracts/*.test.mjs"` |
| 5b | Design system: the project's system (`designSystem.id` in `build/framework.json`) passes its own check; report its known exceptions and findings as they are | `node "${CLAUDE_PLUGIN_ROOT}/scripts/design-system.mjs" check <id>` |
| 6 | Stand-ins | `node --test "tests/standins/*.test.mjs"` |
| 7 | Accessibility (UI changed) | `node tests/a11y/axe-pages.mjs --probes` against a local run (light/dark, 390/1440) |
| 8 | Screenshots (UI changed) | languages × 390/1440 × light/dark; look at them |
| 9 | Privacy | the checklist in `${CLAUDE_PLUGIN_ROOT}/docs/privacy-and-sovereignty.md` for each new feature; erasure covers new tables |
| 10 | Data residency | no new service/endpoint outside the configured region without a recorded owner decision |
| 11 | What's new | an entry per user-visible change, every configured language, `release: null` |
| 12 | CI (after the lead pushes) | `gh run watch <id> --exit-status`; on red `gh run view <id> --log-failed`, fix, push, watch |

Run independent steps in parallel where safe (background Bash). Never weaken a check to pass.

## 2. On failure

- Fix at the root (flaky test: find the ordering/precision/clock cause; don't add retries).
- If the shared tree is broken by someone else's work in progress, run in a clean copy
  (`git archive HEAD | tar -x -C <scratch>` plus your files) and say so.
- A step that cannot run (no local database, no browser): report **not run, with the reason**.

## 3. Report

| Step | Result |
| --- | --- |
| Tests | 412 passed, 0 failed |
| … | … |

End with: green / not green, and what is unverified.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.