Skip to content
Back to skills

Quality Gate

ASecurity

Seven-phase verification pipeline Claude runs before declaring any feature done across the full Angular/.NET/SQL/Azure stack. Phases: (1) Build — dotnet build + ng build, zero errors; (2) Analyzers — dotnet format --verify-no-changes + ng lint; (3) Antipatterns — antipattern-guard scan on changed files; (4) Tests — dotnet test + ng test --watch=false, no new failures; (5) Security — secrets, open firewall rules, unprotected endpoints; (6) Migrations — ef migrations list, no unapplied pending;...

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 6, 2026
developmentbashsqlangularazuretestinggitapidatabasesecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 6, 2026

npx -y skills add AgenticPawan/FullStack-Pilot --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/agenticpawan-quality-gate/badge)](https://www.skillsdirectory.com/skills/agenticpawan-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: "Seven-phase verification pipeline Claude runs before declaring any feature done across the full Angular/.NET/SQL/Azure stack. Phases: (1) Build — dotnet build + ng build, zero errors; (2) Analyzers — dotnet format --verify-no-changes + ng lint; (3) Antipatterns — antipattern-guard scan on changed files; (4) Tests — dotnet test + ng test --watch=false, no new failures; (5) Security — secrets, open firewall rules, unprotected endpoints; (6) Migrations — ef migrations list, no unapplied pending; (7) Diff review — git diff --stat main, confirm intended scope."
when_to_use: done, ready to ship, before PR, feature complete, /fsp-verify, quality gate, final check, verify, is this ready, all checks, pre-commit verification, before merge, ship it
---

## When to Run

Run `/fsp-verify` before declaring any feature done, before opening a PR, or after any batch of changes that span more than one file.

---

## Phase 1 — Build (zero errors)

```bash
dotnet build --no-restore 2>&1 | tail -5
ng build --configuration development 2>&1 | tail -10
```

**Pass criteria**: exit 0, zero errors. Warnings are documented but do not block.
**On failure**: stop here. Fix build errors before proceeding — subsequent phases are meaningless with a broken build.

---

## Phase 2 — Analyzers (style & lint)

```bash
dotnet format --verify-no-changes 2>&1
ng lint 2>&1
```

**Pass criteria**: no formatting violations. Lint warnings are documented.
**On failure**: run `dotnet format` or `ng lint --fix`, then re-check.

---

## Phase 3 — Antipattern Scan

Check changed `.ts`, `.cs`, and migration files against `knowledge/stack-antipatterns.md`:
- Angular: subscribe without cleanup, `: any` types, `console.log` in non-test files
- .NET: `new HttpClient()`, `async void`, `.Result`, `Console.WriteLine` in non-test files
- SQL: `SELECT *` in queries, missing tenant filter

The `antipattern-guard.js` hook already catches writes; this phase catches anything that was pre-existing in changed files.

**Pass criteria**: no new antipatterns introduced by the current changeset.

---

## Phase 4 — Tests (no new failures)

```bash
dotnet test --no-build --logger "console;verbosity=minimal" 2>&1
ng test --watch=false --browsers=ChromeHeadless 2>&1
```

**Pass criteria**: same or better pass rate than the baseline in `.claude/last-test-run.md`. A new test added and passing counts as an improvement.
**On failure**: list the failing test names and the error. Do not proceed until failures are understood (flake vs. real regression).

---

## Phase 5 — Security Spot Check

1. Grep changed files for hardcoded secrets (`password=`, `apiKey=`, `-----BEGIN`). The `secret-guard.js` hook should have caught these — this is a double-check.
2. Grep changed `.bicep` files for `allowBlobPublicAccess: true`, `allowAllWindowsAzureIps`.
3. Grep new ASP.NET Core endpoints for missing `[Authorize]` on non-public routes.
4. Check new Angular routes for missing permission guards.

**Pass criteria**: no new open findings. Existing known findings must be listed, not silently ignored.

---

## Phase 6 — Migration Safety

Only runs if any `Migrations/*.cs` file changed:

```bash
dotnet ef migrations list --no-build 2>&1
```

**Pass criteria**: `dotnet ef migrations list` shows no `(Pending)` migration that is not the one just added. A migration added in this session that hasn't been applied to dev is expected — flag it as "new, requires `dotnet ef database update` in dev before testing".

If a migration drops a column or table, confirm it is soft-deleting (not hard-deleting) or that a compensating migration exists.

---

## Phase 7 — Diff Review

```bash
git diff --stat main 2>&1
```

Read the stat output and answer:
- Are there files in the diff that shouldn't be (test fixtures, generated files, `.vs/`, `obj/`)?
- Is the scope of change consistent with the feature description?
- Are there changes in more than one stack that should have been separate commits?

**Pass criteria**: the diff is scoped as intended. Flag any unintended file changes before the user opens a PR.

---

## Output Format

```
## /fsp-verify — Quality Gate Report

Phase 1 Build:         ✅ PASS  (or 🔴 FAIL — <error summary>)
Phase 2 Analyzers:     ✅ PASS  (or ⚠️ WARN — <lint issues>)
Phase 3 Antipatterns:  ✅ PASS  (or ⚠️ WARN — <findings>)
Phase 4 Tests:         ✅ PASS  47/47 (or 🔴 FAIL — <N> new failures)
Phase 5 Security:      ✅ PASS  (or 🔴 BLOCK — <finding>)
Phase 6 Migrations:    ✅ PASS  (or ⚠️ WARN — <pending>)
Phase 7 Diff:          ✅ CLEAN (or ⚠️ WARN — <unintended files>)

Overall: READY FOR PR  (or NOT READY — fix phases: <list>)
```

A single 🔴 FAIL or 🔴 BLOCK in any phase means the feature is NOT ready for PR. Fix and re-run.

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.