copyedit
Run humanize → tighten → readability → flow → flavor → codex → sharpen in a loop until convergence. The mechanical pass before line editing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run humanize → tighten → readability → flow → flavor → codex → sharpen in a loop until convergence. The mechanical pass before line editing.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Filter recent Hacker News for live threads on June's topics and hand him the list. Separately, flag the rare subset where work he has already done settles a specific quoted claim, and draft that comment as a plain argument with no link to his own writing. Use when June asks to check HN or find threads worth reading or commenting on.
Scan blog posts for AI writing tics and missed opportunities for human voice. Reports subtractions (AI patterns to remove) and additions (wordplay, arc, and claims to strengthen).
Poll June's Hacker News feeds, report what is new since the last run, and idempotently arm a background watch for replies to his comments. State persists in ~/Documents/sweep/ so it survives across sessions. Use when June asks what is new on HN, whether anyone replied, or to start watching a thread.
Argument-level compression by a strengthened absence test (does the argument stand with the same force, clarity, evidence, scope, pacing, and misreading-resistance?). Removes passages that fail it (self-referential cruft, cross-section restatement, self-recap, re-derivation, scaffolding, expired reader-orientation, stakes inflation, inert hedges, redundant examples); grafts good rhetoric onto an adjacent essential point rather than deleting. Idempotent. The structural cousin of /tighten (word-level) and /not-but (negation).
Audit a technical candidate's resume/CV by verifying its claims against the public contribution graph instead of taking the text at face value. Sorts every claim onto the self/peer/world attestation lattice, applies a cost-and-stake filter so cheap proxies (stars, downloads, backlinks) don't count, runs LIVE checks (GitHub, arXiv, package registries, CVEs), and reports two separate axes — merit (staked acceptance of the candidate's specific work) and attention (timestamped output) — plus a verifiability score in [0,1]. For technical recruiters and hiring managers. Invoke when given a candidate — a GitHub handle, a resume/CV, an arXiv author, a personal site — and asked to verify, audit, vet, or check their claims. Runs at two depths — a quick triage scan or a deep per-claim audit — and elicits which. Checks the provenance of a personal site or self-hosted resume (Internet Archive + git history) as an un-backdatable anti-tailoring anchor. Needs tool access (Bash/curl or WebFetch).
Find and defuse "not X but Y" / "isn't X; it's Y" / "X — not Y" constructions. Deterministic grep for detection (no LLM blind spot), the not-but subagent for triage. Split-or-cut tail negations ("X, not Y") aggressively — promote the point to its own sentence or delete it; recast in place only mid-clause "not X but Y" that genuinely can't be split; keep just the rare iconic thesis line literal.
| name | copyedit |
| description | Run humanize → tighten → readability → flow → flavor → codex → sharpen in a loop until convergence. The mechanical pass before line editing. |
| argument-hint | <file_path> [--script] |
| allowed-tools | Read, Edit, Grep, Glob, Bash, Skill, WebSearch, WebFetch, Agent |
Two modes, same pipeline (humanize → tighten → readability → flow → flavor → codex → sharpen). The user picks.
| Mode | Invocation | Shape | When |
|---|---|---|---|
| Inline (default) | /copyedit <file> | Orchestrator runs each step itself by launching one subagent per step, applying fixes between steps, and reporting each step's deltas to the user in real time. | The user wants to watch the pipeline and intervene per step. Good for new posts where surprises matter. |
| Scripted | /copyedit <file> --script | Orchestrator launches one subagent per round that runs all seven steps end-to-end and edits in place. Convergence decided by diff -q against the round's snapshot. Zero diff = converged. | The user trusts the pipeline and wants the deltas not the play-by-play. Good for late-stage drafts and re-runs. |
Both modes share the same step definitions and the same monoidal contract. Default to inline if the flag is absent.
codex exec, default model). If rate-limited, skip with a note. Apply feedback you agree with directly. Bunch ambiguous reservations for the user.The orchestrator reports each step's deltas to the user as it goes. The user can interject at any step.
--script)Set up snapshot dir. Make a per-run temp dir: SNAPDIR=$(mktemp -d -t copyedit.XXXXXX). Snapshots live in $SNAPDIR/r{N}.md, NEVER next to the source file. The source-file directory stays clean (no .copyedit-r*.md siblings polluting _drafts/ or src/content/blog/).
Snapshot r0. Copy the source file to $SNAPDIR/r0.md. Note word count.
Launch round-N subagent. One opus subagent runs the full six-step pipeline end-to-end on the source file, edits in place, and returns. The subagent does not loop and does not decide convergence.
Diff. Run diff -q $SNAPDIR/r{N-1}.md <source-file>. Exit 0 = converged. Exit 1 = the round produced changes.
Snapshot. If non-zero diff, copy current source file to $SNAPDIR/r{N}.md, increment N, go to step 3.
Hard cap at 5 rounds. If round 5 still produces non-zero diff, flag oscillation and stop. The pipeline is not a fix for structural issues; surface the snapshot dir for the user to inspect.
Final report. Word count delta from r0 to final. Number of rounds. The $SNAPDIR path so the user can diff any pair or delete the dir when they're done. Bunched reservations from each round's codex step.
Verbatim prompt the orchestrator gives the subagent, with <FILE_PATH> filled in:
Run the copyedit pipeline once on
<FILE_PATH>. Seven steps, serial, edit in place. Do not loop; the orchestrator handles convergence based on diff.
- Humanize. Apply
/Users/junekim/.claude/skills/humanize/SKILL.mdpatterns. Em-dash budget is 0 in prose (reference-list separators OK). Apply all mechanical fixes directly.- Tighten. Apply
/Users/junekim/.claude/skills/tighten/SKILL.md. "A bit" damping: don't over-compress.- Readability. Apply
/Users/junekim/.claude/skills/readability/SKILL.md. Document shape: titles, emoji H1s, paragraph/section sizing, bold/italic, opening orientation. Damped — once it lands, it settles.- Flow. Apply
/Users/junekim/.claude/skills/flow/SKILL.md. Sentence-level, reorder-only: prosody, between-sentence cohesion (the known-new contract), active verbs. Uncapped — read aloud and walk the seams.- Flavor. Apply
/Users/junekim/.claude/skills/flavor/skill.md. Web-search for canonical URLs and apply hyperlinks inline.- Codex review. Send the current file to codex (
codex exec "...", default model). If codex is rate-limited, skip and note. Apply feedback directly. Bunch judgment-call reservations.- Sharpen. Apply
/Users/junekim/.claude/skills/sharpen/skill.md. Narrow-preserving invariant.Pass-through (don't touch): front matter, code blocks, markdown tables, SVG/img tags, reference lists at the bottom of the post.
Return a terse summary: word count delta, what was substantively changed at each step, any reservations bunched. Do not decide whether to loop.
step(step(x)) == step(x) after ~2 passes. Convergence in 1-2 rounds is normal; 3+ means structural issues.Snapshots live in a temp dir under $TMPDIR (e.g. /var/folders/.../copyedit.XXXXXX/ on macOS). The OS reaps them eventually. Report the path in the final summary so the user can diff any pair or rm -rf the dir when done. Don't write snapshots next to the source file — that pollutes content directories and Astro/Jekyll/etc. content collections.
Inline lets the user watch the pipeline run, intervening per step when something surprising surfaces. Good for new posts where the deltas are interesting in themselves.
Scripted hides the play-by-play and decides convergence by objective diff. Good for late-stage drafts where the user wants to know "did it change anything, and what" without watching each subagent's report scroll by. The user also gets per-round snapshots as an audit trail; they can diff any pair after the fact to see what each round did.
Both modes share the same step definitions and the same monoidal contract. The difference is who decides convergence: in inline, the orchestrator decides via humanize's introspection after step 7; in scripted, the orchestrator decides by diff against a snapshot.