impl-validator — скилл для Claude Code: проверка реализации
Независимо проверяет, совпадает ли сделанная работа с заявленной целью, и возвращает PASS, WARN или FAIL со списком проблем.
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a claude-codeЧто делает impl-validator
Скилл включается двумя способами. Другой скилл или агент вызывает его программно и передаёт блок check: с целью, артефактами и списком проверок. Либо вы сами набираете /impl-validator и описываете, что только что было сделано. Во втором случае цель и артефакты выводятся из контекста, а при неоднозначной цели задаётся один уточняющий вопрос — на догадках критичные проверки не идут.
Протокол разбит на шаги. Сначала цель пересказывается одним предложением: не получилось — это уже WARN. Потом каждый артефакт проходит проверку на существование, полноту и корректность. Ищутся забытые плейсхолдеры вроде <TODO> и {{variable}}, следы копипасты с чужим путём или именем инструмента, логические противоречия, пропавшие обязательные поля. Отдельно сверяются конвенции проекта: у SKILL.md должен быть YAML frontmatter с name и description, у shell-скриптов — shebang и set -e, у plist — совпадение Label с именем файла.
Итог — таблица проверок и общий вердикт: любой FAIL даёт FAIL, одни WARN дают WARN, всё PASS даёт PASS. В режиме субагента отчёт уходит вызывающему скиллу, и тот сам решает, чинить ли проблемы до показа результата. В пользовательском режиме отчёт показывается сразу, а при FAIL предлагается исправить найденное. Стиль кода, производительность и вопрос «а стоило ли это вообще делать» вне зоны проверки.
Какие задачи решает
- поймать забытый плейсхолдер вроде
<TODO>до того, как его увидит пользователь - сверить сгенерированный файл с заявленной целью и получить вердикт
- проверить, что у
SKILL.mdна месте frontmatter сnameиdescription - найти следы копипасты с чужим путём или именем инструмента
- получить второе мнение по чужой реализации перед сдачей
Примеры запросов агенту
- /impl-validator проверь, что скилл из .claude/skills соответствует своей цели
- /impl-validator я только что переписал shell-скрипт, посмотри его
- /impl-validator цель — добавить страницу в вики, артефакт — новый файл
Как установить impl-validator
1Через Skills CLI (Vercel)
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a claude-code2Вручную: положить файлы
~/.claude/skills/impl-validator/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/impl-validator/
1Через Skills CLI (Vercel)
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a codex2Вручную: положить файлы
.agents/skills/impl-validator/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a cursor2Вручную: положить файлы
.cursor/skills/impl-validator/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install Ar9av/obsidian-wiki impl-validator2Вручную: положить файлы
.github/skills/impl-validator/SKILL.md1Через Skills CLI (Vercel)
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a gemini-cli2Командой платформы
gemini skills install https://github.com/Ar9av/obsidian-wiki --path .skills/impl-validatorВручную: положить файлы
.devin/skills/impl-validator/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add Ar9av/obsidian-wiki --skill impl-validator -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов
Вопросы о impl-validator
Как установить impl-validator в Claude?
Выполните npx skills add Ar9av/obsidian-wiki --skill impl-validator -a claude-code. Скилл окажется в ~/.claude/skills/impl-validator/SKILL.md.
Что делает impl-validator?
Проверяет, соответствует ли готовая реализация заявленной цели, и возвращает отчёт с вердиктом PASS, WARN или FAIL. Каждая проверка получает результат и короткое пояснение.
Чем отличается режим субагента от пользовательского?
В режиме субагента скилл запускается программно и получает блок check: с целью, артефактами и списком проверок. В пользовательском режиме вы вызываете /impl-validator сами, а цель выводится из контекста.
Исходный текст
SKILL.md · MIT
---
name: impl-validator
description: >
Independently check whether an implementation matches its stated goal and return PASS/WARN/FAIL with actionable issues. Use for second-opinion validation of an implementation or generated output.
---
# Implementation Validator — Quality Subagent
You are a critical reviewer. Another skill or agent has just done work and wants you to check it. Your job is to verify that what was produced actually matches what was intended — not to be encouraging, but to catch real problems before the user sees them.
This skill runs in two modes:
1. **Subagent mode** — spawned programmatically by another skill passing a structured `check:` block. Read the block, run the checks, return structured output.
2. **User mode** — the user invokes `/impl-validator` directly, usually with a description of what was just done.
## Input Format (Subagent Mode)
When spawned by another skill, you receive a block like:
```
impl-validator check:
goal: "<what the implementation was supposed to accomplish>"
artifacts: [<list of files written, commands run, or text output produced>]
checks:
- <specific thing to verify>
- <specific thing to verify>
...
```
Parse this block and treat each field as your mandate.
## Input Format (User Mode)
The user describes what was just done. Infer the goal and artifacts from context. Ask one clarifying question if the goal is ambiguous — do not proceed on a guess for critical checks.
## Validation Protocol
### Step 1: Understand the Goal
Restate the goal in one sentence. If you can't, the goal is underspecified — flag this as a WARN.
### Step 2: Check Each Artifact
For each artifact (file, output, config):
1. **Existence check** — does the file/output actually exist? Read it.
2. **Completeness check** — does it contain all required sections/fields the goal implies?
3. **Correctness check** — does the content logically match the stated goal? Look for:
- Placeholder text left in place (`<TODO>`, `{{variable}}`, `INSERT HERE`)
- Copy-paste errors (wrong tool name, wrong path, stale dates)
- Logical contradictions (e.g. a diff that claims page X is "only in codex" but also lists it under claude)
- Missing required fields (e.g. a SKILL.md missing `name:` or `description:` frontmatter)
- Off-by-one or empty-set edge cases (e.g. page count = 0 when vault is known non-empty)
4. **Convention check** — does it follow the project's established patterns?
- Skills: has YAML frontmatter with `name` and `description`; instructions are in imperative voice; steps are numbered; no placeholder text
- Wiki pages: has all required frontmatter fields (`title`, `category`, `tags`, `sources`, `created`, `updated`)
- Shell scripts: have a shebang line; are `chmod +x`-able; use `set -e`
- Plist files: valid XML; `Label` matches filename; `ProgramArguments` references a real path
### Step 3: Run the Provided Checks
For each check in the `checks:` list, evaluate it explicitly. Don't skip. Answer each with:
- **PASS** — verified true
- **WARN** — probably fine but worth noting
- **FAIL** — definitively wrong or missing
### Step 4: Produce Verdict
```
## impl-validator Report
**Goal:** <restated goal>
### Checks
| Check | Result | Note |
|-------|--------|------|
| <check 1> | PASS/WARN/FAIL | <one-line explanation> |
| <check 2> | PASS/WARN/FAIL | <one-line explanation> |
...
### Overall: PASS / WARN / FAIL
**Issues to fix (FAIL):**
- <specific issue with file path and line if applicable>
**Worth noting (WARN):**
- <non-blocking observation>
```
**Overall verdict rules:**
- Any FAIL → overall FAIL
- No FAILs but any WARNs → overall WARN
- All PASS → overall PASS
### Step 5: Return to Caller
In subagent mode: return the full report as your response. The calling skill reads it and decides whether to fix issues before presenting output to the user.
In user mode: present the report directly. If overall FAIL, offer to fix the issues.
## What NOT to check
- Style preferences (Oxford comma, variable naming) unless they break a convention
- Performance or efficiency — out of scope unless the goal mentions it
- Whether the goal itself is a good idea — check implementation against goal, not goal against your opinion
- Hypothetical future problems — only flag actual issues in the current artifact
## Severity Guide
| Severity | Example |
|---|---|
| FAIL | Required frontmatter field missing; file doesn't exist; check is definitively false |
| WARN | Hardcoded path that might break on other machines; page count suspiciously low |
| PASS | Check is verified true |
© Ar9av · MIT · Ar9av/obsidian-wiki