Skip to content
Back to skills

Ase Task List

ASecurity

List all available task ids. Use when user wants to see all tasks.

  • 56 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 1, 2026
ai-agents

Works with

  • cli
  • mcp

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 22, 2026

npx -y skills add rse/ase --skill ase-task-list --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ase Task List?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Ase Task List
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/rse-ase-task-list/badge)](https://www.skillsdirectory.com/skills/rse-ase-task-list)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: ase-task-list
argument-hint: "[--help|-h] [--verbose|-v] [--include|-i=<state>[,...]] [--exclude|-e=<state>[,...]]"
description: >
    List all available task ids.
    Use when user wants to see all tasks.
user-invocable: true
disable-model-invocation: false
effort: high
---

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

<purpose name="ase-task-list">
List Task Plans
</purpose>

<expand name="getopt"
    arg1="ase-task-list"
    arg2="--verbose|-v --include|-i=none --exclude|-e=finished">
    $ARGUMENTS
</expand>

<objective>
*List* all available *task plans* of the current project.
</objective>

Procedure
---------

1.  Determine the *effective state set* <states/>, i.e., the lifecycle
    states a task plan has to be in to be listed at all. For this, first
    determine the *all states* set <all-states/> and the *finished
    states* set <finished-states/> of the task lifecycle model
    <ase-project-task-lifecycle/> of the current project:

    -   If <ase-project-task-lifecycle/> is `solo` (or absent):
        <all-states/> is `OPEN`, `SHELVED`, `CLOSED`, and `CANCELLED`,
        and <finished-states/> is `CLOSED` and `CANCELLED`.

    -   If <ase-project-task-lifecycle/> is `team`:
        <all-states/> is `PLANNING`, `SHELVED`, `IMPLEMENTING`,
        `STALLED`, `IMPLEMENTED`, and `CANCELLED`, and
        <finished-states/> is `IMPLEMENTED` and `CANCELLED`.

    -   If <ase-project-task-lifecycle/> is `enterprise`:
        <all-states/> is `DRAFTED`, `SHELVED`, `PLANNING`, `PLANNED`,
        `STALLED`, `IMPLEMENTING`, `IMPLEMENTED`, `DECLINED`,
        `APPROVING`, `APPROVED`, `DEFERRED`, `INTEGRATING`, `INTEGRATED`,
        and `CANCELLED`, and <finished-states/> is `INTEGRATED` and
        `CANCELLED`.

    Then parse <getopt-option-include/> and <getopt-option-exclude/> as
    comma-separated token lists, silently dropping the `none` sentinel
    and any empty token, and replacing the `finished` sentinel with
    <finished-states/>. If a token <token/> is *not* one of the
    `Status:` values in <all-states/>, only output the following
    <template/> and then *STOP* processing the entire current skill:

    <template>
    ⧉ **ASE**: ✪ skill: **ase-task-list**, ▶ ERROR: invalid state: **<token/>**
    </template>

    Otherwise set <states/> to <all-states/> if both lists are
    empty, to the *include* list if only it is non-empty, to <all-states/>
    *minus* the *exclude* list if only it is non-empty, and to the
    *include* list *minus* the *exclude* list if both are non-empty. If
    the resulting <states/> is *empty*, only output the following
    <template/> and then *STOP* processing the entire current skill:

    <template>
    ⧉ **ASE**: ✪ skill: **ase-task-list**, ▶ ERROR: options `--include` and `--exclude` cancel out to an empty state set
    </template>

    Directly *after* this error <template/>, and *before* stopping, give
    the corrective hint by expanding the following (which, depending on
    the configured <ase-guidance-level/>, may expand into nothing and
    hence emit no output at all):

    <ase-tpl-hint level="minimal">
    The `--exclude` default `finished` (the finished states of the task lifecycle model) still applies -- add `--exclude none` to reach finished states via `--include`.
    </ase-tpl-hint>

2.  Call the `ase_task_list(verbose: <getopt-option-verbose/>)` tool from
    the `ase` MCP server. The result is a structured object with a
    `tasks` array where each entry has an `id` and a `status` field, and
    -- if <getopt-option-verbose/> is `true` -- additionally an `mtime`
    field (formatted as `YYYY-MM-DD HH:MM`). *Drop* from the `tasks`
    array every entry whose `status` is contained in <all-states/> but
    *not* in <states/>. *Keep* every entry whose `status` is *not*
    contained in <all-states/> at all, regardless of <states/>, and
    remember it as an *unknown-status entry*. Do not output anything.

3.  For each *unknown-status entry* of step 2, output the following
    <template/>, where <id/> and <status/> correspond to the entry and
    <all-states/> is rendered as a comma-separated list:

    <template>
    ⧉ **ASE**: ◉ task: **<id/>**, ▶ WARNING: unknown status **<status/>** (expected one of: <all-states/>)
    </template>

    Then, if the `tasks` array is empty, output the following <template/>:

    <template>
    ⧉ **ASE**: ◉ tasks: *(none)*
    </template>

    Else, dispatch on <getopt-option-verbose/>:

    -   If <getopt-option-verbose/> is `true`, output the list of tasks
        with the following <template/>, where each <id/>, <status/>, and
        <mtime/> correspond to an entry in the task list:

        <template>
        ⧉ **ASE**: ◉ tasks:

        | *Task Id* | *Status*    | *Last Modified*    |
        |-----------|-------------|--------------------|
        | **<id/>** | `<status/>` | `<mtime/>`         |
        | [...]     | [...]       | [...]              |

        </template>

    -   If <getopt-option-verbose/> is `false`, output the list of tasks
        with the following <template/>, where each <id/> corresponds to
        an entry in the task list:

        <template>
        ⧉ **ASE**: ◉ tasks:

        | *Task Id* |
        |-----------|
        | **<id/>** |
        | [...]     |

        </template>

4.  Finally, give the closing hints by expanding the following (which,
    depending on the configured <ase-guidance-level/>, may each expand
    into nothing and hence emit no output at all):

    <if condition="the `tasks` array is NOT empty">
    <ase-tpl-hint level="normal">
    Use `/ase-task-id <id>` to switch to one of the listed tasks and `/ase-task-view` to inspect its plan.
    </ase-tpl-hint>
    </if>
    <elseif condition="entries were dropped by the state filtering of step 2">
    <ase-tpl-hint level="normal">
    All task plans were filtered out by the effective state set -- use `/ase-task-list --exclude none` to list them regardless of their status.
    </ase-tpl-hint>
    </elseif>
    <else>
    <ase-tpl-hint level="normal">
    No task plan exists yet -- use `/ase-task-edit` to create one through a conversational loop.
    </ase-tpl-hint>
    </else>

    <if condition="<getopt-option-verbose/> is not equal `true`">
    <ase-tpl-hint level="verbose">
    Use `/ase-task-list --verbose` to additionally show the status and the last-modified timestamp of each task plan.
    </ase-tpl-hint>
    </if>

    <ase-tpl-hint level="verbose">
    Use `/ase-task-list --include`/`--exclude` to narrow the listing to certain lifecycle states, e.g. `--include IMPLEMENTING,STALLED`.
    </ase-tpl-hint>

Files in this skill

  • SKILL.md5.1 KB
  • help.md2.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.