@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.
Files changed (71) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/dist/scripts/confluence-sync.js +2 -2
  3. package/dist/scripts/confluence-sync.js.map +1 -1
  4. package/dist/scripts/jira-sync.js +2 -2
  5. package/dist/scripts/jira-sync.js.map +1 -1
  6. package/dist/scripts/multi-project-estimate.js +2 -2
  7. package/dist/scripts/multi-project-estimate.js.map +1 -1
  8. package/dist/scripts/pr-automation.js +2 -2
  9. package/dist/scripts/pr-automation.js.map +1 -1
  10. package/dist/scripts/pre-flight-check.js +2 -2
  11. package/dist/scripts/pre-flight-check.js.map +1 -1
  12. package/dist/scripts/resource-dashboard.js +2 -2
  13. package/dist/scripts/resource-dashboard.js.map +1 -1
  14. package/dist/scripts/spec-impl-workflow.js +2 -2
  15. package/dist/scripts/spec-impl-workflow.js.map +1 -1
  16. package/dist/scripts/template/multi-repo-renderer.d.ts +1 -1
  17. package/dist/scripts/template/multi-repo-renderer.d.ts.map +1 -1
  18. package/dist/scripts/template/multi-repo-renderer.js +8 -3
  19. package/dist/scripts/template/multi-repo-renderer.js.map +1 -1
  20. package/dist/scripts/test-workflow-stages.js +2 -2
  21. package/dist/scripts/test-workflow-stages.js.map +1 -1
  22. package/dist/scripts/utils/config-loader.d.ts.map +1 -1
  23. package/dist/scripts/utils/config-loader.js +3 -2
  24. package/dist/scripts/utils/config-loader.js.map +1 -1
  25. package/dist/scripts/utils/env-loader.d.ts +11 -0
  26. package/dist/scripts/utils/env-loader.d.ts.map +1 -0
  27. package/dist/scripts/utils/env-loader.js +23 -0
  28. package/dist/scripts/utils/env-loader.js.map +1 -0
  29. package/dist/scripts/workflow-orchestrator.js +2 -2
  30. package/dist/scripts/workflow-orchestrator.js.map +1 -1
  31. package/dist/src/cli.js +3 -3
  32. package/dist/src/cli.js.map +1 -1
  33. package/docs/michi-development/design/config-unification.md +38 -4094
  34. package/docs/michi-development/design/design-config-current-state.md +330 -0
  35. package/docs/michi-development/design/design-config-implementation.md +628 -0
  36. package/docs/michi-development/design/design-config-migration.md +952 -0
  37. package/docs/michi-development/design/design-config-security.md +771 -0
  38. package/docs/michi-development/design/design-config-solution.md +583 -0
  39. package/docs/michi-development/design/design-config-testing.md +892 -0
  40. package/docs/michi-development/testing/manual-verification-flow.md +6 -1377
  41. package/docs/michi-development/testing/manual-verification-other-tools.md +1277 -0
  42. package/docs/michi-development/testing/manual-verification-troubleshooting.md +122 -0
  43. package/docs/user-guide/getting-started/setup.md +14 -32
  44. package/docs/user-guide/guides/multi-repo-guide.md +367 -44
  45. package/docs/user-guide/reference/config.md +1 -1
  46. package/docs/user-guide/reference/security-test-payloads.md +50 -0
  47. package/docs/user-guide/release/ci-setup-java.md +114 -0
  48. package/docs/user-guide/release/ci-setup-nodejs.md +94 -0
  49. package/docs/user-guide/release/ci-setup-php.md +102 -0
  50. package/docs/user-guide/release/ci-setup-troubleshooting.md +94 -0
  51. package/docs/user-guide/release/ci-setup.md +17 -370
  52. package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +9 -3
  53. package/docs/user-guide/templates/test-specs/security-test-spec-template.md +4 -43
  54. package/package.json +2 -3
  55. package/scripts/confluence-sync.ts +2 -2
  56. package/scripts/jira-sync.ts +2 -2
  57. package/scripts/multi-project-estimate.ts +2 -2
  58. package/scripts/pr-automation.ts +2 -2
  59. package/scripts/pre-flight-check.ts +2 -2
  60. package/scripts/resource-dashboard.ts +2 -2
  61. package/scripts/spec-impl-workflow.ts +2 -2
  62. package/scripts/template/__tests__/multi-repo-renderer.test.ts +15 -10
  63. package/scripts/template/multi-repo-renderer.ts +9 -3
  64. package/scripts/test-workflow-stages.ts +2 -2
  65. package/scripts/utils/__tests__/env-loader.test.ts +145 -0
  66. package/scripts/utils/config-loader.ts +3 -2
  67. package/scripts/utils/env-loader.ts +25 -0
  68. package/scripts/workflow-orchestrator.ts +2 -2
  69. package/docs/design-issue-55.md +0 -240
  70. package/docs/design-issue-56.md +0 -181
  71. 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
- ```bash
38
- # 作業プロジェクトのルートディレクトリに移動
39
- cd /path/to/your-project
34
+ Michiは、cc-sddをコアフレームワークとして使用します。セットアップは2段階で行います:
40
35
 
41
- # Cursor IDE を使用する場合
42
- npx cc-sdd@latest --lang ja --cursor
36
+ 1. **cc-sdd**: AI駆動開発ワークフローの基盤
37
+ 2. **Michi**: Confluence/JIRA連携などの拡張機能
43
38
 
44
- # Claude Code を使用する場合
45
- npx cc-sdd@latest --lang ja --claude
39
+ 詳細な手順については、以下のセクションを参照してください:
46
40
 
47
- # Gemini CLI を使用する場合
48
- npx cc-sdd@latest --lang ja --gemini
41
+ ### クイックスタート(3ステップ)
49
42
 
50
- # Codex CLI を使用する場合
51
- npx cc-sdd@next --lang ja --codex
43
+ ```bash
44
+ # Step 1: cc-sddで標準ファイル生成
45
+ npx cc-sdd@latest --cursor --lang ja
52
46
 
53
- # GitHub Copilot を使用する場合
54
- npx cc-sdd@next --lang ja --copilot
47
+ # Step 2: Michi固有ファイルを追加
48
+ npx @sk8metal/michi-cli setup-existing --cursor --lang ja
55
49
 
56
- # Windsurf IDE を使用する場合
57
- npx cc-sdd@next --lang ja --windsurf
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
- ### GitHub Token未設定
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 authentication failed
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: GitHub API rate limit exceeded
752
+ Error: Project name must not contain path traversal characters (/, \), relative path components (., ..), or control characters
482
753
  ```
483
754
 
484
755
  **原因**:
485
- GitHub APIのレート制限(5000リクエスト/時)を超えました。
756
+ セキュリティ対策として、プロジェクト名にパス区切り文字(`/`, `\`)、相対パス(`.`, `..`)、制御文字が禁止されています。
486
757
 
487
- **対処法**:
488
- 1. 1時間待機してから再実行
489
- 2. キャッシュを活用(15分以内の再実行はキャッシュから取得)
490
- 3. 複数のGitHub Tokenをローテーションで使用
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: Script not found: npm test:unit
782
+ Error: Repository URL must be in GitHub format: https://github.com/{owner}/{repo}
497
783
  ```
498
784
 
499
785
  **原因**:
500
- `.michi/config.json` に登録されているテストスクリプトが存在しません。
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
- Error: Project 'my-project' not found
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
- 指定されたプロジェクト名が `.michi/config.json` に存在しません。
815
+ GitHub API呼び出しがレート制限(5,000リクエスト/時間)に達した。
525
816
 
526
- **対処法**:
527
- 1. プロジェクト名を確認:
528
- ```bash
529
- michi multi-repo:list
530
- ```
531
- 2. プロジェクト名のスペル、大文字小文字を確認
532
- 3. 必要に応じてプロジェクトを初期化:
533
- ```bash
534
- michi multi-repo:init my-project --jira PROJ --confluence-space PROJ
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
 
@@ -392,7 +392,7 @@ npx tsx scripts/utils/config-validator.ts
392
392
 
393
393
  ### 必須設定値エラー
394
394
 
395
- **症状**: 実行時に「設定値が不足しています」というエラーが表示される
395
+ **症状**: 実行時に「設定値が不足しています」エラーが表示される
396
396
 
397
397
  **よくあるエラーケース**:
398
398
 
@@ -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
+