# Claude Code と Cursor による仕様駆動開発

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

最終更新: 2026年11月6日

[Claude Code](https://code.claude.com/docs/en/overview) は、コードベースを読み、ファイルを編集し、コマンドを実行するエージェント型のコーディングツールです。[Cursor](https://cursor.com/docs/rules) は、プロジェクトルールが `.cursor/rules` に `.mdc` ファイルとして置かれるエディタです。[仕様駆動開発](https://specscore.md/ja/spec-driven-development/)（SDD、spec-driven development）は、コードより前に仕様を書き、仕様を真実の源として扱うやり方です。製品要求文書（PRD、product requirements document）は、作業をタスクに分ける前に、問題と範囲を述べる散文です。[SpecScore](https://specscore.md/) では、[機能仕様](https://specscore.md/feature-specification)は製品の1つの能力のためのファイルであり、[要件](https://specscore.md/requirement-specification)（REQ、requirement）はその機能の中の名前付きの規則であり、[受け入れ基準](https://specscore.md/acceptance-criteria-specification)（AC、acceptance criterion）は、それらの規則の1つ以上を指す任意の抽象的な条件です。[継続的インテグレーション](https://specscore.md/ja/validators/)（CI、continuous integration）は、提案された変更のたびに走る自動検査です。その検査は[コマンドラインインターフェース](https://specscore.md/ja/cli/)（CLI、command-line interface）のコマンド `specscore spec lint` で、その CLI は [specscore/specscore-cli](https://github.com/specscore/specscore-cli) にあります。このページでいう Cursor の仕様は、その機能ファイルと、エージェントにそれをリントするよう伝える Cursor のプロジェクトルールとを合わせたものです。

## 機能に入るものと、エージェントのファイルに入るもの

機能ファイルが義務を持ちます。`spec/features/` の下の機能 README は、`#### REQ:` の規則と `### AC:` の基準を載せます。記入済みの形、プラン、タスクは、[MarkdownのPRDテンプレート](https://specscore.md/ja/articles/feature-spec-template/)です。`specscore spec lint` はその形を検査します。見出し、必須の節、インデックスの行、参照です。製品の考えが良いものかどうかは決めません。[CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/articles/lint-specs-in-ci/)が、そのコマンドのより長い説明です。

エージェントのファイルは、1つのツールへの指示を持ちます。Anthropic の概要は、`CLAUDE.md` はプロジェクトのルートにある Markdown ファイルで、Claude Code がセッションの開始のたびに読む、と言います。Cursor のルールの文書は、プロジェクトルールは `.mdc` ファイルで `.cursor/rules` にあり、そのディレクトリにある素の `.md` ファイルは frontmatter がないために無視される、と言います。それらのファイルは、リポジトリの中でどう働くかをエージェントに伝えます。リンターが検査する仕様ではありません。`CLAUDE.md` にだけ、または `.cursor/rules/specscore.mdc` にだけ存在する要件は、`specscore spec lint` からは見えません。

## specscore agent setup が書くもの

[CLI の README](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) にあります。

その契約は、呼び出し元 id `claude` を `CLAUDE.md` と `.claude/skills/` に、呼び出し元 id `cursor` を `.cursor/rules/specscore.mdc` と `.cursor/skills/` に対応させます。すでに `specscore.yaml` があるプロジェクトの中でコマンドを実行します。そのファイルがないと、コマンドは終了コード 6 で終わり、メッセージは `specscore init` を示します。両方のエージェントを名指す1回の呼び出しは `specscore agent setup claude,cursor` です。機能は、カンマ区切りの一覧は別々の引数と同じだと言います。親ディレクトリは作られます。すべてのパスは、追加、変更、またはスキップとして報告されます。

生成された `CLAUDE.md` には、プロジェクトのタイトル、`--caller claude` を渡す CLI の例、インストール行 `/plugin install specscore@specscore` が含まれます。Cursor のファイルは、YAML の frontmatter を持つ Markdown です。frontmatter には `description` と `alwaysApply: true` が含まれます。Cursor のルールの表は、`alwaysApply: true` はルールがすべてのチャットに含まれるという意味だと言います。`--no-skills` は指示ファイルを書き、スキルバンドルはコピーしません。同じ契約の表は、`codex`、`copilot`、`antigravity.google`、`pi.dev`、`opencode`、`deepseek` も名指します。このページが扱うのは、タイトルにある2つのエージェントです。

### 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/ja/cli/install/)にあります。それから、機能とリンターを、エージェントと同じループに保ちます。

### プロンプトの前に機能を書く

[PRDテンプレート](https://specscore.md/ja/articles/feature-spec-template/)を使って、機能 README、機能インデックスの行、`specscore.yaml` を加えます。各義務は `## Behavior` の下に `#### REQ: {slug}` として置きます。受け入れ基準は `**Requirements:**` でそれらの id を指します。`CLAUDE.md` と `.cursor/rules/` は次の手順に残します。

### エージェントがコードを編集する前にリントする

リポジトリで `specscore spec lint` を実行します。きれいなツリーは `0 violations found` を印字して終了コード 0 です。失敗の報告 — ファイル、行、深刻度、規則、メッセージ — は [CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/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、feature、task を出すスキル

ラッパープラグインについて、CLI の README のインストール行は `/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) の下にあります。その [skills の 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/ja/ai/cli-skills/) ページは、そのラッパーです。`specscore agent setup` は、それらのスキルバンドルを `.claude/skills/` と `.cursor/skills/` へコピーします。ただし `--no-skills` を渡したときはコピーしません。

プラグインの README は、Cursor にはリモートインストールのコマンドがなく、スキルはプロジェクトの `.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/ja/ai/specstudio-skills/) は案内付きのワークフローです。リポジトリは [specscore/specstudio-skills](https://github.com/specscore/specstudio-skills) で、[MIT ライセンス](https://github.com/specscore/specstudio-skills/blob/main/LICENSE) の下にあります。その README の Claude Code のインストール行は `/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` に設定し、プルリクエストと main への push で `specscore spec lint` を実行します。ワークフローの抜粋とテキストの報告は [CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/articles/lint-specs-in-ci/) にあります。見出しを壊した機能は、ファイルを書いたのが 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/ja/spec-driven-development/tools/) は、同じページを 2026年10月30日に読んだと記録しています。ただし Spec Kit の文書のホームは 2026年9月28日と印字しています。

[OpenSpec](https://github.com/Fission-AI/OpenSpec) は `openspec validate` を、その [CLI リファレンス](https://openspec.dev/docs/cli) で文書化しています。そのコマンドは OpenSpec の変更と仕様の構造を検査します。SpecScore の `### AC:` 見出しは検査しません。

[Task Master](https://github.com/eyaltoledano/claude-task-master) の README は、`task-master parse-prd` で PRD をタスクへ解析することを述べています。その PRD のためのリンターは述べていません。

[GitHub Spec Kit](https://github.github.io/spec-kit/) は、段階が Markdown の成果物を書くエージェントのワークフローを述べています。その文書のホームは、CI で SpecScore の機能 README をリントするコマンドを述べていません。

## よくある質問

### Claude Code の仕様駆動開発とは何ですか？

Claude Code がコードを書く前に SpecScore の機能を書き、それから `CLAUDE.md` を、その機能を指す指示ファイルとして保つことです。機能は要件（REQ）と受け入れ基準（AC）を持ちます。`specscore spec lint` が機能を検査します。`specscore agent setup claude` は `CLAUDE.md` を、すでに `specscore.yaml` があるプロジェクトに書きます。

### Cursor の仕様はどこに置きますか？

製品の義務は `spec/features/` の下の機能 README に入ります。Cursor のプロジェクトルールは `.cursor/rules/specscore.mdc` に入ります。スキルのファイルは `.cursor/skills/` に入ります。`specscore agent setup cursor` はルールを書き、`--no-skills` を渡さない限り、スキルバンドルをコピーします。`.mdc` のルールがどう適用されるかの源は、Cursor 自身の文書です。

### 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` を渡すのは、置き換えが望むものであるときだけです。同じスキップの規則は、すでに存在するスキルファイルにも適用されます。

### どのスキルがリンターを実行しますか？

プラグインの skills README では、`/specscore:spec` が `specscore spec lint` を包みます。その CLI コマンドは、エージェントのセッションでも CI でも、自分で実行できます。`/specscore:feature` と `/specscore:task` は、機能とタスクのコマンドを包みます。それら自体はリントしません。

### リンターは散文を採点しますか？

いいえ。`specscore spec lint` が検査するのは構造です。[CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/articles/lint-specs-in-ci/) が報告を示します。構造の検査がきれいでも、製品のレビューではありません。

## 出典

agent-setup の挙動は、main 上の specscore-cli spec/features/cli/agent/setup/README.md にある契約で、2026年11月6日に読みました。スキル名は、main 上の ai-plugin-specscore skills/README.md からで、同じ日に読みました。SpecStudio のインストール行とバージョン 0.0.7 のステータス一覧は、main 上の specstudio-skills README.md からで、同じ日に読みました。Claude Code の説明と CLAUDE.md の文は code.claude.com/docs/en/overview からです。Cursor のプロジェクトルールのパスは cursor.com/docs/rules からです。このリポジトリの dogfood.yml は SPECSCORE_VERSION を v0.39.1 にピンしています。競合のページは下にリンクしたものです。ツールまとめは、それらを 2026年10月30日に読んだと記録しています。ただし Spec Kit の文書のホームは 2026年9月28日と印字しています。

- [Claude Code — 概要（CLAUDE.md）](https://code.claude.com/docs/en/overview)
- [Cursor — ルール（プロジェクトルールは .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 — skills の 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/ja/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/ja/ai/specstudio-skills/)
- [AIコーディング向けMarkdownのPRDテンプレート](https://specscore.md/ja/articles/feature-spec-template/)
- [CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/articles/lint-specs-in-ci/)
- [機能仕様](https://specscore.md/feature-specification)
- [受け入れ基準の仕様](https://specscore.md/acceptance-criteria-specification)
- [OpenSpec の CLI リファレンス — 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 の文書（ページの日付 2026年9月28日）](https://github.github.io/spec-kit/)
- [仕様駆動開発ツール](https://specscore.md/ja/spec-driven-development/tools/)

## 関連

- [AIコーディング向けMarkdownのPRDテンプレート](https://specscore.md/ja/articles/feature-spec-template/)
- [CIで仕様リンターを使って仕様をリントする](https://specscore.md/ja/articles/lint-specs-in-ci/)
- [AIエージェントが検証できる受け入れ基準の書き方](https://specscore.md/ja/articles/acceptance-criteria/)
- [EARS要件構文を例で説明する](https://specscore.md/ja/articles/ears-requirements/)
- [仕様駆動開発](https://specscore.md/ja/spec-driven-development/)
- [仕様駆動開発ツール](https://specscore.md/ja/spec-driven-development/tools/)
- [CLI Skills](https://specscore.md/ja/ai/cli-skills/)
- [SpecStudio Skills](https://specscore.md/ja/ai/specstudio-skills/)
- [CLI](https://specscore.md/ja/cli/)
- [機能仕様](https://specscore.md/feature-specification)
