仕様駆動開発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 を付与して質問することで適切な回答が得られる