ワンクリックで
debug-issue
Use when encountering unexpected behavior, failing tests, API errors, or runtime panics in Tundra — before proposing any fix
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when encountering unexpected behavior, failing tests, API errors, or runtime panics in Tundra — before proposing any fix
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when you need to understand codebase structure, locate code, or trace relationships before making changes or answering architecture questions
Use when planning or executing a refactor — rename, extract, move, or delete code — to prevent breaking callers or missing affected files
Use after completing a feature or before merging to perform a risk-scored review of changed code, check test coverage, and assess blast radius
| name | debug-issue |
| description | Use when encountering unexpected behavior, failing tests, API errors, or runtime panics in Tundra — before proposing any fix |
Graph-powered debugging traces call chains and recent changes in seconds. Random guessing on a codebase this size wastes hours.
Core principle: Understand before fixing. A wrong fix in auth, crypto, or migrations can corrupt data or create security holes.
get_minimal_context(task="debug <symptom description>")
Always first. Orients graph for your specific investigation.
semantic_search_nodes(query="<error message fragment or function name>")
Find the exact node. Note its file path and line.
detect_changes()
Most bugs are introduced by recent changes. High-risk score on a recently changed function near the failure site = strong lead.
query_graph(node_id="...", pattern="callers_of") // who triggered this
query_graph(node_id="...", pattern="callees_of") // what it delegates to
Trace up until you find where bad data originates. Fix at source, not at symptom.
get_affected_flows(changed_nodes=[...])
Confirms which execution path passes through the broken function. Helps rule out unrelated code.
get_review_context(node_ids=["<failing_node_id>"])
Don't read entire files. One node at a time until root cause is clear.
| Symptom | Where to look first |
|---|---|
| 401 on valid session | tundrad-auth session extractor, cookie name |
| 403 unexpected | RBAC scope check in handler, authz_matrix.rs test coverage |
| 500 from API handler | unwrap() on None, missing ? propagation |
Rust compile error in tundrad-api | Check routes/mod.rs pub declaration + lib.rs route registration |
| Panel route blank / crashes | routeTree.gen.ts type map mismatch; check FileRoutesByFullPath |
| TanStack Query stuck loading | queryFn fetch URL typo, refetchInterval returning wrong value |
| Migration fails | NOT NULL without DEFAULT, or type mismatch on existing rows |
| Encrypted field panics | Wrong EncryptedField<T> type parameter, or master key format |
| WP provisioning stuck | State never updated to active/error — check tokio::spawn task panicked silently |
Docker: sqlx: not found | /cargo/bin not in PATH; check docker-compose.override.yml |
Only then: write a minimal failing test (per superpowers:test-driven-development), then fix.