本文へ移動
Signalcraft
English

← Signalcraft一覧へ戻る

OpenSpecのOpsXワークフローを調べる

OpenSpecのOpsXワークフローを調べる

AIへ実装を依頼すると、会話の勢いでコードを書き始めやすいです。

OpenSpecを調べた目的は、実装前の判断をファイルへ外部化し、後から仕様と実装を照合できるようにすることです。

現行資料では、OpsXの標準表記として/opsx:*を使います。

ただし、実際の呼び出し名は利用するAIツールの統合によって変わります。

コマンドやSkillは、導入時に生成されたものと、インストール済みバージョンのドキュメントを正とします。

成果物の流れを先に確認する

段階 標準表記 主な成果物
Explore /opsx:explore 問題、制約、選択肢の整理
Propose /opsx:propose <change> proposal、specs、design、tasks
Apply /opsx:apply タスクに対応するコード変更
Archive /opsx:archive 完了した変更と仕様の統合

現行のOpenSpec Getting StartedとCommandsを読むと、実装は成果物を作る工程の一部だと分かります。

Exploreは、Exploreの説明によると、考えを整理するための対話であり、必ずしもコードや成果物を作りません。

変更の曖昧さが小さければ省略できます。

1. exploreで問題の境界を調べる

探索では、解決策を先に決めません。

次の問いへ答えます。

  • 現在の問題は何か
  • 誰に影響するか
  • 変えてはいけない挙動は何か
  • 関係する既存実装はどこか
  • 選択肢の利点と欠点は何か
  • 未確認の前提は何か

ここで残した未確認事項が、次の調査と受け入れ条件の入力になります。

調査で問題設定が変わったら、最初の結論に合わせて実装を進めず、前提を更新します。

2. proposeでレビュー可能な差分を作る

/opsx:proposeでは、提案、仕様差分、設計、実装タスクをまとめます。

レビュー前に確認する項目は次です。

  1. 目的と非目的が分かれているか
  2. 正常系だけでなく失敗時の挙動が書かれているか
  3. 互換性と移行条件が定義されているか
  4. 受け入れ条件を検証できるか
  5. タスクが仕様項目へ対応しているか

この確認をapplyより前に行うと、実装後に説明を合わせる作業を減らせます。

proposalやdesignへ、コードへ書けない判断理由と却下した案も残します。

3. applyをタスクと検証の単位で進める

/opsx:applyでは、合意済みのタスクを1つずつ実装して検証します。

タスクの完了条件は、コードが書けたことではありません。

テスト、型検査、lint、build、必要なドキュメント更新までを含めます。

実装中に前提が崩れた場合は、タスクを無理に消化せず、proposal、spec、designの内容を更新します。

現行ワークフローに更新用のコマンドやSkillがある場合は、生成された名前を確認して使います。

AI sessionを切り替えても、成果物がリポジトリへ残っていれば再開しやすいです。

会話履歴よりファイルを正本にします。

4. archiveで仕様へ戻す

/opsx:archiveは、完了した変更を保管し、必要な仕様差分を本体へ統合する工程です。

コードだけをマージしてproposalを放置すると、次の作業で過去の判断を再発見できません。

アーカイブ前に次を確認します。

  • すべてのタスクが完了または明示的に延期されている
  • 受け入れ条件を満たす検証結果がある
  • 実装と仕様の差が解消されている
  • 破壊的変更と運用手順が文書化されている
  • 不要な中間成果物の扱いを決めている

「完了」はコードの存在ではなく、仕様、実装、検証、保管が揃った状態とします。

小さな変更へ無理に適用しない

すべての変更へ同じ量の成果物を要求すると、文書作成が目的になります。

最初は、複数ファイルへまたがる変更、仕様の解釈が分かれやすい変更、移行を伴う変更へ適用します。

小さなバグ修正では、目的、受け入れ条件、タスクだけで十分な場合があります。

OpenSpecのOverviewとFAQを基準資料にします。

コマンド名、プロファイル、成果物の配置は、導入したバージョンとAIツールへ合わせて固定します。

参考資料