@sk8metal/michi-cli 0.10.1 → 0.12.0
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 +71 -848
- package/dist/scripts/constants/environments.d.ts +1 -1
- package/dist/scripts/constants/environments.d.ts.map +1 -1
- package/dist/scripts/constants/environments.js +0 -20
- package/dist/scripts/constants/environments.js.map +1 -1
- package/dist/scripts/phase-runner.js +1 -1
- package/dist/scripts/phase-runner.js.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.d.ts +18 -0
- package/dist/scripts/utils/multi-repo-validator.d.ts.map +1 -1
- package/dist/scripts/utils/multi-repo-validator.js +42 -0
- package/dist/scripts/utils/multi-repo-validator.js.map +1 -1
- package/dist/scripts/utils/tasks-format-validator.js +3 -3
- package/dist/scripts/utils/tasks-format-validator.js.map +1 -1
- package/dist/scripts/utils/template-finder.d.ts +2 -2
- package/dist/scripts/utils/template-finder.d.ts.map +1 -1
- package/dist/scripts/utils/template-finder.js +3 -8
- package/dist/scripts/utils/template-finder.js.map +1 -1
- package/dist/src/cli.d.ts.map +1 -1
- package/dist/src/cli.js +0 -8
- package/dist/src/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +0 -4
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +6 -30
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/setup-existing.d.ts +2 -6
- package/dist/src/commands/setup-existing.d.ts.map +1 -1
- package/dist/src/commands/setup-existing.js +8 -142
- package/dist/src/commands/setup-existing.js.map +1 -1
- package/docs/README.md +20 -83
- package/docs/getting-started/configuration.md +350 -0
- package/docs/getting-started/installation.md +59 -0
- package/docs/getting-started/quick-start.md +76 -0
- package/docs/guides/atlassian-integration.md +116 -0
- package/docs/guides/claude-code.md +155 -0
- package/docs/guides/multi-repo.md +117 -0
- package/docs/guides/workflow.md +382 -0
- package/docs/reference/ai-commands.md +92 -0
- package/docs/reference/cli.md +752 -0
- package/docs/reference/environment-variables.md +192 -0
- package/docs/troubleshooting.md +498 -0
- package/package.json +1 -3
- package/scripts/__tests__/create-project.test.ts +12 -12
- package/scripts/__tests__/setup-existing-project.test.ts +22 -22
- package/scripts/constants/__tests__/environments.test.ts +7 -50
- package/scripts/constants/environments.ts +1 -27
- package/scripts/phase-runner.ts +1 -1
- package/scripts/template/__tests__/renderer.test.ts +21 -21
- package/scripts/utils/__tests__/multi-repo-validator.test.ts +159 -1
- package/scripts/utils/multi-repo-validator.ts +50 -0
- package/scripts/utils/tasks-format-validator.ts +3 -3
- package/scripts/utils/template-finder.ts +5 -11
- package/templates/claude/agents/e2e-first-planner/AGENT.md +1 -1
- package/templates/claude/agents/pr-resolver/AGENT.md +15 -3
- package/templates/claude/commands/michi/e2e-plan.md +1 -1
- package/templates/claude/commands/michi/spec-design.md +2 -2
- package/templates/claude/commands/michi/spec-tasks.md +156 -0
- package/templates/claude/commands/michi/test-planning.md +1 -1
- package/templates/claude/commands/michi/validate-design.md +3 -3
- package/templates/claude/commands/michi-multi-repo/impl-all.md +30 -1
- package/templates/claude/commands/michi-multi-repo/propagate-specs.md +14 -1
- package/templates/claude/commands/michi-multi-repo/spec-review.md +16 -2
- package/templates/claude-agent/agents/repo-spec-executor.md +1 -1
- package/templates/claude-agent/commands/michi/spec-tasks.md +117 -0
- package/templates/claude-agent/rules/code-size-monitor.md +26 -0
- package/templates/claude-agent/rules/code-size-rules.md +32 -0
- package/templates/michi/cc-sdd-overrides/settings/rules/design-review-michi.md +1 -1
- package/docs/context.md +0 -59
- package/docs/michi-development/contributing/development.md +0 -341
- package/docs/michi-development/contributing/release.md +0 -365
- package/docs/michi-development/design/config-unification.md +0 -733
- package/docs/michi-development/design/design-config-current-state.md +0 -330
- package/docs/michi-development/design/design-config-implementation.md +0 -628
- package/docs/michi-development/design/design-config-migration.md +0 -952
- package/docs/michi-development/design/design-config-security.md +0 -771
- package/docs/michi-development/design/design-config-solution.md +0 -583
- package/docs/michi-development/design/design-config-testing.md +0 -892
- package/docs/michi-development/testing/manual-verification-flow.md +0 -871
- package/docs/michi-development/testing/manual-verification-other-tools.md +0 -1279
- package/docs/michi-development/testing/manual-verification-troubleshooting.md +0 -122
- package/docs/michi-development/testing/pre-publish-checklist.md +0 -560
- package/docs/michi-development/testing-strategy.md +0 -87
- package/docs/plan.md +0 -275
- package/docs/user-guide/getting-started/github-token-setup.md +0 -510
- package/docs/user-guide/getting-started/new-repository-setup.md +0 -704
- package/docs/user-guide/getting-started/quick-start.md +0 -212
- package/docs/user-guide/getting-started/setup.md +0 -819
- package/docs/user-guide/guides/agent-skills-integration.md +0 -222
- package/docs/user-guide/guides/customization.md +0 -537
- package/docs/user-guide/guides/internationalization.md +0 -540
- package/docs/user-guide/guides/migration-guide.md +0 -138
- package/docs/user-guide/guides/multi-project.md +0 -368
- package/docs/user-guide/guides/multi-repo-guide.md +0 -1590
- package/docs/user-guide/guides/phase-automation.md +0 -419
- package/docs/user-guide/guides/workflow.md +0 -574
- package/docs/user-guide/hands-on/README.md +0 -142
- package/docs/user-guide/hands-on/claude-agent-setup.md +0 -597
- package/docs/user-guide/hands-on/claude-setup.md +0 -452
- package/docs/user-guide/hands-on/cursor-setup.md +0 -353
- package/docs/user-guide/hands-on/troubleshooting.md +0 -964
- package/docs/user-guide/hands-on/verification-checklist.md +0 -439
- package/docs/user-guide/hands-on/workflow-walkthrough.md +0 -1078
- package/docs/user-guide/reference/config.md +0 -589
- package/docs/user-guide/reference/multi-repo-api.md +0 -771
- package/docs/user-guide/reference/quick-reference.md +0 -297
- package/docs/user-guide/reference/security-test-payloads.md +0 -50
- package/docs/user-guide/reference/tasks-template.md +0 -550
- package/docs/user-guide/release/ci-setup-java.md +0 -114
- package/docs/user-guide/release/ci-setup-nodejs.md +0 -94
- package/docs/user-guide/release/ci-setup-php.md +0 -102
- package/docs/user-guide/release/ci-setup-troubleshooting.md +0 -94
- package/docs/user-guide/release/ci-setup.md +0 -188
- package/docs/user-guide/release/release-flow.md +0 -476
- package/docs/user-guide/templates/test-specs/README.md +0 -173
- package/docs/user-guide/templates/test-specs/e2e-test-spec-template.md +0 -553
- package/docs/user-guide/templates/test-specs/integration-test-spec-template.md +0 -435
- package/docs/user-guide/templates/test-specs/performance-test-spec-template.md +0 -454
- package/docs/user-guide/templates/test-specs/security-test-spec-template.md +0 -625
- package/docs/user-guide/templates/test-specs/unit-test-spec-template.md +0 -328
- package/docs/user-guide/testing/integration-tests.md +0 -312
- package/docs/user-guide/testing/tdd-cycle.md +0 -349
- package/docs/user-guide/testing/test-execution-flow.md +0 -396
- package/docs/user-guide/testing/test-failure-handling.md +0 -521
- package/docs/user-guide/testing/test-planning-flow.md +0 -185
- package/docs/user-guide/testing-strategy.md +0 -185
- package/docs/verification-guide.md +0 -518
- package/templates/cline/rules/atlassian-integration.md +0 -36
- package/templates/cline/rules/michi-core.md +0 -56
- package/templates/codex/AGENTS.override.md +0 -277
- package/templates/codex/prompts/confluence-sync.md +0 -177
- package/templates/codex/rules/README.md +0 -210
- package/templates/cursor/commands/kiro/kiro-spec-impl.md +0 -244
- package/templates/cursor/commands/kiro/kiro-spec-tasks.md +0 -354
- package/templates/cursor/commands/michi/confluence-sync.md +0 -76
- package/templates/cursor/commands/michi/project-switch.md +0 -69
- package/templates/cursor/rules/atlassian-mcp.mdc +0 -188
- package/templates/cursor/rules/github-ssot.mdc +0 -151
- package/templates/cursor/rules/multi-project.mdc +0 -81
- package/templates/gemini/commands/README.md +0 -41
- package/templates/gemini/rules/GEMINI.md +0 -80
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: /michi:spec-tasks
|
|
3
|
+
description: Generate implementation tasks with JIRA sync option (Michi version)
|
|
4
|
+
allowed-tools: Read, Write, Edit, MultiEdit, Glob, Grep, Bash
|
|
5
|
+
argument-hint: <feature-name> [-y] [--sequential]
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Michi: Spec Tasks with JIRA Sync Option
|
|
9
|
+
|
|
10
|
+
## Base Command Reference
|
|
11
|
+
@.claude/commands/kiro/spec-tasks.md
|
|
12
|
+
|
|
13
|
+
## Development Guidelines
|
|
14
|
+
{{DEV_GUIDELINES}}
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## Michi Extension: JIRA Sync Prompt
|
|
19
|
+
|
|
20
|
+
このコマンドは cc-sdd 標準の `/kiro:spec-tasks` を拡張し、タスク生成完了後にJIRA同期オプションを提示します。
|
|
21
|
+
|
|
22
|
+
### 機能追加内容
|
|
23
|
+
|
|
24
|
+
1. **タスク生成完了後の次ステップ案内**:
|
|
25
|
+
- JIRA連携が設定されている場合: JIRA同期の選択肢(A/B/C形式)を表示
|
|
26
|
+
- JIRA連携が未設定の場合: 実装フェーズへの案内 + JIRA設定ヒントを表示
|
|
27
|
+
|
|
28
|
+
2. **環境変数による条件分岐**:
|
|
29
|
+
- 以下の環境変数がすべて設定されている場合のみ、JIRA同期の選択肢を表示
|
|
30
|
+
- `ATLASSIAN_URL`
|
|
31
|
+
- `ATLASSIAN_EMAIL`
|
|
32
|
+
- `ATLASSIAN_API_TOKEN`
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## タスク生成完了後のフロー
|
|
37
|
+
|
|
38
|
+
基底コマンド `/kiro:spec-tasks` によるタスク生成が完了した後、以下のフローを実行してください:
|
|
39
|
+
|
|
40
|
+
### Step 1: 環境変数チェック
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
# JIRA連携の環境変数をチェック
|
|
44
|
+
if [ -n "$ATLASSIAN_URL" ] && [ -n "$ATLASSIAN_EMAIL" ] && [ -n "$ATLASSIAN_API_TOKEN" ]; then
|
|
45
|
+
JIRA_CONFIGURED=true
|
|
46
|
+
else
|
|
47
|
+
JIRA_CONFIGURED=false
|
|
48
|
+
fi
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
### Step 2a: JIRA連携が設定されている場合の表示
|
|
52
|
+
|
|
53
|
+
`JIRA_CONFIGURED=true` の場合、以下のメッセージと選択肢を表示:
|
|
54
|
+
|
|
55
|
+
```
|
|
56
|
+
============================================
|
|
57
|
+
タスク生成完了 - JIRA同期オプション
|
|
58
|
+
============================================
|
|
59
|
+
|
|
60
|
+
次のアクション:
|
|
61
|
+
A) JIRAにタスクを同期する(推奨: タスク管理を一元化)
|
|
62
|
+
→ `michi jira:sync {{FEATURE_NAME}}` を実行
|
|
63
|
+
|
|
64
|
+
B) JIRAへの同期をスキップして実装に進む
|
|
65
|
+
→ `/michi:spec-impl {{FEATURE_NAME}}` を実行
|
|
66
|
+
|
|
67
|
+
C) 何もせずにこのまま終了する
|
|
68
|
+
|
|
69
|
+
選択 (A/B/C): _
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**選択肢の説明**:
|
|
73
|
+
- **A**: Epic/Story/Subtaskを自動作成し、タスクをJIRAに同期します
|
|
74
|
+
- **B**: JIRA同期をスキップして直接TDD実装フェーズに進みます
|
|
75
|
+
- **C**: タスク生成のみで終了し、ユーザーが手動で次のステップを選択します
|
|
76
|
+
|
|
77
|
+
### Step 2b: JIRA連携が未設定の場合の表示
|
|
78
|
+
|
|
79
|
+
`JIRA_CONFIGURED=false` の場合、以下のメッセージを表示:
|
|
80
|
+
|
|
81
|
+
```
|
|
82
|
+
============================================
|
|
83
|
+
タスク生成完了
|
|
84
|
+
============================================
|
|
85
|
+
|
|
86
|
+
次のステップ:
|
|
87
|
+
→ `/michi:spec-impl {{FEATURE_NAME}}` で実装を開始
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
ℹ️ ヒント: JIRA連携を使用すると、タスクを自動的にJIRAに同期できます。
|
|
91
|
+
|
|
92
|
+
設定方法: 以下の環境変数を .env に追加してください:
|
|
93
|
+
- ATLASSIAN_URL=https://your-domain.atlassian.net
|
|
94
|
+
- ATLASSIAN_EMAIL=your-email@company.com
|
|
95
|
+
- ATLASSIAN_API_TOKEN=your-api-token
|
|
96
|
+
|
|
97
|
+
詳細はドキュメントを参照: docs/guides/atlassian-integration.md
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
---
|
|
101
|
+
|
|
102
|
+
## 実装上の注意点
|
|
103
|
+
|
|
104
|
+
1. **基底コマンドの実行結果を維持**:
|
|
105
|
+
- `/kiro:spec-tasks` の「Output Description」セクションで出力されるタスクサマリーは維持してください
|
|
106
|
+
- Michi Extensionの選択肢はその**後**に追加で表示します
|
|
107
|
+
|
|
108
|
+
2. **言語設定の考慮**:
|
|
109
|
+
- メッセージは日本語固定(将来的にspec.jsonの言語設定に対応する可能性あり)
|
|
110
|
+
|
|
111
|
+
3. **ユーザーインタラクション**:
|
|
112
|
+
- 選択肢を表示した後、ユーザーの入力を待ちます
|
|
113
|
+
- 選択に応じて適切なコマンド/処理を案内または実行してください
|
|
114
|
+
|
|
115
|
+
---
|
|
116
|
+
|
|
117
|
+
**Michi 固有機能**: このコマンドは cc-sdd 標準の `/kiro:spec-tasks` を拡張し、Phase 0.6(JIRA同期)への誘導を Next Phase として案内します。これにより、タスク分割からJIRA連携へのスムーズな移行を実現します。
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
---
|
|
2
|
+
globs:
|
|
3
|
+
- "src/**/*"
|
|
4
|
+
- "scripts/**/*"
|
|
5
|
+
- "test/**/*"
|
|
6
|
+
- "tests/**/*"
|
|
7
|
+
alwaysApply: false
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Code Generation Size Monitoring
|
|
11
|
+
|
|
12
|
+
PROACTIVELY: /michi:spec-impl の各タスク完了後に使用。
|
|
13
|
+
|
|
14
|
+
## Reference
|
|
15
|
+
@templates/claude-agent/rules/code-size-rules.md
|
|
16
|
+
|
|
17
|
+
## Execution Timing
|
|
18
|
+
1. 各sub-task完了後
|
|
19
|
+
2. コミット前
|
|
20
|
+
3. 長時間のコーディングセッション中(3-5ファイル変更ごと)
|
|
21
|
+
|
|
22
|
+
## Actions on Threshold Exceeded
|
|
23
|
+
500行超過時:
|
|
24
|
+
A) 現在の変更でPRを作成する(推奨)
|
|
25
|
+
B) 作業を続行する(警告付き)
|
|
26
|
+
C) 分割戦略を提案してもらう
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Code Size Rules
|
|
2
|
+
|
|
3
|
+
## Threshold
|
|
4
|
+
|
|
5
|
+
| Metric | Value |
|
|
6
|
+
|--------|-------|
|
|
7
|
+
| Maximum Diff Lines | 500 lines |
|
|
8
|
+
| Warning Threshold | 400 lines |
|
|
9
|
+
|
|
10
|
+
## Target Paths
|
|
11
|
+
- src/
|
|
12
|
+
- scripts/
|
|
13
|
+
- test/
|
|
14
|
+
- tests/
|
|
15
|
+
|
|
16
|
+
## Exclusion Patterns (Lock Files)
|
|
17
|
+
- package-lock.json, yarn.lock, pnpm-lock.yaml
|
|
18
|
+
- composer.lock, Gemfile.lock, poetry.lock, Pipfile.lock
|
|
19
|
+
- Cargo.lock, go.sum
|
|
20
|
+
|
|
21
|
+
## Exclusion Patterns (Generated Files)
|
|
22
|
+
- *.min.js, *.min.css, *.map
|
|
23
|
+
- dist/*, build/*, coverage/*, .next/*
|
|
24
|
+
- *.d.ts, *.generated.ts, `__snapshots__/*`
|
|
25
|
+
|
|
26
|
+
## Status Indicators
|
|
27
|
+
|
|
28
|
+
| Status | Condition |
|
|
29
|
+
|--------|-----------|
|
|
30
|
+
| ✅ OK | diff < 400 lines |
|
|
31
|
+
| ⚠️ Warning | 400 <= diff < 500 lines |
|
|
32
|
+
| ❌ Exceeded | diff >= 500 lines |
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
設計が承認された場合(GO Decision):
|
|
45
45
|
1. Phase 0.3: テストタイプの選択を実施
|
|
46
46
|
2. Phase 0.4: テスト仕様書の作成を実施
|
|
47
|
-
3. Phase 0.5: タスク分割(`/
|
|
47
|
+
3. Phase 0.5: タスク分割(`/michi:spec-tasks`)に進む
|
|
48
48
|
|
|
49
49
|
詳細は [テスト計画フロー](docs/user-guide/testing/test-planning-flow.md) を参照してください。
|
|
50
50
|
|
package/docs/context.md
DELETED
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
# プロジェクトコンテキスト
|
|
2
|
-
|
|
3
|
-
## 現在のタスク
|
|
4
|
-
Issue #58: テンプレートディレクトリ名の整合性修正
|
|
5
|
-
|
|
6
|
-
## 進捗状況
|
|
7
|
-
- **開始日時**: 2025-11-17 (月)
|
|
8
|
-
- **現在フェーズ**: Phase 0 - 計画策定
|
|
9
|
-
- **完了率**: 0%
|
|
10
|
-
|
|
11
|
-
## タスク概要
|
|
12
|
-
|
|
13
|
-
### Issue #58: テンプレートディレクトリ名の不整合修正
|
|
14
|
-
- **優先度**: 低(技術的負債)
|
|
15
|
-
- **工数**: 0.5h(予想)
|
|
16
|
-
- **ステータス**: 🔄 進行中
|
|
17
|
-
|
|
18
|
-
## 問題の詳細
|
|
19
|
-
|
|
20
|
-
### 現状
|
|
21
|
-
- **テンプレートソース**: `templates/claude-agent/rules/`
|
|
22
|
-
- **配置先**: `.claude/subagents`
|
|
23
|
-
|
|
24
|
-
`rules`という名前のディレクトリが`subagents`という名前で配置されるため、新規開発者にとって混乱を招く。
|
|
25
|
-
|
|
26
|
-
### 影響範囲
|
|
27
|
-
- **重大度**: 低(機能的には動作している)
|
|
28
|
-
- **保守性**: 中(新規開発者への混乱)
|
|
29
|
-
- **リスク**: 低(テンプレートコピーロジックのみに限定)
|
|
30
|
-
|
|
31
|
-
### 推奨解決策
|
|
32
|
-
**Option 1** (推奨): テンプレートディレクトリをリネーム
|
|
33
|
-
- `templates/claude-agent/rules/` → `templates/claude-agent/subagents/`
|
|
34
|
-
- シンプルで明確、一貫性がある
|
|
35
|
-
|
|
36
|
-
**Option 2**: 柔軟なテンプレート命名をサポート
|
|
37
|
-
- `EnvironmentConfig`に`rulesDirTemplateName`を追加
|
|
38
|
-
- より柔軟だが複雑性が増す
|
|
39
|
-
|
|
40
|
-
## 影響ファイル
|
|
41
|
-
- `templates/claude-agent/rules/` (リネーム対象)
|
|
42
|
-
- `src/commands/setup-existing.ts` (変数名を確認)
|
|
43
|
-
|
|
44
|
-
## 前提条件
|
|
45
|
-
- Issue #55, #56は完了済み
|
|
46
|
-
- 全テストスイート成功(235 passed)
|
|
47
|
-
|
|
48
|
-
## 完了条件
|
|
49
|
-
- [ ] テンプレートディレクトリを`subagents`にリネーム
|
|
50
|
-
- [ ] 全テストスイート成功
|
|
51
|
-
- [ ] Lintエラーなし
|
|
52
|
-
- [ ] ドキュメント更新(必要に応じて)
|
|
53
|
-
|
|
54
|
-
## メモ
|
|
55
|
-
- TDD原則を遵守(既存テストで動作確認)
|
|
56
|
-
- Option 1(リネームのみ)を採用予定
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
最終更新: 2025-11-17 (月) - Issue #58開始
|
|
@@ -1,341 +0,0 @@
|
|
|
1
|
-
# Michi 開発環境セットアップガイド
|
|
2
|
-
|
|
3
|
-
このガイドは、Michiプロジェクト自体の開発に貢献したい開発者向けのセットアップ手順です。
|
|
4
|
-
|
|
5
|
-
Michiを使ってプロジェクト開発を始めたい場合は、[利用者向けセットアップガイド](../getting-started/setup.md)を参照してください。
|
|
6
|
-
|
|
7
|
-
## 前提条件
|
|
8
|
-
|
|
9
|
-
- Node.js 20.x以上
|
|
10
|
-
- npm 10.x以上
|
|
11
|
-
- Git または Jujutsu (jj)
|
|
12
|
-
- Cursor IDE または VS Code
|
|
13
|
-
- GitHub CLI (gh) - PR作成時に使用
|
|
14
|
-
|
|
15
|
-
## 1. リポジトリのフォーク・クローン
|
|
16
|
-
|
|
17
|
-
### Gitを使う場合
|
|
18
|
-
|
|
19
|
-
```bash
|
|
20
|
-
# リポジトリをフォーク(GitHubのWebインターフェースで実行)
|
|
21
|
-
|
|
22
|
-
# フォークしたリポジトリをクローン
|
|
23
|
-
git clone https://github.com/YOUR_USERNAME/michi
|
|
24
|
-
cd michi
|
|
25
|
-
|
|
26
|
-
# 上流リポジトリをremoteに追加
|
|
27
|
-
git remote add upstream https://github.com/sk8metalme/michi
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
### Jujutsu (jj) を使う場合
|
|
31
|
-
|
|
32
|
-
```bash
|
|
33
|
-
# リポジトリをクローン
|
|
34
|
-
jj git clone https://github.com/YOUR_USERNAME/michi
|
|
35
|
-
cd michi
|
|
36
|
-
|
|
37
|
-
# 上流リポジトリを設定
|
|
38
|
-
jj git remote add upstream https://github.com/sk8metalme/michi
|
|
39
|
-
```
|
|
40
|
-
|
|
41
|
-
## 2. 依存関係のインストール
|
|
42
|
-
|
|
43
|
-
```bash
|
|
44
|
-
npm install
|
|
45
|
-
```
|
|
46
|
-
|
|
47
|
-
## 3. cc-sddのインストール(開発用)
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
# Cursor IDE を使用する場合
|
|
51
|
-
npx cc-sdd@latest --lang ja --cursor
|
|
52
|
-
|
|
53
|
-
# Claude Code を使用する場合
|
|
54
|
-
npx cc-sdd@latest --lang ja --claude
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
## 4. 環境変数の設定
|
|
58
|
-
|
|
59
|
-
開発環境でも、Confluence/JIRA連携のテストのために環境変数が必要です。
|
|
60
|
-
|
|
61
|
-
```bash
|
|
62
|
-
# テンプレートファイルをコピー
|
|
63
|
-
cp env.example .env
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
詳細な設定方法は、[利用者向けセットアップガイド](../getting-started/setup.md#3-環境変数の設定)を参照してください。
|
|
67
|
-
|
|
68
|
-
## 5. 開発ワークフロー
|
|
69
|
-
|
|
70
|
-
### ブランチ戦略
|
|
71
|
-
|
|
72
|
-
- `main`: 本番環境相当(常にデプロイ可能な状態)
|
|
73
|
-
- `feature/XXX`: 機能開発用
|
|
74
|
-
- `bugfix/XXX`: バグ修正用
|
|
75
|
-
- `docs/XXX`: ドキュメント更新用
|
|
76
|
-
|
|
77
|
-
### 開発サイクル
|
|
78
|
-
|
|
79
|
-
1. **issueを作成** または 既存のissueを確認
|
|
80
|
-
2. **ブランチを作成**
|
|
81
|
-
```bash
|
|
82
|
-
git checkout -b feature/your-feature-name
|
|
83
|
-
# または jj new -m "feature/your-feature-name"
|
|
84
|
-
```
|
|
85
|
-
3. **コードを実装**
|
|
86
|
-
4. **テストを追加・実行**
|
|
87
|
-
5. **コミット**
|
|
88
|
-
6. **PRを作成**
|
|
89
|
-
|
|
90
|
-
## 6. コーディング規約
|
|
91
|
-
|
|
92
|
-
### TypeScript
|
|
93
|
-
|
|
94
|
-
- **Strict Mode**: `tsconfig.json`で厳格な型チェックを有効化
|
|
95
|
-
- **ESLint**: すべてのコードはESLintルールに準拠
|
|
96
|
-
- **Prettier**: コードフォーマットは自動化
|
|
97
|
-
|
|
98
|
-
### コミットメッセージ
|
|
99
|
-
|
|
100
|
-
[Conventional Commits](https://www.conventionalcommits.org/)形式を使用:
|
|
101
|
-
|
|
102
|
-
```
|
|
103
|
-
<type>(<scope>): <subject>
|
|
104
|
-
|
|
105
|
-
<body>
|
|
106
|
-
|
|
107
|
-
<footer>
|
|
108
|
-
```
|
|
109
|
-
|
|
110
|
-
**Type:**
|
|
111
|
-
- `feat`: 新機能
|
|
112
|
-
- `fix`: バグ修正
|
|
113
|
-
- `docs`: ドキュメント変更
|
|
114
|
-
- `style`: コードフォーマット(ロジック変更なし)
|
|
115
|
-
- `refactor`: リファクタリング
|
|
116
|
-
- `test`: テスト追加・修正
|
|
117
|
-
- `chore`: ビルドプロセスやツールの変更
|
|
118
|
-
|
|
119
|
-
**例:**
|
|
120
|
-
```
|
|
121
|
-
feat(confluence): Confluence階層構造のカスタマイズ機能を追加
|
|
122
|
-
|
|
123
|
-
- config.jsonでhierarchy.modeを設定可能に
|
|
124
|
-
- simple/detailedの2モードをサポート
|
|
125
|
-
|
|
126
|
-
Closes #123
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
## 7. テストの実行
|
|
130
|
-
|
|
131
|
-
### 全テストを実行
|
|
132
|
-
|
|
133
|
-
```bash
|
|
134
|
-
npm run test:run
|
|
135
|
-
```
|
|
136
|
-
|
|
137
|
-
### watchモードでテスト
|
|
138
|
-
|
|
139
|
-
```bash
|
|
140
|
-
npm test
|
|
141
|
-
```
|
|
142
|
-
|
|
143
|
-
### カバレッジ確認
|
|
144
|
-
|
|
145
|
-
```bash
|
|
146
|
-
npm run test:coverage
|
|
147
|
-
```
|
|
148
|
-
|
|
149
|
-
**カバレッジ目標**: 95%以上
|
|
150
|
-
|
|
151
|
-
### 型チェック
|
|
152
|
-
|
|
153
|
-
```bash
|
|
154
|
-
npm run type-check
|
|
155
|
-
```
|
|
156
|
-
|
|
157
|
-
## 8. リントとフォーマット
|
|
158
|
-
|
|
159
|
-
### リント実行
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
npm run lint
|
|
163
|
-
```
|
|
164
|
-
|
|
165
|
-
### リント自動修正
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
npm run lint:fix
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
### フォーマット
|
|
172
|
-
|
|
173
|
-
```bash
|
|
174
|
-
npm run format
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## 8-1. Pre-commitフック(自動リント・テスト)
|
|
178
|
-
|
|
179
|
-
このプロジェクトでは、**husky**と**lint-staged**を使用して、コミット前に自動的にリントとテストを実行します。
|
|
180
|
-
|
|
181
|
-
### 動作
|
|
182
|
-
|
|
183
|
-
コミットを実行すると、以下の処理が自動的に実行されます:
|
|
184
|
-
|
|
185
|
-
1. **lint-staged**: ステージングされたファイルに対して自動リント・フォーマット
|
|
186
|
-
- TypeScript/JavaScriptファイル: ESLint自動修正 + Prettierフォーマット
|
|
187
|
-
- JSON/Markdown/YAMLファイル: Prettierフォーマット
|
|
188
|
-
2. **テスト実行**: すべてのテストを実行(`npm run test:run`)
|
|
189
|
-
|
|
190
|
-
### フックをスキップする場合(非推奨)
|
|
191
|
-
|
|
192
|
-
緊急時のみ、以下の方法でフックをスキップできます:
|
|
193
|
-
|
|
194
|
-
```bash
|
|
195
|
-
# Gitの場合
|
|
196
|
-
git commit --no-verify -m "緊急修正"
|
|
197
|
-
|
|
198
|
-
# Jujutsuの場合
|
|
199
|
-
jj commit --no-verify -m "緊急修正"
|
|
200
|
-
```
|
|
201
|
-
|
|
202
|
-
**注意**: フックをスキップしたコミットは、CI/CDで失敗する可能性があります。
|
|
203
|
-
|
|
204
|
-
### フックの設定確認
|
|
205
|
-
|
|
206
|
-
```bash
|
|
207
|
-
# pre-commitフックの内容を確認
|
|
208
|
-
cat .husky/pre-commit
|
|
209
|
-
|
|
210
|
-
# lint-stagedの設定を確認
|
|
211
|
-
cat package.json | grep -A 10 "lint-staged"
|
|
212
|
-
```
|
|
213
|
-
|
|
214
|
-
## 9. ビルドとパッケージング
|
|
215
|
-
|
|
216
|
-
### TypeScriptビルド
|
|
217
|
-
|
|
218
|
-
```bash
|
|
219
|
-
npm run build
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
### ローカルでのパッケージテスト
|
|
223
|
-
|
|
224
|
-
```bash
|
|
225
|
-
# パッケージをリンク
|
|
226
|
-
npm link
|
|
227
|
-
|
|
228
|
-
# 他のプロジェクトでテスト
|
|
229
|
-
cd /path/to/test-project
|
|
230
|
-
npm link @sk8metal/michi-cli
|
|
231
|
-
|
|
232
|
-
# テスト後、リンクを解除
|
|
233
|
-
npm unlink @sk8metal/michi-cli
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
## 10. PRの作成
|
|
237
|
-
|
|
238
|
-
### PR作成前のチェックリスト
|
|
239
|
-
|
|
240
|
-
- [ ] すべてのテストがパス
|
|
241
|
-
- [ ] カバレッジが95%以上
|
|
242
|
-
- [ ] ESLintエラーが0件
|
|
243
|
-
- [ ] TypeScript型エラーが0件
|
|
244
|
-
- [ ] コミットメッセージがConventional Commits形式
|
|
245
|
-
- [ ] ドキュメントを更新(必要に応じて)
|
|
246
|
-
|
|
247
|
-
### PRの作成
|
|
248
|
-
|
|
249
|
-
```bash
|
|
250
|
-
# GitHubにプッシュ
|
|
251
|
-
git push origin feature/your-feature-name
|
|
252
|
-
|
|
253
|
-
# PRを作成
|
|
254
|
-
gh pr create --title "feat: 機能の説明" --body "詳細な説明"
|
|
255
|
-
```
|
|
256
|
-
|
|
257
|
-
### Jujutsuの場合
|
|
258
|
-
|
|
259
|
-
```bash
|
|
260
|
-
# 変更をコミット
|
|
261
|
-
jj commit -m "feat: 機能の説明"
|
|
262
|
-
|
|
263
|
-
# GitHubにプッシュ
|
|
264
|
-
jj git push
|
|
265
|
-
|
|
266
|
-
# PRを作成
|
|
267
|
-
gh pr create --title "feat: 機能の説明" --body "詳細な説明"
|
|
268
|
-
```
|
|
269
|
-
|
|
270
|
-
### PRテンプレート
|
|
271
|
-
|
|
272
|
-
```markdown
|
|
273
|
-
## 概要
|
|
274
|
-
何を実装したか簡潔に説明
|
|
275
|
-
|
|
276
|
-
## 変更内容
|
|
277
|
-
- 変更点1
|
|
278
|
-
- 変更点2
|
|
279
|
-
|
|
280
|
-
## テスト
|
|
281
|
-
- [ ] 単体テスト追加
|
|
282
|
-
- [ ] E2Eテスト追加(必要に応じて)
|
|
283
|
-
- [ ] 手動テスト実施
|
|
284
|
-
|
|
285
|
-
## チェックリスト
|
|
286
|
-
- [ ] テストがパス
|
|
287
|
-
- [ ] カバレッジ95%以上
|
|
288
|
-
- [ ] ESLintエラー0件
|
|
289
|
-
- [ ] ドキュメント更新
|
|
290
|
-
|
|
291
|
-
## 関連Issue
|
|
292
|
-
Closes #123
|
|
293
|
-
```
|
|
294
|
-
|
|
295
|
-
## 11. CI/CDパイプライン
|
|
296
|
-
|
|
297
|
-
プッシュすると、以下のCI/CDパイプラインが自動実行されます:
|
|
298
|
-
|
|
299
|
-
- **リント**: ESLint実行
|
|
300
|
-
- **型チェック**: TypeScriptコンパイル
|
|
301
|
-
- **テスト**: Vitest実行
|
|
302
|
-
- **カバレッジ**: Codecovにアップロード
|
|
303
|
-
- **セキュリティスキャン**: npm auditとSnyk
|
|
304
|
-
|
|
305
|
-
詳細は [CI/CDガイド](./ci-cd.md) を参照してください。
|
|
306
|
-
|
|
307
|
-
## 12. トラブルシューティング
|
|
308
|
-
|
|
309
|
-
### npm install でエラーが出る
|
|
310
|
-
|
|
311
|
-
キャッシュをクリア:
|
|
312
|
-
```bash
|
|
313
|
-
npm cache clean --force
|
|
314
|
-
rm -rf node_modules package-lock.json
|
|
315
|
-
npm install
|
|
316
|
-
```
|
|
317
|
-
|
|
318
|
-
### テストが失敗する
|
|
319
|
-
|
|
320
|
-
```bash
|
|
321
|
-
# キャッシュをクリア
|
|
322
|
-
npm run test:run -- --clearCache
|
|
323
|
-
|
|
324
|
-
# 特定のテストのみ実行
|
|
325
|
-
npm run test:run -- path/to/test-file.test.ts
|
|
326
|
-
```
|
|
327
|
-
|
|
328
|
-
### GitHub認証エラー
|
|
329
|
-
|
|
330
|
-
```bash
|
|
331
|
-
gh auth status
|
|
332
|
-
gh auth login
|
|
333
|
-
gh auth setup-git
|
|
334
|
-
```
|
|
335
|
-
|
|
336
|
-
## 参考リンク
|
|
337
|
-
|
|
338
|
-
- [コントリビューションガイド](../../CONTRIBUTING.md)
|
|
339
|
-
- [リリース手順](./release.md)
|
|
340
|
-
- [CI/CD設定](./ci-cd.md)
|
|
341
|
-
- [Jujutsu公式ドキュメント](https://martinvonz.github.io/jj/)
|