Skip to content
Back to skills

Change Classification Gate

ASecurity

Classify a requested change before starting work — docs-only, UI/style, frontend logic, backend/API, schema/migration, RLS/security, cloud/IaC, AI/agentic behavior, QA/test-only, refactor, bug fix, or release — and map the class to its required validation level and approval path. Locks scope to the approved class and file set; mid-task scope growth forces reclassification. Use when starting any non-trivial change, when a task mixes change types, or when work is drifting beyond what was asked....

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
testinggoterraformgitapifrontendbackendsecurity

Works with

  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned October 5, 2026

npx -y skills add ModernNomad-98/Project-Aegis --skill change-classification-gate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Change Classification Gate?

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

Security grade badge for Change Classification Gate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modernnomad-98-change-classification-gate/badge)](https://www.skillsdirectory.com/skills/modernnomad-98-change-classification-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: change-classification-gate
description: Classify a requested change before starting work — docs-only, UI/style, frontend logic, backend/API, schema/migration, RLS/security, cloud/IaC, AI/agentic behavior, QA/test-only, refactor, bug fix, or release — and map the class to its required validation level and approval path. Locks scope to the approved class and file set; mid-task scope growth forces reclassification. Use when starting any non-trivial change, when a task mixes change types, or when work is drifting beyond what was asked. Do NOT use to pick fast vs full validation depth from touched files (risk-tiered-validation-selector), or to split a broad goal into reviewable tasks (ai-task-decomposer).
---

# Change Classification Gate

**Reading key:** UI means user interface; API means application programming
interface; RLS means row-level security; IaC means infrastructure as code; AI
means artificial intelligence; QA means quality assurance; CI means continuous
integration.

## Purpose

Decide HOW MUCH rigor a change needs before any of it is written. This skill
assigns every requested change one or more classes, maps each class to a
minimum validation level and approval path, and locks the task to that scope —
so "fix a typo" cannot silently become "alter the schema". It is the routing
layer between a request and the discipline the request deserves.

## Use When

- Use when: starting any non-trivial change (more than a trivial single-file
  text edit).
- Use when: a task appears to mix classes (docs + security, bug fix + refactor).
- Use when: mid-task, the work is about to touch a file or layer outside the
  declared scope.
- Do NOT use when: the human is asking conceptually what kind of change
  something is.
- Do NOT use when: the question is whether a specific risky action may proceed —
  that is `human-approval-boundary` (this gate decides the route; that one is
  the stop sign).
- Do NOT use when: shaping an in-progress diff — that is
  `reviewable-diff-discipline`.
- Do NOT use when: picking fast vs full validation depth from the touched
  files — that is `risk-tiered-validation-selector`; this gate sets the
  approval path and scope lock.
- Do NOT use when: the request is too big for one reviewable change and
  needs splitting into ordered, pull-request-sized tasks first — that is
  `ai-task-decomposer`, which plans the tasks; this gate then classifies each
  one as it starts.

## Inputs to Inspect

1. The request itself — every deliverable it names or implies.
2. The files and directories the change will plausibly touch (search before
   classifying; wording alone under-classifies).
3. Repo signals that raise a class: migration dirs, RLS/policy files, IaC dirs
   (`terraform/`, `.github/workflows/`), agent-instruction files,
   billing/payment code paths.
4. Repo policy that defines validation gates (CI config, contribution standards).
5. Any approval already granted in the current conversation, and its exact scope.

## Workflow

1. Decompose the request into concrete deliverables.
2. Assign each deliverable a class from the table below (a task may hold several).
3. The **highest-risk class governs the task's approval path**; per-deliverable
   validation floors still apply per class.
4. Declare the scope contract — classes + expected file set + validation plan —
   and state it to the human before implementing whenever an approval-class is
   present.
5. Route approval-required classes through `human-approval-boundary` BEFORE
   touching them. Check whether an existing, still-active human approval
   already covers the exact action and scope before requesting another.
6. **Scope lock:** during implementation, any file or layer outside the contract
   triggers reclassification (return to step 2) — do not keep coding into the
   new class.
7. At completion, the validation actually run must meet or exceed each class
   floor; any shortfall is disclosed in the closeout, not absorbed.

Class → validation floor (full matrix with examples:
[references/classification-matrix.md](references/classification-matrix.md)):

| Class | Validation floor | Human approval? |
| --- | --- | --- |
| docs-only | links/rendering sanity + review | no |
| ui-style | build + visual check | no |
| frontend-logic | unit tests + build | no |
| backend-api | unit/integration tests | no |
| schema-migration | migration plan + rollback + data-loss note | **yes** |
| rls-security | negative tests + security review | **yes** |
| cloud-iac | plan/diff reviewed before apply | **yes** |
| ai-agentic | eval cases + guardrail review | **yes** when behavior or tool grants change |
| qa-test-only | test run proving intent | no |
| refactor | behavior-preservation proof (tests before/after) | broad/multi-module: **yes** |
| bug-fix | failing case reproduced → passing | no |
| release-deploy | full gate: CI green + evidence + rollback plan | **yes** |

## Output Format

```
CHANGE CLASSIFICATION
Deliverables:    <list>
Classes:         <class per deliverable>
Governing class: <highest-risk class present>
Approval path:   <none | human-approval-boundary for X>
Validation plan: <per class: the floor + anything extra>
Scope contract:  <expected files/dirs>
```

## Validation Checklist

- [ ] Every deliverable classified; none classified from the request's wording
      alone (target files actually inspected).
- [ ] Mixed tasks use the highest-risk class for the approval path.
- [ ] Approval-required classes routed to `human-approval-boundary` before work.
- [ ] Scope contract stated with an explicit file set.
- [ ] Validation plan meets every class floor, or the gap is escalated.

## Gotchas

- "Quick fix" prompts routinely hide schema or security surface — inspect the
  files before classifying, not after.
- A docs task that edits agent-instruction files (CLAUDE.md and kin) is NOT
  docs-only: instruction files steer future automated behavior. Treat as
  ai-agentic.
- Test-only changes can still change effective behavior (snapshot regeneration,
  fixture edits that mask regressions).
- Refactors advertised as behavior-preserving need proof, not assertion.
- The gate is cheap; re-running it on scope growth is the point. Skipping
  reclassification because "we're almost done" is the exact failure mode this
  skill exists to stop.

## Stop Conditions

- Mid-task scope growth into a new class → stop and reclassify. Proceed only
  under a still-active approval covering the expanded scope, or obtain one.
- The change cannot be confidently classified (unclear which layers it touches)
  → stop and ask.
- A class's validation floor cannot be met (e.g., no test runner available for
  a backend change) → stop and surface the gap instead of shipping below floor.

## Supporting Files

- [references/classification-matrix.md](references/classification-matrix.md) —
  full matrix: per-class definitions, examples, validation detail, common
  misclassifications.
- `evals/evals.json` — trigger + behavior cases.
- `evals/trigger-evals.json` — discrimination within the change-governance
  cluster (`human-approval-boundary`, `reviewable-diff-discipline`).

Files in this skill

  • SKILL.md6 KB
  • evals/evals.json2.4 KB
  • evals/trigger-evals.json1.9 KB
  • references/classification-matrix.md3.4 KB

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…