agentleFS
wrg32786wrg32786/aigent-os/skills/stuck/SKILL.md

Stuck

Skill25 starsChanged 7 days agoMITView on GitHub

Walk a six-rung escalation ladder before declaring stuck. Use when out of ideas, hitting a wall, or unsure what approach to try before asking for help.

5 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

10 rules. 0 are common, 8 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 5 edited versions we read keep these.

  • 8

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before posting "I'm blocked", "not sure how to proceed", or "should I…?" — walk this ladder.

    line 8
  2. Distinctive:

    Use on prompts like: "blocked", "not sure how", "can't find", "need help", "should I ask", "stuck on", "this isn't working", "hitting a …

    line 15
  3. Distinctive:

    Test broken → fix the test

    line 22
  4. Distinctive:

    If you can't think of 3 alternatives, you haven't thought hard enough — keep listing.

    line 32
  5. Distinctive:

    Only if rungs 1-4 have failed AND the missing information is user-only (a product decision, a credential, an ambiguous behavior with no …

    line 46
  6. Distinctive:

    Right: Wait + retry (rung 1). If sustained → switch to a fallback provider (rung 2).

    line 65
  7. Distinctive:

    If you're about to surface, first output (silently to yourself, then act):

    line 80
  8. Very specific:

    If verdict is SHIP — proceed with the work.

    line 91
  9. Very specific:

    If verdict is ASK — use /envelope to format the question (Envelope B).

    line 92
  10. Distinctive:

    If verdict is STOP — write the stop report.

    line 93

“Common” is measured: kept by at least 6 in 10 of the 5 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Stuck

Before posting "I'm blocked", "not sure how to proceed", or "should I…?" — walk this ladder. Stopping is the last resort, not the first response. Most obstacles aren't blockers; they're the next thing to try.

When to use

  • About to surface to the principal for help
  • Hit an error, an obstacle, or genuine ambiguity
  • Tempted to type "I'm stuck" or "this isn't working"
  • Use on prompts like: "blocked", "not sure how", "can't find", "need help", "should I ask", "stuck on", "this isn't working", "hitting a wall", "give up", "ask for help"

The ladder (climb top-to-bottom; only stop at the bottom)

Rung 1 — Try a different approach

Most obstacles aren't blockers. Did you try plan A? Try plan B.

  • API call failed → retry with different params, fallback to alternative API
  • Test broken → fix the test
  • Compile error → read the error and fix it
  • Library doesn't do what you expected → try a different method on the same library

Rung 2 — Try 2-3 alternatives explicitly

Brainstorm 3 ways to solve this. Note them down. Try each.

  • Can the data come from a different source?
  • Can the problem be solved at a different layer (UI vs API vs DB)?
  • Is there a workaround that gets 80% of the value?

If you can't think of 3 alternatives, you haven't thought hard enough — keep listing.

Rung 3 — Use a helper

Spawn an exploration subagent with a specific question.

  • Not "help me figure this out" — that's a survey.
  • "Find all callers of generateHeadline and report whether any pass null for the archetypeId argument" — that's a question.

Rung 4 — Re-read the user's request

Sometimes the path is in the wording. The principal often gives the answer; you just read past it.

  • Did they specify a constraint you've been violating?
  • Did they reference a file or pattern you haven't checked?
  • Did they say "like X" — and have you actually looked at X?

Rung 5 — Genuinely ask

Only if rungs 1-4 have failed AND the missing information is user-only (a product decision, a credential, an ambiguous behavior with no code-side answer).

The ask must be:

  • One question (not a survey)
  • Surgical (X or Y with consequences spelled out — see /envelope)
  • Stated ("After trying A, B, and C, the remaining ambiguity is whether X means Y or Z. Y produces outcome P; Z produces outcome Q. Which?")

Rung 6 — Stop and report

Rare. Reserved for truly nothing-else-to-try situations.

The stop report must include:

  • Where stuck (specific file/line/system)
  • What I tried (rungs 1-4 explicitly listed, with what each yielded)
  • What would unblock (specific resource, decision, or access — be precise)

Concrete examples

Example A: API rate-limited mid-port (NOT stuck)

  • Wrong: "I'm blocked — Replicate is rate-limiting me."
  • Right: Wait + retry (rung 1). If sustained → switch to a fallback provider (rung 2). If no fallback → use the library's built-in throttling (rung 1). Don't surface unless 30+ minutes of throttling persist.

Example B: Code references a file you can't find (NOT stuck)

  • Wrong: "I can't find lib/whatever.ts — where is it?"
  • Right: Grep for the symbol the file exports. Read import paths in nearby files. Check if it was renamed. Ask only if 4 different searches fail.

Example C: Genuinely ambiguous product decision (STUCK at rung 5)

  • Right: "After reading the spec, the codebase, and PR #341, I see two valid interpretations of 'cap at 50 minutes': hard truncate or graceful early-end. Hard truncate is 5 LOC; graceful needs a 30-line state machine. Which?" — then wait.

The shorthand

Most "stuck" is actually "haven't tried the next approach." Three rungs of effort beat one rung of asking.

Output format when stuck-checking

If you're about to surface, first output (silently to yourself, then act):

[STUCK CHECK]
Rung 1 (alternatives tried): {list}
Rung 2 (alternative paths considered): {list}
Rung 3 (subagent helper used): {yes/no — what question}
Rung 4 (re-read request): {what new clue surfaced}
Verdict: {SHIP / ASK / STOP}

If verdict is SHIP — proceed with the work. If verdict is ASK — use /envelope to format the question (Envelope B). If verdict is STOP — write the stop report.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.