コーディングエージェント(Claude Code、Aider、Codexなど)のカスタムタスクによる直接比較。合格率、コスト、時間、一貫性メトリクスを測定
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
すべてのユーザー向けボタン/タッチポイントを完全なステート変更シーケンスを通してトレースし、個々の関数は正常に動作するが互いに打ち消し合ったり、誤った最終ステートを生成したり、UI を不整合な状態にするバグを発見する。
使用タイミング:体系的なデバッグでバグが見つからないがユーザーがボタンの不具合を報告している場合、または共有ステートストアに触れる大規模リファクタリング後。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
静的なコード読解では見逃すバグを発見する:ステート間の相互作用による副作用、連続呼び出し間のレースコンディション、互いのハンドラが暗黙的に取り消し合う問題。
従来のデバッグで確認すること:
しかし確認しないこと:
実例:「新規メール」ボタンが setComposeMode(true) を呼び出し、次に selectThread(null) を呼び出していた。両方とも個別には正常に動作した。しかし selectThread には composeMode: false にリセットする副作用があった。ボタンは何もしなかった。体系的デバッグで 54 件のバグが見つかったが、この 1 件は見逃された。
対象領域のすべてのインタラクティブなタッチポイントに対して:
1. IDENTIFY the handler (onClick, onSubmit, onChange, etc.)
2. TRACE every function call in the handler, IN ORDER
3. For EACH function call:
a. What state does it READ?
b. What state does it WRITE?
c. Does it have SIDE EFFECTS on shared state?
d. Does it reset/clear any state as a side effect?
4. CHECK: Does any later call UNDO a state change from an earlier call?
5. CHECK: Is the FINAL state what the user expects from the button label?
6. CHECK: Are there race conditions (async calls that resolve in wrong order)?
タッチポイントを監査する前に、すべてのステートストアアクションの副作用マップを構築する:
For each Zustand store / React context in scope:
For each action/setter:
- What fields does it set?
- Does it RESET other fields as a side effect?
- Document: actionName → {sets: [...], resets: [...]}
これが重要なリファレンスとなる。「新規メール」のバグは selectThread が composeMode をリセットすることを知らなければ見えなかった。
出力形式:
STORE: emailStore
setComposeMode(bool) → sets: {composeMode}
selectThread(thread|null) → sets: {selectedThread, selectedThreadId, messages, drafts, selectedDraft, summary} RESETS: {composeMode: false, composeData: null, redraftOpen: false}
setDraftGenerating(bool) → sets: {draftGenerating}
...
DANGEROUS RESETS (actions that clear state they don't own):
selectThread → resets composeMode (owned by setComposeMode)
reset → resets everything
対象領域の各ボタン/トグル/フォーム送信に対して:
TOUCHPOINT: [Button label] in [Component:line]
HANDLER: onClick → {
call 1: functionA() → sets {X: true}
call 2: functionB() → sets {Y: null} RESETS {X: false} ← CONFLICT
}
EXPECTED: User sees [description of what button label promises]
ACTUAL: X is false because functionB reset it
VERDICT: BUG — [description]
以下の各バグパターンを確認:
handler() {
setState_A(true) // sets X = true
setState_B(null) // side effect: resets X = false
}
// Result: X is false. First call was pointless.
handler() {
fetchA().then(() => setState({ loading: false }))
fetchB().then(() => setState({ loading: true }))
}
// Result: final loading state depends on which resolves first
const [count, setCount] = useState(0)
const handler = useCallback(() => {
setCount(count + 1) // captures stale count
setCount(count + 1) // same stale count — increments by 1, not 2
}, [count])
// Button says "Save" but handler only validates, never actually saves
// Button says "Delete" but handler sets a flag without calling the API
// Button says "Send" but the API endpoint is removed/broken
handler() {
if (someState) { // someState is ALWAYS false at this point
doTheActualThing() // never reached
}
}
// Button sets stateX = true
// A useEffect watches stateX and resets it to false
// User sees nothing happen
発見された各バグに対して:
CLICK-PATH-NNN: [severity: CRITICAL/HIGH/MEDIUM/LOW]
Touchpoint: [Button label] in [file:line]
Pattern: [Sequential Undo / Async Race / Stale Closure / Missing Transition / Dead Path / useEffect Interference]
Handler: [function name or inline]
Trace:
1. [call] → sets {field: value}
2. [call] → RESETS {field: value} ← CONFLICT
Expected: [what user expects]
Actual: [what actually happens]
Fix: [specific fix]
この監査はコストが高い。適切にスコープすること:
Agent 1: Map ALL state stores (Step 1) — this is shared context for all other agents
Agent 2: Dashboard (Tasks, Notes, Journal, Ideas)
Agent 3: Chat (DanteChatColumn, JustChatPage)
Agent 4: Emails (ThreadList, DraftArea, EmailsPage)
Agent 5: Projects (ProjectsPage, ProjectOverviewTab, NewProjectWizard)
Agent 6: CRM (all sub-tabs)
Agent 7: Profile, Settings, Vault, Notifications
Agent 8: Management Suite (all pages)
Agent 1 が最初に完了しなければならない。その出力は他のすべてのエージェントの入力となる。
/superpowers:systematic-debugging(他の 54 種類のバグを見つける)の後に実行/superpowers:verification-before-completion(修正が機能することを検証する)の前に実行/superpowers:test-driven-development にフィードバック — ここで見つかったすべてのバグにテストを追加すべきThreadList.tsx の「新規メール」ボタン:
onClick={() => {
useEmailStore.getState().setComposeMode(true) // ✓ sets composeMode = true
useEmailStore.getState().selectThread(null) // ✗ RESETS composeMode = false
}}
ストア定義:
selectThread: (thread) => set({
selectedThread: thread,
selectedThreadId: thread?.id ?? null,
messages: [],
drafts: [],
selectedDraft: null,
summary: null,
composeMode: false, // ← THIS silent reset killed the button
composeData: null,
redraftOpen: false,
})
体系的デバッグが見逃した理由:
クリックパス監査が検出する理由:
selectThread が composeMode をリセットすることをマッピング아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
コーディングエージェント(Claude Code、Aider、Codexなど)のカスタムタスクによる直接比較。合格率、コスト、時間、一貫性メトリクスを測定
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AIエージェントのアクションスペース、ツール定義、オブザベーションフォーマットを設計・最適化し、タスク完了率を向上させる
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
評価ファーストの実行、分解、コスト考慮型モデルルーティングによるエージェンティックエンジニアとしての運用
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AIエージェントが実装出力の大部分を生成するチームのためのエンジニアリング運用モデル
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AI支援開発のためのリグレッションテスト戦略。データベース依存なしのサンドボックスモードAPIテスト、自動バグチェックワークフロー、同一モデルがコードの作成とレビューを行う際のAIの盲点を検出するパターン。
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
AndroidおよびKotlin Multiplatformプロジェクトのためのクリーンアーキテクチャパターン — モジュール構成、依存関係ルール、UseCase、Repository、データレイヤーパターン
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.