Skip to main content
Glama
README.md
# mcp-spec-comments

**MCP server for spec-driven development with comment-based implementation**

シンプルなコメントベースの設計駆動開発を支援するMCPサーバーです。AIとファイルの間でテンプレートやルールを橋渡しし、設計書の作成からコメント配置、実装までをサポートします。

## 特徴

- 🎯 **シンプル設計**: MCPサーバーはファイルの読み書きに徹し、複雑な処理はAIに委譲
- 📝 **コメント駆動**: `@spec-impl` マーカーで実装箇所と手順を明確化
- 🔄 **ワークフロー管理**: 設計書作成 → コメント配置 → 実装 → 進捗確認の流れをサポート
- ⚙️ **カスタマイズ可能**: テンプレートとルールをプロジェクトに合わせてカスタマイズ

## ステータス

⚠️ **現在はローカル利用のみ対応**

このプロジェクトは現在、npm パッケージとしての公開は行っていません。
ローカル環境または社内 Git リポジトリでの利用を想定しています。

## インストール

### ローカル利用の場合

1. リポジトリをクローン:
```bash
git clone <repository-url> ~/mcp-spec-comments
cd ~/mcp-spec-comments
```

2. 依存関係をインストール:
```bash
npm install
```

3. ビルド:
```bash
npm run build
```

### 社内共有の場合

詳細は [社内利用セットアップガイド](./docs/INTERNAL_SETUP.md) を参照してください。

## セットアップ

### 1. spec-comments.config.yml を作成
プロジェクト固有の設定を反映したい場合は作成してください。もし作成しなかった場合、**デフォルトの設定**が反映されます。  
プロジェクトルートに `spec-comments.config.yml` を作成します:

```yaml
# テンプレート設定
templates:
  directory: "./templates"  # カスタムテンプレートの場所
  use_defaults: true        # デフォルトテンプレートを使用

# ルールファイル(任意)
rules:
  design_rules: "./rules/design-rules.md"
  comment_rules: "./rules/comment-rules.md"
  implementation_rules: "./rules/implementation-rules.md"

# 出力先のデフォルト設定
output:
  base_directory: "./.spec-comments"
  requirements_filename: "requirements.md"
  design_filename: "design.md"
  implementation_log_filename: "implementation.log"

# プロジェクト設定
project:
  root: "."
  source: "./src"
```

### 2. Claude に設定

#### 方法A: Claude CLI から登録(推奨)

```bash
claude mcp add spec-comments -- node /path/to/mcp-spec-comments/dist/index.js
```

**注意**: `/path/to/mcp-spec-comments` は実際のインストールパスに置き換えてください。

#### 方法B: 手動で設定ファイルを編集

`claude_desktop_config.json` を編集:

**macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`

```json
{
  "mcpServers": {
    "spec-comments": {
      "command": "node",
      "args": [
        "/path/to/mcp-spec-comments/dist/index.js"
      ],
      "cwd": "/path/to/mcp-spec-comments"
    }
  }
}
```

**注意**: `/path/to/mcp-spec-comments` は実際のインストールパスに置き換えてください。

### 3. Claude を再起動

設定を反映させるため、Claude を再起動してください。

## 使い方

### ワークフロー

このMCPサーバーは、**フェーズごとのユーザー確認**を重視した段階的なワークフローを採用しています。

```
フェーズ1: 要件定義書作成
   pass_to_ai_for_requirements でユーザー要件から要件定義書を生成
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ2: 詳細設計書作成
   pass_to_ai_for_design で要件定義書から設計書を生成
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ3: コメント配置
   pass_to_ai_for_comments で設計書からコメントを配置
   ↓
   ✅ ユーザー確認・承認
   ↓
フェーズ4: 実装処理
   pass_to_ai_for_implementation でコメントに従って実装
   ↓
   ✅ 完了
```

**重要**: 各フェーズ完了後、必ずユーザーの承認を得てから次のフェーズに進みます。

### ツール一覧

#### 1. `pass_to_ai_for_requirements`

ユーザー要件をAIに渡して要件定義書を作成(ワークフローの最初のステップ)。

**パラメータ**:
- `user_input` (必須): ユーザーの要件や作りたいものの説明
- `feature_name` (必須): 機能名(例: `user-authentication`, `payment-system`)
- `output_path` (任意): 出力先のファイルパス(デフォルト: `.spec-comments/{feature_name}/requirements.md`)

**例**:
```
ユーザー入力: ユーザー認証機能を持つWebアプリケーション
機能名: user-authentication
出力先: .spec-comments/user-authentication/requirements.md (自動生成)
```

#### 2. `pass_to_ai_for_design`

要件定義書を元にAIに設計書を作成させる(ワークフローの2番目のステップ)。

**パラメータ**:
- `requirements_path` (必須): 要件定義書のファイルパス
- `feature_name` (必須): 機能名(要件定義書作成時と同じ名前を指定)
- `output_path` (任意): 出力先のファイルパス(デフォルト: `.spec-comments/{feature_name}/design.md`)

**例**:
```
要件定義書: .spec-comments/user-authentication/requirements.md
機能名: user-authentication
出力先: .spec-comments/user-authentication/design.md (自動生成)
```

#### 3. `pass_to_ai_for_comments`

設計書を元にAIにコメント(`@spec-impl`マーカー)を配置させる(ワークフローの3番目のステップ)。

**パラメータ**:
- `design_path` (必須): 設計書のファイルパス
- `target_files` (任意): コメントを配置する対象ファイルのパス配列

**例**:
```
設計書: docs/design.md
対象ファイル: ["src/auth.ts", "src/user.ts"]
```

#### 4. `pass_to_ai_for_implementation`

コメント付きファイルをAIに渡して実装させる(ワークフローの最後のステップ)。

**パラメータ**:
- `target_files` (必須): 実装対象のファイルパス配列
- `implementation_order` (任意): 実装順序

**例**:
```
対象ファイル: ["src/auth.ts"]
```

## コメントマーカー形式

```typescript
// @spec-impl [ID] [優先度] [状態]
// [実装内容の説明]
// [実装手順を箇条書きで記述]
// @spec-end
```

**例**:
```typescript
// @spec-impl AUTH-001 HIGH TODO
// ユーザー認証処理を実装
// 1. リクエストからAuthorizationヘッダーを取得
// 2. トークンの検証(JWTライブラリ使用)
// 3. トークンが無効な場合は401エラーを返す
// 4. 有効な場合はユーザー情報をデコードして返却
// @spec-end
```

実装後:
```typescript
// @spec-impl AUTH-001 HIGH DONE
// ユーザー認証処理を実装
export function authenticateUser(token: string): User | null {
  // 実装されたコード
}
// @spec-end
```

## デフォルトテンプレート

パッケージには以下のデフォルトテンプレートが含まれています:

### `requirements.md` - 要件定義書テンプレート
包括的な要件定義書テンプレートで、小規模から大規模プロジェクトまで対応可能です。

**主な特徴**:
- ユーザーストーリー形式(As a/I want/so that)
- WHEN/THEN形式の受け入れ基準
- 優先度・依存関係の管理
- 詳細な非機能要件(コードアーキテクチャ、パフォーマンス、セキュリティ、信頼性、スケーラビリティ、ユーザビリティ、保守性)
- リスク管理と成功基準
- スケジュールとマイルストーン
- 承認フローと改訂履歴

**含まれるセクション**:
- プロジェクト概要とビジョンとの整合性
- ステークホルダー情報
- 機能要件(優先度・依存関係付き)
- 非機能要件(詳細)
- 技術制約とスコープ
- 前提条件と依存関係
- 用語集
- リスクと対策
- 成功基準
- スケジュールとマイルストーン
- 承認フローと改訂履歴

### その他のテンプレート

- `design.md`: 詳細設計書テンプレート
- `comment-rules.md`: コメント記述ルール
- `implementation-rules.md`: 実装ルール

これらは `spec-comments.config.yml` で `use_defaults: true` にすることで使用できます。

## ディレクトリ構造

このMCPサーバーは、機能ごとにドキュメントを整理する構造を採用しています:

```
your-project/
├── .spec-comments/              # 機能別ドキュメントの基底ディレクトリ
│   ├── user-authentication/     # 機能1: ユーザー認証
│   │   ├── requirements.md      # 要件定義書
│   │   └── design.md            # 詳細設計書
│   ├── payment-system/          # 機能2: 決済システム
│   │   ├── requirements.md
│   │   └── design.md
│   └── dashboard-ui/            # 機能3: ダッシュボードUI
│       ├── requirements.md
│       └── design.md
├── src/                         # 実装コード
├── templates/                   # カスタムテンプレート(任意)
│   ├── requirements.md
│   └── design.md
└── spec-comments.config.yml     # 設定ファイル
```

**ポイント**:
- 機能名(`feature_name`)は各ツール実行時に指定
- `.spec-comments/{feature_name}/` 配下にドキュメントが自動配置される
- 出力先をカスタマイズしたい場合は `output_path` パラメータで上書き可能

## カスタマイズ

### テンプレートのカスタマイズ

プロジェクトの `templates/` ディレクトリにカスタムテンプレートを配置できます:

```
your-project/
├── templates/
│   ├── requirements.md      # カスタム要件定義テンプレート
│   ├── design.md            # カスタム設計書テンプレート
│   └── my-custom.md         # 独自テンプレート
└── spec-comments.config.yml
```

### 出力先のカスタマイズ

`spec-comments.config.yml` で基底ディレクトリやファイル名を変更できます:

```yaml
output:
  base_directory: "./docs/features"  # 基底ディレクトリを変更
  requirements_filename: "spec.md"   # ファイル名を変更
  design_filename: "architecture.md"
```

## 将来的な機能

### 実装状況管理機能(未実装)

現在、`@spec-impl` マーカーの状態管理は手動で行う必要がありますが、将来的には以下の機能を追加予定です:

- **実装状況の自動スキャン**: プロジェクト内の `@spec-impl` マーカーをスキャンして一覧表示
- **進捗レポート**: TODO/IN_PROGRESS/DONE の状態別に集計
- **実装順序の管理**: `[実装順序:数値]` に基づいて次に実装すべき項目を提案
- **優先度フィルタリング**: 優先度別の絞り込み表示

この機能が実装されるまでは、エディタの検索機能(`@spec-impl[状態:TODO]` など)で手動管理してください。

## ライセンス

MIT

## 作者

yerabu

TDQS

A4.2/5.0

Scored across 5 tools

Disambiguation5/5

Each tool represents a distinct stage in a clearly defined workflow: requirements, design, comment generation, verification, and implementation. The sequential nature and specific output paths eliminate ambiguity between tools.

Naming Consistency4/5

Four of the five tools follow the consistent 'pass_to_ai_for_' prefix pattern, while 'verify_spec_comments' deviates slightly. Overall, the naming is snake_case and predictable, with only minor inconsistency.

Tool Count5/5

Five tools is well-scoped for a focused workflow, providing all necessary steps without redundancy. The count is within the ideal range for a single-purpose server.

Completeness5/5

The tool set covers the full lifecycle from requirements definition to implementation, including a verification step to ensure comments are correctly placed. No obvious gaps in the workflow.

Maintenance

ActivityInactive
ResponsivenessNo issues