@sk8metal/michi-cli 0.8.1 → 0.8.3
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/CHANGELOG.md +33 -0
- package/dist/scripts/confluence-sync.js +2 -2
- package/dist/scripts/confluence-sync.js.map +1 -1
- package/dist/scripts/jira-sync.js +2 -2
- package/dist/scripts/jira-sync.js.map +1 -1
- package/dist/scripts/multi-project-estimate.js +2 -2
- package/dist/scripts/multi-project-estimate.js.map +1 -1
- package/dist/scripts/pr-automation.js +2 -2
- package/dist/scripts/pr-automation.js.map +1 -1
- package/dist/scripts/pre-flight-check.js +2 -2
- package/dist/scripts/pre-flight-check.js.map +1 -1
- package/dist/scripts/resource-dashboard.js +2 -2
- package/dist/scripts/resource-dashboard.js.map +1 -1
- package/dist/scripts/spec-impl-workflow.js +2 -2
- package/dist/scripts/spec-impl-workflow.js.map +1 -1
- package/dist/scripts/template/multi-repo-renderer.d.ts +1 -1
- package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -1
- package/dist/scripts/template/multi-repo-renderer.js +8 -3
- package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
- package/dist/scripts/test-workflow-stages.js +2 -2
- package/dist/scripts/test-workflow-stages.js.map +1 -1
- package/dist/scripts/utils/config-loader.d.ts.map +1 -1
- package/dist/scripts/utils/config-loader.js +3 -2
- package/dist/scripts/utils/config-loader.js.map +1 -1
- package/dist/scripts/utils/env-loader.d.ts +11 -0
- package/dist/scripts/utils/env-loader.d.ts.map +1 -0
- package/dist/scripts/utils/env-loader.js +23 -0
- package/dist/scripts/utils/env-loader.js.map +1 -0
- package/dist/scripts/workflow-orchestrator.js +2 -2
- package/dist/scripts/workflow-orchestrator.js.map +1 -1
- package/dist/src/cli.js +3 -3
- package/dist/src/cli.js.map +1 -1
- package/docs/michi-development/design/config-unification.md +38 -4094
- package/docs/michi-development/design/design-config-current-state.md +330 -0
- package/docs/michi-development/design/design-config-implementation.md +628 -0
- package/docs/michi-development/design/design-config-migration.md +952 -0
- package/docs/michi-development/design/design-config-security.md +771 -0
- package/docs/michi-development/design/design-config-solution.md +583 -0
- package/docs/michi-development/design/design-config-testing.md +892 -0
- package/docs/michi-development/testing/manual-verification-flow.md +6 -1377
- package/docs/michi-development/testing/manual-verification-other-tools.md +1277 -0
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +122 -0
- package/docs/user-guide/getting-started/setup.md +14 -32
- package/docs/user-guide/guides/multi-repo-guide.md +367 -44
- package/docs/user-guide/reference/config.md +1 -1
- package/docs/user-guide/reference/security-test-payloads.md +50 -0
- package/docs/user-guide/release/ci-setup-java.md +114 -0
- package/docs/user-guide/release/ci-setup-nodejs.md +94 -0
- package/docs/user-guide/release/ci-setup-php.md +102 -0
- package/docs/user-guide/release/ci-setup-troubleshooting.md +94 -0
- package/docs/user-guide/release/ci-setup.md +17 -370
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +9 -3
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +4 -43
- package/package.json +2 -3
- package/scripts/confluence-sync.ts +2 -2
- package/scripts/jira-sync.ts +2 -2
- package/scripts/multi-project-estimate.ts +2 -2
- package/scripts/pr-automation.ts +2 -2
- package/scripts/pre-flight-check.ts +2 -2
- package/scripts/resource-dashboard.ts +2 -2
- package/scripts/spec-impl-workflow.ts +2 -2
- package/scripts/template/__tests__/multi-repo-renderer.test.ts +15 -10
- package/scripts/template/multi-repo-renderer.ts +9 -3
- package/scripts/test-workflow-stages.ts +2 -2
- package/scripts/utils/__tests__/env-loader.test.ts +145 -0
- package/scripts/utils/config-loader.ts +3 -2
- package/scripts/utils/env-loader.ts +25 -0
- package/scripts/workflow-orchestrator.ts +2 -2
- package/docs/design-issue-55.md +0 -240
- package/docs/design-issue-56.md +0 -181
- package/docs/user-guide/guides/multi-repo-migration-guide.md +0 -516
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Michi 手動検証フロー - トラブルシューティング
|
|
2
|
+
|
|
3
|
+
**親ドキュメント**: [manual-verification-flow.md](./manual-verification-flow.md)
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## トラブルシューティング
|
|
8
|
+
|
|
9
|
+
### 問題1: cc-sddのインストールが失敗する
|
|
10
|
+
|
|
11
|
+
**症状:**
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
Error: Unknown option: --cline
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
**原因:**
|
|
18
|
+
指定したAI開発ツール用のフラグがcc-sddに存在しない
|
|
19
|
+
|
|
20
|
+
**解決方法:**
|
|
21
|
+
|
|
22
|
+
1. cc-sddの最新版を確認: `npm info cc-sdd`
|
|
23
|
+
2. サポートされているフラグを確認: `npx cc-sdd@latest --help`
|
|
24
|
+
3. 対応していない場合は、他のツール(Cursor または Claude Code)を使用
|
|
25
|
+
|
|
26
|
+
### 問題2: Michiセットアップが既存ファイルと競合する
|
|
27
|
+
|
|
28
|
+
**症状:**
|
|
29
|
+
|
|
30
|
+
```
|
|
31
|
+
Warning: File already exists: .cursor/commands/michi-confluence-sync.md
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
**原因:**
|
|
35
|
+
既にMichiがセットアップされている、または手動で同名ファイルが作成されている
|
|
36
|
+
|
|
37
|
+
**解決方法:**
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
# 既存のMichiファイルを削除してから再セットアップ
|
|
41
|
+
rm -rf .cursor/commands/michi-*.md
|
|
42
|
+
michi setup-existing --cursor --lang ja
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
### 問題3: phase:run コマンドが feature を見つけられない
|
|
46
|
+
|
|
47
|
+
**症状:**
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
Error: Feature 'java-calculator-webapp' not found
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**原因:**
|
|
54
|
+
`.kiro/specs/java-calculator-webapp/` ディレクトリまたは `spec.json` が存在しない
|
|
55
|
+
|
|
56
|
+
**解決方法:**
|
|
57
|
+
|
|
58
|
+
1. AIコマンドで初期化されているか確認
|
|
59
|
+
```bash
|
|
60
|
+
ls -la .kiro/specs/java-calculator-webapp/spec.json
|
|
61
|
+
```
|
|
62
|
+
2. 存在しない場合は、AIコマンド `/kiro:spec-init` を再実行
|
|
63
|
+
|
|
64
|
+
### 問題4: validate:phase が失敗する
|
|
65
|
+
|
|
66
|
+
**症状:**
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Error: Validation failed for phase test-type-selection
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**原因:**
|
|
73
|
+
必要なファイルが生成されていない、またはフォーマットが不正
|
|
74
|
+
|
|
75
|
+
**解決方法:**
|
|
76
|
+
|
|
77
|
+
1. 該当フェーズの出力ファイルを確認
|
|
78
|
+
```bash
|
|
79
|
+
cat .kiro/specs/java-calculator-webapp/test-types.md
|
|
80
|
+
```
|
|
81
|
+
2. ファイルが空または不正な場合は、フェーズを再実行
|
|
82
|
+
```bash
|
|
83
|
+
michi phase:run java-calculator-webapp test-type-selection
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### 問題5: 絶対パスコマンドが動作しない(Pattern B)
|
|
87
|
+
|
|
88
|
+
**症状:**
|
|
89
|
+
|
|
90
|
+
```
|
|
91
|
+
Error: Cannot find module '~/Work/git/michi/src/cli.ts'
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
**原因:**
|
|
95
|
+
シェルがチルダ `~` を展開していない
|
|
96
|
+
|
|
97
|
+
**解決方法:**
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# チルダの代わりに $HOME を使用
|
|
101
|
+
npx tsx $HOME/Work/git/michi/src/cli.ts phase:run java-calculator-webapp test-type-selection
|
|
102
|
+
|
|
103
|
+
# または完全な絶対パスを使用
|
|
104
|
+
npx tsx /Users/yourusername/Work/git/michi/src/cli.ts phase:run java-calculator-webapp test-type-selection
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### 問題6: 自動テストスクリプトが途中で失敗する
|
|
108
|
+
|
|
109
|
+
**症状:**
|
|
110
|
+
自動テストスクリプト(pre-publish または test:package)が途中でエラーで終了する
|
|
111
|
+
|
|
112
|
+
**原因:**
|
|
113
|
+
スクリプトは `set -e` を使用しており、最初のエラーで即座に終了する
|
|
114
|
+
|
|
115
|
+
**解決方法:**
|
|
116
|
+
|
|
117
|
+
1. エラーメッセージを確認
|
|
118
|
+
2. 該当するコマンドを手動で実行して詳細を確認
|
|
119
|
+
3. 問題を修正してから再実行
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
@@ -28,48 +28,30 @@ michi --help
|
|
|
28
28
|
|
|
29
29
|
> **開発者向け**: Michiの開発に貢献したい場合や、最新の開発版を使用したい場合は [開発環境セットアップガイド](../contributing/development.md) を参照してください。
|
|
30
30
|
|
|
31
|
-
## Step 2: cc-sddのインストール
|
|
32
31
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
cc-sddは、Michiの仕様駆動開発ワークフローのコアフレームワークです。
|
|
32
|
+
## Step 2: cc-sddとMichiのセットアップ
|
|
36
33
|
|
|
37
|
-
|
|
38
|
-
# 作業プロジェクトのルートディレクトリに移動
|
|
39
|
-
cd /path/to/your-project
|
|
34
|
+
Michiは、cc-sddをコアフレームワークとして使用します。セットアップは2段階で行います:
|
|
40
35
|
|
|
41
|
-
|
|
42
|
-
|
|
36
|
+
1. **cc-sdd**: AI駆動開発ワークフローの基盤
|
|
37
|
+
2. **Michi**: Confluence/JIRA連携などの拡張機能
|
|
43
38
|
|
|
44
|
-
|
|
45
|
-
npx cc-sdd@latest --lang ja --claude
|
|
39
|
+
詳細な手順については、以下のセクションを参照してください:
|
|
46
40
|
|
|
47
|
-
|
|
48
|
-
npx cc-sdd@latest --lang ja --gemini
|
|
41
|
+
### クイックスタート(3ステップ)
|
|
49
42
|
|
|
50
|
-
|
|
51
|
-
|
|
43
|
+
```bash
|
|
44
|
+
# Step 1: cc-sddで標準ファイル生成
|
|
45
|
+
npx cc-sdd@latest --cursor --lang ja
|
|
52
46
|
|
|
53
|
-
#
|
|
54
|
-
npx
|
|
47
|
+
# Step 2: Michi固有ファイルを追加
|
|
48
|
+
npx @sk8metal/michi-cli setup-existing --cursor --lang ja
|
|
55
49
|
|
|
56
|
-
#
|
|
57
|
-
|
|
50
|
+
# Step 3: 環境設定
|
|
51
|
+
npm run setup:interactive
|
|
58
52
|
```
|
|
59
53
|
|
|
60
|
-
|
|
61
|
-
- `.kiro/settings/` にテンプレート作成
|
|
62
|
-
- `.cursor/commands/kiro/` または `.claude/commands/kiro/` にコマンド作成
|
|
63
|
-
- `CLAUDE.md` にプロジェクト設定追加
|
|
64
|
-
|
|
65
|
-
**cc-sdd準拠アーキテクチャ(Issue #35):**
|
|
66
|
-
- Michiは**単一の英語テンプレート + プレースホルダー**でcc-sdd準拠を実現
|
|
67
|
-
- `templates/` ディレクトリからCursor/Claude両環境に対応
|
|
68
|
-
- プレースホルダー(`{{LANG_CODE}}`, `{{DEV_GUIDELINES}}` 等)をAIが実行時に解釈
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
詳細: [cc-sdd公式ドキュメント](https://github.com/gotalab/cc-sdd/blob/main/tools/cc-sdd/README_ja.md)
|
|
72
|
-
|
|
54
|
+
👉 **詳細な手順**: [推奨ワークフロー(cc-ssd + Michi)](#step-25-推奨ワークフローcc-ssd--michi) を参照してください。
|
|
73
55
|
|
|
74
56
|
## Step 2.5: 推奨ワークフロー(cc-sdd + Michi)
|
|
75
57
|
|
|
@@ -432,11 +432,282 @@ michi multi-repo:list
|
|
|
432
432
|
michi multi-repo:list
|
|
433
433
|
```
|
|
434
434
|
|
|
435
|
+
## 既存ユーザーのためのマイグレーションガイド
|
|
436
|
+
|
|
437
|
+
このセクションは、既存のMichiユーザーがMulti-Repo機能を導入する際の手順を説明します。
|
|
438
|
+
|
|
439
|
+
### 概要
|
|
440
|
+
|
|
441
|
+
Multi-Repo機能はMichiに新しく追加された機能です。既存のMichi機能に影響を与えず、追加のコマンド群として提供されます。
|
|
442
|
+
|
|
443
|
+
**主な特徴**:
|
|
444
|
+
- **後方互換性**: 既存のMichiコマンドとワークフローに影響なし
|
|
445
|
+
- **オプトイン**: Multi-Repo機能を使用する場合のみ、設定を追加
|
|
446
|
+
- **自動マイグレーション**: 初回使用時に自動的に設定ファイルが拡張される
|
|
447
|
+
|
|
448
|
+
### 変更点(v0.5.0 → v1.0.0)
|
|
449
|
+
|
|
450
|
+
#### 1. config.jsonスキーマの拡張
|
|
451
|
+
|
|
452
|
+
`.michi/config.json` に新しいフィールド `multiRepoProjects` が追加されます。
|
|
453
|
+
|
|
454
|
+
**変更前(v0.5.0)**:
|
|
455
|
+
```json
|
|
456
|
+
{
|
|
457
|
+
"confluence": { ... },
|
|
458
|
+
"jira": { ... },
|
|
459
|
+
"workflow": { ... },
|
|
460
|
+
"validation": { ... },
|
|
461
|
+
"atlassian": { ... },
|
|
462
|
+
"project": { ... }
|
|
463
|
+
}
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
**変更後(v1.0.0)**:
|
|
467
|
+
```json
|
|
468
|
+
{
|
|
469
|
+
"confluence": { ... },
|
|
470
|
+
"jira": { ... },
|
|
471
|
+
"workflow": { ... },
|
|
472
|
+
"validation": { ... },
|
|
473
|
+
"atlassian": { ... },
|
|
474
|
+
"project": { ... },
|
|
475
|
+
"multiRepoProjects": []
|
|
476
|
+
}
|
|
477
|
+
```
|
|
478
|
+
|
|
479
|
+
重要: `multiRepoProjects` フィールドが存在しない場合、Michiは自動的に空配列 `[]` として扱います。手動で追加する必要はありません。
|
|
480
|
+
|
|
481
|
+
#### 2. 新規コマンドの追加
|
|
482
|
+
|
|
483
|
+
以下の6つのコマンドが追加されます:
|
|
484
|
+
|
|
485
|
+
| コマンド | Phase | 説明 |
|
|
486
|
+
|---------|-------|------|
|
|
487
|
+
| `michi multi-repo:init` | 1 (MVP) | プロジェクト初期化 |
|
|
488
|
+
| `michi multi-repo:add-repo` | 1 (MVP) | リポジトリ登録 |
|
|
489
|
+
| `michi multi-repo:list` | 1 (MVP) | プロジェクト一覧表示 |
|
|
490
|
+
| `michi multi-repo:ci-status` | 2 | CI結果集約 |
|
|
491
|
+
| `michi multi-repo:test` | 2 | テスト実行 |
|
|
492
|
+
| `michi multi-repo:confluence-sync` | 3 | Confluence同期 |
|
|
493
|
+
|
|
494
|
+
#### 3. 環境変数の追加(オプション)
|
|
495
|
+
|
|
496
|
+
**Phase 2機能を使用する場合**:
|
|
497
|
+
```bash
|
|
498
|
+
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
499
|
+
```
|
|
500
|
+
|
|
501
|
+
**Phase 3機能を使用する場合**:
|
|
502
|
+
```bash
|
|
503
|
+
export ATLASSIAN_URL="https://your-company.atlassian.net"
|
|
504
|
+
export ATLASSIAN_EMAIL="your-email@example.com"
|
|
505
|
+
export ATLASSIAN_API_TOKEN="your-api-token"
|
|
506
|
+
```
|
|
507
|
+
|
|
508
|
+
注意: 既存のMichiでConfluence機能を使用している場合、これらの環境変数は既に設定されているため、追加の設定は不要です。
|
|
509
|
+
|
|
510
|
+
### マイグレーション手順
|
|
511
|
+
|
|
512
|
+
#### ステップ1: Michiをv1.0.0にアップグレード
|
|
513
|
+
|
|
514
|
+
```bash
|
|
515
|
+
npm install -g @sk8metal/michi-cli@latest
|
|
516
|
+
```
|
|
517
|
+
|
|
518
|
+
アップグレード後、バージョンを確認します。
|
|
519
|
+
|
|
520
|
+
```bash
|
|
521
|
+
michi --version
|
|
522
|
+
# @sk8metal/michi-cli v1.0.0
|
|
523
|
+
```
|
|
524
|
+
|
|
525
|
+
#### ステップ2: 環境変数の設定(オプション)
|
|
526
|
+
|
|
527
|
+
**Phase 2機能を使用する場合**:
|
|
528
|
+
|
|
529
|
+
GitHub Personal Access Tokenを取得し、環境変数に設定します。
|
|
530
|
+
|
|
531
|
+
GitHub Personal Access Tokenの取得方法:
|
|
532
|
+
1. GitHubにログイン
|
|
533
|
+
2. Settings → Developer settings → Personal access tokens → Tokens (classic)
|
|
534
|
+
3. "Generate new token (classic)" をクリック
|
|
535
|
+
4. 必要なスコープを選択:
|
|
536
|
+
- `repo`: プライベートリポジトリへのアクセス(推奨)
|
|
537
|
+
- `public_repo`: パブリックリポジトリのみへのアクセス
|
|
538
|
+
- `workflow`: GitHub Actionsへのアクセス(必須)
|
|
539
|
+
5. トークンを生成してコピー
|
|
540
|
+
|
|
541
|
+
**環境変数の設定**:
|
|
542
|
+
```bash
|
|
543
|
+
# ~/.bashrc または ~/.zshrc に追加
|
|
544
|
+
export GITHUB_TOKEN="ghp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
|
|
545
|
+
|
|
546
|
+
# 変更を反映
|
|
547
|
+
source ~/.bashrc # または source ~/.zshrc
|
|
548
|
+
```
|
|
549
|
+
|
|
550
|
+
**Phase 3機能を使用する場合**:
|
|
551
|
+
|
|
552
|
+
既存のMichiでConfluence機能を使用している場合は、既に設定済みのため、この手順はスキップしてください。
|
|
553
|
+
|
|
554
|
+
新規にConfluence機能を使用する場合は、[Confluenceセットアップガイド](../getting-started/setup-guide.md#confluence設定)を参照してください。
|
|
555
|
+
|
|
556
|
+
#### ステップ3: Multi-Repoプロジェクトの初期化
|
|
557
|
+
|
|
558
|
+
初めてMulti-Repo機能を使用する際に、自動的に `.michi/config.json` が拡張されます。
|
|
559
|
+
|
|
560
|
+
```bash
|
|
561
|
+
# プロジェクト初期化
|
|
562
|
+
michi multi-repo:init my-multi-repo-project \
|
|
563
|
+
--jira MYPROJ \
|
|
564
|
+
--confluence-space MYSPACE
|
|
565
|
+
```
|
|
566
|
+
|
|
567
|
+
**実行結果**:
|
|
568
|
+
```
|
|
569
|
+
✅ Multi-Repoプロジェクトの初期化が完了しました
|
|
570
|
+
|
|
571
|
+
プロジェクト情報:
|
|
572
|
+
名前: my-multi-repo-project
|
|
573
|
+
JIRAキー: MYPROJ
|
|
574
|
+
Confluenceスペース: MYSPACE
|
|
575
|
+
|
|
576
|
+
作成されたディレクトリ:
|
|
577
|
+
docs/michi/my-multi-repo-project/
|
|
578
|
+
├── overview/
|
|
579
|
+
│ ├── requirements.md
|
|
580
|
+
│ ├── architecture.md
|
|
581
|
+
│ └── multi-repo.md
|
|
582
|
+
├── steering/
|
|
583
|
+
├── tests/
|
|
584
|
+
└── docs/
|
|
585
|
+
|
|
586
|
+
設定ファイルを更新しました: .michi/config.json
|
|
587
|
+
```
|
|
588
|
+
|
|
589
|
+
#### ステップ4: リポジトリの登録
|
|
590
|
+
|
|
591
|
+
Multi-Repoプロジェクトにリポジトリを登録します。
|
|
592
|
+
|
|
593
|
+
```bash
|
|
594
|
+
# リポジトリ登録
|
|
595
|
+
michi multi-repo:add-repo my-multi-repo-project \
|
|
596
|
+
--name backend \
|
|
597
|
+
--url https://github.com/your-org/backend \
|
|
598
|
+
--branch main
|
|
599
|
+
|
|
600
|
+
michi multi-repo:add-repo my-multi-repo-project \
|
|
601
|
+
--name frontend \
|
|
602
|
+
--url https://github.com/your-org/frontend \
|
|
603
|
+
--branch main
|
|
604
|
+
```
|
|
605
|
+
|
|
606
|
+
#### ステップ5: 動作確認
|
|
607
|
+
|
|
608
|
+
プロジェクト一覧を表示して、正常に登録されたことを確認します。
|
|
609
|
+
|
|
610
|
+
```bash
|
|
611
|
+
michi multi-repo:list
|
|
612
|
+
```
|
|
613
|
+
|
|
614
|
+
**実行結果**:
|
|
615
|
+
```
|
|
616
|
+
========================================
|
|
617
|
+
Multi-Repo プロジェクト一覧
|
|
618
|
+
========================================
|
|
619
|
+
|
|
620
|
+
プロジェクト: my-multi-repo-project
|
|
621
|
+
JIRAキー: MYPROJ
|
|
622
|
+
Confluenceスペース: MYSPACE
|
|
623
|
+
作成日時: 2025-12-17T10:00:00+09:00
|
|
624
|
+
リポジトリ数: 2
|
|
625
|
+
|
|
626
|
+
リポジトリ:
|
|
627
|
+
1. backend
|
|
628
|
+
URL: https://github.com/your-org/backend
|
|
629
|
+
ブランチ: main
|
|
630
|
+
|
|
631
|
+
2. frontend
|
|
632
|
+
URL: https://github.com/your-org/frontend
|
|
633
|
+
ブランチ: main
|
|
634
|
+
|
|
635
|
+
========================================
|
|
636
|
+
合計プロジェクト数: 1
|
|
637
|
+
========================================
|
|
638
|
+
```
|
|
639
|
+
|
|
640
|
+
### 既存機能への影響
|
|
641
|
+
|
|
642
|
+
#### 影響なし
|
|
643
|
+
|
|
644
|
+
以下の既存Michi機能は、Multi-Repo機能の追加によって**影響を受けません**。
|
|
645
|
+
|
|
646
|
+
**Spec-Driven Developmentワークフロー**:
|
|
647
|
+
```bash
|
|
648
|
+
# 既存のワークフローは変更なし
|
|
649
|
+
/kiro:spec-init "feature-name"
|
|
650
|
+
/kiro:spec-requirements feature-name
|
|
651
|
+
/kiro:spec-design feature-name
|
|
652
|
+
/kiro:spec-tasks feature-name
|
|
653
|
+
/kiro:spec-impl feature-name
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
**Confluence/JIRA統合**:
|
|
657
|
+
```bash
|
|
658
|
+
# 既存のConfluence/JIRAコマンドは変更なし
|
|
659
|
+
michi confluence:sync
|
|
660
|
+
michi jira:sync
|
|
661
|
+
```
|
|
662
|
+
|
|
663
|
+
**設定管理**:
|
|
664
|
+
```bash
|
|
665
|
+
# 既存の設定コマンドは変更なし
|
|
666
|
+
michi config:validate
|
|
667
|
+
michi migrate
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
既存の設定フィールド(`confluence`, `jira`, `workflow`, `validation`, `atlassian`, `project`)は変更されません。`multiRepoProjects` フィールドが追加されるのみです。
|
|
671
|
+
|
|
672
|
+
#### 注意事項
|
|
673
|
+
|
|
674
|
+
**ディレクトリ構造**:
|
|
675
|
+
|
|
676
|
+
Multi-Repo機能は `docs/michi/{project-name}/` ディレクトリを使用します。既存のMichi機能と同じディレクトリ構造ですが、プロジェクト名が異なる場合は別のディレクトリが作成されます。
|
|
677
|
+
|
|
678
|
+
```
|
|
679
|
+
docs/
|
|
680
|
+
├── michi/
|
|
681
|
+
│ ├── my-feature/ # 既存のSpec-Driven Development用
|
|
682
|
+
│ │ ├── overview/
|
|
683
|
+
│ │ ├── steering/
|
|
684
|
+
│ │ └── ...
|
|
685
|
+
│ └── my-multi-repo-project/ # Multi-Repo用(新規)
|
|
686
|
+
│ ├── overview/
|
|
687
|
+
│ ├── steering/
|
|
688
|
+
│ └── ...
|
|
689
|
+
```
|
|
690
|
+
|
|
691
|
+
**Confluence階層構造**:
|
|
692
|
+
|
|
693
|
+
Multi-Repo機能でConfluence同期を使用する場合、以下の階層構造が作成されます。
|
|
694
|
+
|
|
695
|
+
```
|
|
696
|
+
Confluenceスペース (例: MYSPACE)
|
|
697
|
+
└── my-multi-repo-project (親ページ)
|
|
698
|
+
├── my-multi-repo-project - Requirements
|
|
699
|
+
├── my-multi-repo-project - Architecture
|
|
700
|
+
├── my-multi-repo-project - Sequence Diagrams
|
|
701
|
+
└── my-multi-repo-project - Test Strategy
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
既存のConfluenceページとは別の階層構造となるため、影響はありません。
|
|
705
|
+
|
|
435
706
|
## トラブルシューティング
|
|
436
707
|
|
|
437
|
-
###
|
|
708
|
+
### 問題1: GITHUB_TOKEN が設定されていないエラー
|
|
438
709
|
|
|
439
|
-
|
|
710
|
+
**エラーメッセージ**:
|
|
440
711
|
```
|
|
441
712
|
Error: GITHUB_TOKEN environment variable is not set
|
|
442
713
|
```
|
|
@@ -452,11 +723,11 @@ Error: GITHUB_TOKEN environment variable is not set
|
|
|
452
723
|
```
|
|
453
724
|
3. コマンドを再実行
|
|
454
725
|
|
|
455
|
-
### Confluence
|
|
726
|
+
### 問題2: Confluence認証エラー
|
|
456
727
|
|
|
457
|
-
|
|
728
|
+
**エラーメッセージ**:
|
|
458
729
|
```
|
|
459
|
-
Error: Confluence
|
|
730
|
+
Error: Missing Confluence credentials in .env file
|
|
460
731
|
```
|
|
461
732
|
|
|
462
733
|
**原因**:
|
|
@@ -474,65 +745,117 @@ Error: Confluence authentication failed
|
|
|
474
745
|
2. URLが正しい形式か確認(`https://` で始まり、`.atlassian.net` で終わる)
|
|
475
746
|
3. API Tokenを再作成して設定
|
|
476
747
|
|
|
477
|
-
###
|
|
748
|
+
### 問題3: プロジェクト名にパス区切り文字が含まれているエラー
|
|
478
749
|
|
|
479
|
-
|
|
750
|
+
**エラーメッセージ**:
|
|
480
751
|
```
|
|
481
|
-
Error:
|
|
752
|
+
Error: Project name must not contain path traversal characters (/, \), relative path components (., ..), or control characters
|
|
482
753
|
```
|
|
483
754
|
|
|
484
755
|
**原因**:
|
|
485
|
-
|
|
756
|
+
セキュリティ対策として、プロジェクト名にパス区切り文字(`/`, `\`)、相対パス(`.`, `..`)、制御文字が禁止されています。
|
|
486
757
|
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
758
|
+
**解決方法**:
|
|
759
|
+
|
|
760
|
+
プロジェクト名を変更して、以下の文字を含まないようにしてください。
|
|
761
|
+
|
|
762
|
+
- パス区切り文字: `/`, `\`
|
|
763
|
+
- 相対パス: `.`, `..`
|
|
764
|
+
- 制御文字: `\x00`-`\x1F`, `\x7F`
|
|
765
|
+
|
|
766
|
+
**例**:
|
|
767
|
+
```bash
|
|
768
|
+
# 不正な例
|
|
769
|
+
michi multi-repo:init my/project # スラッシュを含む
|
|
770
|
+
michi multi-repo:init ../project # 相対パスを含む
|
|
491
771
|
|
|
492
|
-
|
|
772
|
+
# 正しい例
|
|
773
|
+
michi multi-repo:init my-project
|
|
774
|
+
michi multi-repo:init my_project
|
|
775
|
+
michi multi-repo:init myproject
|
|
776
|
+
```
|
|
777
|
+
|
|
778
|
+
### 問題4: リポジトリURLが無効
|
|
493
779
|
|
|
494
|
-
|
|
780
|
+
**エラーメッセージ**:
|
|
495
781
|
```
|
|
496
|
-
Error:
|
|
782
|
+
Error: Repository URL must be in GitHub format: https://github.com/{owner}/{repo}
|
|
497
783
|
```
|
|
498
784
|
|
|
499
785
|
**原因**:
|
|
500
|
-
|
|
786
|
+
セキュリティ対策として、GitHub HTTPS URLのみが許可されています。
|
|
501
787
|
|
|
502
|
-
|
|
503
|
-
1. `package.json` の `scripts` セクションを確認
|
|
504
|
-
2. スクリプト名を修正:
|
|
505
|
-
```json
|
|
506
|
-
{
|
|
507
|
-
"scripts": {
|
|
508
|
-
"test:unit": "vitest run tests/unit",
|
|
509
|
-
"lint": "eslint .",
|
|
510
|
-
"type-check": "tsc --noEmit"
|
|
511
|
-
}
|
|
512
|
-
}
|
|
513
|
-
```
|
|
514
|
-
3. `.michi/config.json` のスクリプト名を修正
|
|
788
|
+
**解決方法**:
|
|
515
789
|
|
|
516
|
-
|
|
790
|
+
リポジトリURLを以下の形式に変更してください。
|
|
517
791
|
|
|
518
|
-
**症状**:
|
|
519
792
|
```
|
|
520
|
-
|
|
793
|
+
https://github.com/{owner}/{repo}
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
**例**:
|
|
797
|
+
```bash
|
|
798
|
+
# 不正な例
|
|
799
|
+
--url git@github.com:your-org/repo.git # SSH URL
|
|
800
|
+
--url https://github.com/your-org/repo.git # .git拡張子を含む
|
|
801
|
+
--url http://github.com/your-org/repo # HTTP (非セキュア)
|
|
802
|
+
|
|
803
|
+
# 正しい例
|
|
804
|
+
--url https://github.com/your-org/repo
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
### 問題5: GitHub API レート制限エラー
|
|
808
|
+
|
|
809
|
+
**エラーメッセージ**:
|
|
810
|
+
```
|
|
811
|
+
Warning: GitHub API rate limit exceeded. Retrying after X seconds...
|
|
521
812
|
```
|
|
522
813
|
|
|
523
814
|
**原因**:
|
|
524
|
-
|
|
815
|
+
GitHub API呼び出しがレート制限(5,000リクエスト/時間)に達した。
|
|
525
816
|
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
2.
|
|
532
|
-
3.
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
817
|
+
**解決方法**:
|
|
818
|
+
|
|
819
|
+
Michiは自動的にExponential Backoffで再試行します。以下の対策を検討してください。
|
|
820
|
+
|
|
821
|
+
1. **待機**: 自動再試行が完了するまで待つ(最大3回再試行)
|
|
822
|
+
2. **キャッシング活用**: CI結果は15分間キャッシュされるため、頻繁な実行を避ける
|
|
823
|
+
3. **GitHub Enterprise**: より高いレート制限が必要な場合は、GitHub Enterpriseの使用を検討
|
|
824
|
+
|
|
825
|
+
### 問題6: config.jsonが破損している
|
|
826
|
+
|
|
827
|
+
**エラーメッセージ**:
|
|
828
|
+
```
|
|
829
|
+
Error: Failed to parse config: Unexpected token } in JSON at position X
|
|
830
|
+
```
|
|
831
|
+
|
|
832
|
+
**原因**:
|
|
833
|
+
`.michi/config.json` が不正なJSON形式になっている。
|
|
834
|
+
|
|
835
|
+
**解決方法**:
|
|
836
|
+
|
|
837
|
+
1. バックアップが存在する場合、復元する
|
|
838
|
+
|
|
839
|
+
```bash
|
|
840
|
+
cp .michi/config.json.backup .michi/config.json
|
|
841
|
+
```
|
|
842
|
+
|
|
843
|
+
2. バックアップが存在しない場合、config.jsonを手動で修正する
|
|
844
|
+
|
|
845
|
+
```bash
|
|
846
|
+
# JSONリンターで構文エラーを確認
|
|
847
|
+
cat .michi/config.json | jq .
|
|
848
|
+
```
|
|
849
|
+
|
|
850
|
+
3. それでも解決しない場合、config.jsonを再生成する
|
|
851
|
+
|
|
852
|
+
```bash
|
|
853
|
+
# 既存のconfig.jsonをバックアップ
|
|
854
|
+
mv .michi/config.json .michi/config.json.broken
|
|
855
|
+
|
|
856
|
+
# 新しいconfig.jsonを生成(Multi-Repoプロジェクトは失われる)
|
|
857
|
+
michi config:validate
|
|
858
|
+
```
|
|
536
859
|
|
|
537
860
|
## FAQ
|
|
538
861
|
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# セキュリティテスト - 一般的な攻撃ペイロード
|
|
2
|
+
|
|
3
|
+
**親ドキュメント**: [../templates/test-specs/security-test-spec-template.md](../templates/test-specs/security-test-spec-template.md)
|
|
4
|
+
|
|
5
|
+
このドキュメントでは、セキュリティテストで使用される一般的な攻撃ペイロードの例を示します。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Appendix B: Common Attack Payloads
|
|
10
|
+
|
|
11
|
+
### SQL Injection Payloads
|
|
12
|
+
|
|
13
|
+
```sql
|
|
14
|
+
' OR '1'='1' --
|
|
15
|
+
' OR '1'='1' /*
|
|
16
|
+
admin' --
|
|
17
|
+
admin' #
|
|
18
|
+
' UNION SELECT NULL, username, password FROM users --
|
|
19
|
+
1'; DROP TABLE users; --
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### XSS Payloads
|
|
23
|
+
|
|
24
|
+
```html
|
|
25
|
+
<script>alert('XSS')</script>
|
|
26
|
+
<img src=x onerror=alert('XSS')>
|
|
27
|
+
<svg onload=alert('XSS')>
|
|
28
|
+
<iframe src="javascript:alert('XSS')">
|
|
29
|
+
<body onload=alert('XSS')>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
### Path Traversal Payloads
|
|
33
|
+
|
|
34
|
+
```text
|
|
35
|
+
../../etc/passwd
|
|
36
|
+
....//....//etc/passwd
|
|
37
|
+
..%2F..%2Fetc%2Fpasswd
|
|
38
|
+
..%252F..%252Fetc%252Fpasswd
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
### LDAP Injection Payloads
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
*)(uid=*))(|(uid=*
|
|
45
|
+
admin)(&(password=*))
|
|
46
|
+
*)(objectClass=*)
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|