仕様駆動開発WS - kocya-dev/note GitHub Wiki
概要
GitHub Spec Kitまたはその他の仕様駆動開発フレームワークを利用して開発を進める
お題はいくつか用意 + 持ち寄り
Spec Kit
One time install
uvx --from git+https://github.com/github/spec-kit.git specify init <PROJECT_NAME>
/speckit.constitution
- 開発対象の概要
- 開発環境
- 開発言語
- テストフレームワーク
- 使用技術
- 実行形態
- 外部リソース
- 操作対象リソース(リポジトリ、設定)、APIキーに関する情報
- コーディング規約
- 学習用途であれば、
typescript開発で一般的なものを選定して、最大10個までのルールを定義してください。のように、決めずともどう生成するかを指示するでも良し。
- 学習用途であれば、
- 開発プロセス
- TDDなど
- 仕様の全体方針
- シンプルにする、エラー無視、などなど仕様の生成の方向性
/speckit.specify
仕様書(spec.md)とチェックリスト(checklists/requirements.md)作成
- スクリプト開発の場合
- コマンド実行形態、引数
- 仕様制限に繋がる技術制約
- ユーザーシナリオ
- 機能要件
- 搭載機能、オプション、数値による制限、入出力の表現
- リソースの扱い、命名規則
- ディレクトリ構造 (ファイル操作等を伴う場合、入出力、一時作業場所など)
- エラー時動作 (リトライ/ロギング/表示など)
- 認証方法
- 非機能要件
- 性能、タイムアウト、エラーの取り扱い、ロギング、競合処理
- 仕様制約
/speckit.clarify
- 仕様矛盾や不明瞭な点のチェック
/speckit.plan
- 実装計画作成 (plan.md)
- データエンティティ定義 (data-model.md)
- 使用ガイド (quickstart.md)
- 制約 (contruct.md)
- カスタム命令 (copilot-instructions.md)
/speckit.tasks
- タスク作成 (tasks.md)
/speckit.implement
- 実装
/speckit.analyze
- 成果物の矛盾性チェック
Tips
API
- GitHub API: token発行種別、必要permission
- tsならOctokit.jsが利用しやすい
token
user menu > Settings > Developer Settings > Personal Access Tokens > Fine-granted tokens
- Resource owner: 個人リポジトリ対象ならアカウント、組織リポジトリ対象ならorg名を選択
- Expiration
- Repository Access: internalなど考慮するならselectedで明示的に指定する。allは推奨しない。
- Permission: Repositoriesタブを選択し、APIごとに必要なPermissionを確認して選択する
上記設定後、Generate tokenを実行した後でtokenを保存しておく
バックアップ
その他
- git: コマンドとオプション
- 事前にcopilot-instructions.mdに日本語化指示を記載しておけば成果物は日本語になる
- VSCodeの場合、githubの機能は
@githubを付与して質問することで適切な回答が得られる