Install
$ agentstack add skill-rse-ase-ase-docs-proofread ✓ 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.
About
@${CLAUDESKILLDIR}/../../meta/ase-control.md @${CLAUDESKILLDIR}/../../meta/ase-skill.md @${CLAUDESKILLDIR}/../../meta/ase-dialog.md @${CLAUDESKILLDIR}/../../meta/ase-getopt.md
Analyze documents for spelling, punctuation, or grammar errors
$ARGUMENTS
Proofread the documents of `` for problems in their spelling, punctuation, or grammar and propose corrections.
First, use the following to give a hint on this step:
PROOFREADING INVESTIGATION
Dispatch the investigation to a sub-agent via the Agent tool so that no investigation details leak into the user-visible transcript. The sub-agent performs the silent reading and checking; only its final structured return value is consumed here.
For this, invoke exactly once the tool:
``text Agent( name: "ase-docs-proofread", description: "Proofread Investigation", subagent_type: "ase:ase-docs-proofread", mode: "plan", prompt: ) ``
Parse the single result message of the Agent tool as a JSON array and set to that list.
You MUST NOT output anything at all in this step 1 beyond the single Agent tool invocation.
Use the following to give a summary of the detected problems in :
PROOFREADING SUMMARY:
| Proofread Type | Proofread Result | | ---------------- | ----------------------- | | SPELLING: | ** problems found | | PUNCTUATION: | problems found | | GRAMMAR: | ** problems found |
Hints:
- is the number of problems with
typeequal toSPELLINGin - is the number of problems with
typeequal toPUNCTUATIONin - is the number of problems with
typeequal toGRAMMARin
- 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:") 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.
- Iterate over all problems:
">
- Set to the
typefield of .
Set to the file field of . Set to the line field of . Set to the description field of . Set to the context_before field of . Set to the old_text field of . Set to the new_text field of . Set to the context_after field of .
- Report the problem with the following :
PROBLEM: ``::
- is not 'true'">
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:
- one
-prefixed line for each line of
(if non-empty),
- one
--prefixed line for each line of
(if non-empty; split on newlines),
- one
+-prefixed line for each line of
(if non-empty; split on newlines),
- one
-prefixed line for each line of
(if non-empty).
Set to those prefixed lines joined by newlines.
Set to the number of old-side hunk lines, i.e., the combined line count of , , and (each empty part counts as 0). Set to the number of new-side hunk lines, i.e., the combined line count of , , and (each empty part counts as 0).
Set to the 1-based line number of the first old-side hunk line: if is non-empty, that is its line (one before ); otherwise it is itself (the first line of ). For a hunk that only inserts new lines (empty 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 to the same value as , but clamped to a minimum of 1 whenever 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 , emitting verbatim (one already-prefixed line per line, with no extra blank or space-only lines):
CORRECTION:
```diff --- (original) +++ (corrected) @@ -, +, @@
```
- is not 'true'">
In the following, you MUST NOT use your built-in tool! Instead, you MUST just show a custom dialog according to the expanded custom-dialog definition. You MUST closely follow this definition:
CORRECTION: How would you like to proceed with this proposed correction? ACCEPT: Apply the proposed correction. REJECT: Skip this proposed correction.
Set ACCEPT.
- Check and dispatch accordingly:
- is 'ACCEPT'">
Invoke the Edit tool to apply the change by replacing with at :. 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 .
- starts with 'OTHER'">
Generate a new proposal for the same , incorporating the user's free-text hint from after the "OTHER:" prefix. Reassign , , and to reflect this refined proposal ( stays anchored to the existing text at :; and carry the refinement) so the subsequent rendering and any Edit use the new proposal rather than the original. Then 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.
- is 'REJECT' or
is 'CANCEL' or starts with 'ERROR' ">
Skip this without any Edit call and continue with the next .
- 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:") 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 :
PROOFREAD FINISHED
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.