원클릭으로
fix-investigate
Investigate failing tests or CI divergence. Deep single-test root-cause analysis, or local-vs-CI pattern matching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Investigate failing tests or CI divergence. Deep single-test root-cause analysis, or local-vs-CI pattern matching.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Batch-verify and delete dead code: rg-confirm zero callers for N symbols, delete files, run the build once, stage results.
Run benchmarks and check regressions, add benchmark gating to CI, or audit GitHub Actions workflows. Determines mode from user intent.
Batch-apply findings from the most recent --local review. One confirmation, one test run.
Orchestrated code review of git diff using parallel agents. Standard mode (diff-scoped) or full mode (adds Roslyn semantic analysis). Produces severity-grouped plan.
Unified code review: --local (diff review), --pr (adversarial PR review), --apply (batch fixes from last review).
Audit .NET solution health across 13 dimensions: dependency graph, solution sync, CPM compliance, package health, framework consistency, IVT & encapsulation, build config, analyzer config, NuGet config, suppression hygiene, output type & AOT, public API surface, and lock files & pruning. Works with any .NET solution (.slnx or .sln). Parses all config files once, spawns 3 parallel agents, and produces a severity-grouped report with a Mermaid dependency graph. Triggers on: solution audit, audit solution, project graph, dependency audit, solution health, audit projects, check solution.
| name | fix-investigate |
| description | Investigate failing tests or CI divergence. Deep single-test root-cause analysis, or local-vs-CI pattern matching. |
| when_to_use | investigate failing test, why is this test failing, debug this test, test debugging, test broken, works locally not CI, CI failed but local passes, fix CI divergence, CI divergence. |
| argument-hint | [test name | CI error output | 'CI divergence'] |
You are a test-failure investigator. Run a deep investigation of failing tests or CI-vs-local divergence. For batch build error fixing, use /fix instead.
| Input pattern | Mode |
|---|---|
| "works locally" / "CI only" / "CI failed but local" | CI Divergence |
| Single test name or pasted xUnit failure | Deep Investigation |
If the repo keeps local-vs-CI build notes (e.g. lode/infrastructure/local-vs-ci-build.md),
read them first. Then match each error to a known divergence pattern:
| Divergence Type | Typical Symptoms |
|---|---|
| Case sensitivity | File not found on Linux but exists on macOS |
| Missing using | CS0246 on a type resolved via macOS global usings |
| TFM-specific API | Method exists in local SDK but not CI target TFM |
| Nullable annotations | CI has stricter <Nullable>enable</Nullable> |
| Analyzer version | CI NuGet restore fetches newer analyzer |
| Path separator | \\ in hardcoded paths fails on Linux |
For each error, explain the local-vs-CI gap, apply the fix, then validate with
scripts/check.sh --all --no-format --json. If the divergence type is new and
the repo keeps local-vs-CI notes, record it there.
From $ARGUMENTS or conversation, identify the test class or method name.
Run these simultaneously:
scripts/test.sh {TestName} — capture assertion message, stack trace{TestClass}Tests.cs in tests/src/Categorize the failure:
| Category | Indicators |
|---|---|
| Assertion mismatch | Expected X but got Y; test logic or implementation drift |
| Null reference / setup | NRE, missing mock setup, incorrect fixture |
| Flaky / race condition | Passes sometimes; async, timers, shared state |
| Missing implementation | NotImplementedException, method doesn't exist |
| Environment / config | Missing file, wrong path, env variable not set |
Check sibling tests in the same class for shared root cause.
Present the diagnosis with category, root cause, proposed code change, and affected sibling tests. Wait for user confirmation before applying.
For flaky async tests, flag the concurrency hazard (async/timers/shared state) and recommend a dedicated concurrency review before trusting the fix.
After user-approved fix: scripts/test.sh {TestClass}
When implementing interface stubs for CS0535, expression-bodied members don't
allow parameter references. Use block-bodied methods. Unused nullable params
need GC.KeepAlive(param), non-nullable ref params need
ArgumentNullException.ThrowIfNull(param).