fix-loop
/fix-loop
Use when a Java app that has stacktale installed is failing — after running it or its tests, to find what broke, fix it, and confirm the fix by re-running and checking for new errors. Also use when asked to "check the errors", "what's failing", or to work through errors-ai.log.
- Author
- stacktale ↗
- Repository
- stacktale ↗
- Licence
- Apache-2.0
- Last repository change
- 01.10.2026
Assessment and security
- Files in this package
- 1
- Scripts
- 0
- HTML comments
- 0
- URLs in SKILL.md
- 1
No signals detected. Repository changed on 01.10.2026, without references to retired models or APIs.
Apache-2.0, otwarta: można używać i zmieniać, z zachowaniem licencji i informacji o zmianach.
What it does and when to use it
Use when a Java app that has stacktale installed is failing — after running it or its tests, to find what broke, fix it, and confirm the fix by re-running and checking for new errors. Also use when asked to "check the errors", "what's failing", or to work through errors-ai.log.
Triggers from the description
Original author description
Use when a Java app that has stacktale installed is failing — after running it or its tests, to find what broke, fix it, and confirm the fix by re-running and checking for new errors. Also use when asked to "check the errors", "what's failing", or to work through errors-ai.log.
How it works
- The loop
- The other tools
- Reading the reports well
- When there is no log
SKILL.md preview
--- name: fix-loop description: Use when a Java app that has stacktale installed is failing — after running it or its tests, to find what broke, fix it, and confirm the fix by re-running and checking for new errors. Also use when asked to "check the errors", "what's failing", or to work through errors-ai.log. version: 1.0.0 --- # Working an error down to zero with stacktale stacktale writes `errors-ai.log` next to the app's normal logs. Each entry is a complete report: the root cause first, the app's own culprit frame marked `← YOUR CODE`, the log lines that led up to the failure, the values involved, and the environment. It is written for you to read — you should not need to ask the user for a stack trace. ## The loop `errors_since_last_check` is the whole point. It keeps a cursor per session, so: 1. **Take a baseline.** Call `errors_since_last_check` once. The first call reports what is currently on file — that is your starting position, not new breakage. 2. **Read the top error properly.** The headline is the *root* cause, not the outermost wrapper. Go to the frame marked `← YOUR CODE`; that is the app's own code, and it is almost always where the fix belongs. Read the `story` before deciding — it usually contains the line that explains *why* the value was wrong, which the stack trace alone never shows. 3. **Fix it.** 4. **Re-run** the app, or its tests if `stacktale-junit` is on the test classpath (a failing test writes a report too). 5. **Call `errors_since_last_check` again.** It reports 🆕 for errors that are new since your last call, 🔁 for ones still occurring, and `✓ No new errors` when the run is clean. 6. Repeat from 2 until clean. Do not re-read the whole file between rounds. The cursor is there so you only look at what changed. ## The other tools - `list_errors` — the most recent reports, newest first. Good for orienting yourself. - `get_report` — one report in full, by id. - `errors_since` — everything after a timestamp, when you want a specific window rather than the cursor. - `find_similar_errors` — has this failure happened before? Useful before assuming a fix is novel. - `match_report` — the user pasted a bare stack trace: this finds the captured report for it, with the story and values the paste is missing. Reach for it whenever a trace arrives without context. - `audit_redaction` — before you paste a report anywhere, or attach `errors-ai.log` to a ticket or a PR, run this. It scans for credential shapes redaction did not mask and answers with the report and line, never the value. Treat a hit as a leak that already happened: the value has been on disk, so the fix is to rotate it, not only to add a pattern. - `culprit_source` — the code at the culprit line, read from the working tree rather than the log. Reach for it before proposing a fix: the report tells you which line failed, this tells you what is on it, and it is current where the log may be days old. - `tests_covering` — which test files name the culprit's class and method. It is a name match, not coverage, and the reply says so. The answer to act on is `none`: that means the failing path has no test, so write one instead of looking for the one that does not exist. - `repro_for` — before writing a reproduction test, ask for one. It returns a JUnit skeleton built from the throw site itself: the class, the method, the declared parameter types and the arguments the failing call was given. Those are what you would otherwise infer from the stack trace, and a wrong declared type or argument order produces a test that passes while reproducing something else. It needs `repro=true` and `stacktale-agent`, and says so when the report has no seed — that answer is not a failure, it is the switch you are missing. ## Reading the reports well - **`🔁 still occurring` after a fix means the fix did not take.** Check whether the app actually restarted and picked up your change before assuming the diagnosis was wrong. - **A repeat line (`━ #id repeated N× ━`) is a frequency signal.** An error occurring hundreds of times is usually the one to fix first, even if it is not the newest. - **`seen: N× this session`** distinguishes a new failure from a long-standing one. - **Don't trust a wrapper's message over the root cause.** stacktale already put the root cause on the headline; the `wrapped by:` chain is context, not the diagnosis. - If the story is empty, the app logged nothing before failing. Say so rather than inventing a cause — and consider suggesting a log line at the decision point that went wrong. ## When there is no log If the tools return nothing and no `errors-ai.log` exists, the app either has not failed yet or does not have stacktale installed. Setup is one dependency: https://github.com/stacktale/stacktale#quickstart — the Spring Boot starter needs no configuration at all.
Versions
The database has no other skills named fix-loop.
Database snapshot: 13.11.2026 · package version d184c2d1bd9b (SHA-256 digest of the entire package)
Downloads in the last 30 days: 0 · ranking
Report a problem with this skill: harmful content, incorrect descriptions or an author’s removal request.
Similar skills
- 90debug-a-failing-test
Finds out why a test fails and fixes the cause, not the test: reproduce it alone, read the error, narrow it down, fix, and prove it with a run. Use when a test fails, a check is red, a test is flaky, or the owner says the tests broke. - 100bug-fix
Fix a Device bug the project's way - reproduce it, write a small failing test, find the root cause, fix it, prove the test now passes. Use for any bug report or broken feature; escalates to a spec when the cause or fix is not obvious. - 100bug-fix
Use for localized bugs, runtime errors, white screens, failing tests, console errors, and regressions. Make the smallest safe fix. - 100fix
Fix loop. One fix per commit, auto-revert on regression, until zero errors. Max 3 attempts per error. Triggers on: /godmode:fix, "fix this", "tests failing", "broken build", "lint errors". - 100browser-test-loop
Use to actually verify a web change in a real browser instead of assuming it works — click through a flow, catch console errors, check a form submits, confirm a fix on the page. Trigger when a UI change needs proof, a bug only reproduces in the browser, or the user asks to test,… - 100fix-build-errors
Use when a build, compilation, or type-check fails — diagnose the error, identify root cause, and apply the minimal fix to get green