| name | editorial-review |
| description | Review a document for clarity, consistency, correctness, and tone |
Editorial Review
When to Use
Use this skill when tasked with reviewing documentation, reports, or any written deliverable for quality before it is shared or published.
Procedure
1. First Pass -- Read Without Changes
Read the entire document without making any changes. Note your overall impression:
DOC_FILE="${1:-/home/shared/document.md}"
cat "$DOC_FILE"
echo ""
echo "=== Document Stats ==="
wc -l "$DOC_FILE" | awk '{print "Lines:", $1}'
wc -w "$DOC_FILE" | awk '{print "Words:", $1}'
grep -c '^#' "$DOC_FILE" | xargs -I{} echo "Headings: {}"
grep -c '```' "$DOC_FILE" | awk '{print "Code blocks:", $1/2}'
grep -cE '^\|' "$DOC_FILE" | xargs -I{} echo "Table rows: {}"
After reading, answer these questions before proceeding:
- What is the document's purpose?
- Who is the intended audience?
- Does the structure make sense for that purpose?
2. Second Pass -- Detailed Review
Check each of these dimensions:
Clarity
- Can each sentence be understood on first reading?
- Are technical terms defined on first use?
- Are there ambiguous pronouns ("it", "this", "that") without clear antecedents?
- Are instructions specific enough to follow without guessing?
awk 'length > 120 && !/^[|#`]/' "$DOC_FILE" | head -10
echo "(Sentences over 120 chars may need splitting)"
grep -oE '\b[A-Z]{2,6}\b' "$DOC_FILE" | sort -u | while read acr; do
FIRST=$(grep -n "\b$acr\b" "$DOC_FILE" | head -1 | cut -d: -f1)
DEFINED=$(grep -n "$acr (" "$DOC_FILE" | head -1 | cut -d: -f1)
if [ -z "$DEFINED" ] && [ "$(echo "$acr" | wc -c)" -gt 3 ]; then
echo "Acronym $acr first used on line $FIRST — not defined"
fi
done
Consistency
- Are terms used consistently (not "config" in one place and "configuration" in another)?
- Are formatting conventions consistent (heading levels, code block style, list style)?
- Are command examples consistent with the project's actual commands?
for pair in "config:configuration" "dir:directory" "repo:repository" "env:environment" "arg:argument"; do
SHORT=$(echo "$pair" | cut -d: -f1)
LONG=$(echo "$pair" | cut -d: -f2)
S_COUNT=$(grep -ci "\b${SHORT}\b" "$DOC_FILE" 2>/dev/null)
L_COUNT=$(grep -ci "\b${LONG}\b" "$DOC_FILE" 2>/dev/null)
if [ "$S_COUNT" -gt 0 ] && [ "$L_COUNT" -gt 0 ]; then
echo "Inconsistent: '$SHORT' ($S_COUNT) vs '$LONG' ($L_COUNT) — pick one"
fi
done
grep '^#' "$DOC_FILE" | awk '{print length($1), $0}' | head -20
echo "(Verify heading levels are sequential — no jumps from ## to ####)"
Correctness
- Are facts accurate?
- Do code examples work?
- Are file paths, command names, and flag names correct?
- Do cross-references point to things that exist?
grep -oE '`[~/][a-zA-Z0-9_./-]+`' "$DOC_FILE" | tr -d '`' | while read path; do
expanded=$(eval echo "$path" 2>/dev/null)
[ -e "$expanded" ] && echo "OK: $path" || echo "MISSING: $path"
done
grep -oE '`(bash|node|python3|npm|jq|curl) [^`]+`' "$DOC_FILE" | tr -d '`' | while read cmd; do
BINARY=$(echo "$cmd" | awk '{print $1}')
which "$BINARY" >/dev/null 2>&1 && echo "OK: $BINARY" || echo "MISSING: $BINARY"
done
Completeness
- Are there gaps where a reader would be stuck?
- Does every "how" have a "why"?
- Are error cases and edge cases documented?
- Is there a troubleshooting section for likely problems?
Tone
- Is the tone appropriate for the audience?
- Is it consistent throughout (not formal in intro and casual in body)?
- Does it avoid condescension ("simply", "just", "obviously")?
grep -niE '\b(simply|just|obviously|clearly|trivially|of course|easy|easily)\b' "$DOC_FILE" \
| head -10
echo "(Consider removing these — they imply the reader should find it obvious)"
3. Produce Review Notes
For each issue found, format as:
### Issue [N]: [Category]
- **Location:** Line [N] / Section "[heading]"
- **Current:** "[quoted text as it appears]"
- **Suggested:** "[replacement text]"
- **Reason:** [why this change improves the document]
4. Write the Review
REVIEW_FILE="/home/shared/review-$(date +%Y%m%d)-$(basename "$DOC_FILE" .md).md"
cat > "$REVIEW_FILE" <<'EOF'
**Document:** [document name]
**Reviewer:** [agent name]
**Date:** YYYY-MM-DD
[2-3 sentences: is this document ready to publish? What is its biggest strength? What needs the most work?]
| Category | Issues Found |
|----------|-------------|
| Clarity | N |
| Consistency | N |
| Correctness | N |
| Completeness | N |
| Tone | N |
- **Location:** ...
- **Current:** "..."
- **Suggested:** "..."
- **Reason:** ...
- [Something the document does well — preserve the author's voice]
- [Another strength]
EOF
# Register as artifact
bash /home/shared/scripts/artifact.sh register \
--name "review-$(basename "$DOC_FILE" .md)" \
--type "review" \
--path "$REVIEW_FILE" \
--description "Editorial review of $(basename "$DOC_FILE")"
Quality Checklist