- Home
- Skills
- Testing & Debugging
- Investigate: Root Cause Without Guessing
Works with the AI Agents you already use
Investigate: Root Cause Without Guessing
Makes your coding agent prove a bug's root cause with file:line evidence and a reproduction before it proposes a fix.
Free
Investigate: Root Cause Without Guessing
Example session with this skill installed
Search seems broken: I can't find some of my notes even though I typed their title. Can you figure out why?
- Read your context and instructions
- Compiled the investigate
- Generated the document
Real run of this skill on the example Notes app in poteto-kit, with a bug seeded for the demo. The prompt did not mention it.
Investigation: search returns nothing when the typed text matches a note title (capitalised titles only)
- Reproduction: REPRODUCED. Steps:
npm ci, thennpm run verify -- --feature search --scenario shortcut-filters-and-selects(build c0ab390, repo's verify-app). ResultFAIL; failing row:a title match leaves only that note | expected ["Grocery list"] | observed [] | FAIL. Artifacts:artifacts/2026-10-19T04-30-32-957Z/search-shortcut-filters-and-selects/(report.md, screenshot.png, console.json =[]). - Hypotheses:
- H1 Title is compared without case folding: SUPPORTED. If true, any title containing an uppercase letter misses and body matches still work; refuted if lowercase queries on capitalised titles match. Evidence:
src/features/search/filter-notes.ts:8note.title.includes(needle)while the body goes throughnormalize(...);needleis lowercased at:12vianormalize(:3-5). - H2 The palette mangles or truncates the query before it is filtered: REFUTED.
search-palette.tsx:59passesevent.target.valuetosetQueryunchanged,search-store.ts:23-25stores it as is, andsearch-palette.tsx:20hands it straight tofilterNotes. Body-only queries in capitals still match (below), so the query path is fine. - H3 Note data in the store has altered titles: REFUTED. Seed titles are intact (
src/electron/main/index.ts:5-7), and the same data matches once H1 is toggled.
- H1 Title is compared without case folding: SUPPORTED. If true, any title containing an uppercase letter misses and body matches still work; refuted if lowercase queries on capitalised titles match. Evidence:
- Root cause: the title is not lowercased before being compared with the lowercased query (OBSERVED) at
src/features/search/filter-notes.ts:8, introduced inc0ab390 refactor search matching(git log -p -- src/features/search/filter-notes.ts; the previous code wasnote.title.toLowerCase().includes(needle)). - Confirmation: probe
npx tsx probe.tscallingfilterNoteson the 3 seed notes.
Before:"Grocery list" -> [],"grocery list" -> [],"groc" -> [],"Meeting" -> [],"verification" -> ["Meeting agenda"],"REPORT" -> ["Meeting agenda"].
Toggled line 8 tonormalize(note.title).includes(needle): all of the first four return their note, and the scenario goesPASS search/shortcut-filters-and-selects,1/1 scenarios passed.
git checkout src/features/search/filter-notes.tsreverted it:[]again for"Grocery list". Symptom follows the toggle both ways. - Observed facts:
- All three seed titles start with a capital letter and none is found by its own title (
"Welcome to Notes" -> [],"Grocery list" -> [],"Meeting" -> []). - Body matching is case-insensitive and unaffected (
"REPORT"findsMeeting agenda,filter-notes.ts:8). - A single commit touched the search feature after the initial import (
git log --oneline -- src/features/searchshowsc0ab390and2ad2643). - The browser console is clean (
console.json=[]), so this is wrong filtering, not a runtime error.
- All three seed titles start with a capital letter and none is found by its own title (
- Inferences:
- A note whose title is entirely lowercase and typed in lowercase would still be found, so the user sees "some" notes missing (INFERRED from line 8; no such seed note exists to run).
- Notes whose body happens to contain the title words appear to work, which explains the "some" in the report (INFERRED; e.g.
"notes"returnsWelcome to Notesonly through its body text).
- Unknowns / not checked: other callers of
filterNotes(onlysearch-palette.tsx:3,20imports it, via grep); no title containing non-ASCII characters tested. - Proposed fix:
filter-notes.ts:8becomesnormalize(note.title).includes(needle) || normalize(note.body).includes(needle)(not applied; the repo is back atc0ab390after the toggle).
screenshot.png
PDF · document
Example file from a real run - the skill writes it into your workspace.
Connects securely to your tools. The creator never sees your data.
About this skill
Coding agents love to name a cause the moment you describe a bug, often without opening the code that would be affected. Every wrong guess costs a fix attempt, a review round and your trust.
investigate turns "it has to be this" into an evidence-backed finding. Before your agent states a root cause or proposes a fix, it must:
- Reproduce first: run the app, a failing command or a test, and save the artifacts. "Not reproduced" is a valid result.
- Hold at least two hypotheses, each with what would confirm or refute it.
- Read the real code path and cite every claim as
path/to/file:line. - Fan out read-only subagents (at most 4 at once) for the legwork.
- Label every statement as OBSERVED or INFERRED.
- Earn the word "confirmed": toggle the suspected cause and show the symptom change.
- Check recent changes with
git log -p/ blame on the implicated lines.
It ends with a fixed write-up format (reproduction, hypotheses, root cause, confirmation, unknowns, proposed fix), so you can review an investigation in a minute.
Works with any language or stack. Pairs well with an app-verification skill such as create-verification (also free on Agensi).
Free and open source. Part of poteto-kit (MIT). Unofficial: poteto-kit distills public talks and posts by Lauren Tan (poteto) and is not affiliated with or endorsed by her.
How to use
Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.
Reviews
No reviews yet
Be one of the first to try it. Every listed skill passes our trust checks below.
Security scanned
Passed our 8-point scan before listing
Fresh listing
Recently published to Agensi
Free forever
No account required to browse
Trust & safety
Security scanned
Verified clean 1 day ago
- Free to download with an account
Requires