Files
gh-mh4gf-issync-claude-plug…/commands/implement.md
2025-11-30 08:40:07 +08:00

164 lines
7.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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 ActionsClaude 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マージ時に自動変更
## 実行を開始
それでは、上記のフローに従って実装を開始してください。