Skip to content
Development
Skill

/ase-code-resolve

Resolve Problem: Use when user wants to "bugfix" or "fix" code or "resolve" a problem.

From plugin
ase
5355 skills10 agents
Install
$ npx -y skills add rse/ase --skill ase-code-resolve --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/ase-code-resolve

Context preview

The summary Claude sees to decide when to auto-load this skill.

Resolve Problem: Use when user wants to "bugfix" or "fix" code or "resolve" a problem.

SKILL.md

ase-code-resolve.SKILL.md
name: ase-code-resolve
argument-hint: "[--help|-h] [--auto|-a] [--dry|-d] [--direct|-D] [--quick|-Q] [--next|-n <option>[,...]] [<task-id>:] <problem>"
description: >
    Resolve Problem:
    Use when user wants to "bugfix" or "fix" code or "resolve" a problem.
user-invocable: true
disable-model-invocation: false
effort: xhigh
allowed-tools:
    - "Skill"
    - "Agent"
    - "Read"

@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md

<purpose name="ase-code-resolve"> Resolve Problem </purpose>

<expand name="getopt" arg1="ase-code-resolve" arg2="--auto|-a --dry|-d --direct|-D --quick|-Q --next|-n=(none|DONE|EDIT|GRILL|PREFLIGHT|IMPLEMENT)..."> $ARGUMENTS </expand>

<if condition="<getopt-option-quick/> is equal `true`"> The `--quick`/`-Q` flag is a *shorthand alias*: set <getopt-option-auto/> to `true`, <getopt-option-dry/> to `true`, and <getopt-option-next/> to `IMPLEMENT,DELETE`. Do not output anything. </if>

<objective> *Resolve* the following problem: <problem><getopt-arguments/></problem> </objective>

@${CLAUDE_SKILL_DIR}/../../meta/ase-format-task.md @${CLAUDE_SKILL_DIR}/../../meta/ase-tenets.md @${CLAUDE_SKILL_DIR}/../../meta/ase-common-code.md

Procedure ---------

<if condition="<getopt-option-direct/> is not equal to 'true'"> You *MUST* *NOT* call `Edit`, `Write`, `NotebookEdit`, or any filesystem-modifying tool, nor execute any filesystem-modifying shell command, during this entire skill. The *only* permitted way to persist artifacts is via the `ase_task_save(...)` MCP tool. </if> <else> The `--direct`/`-D` mode applies the resolution *in place*, so STEP 4 below *requires* `Edit` and `Write` to modify the affected artifacts. Every modification *MUST* still stay restricted to the artifacts the resolution actually demands, and you *MUST* *NOT* call `ase_task_save(...)`, as no task plan is composed at all. </else>

<flow>

1. <step id="STEP 1: Reason About Problem">

1. If <problem/> matches the regexp `^[PT]\d+$` (i.e. a bare issue identifier like `P1`, `P2`, `T1`, `T2`, ...), set <problem-id><problem/></problem-id> and <ase-task-id><problem/></ase-task-id>, then call the `ase_kv_get(key: "ase-issue-<problem-id/>")` tool of the `ase` MCP server to retrieve the previously persisted problem description. If the returned `text` is non-empty, set <problem><text/></problem> and call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase` MCP server to implicitly switch the task, otherwise complain to the user that no analyzer result exists for <problem-id/> and stop processing.

2. <if condition=" <problem-id/> is not set AND <problem/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` "> Set <ase-task-id><problem/></ase-task-id> (set task id to problem) and <problem></problem> (set problem empty), call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase` MCP server to switch the task, and then only output the following <template/>:

<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>**, ▶ status: **task given** </template> </if>

3. <if condition=" <problem-id/> is not set AND <problem/> has the format `<id/>: <text/>` AND <id/> matches the regexp `^[a-zA-Z][a-zA-Z0-9_-]*$` "> Set <problem><text/></problem> and <ase-task-id><id/></ase-task-id> and call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase` MCP server to implicitly switch the task. Do not output anything. </if>

4. <if condition="<problem/> is empty"> Ask the user interactively, without a special tool, for the initial problem with a single question:

`**No problem details known yet. What is the problem you want to resolve?**`

Then set <problem/> to the response of the user. </if>

5. <if condition=" <ase-task-id/> is equal `default` and <problem/> is not empty "> Set <ase-task-id/> to a unique task id, derived from <problem/>, which consists of two lower-case words concatenated with a `-` character. Then call the `ase_task_id(id: "<ase-task-id/>", session: "<ase-session-id/>")` tool from the `ase` MCP server to implicitly switch the task. Do not output anything. </if>

6. Report the task and problem with the following <template/>:

<template> ⧉ **ASE**: ◉ task: **<ase-task-id/>** ⧉ **ASE**: ⇌ problem: **<problem/>** </template>

</step>

2. <step id="STEP 2: Investigate Code Base">

1. Check the existing source files for all code which is related to the requested <problem/> resolution.

2. Check the architecture of the existing code base to understand the overall structures and dynamics.

3. Investigate and *figure out details* related to this problem.

<if condition="<getopt-option-direct/> is not equal to 'true'"> Report those details with the following <template/>:

<template> <ase-tpl-bullet-signal/> **PROBLEM CONTEXT**: *<context/>* <affected-code-excerpt/> <optional-diagram/>

<ase-tpl-bullet-signal/> **PROBLEM DETAILS**: *<summary/>* ● [...] ● [...] ● [...] </template>

Hints:

  • Give a short one-sentence <context/> of the <problem/> plus

a short excerpt of the affected code <affected-code-excerpt/>.

  • Give a short one-sentence <summary/> of the <problem/> plus *precise*

but *brief* code processing information to understand the problem.

Read more
Ships withase

Agentic Software Engineering (ASE)

Get the whole plugin

Other skills on ase.

hello
Skill

hello

Show a nice greeting message with a timestamp. Use this when the user wants to greet or say hello, optionally to a certain subject <subject> and in a certain…

@rse@rseView Skill