completion-check について
completion-check は、作業完了前にインフラがシステムへ接続され、実際に使われているかを確かめる開発スキルです。実行経路や設定の確認、エンドツーエンドテストを通じて、未使用コードや誤ったバックエンドを見つけます。
主な機能
- 01入口から実行までの経路追跡
- 02フック登録と設定の確認
- 03データベース接続先の検証
- 04インフラ呼び出しのエンドツーエンドテスト
- 05未使用コードや並行実装の検出
活用シーン
- 01新しいインフラが実行フローに接続されたか確認
- 02フックが設定に登録されているか検証
- 03データベース設定と想定バックエンドを照合
- 04実装済みでも呼び出されないコードを特定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill completion-checkインストール後、Claude Code で/completion-checkを入力して読み込まれたか確認します。
詳細
完了確認:インフラストラクチャが接続されていることを確認する
インフラストラクチャを構築する際は、完了として扱う前に、システムに実際に接続されていることを確認してください。
パターン
インフラストラクチャは、コードを書いた時点では完成ではありません。システムに接続され、実際に使われて初めて完成です。使われないコード(構築されたものの、一度も呼び出されないコード)は労力の無駄です。
実施すること
-
実行経路をたどる - ユーザーの意図から、実際のコード実行までを追跡します:
# Example: Verify Task tool spawns correctly grep -r "claude -p" src/ grep -r "Task(" src/ -
フックが実装されているだけでなく、登録されていることを確認する:
# Hook exists? ls -la .claude/hooks/my-hook.sh # Hook registered in settings? grep "my-hook" .claude/settings.json -
データベース接続を確認する - インフラストラクチャが適切なバックエンドを使用していることを確認します:
# Check connection strings grep -r "postgresql://" src/ grep -r "sqlite:" src/ # Should NOT find if PostgreSQL expected -
エンドツーエンドでテストする - 機能を実行し、インフラストラクチャが呼び出されることを確認します:
# Add debug logging echo "DEBUG: DAG spawn invoked" >> /tmp/debug.log # Trigger feature uv run python -m my_feature # Verify infrastructure was called cat /tmp/debug.log -
孤立した実装を検索する:
# Find functions defined but never called ast-grep --pattern 'async function $NAME() { $$$ }' | \ xargs -I {} grep -r "{}" src/
実施しないこと
- 実行経路をテストせずに、インフラストラクチャを「完了」として扱う
- コードが存在するだけで、接続されていると決めつける
- 並行するシステムを構築する(Task ツールと claude -p spawn)
- 誤ったバックエンドを使用する(PostgreSQL が設計されているのに SQLite を使う)
- エンドツーエンドテストを省略する(「コンパイルできる」≠「実行できる」)
完了チェックリスト
インフラストラクチャの完成を宣言する前に、以下を確認してください。
- エントリーポイントからインフラストラクチャまでの実行経路をたどった
- フックが .claude/settings.json に登録されていることを確認した
- 適切なデータベース/バックエンドが使用されていることを確認した
- インフラストラクチャが呼び出されることを示すエンドツーエンドテストを実行した
- デッドコードや並行する実装を検索した
- 設定ファイルが実装と一致していることを確認した
例:DAG タスクグラフ
誤った方法:
✓ Built BeadsTaskGraph class
✓ Implemented DAG dependencies
✓ Added spawn logic
✗ Never wired - Task tool still runs instead
✗ Used SQLite instead of PostgreSQL
正しい方法:
✓ Built BeadsTaskGraph class
✓ Wired into Task tool execution path
✓ Verified claude -p spawn is called
✓ Confirmed PostgreSQL backend in use
✓ Tested: user calls Task() → DAG spawns → beads execute
✓ No parallel implementations found
セッションの出典
- このセッション:アーキテクチャ上のギャップの発見 - DAG は構築されていたものの接続されておらず、spawn ではなく Task ツールが実行され、PostgreSQL ではなく SQLite が使用されていた
コメント
Markdown 対応