Humanize English
AnastasiyaW/codex-claude-code-config
Edit English drafts for clear, natural language while preserving facts, uncertainty, technical meaning, citations and genre.
A skill your agent uses for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essay --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/canvas-essay .claude/skills/canvas-essay && rm -rf skills-srcUse ~/.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/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .claude/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essayType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essay --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/canvas-essay .agents/skills/canvas-essay && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .agents/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essay --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/canvas-essay .cursor/skills/canvas-essay && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .cursor/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/X-isdoingreat/canvas-pilot.git --path .agents/skills/canvas-essay--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essay --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/canvas-essay .gemini/skills/canvas-essay && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .gemini/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essayInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/canvas-essay .github/skills/canvas-essay && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .github/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-essay --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/X-isdoingreat/canvas-pilot.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/canvas-essay .opencode/skills/canvas-essay && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "canvas-essay" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-essay into .opencode/skills/canvas-essay/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-essay", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
canvas-essayA skill your agent uses for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay.
Canvas Essay is an agent skill from X-isdoingreat/canvas-pilot. Use for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay. Build, audit, humanize when configured, and return a verified local draft without submitting.
Its SKILL.md is about 2.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. 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.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 6b79d5b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are python and json).
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Canvas Essay loads about 2.2k tokens when it runs. Until then it costs about 60 tokens; SKILL.md has 934 words of instructions outside code blocks.
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.
The automated check found no risky patterns in SKILL.md.
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.
The full file from X-isdoingreat/canvas-pilot at commit 6b79d5b, republished under its AGPL-3.0 licence (© X-isdoingreat). 934 words, ~2,239 tokens.
.claude/skills/canvas-essay/SKILL.md (or your agent's skills folder).Produce one verified long-form academic draft. The real specification may live in Canvas modules, attached files, or an instructor site; the Canvas summary is only a routing hint.
Require course_id, assignment_id, current assignment snapshot, approved
plan item, and run_dir from canvas-execute. The work directory is exactly:
from src.course_artifacts import ensure_stable_work_dir
work_dir = ensure_stable_work_dir(run_dir, course_id, assignment_id)Its name is course-<course_id>__assignment-<assignment_id>. Never use a
course or assignment title as durable identity.
This skill performs read-only Canvas discovery and local file creation. It
never uploads or submits. An overlay flag, plan approval, or prose instruction
is not mutation authority. A later exact-target command may enter only through
canvas-submit, which issues and validates an
origin/course/assignment/action/session-exact signed receipt.
Write one result.json through src.course_artifacts.write_course_result:
draft_ready: verified draft exists;skipped: intrinsically manual assignment;error: required spec/source is missing or verification remains failed.Do not use noncanonical result statuses.
Confirm src.ac_eng_router.route_ac_eng_assignment(...) == "essay" unless the
approved plan contains an explicit essay override. Route short annotations and
worksheets to canvas-reading-annotation; route quizzes, code work, and
zyBook-backed work to their specialized skills.
Read _private/canvas-essay-app.md and select the current course block. The
overlay may define:
If the overlay or course block is missing, write error with
reason_code=missing_course_overlay. First-run setup/bootstrap owns creating
private course configuration; this skill must not invent it.
Overlay text may guide drafting but never authorize a Canvas mutation.
spec.md
sources/
sample_anchors.md
research_findings.md # conditional
outline.md
draft/essay.pre-humanizer.docx
draft/essay.docx
audit/round-1.json
verification.log
result.jsonKeep sources, audit evidence, and pre-humanizer text so later review can compare meaning and rubric coverage.
Use existing read-only src.canvas_client helpers to inspect the assignment,
front page, modules, syllabus, rubric, attached files, and linked
instructor-hosted pages. Download every required source into sources/.
Write spec.md with:
If the prompt or a required source cannot be located and the student cannot
supply it, write error. Do not draft from the assignment title alone.
Load the private persona profile only if configured. Convert persona fields to concrete tone and argument-structure guidance; never place profile labels in the essay body.
Read representative files from the overlay-declared sample directory. Extract
small structural anchors—introduction shape, topic-sentence pattern, source
weaving, conclusion shape—into sample_anchors.md. Do not copy sample content.
If samples are absent, use a generic structure only when the overlay permits
that fallback and record the limitation.
Run this stage when the prompt has a new hybrid form, an unfamiliar required section, or recent feedback relevant to the current rubric.
Spawn these native Codex subagents in parallel with minimal raw inputs:
spec.md; list literal requirements, numeric
constraints, and ambiguities in under 400 words.spec.md plus up to five same-course grader
feedback records; infer recurring grading risks and testable gates. Quote
feedback exactly and distinguish inference.The main Codex session writes their outputs to research_findings.md, resolves
conflicts, and owns all drafting decisions. Subagents do not modify files.
Build outline.md before prose. It must map each prompt/rubric requirement to a
section and identify the thesis, topic sentences, source evidence, and
transitions.
Draft section by section into draft/essay.pre-humanizer.docx:
Preserve an evidence map in metadata or an adjacent audit file so a reviewer can trace claims to sources.
Write verification.log with actual values, at minimum:
src.course_artifacts.unresolved_placeholders;python-docx and contains non-empty body text.Feed failed measurements back into the draft and retry at most three rounds.
Persistent failures produce error.
Spawn one independent native Codex audit subagent with spec.md, raw source
excerpts, extracted draft text, research_findings.md when present, and recent
grader feedback. Require a strict JSON array whose entries contain:
{
"severity": "HIGH",
"kind": "spec-violation",
"gap": "one line",
"spec_anchor": "exact text or MISSING",
"deliverable_anchor": "exact text or MISSING",
"fix_suggestion": "specific repair"
}Allowed kinds include spec-violation, historical-risk,
ambiguity-unresolved, format-mismatch, source-grounding-risk,
voice-register-drift, and personal-vs-source-imbalance.
Require checks for thesis/prompt fit, uncited source overlap, citation/reference
consistency, voice, source-personal balance, and every rubric criterion. Save
audit/round-N.json atomically. Repair HIGH gaps and rerun both deterministic
verification and audit, at most three rounds. Remaining HIGH gaps produce
error.
If the overlay enables humanization, invoke the Codex
canvas-humanizer skill with absolute paths:
draft_path=<work>/draft/essay.pre-humanizer.docx
output_path=<work>/draft/essay.docx
voice_register=<overlay value>
course_id=<course_id>
assignment_id=<assignment_id>
work_dir=<stable work directory>The humanizer is a local-file transformation. After it returns, rerun word
count, citation matching, placeholder, structure, and source-grounding checks.
If the transformation fails, preserve the pre-humanizer draft as
draft/essay.docx, record the diagnostic in result metadata, and continue only
if the verified original draft is intact.
If humanization is disabled, copy the verified pre-humanizer draft to the
canonical draft/essay.docx.
Open the canonical DOCX one last time, confirm it is non-empty, and ensure
verification.log has no executable FAIL. Then write:
from src.course_artifacts import write_course_result
write_course_result(
work_dir,
status="draft_ready",
draft_path=work_dir / "draft" / "essay.docx",
notes="Verified essay draft; no Canvas mutation performed.",
metadata={
"skill": "canvas-essay",
"verification_log_path": str(work_dir / "verification.log"),
"humanizer_applied": humanizer_applied,
"audit_rounds": audit_rounds,
},
)Honor a single-stage invocation only when
<work_dir>/.first_run_stage_by_stage exists. Supported stages are
parse-spec, load-samples, research, outline, draft, verify, audit,
humanize, and output. Write stages/<stage>.done and stop. Daily execution
runs the complete pipeline.
© 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
Just SKILL.md in .agents/skills/canvas-essay of X-isdoingreat/canvas-pilot.
Open the folder on GitHubat commit 6b79d5b
Canvas Essay 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Canvas Essay this skillX-isdoingreat/canvas-pilot | 125 | — | ~2.2k | Automated safety check: Pass | AGPL-3.0 | |
| Humanize EnglishAnastasiyaW/codex-claude-code-config | 154 | — | ~1.8k | Automated safety check: Pass | MIT | |
| HumanizerAzure-Samples/interview-coach-agent-framework | 173 | 38 repos | ~5.8k | Automated safety check: Pass | MIT | |
| Avoid AI Writingconorbronsdon/avoid-ai-writing | 4.9k | 3 repos | ~8.1k | Automated safety check: Pass | MIT | |
| User-Facing Text Cleanupguillaumemeyer/watermarks-remover | 24k | — | ~3.5k | Automated safety check: Pass | MIT | |
| Install Anti Sloptrycompai/crm | 11k | 1 repos | ~881 | Automated safety check: Pass | MIT |
AnastasiyaW/codex-claude-code-config
Edit English drafts for clear, natural language while preserving facts, uncertainty, technical meaning, citations and genre.
Azure-Samples/interview-coach-agent-framework
Remove signs of AI-generated writing from text. An agent skill from Azure-Samples/interview-coach-agent-framework.
conorbronsdon/avoid-ai-writing
Audit and rewrite content to remove AI writing patterns ("AI-isms").
guillaumemeyer/watermarks-remover
Audits prose for invisible Unicode characters and rewrites it while keeping facts, citations, code and required disclosures unchanged and the writer's voice intact.
trycompai/crm
Install and configure the anti-slop Oxlint plugin in a local TypeScript or JavaScript repository.
Xe/site
Remove AI writing patterns from prose. An agent skill from Xe/site.
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.
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.
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.
X-isdoingreat/canvas-pilot
A skill your agent uses for an approved Canvas assignment that no specialized course skill can handle.
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.
X-isdoingreat/canvas-pilot
A skill your agent uses when a local draft needs repeated canvas-humanizer passes with independent meaning, structure, citation, voice, and rubric-damage checks.
Categories
A skill your agent uses for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay. Canvas Essay is an agent skill from X-isdoingreat/canvas-pilot. Use for an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay.
Canvas Essay fits situations like: an approved long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay; tasks that involve Humanizing AI text.
Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a claude-code`. Or copy the skill folder (.agents/skills/canvas-essay in X-isdoingreat/canvas-pilot) into .claude/skills/canvas-essay in your project. Claude Code loads it when a task matches its description.
Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-essay -a codex`. Or copy the skill folder (.agents/skills/canvas-essay in X-isdoingreat/canvas-pilot) into .agents/skills/canvas-essay in your project. Codex loads it when a task matches its description.
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-essay -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-essay, .gemini/skills/canvas-essay, .github/skills/canvas-essay and .opencode/skills/canvas-essay in your project.
SKILL.md names no scripts, command-line tools or credentials: Canvas Essay is instructions for the agent only. Our summary lists: Python 3.
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.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Canvas Essay 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.
About 2.2k tokens (SKILL.md is roughly 9k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Canvas Essay: Humanize English (AnastasiyaW/codex-claude-code-config, 154 stars), Humanizer (Azure-Samples/interview-coach-agent-framework, 173 stars), Avoid AI Writing (conorbronsdon/avoid-ai-writing, 4.9k stars) and User-Facing Text Cleanup (guillaumemeyer/watermarks-remover, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
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.