mcpField
O
openspec-sync-specs

openspec-sync-specs

github.com/pbh-btn開発6.4k153 回インストール1 週間前に更新
リポジトリ

openspec-sync-specs について

openspec-sync-specs は、OpenSpec の変更差分をメイン仕様へ反映するエージェントスキルです。差分に含まれない内容を保ちながら、要件を種類に応じて更新します。

主な機能

  1. 01差分仕様をメイン仕様に統合
  2. 02要件の追加・変更・削除・改名
  3. 03無関係なシナリオや内容の保持
  4. 04変更の選択をユーザーに依頼
  5. 05同期した仕様変更の報告

活用シーン

  1. 01変更内容をメイン仕様に反映
  2. 02既存シナリオを保ってシナリオを追加
  3. 03差分ファイルを確認して仕様を更新

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/pbh-btn/peerbanhelper --skill openspec-sync-specs

インストール後、Claude Code で/openspec-sync-specsを入力して読み込まれたか確認します。

詳細

変更による差分仕様をメイン仕様に同期します。

これはエージェント主導の操作です。差分仕様を読み、変更を適用するためにメイン仕様を直接編集します。 これにより、インテリジェントなマージが可能になります(例:要件全体をコピーせずにシナリオを追加できます)。

入力:変更名を指定できます。省略した場合は、会話の文脈から推測できるか確認します。不明瞭または 曖昧な場合は、利用可能な変更を必ずユーザーに尋ねてください。

手順

  1. 変更名が指定されていない場合、選択を求める

    openspec list --json を実行して利用可能な変更を取得します。AskUserQuestion tool を使ってユーザーに選択してもらいます。

    差分仕様がある変更(specs/ ディレクトリ内)を表示します。

    重要:変更を推測したり、自動選択したりしないでください。必ずユーザーに選んでもらいます。

  2. 差分仕様を見つける

    openspec/changes/<name>/specs/*/spec.md にある差分仕様ファイルを探します。

    各差分仕様ファイルには、次のようなセクションが含まれています。

    • ## ADDED Requirements - 追加する新しい要件
    • ## MODIFIED Requirements - 変更する既存の要件
    • ## REMOVED Requirements - 削除する要件
    • ## RENAMED Requirements - 名前を変更する要件(FROM:/TO: 形式)

    差分仕様が見つからない場合は、ユーザーに伝えて停止します。

  3. 各差分仕様について、変更をメイン仕様に適用する

    openspec/changes/<name>/specs/<capability>/spec.md に差分仕様がある各機能について、次の手順を実行します。

    a. 差分仕様を読む:意図された変更を把握します

    b. メイン仕様を読む:openspec/specs/<capability>/spec.md を読みます(まだ存在しない場合があります)

    c. 変更をインテリジェントに適用する:

    ADDED Requirements:

    • メイン仕様に要件が存在しない場合 → 追加する
    • 要件がすでに存在する場合 → 内容が一致するように更新する(暗黙的な MODIFIED として扱う)

    MODIFIED Requirements:

    • メイン仕様内で要件を見つける
    • 変更を適用する。次のような変更が可能です。
      • 新しいシナリオを追加する(既存のシナリオをコピーする必要はありません)
      • 既存のシナリオを変更する
      • 要件の説明を変更する
    • 差分で言及されていないシナリオや内容は保持します

    REMOVED Requirements:

    • 要件ブロック全体をメイン仕様から削除する

    RENAMED Requirements:

    • FROM の要件を見つけ、TO に名前を変更する

    d. 機能がまだ存在しない場合は、新しいメイン仕様を作成する:

    • openspec/specs/<capability>/spec.md を作成する
    • Purpose セクションを追加する(簡潔な内容で構いません。「TBD」と記載しても構いません)
    • ADDED 要件を含む Requirements セクションを追加する
  4. 概要を表示する

    すべての変更を適用した後、次の内容を要約します。

    • 更新した機能
    • 実施した変更(要件の追加/変更/削除/名前変更)

差分仕様の形式に関するリファレンス

## ADDED Requirements

### Requirement: New Feature
The system SHALL do something new.

#### Scenario: Basic case
- **WHEN** user does X
- **THEN** system does Y

## MODIFIED Requirements

### Requirement: Existing Feature
#### Scenario: New scenario to add
- **WHEN** user does A
- **THEN** system does B

## REMOVED Requirements

### Requirement: Deprecated Feature

## RENAMED Requirements

- FROM: `### Requirement: Old Name`
- TO: `### Requirement: New Name`

重要な原則:インテリジェントなマージ

プログラムによるマージとは異なり、部分的な更新を適用できます。

  • シナリオを追加する場合は、既存のシナリオをコピーせず、そのシナリオだけを MODIFIED の下に記載します
  • 差分が示すのは意図であり、全体の置き換えではありません
  • 変更を適切にマージするために、自分で判断してください

成功時の出力

## Specs Synced: <change-name>

Updated main specs:

**<capability-1>**:
- Added requirement: "New Feature"
- Modified requirement: "Existing Feature" (added 1 scenario)

**<capability-2>**:
- Created new spec file
- Added requirement: "Another Feature"

Main specs are now updated. The change remains active - archive when implementation is complete.

ガードレール

  • 変更を加える前に、差分仕様とメイン仕様の両方を読みます
  • 差分で言及されていない既存の内容は保持します
  • 不明点があれば、明確化を求めます
  • 作業を進めながら、変更内容を表示します
  • 操作は冪等である必要があります。つまり、2 回実行しても同じ結果になるようにします

コメント