Install
$ agentstack add skill-rse-ase-ase-meta-compat ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
@${CLAUDESKILLDIR}/../../meta/ase-control.md
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 and record 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, especially it does not include any meta skill information, etc.
Procedure ---------
- STEP 1: Initialize Self-Test
Initialize the running map of actual probe results (set to empty) -- every probe in STEPs 2-5 stores its result here as a / entry with its actual computed value.
Initialize the running list of failed probes (set to empty) -- this is populated only in STEP 6 after comparing actuals against the expected values.
- 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 under the key xml-placeholders/. Do not compare to any expected value here.
- get-and-set: Set 42, then get .
Record actual result for xml-placeholders/get-and-set.
- self-ref: Set 42, then set
pre_, then get .
Record actual result for xml-placeholders/self-ref.
- overwrite: Set 42, then set
99, then get .
Record actual result for xml-placeholders/overwrite.
- indexed: Set
+1and-1,
then get and via ,. Record actual result for xml-placeholders/indexed.
- nested-attr: With 20, build the value of an XML attribute
width="" and read the attribute width back. Record actual result for xml-placeholders/nested-attr.
- entity: Evaluate the XML entity
⦿and get the rendered
Unicode character. Record actual result for xml-placeholders/entity.
Set to the number of XML-placeholder probes above.
- 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 under the key control-flow/. Do not compare to any expected value here.
- branch: Set 3, then evaluate
is greater than 5">big is greater than 2">mid small. Record actual result for control-flow/branch.
- while-sum: Set 0 and 1, then evaluate
is less than or equal to 5"> set to + , set to + 1 . Record as actual result for control-flow/while-sum.
- for-order: Set , then evaluate
-. Record as actual result for control-flow/for-order.
- while-break: Set 1 and , then evaluate
is less than or equal to 9"> if equals 4 set to and , else set to + 1 . Record as actual result for control-flow/while-break.
- step-skip: A
[...]either expands
to its body (if condition evaluates to true) or to the empty string, so what does X expands into? Record the result of this construct for control-flow/step-skip.
- expand-subst: With
[:],
evaluate V. Record actual result for control-flow/expand-subst.
Set to the number of control-flow probes above.
- STEP 4: Probe Regex Matching
Execute all of the following regex probes (in the given order). For each probe, record the actual result in under the key regex/. Do not compare to any expected value here.
- getopt-dash: Does the string
-l foomatch the regexp(^|\s)-?
Record yes or no as actual result for regex/getopt-dash.
- getopt-nodash: Does the string
foomatch the regexp(^|\s)-?
Record yes or no as actual result for regex/getopt-nodash.
- anchored-int: Does
123fully match^\d+$, and does12afully
match ^\d+$? Report as ,. Record actual result for regex/anchored-int.
- alternation: Does
thoroughmatch^(basic|standard|thorough)$?
Record yes or no as actual result for regex/alternation.
- capture: Apply
^--(\w+).+to--foo-bar-quux.
Record the first capture group as actual result for regex/capture.
- whitespace: Does
-x(leading space then dash) match(^|\s)-
(the \s alternative)? Record yes or no as actual result for regex/whitespace.
- complex: Does
--level=(low|high)...match
^--([A-Za-z][A-Za-z0-9-]*)(?:\|-([A-Za-z]))?(?:=(\((.*)\)(\.\.\.)?|.*))?$? Record yes or no as actual result for regex/complex.
Set to the number of regex probes above.
- STEP 5: Probe Arithmetic
Execute all of the following arithmetic probes (in the given order). For each probe, record the actual result in under the key arithmetic/. Do not compare to any expected value here.
- increment: With 7, compute + 2.
Record actual result for arithmetic/increment.
- product-sum: Compute
4.00 * 1.00 + 2.00 * 0.50.
Record actual result (as X.XX) for arithmetic/product-sum.
- percentage: Compute
3 / 7rounded to 2 decimal places.
Record actual result (as 0.XX) for arithmetic/percentage.
- bar-width: With 13, compute
67 -.
Record actual result for arithmetic/bar-width.
- threshold: Is
0.095less than0.10?
Record yes or no as actual result for arithmetic/threshold.
- round-half: Round
2.5to the nearest integer (round half up).
Record actual result for arithmetic/round-half.
Set to the number of arithmetic probes above.
- STEP 6: Fetch Expected Values and Score
Call the ase_compat() tool of the ase MCP server with an internal programmatic MCP tool call (and NOT with an external shell command) and set to the text content of the response.
Parse into a map by splitting on newlines; for each non-empty line of the form : , set ]> to `` (value may be empty for probes whose correct answer is an empty string).
For each probe in , compare the actual result to ]> using an exact-match comparison:
- If they match, count the probe as pass.
- If they differ, count the probe as fail and append ``
to .
Tally pass counts per category:
- Set to the number of
xml-placeholders/*probes that passed. - Set to the number of
control-flow/*probes that passed. - Set to the number of
regex/*probes that passed. - Set to the number of
arithmetic/*probes that passed.
- STEP 7: Compute and Report Compatibility
Compute each category's pass-rate (a value in 0.0…1.0) by dividing its passes by its total:
set to / , set to / , set to / , set to / .
Compute the overall compatibility as a weighted average of the four pass-rates, where XML placeholders carry weight 4.00 (the backbone of every skill), control flow carries weight 3.00, regex matching carries weight 2.00, and arithmetic carries weight 1.00. Use the ase_decision_matrix MCP tool with a single "compatibility" alternative column, one matrix row per category of the form [ , ]:
Call...
ase_decision_matrix(matrix: [ [ 4.00, ], [ 3.00, ], [ 2.00, ], [ 1.00, ] ])
...of the ase MCP server with an internal programmatic MCP tool call (and NOT with an external shell command) and set to the single numerical value of the returned array.
The product-sum is the sum over the four rows of * , so dividing by the sum of weights (4.00 + 3.00 + 2.00 + 1.00 = 10.00) yields the weighted-average compatibility on 0.0…1.0:
Set to / 10.00. Set to round( * 100) (an integer percentage).
Also compute each category's display percentage:
Set to round( * 100), and likewise , , .
Determine the from :
- If is greater than or equal to 90:
Set ✓ FULLY COMPATIBLE.
- Else if is greater than or equal to 60:
Set ⚠ PARTIALLY COMPATIBLE.
- Else:
Set ✘ INCOMPATIBLE.
- If is not empty:
Append to the suffix (failed: ).
Finally, output the compatibility report:
RESULTS:
| ⦿ Capability | ⚖ Weight | ✓ Passed | ⚑ Rate | | :------------------- | ----------: | ---------------------------: | ------------------: | | XML Placeholders | 4.00 | / | % | | Control Flow | 3.00 | / | % | | Regex Matching | 2.00 | / | % | | Arithmetic | 1.00 | / | % | | OVERALL | | | % |
VERDICT:
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.