Agent skill

Canvas Humanizer Surgical

by X-isdoingreat in X-isdoingreat/canvas-pilot

Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose.

AGPL-3.0Auto-check: notesWriting & Content

Install Canvas Humanizer Surgical

skills CLI
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-humanizer-surgical -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install X-isdoingreat/canvas-pilot canvas-humanizer-surgical --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/canvas-humanizer-surgical .claude/skills/canvas-humanizer-surgical && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
canvas-humanizer-surgical
GitHub stars
125
Token cost
~7.2k tokens
SKILL.md length
2,493 words
Files
1
Skills in repo
32
Repo updated
First seen
Licence
AGPL-3.0

At a glance

Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose.

  • Works in 4 steps: satisfies_fix_goal (LLM-judge binary,… → structural_rubric_pass (deterministic) → meaning_preserved (LLM-judge binary) → …
  • Tasks that involve Humanizing AI text
  • SKILL.md covers §1 — Identity & contract…, §2 — Why surgical v3…, §3 — Pipeline overview… and §4 — Stage A: audit (role…, plus 9 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Canvas Humanizer Surgical is an agent skill from X-isdoingreat/canvas-pilot. Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose. v3 design uses per-position-differentiated ESL register — gate-sensitive positions (introopener / TS / quote integration / conclusionthesisrestate) use P-esl-register-clean (ESL syntax/phrasing but clean grammar to protect the academic-writing R9 rubric), body positions (elaboration / anecdote) use P-esl-chinese-full (full ESL with visible article omission + SVA slip markers for true…

Its SKILL.md is about 7.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Writing & Content, covering Humanizing AI text. It works with Microsoft Word. The repository describes itself as: Local-first Canvas LMS AI agent that learns each course's recurring assignment workflow and reuses it through scan - approval - execute with student review. The licence is AGPL-3.0.

When your agent uses it

  • Tasks that involve Humanizing AI text

Example prompts

  • “/canvas-humanizer-surgical”

Requirements

  • Python 3
  • Pre-approved tools (allowed-tools): Bash, Read, Write, Edit, Grep, Agent

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. satisfies_fix_goal (LLM-judge binary, with NICE_TO_FIX relaxation): does candidate address {fix_directive}? For NICE_TO_FIX: "improvement…
  2. structural_rubric_pass (deterministic)
  3. meaning_preserved (LLM-judge binary)
  4. locks_intact (deterministic — check [LOCK_N] count + position post-substitute)

What it can do on your machine

Read from SKILL.md and the folder at commit 6b79d5b. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash
    • Read
    • Write
    • Edit
    • Grep
    • Agent

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are python, json and yaml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Canvas Humanizer Surgical loads about 7.2k tokens when it runs. Until then it costs about 237 tokens; SKILL.md has 2,493 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~237
When it runs · the whole SKILL.md, loaded when a task matches
~7.2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
    allowed-tools: Bash, Read, Write, Edit, Grep, Agent

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from X-isdoingreat/canvas-pilot at commit 6b79d5b, republished under its AGPL-3.0 licence (© X-isdoingreat). 2,493 words, ~7,245 tokens.

Download SKILL.mdSave it as .claude/skills/canvas-humanizer-surgical/SKILL.md (or your agent's skills folder).
name
canvas-humanizer-surgical
description
Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose. v3 design uses per-position-differentiated ESL register — gate-sensitive positions (intro_opener / TS / quote integration / conclusion_thesis_restate) use P-esl-register-clean (ESL syntax/phrasing but clean grammar to protect the academic-writing R9 rubric), body positions (elaboration / anecdote) use P-esl-chinese-full (full ESL with visible article omission + SVA slip markers for true distribution escape). Fix scope expanded from MUST_FIX-only to MUST_FIX + body SHOULD_FIX so the body ESL strategies actually have segments to fire on (v1 surgical failed because all MUST_FIX were in gate-sensitive roles, leaving ESL with no targets). 3-layer nested orchestration. Invoked after canvas-humanizer when AI-detection score is acceptable but residual rubric / grammar / fluency issues exist.
allowed-tools
Bash, Read, Write, Edit, Grep, Agent

canvas-humanizer-surgical v3 — per-position differentiated ESL

§1 — Identity & contract (caller-facing)

Inputs (parsed from caller's prose context line):

ArgRequiredDefault / fallbackExample
draft_pathyes—path to already-humanized .docx (output of canvas-humanizer v2)
output_pathyes—path for surgical-fixed .docx
voice_registeryes—advanced-academic-english (informs the academic-minimal backup; ESL strategies override per-position)
audit_pathnoomits → skill runs internal auditpath to pre-derived audit JSON (with per-sentence issues + roles + fix_goals)
pre_humanize_pathnoomits → skip "what humanizer broke vs preexisting" comparisonpath to pre-v2 baseline
hard_locksnoemptylist of additional verbatim-preserve spans
include_should_fixnotruewhether to include SHOULD_FIX in body roles (default true, key to letting body ESL fire)
include_nice_to_fixnofalsewhether to include NICE_TO_FIX in body roles

Outputs:

  • output_path — surgical-fixed .docx
  • <output_dir>/surgical_log.json — full execution trace

Status return:

  • ok — every MUST_FIX issue addressed AND all Stage E doc-level gates PASS
  • partial — ≥1 MUST_FIX fell back to current_humanized OR a doc gate WARNs
  • error — input validation failure

§2 — Why surgical v3 (per-position differentiation)

v1 surgical failure (per-role gating + ESL fallback) regressed Grammarly AI score 28% → 48%. Root cause: 15 MUST_FIX issues all in gate-sensitive role (intro_opener / TS / quote integration / conclusion_thesis_restate); ESL was gated off there; P-academic restoration pulled prose back to LLM-training-distribution center.

v2 design rejected ("ESL primary everywhere"): would put visible grammar errors in rubric-graded positions. An academic-writing instructor's grading sample observed during calibration: Draft 1 (57 grammar errors) → 68/100; Draft 2 (clean) → 83/100. ESL with SVA slip + article omission in intro_opener / TS / conclusion thesis restate = R9 deduction in the most-graded positions.

v3 (this skill): differentiate by position type.

Position typeStrategyGrammar
Gate-sensitive (intro_opener / TS / quote integration / conclusion thesis restate / conclusion structural)P-esl-register-cleanClean (no SVA slip, no article omission)
Body (body_elaboration / body_anecdote / conclusion_closing)P-esl-chinese-fullVisible ESL markers (this is the point)

Plus: expand fix scope from MUST_FIX-only to MUST_FIX + body SHOULD_FIX so body ESL has segments to fire on (v1's body roles had 0 MUST_FIX and were left untouched).

Honest framing: ESL register strategies as distribution escape are tested for the first time here. P-esl-register-clean (gate positions) is hypothesis — syntax-only ESL may not move detector signal enough without grammar markers. P-esl-chinese-full (body positions) is the higher-confidence lever because grammar-error patterns are truly outside LLM training distribution. Expected Grammarly delta: 28% → 18-25% (still a hypothesis; v1 surgical's reality was 28% → 48% which proves clean academic restoration hurts).


§3 — Pipeline overview (3-layer nested)

Level 1: doc orchestrator
  ├─ Stage A: load audit data (per-sentence issues + roles)
  ├─ Stage B: build expanded fix queue (MUST_FIX all + body SHOULD_FIX)
  ├─ Stage C: cluster by paragraph; spawn workers in parallel
  ├─ Stage D: reassemble
  └─ Stage E: doc-level verify (R8 4-variant regex / R2 markers / quote count / word count / locks / R9 grammar tally)

Level 2: paragraph worker (one per paragraph, parallel)
  ├─ Receive paragraph + fix_goals + roles
  ├─ Spawn segment workers parallel
  └─ Assemble paragraph

Level 3: segment surgical worker (parallel within paragraph)
  ├─ Determine role → primary strategy + backup per §S2 of plan
  ├─ Generate K candidates per §6 (K varies by severity × role)
  ├─ Score per §7
  ├─ Pick winner (primary preferred)
  └─ Fallback chain: primary → backup → P-academic-minimal → current_humanized

Concurrency: 25 fix ops × K2.5 avg × 3 LLM calls each ≈ ~190 calls. Parallel candidate dispatch collapses wallclock to 5-15 min.


§4 — Stage A: audit (role tagging + issue detection)

Skip if caller passed audit_path to a pre-derived audit JSON. Default: load runs/2026-05-22/_humanizer_v2_smoketest/residual_issues_audit.json (derived from earlier v2 humanized essay).

When running fresh, spawn 1 audit agent per v2 SKILL.md §4 (with role taxonomy below + low-confidence fallback).

§4a — Role taxonomy (10 roles, position-typed)

Gate-sensitive (use P-esl-register-clean):

  • intro_opener — sentence 1 of intro; R8 strict (pub info + author + title + date)
  • intro_thesis — last sentence of intro; R2 thesis statement
  • intro_setup — middle sentences of intro
  • body_TS — first sentence of body paragraph; R2 + instructor mandate (judgment statement in writer's words)
  • body_quote_lead_in — sentence immediately preceding a quoted span
  • body_quote_follow_up — sentence immediately after quoted span; explains the quote
  • conclusion_thesis_restate — first sentence of conclusion; R2 thesis restatement
  • conclusion_structural — conclusion sentences referencing source data / policy lever

Body (use P-esl-chinese-full):

  • body_elaboration — body sentences developing argument
  • body_anecdote — personal experience (cousin / friends / Chinese intuition sentences)
  • conclusion_closing — final sentence(s)

Locked (never touched):

  • body_quoted_sentence — sentence containing verbatim [Author A] quote
§4b — Role classification prompt

Same shape as v2 humanizer §4b (worked examples + low-confidence fallback). When confidence < 0.70, default to most restrictive role (treat ambiguous body_elaboration as body_TS) — prevents ESL-chinese-full from accidentally firing in gate-sensitive positions.

§4c — Issue dimensions (per v2 humanizer §4c)

D1 rubric_violation, D2 grammar_tortured, D3 unnatural_syntax, D4 voice_register_drift, D5 new_AI_tell_introduced, D6 meaning_distortion, D7 lock_or_credential_loss. Severity ∈ {MUST_FIX, SHOULD_FIX, NICE_TO_FIX}.


§5 — Stage B + C + D: paragraph worker dispatch

§5a — Build fix queue
python
fix_queue = []
for fix_goal in audit["prioritized_fix_goals"]:
    role = audit["per_sentence"][fix_goal["target_seg_id"]]["role"]
    severity = fix_goal["severity"]
    if severity == "MUST_FIX":
        fix_queue.append(fix_goal)
    elif severity == "SHOULD_FIX" and role in BODY_ROLES:
        if include_should_fix:
            fix_queue.append(fix_goal)
    elif severity == "NICE_TO_FIX" and role in BODY_ROLES:
        if include_nice_to_fix:
            fix_queue.append(fix_goal)
    # SHOULD_FIX / NICE_TO_FIX in gate roles → skip (don't risk breaking R8/R2 for non-critical fix)

BODY_ROLES = {"body_elaboration", "body_anecdote", "conclusion_closing"}.

§5b — Doc-level budget envelope
python
doc_budget = {
    "esl_marker_per_para_target": {"body": 5, "gate_segment": 1},  # body para 3-5 markers; gate segments 0-1
    "esl_marker_per_para_warn": {"body": 8, "gate_segment": 2},    # warn thresholds
    "word_count_band": (550, 650),
}
§5c — Spawn paragraph workers in parallel

Standard pattern (same as v1 surgical §5c).


§6 — Stage Level-3: per-segment K-candidate generation

For each fix_goal, segment worker determines role → strategy assignment → K candidates.

§6a — Strategy assignment matrix
RolePrimaryBackupK (MUST_FIX)K (SHOULD_FIX)K (NICE_TO_FIX)
intro_openerP-esl-register-cleanP-academic-minimal3 (2+1)——
intro_thesisP-esl-register-cleanP-academic-minimal3——
intro_setupP-esl-register-cleanP-academic-minimal3——
body_TSP-esl-register-cleanP-academic-minimal3——
body_quote_lead_inP-esl-register-cleanP-academic-minimal3——
body_quote_follow_upP-esl-register-cleanP-academic-minimal3——
body_elaborationP-esl-chinese-fullP-esl-register-clean3 (2+1)2 (1+1)1 (1+0)
body_anecdoteP-esl-chinese-fullP-esl-register-clean321
conclusion_thesis_restateP-esl-register-cleanP-academic-minimal3——
conclusion_structuralP-esl-register-cleanP-academic-minimal3——
conclusion_closingP-esl-chinese-full (mild)P-esl-register-clean321

K = (primary count + backup count). E.g. K=3 for MUST_FIX body = 2 × P-esl-chinese-full + 1 × P-esl-register-clean.

§6b — Strategy P-esl-register-clean (gate positions)

Task: rewrite this sentence to fix {fix_directive}. Use Chinese-student ESL register but with CLEAN grammar (no agreement errors, no missing articles).

Apply 2-3 of these ESL syntax/phrasing markers (do NOT introduce grammar errors):

  • Native-prep choice ESL: "on [Publication]" instead of "in [Publication]"; "on Etsy" / "on YouTube" stay native (these are platform names, not registers)
  • Direct-translation idiom: "as I see" (从我看来) instead of "in my view"; "more and more" (越来越) instead of "increasingly"; "comes from" (来自) for causation
  • Topic-prominent syntax: "About X, ..." or "As for Y, ..." sentence opener
  • Simpler tense: drop past perfect / future perfect where simple past / future suffices ("had been breaking" → "was breaking")
  • Genitive-fronted possessive: "[Author A]'s article" instead of "[Author A]'s article in/of/by"
  • Soft connective: "But" / "And" sentence-initial instead of "However" / "Moreover"

STRICT prohibitions (these are R9 grammar fails — never apply at gate positions):

  • NO subject-verb agreement slip ("[Author A] argue" / "data show" where native is "[Author A] argues" / "data shows") — KEEP correct agreement
  • NO article omission ("the diagnosis" must stay "the diagnosis")
  • NO dropped auxiliary ("she writing" instead of "she is writing")

Constraints:

  • Preserve every [LOCK_N] placeholder byte-for-byte.
  • Word count within ±20% of original (sliding band per §6h of v2 humanizer).
  • Preserve meaning faithfully.

Original (already humanized): {current_humanized_segment} Issue to fix: {fix_directive} Role: {role} (gate-sensitive — clean grammar required)

Output ONLY the rewritten sentence, no preamble.

§6c — Strategy P-esl-chinese-full (body positions)

Task: rewrite this sentence to fix {fix_directive}. Use Chinese-student ESL register WITH visible grammar markers.

Apply 2-3 of these patterns:

  • Article omission: drop "the" or "a" 1-2 times per sentence ("the diagnosis" → "diagnosis"; "a classmate" → "one classmate")
  • Subject-verb agreement slip: bare-stem 3rd-person singular verb 1 per 50 words ("[Author A] argues" → "[Author A] argue"; "the data show" — actually this is sometimes correct; pick clear cases)
  • Direct-translation idiom: "as I see" / "more and more" / "from one side ... from other side"
  • Topic-prominent syntax: "About X, ..."
  • Simpler tense: drop past perfect
  • Native-prep choice ESL: "on [Publication]"
  • Chinese emphatic: "they two both step" (中式 "他们两个都")
  • Dropped auxiliary: "she writing" / "they not offering" (use sparingly — only when adjacent context supports)

Cap: max 3 marker types per sentence. Errors must look like authentic Chinese-English ESL, NOT broken-text caricature. Reader must still understand the sentence.

Constraints:

  • Preserve every [LOCK_N] placeholder byte-for-byte. Article omission must NOT drop the article preceding [LOCK_N] placeholder.
  • Word count within ±20% of original.
  • Preserve meaning faithfully.

Original (already humanized): {current_humanized_segment} Issue to fix: {fix_directive} Role: {role} (body — ESL markers allowed)

Output ONLY the rewritten sentence, no preamble.

§6d — Strategy P-academic-minimal (backup)

Same as v1 surgical §6b — minimal lexical sub + adjacent-clause swap in academic register, no structural transformation.

§6e — Lock substitution + word-count gate (sliding tolerance)

Same as v2 humanizer §4d + §6h.


§7 — Scoring + selection

§7a — Gate evaluation (LLM-judge + deterministic)

For each candidate, evaluate:

  1. satisfies_fix_goal (LLM-judge binary, with NICE_TO_FIX relaxation): does candidate address {fix_directive}? For NICE_TO_FIX: "improvement is sufficient, perfect fix not required."
  2. structural_rubric_pass (deterministic):
    • If role is intro_opener: R8 opener regex matches first sentence (4-variant alternation per §S5 of plan)
    • If role is body_TS: contains R2 TS marker (convincingly argues / I agree / could have strengthened / etc.)
    • If role is conclusion_thesis_restate: contains thesis-restate language
  3. meaning_preserved (LLM-judge binary)
  4. locks_intact (deterministic — check [LOCK_N] count + position post-substitute)
§7b — Levenshtein divergence

Same as v1 surgical §7c.

§7c — Final score
python
def candidate_score(c) -> float:
    if not c["meaning_preserved"]: return -1
    if not c["satisfies_fix_goal"]: return -1
    if not c["structural_rubric_pass"]: return -1
    if not c["locks_intact"]: return -1
    return -c["divergence"]  # negate so max(score) = min divergence

Pick argmax. Primary-strategy candidates get tiebreak preference when multiple candidates have score within 0.05 of each other.

§7d — Fallback chain (per §S6 of plan)
primary candidate(s) pass gates? → pick min divergence among them
else: backup candidate(s) pass gates? → pick min divergence among them
else: spawn 1 × P-academic-minimal as last-resort → if passes, use
else: fall back to current_humanized (mark fallback_to_humanized: true, log in surgical_log)

§8 — Doc-level verify (Stage E)

Six checks, plus informational R9 grammar tally:

  1. R8 opener regex (4-variant alternation from plan §S5):
python
R8_OPENER_PATTERNS = [
    # Standard MLA: In "Title" (Publication, Date), Author ...
    r'^In\s+["“][^"”]+["”]\s*\([^)]+,\s*\d+\s+\w+\s+\d{4}\)\s*,\s*[A-Z][\w\.]+',
    # ESL variant 1: In article "Title" on Publication, Date, Author ...
    r'^In\s+article\s+["“][^"”]+["”]\s+on\s+[A-Z][\w\s]+,\s*\d+\s+\w+\s+\d{4}\s*,\s*[A-Z][\w\.]+',
    # ESL variant 2: In Author's article "Title" on Publication (Date), ...
    r'^In\s+[A-Z][\w\.]+\'s\s+article\s+["“][^"”]+["”]\s+on\s+[A-Z][\w\s]+\s*\(',
    # American date order: In "Title" (Pub, Month Day, Year), Author ...
    r'^In\s+["“][^"”]+["”]\s*\([^)]+,\s*\w+\s+\d+,\s*\d{4}\)\s*,\s*[A-Z][\w\.]+',
]
intro_first_sentence = split_sentences(intro_text)[0]
r8_pass = any(re.match(p, intro_first_sentence) for p in R8_OPENER_PATTERNS)
  1. R2 body TS markers (each body paragraph's first sentence contains a TS marker):
python
BODY_TS_MARKERS = [
    r'\bconvincingly\s+argues?\b', r'\bI\s+agree\b', r'\bcould\s+have\s+strengthened\b',
    r'\bone\s+idea\s+I\s+find\b', r'\bI\s+find\b', r'\b[Author A]\s+fails?\b',
]
  1. R2 conclusion thesis restatement (first conclusion sentence has restate language):
python
CONC_RESTATE_MARKERS = [
    r'\bargument\s+(?:is|holds?)\s+strongest', r'\bdefensible\s+version',
    r'\bstructural\s+diagnosis', r'\b[Author A].{0,30}(?:argue|claim|case|argument)',
]
  1. R8 quote count: intro 0, body 1 each, conclusion 0.

  2. R9 word count band: total in [550, 650].

  3. Locks: 17/17 byte-for-byte present.

R9 grammar tally (informational): count visible ESL markers per paragraph. Body 3-5 markers/para target; if > 8 → WARN. Gate segments 0-1 markers; if > 2 → WARN. Log to surgical_log.json regardless.

If any gate WARNs (not FAILs) → status=partial. Caller decides re-invoke vs accept.


§9 — Atomic single pass; caller iterates

Same design as v1 surgical §9 + v2 humanizer §9. Skill is one atomic pass. Caller decides re-invoke based on Grammarly score + human read of grammar marker density.


§10 — Write artifacts

surgical_log.json (extends v1 surgical schema)
json
{
  "version": 3,
  "draft_path": "...",
  "output_path": "...",
  "config": {
    "include_should_fix": true,
    "include_nice_to_fix": false,
    "strategies": ["P-esl-register-clean", "P-esl-chinese-full", "P-academic-minimal"],
    "fix_queue_size": 25
  },
  "audit": {
    "total_sentences": 23,
    "fix_queue_breakdown": {
      "MUST_FIX_gate": 8,
      "MUST_FIX_body": 0,
      "SHOULD_FIX_body": 10,
      "NICE_TO_FIX_body": 0
    },
    "role_distribution": {...}
  },
  "doc_level_gates": {
    "R8_opener_regex_4_variant": "PASS|FAIL",
    "R2_body_TS_markers": "PASS|FAIL",
    "R2_conclusion_restate": "PASS|FAIL",
    "R8_quote_count": "PASS|FAIL",
    "R9_word_count": "PASS|FAIL (N)",
    "locks_intact": "PASS|FAIL (17/17)",
    "R9_grammar_tally": {"body_per_para": [4, 5, 3], "gate_segments": [0, 1, 0, 0, 2], "warnings": []}
  },
  "status": "ok|partial|error",
  "fallback_segments": <int>,
  "segments_modified": <int>,
  "strategy_usage": {"P-esl-register-clean": <int>, "P-esl-chinese-full": <int>, "P-academic-minimal": <int>},
  "total_llm_calls": <int>,
  "wallclock_seconds": <float>,
  "segments": [...]
}

§11 — Token budget + cross-layer coordination

Inherit from v1 surgical §11. Parallel candidate dispatch within segment; sequential per paragraph (level 2); parallel paragraphs (level 1).


Show full SKILL.md (996 more words)Show less

§12 — Return summary

canvas-humanizer-surgical v3 complete. status: <ok|partial|error>. <N> segments modified across <P> paragraphs. <F> segments fell back to current humanized. Strategy usage: P-esl-register-clean <a>, P-esl-chinese-full <b>, P-academic-minimal <c>. Doc gates: R8 <pass/fail>, R2 body TS <pass/fail>, R2 conclusion <pass/fail>, quote count <pass/fail>, word count <N>, locks 17/17. R9 grammar tally: body <[4,5,3] avg X>/para; gate segments <Y> markers. Log: <path>. Output: <path>.


§13 — Overlay

Read _private/canvas-humanizer-surgical-app.md if exists. Inline defaults:

yaml
# Fix scope
include_should_fix: true            # KEY change vs v1 surgical — lets body ESL fire
include_nice_to_fix: false

# Per-role strategy assignment (replaces v1 surgical's per-role gating matrix)
role_strategy_assignment:
  intro_opener:               {primary: P-esl-register-clean, backup: P-academic-minimal}
  intro_thesis:               {primary: P-esl-register-clean, backup: P-academic-minimal}
  intro_setup:                {primary: P-esl-register-clean, backup: P-academic-minimal}
  body_TS:                    {primary: P-esl-register-clean, backup: P-academic-minimal}
  body_quote_lead_in:         {primary: P-esl-register-clean, backup: P-academic-minimal}
  body_quote_follow_up:       {primary: P-esl-register-clean, backup: P-academic-minimal}
  body_elaboration:           {primary: P-esl-chinese-full, backup: P-esl-register-clean}
  body_anecdote:              {primary: P-esl-chinese-full, backup: P-esl-register-clean}
  conclusion_thesis_restate:  {primary: P-esl-register-clean, backup: P-academic-minimal}
  conclusion_structural:      {primary: P-esl-register-clean, backup: P-academic-minimal}
  conclusion_closing:         {primary: P-esl-chinese-full-mild, backup: P-esl-register-clean}

# K candidates per (severity × role-type)
K_must_fix_gate: 3              # 2 primary + 1 backup
K_must_fix_body: 3              # 2 primary + 1 backup
K_should_fix_body: 2            # 1 primary + 1 backup
K_nice_to_fix_body: 1           # 1 primary only

# R9 grammar tally thresholds (informational warnings)
r9_body_marker_warn_threshold: 8        # body para > 8 markers = WARN
r9_gate_marker_warn_threshold: 2        # gate segment > 2 markers = WARN

# Word-count sliding tolerance (inherited from v2 humanizer)
word_count_tolerance_short: 0.40
word_count_tolerance_medium: 0.30
word_count_tolerance_long: 0.20

# Parallelism
parallel_candidate_dispatch: true
parallel_segment_dispatch: true
parallel_paragraph_dispatch: true

# Detector metadata (skill is atomic; caller iterates)
detector_api: manual
detector_target: 22

# Banned phrases (post-surgical sanity)
banned_words_post_surgical:
  - Moreover
  - Furthermore
  - In conclusion
  - In summary
  - It's worth noting
  - It is important to note
  - delve
  - leverage
  - multifaceted
  - plethora
  - paradigm
  - In today's world

hard_locks: []

§14 — Worked example: 3 named MUST_FIX from v2 + 2 body SHOULD_FIX

FG1 — intro_opener (P-esl-register-clean, MUST_FIX, K=3)

v2 text (P5_S0, role=intro_opener):

"Employer concentration, paired with noncompete agreements, has narrowed the channels through which workers move between firms; this four-decade structural shift, [Author A] argues in '[Article Title]' ([Publication], 22 April 2026), explains the bleak entry-level job market facing young Americans."

Fix goal: restructure to begin with full pub info per R8.

Allowed strategies: P-esl-register-clean (primary), P-academic-minimal (backup).

K=3 candidates:

kStrategyOutputGrammarR8 regexScore
0P-esl-register-clean"In [Author A]'s article '[Article Title]' on [Publication] (22 April 2026), she argues that the bleak entry-level job market facing young Americans comes from a forty-year structural shift: employer concentration paired with noncompete agreements has narrowed the channels through which workers move between firms."✓ clean ("she argues" not "she argue"; "the bleak" not "bleak")✓ matches ESL variant 2 regexmin divergence — winner
1P-esl-register-clean"About this article '[Article Title]' by [Author A] on [Publication] (22 April 2026), it argues that..."✓ clean✗ doesn't match any R8 patterndisqualified
2P-academic-minimal"[Author A] argues in '[Article Title]' ([Publication], 22 April 2026) that employer concentration, paired with noncompete agreements, has narrowed..."✓✗ "[Author A] argues in" — fails standard MLA regex (requires "In" first)disqualified

Winner: k=0 (P-esl-register-clean). ESL syntax markers: "[Author A]'s article" (genitive-fronted), "on [Publication]" (native-prep ESL), "comes from" (direct-translation idiom). R9 grammar clean.

FG2 — conclusion_structural (P-esl-register-clean, MUST_FIX)

v2 text (P8_S1):

"...such as the Oregon ban that hourly wages were found by [Author C] and [Author D] to have been raised by two to three percent..."

Winner candidate (P-esl-register-clean):

"...such as the Oregon ban, which [Author C] and [Author D]'s study finds raised hourly wages by two to three percent..."

ESL markers: "[Author C] and [Author D]'s study" (genitive-fronted possessive), "finds raised" (present tense ESL choice). Grammar clean. [Author C] / [Author D] / Oregon / two to three percent locks intact.

FG3 — body_anecdote (P-esl-chinese-full, MUST_FIX, K=3)

v2 text (P7_S6, body_anecdote — locative-fronted):

"Into work the closed firms will not offer them, a classmate who sells stickers on Etsy from her dorm and a friend who taught himself coding from YouTube both step sideways."

K=3 candidates:

kStrategyOutputMarkers visibleScore
0P-esl-chinese-full"One my classmate sell stickers on Etsy from her dorm, another friend learn coding by himself from YouTube. They two both step sideways to work that closed firms not offering them.""One my" (article + word-order), "sell"/"learn" (SVA), "They two both" (Chinese emphatic), "not offering" (dropped aux) — 4 markerswinner
1P-esl-chinese-full"About my classmate, she sell stickers on Etsy from dorm; my friend learn coding from YouTube by himself. Both of them step sideways into work which closed firms not give them.""About X" (topic-prominent), "sell"/"learn" (SVA), "from dorm" (article omission) — 3 markersrunner-up
2P-esl-register-clean (backup)"A classmate of mine selling stickers on Etsy from her dorm and a friend of mine teaching himself coding from YouTube both step sideways into work that the closed firms will not offer them."0 grammar errors, but "A classmate of mine" / "a friend of mine" ESL genitive style + SVO restoredavailable but not picked (primary won)

Winner: k=0. 4 visible ESL markers within budget (body target 3-5/para; this segment alone has 4, but it's the high-density body_anecdote sentence; remaining body paragraph sentences add 0-1 each).

FG_SHOULD_1 — body_elaboration (P-esl-chinese-full, SHOULD_FIX, K=2)

v2 text (e.g., P6_S6, an [Author B] data sentence that's SHOULD_FIX D3 unnatural syntax):

"[Author B] traces the stagnation to rising employer concentration across industries from media to health care, and to the spread of noncompete agreements, which the Government Accountability Office found had bound 38 percent of workers at some point, including more than half of the hourly and part-time workers covered by such clauses."

Winner candidate (P-esl-chinese-full):

"[Author B] trace stagnation to two reasons: employer concentration rise across industries from media to health care, and noncompete agreements spread very widely. Government Accountability Office found these clauses bind 38 percent of workers at some point, including more than half of hourly and part-time workers."

Markers: "[Author B] trace" (SVA), "employer concentration rise" (SVA + article omission), "very widely" (ESL adverb intensification), "found these clauses bind" (tense simplification). Split into two sentences (more direct, Chinese-style sentence rhythm). All locks ([Author B], Government Accountability Office, 38 percent) intact.

Aggregate strategy usage (this essay)
StrategyMUST_FIX gate (8)MUST_FIX body (0)SHOULD_FIX body (~10)Total
P-esl-register-clean800-2 (backup)8-10
P-esl-chinese-full008-108-10
P-academic-minimal0 (rare, only on failed primary)000-1

Total fix ops: ~18-20. ESL fire rate: ~95% (vs v1 surgical's 0%).


§15 — What surgical v3 does NOT do

  • Do not apply ESL grammar markers in gate-sensitive positions (intro_opener / TS / quote integration / conclusion_thesis_restate / conclusion_structural)
  • Do not modify segments without an audited issue (unless include_nice_to_fix=true)
  • Do not change quote contents (locked)
  • Do not internally iterate against external detector — atomic single pass
  • Do not claim ESL strategy guarantees AI score reduction — empirical hypothesis
  • Do not silently accept fallback_to_humanized — log every instance

§16 — Cheat sheet vs v1 surgical

Dimensionv1 surgical (regressed to 48%)v3 surgical (this)
Strategy pool5 (P-academic, P-academic-minimal, P-mixed, P-esl-chinese, P-esl-russian)3 (P-esl-register-clean, P-esl-chinese-full, P-academic-minimal)
Per-roleGating matrix (allow/deny)Primary assignment (per role pick)
Fix scopeMUST_FIX only (15)MUST_FIX + body SHOULD_FIX (~25)
ESL fire rate0/8 (architectural exclusion)~17-19/25 (~95%)
Gate positionsP-academic dominantP-esl-register-clean dominant (clean grammar)
Body positionsNo segments to fire onP-esl-chinese-full (visible markers)
R8 verifySingle narrow regex4-variant alternation
R9 grammarClean (good)Body markers visible (intended); gates clean
Grammarly result28% → 48% (regression)28% → 18-25% (hypothesis)

End of canvas-humanizer-surgical v3 SKILL.md.

© X-isdoingreat, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/canvas-humanizer-surgical of X-isdoingreat/canvas-pilot.

Open the folder on GitHubat commit 6b79d5b

Compare with similar skills

Canvas Humanizer Surgical next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Canvas Humanizer Surgical compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Canvas Humanizer Surgical this skillX-isdoingreat/canvas-pilot125—~7.2kAutomated safety check: NotesAGPL-3.0
Sloptrimseyedehsanhadi/sloptrim220—~5.2kAutomated safety check: NotesApache-2.0
Thesis CreatorStars-OC/thesis-creator230—~2.8kAutomated safety check: PassMIT
Persian Writingali2000hos/persian-writing368—~4.4kAutomated safety check: WarnMIT
Aigc Detectorfree-revalution/AIGC-Detector-Pro142—~2.8kAutomated safety check: PassMIT
Hermes3000 WritingHybridAIOne/hybridclaw159—~2.7kAutomated safety check: PassMIT

Similar skills

  • Sloptrim

    seyedehsanhadi/sloptrim

    A skill your agent uses when the user wants to humanize text, trim slop, de-AI or de-slop writing, remove AI tells, fix robotic or ChatGPT-sounding prose, or make writing sound human and natural.

    220 GitHub stars~5.2k tokensUpdated 6 days ago
    Writing & ContentAuto-check: notes
  • Thesis Creator

    Stars-OC/thesis-creator

    Walks Chinese undergraduates through writing a graduation thesis from topic to Word export, with text-similarity reduction and AI-text rate rewriting and checks.

    230 GitHub stars~2.8k tokensUpdated 4 mo ago
    EducationAuto-check passed
  • Persian Writing

    ali2000hos/persian-writing

    Write natural, human-sounding Persian (Farsi) and build correct right-to-left Persian deliverables.

    368 GitHub stars~4.4k tokensUpdated 7 days ago
    Documents & OfficeAuto-check: warnings
  • Aigc Detector

    free-revalution/AIGC-Detector-Pro

    Academic paper AI content detection, rewriting, and thesis writing assistant.

    142 GitHub stars~2.8k tokensUpdated 4 mo ago
    EducationAuto-check passed
  • Hermes3000 Writing

    HybridAIOne/hybridclaw

    Use Hermes3000 to plan, draft, revise, save, check consistency, and export long-form manuscripts through the Hermes3000 AI writing portal API.

    159 GitHub stars~2.7k tokensUpdated today
    Documents & OfficeAuto-check passed
  • Humanize English

    AnastasiyaW/codex-claude-code-config

    Edit English drafts for clear, natural language while preserving facts, uncertainty, technical meaning, citations and genre.

    154 GitHub stars~1.8k tokensUpdated yesterday
    Writing & ContentAuto-check passed

More from X-isdoingreat/canvas-pilot

All 32 skills in this repo
  • Daily Work Tweet

    X-isdoingreat/canvas-pilot

    A skill your agent uses when verified work from today or another day should become an X/Twitter post, build-in-public update, ship log, or bilingual draft.

    125 GitHub stars~1.6k tokensUpdated 2 mo ago
    Auto-check passed
  • Canvas Awkward Syntax

    X-isdoingreat/canvas-pilot

    A skill your agent uses when a short local academic draft needs role-aware syntax diversification while preserving meaning, locks, source grounding, rubric-critical openings, and document structure.

    125 GitHub stars~2k tokensUpdated 2 mo ago
    Auto-check passed
  • Canvas Cron

    X-isdoingreat/canvas-pilot

    A skill your agent uses when managing Canvas Pilot schedules: install, inspect, pause, change, delete, or safely test scheduled scans and runs.

    125 GitHub stars~2.1k tokensUpdated 2 mo ago
    Auto-check: notes
  • Canvas Essay

    X-isdoingreat/canvas-pilot

    A skill your agent uses for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay.

    125 GitHub stars~2.2k tokensUpdated 2 mo ago
    Auto-check passed
  • Canvas Generic

    X-isdoingreat/canvas-pilot

    A skill your agent uses for an approved Canvas assignment that no specialized course skill can handle.

    125 GitHub stars~2.4k tokensUpdated 2 mo ago
    Auto-check passed
  • Canvas Humanizer

    X-isdoingreat/canvas-pilot

    A skill your agent uses when a local academic draft needs a meaning-preserving humanizing pass with less uniform syntax while retaining rubric, source, lock, voice, and length constraints.

    125 GitHub stars~1.8k tokensUpdated 2 mo ago
    Auto-check passed

Works with

Questions about Canvas Humanizer Surgical

What does Canvas Humanizer Surgical do?

Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose. Canvas Humanizer Surgical is an agent skill from X-isdoingreat/canvas-pilot. Second-pass humanizer that fixes specific issues left over from canvas-humanizer (v2) without re-introducing LLM-shaped prose.

When should I use Canvas Humanizer Surgical?

Canvas Humanizer Surgical fits situations like: tasks that involve Humanizing AI text.

How do I install Canvas Humanizer Surgical in Claude Code?

Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-humanizer-surgical -a claude-code`. Or copy the skill folder (.claude/skills/canvas-humanizer-surgical in X-isdoingreat/canvas-pilot) into .claude/skills/canvas-humanizer-surgical in your project. Claude Code loads it when a task matches its description.

How do I install Canvas Humanizer Surgical in Codex?

Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-humanizer-surgical -a codex`. Or copy the skill folder (.claude/skills/canvas-humanizer-surgical in X-isdoingreat/canvas-pilot) into .agents/skills/canvas-humanizer-surgical in your project. Codex loads it when a task matches its description.

Can I use Canvas Humanizer Surgical in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-humanizer-surgical -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/canvas-humanizer-surgical, .gemini/skills/canvas-humanizer-surgical, .github/skills/canvas-humanizer-surgical and .opencode/skills/canvas-humanizer-surgical in your project.

What does Canvas Humanizer Surgical need to run?

SKILL.md names no scripts, command-line tools or credentials: Canvas Humanizer Surgical is instructions for the agent only. Our summary lists: Python 3. Its frontmatter pre-approves these tools: Bash, Read, Write, Edit, Grep, Agent.

Does Canvas Humanizer Surgical access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Canvas Humanizer Surgical safe to install?

Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Canvas Humanizer Surgical use?

Canvas Humanizer Surgical is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Canvas Humanizer Surgical use?

About 7.2k tokens (SKILL.md is roughly 29k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Canvas Humanizer Surgical?

Skills that share tags, products or a category with Canvas Humanizer Surgical: Sloptrim (seyedehsanhadi/sloptrim, 220 stars), Thesis Creator (Stars-OC/thesis-creator, 230 stars), Persian Writing (ali2000hos/persian-writing, 368 stars) and Aigc Detector (free-revalution/AIGC-Detector-Pro, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Canvas Humanizer Surgical?

X-isdoingreat (a GitHub user) maintains it in X-isdoingreat/canvas-pilot, which has 125 GitHub stars. The repository holds 32 skills in this directory. The repository was last updated on July 31, 2026.

Source: X-isdoingreat/canvas-pilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.