Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cursor/rules/00-global.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ alwaysApply: true
- 本リポジトリの AI 運用は「正本を1箇所に集約し、生成先へ配布する」方式を採用する。
- ルール更新時は `docs/ai/canonical/` を編集し、生成ファイルは直接編集しない。
- タスク開始時は必ずタスク設計を作成し、承認後に実装する。
- プロダクト方針は `docs/product/vision.md` / `docs/product/goals.md` / `docs/product/milestones.md` / `docs/product/progress.md` を正本として管理する。
- 新規タスク設計書には、`関連ゴールID` と `関連マイルストーンID` を必ず記載する。
- 既存の実装・ドキュメントとの整合を保ち、変更理由を記録する。
- ユーザーとのコミュニケーションは日本語で行う。
- CI は必須とし、品質ゲートの不一致を許容しない。
Expand Down
2 changes: 1 addition & 1 deletion .cursor/rules/10-task-routing.mdc
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ alwaysApply: true
| --- | --- | --- |
| 実装前設計 | 実装・修正・移行など、ファイル変更前にスコープ整理と承認が必要 | [task-design-gate](docs/ai/playbooks/task-design-gate.md) |
| Python の CI / 品質ゲート導入 | `uv` 前提で lint/type/test/CI を一貫運用したい | [python-uv-ci-setup](docs/ai/playbooks/python-uv-ci-setup.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げる | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げ、`docs/product/*.md` を初期擦り合わせする | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| API 仕様同期 | API 実装と仕様ドキュメントの差分を同期する | [api-spec-sync](docs/ai/playbooks/api-spec-sync.md) |
| 設計判断の記録・更新 | アーキテクチャ方針や運用ルールの採否を ADR として記録・更新する | [adr-management](docs/ai/playbooks/adr-management.md) |
| コミット実行 | 変更内容を確認して規約に沿ったコミットを行う | [git-commit](docs/ai/playbooks/git-commit.md) |
Expand Down
4 changes: 3 additions & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
- 本リポジトリの AI 運用は「正本を1箇所に集約し、生成先へ配布する」方式を採用する。
- ルール更新時は `docs/ai/canonical/` を編集し、生成ファイルは直接編集しない。
- タスク開始時は必ずタスク設計を作成し、承認後に実装する。
- プロダクト方針は `docs/product/vision.md` / `docs/product/goals.md` / `docs/product/milestones.md` / `docs/product/progress.md` を正本として管理する。
- 新規タスク設計書には、`関連ゴールID` と `関連マイルストーンID` を必ず記載する。
- 既存の実装・ドキュメントとの整合を保ち、変更理由を記録する。
- ユーザーとのコミュニケーションは日本語で行う。
- CI は必須とし、品質ゲートの不一致を許容しない。
Expand All @@ -27,7 +29,7 @@
| --- | --- | --- |
| 実装前設計 | 実装・修正・移行など、ファイル変更前にスコープ整理と承認が必要 | [task-design-gate](docs/ai/playbooks/task-design-gate.md) |
| Python の CI / 品質ゲート導入 | `uv` 前提で lint/type/test/CI を一貫運用したい | [python-uv-ci-setup](docs/ai/playbooks/python-uv-ci-setup.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げる | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げ、`docs/product/*.md` を初期擦り合わせする | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| API 仕様同期 | API 実装と仕様ドキュメントの差分を同期する | [api-spec-sync](docs/ai/playbooks/api-spec-sync.md) |
| 設計判断の記録・更新 | アーキテクチャ方針や運用ルールの採否を ADR として記録・更新する | [adr-management](docs/ai/playbooks/adr-management.md) |
| コミット実行 | 変更内容を確認して規約に沿ったコミットを行う | [git-commit](docs/ai/playbooks/git-commit.md) |
Expand Down
14 changes: 14 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ Codex と Cursor を併用する Python プロジェクト向けのテンプレ
├── docs/ai/canonical/playbooks/*.md # Playbook手順の正本(手動編集)
├── docs/ai/playbooks/*.md # 自動生成(実行時の参照先)
├── docs/ai/playbook-assets/** # 参照資料(手動編集)
├── docs/product/*.md # プロダクト方針・目標・進捗の正本(手動編集)
├── scripts/playbooks/** # 補助スクリプト(手動編集)
├── scripts/sync_ai_context.py # 生成/検証
├── scripts/bootstrap_after_canonical.py # 同期後ブートストラップ
Expand All @@ -40,6 +41,19 @@ Codex と Cursor を併用する Python プロジェクト向けのテンプレ
- `docs/ai/playbooks/*.md`、`AGENTS.md`、`.cursor/rules/*.mdc` は自動生成物として直接編集しない。
- Playbook の参照資料は `docs/ai/playbook-assets/`、補助スクリプトは `scripts/playbooks/` を正本とする。

## プロダクト方針と進捗管理

- プロダクト方針の正本は `docs/product/` に置く。
- 各タスク設計は `関連ゴールID` / `関連マイルストーンID` を明記し、日々の実装を中長期目標へ接続する。
- テンプレート利用開始時は、`python-project-bootstrap` の初期対話で `docs/product/*.md` をユーザーと擦り合わせて埋める。

`docs/product/` の役割:

- `docs/product/vision.md`: 最終的に目指す状態、対象ユーザー、再設定ルール
- `docs/product/goals.md`: ユーザー到達状態ゴール(Goal ID)と到達判定
- `docs/product/milestones.md`: 到達ステップ(Milestone ID)
- `docs/product/progress.md`: やるべきこと一覧、完了済み、未完了、現在地

## README と AGENTS の書き分け

| 書く場所 | 主な読者 | 記載する内容 | 記載しない内容 |
Expand Down
2 changes: 2 additions & 0 deletions docs/ai/canonical/global-policies.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
- 本リポジトリの AI 運用は「正本を1箇所に集約し、生成先へ配布する」方式を採用する。
- ルール更新時は `docs/ai/canonical/` を編集し、生成ファイルは直接編集しない。
- タスク開始時は必ずタスク設計を作成し、承認後に実装する。
- プロダクト方針は `docs/product/vision.md` / `docs/product/goals.md` / `docs/product/milestones.md` / `docs/product/progress.md` を正本として管理する。
- 新規タスク設計書には、`関連ゴールID` と `関連マイルストーンID` を必ず記載する。
- 既存の実装・ドキュメントとの整合を保ち、変更理由を記録する。
- ユーザーとのコミュニケーションは日本語で行う。
- CI は必須とし、品質ゲートの不一致を許容しない。
Expand Down
26 changes: 20 additions & 6 deletions docs/ai/canonical/playbooks/python-project-bootstrap.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: python-project-bootstrap
description: 新しい Python プロジェクトの初期セットアップを標準化するPlaybook。AGENTS.md を対話で確定し、Hexagonal Architecture 前提のディレクトリ、SOLID/DRY ガイド、API/タスク設計ドキュメント、`.env.development`/`.env.production` と dotenvx 暗号化運用を整備するときに使う。CI は必須工程とし、品質ゲート設定は必ず `python-uv-ci-setup` を呼び出して完了させる依頼で適用する。
description: 新しい Python プロジェクトの初期セットアップを標準化するPlaybook。AGENTS.md と docs/product を対話で確定し、Hexagonal Architecture 前提のディレクトリ、SOLID/DRY ガイド、API/タスク設計ドキュメント、`.env.development`/`.env.production` と dotenvx 暗号化運用を整備するときに使う。CI は必須工程とし、品質ゲート設定は必ず `python-uv-ci-setup` を呼び出して完了させる依頼で適用する。
---

# Pythonプロジェクト初期構築
Expand All @@ -10,6 +10,7 @@ description: 新しい Python プロジェクトの初期セットアップを
## 実行ルール

- AGENTS.md の不明点がある状態で雛形を確定しない。必ず対話で埋める。
- `docs/product/vision.md` / `docs/product/goals.md` / `docs/product/milestones.md` / `docs/product/progress.md` を空欄のまま放置しない。初期化時に必ずユーザーと擦り合わせる。
- 質問は 1〜3 問ずつ行い、回答を反映して次の質問へ進む。
- CI 設定は必須。必ず `python-uv-ci-setup` を使って完了させる。
- 既存ファイルがある場合は破壊的上書きを避け、差分統合を優先する。
Expand All @@ -32,31 +33,43 @@ description: 新しい Python プロジェクトの初期セットアップを
- 未確定項目は既定値を勝手に固定せず、ユーザー確認を優先する。
- 既定値を使う場合は「既定値を採用した」と明示してから確定する。

3. 初期構成を生成する。
3. プロダクト方針(docs/product)を対話で初期確定する。
- `docs/ai/playbook-assets/python-project-bootstrap/references/product-docs-alignment.md` を使い、1〜3問ずつ擦り合わせる。
- 最低限、次を埋める。
- `docs/product/vision.md`: 対象ユーザー、解く課題、成功状態
- `docs/product/goals.md`: ユーザー到達状態ゴールと到達判定
- `docs/product/milestones.md`: 到達ステップ
- `docs/product/progress.md`: やるべきこと一覧ベースの現在地
- 不確定項目が残る場合は、`仮置き` と明記して次の確認タイミングを残す。

4. 初期構成を生成する。
- `scripts/playbooks/python-project-bootstrap/bootstrap_python_project.py` を実行して、ディレクトリと初期ドキュメントを生成する。
- 例:
- `python3 scripts/playbooks/python-project-bootstrap/bootstrap_python_project.py --target <project-root> --project-name <name> --package-name <package_name> --description "<description>"`
- 必要に応じて `--task-design-dir docs/task-designs`(既定)や `--force` を使う。
- 生成後に手順正本を `<repo>/docs/ai/canonical/playbooks/` に配置してコミットし、以後の実行基盤を repo ローカルへ固定する。

4. 生成内容をレビューする。
5. 生成内容をレビューする。
- `docs/ai/playbook-assets/python-project-bootstrap/references/project-structure.md` を基準に、`adapters/application/domain/ports` の責務分離を確認する。
- `docs/rules/solid/README.md` と `docs/rules/code_architecture/README.md` の導線が AGENTS.md から参照できることを確認する。
- `docs/ai/playbook-assets/python-project-bootstrap/references/env-and-dotenvx.md` を基準に `.env.*` の運用記載が整合しているか確認する。
- `docs/product/*.md` が生成され、対話で確定した内容が反映されていることを確認する。

5. CI を必須で設定する。
6. CI を必須で設定する。
- 生成直後に必ず `python-uv-ci-setup` を呼び出して、`uv` ベースの品質ゲートと GitHub Actions を整備する。
- 本Playbook内で CI 設定を再実装しない(DRY を維持)。

6. 検証する。
7. 検証する。
- 生成ファイル一覧を確認する。
- `AGENTS.md` の必須セクションが埋まっていることを確認する。
- `docs/product/vision.md` / `docs/product/goals.md` / `docs/product/milestones.md` / `docs/product/progress.md` が初期記入されていることを確認する。
- `.env.development` / `.env.production` の整合を確認する。
- CI 設定完了後に `uv run pre-commit install` が実行可能な状態であることを確認する。

7. 結果を報告する。
8. 結果を報告する。
- 作成・更新したファイル
- 対話で確定した項目
- `docs/product` で合意した内容(Vision/Goal/Milestone/Progress)
- CI 設定の実行結果
- 残課題(手動で埋めるべき値や鍵など)
- Playbook 配置先(repo 配下 / 個人グローバル)と採用理由
Expand All @@ -65,5 +78,6 @@ description: 新しい Python プロジェクトの初期セットアップを

- AGENTS.md ヒアリング項目: `docs/ai/playbook-assets/python-project-bootstrap/references/agents-md-checklist.md`
- AGENTS と Playbooks の責務境界: `docs/ai/playbook-assets/python-project-bootstrap/references/agents-playbooks-boundary.md`
- docs/product 擦り合わせ質問: `docs/ai/playbook-assets/python-project-bootstrap/references/product-docs-alignment.md`
- Hexagonal 構成と責務: `docs/ai/playbook-assets/python-project-bootstrap/references/project-structure.md`
- `.env.*` と dotenvx 暗号化運用: `docs/ai/playbook-assets/python-project-bootstrap/references/env-and-dotenvx.md`
1 change: 1 addition & 0 deletions docs/ai/canonical/playbooks/task-design-gate.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ description: 実装前にタスク設計書を作成し、スコープ・前提
## 出力ルール

- `docs/ai/playbook-assets/task-design-gate/references/_task-design-template.md` の見出し順を厳守して Markdown で出力する。
- タスク設計書のメタデータには、`関連ゴールID` と `関連マイルストーンID` を必ず記載する。
- 各セクションはリポジトリ固有の具体内容で記載し、一般論を避ける。
- ファイルは必ず明示的なパスで列挙する。
- 少なくとも 1 つ以上のリスクと検証手順を含める。
Expand Down
2 changes: 1 addition & 1 deletion docs/ai/canonical/task-routing.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
| --- | --- | --- |
| 実装前設計 | 実装・修正・移行など、ファイル変更前にスコープ整理と承認が必要 | [task-design-gate](docs/ai/playbooks/task-design-gate.md) |
| Python の CI / 品質ゲート導入 | `uv` 前提で lint/type/test/CI を一貫運用したい | [python-uv-ci-setup](docs/ai/playbooks/python-uv-ci-setup.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げる | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| 新規プロジェクト初期構築 | Python プロジェクトを Hexagonal + 運用標準で立ち上げ、`docs/product/*.md` を初期擦り合わせする | [python-project-bootstrap](docs/ai/playbooks/python-project-bootstrap.md) |
| API 仕様同期 | API 実装と仕様ドキュメントの差分を同期する | [api-spec-sync](docs/ai/playbooks/api-spec-sync.md) |
| 設計判断の記録・更新 | アーキテクチャ方針や運用ルールの採否を ADR として記録・更新する | [adr-management](docs/ai/playbooks/adr-management.md) |
| コミット実行 | 変更内容を確認して規約に沿ったコミットを行う | [git-commit](docs/ai/playbooks/git-commit.md) |
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,11 @@ AGENTS.md はエージェントの行動境界を固定する「常時参照さ
- 空リポジトリ時のみグローバル bootstrap を初回1回だけ許容するか(既定: 許容する)
- 初回生成後に `<repo>/docs/ai/canonical/playbooks/` を正本化するか(既定: 正本化する)

7. プロダクト方針(docs/product)
- `docs/product/vision.md` で対象ユーザー・課題・成功状態を初期確定するか(既定: 初期確定する)
- `docs/product/goals.md` を「ユーザー到達状態ゴール」で定義するか(既定: 定義する)
- `docs/product/progress.md` を `%` ではなく「やるべきこと一覧」で管理するか(既定: 管理する)

## 任意項目(必要時のみ)

- フロントエンド併設の有無
Expand Down Expand Up @@ -75,6 +80,12 @@ AGENTS.md はエージェントの行動境界を固定する「常時参照さ
- 空リポジトリ時のみ、グローバル `python-project-bootstrap` を初回1回だけ使う運用でよいですか。
- 生成後は `<repo>/docs/ai/canonical/playbooks/` を正本に固定してよいですか。

### ラウンド5(プロダクト方針)

- 開発開始前に `docs/product/vision.md` の対象ユーザー・課題・成功状態を確定してよいですか。
- `docs/product/goals.md` は期限ではなく「ユーザー到達状態」で定義してよいですか。
- `docs/product/progress.md` は `%` ではなく「やるべきこと一覧(完了済み/未完了/現在地)」で運用してよいですか。

## AGENTS.md 反映チェック

- 「参照すべきドキュメント」が相対パスで明示されている。
Expand All @@ -85,3 +96,4 @@ AGENTS.md はエージェントの行動境界を固定する「常時参照さ
- 長いコマンド列は AGENTS.md ではなく Playbook に配置されている。
- 共有必須 Playbook の配置方針(repo 配下優先)が記載されている。
- 「初回のみグローバル、以後ローカル正本」の例外ルールが記載されている。
- `docs/product/*.md` の初期確定方針が記載されている。
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# docs/product 擦り合わせテンプレート

## 目的

テンプレート利用開始時に `docs/product/*.md` を空欄のままにせず、
「何を目指すか」「何を完了条件にするか」「現在地をどう示すか」をユーザーと合意して初期記入する。

## 進め方

- 質問は 1〜3 問ずつ行う。
- 回答を要約して合意を取ってから次へ進む。
- 未確定項目は `仮置き` と明記し、次の確認タイミングを記録する。

## ラウンド1(Vision)

- このプロダクトで最初に価値を届けたい対象ユーザーは誰ですか。
- そのユーザーのどの課題を最優先で解決しますか。
- どの状態になれば「Vision が一段達成できた」と判断しますか。

反映先:
- `docs/product/vision.md`

## ラウンド2(Goals / Milestones)

- ユーザーが到達したい状態を 3〜5 個挙げると何ですか。
- 各状態について「これが満たされたら達成」と言える判定条件は何ですか。
- 到達順序(ステップ)をどう並べますか。

反映先:
- `docs/product/goals.md`
- `docs/product/milestones.md`

## ラウンド3(Progress)

- 各 Goal で「やるべきこと一覧」を 2〜5 項目に分解すると何ですか。
- いま完了済み / 未完了はどれですか。
- いまの現在地を一文で表すとどうなりますか。

反映先:
- `docs/product/progress.md`

## 出力チェック

- `%` 表示に頼らず、やるべきこと一覧ベースで進捗が表現されている。
- Goal ID / Milestone ID が付与され、タスク設計書と紐づけ可能。
- README と Playbook の説明が `docs/product/*.md` と矛盾しない。
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,8 @@
- 対象コンポーネント: <backend / frontend / docs / infra / data>
- 関連: <リンクや関連設計書>
- チケット/リンク: <Issue/PR/外部リンク>
- 関連ゴールID: <G-01 など。該当なしの場合は `該当なし`>
- 関連マイルストーンID: <M-01 など。該当なしの場合は `該当なし`>

## 0. TL;DR
- <目的と結論を3〜5行で要約>
Expand Down
Loading