@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.
- package/README.md +457 -85
- package/dist/godd.cjs +293 -244
- package/dist/godd.js +1005 -321
- package/dist/index.js +148 -119
- package/notes/app/DESIGN.md +5 -2
- package/notes/app/e2e/fixtures.ts +39 -0
- package/notes/app/e2e/ja-typography-visual.spec.ts +185 -0
- package/notes/app/e2e/ja-typography-visual.spec.ts-snapshots/ja-typography-desktop-1280-chromium-linux.png +0 -0
- package/notes/app/e2e/ja-typography-visual.spec.ts-snapshots/ja-typography-mobile-360-chromium-linux.png +0 -0
- package/notes/app/e2e/rtl-logical-properties.spec.ts +36 -0
- package/notes/app/package-lock.json +0 -8
- package/notes/app/package.json +0 -1
- package/notes/app/playwright.config.ts +7 -0
- package/notes/app/pnpm-lock.yaml +0 -8
- package/notes/app/src/components/BranchSelectorModal.tsx +8 -8
- package/notes/app/src/components/CommentPanel.tsx +5 -5
- package/notes/app/src/components/DiffPreview.tsx +4 -4
- package/notes/app/src/components/FileContentView.tsx +1 -1
- package/notes/app/src/components/FileContextMenu.tsx +1 -1
- package/notes/app/src/components/FileInfoPanel.branch-tab.test.tsx +3 -35
- package/notes/app/src/components/IssueCommentThread.test.tsx +40 -19
- package/notes/app/src/components/IssueDetailView.test.tsx +3 -40
- package/notes/app/src/components/IssueList.tsx +3 -3
- package/notes/app/src/components/LabelSelector.tsx +1 -1
- package/notes/app/src/components/MarkdownEditor.tsx +1 -1
- package/notes/app/src/components/Skeleton.tsx +2 -2
- package/notes/app/src/components/ToastContainer.tsx +1 -1
- package/notes/app/src/components/TreeNode.tsx +6 -6
- package/notes/app/src/contexts/ToastContext.tsx +1 -1
- package/notes/app/src/hooks/useComments.ts +1 -1
- package/notes/app/src/hooks/useEditSession.ts +1 -1
- package/notes/app/src/lib/api.ts +1 -13
- package/notes/app/src/lib/csv-utils.ts +1 -1
- package/notes/app/src/lib/postLoginRedirect.ts +1 -1
- package/notes/app/src/lib/rtl-logical-properties.test.ts +59 -0
- package/notes/app/src/lib/user-colors.ts +1 -1
- package/notes/app/src/pages/MainPage.tsx +2 -2
- package/notes/app/src/pages/SettingsPage.test.tsx +40 -10
- package/notes/app/src/pages/SettingsPage.tsx +1 -1
- package/notes/app/src/pages/UserManagementPage.tsx +7 -7
- package/notes/app/src/styles/globals.css +17 -0
- package/notes/app/src/test/mockPeriodicSync.ts +68 -0
- package/notes/app/src/test/mocks.ts +1 -1
- package/package.json +7 -3
- package/templates/feedback/feedback-lambda/index.mjs +342 -0
- package/templates/feedback/frontend/FeedbackWidget.tsx +574 -0
- package/templates/feedback/frontend/api.ts +38 -0
- package/templates/feedback/frontend/composePinImage.ts +80 -0
- package/templates/feedback/frontend/config.ts +14 -0
- package/templates/feedback/frontend/types.ts +41 -0
- package/templates/feedback/terraform/Makefile +43 -0
- package/templates/feedback/terraform/backend.tf +10 -0
- package/templates/feedback/terraform/lambda.tf +95 -0
- package/templates/feedback/terraform/local.tf +12 -0
- package/templates/feedback/terraform/output.tf +9 -0
- package/templates/feedback/terraform/provider.tf +24 -0
- package/templates/feedback/terraform/variables.tf +25 -0
- package/templates/github-actions/aws/deploy-notes.yml.hbs +193 -10
- package/templates/notes-docs/001_project/README.md +0 -2
- package/templates/notes-docs/002_business_flow/README.md +19 -0
- package/templates/notes-docs/003_requirements/README.md +20 -0
- package/templates/notes-docs/003_requirements/questions.csv +1 -0
- package/templates/notes-docs/003_requirements/spec/README.md +11 -0
- package/templates/notes-docs/004_pages/README.md +22 -0
- package/templates/notes-docs/005_architecture/README.md +20 -0
- package/templates/notes-docs/006_development_workflow/README.md +67 -0
- package/templates/notes-docs/006_development_workflow/daily_flow.template.md +303 -0
- package/templates/notes-docs/006_development_workflow/git.template.md +72 -20
- package/templates/notes-docs/006_development_workflow/judgment.template.md +182 -0
- package/templates/notes-docs/006_development_workflow/workflow.template.md +167 -192
- package/templates/notes-docs/007_guides/README.md +85 -0
- package/templates/notes-docs/007_guides/bot-token-setup.md +174 -0
- package/templates/notes-docs/007_guides/getting_started.md +112 -0
- package/templates/notes-docs/007_guides/glossary.md +145 -0
- package/templates/notes-docs/007_guides/godd_notes_features.md +105 -0
- package/templates/notes-docs/007_guides/godd_notes_usage.md +28 -19
- package/templates/notes-docs/007_guides/godd_tools.md +129 -0
- package/templates/notes-docs/007_guides/godd_usage.md +88 -95
- package/templates/notes-docs/007_guides/infra/README.md +57 -0
- package/templates/notes-docs/007_guides/{setup_aws_accounts.md → infra/setup_aws_accounts.md} +3 -2
- package/templates/notes-docs/007_guides/{setup_infra.template.md → infra/setup_infra.template.md} +15 -4
- package/templates/notes-docs/007_guides/setup_godd.md +66 -23
- package/templates/notes-docs/007_guides/setup_godd_notes.md +95 -42
- package/templates/notes-docs/007_guides/setup_godd_notes.md.styles.json +2 -2
- package/templates/notes-docs/007_guides/setup_local_environment.template.md +81 -20
- package/templates/notes-docs/007_guides/troubleshooting.md +225 -0
- package/templates/notes-docs/999_ref/README.md +23 -0
- package/templates/notes-docs/GENERATED.md +1 -1
- package/templates/notes-docs/README.md +64 -34
- package/templates/terraform/aws/iam.tf.hbs +361 -4
- /package/templates/notes-docs/007_guides/{setup_aws_cost_alert.md → infra/setup_aws_cost_alert.md} +0 -0
- /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
|
-
|
|
4
|
-
ripla の標準フローを構成・章立てとして共通化することを目的とし、ツール選定・ブランチ命名・レビュー要件などプロジェクト固有の差分は、本ファイルを各チームで書き換えて運用してください。
|
|
3
|
+
**開発全体がどう流れていて、その中で自分がどこを担当するのか**を示すページです。
|
|
5
4
|
|
|
6
|
-
|
|
7
|
-
> **godd 利用は Optional**: 本ワークフローは godd を使わなくても成立します。godd 利用時の自動化手段は各ステップ末尾に `_(Optional / godd 利用時)_` として補足します。
|
|
5
|
+
毎日の手順は [daily_flow.template.md](./daily_flow.template.md) にあります。**日々の作業はそちらだけで進みます。** このページは、次のようなときに開いてください。
|
|
8
6
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
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
|
-
>
|
|
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
|
-
|
|
38
|
-
- ここでは Issue 化せず、章立て・粒度・受け入れ条件のドキュメント構造化に集中する
|
|
39
|
-
- 完了条件は「キックオフ時点で開発着手できる粒度まで仕様が落ちていること」
|
|
24
|
+
プログラムと仕様書が食い違っていたら、**直すのはプログラムのほう**です。Issue も PR も実装も、すべて「仕様書のとおりになっていない部分」を埋めるために存在します。
|
|
40
25
|
|
|
41
|
-
|
|
26
|
+
- **書く前に仕様を整える** — 要求を仕様に落とし、`docs/003_requirements/` に確定させてから着手する
|
|
27
|
+
- **コードと仕様を同時に更新する** — 実装中にズレが生じたら、同じ PR で仕様側も直す
|
|
28
|
+
- **PR で仕様書更新の漏れを必ず確認する** — PR テンプレの「仕様書更新チェック」を必ず埋める
|
|
29
|
+
- **設計判断は ADR に残す** — 後から「なぜこうしたか」を辿れるようにする
|
|
42
30
|
|
|
43
|
-
|
|
44
|
-
- 仕様変更・追加要望も原則 Issue として起票し、必要に応じて Requirements 文書へバックポートする
|
|
45
|
-
- Issue → ブランチ → PR の流れは下記「全体像」以降の手順に従う
|
|
31
|
+
**仕様書の更新漏れは「後回しにしてよい宿題」ではなく、バグと同じ扱い**です。
|
|
46
32
|
|
|
47
33
|
---
|
|
48
34
|
|
|
49
35
|
## 全体像
|
|
50
36
|
|
|
51
37
|
```mermaid
|
|
52
|
-
flowchart
|
|
53
|
-
A[
|
|
54
|
-
B -->
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
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
|
-
|
|
56
|
+
> **この節は主に PM の作業です。** 開発事務さんは、ここで作られた Issue を受け取るところから始まります(B へ)。
|
|
74
57
|
|
|
75
|
-
|
|
58
|
+
議事録や受領資料を渡すと、**Issue の作成から実装までが一度に進みます。途中で承認は求められません。**
|
|
76
59
|
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
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
|
-
|
|
66
|
+
終わったら、Issue ごとの結末が報告されます。
|
|
98
67
|
|
|
99
|
-
|
|
|
68
|
+
| 結末 | 意味 | 次にすること |
|
|
100
69
|
|---|---|---|
|
|
101
|
-
|
|
|
102
|
-
|
|
|
103
|
-
|
|
|
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
|
-
##
|
|
114
|
-
|
|
115
|
-
### 1.1 Issue / Spec を確認する
|
|
76
|
+
## B. Issue を1件実装する(実装モード)
|
|
116
77
|
|
|
117
|
-
|
|
118
|
-
- Spec が不足している場合は **先に Spec を整備**する(実装着手前の必須条件)
|
|
119
|
-
- 影響範囲(変更対象の画面・API・DB)と、必要なテストの種類(unit / integration / e2e)を洗い出す
|
|
78
|
+
> **開発事務さんが日々行うのはこちらです。** 実際に打つ文字列は [daily_flow.template.md](./daily_flow.template.md) にあります。
|
|
120
79
|
|
|
121
|
-
|
|
80
|
+
**1 Issue = 1 ブランチ = 1 PR** です。B を Issue の数だけ繰り返します。
|
|
122
81
|
|
|
123
|
-
|
|
82
|
+
内部では次のツールがこの順で動きます。
|
|
124
83
|
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
|
|
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
|
-
|
|
92
|
+
> **実際にチャットへ打つ文字列は [daily_flow](./daily_flow.template.md) にあります。** ツール名をそのまま打つ必要はありません(「#1234 を実装して」「ドキュメントを合わせて」「PR を出して」)。
|
|
131
93
|
|
|
132
|
-
|
|
94
|
+
- 中断していた作業があれば、**日付が変わっていても同じブランチを見つけて続きから再開します**(`feat/#<Issue番号>-*` で検索)。ゼロからやり直しにはなりません
|
|
95
|
+
- `godd-dev` がブランチを作るため **`godd-new-branch` は不要**です
|
|
96
|
+
- 実装差分は `godd-dev` が、ドキュメント差分は `godd-docs` がそれぞれ責務別にコミットするため、`godd-submit` に渡る時点で作業ツリーはクリーンです
|
|
97
|
+
- このモードでは `godd-docs` と `godd-submit` は**自動実行されません**。案内に従って自分で呼びます
|
|
133
98
|
|
|
134
|
-
###
|
|
99
|
+
### 回答が「未定」だったとき
|
|
135
100
|
|
|
136
|
-
|
|
101
|
+
PMが「未定」「拡張性を持たせて」と答えた場合は、**回答待ちにはならず**、周辺のコードと要件から妥当な解釈で実装が進みます。
|
|
137
102
|
|
|
138
|
-
|
|
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
|
-
##
|
|
107
|
+
## C. 途中で止まる条件
|
|
147
108
|
|
|
148
|
-
|
|
149
|
-
- 設計上のトレードオフが発生した場合は **ADR** として `docs/005_architecture/adr/` に記録する
|
|
150
|
-
- 実装中に Spec とのズレが発生した場合は、本 PR 内で **仕様書側も更新**する(事後対応にしない)
|
|
109
|
+
全自動で回りますが、以下は例外として止まります。
|
|
151
110
|
|
|
152
|
-
|
|
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
|
-
##
|
|
119
|
+
## コミットは誰がするか
|
|
157
120
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
| 項目 | 内容 |
|
|
121
|
+
| ツール | コミットするもの |
|
|
161
122
|
|---|---|
|
|
162
|
-
|
|
|
163
|
-
|
|
|
164
|
-
|
|
|
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
|
-
|
|
169
|
-
|
|
170
|
-
**ローカルで quality-gate を通したものを PR に出す**ことを提出条件とします。CI 上でも同等のゲートが走ります。
|
|
171
|
-
|
|
172
|
-
サンプル(pnpm 系プロジェクトの場合):
|
|
127
|
+
`godd-submit` は提出前チェックが失敗しても **自分では直しません**。中断するので、`godd-dev` で修正してから呼び直します。
|
|
173
128
|
|
|
174
|
-
|
|
175
|
-
pnpm quality-gate # format / lint / typecheck / build を一括実行
|
|
176
|
-
pnpm preflight # 環境前提(Docker / Node / Python / uv 等)を検証
|
|
177
|
-
```
|
|
129
|
+
---
|
|
178
130
|
|
|
179
|
-
|
|
131
|
+
## 役割分担
|
|
180
132
|
|
|
181
|
-
|
|
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
|
-
|
|
143
|
+
> **実装担当はエンジニア経験を前提としません。** `godd-dev` が実装・品質ゲート・コミットを行うため、担当者が行うのは「Issue を渡す」「結果を確認する」「指摘に対応する」ことです。判断に迷う場面と相談先は [daily_flow.template.md](./daily_flow.template.md) に定義しています。
|
|
186
144
|
|
|
187
|
-
|
|
188
|
-
- メッセージ規則・プレフィックス・本文の書き方は `git.template.md` のコミットメッセージ章を参照
|
|
145
|
+
### フェーズ別チェックポイント
|
|
189
146
|
|
|
190
|
-
|
|
147
|
+
| フェーズ | 確認者 | 確認項目 |
|
|
148
|
+
|---|---|---|
|
|
149
|
+
| 起票後 | PM | 子 Issue の粒度が適切か、質問に回答したか |
|
|
150
|
+
| 実装後 | 実装担当 | 品質ゲートを通過し、どう終わったか(できた / 質問で止まった / 途中で止まった)を確認したか |
|
|
151
|
+
| レビュー | レビュアー + QA | 設計妥当性、テスト網羅、セキュリティ、**仕様書更新の漏れ** |
|
|
152
|
+
| マージ前 | マージ実行者 | CI 通過、レビュー承認、コンフリクト解消 |
|
|
153
|
+
| デプロイ後 | QA + 実装担当 | 動作確認、リリースノート反映 |
|
|
191
154
|
|
|
192
155
|
---
|
|
193
156
|
|
|
194
|
-
##
|
|
157
|
+
## 品質ゲート
|
|
195
158
|
|
|
196
|
-
|
|
159
|
+
**ローカルで品質ゲートを通したものを PR に出す**ことを提出条件とします。CI 上でも同等のゲートが走ります。
|
|
197
160
|
|
|
198
|
-
|
|
|
161
|
+
| 項目 | 内容 |
|
|
199
162
|
|---|---|
|
|
200
|
-
|
|
|
201
|
-
|
|
|
202
|
-
|
|
|
203
|
-
|
|
204
|
-
|
|
163
|
+
| Spec 整合 | 仕様書と実装にズレがないか |
|
|
164
|
+
| テスト | 影響範囲を unit / integration / e2e でカバーできているか |
|
|
165
|
+
| Lint / 型チェック / ビルド | プロジェクトの品質ゲートが通るか |
|
|
166
|
+
| 互換性 | 今動いているものを壊していないか(API・データベースの作りとの互換) |
|
|
167
|
+
| セキュリティ | 鍵やパスワードが混ざっていないか、よくある攻撃への備えができているか |
|
|
205
168
|
|
|
206
|
-
|
|
169
|
+
サンプル(pnpm 系プロジェクトの場合):
|
|
207
170
|
|
|
208
|
-
```
|
|
209
|
-
|
|
171
|
+
```bash
|
|
172
|
+
pnpm quality-gate # format / lint / typecheck / build を一括実行
|
|
173
|
+
pnpm preflight # 環境前提(Docker / Node / Python 等)を検証
|
|
210
174
|
```
|
|
211
175
|
|
|
212
|
-
|
|
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
|
-
##
|
|
182
|
+
## レビュー → マージ
|
|
217
183
|
|
|
218
184
|
| 役割 | アクション |
|
|
219
185
|
|---|---|
|
|
220
|
-
| 作者 |
|
|
221
|
-
| レビュアー | コメント → 修正依頼 /
|
|
222
|
-
| 作者 |
|
|
223
|
-
| マージ実行者 | **Squash merge** で main に反映、ブランチは自動削除 |
|
|
186
|
+
| 作者 | PR を出す(`godd-submit`)。**最初からレビュー可能な状態**で作られるため、切り替え操作は不要 |
|
|
187
|
+
| レビュアー | コメント → 修正依頼 / 承認 |
|
|
188
|
+
| 作者 | 指摘対応(`godd-dev` に指摘内容を伝えて修正)→ 再依頼 |
|
|
189
|
+
| マージ実行者 | **Squash merge** で `main` に反映、ブランチは自動削除 |
|
|
224
190
|
|
|
225
|
-
PR 本文・コミットメッセージ・ブランチ命名は
|
|
226
|
-
|
|
227
|
-
> _(Optional / godd 利用時)_ `godd_pr_analyze` で差分のサマリと自動チェックを実施できる。
|
|
191
|
+
PR 本文・コミットメッセージ・ブランチ命名は [git.template.md](./git.template.md) に従います。
|
|
228
192
|
|
|
229
193
|
---
|
|
230
194
|
|
|
231
|
-
##
|
|
195
|
+
## 担当範囲の外
|
|
232
196
|
|
|
233
|
-
|
|
197
|
+
次は**実装担当の担当範囲外**です。手順は覚えなくて構いません。
|
|
234
198
|
|
|
235
|
-
|
|
|
199
|
+
| 作業 | 誰が行うか | 自分がすること |
|
|
236
200
|
|---|---|---|
|
|
237
|
-
|
|
|
238
|
-
|
|
|
239
|
-
|
|
|
201
|
+
| PR のマージ | レビュアー | 指摘に対応する。マージは待つ |
|
|
202
|
+
| デプロイ | リリース担当 | なし |
|
|
203
|
+
| リリース(タグ付与・リリースノート) | リリース担当 | 完了報告のみ |
|
|
204
|
+
| クラウドインフラの構築 | インフラ担当 | なし |
|
|
205
|
+
| 権限の付与 | 管理者 | 必要になったら依頼する |
|
|
206
|
+
|
|
207
|
+
依頼が必要な場面と伝え方は [judgment.template.md](./judgment.template.md) にあります。
|
|
240
208
|
|
|
241
|
-
|
|
209
|
+
---
|
|
242
210
|
|
|
243
|
-
|
|
244
|
-
- `docs/007_guides/setup_infra.template.md`
|
|
211
|
+
## うまくいかないとき
|
|
245
212
|
|
|
246
|
-
|
|
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
|
-
##
|
|
221
|
+
## このフローで使うツール
|
|
251
222
|
|
|
252
|
-
|
|
|
223
|
+
| ツール | 用途 |
|
|
253
224
|
|---|---|
|
|
254
|
-
|
|
|
255
|
-
|
|
|
256
|
-
|
|
|
257
|
-
|
|
|
258
|
-
|
|
|
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
|
-
|
|
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
|
-
##
|
|
239
|
+
## godd を使わない場合
|
|
265
240
|
|
|
266
|
-
|
|
241
|
+
> **GoDD を使っているなら読み飛ばして構いません。** 導入していないプロジェクトのために、同じ考え方を手作業で行う場合の手順を残しています。
|
|
267
242
|
|
|
268
|
-
|
|
|
269
|
-
|
|
270
|
-
|
|
|
271
|
-
|
|
|
272
|
-
|
|
|
273
|
-
|
|
|
274
|
-
|
|
|
275
|
-
|
|
|
276
|
-
|
|
|
277
|
-
|
|
|
278
|
-
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
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/`
|