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…
Distill a provided document into a flat, importance-ranked list of its key points, each with a salience rank, a rationale, and a verbatim line-cited evidence snippet. Use when the user wants to "distill", "summarize the key points", or "extract the essence" of a document or
$ npx -y skills add rse/ase --skill ase-docs-distill --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/ase-docs-distillContext preview
The summary Claude sees to decide when to auto-load this skill.
Distill a provided document into a flat, importance-ranked list of its key points, each with a salience rank, a rationale, and a verbatim line-cited evidence snippet. Use when the user wants to "distill", "summarize the key points", or "extract the essence" of a document or
name: ase-docs-distill
argument-hint: "[--help|-h] [--top|-t <N>] <document-reference>"
description: >
Distill a provided document into a flat, importance-ranked list
of its key points, each with a salience rank, a rationale, and a
verbatim line-cited evidence snippet. Use when the user wants to
"distill", "summarize the key points", or "extract the essence" of a
document or pasted text.
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-docs-distill"> Distill Key Points </purpose>
<expand name="getopt" arg1="ase-docs-distill" arg2="--top|-t=5"> $ARGUMENTS </expand>
<objective> *Distill* the content `<getopt-arguments/>` into a *flat*, *importance-ranked* list of its *key points* - each point an *atomic* claim carrying a *0-10 salience rank*, a *one-line rationale*, and a *verbatim, line-cited evidence* snippet - keeping at most `<getopt-option-top/>` points. </objective>
Procedure ---------
<flow>
1. <step id="STEP 1: Resolve Input">
Resolve the document source from <getopt-arguments/> using *probe-as-file-first* semantics:
1. <if condition="<getopt-arguments/> is empty">
Only output the following <template/> and then *STOP* immediately:
<template> ⧉ **ASE**: ✪ skill: **ase-docs-distill**, ▶ status: **no document to distill** </template>
</if>
2. Treat the *entire* <getopt-arguments/> as a *file path*. If it resolves to a *readable file*, read that file and capture its content together with its *line numbers* into <source/>, and set <origin/> to the file path.
3. <if condition="<getopt-arguments/> does NOT resolve to a readable file">
Treat <getopt-arguments/> *verbatim* as *pasted text*, capture it into <source/> numbering its lines from *1*, and set <origin/> to empty (so locations are cited as `:Ls-Le`).
</if>
4. <if condition="<source/> is empty">
Only output the following <template/> and then *STOP* immediately:
<template> ⧉ **ASE**: ✪ skill: **ase-docs-distill**, ▶ status: **no document to distill** </template>
</if>
You *MUST* *NOT* output anything else in this STEP 1.
</step>
2. <step id="STEP 2: Distill Key Points">
Read <source/> and distill it into its *key points*.
1. Extract the document's *key points*, where each point is *one atomic, self-contained claim, decision, or fact* - *not* a section-level summary that blends several claims.
2. For each point, determine:
*importance-to-the-reader* (impact, centrality, consequence)
that <rank/>.
`<origin/>:Ls-Le` (for a file) or `:Ls-Le` (for pasted text), where `Ls` is the start line and `Le` is the end line.
<source/> (but with all newlines replaced with spaces and multiple spaces collapsed into a single space), that *proves* the point. The cited snippet *MUST* prove the point verbatim. If it does not, *re-investigate and re-cite correctly*.
3. *Sort* the points by <rank/> from *highest to lowest*. Within the same rank, keep the order of first appearance in <source/>.
4. Apply the *top-bound* <getopt-option-top/> as an *upper bound only*: keep at most `min(<getopt-option-top/>, number of salient points)` points and *never pad* the list with filler to reach the bound. If <getopt-option-top/> is *non-numeric* or *less than or equal to 0*, use the default *5* instead.
You *MUST* *NOT* output anything in this STEP 2.
</step>
3. <step id="STEP 3: Report Ranked Points">
For each distilled point, emit the following <template/>, where <rank/> is its salience rank, <point/> is the atomic claim, <location/> is its line-range citation, <evidence/> is the verbatim proving snippet, and <rationale/> is the one-line salience justification:
<template>
<ase-tpl-bullet-normal/> **KEY POINT**: **<point/>**
◯ LOCATION: <location/> ◯ EVIDENCE: "`<evidence/>`" ◯ RATIONALE: <rationale/> ◯ RANK: <rank/>/10
</template>
In the <location/>, mark up the line-range reference as code (with backticks) and prepend it with `▢ `.
Keep the overall report *concise* and *brief*. Do *not* output any further explanation.
</step>
</flow>
Repo: rse/ase
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…
Review software architecture, including package cohesion and inter-package coupling
Discover additional, third-party components (libraries/frameworks) for the technology stack to provide needed functionality.
Analyze the source code for problems in either the logic and semantics and its related control flow, performance and efficiency, or security.
Craft Source Code: Use when user wants to "create", "add", or "craft" a new feature from scratch.
Dissect the current Git change set, treated as an epic, domain-wise and logically into cohesive parts and materialize each part in its own dedicated Git…