GitHub STIT Workflow
v1.0 ― GitHub プラットフォーム連携プロトコル
目的: 本ドキュメントは、Spec & Test Driven Iteration(STIT)をGitHubプラットフォーム上で運用するための ワークフロー定義を定義する。
本ドキュメントは STIT_STANDARD.md を基盤とし、 GitHub固有のIssue、Pull Request、Actions、Projectsとの連携ルールを規定する。
1. 目的と適用範囲
1.1 本ドキュメントの目的
STITの運用をGitHubプラットフォーム上で効率的かつ一貫して実施するためのルールを定義する。AIアシスタントがGitHub上の情報からコンテキストを正確に取得し、STITプロセスを適切に実行するためのガイドラインを提供する。
1.2 適用範囲
本ドキュメントは以下のGitHub機能との連携を定義する。
| 機能 | 用途 |
|---|---|
| Issues | STIT Gateway、仕様定義、Decision Log |
| Pull Requests | 実装、テスト、Review Gate |
| Projects | カンバンボード、スケジュール管理 |
| Actions | CI/CD、テスト実行、自动化 |
| Discussions | 設計議論、Q&A |
1.3 前提条件
本ドキュメントは STIT_STANDARD.md のすべてのルールを継承する。STIT_STANDARD.md と本ドキュメントで矛盾が生じた場合、STIT_STANDARD.md が優先される。
1.4 リポジトリ情報
本ドキュメントは以下のリポジトリを前提とする。
| 項目 | 値 |
|---|---|
| リポジトリURL | https://github.com/fukukei23/NexusCore |
| デフォルトブランチ | main |
| ブランチ保護 | PR必須、レビュー必須、テスト通過必須 |
2. Issue 運用ルール
2.1 ブランチ命名規則
すべての開発作業は、ブランチを作成して開始する。ブランチ名は以下の命名規則に従う。
| 接頭辞 | 用途 | 命名規則 | 例 |
|---|---|---|---|
claude/ | AI開発ブランチ | {接頭辞}/{cr-XXX}-{簡易説明} | claude/cr-nexus-051-b-retry-policy-mS11E |
rescue/ | 救出用・再試行ブランチ | {接頭辞}/{cr-XXX}_{日付} | rescue/cr-nexus-051-wip_20260112 |
feature/ | 機能開発(通常) | {接頭辞}/{機能名} | feature/user-authentication |
hotfix/ | 緊急修正 | {接頭辞}/{修正内容} | hotfix/critical-security-fix |
ブランチ作成フロー
[STIT Gateway Issue 作成]
↓
[ブランチ命名規則に従い作成]
↓
[実装・テスト]
↓
[PR 作成]
↓
[Review & Merge]
2.2 STIT Gateway Issue
すべての開発タスクは、STIT Gateway Issue として作成することを原則とする。Gate評価(コンテキスト存在確認、版の正当性確認)をIssue上で実施することで、チーム全体で判断の根拠を共有できる。
2.1.1 Issue テンプレート
STIT Gateway Issue は以下の構造に従う。
# STIT Gateway - [タスク名]
## ゲート評価
### Gate 1: コンテキスト存在確認
- [ ] システム設計コンテキストが明示されている
- [ ] プロジェクトの目的・制約が明示されている
- [ ] 変更対象が明確に定義されている
### Gate 2: 版の正当性確認
- [ ] 参照仕様がバージョン付きで確認可能
- [ ] 最終更新情報が明記されている
### 判定
- [ ] PASS → Spec定義へ
- [ ] BLOCK → 不足情報を要求
2.1.2 タイトル規則
STIT Gateway Issue のタイトルは [STIT-GATE] 接頭辞を付与する。例:[STIT-GATE] ユーザー認証機能の改善
2.2 仕様定義 Issue
Gate評価 PASS 後、仕様定義は Issue または Issue 内のセクションとして作成する。仕様定義 Issue は [STIT-SPEC] 接頭辞を付与する。
2.2.1 必須セクション
| セクション | 内容 |
|---|---|
| 期待される挙動 | 正常系・異常系すべてを明記 |
| 失敗時・境界条件 | エラー処理、例外パターンを明記 |
| テスト観点 | 合否判定基準を明記 |
| 未定義挙動 | 未定義となる条件を明記 |
2.3 Decision Log Issue
Gate BLOCK、複数の選択肢、Reject/Deferred の場合、Decision Log を Issue として記録する。Decision Log Issue は [STIT-DECISION] 接頭辞を付与する。
2.3.1 記録ルール
- 既存の Decision Log Issue へのコメントとして記録(append-only)
- 判断理由を必ず明記
- 日時と対象タスクを明記
3. Pull Request 運用ルール
3.1 PR 作成規則
STIT に基づき、Spec・Test の定義完了後に PR を作成する。PR は実装とテストを含み、Review Gate への提出として機能する。
3.1.1 PR タイトル規則
PR タイトルは対応する STIT Issue 番号を含める。例:feat: ユーザー認証機能の追加 (#42)
3.1.2 PR Description テンプレート
## 関連 STIT Issue
- STIT Gateway: #[番号]
- Spec 定義: #[番号]
## マージ時に自動クローズ
Fixes #[番号]
PR マージ時に指定した Issue を自動クローズする。
## 実装概要
[実装内容の要約]
## テスト結果
- [ ] ユニットテスト: passed/failed
- [ ] 統合テスト: passed/failed
- [ ] 既存テスト: all passed
## Review 要望事項
[レビュアーに確認してほしい観点]
3.2 Review Gate
PR は GitHub のレビュー機能を使用して Independent Review Gate を実施する。Reviewer は STIT Gateway Issue および Spec 定義を参照し、仕様に沿っているか確認する。
3.2.1 承認条件
| 条件 | 確認項目 |
|---|---|
| 仕様準拠 | Spec 定義との整合性 |
| テスト品質 | 合否判定基準の充足 |
| コード品質 | コーディング規約、テストカバレッジ |
| ドキュメント | 必要に応じたAPIドキュメント更新 |
3.2.2 レビュー結果
- Approve: Review Gate PASS、Merge 可能
- Request Changes: 不足・問題あり、修正后再レビュー
- Comment: 軽微な指摘・質問
3.3 マージ戦略
Main ブランチへの直接マージは禁止し、Pull Request を介す。Squash Merge を推奨し、コミット履歴を簡潔に保つ。
4. GitHub Actions 自動化
4.1 CI/CD パイプライン
STIT の Test フェーズを GitHub Actions で自動化する。
4.1.1 必須ワークフロー
name: STIT Test Pipeline
on:
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Run Tests
run: pytest --stit-mode
- name: Report Results
run: pytest --report
4.1.2 テスト結果レポート
テスト実行結果は PR にコメントとして自動投稿する。テスト結果レポートは STIT Report として保存する。
4.2 STIT ゲート自動化
GitHub Actions で Gate 評価の一部を自動化する。
| ゲート | 自動化項目 |
|---|---|
| Gate 2: 版の正当性確認 | 依存関係のバージョン確認 |
| Gate 4: テスト可能性 | テストの存在確認 |
| Review Gate | 必須ファイルの存在確認 |
5. GitHub Projects 運用
5.1 カンバンボード構造
GitHub Projects を使用して、STIT の進行状況を可視化する。
| カラム | STIT フェーズ |
|---|---|
| Backlog | タスク検討中 |
| STIT Gateway | ゲート評価待ち |
| Spec 定義 | 仕様策定中 |
| Test 定義 | テスト設計中 |
| In Progress | 実装中 |
| Review | レビュ中 |
| Done | 完了 |
5.2 Issue Projects 連携
各 STIT Issue を Projects のカードとして管理し、フェーズ移行時にカードを移動する。
6. DECISION_LOGS 運用
6.1 Decision Log の保存場所
Decision Log は GitHub Discussions または Wiki に保存することを推奨する。プロジェクトに応じて Issue や専用リポジトリも可。
6.1.1 Decision Log エントリテンプレート
# Decision Log - [日付]
## ケース
[Gate BLOCK / 複数選択肢 / Reject / Deferred]
## 状況
[背景・問題定義]
## 選択肢
| 選択肢 | メリット | デメリット |
|--------|---------|-----------|
| A | ... | ... |
| B | ... | ... |
## 決定
[選択したオプションと理由]
## 判断根拠
[詳細な判断理由]
6.2 記録タイミング
Decision Log は以下のタイミングで記録する。
| タイミング | 内容 |
|---|---|
| Gate BLOCK 時 | 不足情報の特定、推定原因 |
| 選択肢比較時 | 各選択肢の評価、選択理由 |
| Reject/Deferred 時 | 拒否・延期理由、代替案 |
7. ファイル配置規則
7.1 推奨ディレクトリ構造
root/
ガバナンス/
スペックテスト駆動イテレーション.md ← STIT 本体
docs/
STIT_STANDARD.md ← 汎用STIT定義(配布用)
integrations/
GITHUB_STIT_WORKFLOW.md ← GitHub連携(本ファイル)
.github/
workflows/
stit-test-pipeline.yml ← CI/CD
7.2 テンプレート配置
Issue テンプレート、PR テンプレートは .github/ ディレクトリに配置する。
.github/
ISSUE_TEMPLATE/
stit-gate.md
stit-spec.md
stit-decision.md
PULL_REQUEST_TEMPLATE.md
workflows/
stit-test-pipeline.yml
7.2.1 Issue テンプレート例
.github/ISSUE_TEMPLATE/stit-gate.md
---
name: STIT Gateway Issue
about: STIT Gateway 評価用の Issue テンプレート
title: "[STIT-GATE] "
labels: "stit-gate"
---
## ゲート評価
### Gate 1: コンテキスト存在確認
**システム設計コンテキスト**
[システム全体構造と対象変更の論理的範囲を記述]
**プロジェクトの目的・制約**
[何のための変更か、リスク許容度を記述]
**変更対象**
[何を変更するか、明示的に含まないものを記述]
### Gate 2: 版の正当性確認
| 参照情報 | バージョン | 最終更新 |
|---------|-----------|----------|
| [仕様書] | v1.0 | 2026-01-01 |
| [設計書] | v2.1 | 2026-01-15 |
### 判定
- [ ] PASS → Spec定義へ移行
- [ ] BLOCK → 不足情報を要求
.github/ISSUE_TEMPLATE/stit-spec.md
---
name: STIT Spec Definition
about: 仕様定義用の Issue テンプレート
title: "[STIT-SPEC] "
labels: "stit-spec"
---
## 期待される挙動
[正常系の動作を明記]
## 失敗時・境界条件
[エラー処理、例外パターンを明記]
## テスト観点
[合否判定基準を明記]
## 未定義挙動
[未定義となる条件を明記]
7.2.2 PR テンプレート例
.github/PULL_REQUEST_TEMPLATE.md
## 関連 STIT Issue
- STIT Gateway: #[番号]
- Spec 定義: #[番号]
## マージ時に自動クローズ
Fixes #[番号]
## 実装概要
[実装内容の要約]
## 変更ファイル
[変更したファイルのリスト]
## テスト結果
- [ ] ユニットテスト: passed/failed
- [ ] 統合テスト: passed/failed
- [ ] 既存テスト: all passed
## Review 要望事項
[レビュアーに確認してほしい観点]
8. バージョン履歴
- v1.1: ブランチ命名規則、Issue/PR連携、テンプレート例を追加
- v1.0: 初版
End of GitHub STIT Workflow v1.1