@ripla/godd-mcp 1.0.6 → 1.0.7-canary.10
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 +122 -50
- package/dist/godd.cjs +229 -215
- package/dist/godd.js +480 -194
- package/dist/index.js +1 -1
- package/notes/api/.env.example +1 -4
- package/notes/api/README.md +4 -2
- package/notes/api/app/config.py +8 -5
- package/notes/api/app/main.py +6 -2
- package/notes/api/app/routers/assets.py +114 -0
- package/notes/api/app/routers/auth.py +14 -0
- package/notes/api/app/routers/tree.py +3 -3
- package/notes/api/app/routers/upload.py +5 -1
- package/notes/api/app/security.py +64 -1
- package/notes/api/app/services/asset_proxy.py +182 -0
- package/notes/api/app/services/github.py +14 -13
- package/notes/api/app/services/github_app_token.py +10 -15
- package/notes/api/app/services/github_pr.py +14 -8
- package/notes/api/tests/test_assets.py +389 -0
- package/notes/api/tests/test_auth.py +31 -0
- package/notes/api/tests/test_files.py +2 -2
- package/notes/api/tests/test_github_app_token.py +6 -5
- package/notes/api/tests/test_github_service.py +30 -4
- package/notes/api/tests/test_pr_chain.py +25 -2
- package/notes/api/tests/test_security.py +51 -0
- package/notes/api/tests/test_tree.py +1 -1
- package/notes/api/tests/test_upload.py +4 -0
- package/notes/app/e2e/pages/login-page.ts +6 -0
- package/notes/app/e2e/password-toggle.spec.ts +198 -0
- package/notes/app/src/components/FileContentView.test.tsx +67 -0
- package/notes/app/src/components/FileContentView.tsx +19 -0
- package/notes/app/src/components/ImageUploadTextarea.test.tsx +234 -0
- package/notes/app/src/components/ImageUploadTextarea.tsx +169 -0
- package/notes/app/src/components/ImageView.test.tsx +85 -0
- package/notes/app/src/components/ImageView.tsx +48 -0
- package/notes/app/src/components/IssueCommentThread.tsx +3 -2
- package/notes/app/src/components/IssueDetailView.tsx +4 -2
- package/notes/app/src/components/MarkdownEditor.tsx +8 -15
- package/notes/app/src/components/PasswordInput.test.tsx +122 -0
- package/notes/app/src/components/PasswordInput.tsx +67 -0
- package/notes/app/src/lib/api.ts +12 -0
- package/notes/app/src/lib/image-proxy.test.ts +142 -0
- package/notes/app/src/lib/image-proxy.ts +122 -0
- package/notes/app/src/lib/imageUploadHandler.test.ts +84 -0
- package/notes/app/src/lib/imageUploadHandler.ts +27 -0
- package/notes/app/src/lib/sanitizeImageAltText.test.ts +43 -0
- package/notes/app/src/lib/sanitizeImageAltText.ts +30 -0
- package/notes/app/src/pages/LoginPage.test.tsx +31 -1
- package/notes/app/src/pages/LoginPage.tsx +14 -8
- package/notes/app/src/pages/UserManagementPage.test.tsx +51 -0
- package/notes/app/src/pages/UserManagementPage.tsx +2 -2
- package/package.json +1 -1
- package/templates/github-actions/aws/deploy-notes.yml.hbs +31 -0
- package/templates/notes-compose.yml +0 -1
- package/templates/notes-docs/003_requirements//343/200/220/344/273/225/346/247/230/346/233/270/343/200/221/343/203/225/343/202/251/343/203/274/343/203/236/343/203/203/343/203/210/342/221/240/357/274/210/343/203/223/343/202/270/343/203/215/343/202/271/343/202/265/343/202/244/343/203/211/345/220/221/343/201/221/357/274/211.md +1 -2
- package/templates/notes-docs/007_guides/setup_godd.md +55 -11
- package/templates/notes-docs/007_guides/setup_godd_notes.md +260 -16
- package/templates/notes-docs/007_guides/setup_godd_notes.md.styles.json +409 -0
- package/templates/notes-docs/007_guides/setup_infra.template.md +116 -22
- package/templates/terraform/aws/ecs.tf.hbs +21 -2
- package/templates/terraform/aws/provider.tf.hbs +1 -1
- package/templates/terraform/aws/secrets.tf.hbs +11 -3
package/README.md
CHANGED
|
@@ -44,50 +44,52 @@ cd /path/to/your-project
|
|
|
44
44
|
godd init
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
1. **ライセンスキー** —
|
|
50
|
-
2.
|
|
51
|
-
3. **Registry URL** —
|
|
52
|
-
4.
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
完了すると、以下の 3 ファイルが自動生成されます:
|
|
47
|
+
実行前に、対話で聞かれる項目を準備しておきます:
|
|
48
|
+
|
|
49
|
+
1. **ライセンスキー** — 管理者から受領したキーを入力(必須)
|
|
50
|
+
2. **使用言語** — `ja` / `en` / `zh` / `ru` / `kz` / `tr` から選択(default: `ja`)
|
|
51
|
+
3. **Registry API URL** — default は `https://dev.api.godd.ripla-inc.com`
|
|
52
|
+
4. **リポジトリ登録** — `origin` の Git リモート URL を Registry API に登録(`origin` がない場合は中断)
|
|
53
|
+
5. **技術スタック選択** — `1,3,5` で複数選択、`all` で全選択。Step 2 以降は Enter でスキップ可(Step 1 は不可)
|
|
54
|
+
6. **`config.godd` の保存先** — default はプロジェクトルートの `config.godd`
|
|
55
|
+
7. **`.cursor/mcp.json` 生成** — `[Y/n]`(`Y` のときのみ生成)
|
|
56
|
+
8. **任意 MCP の追加登録** — 順番 7 で `Y` のときのみ、Headroom / agent-browser / TypeUI を個別に opt-in
|
|
57
|
+
|
|
58
|
+
技術スタック選択は以下の 5 ステップで進みます。**Step 1(プログラミング言語)のみ Enter ではスキップできません**(1 言語以上必須。未選択だとエラーで終了)。Step 2 以降は Enter でスキップでき、選んだ言語に対応する技術だけが表示されます。設計パターン(`DDD / Clean Architecture`)は質問されず、自動設定されます。
|
|
59
|
+
|
|
60
|
+
| Step | 質問カテゴリ | 表示される選択肢 |
|
|
61
|
+
|------|--------------|------------------|
|
|
62
|
+
| 1 | プログラミング言語(必須・Enter スキップ不可) | `Python` / `TypeScript` / `JavaScript` / `Go` / `PHP` / `Ruby` / `C` / `HTML` / `CSS` |
|
|
63
|
+
| 2 | フレームワーク / ライブラリ | `React` / `Next.js` / `Vue.js` / `Angular` / `Svelte` / `Electron`、`FastAPI` / `Django` / `Flask` / `Express` / `Fastify` / `NestJS` / `Gin` / `Echo` / `Fiber` / `Laravel` / `Symfony` / `WordPress` / `Ruby on Rails` / `Sinatra` / `Koa` |
|
|
64
|
+
| 3 | 関連ツール(CSS / ビルド / ORM / タスクキュー / ランタイム) | `Tailwind CSS` / `Sass` / `Vite` / `SQLAlchemy` / `Celery` / `Node.js` / `Agent Stdio` |
|
|
65
|
+
| 4 | データベース | `PostgreSQL` / `MySQL` / `MongoDB` / `Redis` |
|
|
66
|
+
| 5 | インフラ | `Docker` / `Terraform` |
|
|
67
|
+
|
|
68
|
+
順番 7 で `Y`(既定)を選んだ場合のみ、追加で以下を聞かれます(`n` だと `.cursor/mcp.json` は生成されません):
|
|
69
|
+
|
|
70
|
+
| 質問 | 既定 | 前提 |
|
|
71
|
+
|------|------|------|
|
|
72
|
+
| Headroom(コンテキスト圧縮 MCP)も登録しますか? | `N` | 事前に `pip install "headroom-ai[mcp]"` が必要 |
|
|
73
|
+
| agent-browser(ブラウザ操作 MCP)も登録しますか? | `N` | 事前に `npm install -g agent-browser && agent-browser install` が必要。`core` profile には JavaScript 実行(eval)が含まれます |
|
|
74
|
+
| TypeUI(デザインスキル / UI プロンプト MCP)も登録しますか? | `N` | ホスト型サーバー(`https://mcp.typeui.sh`)。初回利用時に TypeUI アカウントのサインインが必要 |
|
|
75
|
+
| TypeUI Bearer トークン(TypeUI を `y` にしたときのみ) | 空 Enter | 通常は空 Enter で OAuth 対話サインイン。独自ホスト/トークン認証のときだけ入力 |
|
|
76
|
+
|
|
77
|
+
完了すると、以下のファイルが生成されます:
|
|
80
78
|
|
|
81
79
|
| ファイル | 内容 |
|
|
82
80
|
|---------|------|
|
|
83
|
-
| `config.godd` |
|
|
84
|
-
| `.env` | ライセンスキー・言語・Registry URL(GoDD
|
|
85
|
-
| `.cursor/mcp.json` | Cursor IDE への MCP
|
|
81
|
+
| `config.godd` | 技術スタックコンポーネントの設定(常に生成) |
|
|
82
|
+
| `.env` | ライセンスキー・言語・Registry URL(GoDD 管理値。常に更新) |
|
|
83
|
+
| `.cursor/mcp.json` | Cursor IDE への MCP サーバー登録(順番 7 で `Y` を選んだ場合のみ) |
|
|
86
84
|
|
|
87
|
-
>
|
|
85
|
+
> **ライセンスキーは `config.godd`(手動設定・旧形式・互換読み込み)、`.env`、`.cursor/mcp.json` で扱われます。`.gitignore` への除外は必須です。**
|
|
86
|
+
> `godd init` / `godd notes compose` による自動追記(#1159 / PR #1175)が利用可能になるまでは手動で追加し、実行後は `git status` で除外を確認してください(#1175 マージ後は自動追記。それまでは手動)。
|
|
88
87
|
>
|
|
89
88
|
> ```gitignore
|
|
89
|
+
> config.godd
|
|
90
90
|
> .env
|
|
91
|
+
> .cursor/mcp.json
|
|
92
|
+
> .cursor/mcp.json.bak
|
|
91
93
|
> ```
|
|
92
94
|
|
|
93
95
|
---
|
|
@@ -108,7 +110,7 @@ Registry API URL (default: http://localhost:8100): https://godd-registry.example
|
|
|
108
110
|
|
|
109
111
|
プロジェクトディレクトリで `godd init` を再実行してください。コンポーネントは `config.godd` を直接編集することもできます。ライセンスキー・言語・Registry URL は `.env` の `GODD_LICENSE_KEY` / `GODD_LANGUAGE` / `GODD_REGISTRY_URL` を編集してください。Cursor のチャットで `godd_config` ツールを使って更新することもできます。変更後は Cursor IDE を再起動してください。
|
|
110
112
|
|
|
111
|
-
>
|
|
113
|
+
> **再実行時**: 既存の `config.godd` があると検出メッセージが表示され、ライセンスキー・使用言語・Registry URL・保存先は Enter で既存値を保持できます。コンポーネントは「既存のコンポーネント設定を引き継ぎますか? `[Y/n]`」で引き継ぎ(既定 `Y`)か、ウィザードで再選択(`n`)を選べます。再選択時も Step 1(プログラミング言語)は 1 つ以上必須です。
|
|
112
114
|
|
|
113
115
|
### バイナリ(ZIP)でのインストール
|
|
114
116
|
|
|
@@ -387,12 +389,13 @@ Notes のクラウドデプロイで pnpm 10+ 関連のエラーが出る場合
|
|
|
387
389
|
|
|
388
390
|
## GoDD Notes ライフサイクル
|
|
389
391
|
|
|
390
|
-
GoDD Notes は GoDD のドキュメント閲覧・編集 Web
|
|
392
|
+
GoDD Notes は GoDD のドキュメント閲覧・編集 Web アプリです。初回オンボーディングでは、まずローカル Docker Compose で動かし、AWS などのクラウドインフラ構築は後から必要なタイミングで実行します。ローカル利用だけなら AWS アカウント設定は不要です。
|
|
391
393
|
|
|
392
394
|
### 1. GoDD をインストール
|
|
393
395
|
|
|
394
396
|
```bash
|
|
395
397
|
npm install -g @ripla/godd-mcp
|
|
398
|
+
godd version
|
|
396
399
|
```
|
|
397
400
|
|
|
398
401
|
Notes をクラウドデプロイする場合(ローカルに pnpm 10+ がある環境)は、pnpm 10+ 向けの Notes App ビルド対応が `@latest` に含まれるまで canary の利用を推奨します:
|
|
@@ -409,9 +412,45 @@ cd /path/to/your-project
|
|
|
409
412
|
godd init
|
|
410
413
|
```
|
|
411
414
|
|
|
412
|
-
プロジェクトごとに実行が必要です(2
|
|
415
|
+
プロジェクトごとに実行が必要です(2人目以降のメンバーも各自実行)。`godd init` が生成した `.cursor/mcp.json` を Cursor に読み込ませるため、この後に Cursor IDE を再起動します。
|
|
416
|
+
|
|
417
|
+
### 3. MCP 接続を確認
|
|
418
|
+
|
|
419
|
+
1. Cursor IDE を再起動する
|
|
420
|
+
2. Settings > MCP で `godd` サーバーが **Running** であることを確認する(これが主確認)
|
|
421
|
+
3. 任意で、チャットから `godd_check` を呼ぶか、MCP ツール一覧に GoDD ツールが並ぶことを確認する
|
|
422
|
+
|
|
423
|
+
### 4. docs/ 構造を初期化
|
|
424
|
+
|
|
425
|
+
GoDD Notes は GitHub リポジトリの `docs/` を表示・編集対象にします。まだ `docs/` がないプロジェクトでは、Cursor のチャットから `godd_docs_init`(または `/godd/docs_init`)を実行して、標準のドキュメント構造を作成します。
|
|
426
|
+
|
|
427
|
+
```text
|
|
428
|
+
Cursor IDE で: godd_docs_init を使って docs/ を初期化して
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
### 5. ローカルで Notes を起動
|
|
432
|
+
|
|
433
|
+
前提: Docker Desktop が起動済みであること。加えて、GitHub App 用の以下3つの値をOrg管理者から事前に受け取っていること(AWS アカウントは不要でも、これらは必要です)。
|
|
434
|
+
- App ID
|
|
435
|
+
- Installation ID
|
|
436
|
+
- Private Key
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
godd notes compose --auto
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
Docker Compose でローカルに Notes 環境を立ち上げます。起動後は以下のエンドポイントを確認します。
|
|
443
|
+
|
|
444
|
+
| 種別 | URL |
|
|
445
|
+
|------|-----|
|
|
446
|
+
| API | `http://localhost:8000` |
|
|
447
|
+
| App | `http://localhost:5173` |
|
|
448
|
+
|
|
449
|
+
`--auto` を省略すると、AI による自動実行ではなく手動確認しながら進められます。ローカル利用の詳細は [GoDD Notes 使い始め方ガイド](../docs/007_guides/godd_notes_getting_started.md) を参照してください。
|
|
450
|
+
|
|
451
|
+
### 6. 後でクラウドインフラを構築(必要な場合のみ)
|
|
413
452
|
|
|
414
|
-
|
|
453
|
+
本番 AWS などへデプロイする段階で、インフラ担当者が `godd notes infra` を実行します。ローカル利用だけならこの手順は不要です。
|
|
415
454
|
|
|
416
455
|
```bash
|
|
417
456
|
godd notes infra
|
|
@@ -428,7 +467,7 @@ godd notes infra
|
|
|
428
467
|
既存環境で旧ブランド名の出力先や設定ファイルを生成済みの場合は、
|
|
429
468
|
`godd notes infra` を再実行して `godd-notes/` と `.godd-notes-*.json` を再生成してください。
|
|
430
469
|
|
|
431
|
-
###
|
|
470
|
+
### 7. クラウドへデプロイ(必要な場合のみ)
|
|
432
471
|
|
|
433
472
|
```bash
|
|
434
473
|
godd notes deploy # 対話形式
|
|
@@ -442,6 +481,45 @@ godd notes deploy -y # 確認スキップ(CI 向け)
|
|
|
442
481
|
|
|
443
482
|
> `godd notes deploy` 実行時に `@ripla/godd-mcp` の新しいバージョンが利用可能な場合、警告が表示されます。
|
|
444
483
|
|
|
484
|
+
### 8. 既存環境を最新化する(CLI 更新の反映)
|
|
485
|
+
|
|
486
|
+
すでにデプロイ済みの環境に、新しい `@ripla/godd-mcp` バージョン(Terraform テンプレート変更を含む)を反映する場合の手順です。手順 1〜7(新規オンボーディング)は不要です。
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
# 1. CLI を更新(インフラ変更を検証する場合は canary を明示。安定版のみなら不要)
|
|
490
|
+
npm install -g @ripla/godd-mcp@canary
|
|
491
|
+
godd version
|
|
492
|
+
|
|
493
|
+
# 2. AWS CLI 認証を確認
|
|
494
|
+
export AWS_PROFILE=<PROFILE> # PowerShell: $env:AWS_PROFILE = "<PROFILE>"
|
|
495
|
+
aws sts get-caller-identity
|
|
496
|
+
|
|
497
|
+
# 3. Terraform ファイル・同梱ソースを最新テンプレートで再生成(保存済み設定を非対話で再利用)
|
|
498
|
+
godd notes infra --yes
|
|
499
|
+
|
|
500
|
+
# 4. Terraform テンプレートに変更がある場合のみ、{env}-iam → {env} の順で適用(apply 前に plan で差分確認)
|
|
501
|
+
cd terraform/godd-notes/{env}-iam
|
|
502
|
+
terraform init
|
|
503
|
+
cd ../{env}
|
|
504
|
+
terraform init
|
|
505
|
+
|
|
506
|
+
cd ../{env}-iam
|
|
507
|
+
terraform plan
|
|
508
|
+
cd ../{env}
|
|
509
|
+
terraform plan
|
|
510
|
+
|
|
511
|
+
cd ../{env}-iam
|
|
512
|
+
terraform apply
|
|
513
|
+
cd ../{env}
|
|
514
|
+
terraform apply
|
|
515
|
+
|
|
516
|
+
# 5. アプリを再デプロイ
|
|
517
|
+
cd /path/to/your-project
|
|
518
|
+
godd notes deploy -y
|
|
519
|
+
```
|
|
520
|
+
|
|
521
|
+
> **`{env}-iam` を先に適用する**: `{env}` モジュール(ECS/RDS/ALB 等)は `{env}-iam` が作成する IAM ロール(ECS 実行ロール、GitHub Actions OIDC 等)を参照するため、`{env}-iam` → `{env}` の順を守ってください。`godd notes infra --yes` は `.tf` を毎回無条件で再生成しますが、**テンプレート自体に変更がある場合のみ** `terraform apply` の再適用が必要です(同梱ソース [`notes-api`/`notes-app`] の変更だけなら手順 4 は不要)。
|
|
522
|
+
|
|
445
523
|
### Notes デプロイで `esbuild` の build script が拒否される
|
|
446
524
|
|
|
447
525
|
pnpm 10+ で `[ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild` や `pnpm install` 失敗が出る場合:
|
|
@@ -450,15 +528,9 @@ pnpm 10+ で `[ERR_PNPM_IGNORED_BUILDS] Ignored build scripts: esbuild` や `pnp
|
|
|
450
528
|
2. `notes-app` を再 scaffold する: プロジェクトで `godd notes infra` を再実行(`pnpm-workspace.yaml` を含む同梱ソースで上書き更新)
|
|
451
529
|
3. 再デプロイする: `godd notes deploy -y`
|
|
452
530
|
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
### ローカル開発(Docker Compose)
|
|
531
|
+
Terraform テンプレートの変更も反映する必要がある場合は、上記「8. 既存環境を最新化する」の手順4(`terraform apply`)も実行してください。
|
|
456
532
|
|
|
457
|
-
|
|
458
|
-
godd notes compose
|
|
459
|
-
```
|
|
460
|
-
|
|
461
|
-
Docker Compose でローカルに Notes 環境を立ち上げます。
|
|
533
|
+
ローカルで `notes-app` を直接ビルドする場合は、同梱の `notes-app/README.md` を参照してください。
|
|
462
534
|
|
|
463
535
|
---
|
|
464
536
|
|