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

Canonical: https://specscore.md/uk/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/uk/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/uk/validators/) (CI, continuous integration) — автоматична перевірка кожної запропонованої зміни. Перевірка — команда [інтерфейсу командного рядка](https://specscore.md/uk/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/uk/articles/feature-spec-template/). `specscore spec lint` перевіряє цю форму: заголовки, обов’язкові розділи, рядки індексу і посилання. Він не вирішує, чи ідея продукту добра. [Лінтувати специфікації в CI](https://specscore.md/uk/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/uk/cli/install/). Потім тримайте функцію і лінтер у тому самому циклі, що й агента.

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

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

### Лінтуйте, перш ніж агент редагуватиме код

Запустіть `specscore spec lint` у репозиторії. Чисте дерево друкує `0 violations found` і завершується з кодом 0. Звіт про збій — файл, рядок, серйозність, правило, повідомлення — у [Лінтувати специфікації в CI](https://specscore.md/uk/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/uk/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/uk/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/uk/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/uk/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/uk/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/uk/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/uk/ai/specstudio-skills/)
- [Шаблон PRD у Markdown для програмування зі ШІ](https://specscore.md/uk/articles/feature-spec-template/)
- [Лінтувати специфікації в CI лінтером специфікацій](https://specscore.md/uk/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/uk/spec-driven-development/tools/)

## Пов’язане

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