@ripla/godd-mcp 1.0.7-canary.9 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/README.md +457 -85
  2. package/dist/godd.cjs +293 -244
  3. package/dist/godd.js +1005 -321
  4. package/dist/index.js +148 -119
  5. package/notes/app/DESIGN.md +5 -2
  6. package/notes/app/e2e/fixtures.ts +39 -0
  7. package/notes/app/e2e/ja-typography-visual.spec.ts +185 -0
  8. package/notes/app/e2e/ja-typography-visual.spec.ts-snapshots/ja-typography-desktop-1280-chromium-linux.png +0 -0
  9. package/notes/app/e2e/ja-typography-visual.spec.ts-snapshots/ja-typography-mobile-360-chromium-linux.png +0 -0
  10. package/notes/app/e2e/rtl-logical-properties.spec.ts +36 -0
  11. package/notes/app/package-lock.json +0 -8
  12. package/notes/app/package.json +0 -1
  13. package/notes/app/playwright.config.ts +7 -0
  14. package/notes/app/pnpm-lock.yaml +0 -8
  15. package/notes/app/src/components/BranchSelectorModal.tsx +8 -8
  16. package/notes/app/src/components/CommentPanel.tsx +5 -5
  17. package/notes/app/src/components/DiffPreview.tsx +4 -4
  18. package/notes/app/src/components/FileContentView.tsx +1 -1
  19. package/notes/app/src/components/FileContextMenu.tsx +1 -1
  20. package/notes/app/src/components/FileInfoPanel.branch-tab.test.tsx +3 -35
  21. package/notes/app/src/components/IssueCommentThread.test.tsx +40 -19
  22. package/notes/app/src/components/IssueDetailView.test.tsx +3 -40
  23. package/notes/app/src/components/IssueList.tsx +3 -3
  24. package/notes/app/src/components/LabelSelector.tsx +1 -1
  25. package/notes/app/src/components/MarkdownEditor.tsx +1 -1
  26. package/notes/app/src/components/Skeleton.tsx +2 -2
  27. package/notes/app/src/components/ToastContainer.tsx +1 -1
  28. package/notes/app/src/components/TreeNode.tsx +6 -6
  29. package/notes/app/src/contexts/ToastContext.tsx +1 -1
  30. package/notes/app/src/hooks/useComments.ts +1 -1
  31. package/notes/app/src/hooks/useEditSession.ts +1 -1
  32. package/notes/app/src/lib/api.ts +1 -13
  33. package/notes/app/src/lib/csv-utils.ts +1 -1
  34. package/notes/app/src/lib/postLoginRedirect.ts +1 -1
  35. package/notes/app/src/lib/rtl-logical-properties.test.ts +59 -0
  36. package/notes/app/src/lib/user-colors.ts +1 -1
  37. package/notes/app/src/pages/MainPage.tsx +2 -2
  38. package/notes/app/src/pages/SettingsPage.test.tsx +40 -10
  39. package/notes/app/src/pages/SettingsPage.tsx +1 -1
  40. package/notes/app/src/pages/UserManagementPage.tsx +7 -7
  41. package/notes/app/src/styles/globals.css +17 -0
  42. package/notes/app/src/test/mockPeriodicSync.ts +68 -0
  43. package/notes/app/src/test/mocks.ts +1 -1
  44. package/package.json +7 -3
  45. package/templates/feedback/feedback-lambda/index.mjs +342 -0
  46. package/templates/feedback/frontend/FeedbackWidget.tsx +574 -0
  47. package/templates/feedback/frontend/api.ts +38 -0
  48. package/templates/feedback/frontend/composePinImage.ts +80 -0
  49. package/templates/feedback/frontend/config.ts +14 -0
  50. package/templates/feedback/frontend/types.ts +41 -0
  51. package/templates/feedback/terraform/Makefile +43 -0
  52. package/templates/feedback/terraform/backend.tf +10 -0
  53. package/templates/feedback/terraform/lambda.tf +95 -0
  54. package/templates/feedback/terraform/local.tf +12 -0
  55. package/templates/feedback/terraform/output.tf +9 -0
  56. package/templates/feedback/terraform/provider.tf +24 -0
  57. package/templates/feedback/terraform/variables.tf +25 -0
  58. package/templates/github-actions/aws/deploy-notes.yml.hbs +193 -10
  59. package/templates/notes-docs/001_project/README.md +0 -2
  60. package/templates/notes-docs/002_business_flow/README.md +19 -0
  61. package/templates/notes-docs/003_requirements/README.md +20 -0
  62. package/templates/notes-docs/003_requirements/questions.csv +1 -0
  63. package/templates/notes-docs/003_requirements/spec/README.md +11 -0
  64. package/templates/notes-docs/004_pages/README.md +22 -0
  65. package/templates/notes-docs/005_architecture/README.md +20 -0
  66. package/templates/notes-docs/006_development_workflow/README.md +67 -0
  67. package/templates/notes-docs/006_development_workflow/daily_flow.template.md +303 -0
  68. package/templates/notes-docs/006_development_workflow/git.template.md +72 -20
  69. package/templates/notes-docs/006_development_workflow/judgment.template.md +182 -0
  70. package/templates/notes-docs/006_development_workflow/workflow.template.md +167 -192
  71. package/templates/notes-docs/007_guides/README.md +85 -0
  72. package/templates/notes-docs/007_guides/bot-token-setup.md +174 -0
  73. package/templates/notes-docs/007_guides/getting_started.md +112 -0
  74. package/templates/notes-docs/007_guides/glossary.md +145 -0
  75. package/templates/notes-docs/007_guides/godd_notes_features.md +105 -0
  76. package/templates/notes-docs/007_guides/godd_notes_usage.md +28 -19
  77. package/templates/notes-docs/007_guides/godd_tools.md +129 -0
  78. package/templates/notes-docs/007_guides/godd_usage.md +88 -95
  79. package/templates/notes-docs/007_guides/infra/README.md +57 -0
  80. package/templates/notes-docs/007_guides/{setup_aws_accounts.md → infra/setup_aws_accounts.md} +3 -2
  81. package/templates/notes-docs/007_guides/{setup_infra.template.md → infra/setup_infra.template.md} +15 -4
  82. package/templates/notes-docs/007_guides/setup_godd.md +66 -23
  83. package/templates/notes-docs/007_guides/setup_godd_notes.md +95 -42
  84. package/templates/notes-docs/007_guides/setup_godd_notes.md.styles.json +2 -2
  85. package/templates/notes-docs/007_guides/setup_local_environment.template.md +81 -20
  86. package/templates/notes-docs/007_guides/troubleshooting.md +225 -0
  87. package/templates/notes-docs/999_ref/README.md +23 -0
  88. package/templates/notes-docs/GENERATED.md +1 -1
  89. package/templates/notes-docs/README.md +64 -34
  90. package/templates/terraform/aws/iam.tf.hbs +361 -4
  91. /package/templates/notes-docs/007_guides/{setup_aws_cost_alert.md → infra/setup_aws_cost_alert.md} +0 -0
  92. /package/templates/notes-docs/007_guides/{setup_aws_guard_duty.md → infra/setup_aws_guard_duty.md} +0 -0
@@ -1,289 +1,264 @@
1
1
  # 開発ワークフロー
2
2
 
3
- 本ドキュメントは、`godd init` で展開される **新規プロジェクトの開発ワークフロー雛形** です。
4
- ripla の標準フローを構成・章立てとして共通化することを目的とし、ツール選定・ブランチ命名・レビュー要件などプロジェクト固有の差分は、本ファイルを各チームで書き換えて運用してください。
3
+ **開発全体がどう流れていて、その中で自分がどこを担当するのか**を示すページです。
5
4
 
6
- > **書き換え前提**: 本ファイルは「構成と章立ての標準化」を目的とした雛形です。実プロジェクトでの埋め方の参考として [`ripla-inc/saas-box-manage` の `saas-box-docs/007_development/`](https://github.com/ripla-inc/saas-box-manage/tree/main/saas-box-docs/007_development) も併せて参照してください。
7
- > **godd 利用は Optional**: 本ワークフローは godd を使わなくても成立します。godd 利用時の自動化手段は各ステップ末尾に `_(Optional / godd 利用時)_` として補足します。
5
+ 毎日の手順は [daily_flow.template.md](./daily_flow.template.md) にあります。**日々の作業はそちらだけで進みます。** このページは、次のようなときに開いてください。
8
6
 
9
- ---
10
-
11
- ## 原則: SDD(仕様書駆動開発)
12
-
13
- 本ワークフローは **SDD(Spec-Driven Development)** を前提とします。コードではなく **仕様書を SSOT** として扱い、Issue・PR・実装はすべて Spec の差分を解決するために存在します。
14
-
15
- - **書く前に仕様を整える**: 要求 → 仕様(API / UI / DB / Feature / Usecase)を整理し、`docs/003_requirements/` 配下に確定させてから着手する
16
- - **コードと仕様を同時に更新する**: 実装中に仕様とのズレが生じたら、コード修正と同じ PR で仕様側も更新する
17
- - **PR では仕様書更新の漏れを必ずチェックする**: マージ前に「Spec と整合しているか」「仕様書の更新が必要な範囲を抑えているか」を確認する。PR テンプレの「仕様書更新チェック」項目を必ず埋める(詳細は `git.template.md`)
18
- - **設計判断は ADR に残す**: 後から「なぜこうしたか」を辿れるよう、トレードオフが発生した判断は ADR として記録する
19
-
20
- 仕様書を後追いで書くのではなく、**仕様書を先に書き・実装で乖離させない**ことを徹底します。
7
+ | こんなとき | 見るところ |
8
+ |---|---|
9
+ | 自分の担当がどこまでか知りたい | 「役割分担」「担当範囲の外」 |
10
+ | 資料から Issue ができるまでを知りたい | 「A. 資料を受け取ったとき」 |
11
+ | 誰が何を確認するのか知りたい | 「フェーズ別チェックポイント」 |
21
12
 
22
- > _(Optional / godd 利用時)_ `godd_spec` / `godd_documentation` / `godd_docs_update` / `godd_adr` で本原則の各ステップを自動化できます。詳細は `007_guides/godd_usage.md`。
13
+ > **書き換え前提**: 本ファイルは「構成と章立ての標準化」を目的とした雛形です。ブランチ命名・レビュー要件などプロジェクト固有の差分は、各チームで書き換えて運用してください。
14
+ >
15
+ > **godd 利用は Optional**: 本ワークフローは godd を使わなくても成立します。godd を使わない場合は末尾の「[godd を使わない場合](#godd-を使わない場合)」を参照してください。
23
16
 
24
17
  ---
25
18
 
26
- ## フェーズ分け
27
-
28
- プロジェクトの進行に応じて、要件・タスクの管理方法を切り替えます。
29
-
30
- | フェーズ | 期間 | 主担当 | 管理単位 | 場所 |
31
- |---|---|---|---|---|
32
- | キックオフ前 | 商談確定 〜 開発キックオフ | PM | **Requirements 文書** | `docs/003_requirements/` |
33
- | キックオフ後 | 開発開始 〜 リリース・運用 | PM / 開発 | **GitHub Issue** | `Issues` |
19
+ ## 大前提: 仕様書が正しい
34
20
 
35
- ### キックオフ前(要件定義フェーズ)
21
+ > **仕様書** = 「何を作るか」を書いた文書。`docs/003_requirements/` にあります。
22
+ > **SSOT(エスエスオーティー)** = 「正しいものは1つだけ」という考え方。この現場では**仕様書が正**です。
36
23
 
37
- - PM がクライアントとすり合わせながら、要求を **Requirements 文書**として `docs/003_requirements/` 配下に整備する
38
- - ここでは Issue 化せず、章立て・粒度・受け入れ条件のドキュメント構造化に集中する
39
- - 完了条件は「キックオフ時点で開発着手できる粒度まで仕様が落ちていること」
24
+ プログラムと仕様書が食い違っていたら、**直すのはプログラムのほう**です。Issue も PR も実装も、すべて「仕様書のとおりになっていない部分」を埋めるために存在します。
40
25
 
41
- ### キックオフ後(実装フェーズ)
26
+ - **書く前に仕様を整える** — 要求を仕様に落とし、`docs/003_requirements/` に確定させてから着手する
27
+ - **コードと仕様を同時に更新する** — 実装中にズレが生じたら、同じ PR で仕様側も直す
28
+ - **PR で仕様書更新の漏れを必ず確認する** — PR テンプレの「仕様書更新チェック」を必ず埋める
29
+ - **設計判断は ADR に残す** — 後から「なぜこうしたか」を辿れるようにする
42
30
 
43
- - Requirements の各項目を **GitHub Issue** に分解し、以降は Issue 単位で進行管理する
44
- - 仕様変更・追加要望も原則 Issue として起票し、必要に応じて Requirements 文書へバックポートする
45
- - Issue → ブランチ → PR の流れは下記「全体像」以降の手順に従う
31
+ **仕様書の更新漏れは「後回しにしてよい宿題」ではなく、バグと同じ扱い**です。
46
32
 
47
33
  ---
48
34
 
49
35
  ## 全体像
50
36
 
51
37
  ```mermaid
52
- flowchart LR
53
- A[Spec/Issue 確認] --> B[main 同期]
54
- B --> C[ブランチ作成]
55
- C --> D[実装]
56
- D --> E[品質ゲート]
57
- E --> F[責務単位コミット]
58
- F --> G[push & PR]
59
- G --> H[レビュー]
60
- H --> I{合格?}
61
- I -->|Yes| J[Squash merge]
62
- I -->|No| D
63
- J --> K[Canary リリース]
64
- K --> L[本番リリース]
38
+ flowchart TD
39
+ A[資料を渡して godd-dev] --> B[起票モード]
40
+ B --> B1[親Issue + 子Issue を作成<br/>曖昧点は子Issue にコメントで質問]
41
+ B1 --> C{実装ループ<br/>子Issue を番号昇順に}
42
+ C -->|未回答 / 依存待ち| S[skipped<br/>理由を Issue にコメント]
43
+ C -->|実装できる| D[実装 → 品質ゲート → コミット]
44
+ D --> E[godd-docs → godd-submit]
45
+ E --> F[PR → レビュー → マージ]
46
+ C -->|詰まった| G[blocked<br/>ローカルにコミット<br/>push も PR もしない]
47
+ S -.->|回答が届いたら| H[godd-dev #番号 と回答]
48
+ G -.->|回答が届く / 原因が解ける| H
49
+ H --> D
65
50
  ```
66
51
 
67
- 各ステップは下記「1. 着手前」以降で詳細化します。
68
-
69
52
  ---
70
53
 
71
- ## 役割分担とチェック体制
54
+ ## A. 資料を受け取ったとき(起票モード)
72
55
 
73
- PR / コミットの責任範囲と、フェーズごとの最終確認者をあらかじめ役割で揃えておきます。プロジェクトごとに人員配置が異なる場合は、本表の役割を兼任者にマッピングしてください。
56
+ > **この節は主に PM の作業です。** 開発事務さんは、ここで作られた Issue を受け取るところから始まります(B へ)。
74
57
 
75
- ### 役割と主な責務
58
+ 議事録や受領資料を渡すと、**Issue の作成から実装までが一度に進みます。途中で承認は求められません。**
76
59
 
77
- | 役割 | 担当領域 | 主な責務 |
78
- |---|---|---|
79
- | PM | 要件定義 / Issue 管理 / 受け入れ | Requirements 整備、Issue 起票・優先順位付け、受け入れテストの合否判定 |
80
- | アーキテクト | 設計 / 横断 | ADR 起票、設計レビュー、技術スタック判断、横断的な影響範囲確認 |
81
- | FE エンジニア | フロントエンド実装 | 画面要件に沿った UI 実装、フロント側 unit / e2e、デザイン整合 |
82
- | BE エンジニア | バックエンド実装 / DB / インフラ | API・DB スキーマ実装、サーバ側 unit / integration、IaC 整合 |
83
- | QA | テスト戦略 / E2E | テスト計画策定、シナリオベース E2E、不具合トリアージ |
84
- | レビュアー | コード / 仕様レビュー | コード品質・テスト網羅・仕様整合のレビュー、ADR 妥当性確認 |
60
+ 1. **起票** — 親 Issue を作り、受領資料を `docs/999_ref/<日付>/#<親Issue番号>/` に原本のまま保管し、1 PR でレビューできる粒度に分解して子 Issue を作る。曖昧な点は該当する子 Issue にコメントで質問する
61
+ 2. **資料の PR** — 受領資料だけの PR が別に作られる。マージを待たずに次へ進む
62
+ 3. **実装ループ** — 子 Issue を番号の昇順に1件ずつ実装し、Issue ごとに PR を作る
85
63
 
86
- ### フェーズ別チェックポイント
87
-
88
- | フェーズ | チェック実施者 | チェック項目 |
89
- |---|---|---|
90
- | 着手前 | PM + アーキテクト | Spec / Requirements が確定しているか、影響範囲が洗い出されているか |
91
- | 実装中 | FE / BE | 仕様との乖離が出ていないか、必要な ADR を起票したか |
92
- | 提出前 | 作者 | quality-gate(format / lint / typecheck / build)通過、テスト追加、PR 本文に仕様書更新チェック記入 |
93
- | レビュー | レビュアー + QA | 設計妥当性、型安全、テスト網羅、セキュリティ、仕様書更新の漏れ |
94
- | マージ前 | マージ実行者 | CI 通過、レビュー承認、コンフリクト解消 |
95
- | デプロイ後 | QA + 作者 | Canary 動作確認、本番疎通、リリースノート反映 |
64
+ ループが1件を終えるたびに `godd-docs`(ドキュメント同期)と `godd-submit`(push と PR 作成)が**自動で走ります。個別に呼ぶ必要はありません。**
96
65
 
97
- ### FE / BE 分担の指針
66
+ 終わったら、Issue ごとの結末が報告されます。
98
67
 
99
- | 観点 | FE 側で担保 | BE 側で担保 |
68
+ | 結末 | 意味 | 次にすること |
100
69
  |---|---|---|
101
- | 画面表示 / 状態管理 | ✅ | — |
102
- | 入力バリデーション | ✅(UX 側の即時フィードバック) | ✅(仕様整合 / セキュリティ側の最終検証) |
103
- | 認可 | (UI 制御のみ) | ✅(権限判定の本体) |
104
- | エラーハンドリング | ✅(ユーザー提示) | ✅(ログ・監視・リトライ) |
105
- | API スキーマ | (契約に沿う) | ✅(定義・破壊的変更管理) |
106
- | DB / マイグレーション | — | ✅ |
107
- | 性能 | ✅(描画 / バンドル) | ✅(クエリ / N+1 / インデックス) |
108
-
109
- 仕様書の「機能要件 / 画面要件」と「API / DB 設計」の境界に合わせて担当を分けるのが原則です。
70
+ | **done** | PR まで作成済み | PR をレビューする |
71
+ | **skipped** | 未回答の質問がある、または依存する Issue が未完了 | 質問をPMに確認する。理由は Issue のコメントにも残っている |
72
+ | **blocked** | 途中まで実装してローカルにコミット済み(push はしていない) | Issue のコメントに停止理由とブランチ名がある |
110
73
 
111
74
  ---
112
75
 
113
- ## 1. 着手前
114
-
115
- ### 1.1 Issue / Spec を確認する
76
+ ## B. Issue を1件実装する(実装モード)
116
77
 
117
- - 着手対象 Issue と、それが指す Spec(`docs/003_requirements/` 配下)が確定しているかを確認する
118
- - Spec が不足している場合は **先に Spec を整備**する(実装着手前の必須条件)
119
- - 影響範囲(変更対象の画面・API・DB)と、必要なテストの種類(unit / integration / e2e)を洗い出す
78
+ > **開発事務さんが日々行うのはこちらです。** 実際に打つ文字列は [daily_flow.template.md](./daily_flow.template.md) にあります。
120
79
 
121
- > _(Optional / godd 利用時)_ `godd_spec` で要求 → 仕様化、`godd_impact` で影響範囲、`godd_test_plan` でテスト計画を自動生成。
80
+ **1 Issue = 1 ブランチ = 1 PR** です。B を Issue の数だけ繰り返します。
122
81
 
123
- ### 1.2 main を最新化
82
+ 内部では次のツールがこの順で動きます。
124
83
 
125
- ```bash
126
- git checkout main
127
- git pull origin main
84
+ ```text
85
+ 1. godd-dev 回答を Issue へ記録 → 未回答なら中断
86
+ → ブランチ作成 → ATDD 実装 → 品質ゲート → コミット
87
+ 2. godd-review 自己レビュー(任意)
88
+ 3. godd-docs ドキュメント・仕様を同期
89
+ 4. godd-submit 品質チェック → push → PR 作成
128
90
  ```
129
91
 
130
- コンフリクトは **SSOT(仕様書)準拠側を優先**して解決します。
92
+ > **実際にチャットへ打つ文字列は [daily_flow](./daily_flow.template.md) にあります。** ツール名をそのまま打つ必要はありません(「#1234 を実装して」「ドキュメントを合わせて」「PR を出して」)。
131
93
 
132
- > _(Optional / godd 利用時)_ `godd_sync` で main 同期 + 作業中変更の退避・復元を自動化。
94
+ - 中断していた作業があれば、**日付が変わっていても同じブランチを見つけて続きから再開します**(`feat/#<Issue番号>-*` で検索)。ゼロからやり直しにはなりません
95
+ - `godd-dev` がブランチを作るため **`godd-new-branch` は不要**です
96
+ - 実装差分は `godd-dev` が、ドキュメント差分は `godd-docs` がそれぞれ責務別にコミットするため、`godd-submit` に渡る時点で作業ツリーはクリーンです
97
+ - このモードでは `godd-docs` と `godd-submit` は**自動実行されません**。案内に従って自分で呼びます
133
98
 
134
- ### 1.3 ブランチを切る
99
+ ### 回答が「未定」だったとき
135
100
 
136
- `git.template.md` のブランチ命名規則に従って作成します。
101
+ PMが「未定」「拡張性を持たせて」と答えた場合は、**回答待ちにはならず**、周辺のコードと要件から妥当な解釈で実装が進みます。
137
102
 
138
- ```bash
139
- git checkout -b feat/<topic>-<issue>-<YYYYMMDD>
140
- ```
141
-
142
- > _(Optional / godd 利用時)_ `godd_new_branch` がストア退避 → main 同期 → ブランチ作成 → 退避復元を一括実行。さらに `godd_git_workflow` を呼ぶと **sync + branch + commit** までをまとめて実行できる。
103
+ そのとき `undecided` ラベルの Issue が別に起票され、何をどう仮定したか・なぜそう判断したかが記録されます。PR 本文の「残リスク / 未確定事項」にも同じ内容が載るため、レビュー時にどこが暫定かが分かります。要件が正式に決まったら、その Issue から修正できます。
143
104
 
144
105
  ---
145
106
 
146
- ## 2. 実装
107
+ ## C. 途中で止まる条件
147
108
 
148
- - Spec を起点に実装する。Spec にない要求が発生した場合は **先に Spec を更新**してから着手する
149
- - 設計上のトレードオフが発生した場合は **ADR** として `docs/005_architecture/adr/` に記録する
150
- - 実装中に Spec とのズレが発生した場合は、本 PR 内で **仕様書側も更新**する(事後対応にしない)
109
+ 全自動で回りますが、以下は例外として止まります。
151
110
 
152
- > _(Optional / godd 利用時)_ `godd_dev` が **仕様確認 → 影響調査 → 実装 → 品質ゲート → PR 本文生成** を一気通貫で実行。`godd_adr` で ADR 起票、`godd_documentation` / `godd_docs_update` でドキュメント同期。
111
+ | 状況 | 挙動 | 対応 |
112
+ |---|---|---|
113
+ | 機密情報を検出した | **ループごと停止** | 漏洩は取り消せないため、誤検知かどうかも含めて**人間が判断する**。自分で解除しない |
114
+ | `docs/` が未作成 | `godd-docs-init` を案内して停止 | `godd-docs-init` を実行してから再開 |
115
+ | 作業ツリーが汚れている / `git fetch` が失敗する | Issue を1つも作らずに停止 | 未コミットの変更を整理してから再開(孤立した Issue を GitHub に残さないための設計) |
153
116
 
154
117
  ---
155
118
 
156
- ## 3. 品質担保
119
+ ## コミットは誰がするか
157
120
 
158
- ### 3.1 提出前チェック項目
159
-
160
- | 項目 | 内容 |
121
+ | ツール | コミットするもの |
161
122
  |---|---|
162
- | Spec 整合 | 仕様書と実装にズレがないか |
163
- | テスト | 影響範囲を unit / integration / e2e でカバーできているか |
164
- | Lint / 型チェック | プロジェクトの quality-gate(format / lint / typecheck / build)が通るか |
165
- | 互換性 | 既存 API・DB スキーマとの後方互換 |
166
- | セキュリティ | 機密情報の漏出・OWASP 観点 |
123
+ | `godd-dev` | 実装差分。実装中は未コミットのまま保ち、完了後に責務別(schema / migration・backend・frontend・tests・docs)へ分割する |
124
+ | `godd-docs` | 自身が更新したドキュメント差分 |
125
+ | `godd-submit` | **コミットしない。** 作業ツリーがクリーンであることを前提に、push と PR 作成だけを行う |
167
126
 
168
- ### 3.2 品質ゲート(必須)
169
-
170
- **ローカルで quality-gate を通したものを PR に出す**ことを提出条件とします。CI 上でも同等のゲートが走ります。
171
-
172
- サンプル(pnpm 系プロジェクトの場合):
127
+ `godd-submit` は提出前チェックが失敗しても **自分では直しません**。中断するので、`godd-dev` で修正してから呼び直します。
173
128
 
174
- ```bash
175
- pnpm quality-gate # format / lint / typecheck / build を一括実行
176
- pnpm preflight # 環境前提(Docker / Node / Python / uv 等)を検証
177
- ```
129
+ ---
178
130
 
179
- > プロジェクト固有のスタックに合わせて、上記コマンドを `make`、`go test ./... && go vet ./...`、`pytest && ruff check` 等に置き換えてください。
131
+ ## 役割分担
180
132
 
181
- > _(Optional / godd 利用時)_ `godd_check` で **Spec 整合 + テスト + Lint + 互換性 + セキュリティ** を一括検証、`godd_review` で設計・型・テスト・運用観点の AI 自己レビューを実施。
133
+ プロジェクトごとに人員配置が異なる場合は、本表の役割を兼任者にマッピングしてください。
182
134
 
183
- ---
135
+ | 役割 | 担当領域 | 主な責務 |
136
+ |---|---|---|
137
+ | PM | 要件定義 / Issue 管理 / 受け入れ | 要件整備、Issue の優先順位付け、**質問への回答**、受け入れ判定 |
138
+ | **実装担当** | Issue 単位の実装 | `godd-dev` での実装、品質ゲート通過、PR 作成、レビュー指摘への対応 |
139
+ | アーキテクト | 設計 / 横断 | ADR 起票、設計レビュー、技術スタック判断 |
140
+ | レビュアー | コード / 仕様レビュー | 設計・テスト網羅・仕様整合のレビュー |
141
+ | QA | テスト戦略 / E2E | テスト計画、シナリオベース E2E、不具合の切り分けと優先順位付け |
184
142
 
185
- ## 4. コミット
143
+ > **実装担当はエンジニア経験を前提としません。** `godd-dev` が実装・品質ゲート・コミットを行うため、担当者が行うのは「Issue を渡す」「結果を確認する」「指摘に対応する」ことです。判断に迷う場面と相談先は [daily_flow.template.md](./daily_flow.template.md) に定義しています。
186
144
 
187
- - **1 コミット = 1 責務**(フィーチャー / 修正 / リファクタ / docs 等を混ぜない)
188
- - メッセージ規則・プレフィックス・本文の書き方は `git.template.md` のコミットメッセージ章を参照
145
+ ### フェーズ別チェックポイント
189
146
 
190
- > _(Optional / godd 利用時)_ 責務が混在している場合は `godd_commit` で責務単位の自動分割と規約準拠のメッセージ生成を行える。
147
+ | フェーズ | 確認者 | 確認項目 |
148
+ |---|---|---|
149
+ | 起票後 | PM | 子 Issue の粒度が適切か、質問に回答したか |
150
+ | 実装後 | 実装担当 | 品質ゲートを通過し、どう終わったか(できた / 質問で止まった / 途中で止まった)を確認したか |
151
+ | レビュー | レビュアー + QA | 設計妥当性、テスト網羅、セキュリティ、**仕様書更新の漏れ** |
152
+ | マージ前 | マージ実行者 | CI 通過、レビュー承認、コンフリクト解消 |
153
+ | デプロイ後 | QA + 実装担当 | 動作確認、リリースノート反映 |
191
154
 
192
155
  ---
193
156
 
194
- ## 5. 提出
157
+ ## 品質ゲート
195
158
 
196
- ### 5.1 一般フロー
159
+ **ローカルで品質ゲートを通したものを PR に出す**ことを提出条件とします。CI 上でも同等のゲートが走ります。
197
160
 
198
- | 手順 | 内容 |
161
+ | 項目 | 内容 |
199
162
  |---|---|
200
- | 1. quality-gate を通す | ローカルで通過してから提出 |
201
- | 2. push する | `git push -u origin <branch>` |
202
- | 3. PR を作成する | `git.template.md` の PR テンプレに沿って本文を記入 |
203
-
204
- PR 本文には **仕様書更新チェック(SDD 必須項目)** を必ず記入します。
163
+ | Spec 整合 | 仕様書と実装にズレがないか |
164
+ | テスト | 影響範囲を unit / integration / e2e でカバーできているか |
165
+ | Lint / 型チェック / ビルド | プロジェクトの品質ゲートが通るか |
166
+ | 互換性 | 今動いているものを壊していないか(API・データベースの作りとの互換) |
167
+ | セキュリティ | 鍵やパスワードが混ざっていないか、よくある攻撃への備えができているか |
205
168
 
206
- ### 5.2 _(Optional / godd 利用時)_
169
+ サンプル(pnpm 系プロジェクトの場合):
207
170
 
208
- ```text
209
- godd_submit # 品質チェック → push → PR 作成 を一括実行
171
+ ```bash
172
+ pnpm quality-gate # format / lint / typecheck / build を一括実行
173
+ pnpm preflight # 環境前提(Docker / Node / Python 等)を検証
210
174
  ```
211
175
 
212
- 個別に進めたい場合は `godd_push` / `godd_push_execute` / `godd_pr_create` を順に呼び出します。
176
+ > プロジェクトのスタックに合わせて、`make`、`go test ./... && go vet ./...`、`pytest && ruff check` 等に置き換えてください。
177
+
178
+ 失敗した場合の対処は [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md) を参照してください。
213
179
 
214
180
  ---
215
181
 
216
- ## 6. レビュー → マージ
182
+ ## レビュー → マージ
217
183
 
218
184
  | 役割 | アクション |
219
185
  |---|---|
220
- | 作者 | Draft で PR 起票 → 自己レビュー完了後 Ready for Review に変更 |
221
- | レビュアー | コメント → 修正依頼 / 承認(観点は「役割分担とチェック体制」を参照) |
222
- | 作者 | 指摘対応 → 再依頼 |
223
- | マージ実行者 | **Squash merge** で main に反映、ブランチは自動削除 |
186
+ | 作者 | PR を出す(`godd-submit`)。**最初からレビュー可能な状態**で作られるため、切り替え操作は不要 |
187
+ | レビュアー | コメント → 修正依頼 / 承認 |
188
+ | 作者 | 指摘対応(`godd-dev` に指摘内容を伝えて修正)→ 再依頼 |
189
+ | マージ実行者 | **Squash merge** で `main` に反映、ブランチは自動削除 |
224
190
 
225
- PR 本文・コミットメッセージ・ブランチ命名は `git.template.md` のルールに従います。
226
-
227
- > _(Optional / godd 利用時)_ `godd_pr_analyze` で差分のサマリと自動チェックを実施できる。
191
+ PR 本文・コミットメッセージ・ブランチ命名は [git.template.md](./git.template.md) に従います。
228
192
 
229
193
  ---
230
194
 
231
- ## 7. デプロイ
195
+ ## 担当範囲の外
232
196
 
233
- 各環境のデプロイ手順は `docs/007_guides/` 配下のセットアップガイドを参照します。
197
+ 次は**実装担当の担当範囲外**です。手順は覚えなくて構いません。
234
198
 
235
- | 環境 | 担当 | タイミング |
199
+ | 作業 | 誰が行うか | 自分がすること |
236
200
  |---|---|---|
237
- | ローカル | 開発者個別 | 任意 |
238
- | クラウド(初回) | チーム 1 名 | プロジェクト初期構築時 |
239
- | クラウド(更新) | リリース担当 | main マージ後・リリース時 |
201
+ | PR のマージ | レビュアー | 指摘に対応する。マージは待つ |
202
+ | デプロイ | リリース担当 | なし |
203
+ | リリース(タグ付与・リリースノート) | リリース担当 | 完了報告のみ |
204
+ | クラウドインフラの構築 | インフラ担当 | なし |
205
+ | 権限の付与 | 管理者 | 必要になったら依頼する |
206
+
207
+ 依頼が必要な場面と伝え方は [judgment.template.md](./judgment.template.md) にあります。
240
208
 
241
- 参照先:
209
+ ---
242
210
 
243
- - `docs/007_guides/setup_local_environment.template.md`
244
- - `docs/007_guides/setup_infra.template.md`
211
+ ## うまくいかないとき
245
212
 
246
- > _(Optional / godd Notes 利用時)_ `godd notes compose` / `godd notes infra` / `godd notes deploy` / `godd notes status` で各環境のデプロイ・状態確認が可能。
213
+ | 状況 | どうするか |
214
+ |---|---|
215
+ | 手が止まった・進めてよいか分からない | [judgment.template.md](./judgment.template.md) |
216
+ | エラーが出た | [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md) |
217
+ | 言葉が分からない | [../007_guides/glossary.md](../007_guides/glossary.md) |
247
218
 
248
219
  ---
249
220
 
250
- ## 8. リリース
221
+ ## このフローで使うツール
251
222
 
252
- | ステップ | 担当 |
223
+ | ツール | 用途 |
253
224
  |---|---|
254
- | 1. リリースノート作成 | リリース担当 |
255
- | 2. Canary リリース | main マージ時の自動タグ付与(`v<X.Y.Z>-canary.<N>`) |
256
- | 3. 動作確認 | QA + 作者(Canary 環境で疎通・基本シナリオ) |
257
- | 4. 本番リリース | リリース担当(`v<X.Y.Z>` タグ付与 → 本番デプロイ) |
258
- | 5. 完了報告 | 作者 |
225
+ | `godd-dev` | 起票と実装。**このフローの入口** |
226
+ | `godd-docs` | ドキュメント・仕様の同期(起票モードのループ内では自動実行) |
227
+ | `godd-submit` | push と PR 作成(起票モードのループ内では自動実行) |
228
+ | `godd-check` | 提出前の品質チェック(任意) |
229
+ | `godd-review` | 自己レビュー(任意) |
230
+ | `godd-sync` | `main` の最新化 |
231
+ | `godd-slack-question` | Issue の不明点を Slack のスレッドで PM に質問(起票直後に自動で走る) |
259
232
 
260
- > _(Optional / godd 利用時)_ `godd_release_notes` でリリースノート生成、`godd_report` で完了報告を自動化。
233
+ `godd-dev` がブランチ作成もコミットも行うため、`godd-new-branch` や `godd-commit` を本フローで呼ぶ必要はありません。
234
+
235
+ **全ツールの一覧**は [../007_guides/godd_tools.md](../007_guides/godd_tools.md) にあります。
261
236
 
262
237
  ---
263
238
 
264
- ## (Optional) godd 補助ツール早見表
239
+ ## godd を使わない場合
265
240
 
266
- godd を利用するプロジェクトでは、本ワークフローの各ステップを `godd_*` MCP ツールで自動化できます。godd を利用しないプロジェクトでは本章は読み飛ばして構いません。
241
+ > **GoDD を使っているなら読み飛ばして構いません。** 導入していないプロジェクトのために、同じ考え方を手作業で行う場合の手順を残しています。
267
242
 
268
- | ツール | フェーズ | 概要 |
269
- |---|---|---|
270
- | `godd_spec` | 着手前 | 要求 → 仕様化 |
271
- | `godd_impact` | 着手前 | 影響範囲分析 |
272
- | `godd_test_plan` | 着手前 | テスト計画 |
273
- | `godd_sync` | 着手前 | main 同期 |
274
- | `godd_new_branch` | 着手前 | ブランチ作成 |
275
- | `godd_git_workflow` | 着手前 | sync + branch + commit を一括 |
276
- | `godd_dev` | 実装 | 開発メインエントリ |
277
- | `godd_adr` | 実装 | 設計判断の記録 |
278
- | `godd_documentation` / `godd_docs_update` | 実装 | ドキュメント同期 |
279
- | `godd_check` | 品質 | 提出前チェック |
280
- | `godd_review` | 品質 | CTO レベル自己レビュー |
281
- | `godd_commit` | コミット | 責務単位コミット |
282
- | `godd_push` / `godd_push_execute` / `godd_pr_create` | 提出 | 個別実行 |
283
- | `godd_submit` | 提出 | 一括実行(推奨) |
284
- | `godd_pr_analyze` | レビュー | PR 差分の分析 |
285
- | `godd_release_notes` | リリース | リリースノート生成 |
286
- | `godd_notes_deploy` | デプロイ | Notes デプロイ案内 |
287
- | `godd_report` | 完了 | 完了報告 |
288
-
289
- > 完全な一覧(29 件)と詳細は `docs/007_guides/godd_usage.md` を参照。
243
+ | ステップ | 内容 |
244
+ |---|---|
245
+ | 1. 着手前 | Issue と仕様の確定を確認。不足していれば**先に仕様を整備する**。影響範囲と必要なテストを洗い出す |
246
+ | 2. main 同期 | `git checkout main && git pull origin main`。コンフリクトは**仕様書準拠側を優先** |
247
+ | 3. ブランチ作成 | `git checkout -b feat/#<issue>-<topic>-<YYYYMMDD>` |
248
+ | 4. 実装 | 仕様を起点に実装。仕様にない要求が出たら**先に仕様を更新**する。トレードオフは ADR に記録 |
249
+ | 5. 品質ゲート | 上記「品質ゲート」の項目をローカルで通す |
250
+ | 6. コミット | **1 コミット = 1 責務**。schema / backend / frontend / tests / docs を分ける |
251
+ | 7. 提出 | push → PR 作成。PR 本文の「仕様書更新チェック」を必ず埋める |
252
+ | 8. レビュー → マージ | 上記「レビュー → マージ」と同じ |
253
+ | 9. デプロイ・リリース | 「担当範囲の外」のとおり、リリース担当が行う |
254
+
255
+ ---
256
+
257
+ ## 関連ドキュメント
258
+
259
+ - 毎日の進め方: [daily_flow.template.md](./daily_flow.template.md)
260
+ - 判断に迷ったら: [judgment.template.md](./judgment.template.md)
261
+ - Git 運用ルール: [git.template.md](./git.template.md)
262
+ - 用語が分からない: [../007_guides/glossary.md](../007_guides/glossary.md)
263
+ - 困ったとき: [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md)
264
+ - ツール一覧: [../007_guides/godd_tools.md](../007_guides/godd_tools.md)
@@ -0,0 +1,85 @@
1
+ # ガイド・セットアップ
2
+
3
+ **必要になったときに引くフォルダ**です。全部を読む必要はありません。
4
+
5
+ まず、自分がどれに当てはまるかを選んでください。
6
+
7
+ ---
8
+
9
+ ## あなたはどれですか
10
+
11
+ ### A. これから開発に参加する(はじめての人)
12
+
13
+ **[getting_started.md](./getting_started.md) だけを読んでください。** 他は不要です。
14
+
15
+ 受け取るものの確認から最初の PR までが一本道でまとまっています(所要 1〜1.5時間)。
16
+
17
+ > **まだプロジェクトを手元に取得(clone)していなくても読めます。** GoDD Notes、または GitHub の Web 画面で開いてください。
18
+
19
+ ### B. すでにセットアップ済みで、日々開発している
20
+
21
+ 日常の手順は **[../006_development_workflow/daily_flow.template.md](../006_development_workflow/daily_flow.template.md)** にあります。
22
+
23
+ このフォルダからは、必要なときだけ以下を引いてください。
24
+
25
+ | 場面 | ドキュメント |
26
+ |---|---|
27
+ | 言葉の意味が分からない | [glossary.md](./glossary.md) |
28
+ | エラーが出た(画面に出た言葉から引く) | [troubleshooting.md](./troubleshooting.md) |
29
+ | 進めてよいか迷った・人に聞くか判断したい | [../006_development_workflow/judgment.template.md](../006_development_workflow/judgment.template.md) |
30
+ | どのツールを使うか探したい | [godd_tools.md](./godd_tools.md) |
31
+ | ツールの使い方・フローを知りたい | [godd_usage.md](./godd_usage.md) |
32
+ | Notes で何ができるか確認したい | [godd_notes_features.md](./godd_notes_features.md) |
33
+ | Notes の操作方法を知りたい | [godd_notes_usage.md](./godd_notes_usage.md) |
34
+
35
+ ### C. チームに GoDD を導入する(導入担当)
36
+
37
+ | # | ドキュメント | 内容 |
38
+ |---|---|---|
39
+ | 1 | [setup_godd.md](./setup_godd.md) | GoDD 本体の導入(ZIP / npm の2経路) |
40
+ | 2 | [setup_godd_notes.md](./setup_godd_notes.md) | GoDD Notes の構築(ローカル 〜 クラウド) |
41
+ | 3 | [bot-token-setup.md](./bot-token-setup.md) | GitHub App の作成と3値の受け渡し |
42
+ | 4 | [setup_local_environment.template.md](./setup_local_environment.template.md) | ローカルに Notes を立てる |
43
+
44
+ ### D. 本番クラウド環境を構築する(インフラ担当)
45
+
46
+ **[infra/](./infra/) フォルダにまとまっています。** → [infra/README.md](./infra/README.md)
47
+
48
+ ローカル利用だけなら、このフォルダは**読む必要がありません**。
49
+
50
+ ---
51
+
52
+ ## ファイル一覧
53
+
54
+ | ドキュメント | 対象 | 内容 |
55
+ |---|---|---|
56
+ | [getting_started.md](./getting_started.md) | **はじめての人** | セットアップ 〜 最初の PR まで |
57
+ | [glossary.md](./glossary.md) | 全員 | 用語集 |
58
+ | [troubleshooting.md](./troubleshooting.md) | 全員 | 症状別の対処・相談の判断基準 |
59
+ | [godd_tools.md](./godd_tools.md) | 全員 | GoDD ツール全31件のリファレンス |
60
+ | [godd_usage.md](./godd_usage.md) | GoDD 利用者 | ツールの使い方・場面ごとの流れ別フロー |
61
+ | [godd_notes_features.md](./godd_notes_features.md) | Notes 利用者 | Notes の機能一覧 |
62
+ | [godd_notes_usage.md](./godd_notes_usage.md) | Notes 利用者 | Notes の操作方法 |
63
+ | [setup_godd.md](./setup_godd.md) | 導入担当 | GoDD の導入手順 |
64
+ | [setup_godd_notes.md](./setup_godd_notes.md) | 導入担当 | Notes の構築手順 |
65
+ | [setup_local_environment.template.md](./setup_local_environment.template.md) | 導入担当 | ローカル Notes の構築 |
66
+ | [bot-token-setup.md](./bot-token-setup.md) | 導入担当 | GitHub App の設定 |
67
+ | [infra/](./infra/) | インフラ担当 | クラウド構築(AWS 構成・GuardDuty・コスト監視・Terraform) |
68
+
69
+ ---
70
+
71
+ ## 迷ったときの原則
72
+
73
+ | 迷い | 答え |
74
+ |---|---|
75
+ | 全部読むべき? | **いいえ。** 必要になったときに引く |
76
+ | AWS のガイドは読むべき? | **本番クラウドを構築する担当者だけ。** ローカル利用なら不要 |
77
+ | 仕様とドキュメントが食い違っている | **仕様書(`docs/003_requirements/`)が正**。食い違いを見つけたら Issue を立てる |
78
+ | このフォルダに書いてあることが実態と違う | Issue を立てて報告する。**放置しない** |
79
+
80
+ ---
81
+
82
+ ## 関連フォルダ
83
+
84
+ - 開発の進め方: [../006_development_workflow/](../006_development_workflow/)
85
+ - 仕様書: `../003_requirements/`