@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
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# 開発の進め方
|
|
2
|
+
|
|
3
|
+
**日々の開発をどう進めるか**をまとめたフォルダです。エンジニア経験は前提としません。
|
|
4
|
+
|
|
5
|
+
**毎日見るのは [daily_flow.template.md](./daily_flow.template.md) の1本だけ**です。他は必要になったときに開きます。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 読む順番
|
|
10
|
+
|
|
11
|
+
| # | ドキュメント | いつ読むか |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| 1 | [daily_flow.template.md](./daily_flow.template.md) | **毎日これだけ見れば進められる** |
|
|
14
|
+
| 2 | [judgment.template.md](./judgment.template.md) | **手が止まって、進めてよいか迷ったとき** |
|
|
15
|
+
| 3 | [workflow.template.md](./workflow.template.md) | 全体像や、誰が何を担当するか確認したいとき |
|
|
16
|
+
| 4 | [git.template.md](./git.template.md) | ブランチ名やコミットの意味を確認したいとき |
|
|
17
|
+
|
|
18
|
+
**はじめて参加する人は、まず [../007_guides/getting_started.md](../007_guides/getting_started.md) を先に読んでください。**
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 役割別の最短ルート
|
|
23
|
+
|
|
24
|
+
| 役割 | 読むもの |
|
|
25
|
+
|---|---|
|
|
26
|
+
| **実装担当**(エンジニア経験不問) | [daily_flow.template.md](./daily_flow.template.md) → 進めてよいか迷ったら [judgment.template.md](./judgment.template.md)、エラーが出たら [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md) |
|
|
27
|
+
| PM | [workflow.template.md](./workflow.template.md) の「A. 資料を受け取ったとき」「役割分担」 |
|
|
28
|
+
| レビュアー | [git.template.md](./git.template.md) の「PR 運用」「レビュー観点」 |
|
|
29
|
+
| アーキテクト | [workflow.template.md](./workflow.template.md) 全体 + ADR の運用 |
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## このプロジェクトの前提
|
|
34
|
+
|
|
35
|
+
| 原則 | 意味 |
|
|
36
|
+
|---|---|
|
|
37
|
+
| **仕様書が正(SSOT)** | コードと仕様が食い違ったら、仕様書が正しい。**仕様書の更新漏れはバグ扱い** |
|
|
38
|
+
| **1 Issue = 1 ブランチ = 1 PR** | 1つの PR には1つの責務だけを入れる |
|
|
39
|
+
| **`main` に直接 push しない** | 必ず PR とレビューを経由する |
|
|
40
|
+
| **品質ゲートを通してから提出** | 失敗したまま PR を出さない |
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 3行でいうと
|
|
45
|
+
|
|
46
|
+
```text
|
|
47
|
+
1. Issue の番号を AI に渡す → 実装・テスト・コミットまで自動
|
|
48
|
+
2. どう終わったかを確認する
|
|
49
|
+
3. できていれば、PR を出して人に見てもらう
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
**AI に打つのはこの3つです。** 順に打つだけで進みます。
|
|
53
|
+
|
|
54
|
+
```text
|
|
55
|
+
#1234 を実装して
|
|
56
|
+
ドキュメントを合わせて
|
|
57
|
+
PR を出して
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
詳細は [daily_flow.template.md](./daily_flow.template.md) にあります。
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## 関連フォルダ
|
|
65
|
+
|
|
66
|
+
- ガイド・セットアップ: [../007_guides/](../007_guides/)
|
|
67
|
+
- 仕様書: `../003_requirements/`
|
|
@@ -0,0 +1,303 @@
|
|
|
1
|
+
# 毎日の進め方
|
|
2
|
+
|
|
3
|
+
**2日目からは、このページだけを見れば1日が進みます。**
|
|
4
|
+
|
|
5
|
+
プログラムを書くのは AI です。あなたがやることは3つだけです。
|
|
6
|
+
|
|
7
|
+
1. **今日やる作業を選ぶ**
|
|
8
|
+
2. **AI にお願いする**
|
|
9
|
+
3. **できたものを見て、人にチェックしてもらう**
|
|
10
|
+
|
|
11
|
+
> 手が止まったら [judgment.template.md](./judgment.template.md)、言葉が分からなければ [../007_guides/glossary.md](../007_guides/glossary.md)、エラーが出たら [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md) を開いてください。
|
|
12
|
+
>
|
|
13
|
+
> **書き換え前提**: 相談先・連絡手段・稼働時間はプロジェクトごとに違います。参加時に確認して書き足してください。
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 1日の流れ
|
|
18
|
+
|
|
19
|
+
```mermaid
|
|
20
|
+
flowchart TD
|
|
21
|
+
A[1. 今日やる作業を選ぶ] --> B[2. 最新の状態にする]
|
|
22
|
+
B --> C[3. AI に作ってもらう]
|
|
23
|
+
C --> D{4. どうなったか見る}
|
|
24
|
+
D -->|できた| E[5. PR を出してお願いする]
|
|
25
|
+
D -->|質問で止まった| F[次の作業へ]
|
|
26
|
+
D -->|途中で止まった| G[理由を読む]
|
|
27
|
+
E --> H[6. 直してと言われたら直す]
|
|
28
|
+
H --> I[7. 終わったと伝える]
|
|
29
|
+
F --> A
|
|
30
|
+
G --> A
|
|
31
|
+
I --> A
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**1件あたり1時間弱、1日1〜3件**が目安です。最初は1件で構いません。時間の大半は、AI が作っているのを待つ時間です。
|
|
35
|
+
|
|
36
|
+
> 所要時間は暫定の置き値です(実測ではありません)。実績が溜まったらチームで書き換えてください。
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 1. 今日やる作業を選ぶ
|
|
41
|
+
|
|
42
|
+
### なぜやるの?
|
|
43
|
+
|
|
44
|
+
やることは **Issue(イシュー)** という形で1件ずつ用意されています。その中から、今日やるものを1つ選びます。
|
|
45
|
+
|
|
46
|
+
> **Issue** = 「これをやってください」と書かれた作業の依頼書です。1枚に1つの作業が書いてあり、`#1234` のような番号が付いています。
|
|
47
|
+
|
|
48
|
+
### やり方
|
|
49
|
+
|
|
50
|
+
1. GitHub の **Issues** というタブを開く(GoDD Notes を使っているなら、その Issue 画面でも同じです)
|
|
51
|
+
2. **自分の名前が付いているもの**を探す
|
|
52
|
+
3. その中で、**番号がいちばん小さいもの**を選ぶ
|
|
53
|
+
|
|
54
|
+
番号が小さいものから選ぶ理由は、**あとの作業が前の作業の結果を使っている**ことがあるためです。順番を飛ばすと、できないことがあります。
|
|
55
|
+
|
|
56
|
+
### これができていれば OK
|
|
57
|
+
|
|
58
|
+
今日やる Issue の番号(たとえば `#1234`)が決まっている。
|
|
59
|
+
|
|
60
|
+
### うまくいかないとき
|
|
61
|
+
|
|
62
|
+
| こんなとき | どうする |
|
|
63
|
+
|---|---|
|
|
64
|
+
| 自分の名前が付いたものが1件も無い | PM に「次に何をやればいいですか」と聞く |
|
|
65
|
+
| 何を作るのか、読んでも分からない | **始める前に聞く**。分からないまま進めない |
|
|
66
|
+
| 「先に #1200 が必要」と書いてある | それは飛ばして、次の番号のものにする |
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## 2. 最新の状態にする
|
|
71
|
+
|
|
72
|
+
### なぜやるの?
|
|
73
|
+
|
|
74
|
+
同じプロジェクトを他の人も直しています。**あなたのパソコンにあるファイルは、前に取ってきたときのまま**です。
|
|
75
|
+
|
|
76
|
+
古いままで始めると、他の人がもう直した場所をもう一度直してしまい、あとで「どちらが正しいのか」を決める面倒な作業が起きます。それを防ぐために、**先に他の人の変更を取り込みます**。
|
|
77
|
+
|
|
78
|
+
### やり方
|
|
79
|
+
|
|
80
|
+
AI エディタ(Cursor / Claude Code / Codex)のチャット欄に、この文字をそのまま打ちます。
|
|
81
|
+
|
|
82
|
+
```text
|
|
83
|
+
最新の状態にして
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### これができていれば OK
|
|
87
|
+
|
|
88
|
+
「最新にしました」といった返事が来ている。
|
|
89
|
+
|
|
90
|
+
> **朝いちばんと、数時間パソコンを離れた後は必ず**やってください。
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## 3. AI に作ってもらう
|
|
95
|
+
|
|
96
|
+
### なぜやるの?
|
|
97
|
+
|
|
98
|
+
ここが1日の中心です。**プログラムを書くのは AI**で、あなたは Issue の番号を渡すだけです。
|
|
99
|
+
|
|
100
|
+
### やり方
|
|
101
|
+
|
|
102
|
+
チャット欄に、選んだ番号を付けてそのまま打ちます。
|
|
103
|
+
|
|
104
|
+
```text
|
|
105
|
+
#1234 を実装して
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
これだけで、AI が下のことを全部やります。**あなたが何か操作することはありません。**
|
|
109
|
+
|
|
110
|
+
| AI がやること | どういう意味か |
|
|
111
|
+
|---|---|
|
|
112
|
+
| **ブランチ**を作る | 元のファイルを壊さないよう、作業用のコピーを用意すること |
|
|
113
|
+
| テストを書いてから作る | 「こう動いてほしい」を先に書き、そのとおり動くまで直すやり方 |
|
|
114
|
+
| **品質ゲート**を通す | 決まりを守れているかの自動チェック。落ちたら直してから進む |
|
|
115
|
+
| **コミット**する | 作業の区切りごとに、変更を記録として保存すること |
|
|
116
|
+
| 秘密情報が混ざっていないか調べる | 鍵やパスワードが紛れ込んでいないか確認する。見つかると、そこで止まります |
|
|
117
|
+
|
|
118
|
+
**ここで一度止まります。** この時点では、まだ他の人に何も見えていません。見てもらう準備は手順5 で行います。
|
|
119
|
+
|
|
120
|
+
**待っている間は、他のことをして構いません。** 終わると結果を教えてくれます。
|
|
121
|
+
|
|
122
|
+
### これができていれば OK
|
|
123
|
+
|
|
124
|
+
「何を変えたか」と「次に何をすればいいか」が報告されている。
|
|
125
|
+
|
|
126
|
+
### 質問の答えをもらっているとき
|
|
127
|
+
|
|
128
|
+
前に聞いた質問の答えが届いているなら、一緒に渡します。
|
|
129
|
+
|
|
130
|
+
```text
|
|
131
|
+
#1234 を実装して。金額の上限は10万円との回答をもらいました
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
答えは Issue にも残るので、あとから「なぜそうしたか」を追えます。
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## 4. どうなったか見る
|
|
139
|
+
|
|
140
|
+
### なぜやるの?
|
|
141
|
+
|
|
142
|
+
終わり方は3通りあります。**どれだったかで、次にやることが変わります。**
|
|
143
|
+
|
|
144
|
+
| 終わり方 | 報告に出ること | 次にやること |
|
|
145
|
+
|---|---|---|
|
|
146
|
+
| **最後までできた** | 変えた内容と、「次は `godd-docs` と `godd-submit` を実行してください」という案内 | **5 に進む** |
|
|
147
|
+
| **質問があって進めなかった** | 答えを待っている質問 | 次の Issue へ(下を読む) |
|
|
148
|
+
| **途中で止まった** | 止まった理由と**ブランチの名前** | 理由を読む(下を読む) |
|
|
149
|
+
|
|
150
|
+
### 質問があって進めなかったとき
|
|
151
|
+
|
|
152
|
+
**失敗ではありません。** 分からないまま作ると間違ったものができるので、AI がわざと止めています。
|
|
153
|
+
|
|
154
|
+
止まる理由は2つです。**答え待ちの質問がある**か、**先にやるべき Issue がまだ終わっていない**かです。
|
|
155
|
+
|
|
156
|
+
1. Issue のコメントに理由が書いてあるので読む
|
|
157
|
+
2. **質問は Issue に自動で書き込まれます。** あなたが写す必要はありません
|
|
158
|
+
3. その Issue はいったん置いて、**次の Issue に進む**
|
|
159
|
+
4. 答えが届いたら、それを添えてもう一度お願いする
|
|
160
|
+
|
|
161
|
+
```text
|
|
162
|
+
#1234 を実装して。金額の上限は10万円との回答をもらいました
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
> **答えを待って止まらないでください。** 待っている間に次を進めたほうが、1日でできる量が増えます。
|
|
166
|
+
|
|
167
|
+
> Slack を使っているプロジェクトでは、質問はスレッドにも自動で流れます。答えが来ないときだけ催促してください。
|
|
168
|
+
|
|
169
|
+
### 途中で止まったとき
|
|
170
|
+
|
|
171
|
+
**作った分は消えていません。** パソコンの中に残っています(この時点では、まだ他の人には見えません)。
|
|
172
|
+
|
|
173
|
+
1. Issue のコメントに、止まった理由と**ブランチの名前**が書いてあるので読む
|
|
174
|
+
2. 自分で直せそうなら直して、`#1234 を実装して` ともう一度打つ
|
|
175
|
+
3. **理由が分からなければ相談する**(ブランチの名前を伝えてください)
|
|
176
|
+
|
|
177
|
+
進めていいか迷ったら [judgment.template.md](./judgment.template.md) を見てください。
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## 5. 見てもらう準備をして、お願いする
|
|
182
|
+
|
|
183
|
+
### なぜやるの?
|
|
184
|
+
|
|
185
|
+
手順3 が終わった時点では、**作ったものはまだ自分のパソコンの中だけ**にあります。他の人には見えません。
|
|
186
|
+
|
|
187
|
+
ここで2つのことをします。**説明書きを実物に合わせる**ことと、**「見てください」というお願いの形にして送り出す**ことです。
|
|
188
|
+
|
|
189
|
+
> **PR(ピーアール / プルリクエスト)** = 「この変更を入れていいか見てください」というお願いのこと。
|
|
190
|
+
>
|
|
191
|
+
> **レビュー** = 他の人が中身を見ること。**レビュアー**はその人です。
|
|
192
|
+
|
|
193
|
+
### やり方
|
|
194
|
+
|
|
195
|
+
手順3 の報告の最後に「次にこれを実行してください」と書かれています。**そのとおりに、チャット欄へ2回打ちます。**
|
|
196
|
+
|
|
197
|
+
まず、説明書きを実物に合わせます。
|
|
198
|
+
|
|
199
|
+
```text
|
|
200
|
+
ドキュメントを合わせて
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
次に、お願いの形にして送り出します。
|
|
204
|
+
|
|
205
|
+
```text
|
|
206
|
+
PR を出して
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
これで PR ができ、**URL が報告されます。**
|
|
210
|
+
|
|
211
|
+
> **2つとも必要です。** 手順3 では自動で行われません。あなたが中身を確かめてから進めるように、あえて分かれています。
|
|
212
|
+
|
|
213
|
+
### 出したあとにやること
|
|
214
|
+
|
|
215
|
+
1. 報告に出てきた **PR の URL** を開く
|
|
216
|
+
2. **自分でもざっと眺める**(全部わかる必要はありません。「明らかにおかしい」がないかだけ)
|
|
217
|
+
3. 下の表を見て、2つとも大丈夫か確かめる
|
|
218
|
+
4. レビュアーに「見てください」と声をかける
|
|
219
|
+
|
|
220
|
+
**PR は最初から見てもらえる状態で作られます。** ボタンを押して切り替える作業は要りません。
|
|
221
|
+
|
|
222
|
+
| 見ること | どこを見るか |
|
|
223
|
+
|---|---|
|
|
224
|
+
| 自動チェックが**緑**か | PR の画面にチェック欄があります。**赤い×のままお願いしない**(赤いときは [judgment](./judgment.template.md)) |
|
|
225
|
+
| 関係ないファイルが混ざっていないか | **Files changed** というタブ |
|
|
226
|
+
|
|
227
|
+
### これができていれば OK
|
|
228
|
+
|
|
229
|
+
PR ができていて、レビュアーに「見てください」が伝わっている。
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
## 6. 直してと言われたら直す
|
|
234
|
+
|
|
235
|
+
### なぜやるの?
|
|
236
|
+
|
|
237
|
+
**指摘が付くのは当たり前のこと**です。もっと良くするための作業で、あなたが責められているわけではありません。
|
|
238
|
+
|
|
239
|
+
### やり方
|
|
240
|
+
|
|
241
|
+
1. 指摘を読む。**意味が分からなければ、その場でコメントで聞いていい**
|
|
242
|
+
2. 何を直すか分かったら、チャット欄にそのまま打つ
|
|
243
|
+
|
|
244
|
+
```text
|
|
245
|
+
PR に「〇〇を△△にしてほしい」という指摘が来ました。対応して
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
3. 直した内容は PR に自動で反映されます
|
|
249
|
+
4. 指摘のコメントに「直しました」と返信する
|
|
250
|
+
|
|
251
|
+
> **納得できないときは、そのまま従わなくていい**です。「なぜそうしたほうがいいのか教えてください」と聞くのは、正しいやり方です。
|
|
252
|
+
|
|
253
|
+
### これができていれば OK
|
|
254
|
+
|
|
255
|
+
すべての指摘に返信が付いている。
|
|
256
|
+
|
|
257
|
+
**指摘が全部片付くと、本物のファイルに入ります。** 「片付く」とは、直したか、直さない理由に相手が納得したかのどちらかです。**入れる操作はレビュアーがやります。あなたはやりません。**
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 7. 終わったと伝える
|
|
262
|
+
|
|
263
|
+
### なぜやるの?
|
|
264
|
+
|
|
265
|
+
終わったことがチームに伝わらないと、次の作業が回ってきません。
|
|
266
|
+
|
|
267
|
+
### やり方
|
|
268
|
+
|
|
269
|
+
チャット欄にそのまま打つと、伝えるための文章を作ってくれます。
|
|
270
|
+
|
|
271
|
+
```text
|
|
272
|
+
完了報告を作って
|
|
273
|
+
```
|
|
274
|
+
|
|
275
|
+
伝える相手と方法はプロジェクトによります。**(ここにチームのやり方を書き足してください)**
|
|
276
|
+
|
|
277
|
+
### これができていれば OK
|
|
278
|
+
|
|
279
|
+
報告が相手に届いている。
|
|
280
|
+
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
## 1日の終わりに確認すること
|
|
284
|
+
|
|
285
|
+
```text
|
|
286
|
+
□ 詰まった場所があれば、何に詰まったかを残したか([judgment](./judgment.template.md) の「詰まったら、あとで残す」)
|
|
287
|
+
□ 今日始めた Issue が、それぞれどう終わったかを全部見たか
|
|
288
|
+
□ 質問で止まったものは、その質問が PM に届いているか
|
|
289
|
+
□ 途中で止まったものは、理由を相談したか(自分で分からなかった場合)
|
|
290
|
+
□ 出した PR の「見てください」まで済ませたか
|
|
291
|
+
□ 明日いちばんにやる Issue が決まっているか
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**途中で終わっても大丈夫です。** 止めたところから再開できます。日をまたいでも続きから進みます。
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## 関連ドキュメント
|
|
299
|
+
|
|
300
|
+
- 判断に迷ったら: [judgment.template.md](./judgment.template.md)
|
|
301
|
+
- ワークフロー全体像: [workflow.template.md](./workflow.template.md)
|
|
302
|
+
- Git 運用ルール: [git.template.md](./git.template.md)
|
|
303
|
+
- はじめてのセットアップ: [../007_guides/getting_started.md](../007_guides/getting_started.md)
|
|
@@ -1,13 +1,35 @@
|
|
|
1
1
|
# Git 運用ガイド
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
ripla の標準ルールを共通化することを目的としており、ブランチ命名・プレフィックス・レビュー要件などプロジェクト固有の差分は本ファイルを書き換えて運用してください。
|
|
3
|
+
**ブランチ名やコミットの意味を確かめたいときに開くページ**です。上から読む必要はありません。
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
**ここに書かれた操作を自分の手で行うことはありません。** ブランチもコミットも PR も AI が規則どおりに作ります。
|
|
6
|
+
|
|
7
|
+
本ファイルは `godd init` で展開される Git 運用ルールの雛形です。ブランチ命名・プレフィックス・レビュー要件などプロジェクト固有の差分は、書き換えて運用してください。
|
|
8
|
+
|
|
9
|
+
> **書き換え前提**: 本ファイルは「構成と章立ての標準化」を目的とした雛形です。プロジェクトの実態に合わせて書き換えてください。
|
|
7
10
|
> **godd 利用は Optional**: godd を使わなくても本ルールは成立します。godd 利用時の補助は `_(Optional / godd 利用時)_` として補足します。
|
|
8
11
|
|
|
9
12
|
---
|
|
10
13
|
|
|
14
|
+
## このページの読み方
|
|
15
|
+
|
|
16
|
+
**ここに書かれた操作を、自分の手で行うことはありません。** ブランチもコミットも PR も、AI が規則どおりに作ります([daily_flow](./daily_flow.template.md) の手順3・5)。
|
|
17
|
+
|
|
18
|
+
読むのは、次のようなときです。
|
|
19
|
+
|
|
20
|
+
| こんなとき | 見るところ |
|
|
21
|
+
|---|---|
|
|
22
|
+
| 見慣れない名前のブランチが出てきた | 「ブランチ戦略」 |
|
|
23
|
+
| コミットの `add:` `fix:` が何か知りたい | 「コミットメッセージ」 |
|
|
24
|
+
| PR に何が書かれるのか知りたい | 「PR 運用」 |
|
|
25
|
+
| やってはいけないことを確かめたい | 「禁止事項」 |
|
|
26
|
+
|
|
27
|
+
> **ブランチ** = 元のファイルを壊さないための作業用のコピー。
|
|
28
|
+
> **コミット** = 作業の区切りごとに、変更を記録として保存すること。
|
|
29
|
+
> **PR** = 「この変更を入れていいか見てください」というお願い。
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
11
33
|
## ブランチ戦略
|
|
12
34
|
|
|
13
35
|
`main` を**唯一の安定ブランチ**とし、すべての作業ブランチは `main` から切り、PR を経由して `main` に戻す **GitHub Flow** を採用します。
|
|
@@ -15,23 +37,25 @@ ripla の標準ルールを共通化することを目的としており、ブ
|
|
|
15
37
|
| ブランチ種別 | 命名規則 | 用途 | 派生元 | マージ先 |
|
|
16
38
|
|---|---|---|---|---|
|
|
17
39
|
| `main` | `main` | 安定版(保護ブランチ) | — | — |
|
|
18
|
-
| 機能 | `feat
|
|
19
|
-
| 修正 | `fix
|
|
40
|
+
| 機能 | `feat/#<issue>-<topic>-<YYYYMMDD>` | 新機能追加 | `main` | `main` |
|
|
41
|
+
| 修正 | `fix/#<issue>-<topic>-<YYYYMMDD>` | バグ修正 | `main` | `main` |
|
|
20
42
|
| ドキュメント | `docs/<topic>-<YYYYMMDD>` | ドキュメントのみの更新 | `main` | `main` |
|
|
21
|
-
|
|
|
43
|
+
| 作り直し(リファクタ) | `refactor/<topic>-<YYYYMMDD>` | 振る舞いを変えない改善 | `main` | `main` |
|
|
22
44
|
| メンテ | `chore/<topic>-<YYYYMMDD>` | 依存更新・設定変更など | `main` | `main` |
|
|
23
|
-
| 自動生成 | `docs
|
|
45
|
+
| 自動生成 | `docs/<ユーザー名>/<YYYY-MM-DD>` | GoDD Notes 等からの自動コミット(ユーザー×業務日で1本) | `main` | `main` |
|
|
24
46
|
| リリース | `release/v<X.Y.Z>` | リリース準備(必要な場合のみ) | `main` | `main` |
|
|
25
47
|
|
|
26
48
|
### 命名例
|
|
27
49
|
|
|
28
50
|
```
|
|
29
|
-
feat
|
|
30
|
-
fix
|
|
51
|
+
feat/#123-user-profile-edit-20260514
|
|
52
|
+
fix/#820-login-csrf-20260514
|
|
31
53
|
docs/requirements-restructure-20260514
|
|
32
54
|
chore/dependabot-bump-fastapi-20260514
|
|
33
55
|
```
|
|
34
56
|
|
|
57
|
+
**Issue に紐づくもの(`feat` / `fix`)は Issue 番号を先頭に置きます。** 番号で検索でき、中断した作業を後から見つけられるためです。
|
|
58
|
+
|
|
35
59
|
### 保護ルール(`main`)
|
|
36
60
|
|
|
37
61
|
- **直接 push 禁止**
|
|
@@ -62,7 +86,8 @@ chore/dependabot-bump-fastapi-20260514
|
|
|
62
86
|
| `refactor` | 振る舞いを変えない改善 | `refactor: auth サービスを usecase 層へ分離` |
|
|
63
87
|
| `docs` | ドキュメント更新 | `docs: requirements 章立てを更新` |
|
|
64
88
|
| `chore` | 依存・設定・ツール類のメンテ | `chore: pnpm を v10 に更新` |
|
|
65
|
-
| `test` | テスト追加・修正 | `test:
|
|
89
|
+
| `test` | テスト追加・修正 | `test: ライセンス発行の流れのテストを追加` |
|
|
90
|
+
| `remove` | 機能・ファイルの**削除** | `remove: 使われていないバッチ処理を削除` |
|
|
66
91
|
| `perf` | パフォーマンス改善 | `perf: 一覧取得クエリの N+1 を解消` |
|
|
67
92
|
| `revert` | 直前のコミットを取り消し | `revert: "add: ..."` |
|
|
68
93
|
|
|
@@ -89,7 +114,7 @@ add: ライセンス発行のクライアント呼び出しを追加
|
|
|
89
114
|
update: 一覧画面に発行ボタンを配置
|
|
90
115
|
```
|
|
91
116
|
|
|
92
|
-
> _(Optional / godd 利用時)_ 責務が混在している場合は `
|
|
117
|
+
> _(Optional / godd 利用時)_ 責務が混在している場合は `godd-commit` で責務単位の自動分割と規約準拠のメッセージ生成を行える。
|
|
93
118
|
|
|
94
119
|
---
|
|
95
120
|
|
|
@@ -102,8 +127,8 @@ update: 一覧画面に発行ボタンを配置
|
|
|
102
127
|
| 粒度 | **1 PR = 1 責務**(複数機能を混ぜない) |
|
|
103
128
|
| サイズ | 目安 400 行以下(超える場合は分割を検討) |
|
|
104
129
|
| タイトル | コミットプレフィックスを踏襲(`feat:` / `fix:` / `docs:` 等) |
|
|
105
|
-
| Draft |
|
|
106
|
-
| 自己レビュー | PR 作成前に作者が「レビュー観点」セクションを自己確認(_(Optional / godd 利用時)_ `
|
|
130
|
+
| Draft | 手で PR を作る場合、着手中は Draft にしてよい。**`godd-submit` で出した PR は最初からレビュー可能な状態**で作られるため、切り替えは不要 |
|
|
131
|
+
| 自己レビュー | PR 作成前に作者が「レビュー観点」セクションを自己確認(_(Optional / godd 利用時)_ `godd-review` で AI 自己レビューを実施) |
|
|
107
132
|
|
|
108
133
|
### PR 本文テンプレート
|
|
109
134
|
|
|
@@ -123,8 +148,8 @@ update: 一覧画面に発行ボタンを配置
|
|
|
123
148
|
|
|
124
149
|
## 仕様書更新チェック(SDD 必須項目)
|
|
125
150
|
- [ ] 関連する Spec / Requirements(`docs/003_requirements/` 配下)を本 PR で更新した、または更新不要であることを確認した
|
|
126
|
-
- [ ] 仕様書とコードの整合を確認した(_(Optional / godd 利用時)_ `
|
|
127
|
-
- [ ] 設計判断(採択理由・トレードオフ)がある場合は ADR を `docs/005_architecture/adr/` 配下に追加した(_(Optional / godd 利用時)_ `
|
|
151
|
+
- [ ] 仕様書とコードの整合を確認した(_(Optional / godd 利用時)_ `godd-docs` で要更新箇所検出と同期)
|
|
152
|
+
- [ ] 設計判断(採択理由・トレードオフ)がある場合は ADR を `docs/005_architecture/adr/` 配下に追加した(_(Optional / godd 利用時)_ `godd-adr` で生成)
|
|
128
153
|
|
|
129
154
|
## レビュー観点
|
|
130
155
|
- 重点的に見てほしい点
|
|
@@ -166,8 +191,35 @@ SemVer(MAJOR.MINOR.PATCH)に従い、後方互換を破る変更で MAJOR
|
|
|
166
191
|
|
|
167
192
|
## 禁止事項
|
|
168
193
|
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
194
|
+
**なぜ禁止なのか**まで書きます。理由が分かれば、判断に迷う場面が減ります。
|
|
195
|
+
|
|
196
|
+
| 禁止事項 | なぜ |
|
|
197
|
+
|---|---|
|
|
198
|
+
| `main` への直接 push | レビューを経ずに全員の環境へ影響が出る |
|
|
199
|
+
| 共有ブランチへの `--force` / `--force-with-lease` | 他の人の作業履歴が消える。**取り消せない** |
|
|
200
|
+
| `--no-verify` でフックをスキップ | 壊れたコードが入る。CI が結局拒否する |
|
|
201
|
+
| API キー・トークン・パスワードのコミット | 漏洩は取り消せない。**削除しても履歴に残る**(提出前に secret scan を実施) |
|
|
202
|
+
| レビュー未通過・CI 未通過でのマージ | 検証されていない変更が `main` に入る |
|
|
203
|
+
|
|
204
|
+
> _(Optional / godd 利用時)_ `godd-check` で機密情報検出を自動化できます。判断に迷ったときは [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md) の「やってはいけないこと」を参照してください。
|
|
205
|
+
|
|
206
|
+
---
|
|
207
|
+
|
|
208
|
+
## うまくいかないとき
|
|
209
|
+
|
|
210
|
+
| 状況 | どうするか |
|
|
211
|
+
|---|---|
|
|
212
|
+
| コンフリクトが出た | まず `godd-sync`。解消しなければ [judgment.template.md](./judgment.template.md) |
|
|
213
|
+
| push が拒否された | `main` に直接 push しようとしていないか確認する |
|
|
214
|
+
| どのブランチにいるか分からない | AI エディタに「今どのブランチにいる?」と聞く |
|
|
215
|
+
| 間違えてコミットした | **自分で取り消さず**に [judgment.template.md](./judgment.template.md) を見る |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## 関連ドキュメント
|
|
220
|
+
|
|
221
|
+
- 判断に迷ったら: [judgment.template.md](./judgment.template.md)
|
|
222
|
+
- 開発ワークフロー: [workflow.template.md](./workflow.template.md)
|
|
223
|
+
- 毎日の進め方: [daily_flow.template.md](./daily_flow.template.md)
|
|
224
|
+
- 用語が分からない: [../007_guides/glossary.md](../007_guides/glossary.md)
|
|
225
|
+
- 困ったとき: [../007_guides/troubleshooting.md](../007_guides/troubleshooting.md)
|