Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsBlogPro
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges
  • Chrome Extension
  • Skill Manager

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Fix Investigate

ASecurity

Investigate failing tests or CI divergence. Deep single-test root-cause analysis, or local-vs-CI pattern matching.

2 stars
0 votes
0 copies
0 views
Added 10/6/2026
code-qualityrustgoexpressdebuggingapi

Works with

api

Security Analysis

A100/100

Scanned 10/6/2026

$npx -y skills add e128/dotnet-reference --skill fix-investigate --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Fix Investigate?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Fix Investigate
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/e128-fix-investigate/badge)](https://www.skillsdirectory.com/skills/e128-fix-investigate)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
Files
SKILL.md
---
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, investigate test failure,
  why does this test fail, 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']"
---

# Fix Investigate

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.

## Step 0: Detect Mode

| Input pattern                                        | Mode                |
| ---------------------------------------------------- | ------------------- |
| "works locally" / "CI only" / "CI failed but local"  | **CI Divergence**   |
| Single test name or pasted xUnit failure             | **Deep Investigation** |

---

## Mode: CI Divergence

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.

---

## Mode: Deep Investigation

### Step 1: Extract test identifier

From `$ARGUMENTS` or conversation, identify the test class or method name.

### Step 2: Investigate in parallel

Run these simultaneously:

1. `scripts/test.sh {TestName}`: capture assertion message, stack trace
2. Read test file: locate by `{TestClass}Tests.cs` in `tests/`
3. Read source under test: from test method, identify the SUT in `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 does not exist           |
| Environment / config   | Missing file, wrong path, env variable not set          |

**Check sibling tests** in the same class for shared root cause.

### Step 3: Propose fix

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.

### Step 4: Validate

After user-approved fix: `scripts/test.sh {TestClass}`

## Common Pitfalls

### CS0535 cascade
When implementing interface stubs for CS0535, expression-bodied members do not
allow parameter references. Use block-bodied methods. Unused nullable params
need `GC.KeepAlive(param)`, non-nullable ref params need
`ArgumentNullException.ThrowIfNull(param)`.

Attribution

e128e128
View sourceSee grades on GitHubMore from e128 →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman Review

Ultra-compressed code review comments. Cuts noise from PR feedback while preserving the actionable signal. Each comment is one line: location, problem, fix. Use when user says "review this PR", "code review", "review the diff", "/review", or invokes /caveman-review. Auto-triggers when reviewing pull requests.

1100021 votes

Caveman Commit

Ultra-compressed commit message generator. Cuts noise from commit messages while preserving intent and reasoning. Conventional Commits format. Subject ≤50 chars, body only when "why" isn't obvious. Use when user says "write a commit", "commit message", "generate commit", "/commit", or invokes /caveman-commit. Auto-triggers when staging changes.

1100021 votes

Verification Loop

一个全面的 Claude Code 会话验证系统。

2456590 votes

Django Verification

Verification loop for Django projects: migrations, linting, tests with coverage, security scans, and deployment readiness checks before release or PR.

2456590 votes

Springboot Verification

Verification loop for Spring Boot projects: build, static analysis, tests with coverage, security scans, and diff review before release or PR.

2456590 votes
View all in code-quality →