Communitygithub.com

AmanVarshney01/tcut

デルタスペックの変更をメインスペックに同期します。ユーザーが変更をアーカイブせずに、デルタスペックからの変更でメインスペックを更新したい場合に使用します。

tcut とは?

このスキルは、OpenSpecリポジトリにおいて、デルタスペック(変更仕様)で定義された変更を、メインスペック(本仕様)にインテリジェントにマージするエージェント駆動型の操作を提供します。ユーザーが変更名を指定するか、会話の文脈から推測し、利用可能な変更をリストアップして選択できます。スキルは、変更ステータスの確認、デルタスペックの解析、要件の追加・変更・削除・名前変更といった操作をメインスペックに適用し、最後に変更内容のサマリーを生成します。プログラムによる単純なマージとは異なり、部分更新やインテリジェントなマージが可能で、例えばシナリオを追加する場合、既存のシナリオをすべてコピーする必要はなく、追加したいシナリオのみを記述すればよいため、効率的で柔軟な仕様管理を実現します。対応プラットフォームはOpenSpec CLIであり、ストア機能を使用して複数のリポジトリを管理することもできます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/AmanVarshney01/tcut/tree/HEAD/.claude/skills/openspec-sync-specs

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

デルタスペックの変更をメインスペックに同期します。

これはエージェント駆動型の操作です。デルタスペックを読み取り、変更を適用するためにメインスペックを直接編集します。これにより、インテリジェントなマージ(例:要件全体をコピーせずにシナリオを追加するなど)が可能になります。

ストアの選択: ユーザーがストア(このマシンに登録された独立したOpenSpecリポジトリ)を指定した場合、または対象の作業がストア内にある場合は、openspec store list --json を実行して登録済みのストアIDを確認し、スペックや変更を読み書きするコマンド(new change、status、instructions、list、show、validate、archive、doctor、context)には --store <id> を渡してください。その他のコマンドはこのフラグを受け付けません。コマンドが出力するヒントにはすでにフラグが含まれています。フォローアップでもそのまま使用してください。ストアが指定されていない場合、コマンドは最寄りのローカル openspec/ ルートに対して動作します。

入力: オプションで変更名を指定します。省略された場合は、会話の文脈から推測できるか確認します。曖昧または不明確な場合は、利用可能な変更を確認するようにユーザーに促す必要があります。

手順

  1. 変更名が指定されていない場合、選択を促す

    openspec list --json を実行して利用可能な変更を取得します。AskUserQuestionツールを使用してユーザーに選択させます。

    デルタスペック(specs/ ディレクトリ内)がある変更を表示します。

    重要: 変更を推測したり自動選択したりしないでください。常にユーザーに選択させてください。

  2. 変更コンテキストを解決する

    実行:

    openspec status --change "<name>" --json
    
  3. デルタスペックを検索する

    status JSON の artifactPaths.specs.existingOutputPaths をデルタスペックファイルのリストとして使用します。

    各デルタスペックファイルには、次のようなセクションが含まれています:

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

    デルタスペックが見つからない場合は、ユーザーに通知して停止します。

  4. 各デルタスペックについて、メインスペックに変更を適用する

    CLI から返されたリポジトリローカルの機能デルタスペックパスごとに:

    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 セクションを追加します
  5. サマリーを表示する

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

    • どの機能が更新されたか
    • どのような変更が行われたか(要件の追加/変更/削除/名前変更)

デルタスペック形式リファレンス

## ADDED Requirements

### Requirement: 新機能
システムは何か新しいことを行うものとする(SHALL)。

#### Scenario: 基本ケース
- **WHEN** ユーザーがXを行う
- **THEN** システムはYを行う

## MODIFIED Requirements

### Requirement: 既存機能
#### Scenario: 追加する新しいシナリオ
- **WHEN** ユーザーがAを行う
- **THEN** システムはBを行う

## REMOVED Requirements

### Requirement: 非推奨機能

## RENAMED Requirements

- FROM: `### Requirement: 旧名`
- TO: `### Requirement: 新名`

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

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

  • シナリオを追加するには、そのシナリオのみを 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回実行しても同じ結果になる必要があります

Individual skills in this repo

This repo contains 7 individual skills — each has its own dedicated page.

AmanVarshney01/tcut

Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.

AmanVarshney01/tcut

Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.

AmanVarshney01/tcut

Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.

AmanVarshney01/tcut

Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.

AmanVarshney01/tcut

Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.

AmanVarshney01/tcut

Combine tcut terminal recordings with Remotion to produce polished, motion-designed launch/promo videos (title cards, animated captions, layered terminal footage). Use when the user wants a product video, launch video, or social video that features terminal/CLI footage.

AmanVarshney01/tcut

Record reproducible terminal videos (MP4/GIF/SVG/HTML) from TypeScript scripts or live sessions with the tcut CLI. Use when the user wants a terminal demo, CLI screencast, TUI recording, or animated terminal GIF for a README, website, or social post.

関連スキル