# Разработка по спецификациям с Claude Code и Cursor

Canonical: https://specscore.md/ru/articles/claude-code-specs/

Последнее обновление: 6 ноября 2026

[Claude Code](https://code.claude.com/docs/en/overview) — агентный инструмент программирования, который читает кодовую базу, правит файлы и запускает команды. [Cursor](https://cursor.com/docs/rules) — редактор, чьи правила проекта лежат в `.cursor/rules` как файлы `.mdc`. [Разработка по спецификациям](https://specscore.md/ru/spec-driven-development/) (SDD, spec-driven development) — практика писать спецификацию до кода и считать спецификацию источником правды. Документ требований к продукту (PRD, product requirements document) — проза, которая называет проблему и рамки до того, как работу делят на задачи. В [SpecScore](https://specscore.md/) [спецификация функции](https://specscore.md/feature-specification) — файл одной возможности продукта, [требование](https://specscore.md/requirement-specification) (REQ) — именованное правило внутри этой функции, а [критерий приёмки](https://specscore.md/acceptance-criteria-specification) (AC, acceptance criterion) — необязательное абстрактное условие, которое указывает на одно или несколько таких правил. [Непрерывная интеграция](https://specscore.md/ru/validators/) (CI, continuous integration) — автоматическая проверка каждого предлагаемого изменения. Проверка — команда [интерфейса командной строки](https://specscore.md/ru/cli/) (CLI, command-line interface), `specscore spec lint`, из CLI в [specscore/specscore-cli](https://github.com/specscore/specscore-cli). Спецификации Cursor на этой странице — этот файл функции вместе с правилом проекта Cursor, которое велит агенту линтовать его.

## Что лежит в функции, а что — в файле агента

Файл функции хранит обязательство. README функции под `spec/features/` несёт правила `#### REQ:` и критерии `### AC:`. Заполненная форма, план и задача — это [шаблон PRD в Markdown](https://specscore.md/ru/articles/feature-spec-template/). `specscore spec lint` проверяет эту форму: заголовки, обязательные разделы, строки индекса и ссылки. Он не решает, хороша ли идея продукта. [Линтовать спецификации в CI](https://specscore.md/ru/articles/lint-specs-in-ci/) — более подробный рассказ об этой команде.

Файл агента хранит инструкции для одного инструмента. Обзор Anthropic говорит, что `CLAUDE.md` — файл Markdown в корне проекта, который Claude Code читает в начале каждой сессии. Документация правил Cursor говорит, что правило проекта — файл `.mdc` в `.cursor/rules`, а обычный файл `.md` в этом каталоге игнорируется, потому что у него нет frontmatter. Эти файлы говорят агенту, как работать в репозитории. Они не являются спецификацией, которую проверяет линтер. Требование, которое есть только в `CLAUDE.md` или только в `.cursor/rules/specscore.mdc`, невидимо для `specscore spec lint`.

## Что пишет specscore agent setup

[README CLI](https://github.com/specscore/specscore-cli/blob/main/README.md) говорит, что `specscore agent setup` пишет файл инструкций каждого агента и, если у этого агента есть каталог навыков, копирует в него пакеты навыков SpecScore. Команда пропускает существующий файл, если не передать `--force`. Контракт — [функция agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md) в [specscore/specscore-cli](https://github.com/specscore/specscore-cli).

Этот контракт сопоставляет идентификатор caller `claude` с `CLAUDE.md` и `.claude/skills/`, а идентификатор caller `cursor` — с `.cursor/rules/specscore.mdc` и `.cursor/skills/`. Запускайте команду внутри проекта, в котором уже есть `specscore.yaml`. Если этого файла нет, команда завершается с кодом 6, и сообщение предлагает `specscore init`. Один вызов, который называет обоих агентов, — `specscore agent setup claude,cursor`. Функция говорит, что список через запятую — то же самое, что отдельные аргументы. Родительские каталоги создаются. Каждый путь сообщается как добавленный, изменённый или пропущенный.

Сгенерированный `CLAUDE.md` включает название проекта, примеры CLI, которые передают `--caller claude`, и строку установки `/plugin install specscore@specscore`. Файл Cursor — Markdown с YAML frontmatter. Frontmatter содержит `description` и `alwaysApply: true`. Таблица правил Cursor говорит, что `alwaysApply: true` означает, что правило включается в каждый чат. `--no-skills` пишет файлы инструкций и не копирует пакеты навыков. Та же таблица контракта называет также `codex`, `copilot`, `antigravity.google`, `pi.dev`, `opencode` и `deepseek`. Эта страница следует двум агентам из заголовка.

### Пишет файлы Claude Code и Cursor. Запускайте команду из проекта, в котором есть specscore.yaml.

```text
specscore agent setup claude,cursor
```

### Пути, которые контракт назначает claude и cursor. Каталоги навыков не создаются, если передать --no-skills. Существующий файл остаётся как есть, если не передать --force.

```text
CLAUDE.md
.claude/skills/
.cursor/rules/specscore.mdc
.cursor/skills/
```

Файл инструкций указывает на дерево функций. Он его не заменяет. После настройки Claude Code по-прежнему должен читать `spec/features/`, а правило Cursor по-прежнему должно указывать на то же дерево. [Спецификация функции](https://specscore.md/feature-specification) остаётся документом, который `specscore spec lint` принимает или отклоняет.

## Запускайте specscore spec lint в цикле

Сначала установите CLI. Способы установки — на [странице установки](https://specscore.md/ru/cli/install/). Затем держите функцию и линтер в том же цикле, что и агента.

### Напишите функцию до промпта

Добавьте README функции, строку индекса функций и `specscore.yaml` по [шаблону PRD](https://specscore.md/ru/articles/feature-spec-template/). Поместите каждое обязательство под `## Behavior` как `#### REQ: {slug}`. Укажите критерии приёмки на эти id через `**Requirements:**`. Оставьте `CLAUDE.md` и `.cursor/rules/` на следующий шаг.

### Линтуйте, прежде чем агент будет править код

Запустите `specscore spec lint` в репозитории. Чистое дерево печатает `0 violations found` и завершается с кодом 0. Отчёт о сбое — файл, строка, серьёзность, правило, сообщение — в [Линтовать спецификации в CI](https://specscore.md/ru/articles/lint-specs-in-ci/). Правьте функцию, пока эта команда не станет чистой. Агент, который начинает с функции, которую линтер уже отклоняет, скопирует сломанную форму.

### Направьте Claude Code и Cursor на дерево

Запустите `specscore agent setup claude,cursor`. Прочитайте добавленные `CLAUDE.md` и `.cursor/rules/specscore.mdc` и убедитесь, что они называют дерево спецификаций и CLI, включая `--caller`. Если любой из этих файлов уже существовал, команда его пропускает. Передавайте `--force` только тогда, когда вы хотите заменить этот файл.

### Попросите задачу, которая называет критерий

В сессии агента назовите функцию и критерий приёмки, которому должна удовлетворять работа. Задача плана делает это через `**Verifies:**` и id критерия приёмки. Попросите агента снова запустить `specscore spec lint` перед тем, как закончить, и изменить файл функции, когда меняется поведение. Файл инструкций велит агенту запустить команду. Файл функции — то, что команда проверяет.

## Навыки, которые открывают lint, функцию и задачу

Строки установки плагина-обёртки в README CLI — `/plugin marketplace add specscore/ai-marketplace` и `/plugin install specscore@specscore`. Репозиторий плагина — [specscore/ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore), под [лицензией MIT](https://github.com/specscore/ai-plugin-specscore/blob/main/LICENSE). Его [README навыков](https://github.com/specscore/ai-plugin-specscore/blob/main/skills/README.md) говорит, что пользователи вызывают `/specscore:<skill-name>`. Обёртки в поставке включают `/specscore:spec`, которая оборачивает `specscore spec lint`; `/specscore:feature`, которая оборачивает `specscore feature` (`list`, `info`, `tree`, `deps`, `refs`, `new` и `change-status`); и `/specscore:task`, которая оборачивает `specscore task`. `/specscore:change-status` покрывает смену статуса функции и идеи. Страница [CLI Skills](https://specscore.md/ru/ai/cli-skills/) на этом сайте — эта обёртка. `specscore agent setup` копирует эти пакеты навыков в `.claude/skills/` и `.cursor/skills/`, если не передать `--no-skills`.

README плагина говорит, что у Cursor нет команды remote-install и что навыки загружаются из `.cursor/skills/` в проекте или из `~/.cursor/skills/`. Ручное копирование, которое он показывает, — `git clone` репозитория [ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore/blob/main/README.md) и `cp -R` для `skills/*` в `.cursor/skills/`. `specscore agent setup cursor` — команда, которая делает это копирование за вас, из маркетплейса, который называет спецификация функции.

[SpecStudio Skills](https://specscore.md/ru/ai/specstudio-skills/) — направляемый воркфлоу. Репозиторий — [specscore/specstudio-skills](https://github.com/specscore/specstudio-skills), под [лицензией MIT](https://github.com/specscore/specstudio-skills/blob/main/LICENSE). Строка установки Claude Code в его README — `/plugin install specstudio@specscore`, и там сказано, что Claude Code устанавливает плагин `specscore` как зависимость. Раздел статуса называет версию 0.0.7 и говорит, что навыки `ideate`, `specify`, `plan`, `implement`, `verify` и `recap` достаточно активны для dogfood. Таблица инвентаря того же README подробно документирует `specstudio:ideate` и `specstudio:specify`. Эти навыки пишут артефакты SpecScore. Они не заменяют `specscore spec lint`.

## Та же команда в CI

[dogfood.yml](https://github.com/specscore/specscore/blob/main/.github/workflows/dogfood.yml) в [specscore/specscore](https://github.com/specscore/specscore) задаёт `SPECSCORE_VERSION` как `v0.39.1` и запускает `specscore spec lint` на pull requests и на push в main. Фрагмент воркфлоу и текстовый отчёт — в [Линтовать спецификации в CI](https://specscore.md/ru/articles/lint-specs-in-ci/). Функция, которая ломает заголовок, роняет этот job независимо от того, написал файл Claude Code или Cursor. Цикл агента и CI вызывают одну и ту же команду.

Лицензия формата — [CC BY 4.0](https://github.com/specscore/specscore/blob/main/LICENSE) в [specscore/specscore](https://github.com/specscore/specscore). Лицензия CLI — [Apache-2.0](https://github.com/specscore/specscore-cli/blob/main/LICENSE) в [specscore/specscore-cli](https://github.com/specscore/specscore-cli).

Другие инструменты разработки по спецификациям публикуют другие проверки. Предложения ниже используют только то, что говорят собственные страницы этих проектов. [Обзор инструментов](https://specscore.md/ru/spec-driven-development/tools/) записывает те же страницы как прочитанные 30 октября 2026, кроме домашней страницы документации Spec Kit, которая печатает 28 сентября 2026.

[OpenSpec](https://github.com/Fission-AI/OpenSpec) документирует `openspec validate` в своём [справочнике CLI](https://openspec.dev/docs/cli). Эта команда проверяет структуру изменений и спецификаций OpenSpec. Она не проверяет заголовок SpecScore `### AC:`.

README [Task Master](https://github.com/eyaltoledano/claude-task-master) описывает разбор PRD на задачи командой `task-master parse-prd`. Он не описывает линтер для этого PRD.

[GitHub Spec Kit](https://github.github.io/spec-kit/) описывает агентный воркфлоу, фазы которого пишут артефакты Markdown. Эта домашняя страница документации не описывает команду, которая линтует README функции SpecScore в CI.

## Вопросы и ответы

### Что такое разработка по спецификациям с Claude Code?

Это запись функции SpecScore до того, как Claude Code напишет код, а затем сохранение `CLAUDE.md` как файла инструкций, который указывает на эту функцию. Функция хранит требования (REQ) и критерии приёмки (AC). `specscore spec lint` проверяет функцию. `specscore agent setup claude` пишет `CLAUDE.md` в проекте, в котором уже есть `specscore.yaml`.

### Куда помещать спецификации Cursor?

Обязательство продукта идёт в README функции под `spec/features/`. Правило проекта Cursor идёт в `.cursor/rules/specscore.mdc`. Файлы навыков идут в `.cursor/skills/`. `specscore agent setup cursor` пишет правило и, если не передать `--no-skills`, копирует пакеты навыков. Собственная документация Cursor — источник того, как применяются правила `.mdc`.

### Заменяет ли CLAUDE.md спецификацию функции?

Нет. `CLAUDE.md` — то, что Claude Code читает как инструкции. README функции — то, что проверяет `specscore spec lint`. [Функция agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md) говорит, что сгенерированный файл учит агента дереву спецификаций и командам CLI. Она не говорит, что файл инструкций является спецификацией.

### Что, если CLAUDE.md или правило Cursor уже существует?

Команда пропускает существующий файл и печатает строку пропуска, которая упоминает `--force`. Существующие байты остаются. Передавайте `--force` только тогда, когда замена — это то, что вам нужно. То же правило пропуска применяется к файлу навыка, который уже есть.

### Какой навык запускает линтер?

В README навыков плагина `/specscore:spec` оборачивает `specscore spec lint`. Эту команду CLI можно также запустить самому, в сессии агента или в CI. `/specscore:feature` и `/specscore:task` оборачивают команды функции и задачи. Сами по себе они не линтуют.

### Оценивает ли линтер прозу?

Нет. `specscore spec lint` проверяет структуру. [Линтовать спецификации в CI](https://specscore.md/ru/articles/lint-specs-in-ci/) показывает отчёт. Чистая структурная проверка — не обзор продукта.

## Источники

Поведение agent-setup — контракт в specscore-cli spec/features/cli/agent/setup/README.md на main, прочитанный 6 ноября 2026. Имена навыков взяты из ai-plugin-specscore skills/README.md на main, прочитанного в тот же день. Строка установки SpecStudio и список статуса версии 0.0.7 взяты из specstudio-skills README.md на main, прочитанного в тот же день. Описание Claude Code и предложение про CLAUDE.md взяты с code.claude.com/docs/en/overview. Пути правил проекта Cursor взяты с cursor.com/docs/rules. dogfood.yml в этом репозитории закрепляет SPECSCORE_VERSION на v0.39.1. Страницы конкурентов — те, что связаны ниже; обзор инструментов записывает их как прочитанные 30 октября 2026, кроме домашней страницы документации Spec Kit, которая печатает 28 сентября 2026.

- [Claude Code — обзор (CLAUDE.md)](https://code.claude.com/docs/en/overview)
- [Cursor — Rules (правила проекта — файлы .mdc)](https://cursor.com/docs/rules)
- [specscore-cli — функция agent-setup](https://github.com/specscore/specscore-cli/blob/main/spec/features/cli/agent/setup/README.md)
- [specscore-cli — README (agent setup и установка плагина)](https://github.com/specscore/specscore-cli/blob/main/README.md)
- [specscore/specscore-cli](https://github.com/specscore/specscore-cli)
- [specscore-cli — лицензия Apache-2.0](https://github.com/specscore/specscore-cli/blob/main/LICENSE)
- [specscore/specscore](https://github.com/specscore/specscore)
- [specscore/specscore — лицензия CC BY 4.0](https://github.com/specscore/specscore/blob/main/LICENSE)
- [specscore/specscore — dogfood.yml (CLI v0.39.1)](https://github.com/specscore/specscore/blob/main/.github/workflows/dogfood.yml)
- [specscore/ai-plugin-specscore](https://github.com/specscore/ai-plugin-specscore)
- [ai-plugin-specscore — лицензия MIT](https://github.com/specscore/ai-plugin-specscore/blob/main/LICENSE)
- [ai-plugin-specscore — README навыков](https://github.com/specscore/ai-plugin-specscore/blob/main/skills/README.md)
- [ai-plugin-specscore — README (копирование для Cursor)](https://github.com/specscore/ai-plugin-specscore/blob/main/README.md)
- [specscore/specstudio-skills](https://github.com/specscore/specstudio-skills)
- [specstudio-skills — лицензия MIT](https://github.com/specscore/specstudio-skills/blob/main/LICENSE)
- [specstudio-skills — README (версия 0.0.7)](https://github.com/specscore/specstudio-skills/blob/main/README.md)
- [CLI Skills](https://specscore.md/ru/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/ru/ai/specstudio-skills/)
- [Шаблон PRD в Markdown для программирования с ИИ](https://specscore.md/ru/articles/feature-spec-template/)
- [Линтовать спецификации в CI линтером спецификаций](https://specscore.md/ru/articles/lint-specs-in-ci/)
- [Спецификация функции](https://specscore.md/feature-specification)
- [Спецификация критериев приёмки](https://specscore.md/acceptance-criteria-specification)
- [Справочник CLI OpenSpec — openspec validate](https://openspec.dev/docs/cli)
- [Fission-AI/OpenSpec](https://github.com/Fission-AI/OpenSpec)
- [eyaltoledano/claude-task-master](https://github.com/eyaltoledano/claude-task-master)
- [Документация GitHub Spec Kit (дата страницы 28 сентября 2026)](https://github.github.io/spec-kit/)
- [Инструменты разработки по спецификациям](https://specscore.md/ru/spec-driven-development/tools/)

## Связанное

- [Шаблон PRD в Markdown для программирования с ИИ](https://specscore.md/ru/articles/feature-spec-template/)
- [Линтовать спецификации в CI линтером спецификаций](https://specscore.md/ru/articles/lint-specs-in-ci/)
- [Как писать критерии приёмки, которые проверит ИИ-агент](https://specscore.md/ru/articles/acceptance-criteria/)
- [Синтаксис требований EARS с объяснением и примерами](https://specscore.md/ru/articles/ears-requirements/)
- [Разработка по спецификациям](https://specscore.md/ru/spec-driven-development/)
- [Инструменты разработки по спецификациям](https://specscore.md/ru/spec-driven-development/tools/)
- [CLI Skills](https://specscore.md/ru/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/ru/ai/specstudio-skills/)
- [CLI](https://specscore.md/ru/cli/)
- [Спецификация функции](https://specscore.md/feature-specification)
