{"id":"completion-check","name":"completion-check","summary":"完了チェック:インフラが有線されているか確認","body":"# Completion Check: Verify Infrastructure Is Wired\n\nWhen building infrastructure, verify it's actually connected to the system before marking as complete.\n\n## Pattern\n\nInfrastructure is not done when the code is written - it's done when it's wired into the system and actively used. Dead code (built but never called) is wasted effort.\n\n## DO\n\n1. **Trace the execution path** - Follow from user intent to actual code execution:\n   ```bash\n   # Example: Verify Task tool spawns correctly\n   grep -r \"claude -p\" src/\n   grep -r \"Task(\" src/\n   ```\n\n2. **Check hooks are registered**, not just implemented:\n   ```bash\n   # Hook exists?\n   ls -la .claude/hooks/my-hook.sh\n\n   # Hook registered in settings?\n   grep \"my-hook\" .claude/settings.json\n   ```\n\n3. **Verify database connections** - Ensure infrastructure uses the right backend:\n   ```bash\n   # Check connection strings\n   grep -r \"postgresql://\" src/\n   grep -r \"sqlite:\" src/  # Should NOT find if PostgreSQL expected\n   ```\n\n4. **Test end-to-end** - Run the feature and verify infrastructure is invoked:\n   ```bash\n   # Add debug logging\n   echo \"DEBUG: DAG spawn invoked\" >> /tmp/debug.log\n\n   # Trigger feature\n   uv run python -m my_feature\n\n   # Verify infrastructure was called\n   cat /tmp/debug.log\n   ```\n\n5. **Search for orphaned implementations**:\n   ```bash\n   # Find functions defined but never called\n   ast-grep --pattern 'async function $NAME() { $$$ }' | \\\n     xargs -I {} grep -r \"{}\" src/\n   ```\n\n## DON'T\n\n- Mark infrastructure \"complete\" without testing execution path\n- Assume code is wired just because it exists\n- Build parallel systems (Task tool vs claude -p spawn)\n- Use wrong backends (SQLite when PostgreSQL is architected)\n- Skip end-to-end testing (\"it compiles\" ≠ \"it runs\")\n\n## Completion Checklist\n\nBefore declaring infrastructure complete:\n\n- [ ] Traced execution path from entry point to infrastructure\n- [ ] Verified hooks are registered in .claude/settings.json\n- [ ] Confirmed correct database/backend in use\n- [ ] Ran end-to-end test showing infrastructure invoked\n- [ ] Searched for dead code or parallel implementations\n- [ ] Checked configuration files match implementation\n\n## Example: DAG Task Graph\n\n**Wrong approach:**\n```\n✓ Built BeadsTaskGraph class\n✓ Implemented DAG dependencies\n✓ Added spawn logic\n✗ Never wired - Task tool still runs instead\n✗ Used SQLite instead of PostgreSQL\n```\n\n**Right approach:**\n```\n✓ Built BeadsTaskGraph class\n✓ Wired into Task tool execution path\n✓ Verified claude -p spawn is called\n✓ Confirmed PostgreSQL backend in use\n✓ Tested: user calls Task() → DAG spawns → beads execute\n✓ No parallel implementations found\n```\n\n## Source Sessions\n\n- This session: Architecture gap discovery - DAG built but not wired, Task tool runs instead of spawn, SQLite used instead of PostgreSQL","author":"@parcadei","ownerProfile":null,"authorContacts":null,"sourceUrl":"https://github.com/parcadei/Continuous-Claude-v3/tree/main/.claude/skills/completion-check","license":"MIT","category":"coding","lang":"en","tokens":669,"stars":0,"calls30d":1,"claimed":false,"visibility":"public","origin":"crawler","version":"0.1.0","createdAt":"2026-08-22","updatedAt":"2026-08-22","files":[],"requires":{"mcp":[],"tools":[]},"safety":{"flags":[],"scannedAt":"2026-08-22","hasScripts":false,"networkEndpoints":[]}}