164 lines
7.4 KiB
Markdown
164 lines
7.4 KiB
Markdown
---
|
||
description: 進捗ドキュメントに基づいた実装を進め、作業中は継続的にドキュメントを更新
|
||
---
|
||
|
||
# /issync:implement: 実装フェーズ自動化コマンド
|
||
|
||
あなたは矛盾解消駆動開発を実践するAIエージェントです。このコマンドは、進捗ドキュメントの内容を理解した上で実装を進め、作業中は常に進捗ドキュメントを更新し続けることで、AI駆動開発ワークフローの実装フェーズを自動化します。
|
||
|
||
## 使用方法
|
||
|
||
```bash
|
||
/issync:implement https://github.com/owner/repo/issues/123 # Issue URL指定
|
||
/issync:implement 123 # Issue番号指定
|
||
```
|
||
|
||
## コンテキスト
|
||
|
||
このコマンドは「矛盾解消駆動開発」ワークフローの**implementフェーズ**で使用します:
|
||
- **実行タイミング**: `implement`ステート(アーキテクチャ決定後、本実装フェーズ)
|
||
- 進捗ドキュメントの`Specification / 仕様`セクションに基づいて実装を進める
|
||
- 実装中の意思決定や進捗を常に進捗ドキュメントに記録(Single Source of Truth維持)
|
||
- GitHub Actions(Claude Code Action)からの実行を想定
|
||
|
||
## 前提条件
|
||
|
||
プロジェクト全体の前提条件は`README.md`を参照。このコマンド固有の前提条件:
|
||
- 進捗ドキュメントが既に作成されている(`/issync:plan`実行済み)
|
||
- アーキテクチャ決定が完了している(`Specification / 仕様`セクションが記入済み)
|
||
|
||
## 実行フロー
|
||
|
||
### ステップ1: 進捗ドキュメントの理解
|
||
|
||
**既に進捗ドキュメントを理解している場合は、このステップをスキップして直接ステップ2に進んでください。**
|
||
|
||
進捗ドキュメントをまだ読み込んでいない場合は、`/issync:understand-progress`コマンドを内部で呼び出して、進捗ドキュメントを読み込みます。
|
||
|
||
```bash
|
||
/issync:understand-progress <issue_url_or_number>
|
||
```
|
||
|
||
このコマンドに指定された引数(Issue URLまたはIssue番号)をそのまま渡してください。
|
||
|
||
### ステップ2: リグレッション確認(実装前の必須チェック)
|
||
|
||
新しい実装を始める前に、既存のテストが通ることを確認してください。プロジェクト固有のテストコマンドは`CLAUDE.md`を参照。
|
||
|
||
**テスト失敗時**: 新機能の実装より既存機能の修復を優先。進捗ドキュメントの`Open Questions`に問題を記録し、修正してから次に進みます。
|
||
|
||
### ステップ3: 実装の開始
|
||
|
||
進捗ドキュメントの`Specification / 仕様`セクションに従って、実装を開始してください。
|
||
|
||
**実装の進め方:**
|
||
1. 必要なファイルをReadツールで読み込む
|
||
2. コードの変更をEditツールまたはWriteツールで行う
|
||
3. テストコードの追加・更新(`Validation & Acceptance Criteria`に基づく)
|
||
4. 実装が完了したら、テストを実行して動作確認
|
||
|
||
### ステップ4: 進捗ドキュメントの継続的更新(**最重要**)
|
||
|
||
実装を進める中で、**必ず進捗ドキュメントを継続的に更新してください**。
|
||
|
||
**更新タイミング:**
|
||
- 機能実装完了時 → `Discoveries & Insights`に発見を記録
|
||
- 新しい疑問発生時 → `Open Questions`に追加
|
||
- Follow-up事項発生時 → `Follow-up Issues`に追加
|
||
- 仕様明確化時 → `Specification / 仕様`を更新
|
||
|
||
**更新方法:** Editツールでセクション単位で更新し、`issync push`で同期。
|
||
|
||
### ステップ5: テストの実行
|
||
|
||
実装が完了したら、プロジェクトのテストやチェックを実行してください:
|
||
- 単体テストの実行
|
||
- 型チェックの実行
|
||
- リンター・フォーマッターの実行
|
||
|
||
プロジェクト固有のコマンドは`CLAUDE.md`や`package.json`を参照。テスト失敗時はエラーを修正して再実行。
|
||
|
||
### ステップ6: 変更のコミット
|
||
|
||
機能の実装が完了し、全てのテストが通ったら、変更をコミットしてください。
|
||
|
||
**Git Safety Protocol**:
|
||
- **NEVER update the git config**
|
||
- **NEVER run destructive/irreversible git commands** (like push --force, hard reset, etc) unless the user explicitly requests them
|
||
- **NEVER skip hooks** (--no-verify, --no-gpg-sign, etc) unless the user explicitly requests it
|
||
- **Avoid git commit --amend** unless user explicitly requested or adding edits from pre-commit hook
|
||
- Before amending: ALWAYS check authorship (`git log -1 --format='%an %ae'`)
|
||
|
||
**コミット手順**:
|
||
|
||
1. 事前確認と変更のステージング(並列実行):
|
||
```bash
|
||
git status # 変更ファイルを確認
|
||
git diff # 変更内容の詳細を確認
|
||
git log --oneline -10 # 既存のコミットメッセージスタイルを確認
|
||
git add <変更したファイル> # 変更をステージング
|
||
```
|
||
|
||
2. 詳細なコミットメッセージでコミット(**HEREDOC形式必須**):
|
||
```bash
|
||
git commit -m "$(cat <<'EOF'
|
||
<1行目: 変更の性質と要約(例: feat: 〜実装, fix: 〜修正)>
|
||
|
||
- <変更内容1(何を・なぜを含める)>
|
||
- <変更内容2>
|
||
- テスト: <実行したテストの内容>
|
||
- 進捗ドキュメント: <更新したセクション>
|
||
|
||
🤖 Generated with [Claude Code](https://claude.com/claude-code)
|
||
|
||
Co-Authored-By: Claude <noreply@anthropic.com>
|
||
EOF
|
||
)"
|
||
```
|
||
|
||
3. コミット後の確認:
|
||
```bash
|
||
git status # "nothing to commit"を確認
|
||
```
|
||
|
||
**注意事項**:
|
||
- 実行していないテストや未完了の実装を記載しない
|
||
- 秘密情報(.env、credentials.jsonなど)をコミットしない
|
||
|
||
### ステップ7: セッション終了(クリーンな状態の維持)
|
||
|
||
コンテキストが不足してきた場合や作業が一区切りついた場合、**作業途中であっても**必ず以下を実行してクリーンな状態で終了してください。
|
||
|
||
**終了手順**:
|
||
|
||
1. **進捗ドキュメントを更新して同期**:
|
||
- 未解決事項を`Open Questions`に記録
|
||
- 次のセッションへの引き継ぎ事項を`Discoveries & Insights`に記録
|
||
- 今セッションで実装した内容を`Specification / 仕様`または`Discoveries & Insights`に記録
|
||
- `issync push`で同期
|
||
|
||
2. **ステップ5のテストを再実行**してパスを確認
|
||
|
||
3. **ステップ6の手順で変更をコミット**(作業途中でもWIPコミット可)
|
||
|
||
4. **リモートにプッシュ**: `git push`
|
||
|
||
**必須要件**(全て満たすこと):
|
||
- ✅ 全ての変更がコミット済み(`git status`が"nothing to commit")
|
||
- ✅ 進捗ドキュメントがリモートと同期済み(`issync push`完了)
|
||
- ✅ テストが全て通っている(壊れた状態で終了しない)
|
||
- ✅ 変更がリモートにプッシュ済み
|
||
- ✅ 引き継ぎ事項が進捗ドキュメントに記録済み
|
||
|
||
## 重要な注意事項
|
||
|
||
1. **進捗ドキュメント駆動**: `Specification / 仕様`に基づいて実装
|
||
2. **継続的更新**: 実装中は常に進捗ドキュメントを更新(最重要)
|
||
3. **テスト駆動**: `Validation & Acceptance Criteria`に基づいてテスト追加・実行
|
||
4. **issync連携**: 作業後は`issync push`で同期
|
||
5. **Status変更なし**: GitHub Projects Statusの変更は行わない(PRマージ時に自動変更)
|
||
|
||
## 実行を開始
|
||
|
||
それでは、上記のフローに従って実装を開始してください。
|