fix-something

Fix a random FIXME in the codebase (in the given scope, use "." for the whole codebase)

226 stars

Best use case

fix-something is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Fix a random FIXME in the codebase (in the given scope, use "." for the whole codebase)

Teams using fix-something should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/fix-something/SKILL.md --create-dirs "https://raw.githubusercontent.com/imbue-ai/mngr/main/.claude/skills/fix-something/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/fix-something/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How fix-something Compares

Feature / Agentfix-somethingStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Fix a random FIXME in the codebase (in the given scope, use "." for the whole codebase)

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

Your task is to make ONE improvement to the codebase by fixing a random thing about the codebase (eg, normally a FIXME).

In order to make this process easier for you, our FIXMEs are specially formatted:

```python
# FIXME(priority)[attempts=N]: (description)
#  (optional additional context)
```

where `description` is a short description of what needs to be fixed, and `N` is the number of prior attempts made to fix it (if any). 
If there have been no prior attempts, the `[attempts=N]` part may be omitted.
The priority is simply an integer, with 0 being the highest priority. priority may or may not be present. 
If not present, assume priority=3

Before doing any of the below, the first step is to check that the tests are passing by running "uv run pytest"

If the tests are not ALL passing (including all linters, ratchets, type checks, etc), *then this is the thing for you to fix*. In particular, you must follow this process:

1. revert the changes from the previous commit by calling "git revert --no-commit HEAD" (so that the changed are in your current working tree, but not yet committed)
2. update the FIXME that was attempted in the previous commit to increment the attempts count by 1 (if there were no prior attempts, add "[attempts=1]", if there were some prior attempts, increment the number by 1). Note that it should then look something like this: `# FIXME[attempts=1]: (original description)` or `# FIXME0[attempts=2]: (original description)`, ie, the `[attempts=N]` part goes before the ":"
3. extend the optional additional context of the FIXME with a brief note about why you were unable to fix it
4. commit all of this.
5. proceed directly to "# The Final Step" below.

If the tests start out passing, then you must select and fix a random FIXME by following this process:

1. Simply run this bash command, and it will give you a random FIXME line: "./scripts/random_fixme.sh $1". If no lines are returned, then there are no more remaining FIXMEs, so use your "think-of-something-to-fix" skill to come up with something else to fix instead.
2. Find that FIXME and be sure to read the surrounding context (the optional additional context lines below the FIXME line may be important). This is the task you will be working on.
3. Go gather all the context for the library that contains that FIXME (per instructions in CLAUDE.md).
4. Think carefully about how best to fix that FIXME
5. Implement the fix
6. Get all the tests passing (use "uv run pytest" to run them, and be sure to fix any issues, no matter how small)

Once the tests are passing, be sure that you have removed ONLY that FIXME, then commit your changes.

If you were unable to fix the issue and get all the tests passing, do the following instead:

1. Revert any changes you made while attempting to fix the issue
2. Update the FIXME to increment the attempts count by 1 (if there were no prior attempts, add "[attempts=1]", if there were some prior attempts, increment the number by 1). Note that it should then look something like this: `# FIXME[attempts=1]: (original description)` or `# FIXME0[attempts=2]: (original description)`, ie, the `[attempts=N]` part goes before the ":"
3. Extend the optional additional context with a brief note about why you were unable to fix it this time.
4. Commit this updated FIXME (be sure that nothing else is being changed!)

# The Final Step

Finally, as the *very* last thing you do (after committing, regardless of whether you succeeded or not), run this command: "touch $2" (to indicate that you have completed your fix task).

Related Skills

think-of-something-to-fix

226
from imbue-ai/mngr

Come up with good ideas about what to fix. Use when you have to fix something, but you're not sure what.

writing-specs

226
from imbue-ai/mngr

Write high quality specifications or design docs for a program. Use any time you are asked to write, improve, or update specs / design docs (e.g., files in a `specs/` folder).

writing-ratchet-tests

226
from imbue-ai/mngr

Write ratchet tests to prevent accumulation of code anti-patterns. Use when asked to create a "ratchet test" for tracking and preventing specific code patterns (e.g., TODO comments, inline imports, broad exception handling).

writing-docs

226
from imbue-ai/mngr

Write high quality, user-facing documentation. Use any time you need to write, improve, or update a significant amount of user-facing documentation (e.g., files in a "docs/" folder or README file).

wait-for-agent

226
from imbue-ai/mngr

Wait for another agent to enter WAITING state, then execute follow-up instructions

update-issues-in-repo

226
from imbue-ai/mngr

Convert a file containing identified issues into a tracked file in current_tasks/. Use after running identify-* commands to create a local record of current issues.

triage-backlog

226
from imbue-ai/mngr

Interactively triage the user's local engineering backlog file into GitHub issues. Use when the user wants to process their raw thought notes / ticket backlog into proper GitHub issues.

sync-tutorial-to-e2e-tests

226
from imbue-ai/mngr

Match tutorial script blocks to e2e pytest functions and add missing tests

minds-dev-iterate

226
from imbue-ai/mngr

Set up and iterate on the minds app stack (desktop client, workspace server, mngr, forever-claude-template) with a running Docker agent

message-agent

226
from imbue-ai/mngr

Send a message to another mngr agent. Use when you need to communicate with a peer agent.

identify-style-issues

226
from imbue-ai/mngr

Identify divergences from the style guide in the $1 library

identify-outdated-docstrings

226
from imbue-ai/mngr

Identify outdated docstrings in the $1 library