Enforce First
danielvm-git/bigpowers
Apply the F.I.R.S.T test quality rubric (per CONVENTIONS.md §Tests) to a test suite or individual tests.
A skill your agent uses for an approved programming assignment routed by canvas-execute.
$ npx skills add X-isdoingreat/canvas-pilot --skill canvas-ics33 -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-ics33 --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-ics33 .claude/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .claude/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33Type 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-ics33 -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-ics33 --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-ics33 .agents/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .agents/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33 -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-ics33 --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-ics33 .cursor/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .cursor/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33--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-ics33 -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install X-isdoingreat/canvas-pilot canvas-ics33 --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-ics33 .gemini/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .gemini/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33Installs 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-ics33 -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-ics33 .github/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .github/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33 -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-ics33 --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-ics33 .opencode/skills/canvas-ics33 && 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-ics33" agent skill from https://github.com/X-isdoingreat/canvas-pilot/tree/main/.agents/skills/canvas-ics33 into .opencode/skills/canvas-ics33/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "canvas-ics33", 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-ics33A skill your agent uses for an approved programming assignment routed by canvas-execute.
Canvas Ics33 is an agent skill from X-isdoingreat/canvas-pilot. Use for an approved programming assignment routed by canvas-execute. Resolve the private overlay and real spec from course pages, PDFs, or starter code; implement test-first, audit and package a draft, and submit only through a separately authorized exact-target Canvas workflow.
Its SKILL.md is about 4.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 Documents & Office, covering Test-driven development. 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.
9 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 Ics33 loads about 4.2k tokens when it runs. Until then it costs about 73 tokens; SKILL.md has 1,952 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). 1,952 words, ~4,177 tokens.
.claude/skills/canvas-ics33/SKILL.md (or your agent's skills folder).Produce and verify one code-assignment artifact in any language. Treat the Canvas assignment summary as a routing hint; the real specification controls the work.
Require an approved current plan item, its assignment snapshot, run_dir, and
the exact work directory returned by:
from src.course_artifacts import ensure_stable_work_dir
work = ensure_stable_work_dir(run_dir, course_id, assignment_id)The directory name must be
course-<course_id>__assignment-<assignment_id>. Never use a course or
assignment name as filesystem identity. Keep all assignment writes below it:
spec.md
spec-sources/
references/
repo/
draft/
REQUIREMENTS.md
constraints.md
research_findings.md
verification.log
audit/round-<n>.json
stages/
result.jsonThis skill handles code, code-adjacent short PDFs, and required development
history. Route essays, reading annotations, zyBook problem sets, and quizzes to
their dedicated skills. Use skipped only for an intrinsically manual task
such as an in-person defense, identity check, or proctored environment.
Read _private/canvas-ics33-app.md before fetching or generating anything.
The file may contain several courses and assignment kinds:
## Course <course_id> block. Never inherit a similarly
named course or another course's defaults.### <kind> or #### <kind> heading.
Match its naming_regex against the complete assignment name and retain all
named regex groups for URL and filename templates.The course block supplies language and optional language_version. Each kind
supplies these fields as applicable:
| Concern | Overlay fields |
|---|---|
| Spec | naming_regex, spec_source, spec_url_base, spec_url_template |
| References | reference_fetch_patterns, reference_resolver |
| Starter | scaffold_distribution, scaffold_url_template |
| Verification | test_runner, coverage_command, coverage_target |
| Package | submission_format, bundle_command, zip_command |
| Process | process_severity, process_humanize_config |
| Mutation eligibility | auto_submit_scope, pre_submit_reviewer_for, cron_env_var |
If the overlay, course block, or kind is absent, hand off to
canvas-bootstrap for that exact course/kind. Resume only after the design is
materialized and revalidated. If it remains unresolved, write error with
reason_code=overlay_unresolved. Never copy private overlay values into this
tracked skill or another public artifact.
Run the stages in order unless first-run stage mode is active. Preserve every intermediate artifact so a retry can resume from verified evidence.
Use the read-only Canvas helpers needed for the selected source chain:
from src import canvas_client as cv
assignment = cv.get_assignment(course_id, assignment_id)
front_page = cv.get_front_page(course_id)
modules = cv.list_modules(course_id)
syllabus = cv.get_syllabus_body(course_id)
files = cv.list_assignment_files(course_id, assignment_id)Resolve spec_source as follows:
| Value | Required action |
|---|---|
external_site | Expand the overlay URL template with matched groups and fetch the exact page. |
front_page_link | Read the actual front page, follow its relevant external link, then expand the template. |
attached_pdf | Download the assignment PDFs with cv.download_file and extract all pages with PyMuPDF. |
starter_readme | Acquire the scaffold in Stage 3, then read its README and referenced local files before Stage 4. |
canvas_description | Use the description only when the overlay declares it to be the complete specification. |
Follow relevant module items, syllabus links, attached files, and specification
links until the deliverable is unambiguous. Save each source verbatim under
spec-sources/ with source URL or Canvas file ID, retrieval time, and hash.
Write spec.md with a verbatim section and a clearly labeled normalized
summary. Preserve the original privately even if
src.course_artifacts.redact_behavioral_rules is used for deliverable-shape
analysis.
For a login-only optional source, ask for a user-provided link in interactive
mode and record the outcome. Continue without it only when the specification
proves it is nonessential. A missing required source is error; headless mode
must not prompt or guess.
Apply every reference_fetch_patterns regex to the verbatim specification.
For each match, use reference_resolver to retrieve the cited lecture note,
textbook section, prior implementation, starter file, or other upstream source.
Save the original artifact in references/ and record its origin and hash in
references/manifest.json.
This stage is mandatory whenever the specification refers to an upstream
source. Do not invent a signature, identifier, data shape, exception, or
example. If a pattern matches and its source cannot be recovered, write
error with reason_code=required_reference_unavailable. An empty
references/ directory is acceptable only when the source scan records zero
required references.
Use the declared scaffold_distribution:
| Mode | Action |
|---|---|
git_bundle | Clone the resolved bundle or repository into repo/. |
zip_url | Download the archive, reject path traversal, and extract into repo/. |
github_classroom | Clone the exact student fork resolved by the private overlay. |
inline_in_spec | Materialize only the explicitly identified starter code blocks. |
none | Create an empty repo/ for a from-scratch solution. |
Hash every DO NOT MODIFY block, fixed exception/type declaration, starter
filename, and submission helper before editing. Never modify the original
download outside repo/.
Write REQUIREMENTS.md with one item per gradable requirement: deliverable
names and types, interfaces, behavior, errors, required technique, forbidden
constructs, rubric lines, source dependencies, and package contents.
Write constraints.md as atomic yes/no propositions with a verbatim source
anchor. Include:
must, must not, do not, allowed-import, and protected-block rule;exactly, at most, no more than, minimum,
maximum, page count, sentence count, function count, and coverage target;spec.md or
references/.Name the measurement or parser that will verify each executable proposition. Do not reduce a numeric requirement to a subjective review.
Trigger this stage for a new technique or output shape, an unfamiliar numeric constraint, a mismatch with the default pipeline, or relevant recent grader feedback. Spawn two or three bounded native Codex subagents in parallel and give them raw local artifacts rather than the current session's conclusions:
spec.md;Save their separate findings and a synthesis to research_findings.md. Add
supported requirements and checks to the two checklists. Preserve conflicts
verbatim; never silently let inferred quality override a literal constraint.
Plan small feature slices from the checklist. For each slice:
test_runner and preserve the expected failure.Add specification examples, boundary cases, error paths, and regression tests. Run the configured coverage command after all slices; add tests for genuinely uncovered requirements until the exact target passes. Never weaken starter tests, alter their expected values, or proceed with a failing suite.
Skip this stage when process_severity: off or history is not a deliverable.
Otherwise operate only on the assignment repository. Use the overlay's feature
stages, session spacing, message register, and few-shot examples to turn the
green Stage-5 checkpoints into the required development history.
When rebuilding local draft history, invoke Git with argument lists and set
GIT_AUTHOR_DATE and GIT_COMMITTER_DATE in the child process environment.
Preserve the configured author identity; never change global Git configuration
or the product repository's history. Audit commit count, chronological order,
message constraints, file diffs, and a clean final tree.
Write one line per check to verification.log:
PASS | requirement | measured: value
FAIL | requirement | measured: valueRun all of these from a clean state:
spec.md, references/, starter content, or the Canvas description.REQUIREMENTS.md and constraints.md
item to at least one measured line.Repair and rerun the complete audit at most three times. Any remaining FAIL,
missing check, or ungrounded required identifier produces error, never
draft_ready.
Spawn one fresh, read-only native Codex subagent with spec.md, both
checklists, optional research findings, repo/, and draft/. Require a JSON
array at audit/round-1.json; each gap contains:
{"severity":"HIGH|MED|LOW","kind":"spec-violation|historical-risk|ambiguity-unresolved|format-mismatch","gap":"...","spec_anchor":"verbatim text","deliverable_anchor":"verbatim text or MISSING","fix_suggestion":"file and concrete change"}Require verbatim anchors and [] exactly when no gap exists. Repair every HIGH
gap, rerun all Stage-7 checks, and repeat the semantic audit for at most three
rounds using atomic temporary-file replacement. Persistent HIGH gaps produce
error; retain MED/LOW items as explicit human-review metadata.
Create the exact declared artifact under draft/:
| Format | Draft artifact |
|---|---|
git_bundle | Run the configured bundle command and copy the resulting bundle. |
zip | Prefer Python zipfile; otherwise run the configured command in an explicit working directory. |
single_file | Copy the exact required source or PDF filename. |
online_text_entry | Freeze the exact text as draft/submission.txt. |
gradescope | Produce the required archive but leave delivery manual. |
Use pathlib, shutil.copy2, zipfile, tempfile.TemporaryDirectory, and
subprocess.run([...], cwd=..., check=...) with full paths. Do not depend on a
Unix shell or command chaining. Create the verification directory under the
assignment work tree, then clone or re-extract the packaged artifact there,
run the full tests and coverage again, and compare required file hashes. A
package that cannot be independently reopened and retested is error.
For configured high-stakes kinds, spawn the pre-submit-reviewer native Codex
subagent after packaging. Give it only the work-directory path and require a
rubric-by-rubric cold review. BLOCK requires repair, complete re-audit, and a
new review; unresolved BLOCK forbids mutation.
Default to draft_ready. gradescope, absent auto_submit_scope, and
ask-each-scan always remain local drafts. A matching auto_submit_scope
means only that this workflow is eligible to request a mutation; it is not
Canvas authority.
Submission additionally requires a separate, signed, unexpired
authorization_receipt_path supplied by canvas-submit or an authorized
delegation; the interactive default is
<work>/mutation_authorization.json. It must be bound to the exact Canvas
origin, course, assignment, current session, and required actions:
assignment.upload_init, assignment.upload_blob, and
assignment.submit_files;assignment.submit_text.Load and validate the receipt with src.authorization before the first write.
Then use only src.canvas_submit_origin:
upload_and_submit_files_with_view(..., authorization_receipt=receipt) with
the packaged draft and the three exact file actions above;online_text_entry: read the frozen draft/submission.txt as UTF-8 and call
submit_text_with_view(..., authorization_receipt=receipt) with the exact
assignment.submit_text action. Do not upload the text snapshot as a file.Do not create or broaden a receipt in this skill, and never call a lower-level Canvas mutation helper. The wrapper must perform the pre-read, use the same exact receipt for every write, and prove the final state by read-back.
If AlreadySubmitted is raised, call existing_submission_result and record
canonical submitted with reason_code=already_submitted; do not create
another attempt. On success record submitted_at, read-back workflow state,
metadata.readback_verified=true, attempt, attachment metadata, the receipt
ID, and authorization_consumed=true. A network, authorization, or read-back
failure produces error.
Run a single named stage only when both conditions hold:
STAGE-BY-STAGE MODE and names the stage; and<work>/.first_run_stage_by_stage exists.Accept fetch-spec, fetch-references, download-scaffold,
constraints-checklist, research-before-improvise,
test-first-implement, process-history, audit, semantic-audit,
bundle-verify, and submit. Verify prior artifacts, run only the named
stage, atomically write stages/<stage>.done with a short outcome, and stop.
If a prerequisite is missing, write the stage error marker and do not advance.
Normal canvas-execute dispatch runs the full pipeline.
Write exactly one result.json through src.course_artifacts.write_course_result
or src.run_state.write_result:
draft_ready: an existing, reopened, retested draft_path and no failed
verification line;submitted: a valid draft_path or submitted_at, all-PASS verification,
verified read-back metadata, and for a new mutation a receipt ID plus
authorization_consumed=true; use reason_code=already_submitted for a
pre-existing read-only attempt;skipped: only an intrinsically manual/unsupported task, with notes;error: missing required evidence, unresolved overlay/spec, failed tests or
audit, broken package, denied mutation, or failed read-back.Include test count, coverage, verification-log path and totals, package hash, commit count when applicable, receipt ID when a write occurred, and human review items in metadata. These four statuses are exhaustive.
When the selected overlay's cron_env_var is active, never prompt and never
degrade a failed verification or failed submission to draft_ready. Write
error honestly so the scheduler can report it.
© 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-ics33 of X-isdoingreat/canvas-pilot.
Open the folder on GitHubat commit 6b79d5b
Canvas Ics33 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 Ics33 this skillX-isdoingreat/canvas-pilot | 125 | — | ~4.2k | Automated safety check: Pass | AGPL-3.0 | |
| Enforce Firstdanielvm-git/bigpowers | 260 | — | ~463 | Automated safety check: Pass | MIT | |
| Paper2posterQuZhan51496/paper2anything | 450 | — | ~9.2k | Automated safety check: Notes | Apache-2.0 | |
| Gbro Series Vocabpyang5166/gbro-series-vocab | 163 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Fill In NotesPolaris-Aeterna/loom-notes | 167 | — | ~975 | Automated safety check: Pass | Custom licence | |
| Building Screening Rubricswentorai/Research-Claw | 858 | 3 repos | ~4.5k | Automated safety check: Pass | Custom licence |
danielvm-git/bigpowers
Apply the F.I.R.S.T test quality rubric (per CONVENTIONS.md §Tests) to a test suite or individual tests.
QuZhan51496/paper2anything
Convert academic papers (PDF) into conference posters (HTML/PNG).
pyang5166/gbro-series-vocab
追剧学英语 / Learn English vocabulary from TV series. An agent skill from pyang5166/gbro-series-vocab.
Polaris-Aeterna/loom-notes
Turn a textbook chapter, lecture, or paper into beautiful "fill-in" study notes — written to be READ (clean statements, intuition) yet engineered to be FILLED (blanks, proof skeletons, "your turn"…
wentorai/Research-Claw
Collaboratively build and refine paper screening rubrics through brainstorming, test-driven development, and iterative feedback
wengan-li/ncku-thesis-template-latex
Mandatory repository-neutral IDSD/ICE workflow. An agent skill from wengan-li/ncku-thesis-template-latex.
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 long academic-writing assignment routed by canvas-execute after the deterministic writing router selects essay.
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.
Categories
A skill your agent uses for an approved programming assignment routed by canvas-execute. Canvas Ics33 is an agent skill from X-isdoingreat/canvas-pilot. Use for an approved programming assignment routed by canvas-execute.
Canvas Ics33 fits situations like: an approved programming assignment routed by canvas-execute; tasks that involve Test-driven development.
Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-ics33 -a claude-code`. Or copy the skill folder (.agents/skills/canvas-ics33 in X-isdoingreat/canvas-pilot) into .claude/skills/canvas-ics33 in your project. Claude Code loads it when a task matches its description.
Run `npx skills add X-isdoingreat/canvas-pilot --skill canvas-ics33 -a codex`. Or copy the skill folder (.agents/skills/canvas-ics33 in X-isdoingreat/canvas-pilot) into .agents/skills/canvas-ics33 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-ics33 -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-ics33, .gemini/skills/canvas-ics33, .github/skills/canvas-ics33 and .opencode/skills/canvas-ics33 in your project.
SKILL.md names no scripts, command-line tools or credentials: Canvas Ics33 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 Ics33 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 4.2k tokens (SKILL.md is roughly 17k 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 Ics33: Enforce First (danielvm-git/bigpowers, 260 stars), Paper2poster (QuZhan51496/paper2anything, 450 stars), Gbro Series Vocab (pyang5166/gbro-series-vocab, 163 stars) and Fill In Notes (Polaris-Aeterna/loom-notes, 167 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.