Ase meta review
Perform a holistic, human-reviewer-style critique of the currently staged Git changes and emit an approve/reject verdict with prioritized, severity-tagged, line-cited findings. Use when the user wants the staged diff "reviewed", "critiqued", or "code-reviewed" before committing.From its SKILL.md
npx -y skills add rse/ase --skill ase-meta-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
SKILL.md
7.8 KB, ~1.9k tokens by cl100k_base, as published. Nobody here has run it
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-meta-review"> Review Staged Changes </purpose><expand name="getopt" arg1="ase-meta-review" arg2="--severity|-S=(LOW|MEDIUM|HIGH)"> $ARGUMENTS </expand>
<objective> Review the currently staged Git changes the way an *experienced human reviewer* would - judging them *holistically* against the change's *own intent* and against *correctness*, *design fit*, *clarity*, *robustness*, and *project-convention conformance* - and emit a single *approve / request-changes verdict* backed by *prioritized*, *severity-tagged*, *line-cited* findings. This is a *synthesizing critique*, not a mechanical scan: it complements `ase-code-lint` (mechanical quality), `ase-code-analyze` (logic/semantics), and `ase-meta-diff` (intent narrative and risk). </objective>Procedure
<flow>-
<step id="STEP 1: Determine Change Set">
-
Determine whether there are staged changes at all by running the corresponding command (taken exactly as given) and capturing its output - the bare list of staged file names - into <diff/>. This is a lightweight gate; the full diff is fetched by the sub-agent in STEP 2, so capturing only the file-name list here is sufficient:
git diff --cached --name-only HEAD - <if condition="<diff/> is empty"> Only output the following <template/> and then *STOP* immediately: <template> ⧉ **ASE**: ✪ skill: **ase-meta-review**, ▶ status: **no changes to review** </template> </if>
-
-
<step id="STEP 2: Review Investigation">
<if condition="<ase-project-boxing/> is equal `black`">
The project source artifacts are classified as a black box, so the user does not want the staged changes scrutinized or their findings surfaced. Skip the entire review investigation: do not invoke the
</if>Agenttool and do not read any change, set <findings/> to the empty list, set <verdict/> toSKIPPED (boxing: black), set <summary/> to a one-line neutral restatement of the change intent derived solely from STEP 1, and proceed directly to STEP 3.First, use the following <template/> to give a hint on this step:
<template> <ase-tpl-bullet-secondary/> **REVIEW INVESTIGATION** </template>Dispatch the review investigation to a sub-agent via the
Agenttool so that no investigation details leak into the user-visible transcript. The sub-agent performs the silent reading, the read-only repository probing, and the critique; only its final structured return value is consumed here.For this, invoke exactly once the tool:
Agent( description: "Review Investigation", subagent_type: "ase:ase-meta-review", prompt: "Review the staged changes.", run_in_background: false )Parse the single result message of the
Agenttool as a JSON object, set <summary/> to itssummaryfield (a single crisp sentence reconstructing the change's intent), and set <findings/> to itsfindingsfield (a list).Then derive the overall <verdict/> from <findings/>: set <verdict/> to
REJECT - DEMANDS CHANGESif any finding in <findings/> has aseverityfield ofHIGH; otherwise set <verdict/> toAPPROVE. The verdict is derived before the severity floor below, so the floor only affects which findings are rendered, never the verdict.Then determine the effective severity floor <floor/>: define the ordinal rank
LOW=1,MEDIUM=2,HIGH=3, start from <floor><getopt-option-severity/></floor> (defaultLOW), and - if <ase-project-boxing/> is equalgrey- raise <floor/> toMEDIUMwhenever its current rank is belowrank(MEDIUM)(grey boxing surfaces only material findings of severityMEDIUMand above). The floor affects only which findings are rendered, never the <verdict/> derived above.Then apply the effective severity floor <floor/>: Keep a finding in <findings/> if and only if its
severityfield isACCEPTEDorrank(severity)is greater than or equal torank(<floor/>); silently drop all other findings. With the default floorLOW, all findings are kept.ACCEPTEDfindings are never dropped.You MUST NOT output anything else in this STEP 2.
</step> -
<step id="STEP 3: Verdict and Findings">
-
Use the following <template/> to output the overall review in <verdict/> and the reconstructed intent <summary/>:
<template><ase-tpl-bullet-signal/> REVIEW VERDICT: <verdict/>
<ase-tpl-bullet-normal/> CHANGE INTENT: <summary/>
</template>You MUST NOT output anything else in this STEP 3.1.
-
<if condition="<findings/> is empty">
Only output the following <template/> and then *SKIP* the
remainder of this STEP 3 (an empty finding list implies the
`APPROVE` verdict, so the closing hint of substep 4 would expand
into nothing anyway):
<template>
<ase-tpl-bullet-normal/> NO FINDINGS: the change is clean, nothing to flag.
</template> </if> -
<if condition="<findings/> is NOT empty">
Sort the findings by <severity/> from highest to lowest in the
fixed order `HIGH`, `MEDIUM`, `LOW`, `ACCEPTED`. Within the same
severity, keep the order returned by the sub-agent.
Then render a three-column table with one row per finding by using the following output <template/>. For each finding, repeat the third line, set <severity/> to its
severityfield, set <dimension/> to itsdimensionfield, set <location/> to itslocationfield, and set <finding/> to itsfindingfield.In the <location/> column, markup the
file:linereference as code (with backticks) and prepend it with▢- keep the sub-agent's own:N/:N-Mline citation intact and do not append any further line-count decoration.Because the <finding/> text is free-form Markdown, before emitting any row you MUST escape every literal
<template> | Severity | Dimension | Finding | | --------------- | ------------ | ----------------------- | | **<severity/>** | <dimension/> | <location/>: <finding/> | </template>|pipe character inside <location/> and <finding/> as\|so it cannot break the table column structure.Keep the overall report concise and brief. Do not output any further explanation. </if>
-
Finally, give the closing hint by expanding the following (which, depending on the configured <ase-guidance-level/>, may expand into nothing and hence emit no output at all):
<if condition="<verdict/> starts with `REJECT`"> <ase-tpl-hint level="normal"> Use `/ase-code-resolve` to derive and apply a solution approach for the findings which demand changes. </ase-tpl-hint> </if>
-
What ships with it: 1 file
3.7 KB alongside SKILL.md
- help.md3.7 KB
Gives 0 of the 12 instructions most review quality skills give in ~1.9k tokens
Counted across 1,048 of the 1,783 authors here whose files we hold, read 2026-08-07
- Ask questions one at a timein 81 of 1048, across 64 files
- Provide a recommended answer for each questionin 73 of 1048, across 50 files
- Explore the codebase instead of asking answerable questionsin 66 of 1048, across 42 files
- Resolve dependencies between decisions one-by-onein 42 of 1048, across 17 files
- Interview the user relentlessly about the planin 38 of 1048, across 13 files
- Order findings by severityin 31 of 1048
- Resolve each branch of the decision treein 27 of 1048, across 5 files
- Run a grilling sessionin 26 of 1048, across 5 files
- Update CONTEXT.md immediately when a term is resolvedin 26 of 1048, across 11 files
- Propose precise canonical terms for vague languagein 25 of 1048, across 7 files
- Create documentation files lazilyin 24 of 1048, across 5 files
- Assign severity to every findingin 24 of 1048
Said here and by no other author read
- Skip the review investigation if project boxing is black.
- Parse the sub-agent result as a JSON object.
- Determine the effective severity floor.
- Drop findings below the effective severity floor.
- Sort findings by severity from highest to lowest.
- Render a three-column table for non-empty findings.
Grouped from the skills themselves: near-identical wordings counted once, and counted by distinct author, so one author publishing three of these counts once. Length counted with cl100k_base; the agent that loads this file may tokenize it differently.