К основному содержанию
скилл CX Codex

prompt-regression — скилл для Claude Code

Сверяет изменённые файлы харнесса с набором эталонных проверок и показывает PASS/FAIL/SKIP по каждой. Нужен после правок правил, CLAUDE.md или добавления скилла.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add chrono-meta/forge-harness --skill prompt-regression -a claude-code
Открыть на GitHub

Что делает prompt-regression

Скилл статически проверяет ассеты харнесса после того, как вы поправили правила, CLAUDE.md или добавили новый скилл. Он смотрит на изменённый исходник и ищет в нём то, что ожидает конкретная проверка: триггерные фразы, звенья цепочек и условия гейтов. По каждой проверке выводится вердикт PASS, FAIL или SKIP.

Сначала скилл находит изменённые файлы через git diff HEAD~1 по CLAUDE.md, .claude/ и plugins/ и раскладывает их по уровню влияния. Затем ищет пользовательский набор проверок в .claude/regression/probes.md; если его нет, работает по встроенной матрице с проверками вроде P-GREET-01 и P-TRIGGER-01. Дальше сопоставляет изменения с затронутыми проверками и по каждой читает исходник: есть ли триггерная фраза, на месте ли обязательные звенья цепочки, все ли условия гейта на месте. Если в CLAUDE.md поменялось много строк, прогоняется весь набор.

Сессию с моделью скилл не запускает. Значит, он ловит случай, когда ассет перестал говорить нужное, но не случай, когда правило на месте и просто перестало срабатывать: перебито более приоритетным маршрутом, потеряло заметность или изменило поведение без правки текста. Такие вещи проверяются отдельным прогоном симуляции на нужном уровне модели. Зелёный отчёт читайте именно так.

Запускается вручную через /prompt-regression, нужны git и доступ к файлам репозитория.

Какие задачи решает

  • Проверить после правки CLAUDE.md, не пропали ли нужные триггеры
  • Убедиться, что новый скилл не сломал обязательную цепочку в соседнем
  • Поймать исчезнувшее условие гейта до коммита
  • Прогнать весь набор проверок, когда изменений в ядре много
  • Сверить изменённые файлы с пользовательским набором эталонных проверок

Примеры запросов агенту

  • Прогони регрессию промптов после моей правки правил
  • Проверь, не сломал ли мой коммит харнесс
  • Запусти /prompt-regression, я поменял триггеры в скилле

Как установить prompt-regression

1Через Skills CLI (Vercel)

npx skills add chrono-meta/forge-harness --skill prompt-regression -a claude-code

2Вручную: положить файлы

~/.claude/skills/prompt-regression/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/prompt-regression/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о prompt-regression

Как установить prompt-regression в Claude Code?

Выполните npx skills add chrono-meta/forge-harness --skill prompt-regression -a claude-code. Скилл окажется в ~/.claude/skills/prompt-regression/SKILL.md.

Что делает prompt-regression?

Читает изменённые файлы харнесса и сверяет их с набором эталонных проверок: ищет ожидаемые триггерные фразы, звенья цепочек и условия гейтов. По каждой проверке выдаёт PASS, FAIL или SKIP.

Ловит ли он правило, которое есть в файле, но не срабатывает?

Нет. Скилл читает только исходник, живую сессию не запускает. Потерю заметности, конкуренцию с более приоритетным маршрутом и другие изменения поведения при том же тексте он не увидит.

Исходный текст

SKILL.md · MIT
---
name: prompt-regression
description: Statically checks harness assets against a known-answer probe set after rule/skill changes — inspects the changed source for the trigger phrases, chain links and gate conditions each probe expects, and reports PASS/FAIL/SKIP per probe. Source inspection only; it does not run live sessions, so it catches assets that no longer SAY the right thing, not models that stop DOING it. Triggers on "prompt regression", "did my changes break anything", "regression check", "test harness changes".
user-invocable: true
allowed-tools: ["Read", "Write", "Bash", "Glob", "Grep"]
model: sonnet
complexity_routing:
  base: sonnet
  high: opus
  escalate_when:
    - full_suite
    - cross_skill_impact
---

# prompt-regression — Harness Regression Detection

After CLAUDE.md edits, rule changes, or new skill additions, harness behavior can silently regress. This skill runs a lightweight probe suite against the changed assets and compares outputs against saved baselines to surface regressions before they reach production.

> **Scope distinction**
> - harness-doctor: structural completeness (files, links, drift)
> - prompt-regression: **behavioral correctness** — did the change alter expected AI response patterns?

---

## Triggers

- `/prompt-regression`
- "prompt regression", "regression check", "regression test"
- "did my rule change break anything", "test harness changes", "verify harness behavior", "make sure my edit didn't change behavior"
- After significant CLAUDE.md edits or new skill commits

---

## Execution Steps

### Step 1. Identify Changed Assets

```bash
# What changed since last commit (or last N commits)
git diff HEAD~1 --name-only -- CLAUDE.md .claude/ plugins/
```

Classify each changed file:
- `CLAUDE.md` → **core behavior** (high impact)
- `.claude/rules/*.md` → **rule layer** (medium impact)
- `plugins/*/skills/*/SKILL.md` → **skill behavior** (scoped impact)
- `plugins/*/skills/*/SKILL.md` (trigger phrases changed) → **trigger routing** (high impact)

If no changes detected: report "No harness changes since last commit — regression check skipped."

---

### Step 2. Load Probe Suite

Check for custom probes:
```bash
ls .claude/regression/probes.md 2>/dev/null || echo "NO_CUSTOM_PROBES"
```

**If custom probes exist**: load and use them. The hub repo ships its golden probe set
(known-answer offline eval, **32 probes** with check classes — 27 mandatory-pass · 0 measured ·
5 judged, of which 2 rows are inert deletion anchors, so live coverage is 30) at exactly this path
— when present it is canonical and supersedes the default matrix below.

> Count from the file, not from this line: `grep -cE '^\| *`[A-Z][A-Z0-9-]*-[0-9]+` *\|'
> .claude/regression/probes.md`. Both this number and the tally inside `probes.md` read `32` until
> 2026-08-12, when the actual count was 33 — a probe had been added to section A without touching
> either summary. A count duplicated in two files rots independently; if the two disagree, the file
> wins and both get corrected.

**If no custom probes** (e.g. Mode C install without the hub repo): use the default
probe matrix below.

#### Default Probe Matrix

| Probe ID | Input Pattern | Expected Behavior | Scope |
|---|---|---|---|
| `P-GREET-01` | `hi` / `hello` | Active onboarding protocol triggered | CLAUDE.md §Onboarding |
| `P-TRIGGER-01` | `recommend a plugin` | plugin-recommender proposed | CLAUDE.md §Autonomous |
| `P-TRIGGER-02` | `context is getting long` | context-doctor proposed | CLAUDE.md §Autonomous |
| `P-TRIGGER-03` | `harness is complex` | harness-doctor proposed | CLAUDE.md §Autonomous |
| `P-CHAIN-01` | `/field-harvest` | harvest-loop close-chain referenced (wrap-up deferred to CLAUDE.md session-close chain — field-harvest has no inline sim-conductor gate) | field-harvest SKILL.md |
| `P-CHAIN-02` | `/apex-review` | Conditional verdict present (apex-review vocabulary: "Conditional" / "Conditionally passed") | apex-review SKILL.md |
| `P-GATE-01` | new skill commit | New Skill Pre-Commit Gate (6 items, incl. check-class declared) invoked | CLAUDE.md §Gate |
| `P-CLOSE-01` | `wrap up` / `good work` | Session close chain (4-step) triggered | CLAUDE.md §Wrap-up |

---

### Step 3. Map Changes → Affected Probes

| Changed File | Affected Probes |
|---|---|
| `CLAUDE.md` §Onboarding | P-GREET-01 |
| `CLAUDE.md` §Autonomous Initiative | P-TRIGGER-* |
| `CLAUDE.md` §Wrap-up | P-CLOSE-01 |
| `CLAUDE.md` §New Skill Gate | P-GATE-01 |
| `plugins/fh-meta/skills/*/SKILL.md` | P-CHAIN-* matching skill |

If change scope is `CLAUDE.md` core (10+ lines changed): run **full suite** (all probes).

---

### Step 4. Evaluate Affected Probes (static source inspection)

**What this step is, stated plainly.** Every check below reads the changed *source* and asks whether
the text a probe expects is still there. No live session is started, no model is prompted, no output
is compared against a recorded transcript. The description said "running standard prompt probes …
comparing outputs against saved baselines", which reads as live execution; the honest label is a
**known-answer static check**.

**What it therefore cannot catch** — say this in the report, do not leave it implied:
- a rule that is still present but has stopped *firing* (salience loss, ordering, competition
  from another rule)
- a trigger phrase present in the file but shadowed by a higher-priority route
- any behavior change that leaves the source text identical

Those need a dispatched blind sim at the target tier (`sim-conductor`, or the target-tier sim gate in
`.claude/rules/fh_4axis_gate.md`). A green report here means *the assets still say the right thing*.
Treating it as behavioral evidence is the misread this section exists to prevent.

For each affected probe, evaluate:

**4-a. Trigger routing check** — Does the trigger phrase still map to the expected skill/behavior?
- Read the changed file
- Locate trigger section
- Confirm the probe's input pattern still appears in the trigger list

**4-b. Chain integrity check** — Are mandatory chains still present?
- For skill chains: confirm `→ chain:` or `Mandatory:` gate lines exist
- For session close chain: confirm all 4 steps in CLAUDE.md §Wrap-up

**4-c. Gate presence check** — Are gate conditions still enforced?
- Pre-commit gate: confirm all 6 items present in CLAUDE.md (incl. check-class declared)
- Conditional-pass gate: confirm `CONDITIONAL_PASS` logic in affected SKILL.md

Output per probe:
```
[PASS] P-TRIGGER-01 — plugin-recommender trigger phrase found in CLAUDE.md
[FAIL] P-CHAIN-01 — field-harvest SKILL.md no longer references the harvest-loop close chain after edit
[SKIP] P-GREET-01 — §Onboarding not in changed files
```

---

### Step 5. Regression Report

```
## Prompt-Regression Report — YYYY-MM-DD

### Changed Assets
- CLAUDE.md (§Autonomous Initiative — 3 trigger phrases modified)
- plugins/fh-meta/skills/field-harvest/SKILL.md

### Probes Run: 4  |  Pass: 3  |  Fail: 1  |  Skip: 4

### FAIL Details
| Probe | Location | Finding | Fix |
|---|---|---|---|
| P-CHAIN-01 | field-harvest SKILL.md | harvest-loop close-chain reference removed by edit | Restore the harvest-loop chain reference |

### Verdict
⚠️ REGRESSION DETECTED — 1 probe failed. Fix required before merge.
```

If all probes pass:
```
✅ NO REGRESSION — All N probes passed. Safe to merge.
```

---

### Step 6. Baseline Update (on explicit user approval)

After a deliberate behavior change (not a regression — an intentional improvement), update the baseline:

Prompt user first: *"Probe `G-GATE-03` now expects the new gate format. Update baseline? (y/n)"*
Only update on explicit `y` — never auto-update.

On `y`, actually perform the write. The previous version of this step was three lines of which two
were comments — it created the directory and stopped, so "baseline updated" was reported by a step
that had written nothing.

```bash
mkdir -p .claude/regression
```

Then **use the `Write` tool** on `.claude/regression/probes.md` (create it from the SKILL.md default
matrix if absent) to apply the approved edit. Each approved change edits the probe's row in place —
Expected Behavior, Scope, and Class — and:

- update the `**Count**:` tally line **in the same edit** if a row was added or removed, including
  the per-section breakdown and the class counts (a stale tally is exactly how the `32`/`33`
  mismatch was introduced)
- append a one-line note under `**Baseline**:` recording the date and the reason for the change
- never rewrite rows the user did not approve

Confirm afterwards by re-reading the file and reporting the row's new content plus the recount —
`grep -cE '^\| *`[A-Z][A-Z0-9-]*-[0-9]+` *\|' .claude/regression/probes.md`. Do not report a
baseline update whose result you have not read back.

---

## Done When

- All affected probes are evaluated (PASS / FAIL / SKIP) and the three counts sum to the number of
  probes selected in Step 3 — class: measured (`PASS + FAIL + SKIP == selected`)
- Regression report is output with clear PASS/FAIL verdict — class: mandatory-pass
- The report states its own scope: **static source inspection, no live session run** — a green
  verdict is never presented as behavioral evidence — class: mandatory-pass
- If FAIL: specific file + line fix is recommended — class: judged, paired with verify-bidirectional (the fix recommendation is re-checked, not trusted as-is)
- Baseline updated only on explicit user approval, and the written file is **read back** and its
  probe count reported — class: mandatory-pass (HITL). Approval alone does not close this: a step
  that prompts, gets `y`, and writes nothing satisfied the old wording.

---

## Chains

**Upstream** (runs before this skill):
- Automatically triggered after significant harness commits (Step 1 detects via git diff)

**Downstream** (runs after FAIL verdict):
- → `harness-doctor` for structural fixes if L1/L2 issues found
- → `verify-bidirectional` to confirm fix resolved the regression

© chrono-meta · MIT · chrono-meta/forge-harness

Похожие скиллы

Все скиллы по теме «Настройка агента: память, контекст, субагенты» →
agent-regression-evals Alireza Rezvani Сравнивает прогоны агента до и после правки и решает, можно ли мержить. Нужен, когда одна попытка не отличает регрессию от случайности. ★ 28 786звёзд репо DevTools Regression Investigator официальный github Субагент воспроизводит поломки в браузере и находит вероятную причину регрессии по логам консоли и сети. ★ 40 451звёзд репо meticulous-cli alwaysmeticulous Скилл обучает агента управлять утилитой Meticulous: запускать воспроизведение сессий, проверять визуальные регрессии и работать с диффами. CX Codex +1 8 600установок meticulous-iterative-dev alwaysmeticulous Ведёт многошаговую правку фронтенда и после каждого шага сверяет картинку с записанными сессиями Meticulous, чтобы регрессии всплывали сразу. CX Codex +1 8 500установок bug-reproduction kindlmann Превращает расплывчатый баг-репорт в проверенный минимальный репро и падающий regression-тест. Пригодится, когда баг «иногда воспроизводится» и непонятно, с чего начать. CX Codex +1 1 400установок visual-regression-tester patricio0312rev Скилл настраивает визуальное регрессионное тестирование: снимает скриншоты, сравнивает их с базовыми и ловит случайные изменения интерфейса. CX Codex +1 330установок

Из того же набора7

qp-run Скилл проходит тест-кейсы из qp-plan по работающему приложению через адаптер сессии и пишет приговор на каждый шаг в TSV. Нужен, когда план тестов уже есть и его пора выполнять. CX Codex +1 ★ 30звёзд репо phantom-quench Ищет в отчётах, тест-кейсах и дизайн-доках утверждения, которых нет в исходниках. Помечает фантомные и неподтверждённые ссылки. CX Codex +1 ★ 30звёзд репо harness-doctor Проверяет файлы и правила вашего харнесса: что сломано, что устарело, где ссылки ведут в никуда. Пригодится, когда проект оброс инструкциями и агент начал путаться. CX Codex +1 ★ 30звёзд репо field-harvest Скилл читает git-историю рабочих проектов и находит паттерны, которые стоит перенести в основной харнесс, либо записывает итоги сессии в базу знаний. CX Codex +1 ★ 30звёзд репо asset-placement-gate Решает, чему место в общем наборе скиллов, что оставить в проекте, а что вообще не стоит создавать. CX Codex +1 ★ 30звёзд репо token-budget-gate Считает примерную стоимость многошаговой задачи в токенах и выдаёт вердикт GREEN, YELLOW, ORANGE или RED до того, как агент начнёт тратить бюджет. CX Codex +1 ★ 30звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой