Review software architecture, including package cohesion and inter-package coupling
日本語の概要は準備中です。原文の説明を表示しています。
Analyze the documents for spelling, capitalization, punctuation, word break, or grammar errors. Use when the user wants to "proofread" or "spellcheck" a document.
インストールする前に、エージェントに与えられる指示の中身を確認できます。
@${CLAUDE_SKILL_DIR}/../../meta/ase-control.md @${CLAUDE_SKILL_DIR}/../../meta/ase-skill.md @${CLAUDE_SKILL_DIR}/../../meta/ase-dialog.md @${CLAUDE_SKILL_DIR}/../../meta/ase-getopt.md
<purpose name="ase-docs-proofread"> Analyze documents for spelling, capitalization, punctuation, word break, or grammar errors </purpose><expand name="getopt" arg1="ase-docs-proofread" arg2="--auto|-a"> $ARGUMENTS </expand>
<objective> *Proofread* the documents of `<getopt-arguments/>` for problems in their *spelling*, *capitalization*, *punctuation*, *word break*, or *grammar* and propose corrections. </objective> <flow>The project source artifacts are classified as a black box, so
the user does not want them inspected or their problems surfaced.
Skip the entire investigation and reporting: do not invoke any
Glob or Agent tool and do not read any document, only output
the following <template/> and then SKIP the remaining steps STEP 2
and STEP 3:
First, use the following <template/> to give a hint on this step:
<template> <ase-tpl-bullet-secondary/> **PROOFREADING INVESTIGATION** </template>Dispatch the investigation to sub-agents via the Agent
tool so that no investigation details leak into the user-visible
transcript. The sub-agents perform the silent reading and checking;
only their final structured return values are consumed here.
For this, first silently resolve <getopt-arguments/> to the
list <documents/> of individual document files, expanding any
directory or wildcard references with the Glob tool. Then
partition <documents/>, preserving order, into at most eight
batches of roughly equal size (a single document yields a single
batch), and invoke the following tool once per batch, emitting
all invocations in one single message so they run in
parallel:
Agent(
description: "Proofread Investigation (<batch-index/>/<batch-count/>)",
subagent_type: "ase:ase-docs-proofread",
prompt: <batch/>,
run_in_background: false
)
Here <batch/> is the space-separated list of the document file paths of the corresponding batch, <batch-index/> is the 1-based index of that batch, and <batch-count/> is the total number of batches, so that each parallel invocation is distinguishable in the progress display.
Parse the result message of each Agent tool invocation as a JSON
array, concatenate all those arrays, sort the combined list by
file and then numerically by line, and set <problems/> to that
list.
You MUST NOT output anything at all in this STEP 1 beyond the
above hint template and the Glob and Agent tool invocations.
</step>
Use the following <template/> to give a summary of the detected problems in <problems/>:
<template> <ase-tpl-bullet-secondary/> **PROOFREADING SUMMARY**:| Proofread Type | Proofread Result |
|---|---|
| SPELLING: | <n/> problems found |
| CAPITALIZATION: | <c/> problems found |
| PUNCTUATION: | <m/> problems found |
| WORD-BREAK: | <w/> problems found |
| GRAMMAR: | <k/> problems found |
Hints:
type equal to SPELLING in <problems/>type equal to CAPITALIZATION in <problems/>type equal to PUNCTUATION in <problems/>type equal to WORD-BREAK in <problems/>type equal to GRAMMAR in <problems/>Mark this skill as the active edit-capable skill so that the
ASE pre-tool-use hook auto-approves the subsequent Edit
invocations on any invocation path (slash command or Skill
tool). Call the ase_config_set(key: "agent.skill", val: "ase-docs-proofread", scope: "session:<ase-session-id/>") tool
from the ase MCP server. Do not output anything in this substep.
Critical safety invariant: the marker set here grants Edit
auto-approval and MUST be cleared again (substep 3 below)
before this skill yields control, regardless of how the
iteration in substep 2 ends - whether it completes normally,
is aborted early (e.g. an Edit failure, an unparseable value,
or any other unexpected condition), or is otherwise interrupted.
If you ever stop or bail out of substep 2 early, you MUST
still perform substep 3 first. Never leave this marker active
for a later, unrelated Edit.
Set <total/> to the number of problems in <problems/> and
<index/> to 0. Then iterate over all problems:
Increment <index/> by one (the 1-based position of the
current <item/> within <problems/>).
Set <type/> to the type field of <item/>.
Set <file/> to the file field of <item/>.
Set <line/> to the line field of <item/>.
Set <description/> to the description field of <item/>.
Set <context-before/> to the context_before field of <item/>.
Set <old-text/> to the old_text field of <item/>.
Set <new-text/> to the new_text field of <item/>.
Set <context-after/> to the context_after field of <item/>.
Then normalize the change to its minimal form, so
that the proposed diff shows exactly the lines the later
Edit will actually change: while the first line of
<old-text/> is identical to the first line of
<new-text/>, move that line from both to the end of
<context-before/> and increment <line/> by one; likewise,
while the last line of <old-text/> is identical to the
last line of <new-text/>, move that line from both to
the front of <context-after/>. Finally, trim
<context-before/> to its last two lines and
<context-after/> to its first two lines.
Then, unless <ase-project-boxing/> is equal grey (where
the full unified diff is suppressed and no context lines are
rendered at all), silently read the current content of
<file/> with the Read tool - reusing the content read for
the same <file/> earlier in this iteration, unless an Edit
was applied to it in between - and set <file-lines/> to its
lines, stripped of the line-number prefixes the tool adds.
Set <file-lines/> to empty if the file cannot be read.
Whenever <file-lines/> is non-empty, re-derive both
context parts from it, overriding the sub-agent supplied
values, so the rendered diff shows real context even when a
sub-agent supplied none: set <context-before/> to the up to
two lines of <file-lines/> directly before line <line/>
(empty if <line/> is 1) and <context-after/> to the up
to two lines of <file-lines/> starting at line (<line/> +
<n/>), where <n/> is the number of lines in <old-text/>
(empty if that line is beyond the end of the document).
Keep the sub-agent supplied values only when <file-lines/>
is empty.
Report the problem with the following <template/>:
<template> <ase-tpl-bullet-signal/> [<index/>/<total/>]: **<type/> PROBLEM**: `<file/>`:<line/>: <description/> </template>The project source artifacts are classified as a grey box, so
the user does not want the full artifact internals surfaced:
suppress the full unified diff and instead show only a
condensed one-line representation. Determine <old-snippet/>
as the single-line collapse of <old-text/> (join its lines
with ⏎, or ∅ when <old-text/> is empty for a pure
insertion) and <new-snippet/> as the same collapse of
<new-text/> (or ∅ when empty for a pure deletion). Then
report the correction with the following <template/>:
<ase-tpl-bullet-normal/> <type/> CORRECTION: <old-snippet/> → <new-snippet/>
Determine the hunk body as an ordered list of lines, each
carrying a one-character prefix ( for context, - for
old-side, + for new-side). Build it by concatenating, in
order and skipping any part that is empty:
-prefixed line for each line of <context-before/>
(if non-empty),--prefixed line for each line of <old-text/>
(if non-empty; split <old-text/> on newlines),+-prefixed line for each line of <new-text/>
(if non-empty; split <new-text/> on newlines), -prefixed line for each line of <context-after/>
(if non-empty).Set <hunk-body/> to those prefixed lines joined by newlines.
Set <old-count/> to the number of old-side hunk lines, i.e.,
the combined line count of <context-before/>, <old-text/>, and
<context-after/> (each empty part counts as 0).
Set <new-count/> to the number of new-side hunk lines, i.e.,
the combined line count of <context-before/>, <new-text/>, and
<context-after/> (each empty part counts as 0).
Set <old-start/> to the 1-based line number of the first
old-side hunk line: if <context-before/> is non-empty, that is
the line of its first context line, i.e., <line/> minus the
number of lines in <context-before/>; otherwise it is <line/> itself
(the first line of <old-text/>). For a hunk that only inserts
new lines (empty <old-text/> and empty context), set it to the
line before which the insertion happens, clamped to a minimum
of 0, so a top-of-file insertion yields @@ -0,0 ... @@.
Set <new-start/> to the same value as <old-start/>, but clamped
to a minimum of 1 whenever <new-count/> is greater than 0
(the corrected side then has a real first line).
Render the proposed correction as a unified diff with up to two lines of context in a fenced block based on the following <template/>, emitting <hunk-body/> verbatim (one already-prefixed line per line, with no extra blank or space-only lines):
<template><ase-tpl-bullet-normal/> <type/> CORRECTION:
--- <file/> (original)
+++ <file/> (corrected)
@@ -<old-start/>,<old-count/> +<new-start/>,<new-count/> @@
<hunk-body/>
</template>
</elseif>
In the following, you MUST NOT use your built-in
<user-dialog-tool/> tool! Instead, you MUST just show a
custom dialog according to the expanded custom-dialog
definition. You MUST closely follow this definition:
Set <result>ACCEPT</result>.
</else>Check <result/> and dispatch accordingly:
Invoke the Edit tool to apply the change by replacing
<old-text/> with <new-text/> at <file/>:<line/>. The operation
will be auto-approved by the ASE pre-tool-use hook (which
tracks the active skill), so no interactive permission
prompt will appear. Then continue with the next <item/>.
Generate a new proposal for the same <item/>,
incorporating the user's free-text hint from <result/>
after the "OTHER:" prefix. Reassign <description/>,
<old-text/>, and <new-text/> to reflect this refined
proposal (<old-text/> stays anchored to the existing text
at <file/>:<line/>; <new-text/> and <description/> carry the
refinement) so the subsequent rendering and any Edit use
the new proposal rather than the original. Then re-apply
the minimal-form normalization of substep 1 to the refined
<old-text/> and <new-text/> (so the re-rendered diff again
shows exactly the changed lines) and go back to substep 2
of this for-iteration. There is no cap on
refinement rounds - keep refining until the user picks
ACCEPT or REJECT.
<if condition=" <result/> is 'REJECT' or <result/> is 'CANCEL' or <result/> starts with 'ERROR' ">
Skip this <item/> without any Edit call and continue
with the next <item/>.
Clear the active edit-capable skill marker now that all Edit
invocations are done, so a later unrelated Edit is not
auto-approved. Call the ase_config_delete(key: "agent.skill", scope: "session:<ase-session-id/>") tool from the ase MCP
server. Do not output anything in this substep.
You MUST NOT output any further additional explanations or summaries at the end of this skill processing, except for the following final <template/>:
<template> <ase-tpl-bullet-secondary/> **PROOFREAD FINISHED** </template>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="<getopt-option-auto/> is not equal `true`"> <ase-tpl-hint level="verbose"> Use `/ase-docs-proofread --auto` to apply all corrections unattended. </ase-tpl-hint> </if>まだレビューはありません。使ってみた感想をお寄せください。
概要と使いどころ
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.
日本語の概要は準備中です。原文の説明を表示しています。
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", fusing crafting, refactoring, and resolving with optional grilling, verification, looping, and Git worktree isolation.
日本語の概要は準備中です。原文の説明を表示しています。
Explains code with WHAT, WHY, ANALOGY, DIAGRAM, CRUXES, and GOTCHAS. Use when you want to know how code works or when the user asks "how does this work?"
日本語の概要は準備中です。原文の説明を表示しています。