Skip to content
Development
Skill

/ase-meta-compat

Self-test the LLM's ability to execute ASE's core interpreter machinery (control flow, XML placeholders, regex matching, arithmetic) and report an overall compatibility rating. Use when the user wants to check how well the current model/harness is compatible with ASE, or asks to

From plugin
ase
7561 skills11 agents

Claude Code

$ npx -y skills add rse/ase --skill ase-meta-compat --agent claude-code

SKILL.md

ase-meta-compat.SKILL.md
name: ase-meta-compat
argument-hint: "[--help|-h]"
description: >
    Self-test the LLM's ability to execute ASE's core interpreter
    machinery (control flow, XML placeholders, regex matching,
    arithmetic) and report an overall compatibility rating. Use when
    the user wants to check how well the current model/harness is
    compatible with ASE, or asks to "test ASE compatibility" or "check
    ASE compatibility".
user-invocable: true
disable-model-invocation: true

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

If `$1` (the first token of the skill arguments) is equal to `-h` or `--help`, you *MUST* once output the following output <template/> and then *IMMEDIATELY* *STOP* the further skill processing:

<template> @${CLAUDE_SKILL_DIR}/help.md </template>

Self-Test ASE Compatibility ===========================

Objective ---------

*Self-test* how faithfully the current LLM (and its harness) executes the four *core interpreter primitives* that every ASE skill silently relies on -- *control flow*, *XML placeholders*, *regex matching*, and *arithmetic* -- and report an overall **0%…100% compatibility** rating.

This skill is unusual: it is both the *test definition* and the *system under test*. Each *probe* is a pure ASE construct that you execute, recording its *actual* result. You *MUST NOT* compare against any expected value until STEP 6. Do not fabricate passes: a probe whose actual result differs from its expected result *MUST* be recorded as a *fail*.

Notice that this skill intentionally does not strictly follow the ASE skill format; in particular, it does not include the usual meta skill information.

Procedure ---------

1. STEP 1: Initialize Self-Test

Initialize the running map of actual probe results <actuals></actuals> (set to empty) -- every probe in STEPs 2-5 stores its result here as a `<category/>/<probe-name/>` entry with its *actual* computed value.

Initialize the running list of failed probes <failures></failures> (set to empty) -- this is populated only in STEP 6 after comparing actuals against the expected values.

2. STEP 2: Probe XML Placeholders

Execute *all* of the following XML-placeholder probes (in the given order). For each probe, record the *actual* result in <actuals/> under the key `xml-placeholders/<probe-name/>`. Do *not* compare to any expected value here.

1. *get-and-set*: Set <v>42</v>, then get <v/>. Record actual result for `xml-placeholders/get-and-set`.

2. *self-ref*: Set <v>42</v>, then set `<v>pre_<v/></v>`, then get <v/>. Record actual result for `xml-placeholders/self-ref`.

3. *overwrite*: Set <v>42</v>, then set `<v>99</v>`, then get <v/>. Record actual result for `xml-placeholders/overwrite`.

4. *indexed*: Set `<eval-1-2>+1</eval-1-2>` and `<eval-2-1>-1</eval-2-1>`, then get <eval-1-2/> and <eval-2-1/> via `<eval-1-2/>,<eval-2-1/>`. Record actual result for `xml-placeholders/indexed`.

5. *nested-attr*: With <w>20</w>, build the value of an XML attribute `width="<w/>"` and read the attribute `width` back. Record actual result for `xml-placeholders/nested-attr`.

6. *entity*: Evaluate the XML entity `&#x29BF;` and get the rendered Unicode character. Record actual result for `xml-placeholders/entity`.

Set <xml-total/> to the number of XML-placeholder probes above.

3. STEP 3: Probe Control Flow

Execute *all* of the following control-flow probes (in the given order). For each probe, record the *actual* result in <actuals/> under the key `control-flow/<probe-name/>`. Do *not* compare to any expected value here.

1. *branch*: Set <a>3</a>, then evaluate `<if condition="<a/> is greater than 5">big</if> <elseif condition="<a/> is greater than 2">mid</elseif> <else>small</else>`. Record actual result for `control-flow/branch`.

2. *while-sum*: Set <s>0</s> and <i>1</i>, then evaluate `<while condition="<i/> is less than or equal to 5"> set <s/> to <s/> + <i/>, set <i/> to <i/> + 1 </while>`. Record <s/> as actual result for `control-flow/while-sum`.

3. *for-order*: Set <s></s>, then evaluate `<for items="x y z"><s><s/>-<item/></s></for>`. Record <s/> as actual result for `control-flow/for-order`.

4. *while-break*: Set <i>1</i> and <hit></hit>, then evaluate `<while condition="<i/> is less than or equal to 9"> if <i/> equals 4 set <hit/> to <i/> and <break/>, else set <i/> to <i/> + 1 </while>`. Record <hit/> as actual result for `control-flow/while-break`.

5. *step-skip*: A `<step condition="[...]">[...]</step>` either expands to its body (if condition evaluates to true) or to the empty string, so what does `<step condition="42 is greater than 7">X</step>` expand into? Record the result of this construct for `control-flow/step-skip`.

6. *expand-subst*: With `<define name="foo">[<arg1/>:<content/>]</define>`, evaluate `<expand name="foo" arg1="K">V</expand>`. Record actual result for `control-flow/expand-subst`.

Set <cf-total/> to the number of control-flow probes above.

4. STEP 4: Probe Regex Matching

Execute *all* of the following regex probes (in the given order). For each probe, record the *actual* result in <actuals/> under the key `regex/<probe-name/>`. Do *not* compare to any expected value here.

1. *getopt-dash*: Does the string `-l foo` match the regexp `(^|\s)-`? Record `yes` or `no` as actual result for `regex/getopt-dash`.

2. *getopt-nodash*: Does the string `foo` match the regexp `(^|\s)-`? Record `yes` or `no` as actual result for `regex/getopt-nodash`.

3. *anchored-int*: Does `123` fully match `^\d+$`, and does `12a` fully match `^\d+$`? Report as `<yes-or-no/>,<yes-or-no/>`. Rec

Read more
@rse
Ships withase

Agentic Software Engineering (ASE)

7561 skills11 agents
Get the whole plugin

Stars on GitHub

Momentum

stars in total
75
Star history of rse/ase on GitHub, a chart by star-history.com

Other skills on ase.

hello

hello

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

@rse@rseInstall Skill
ase-arch-analyze

ase-arch-analyze

Review software architecture, including package cohesion and inter-package coupling

@rse@rseInstall Skill
ase-arch-discover

ase-arch-discover

Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.

@rse@rseInstall Skill
ase-code-analyze

ase-code-analyze

Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency,…

@rse@rseInstall Skill
ase-code-edit

ase-code-edit

Edit Source Code: Use when the user wants to "edit" the code base in one shot from a query or a bare analyzer issue id like "P1",…

@rse@rseInstall Skill
ase-code-explain

ase-code-explain

Explains code with WHAT, WHY, ANALOGY, DIAGRAM, CRUXES, and GOTCHAS. Use when you want to know how code works or when the user…

@rse@rseInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills10d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc11d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react1d252k
@facebook@facebookInstall Skill

Questions about ase-meta-compat.

Which coding agents can use ase-meta-compat?
ase-meta-compat installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.