debug-testlisted
Install: claude install-skill e128/dotnet-reference
Investigate a single failing test end-to-end and propose a fix.
## Step 1: Extract test identifier
From `$ARGUMENTS` or the conversation, identify:
- Full test class name (e.g. `MyService_WhenFoo_DoesBar`)
- Or partial name to filter on
- Or paste of xUnit output (extract the failed test name from it)
If ambiguous, ask once: "Which test should I investigate?"
## Step 2: Run the test in isolation
```bash
scripts/test.sh --json {TestName}
```
Capture: the assertion failure message, exception type, stack trace (first 5 frames only).
## Step 3: Locate and read test file
Locate the file by test class name (try `{TestClass}Tests.cs` and `{TestClass}Test.cs` in `tests/`). Read the full test method that failed, plus the `[SetUp]`/constructor and any shared fixtures used by the test class.
## Step 4: Locate and read source under test
From the test method, identify the system under test and locate its source file in `src/` (`scripts/find.sh --class {ClassName}`). Focus on the method(s) called by the failing test — extract just those with `scripts/code-read.sh --method {Name} {path}`, or map the file first with `scripts/file-outline.sh {path}`. Do not read the entire file unless the class is small.
## Step 5: Categorize the failure
Determine which category best fits:
| Category | Indicators |
|----------|-----------|
| **Assertion mismatch** | Expected X but got Y; test logic or implementation drift |
| **Null reference / missing setup** | NullReferenceException, missing mo