canvas-homework

canvas-homework is a skill for Claude Code, Codex from 98ping/chip. It costs 92 tokens per session (2,120 once invoked), scanned A, original, MIT.

A workflow for checking Canvas, an online course platform, for unfinished assignments and drafting responses in Max's voice.

In plain words
What is it for?
Use it to list current courses, search incomplete assignments, read full instructions, download attachments, and draft an answer.
Why use it?
It brings assignment details and attached files together so outstanding coursework can be found and prepared efficiently.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/98ping/chip/canvas-homework
Any agent
npx skills add 98ping/chip --skill canvas-homework
Clone the repo
git clone --depth 1 https://github.com/98ping/chip

Made for: Claude Code, Codex.

Per session 92 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,120 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00092 $0.02120
Opus 5 $0.00046 $0.01060
Sonnet 5 $0.00018 $0.00424
Haiku 4.5 $0.00009 $0.00212

Measured 3d ago against content hash e60330f29a34, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

canvas-homework scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/skills/canvas-homework/SKILL.md · 158 lines

How it starts

The opening of the file, as written. The whole thing — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Canvas homework workflow ("Chip")

This is the harness. It connects four things: the canvas MCP server (lists and reads assignments), the scripts/canvas.mjs helper (downloads files the MCP can't), the built-in docx and pdf skills / Read tool (read the files), and the writing-voice skill (draft in Max's voice). Follow the steps in order.

Tools you will use

From the canvas MCP server (this is its complete toolset):

  • canvas_list_active_courses — fast list of your current courses (dashboard API). Prefer this for "what am I taking right now."
  • list_courses — all courses; use flags for completed/all. Use when you need a course that isn't on the active dashboard.
  • search_assignments — search assignment titles/descriptions; filter by due-date range, course, and completion/submission status. Use this to find what's not done.
  • get_assignment — full details for one assignment; ask for markdown output so the description and any embedded file links come through cleanly.

The canvas MCP cannot download attachments. That gap is filled by:

  • node scripts/canvas.mjs assignment-files <courseId> <assignmentId>start here. Finds every file linked from the assignment description, its attachments, and any file sitting in the same module. Dedupes and tells you where each one came from.
  • node scripts/canvas.mjs files <courseId> [nameFilter] — list downloadable files in a course, optionally filtered by a substring of the filename. Follows pagination, so it sees past the first 100 files.
  • node scripts/canvas.mjs download <fileId|url> [outPath] — download one file into output/ (resolves Canvas's signed download URL using the API token).

Reading files (all built in — do not install an MCP for these):

  • .docx → the docx skill (extract full text; never edit the source file).
  • .pdf → the Read tool (use the pages parameter) or the pdf skill.

Checking a finished draft:

  • node scripts/lint-draft.mjs <path> — mechanically enforces the writing-voice hard guardrails (no em dashes, no markdown). Exits non-zero and prints a line:col for every violation. This is not optional; see Branch B step 4.

Read the full file on GitHub · 158 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 3d ago First seen · 158 lines · 92 tokens per session scan A e60330f29a34

Subscribe to this mod's changes

canvas-homework is a skill published in the GitHub repository 98ping/chip (2 stars, last pushed 9d ago), licensed MIT. It adds 92 tokens to every session and 2,120 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

swift-study

Interactive Swift/iOS tutor with two modes. Classic explains first, Mastery uses a predict-first Core Loop with gates.

ITlearning/study-ios · 27 tokens

study-summary

Saves learning notes from the current conversation. Classic mode makes concise notes, Mastery mode keeps detailed training artifacts.

ITlearning/study-ios · 26 tokens

swift-quiz

Adaptive Swift/iOS quiz with two modes. Classic is lighter, Mastery requires mechanism-level reasoning.

ITlearning/study-ios · 24 tokens

offensive-vuln-classes

Exploit development curriculum covering core vulnerability classes with real-world CVE case studies: stack/heap buffer overflows, use-after-free, integer overflows, format strings, type confusion, and race conditions. Use when learning or teaching vuln classes, researching specific CVE patterns, or building exploit…

SnailSploit/Claude-Red · 0 tokens

offensive-exploit-dev-course

Full exploit development course roadmap and syllabus: weekly topics, recommended reading, lab setup, and learning path from vulnerability classes through advanced exploitation. Use to structure exploit dev training or onboard new researchers.

SnailSploit/Claude-Red · 0 tokens

after-action-report

Run a structured after-action review (postmortem, retrospective) on a launch, incident, or completed project to capture timeline, root cause analysis, contributing factors, and actionable lessons. Use this skill whenever the user wants to run a postmortem, retrospective, AAR, or after-action review on any past event.…

rampstackco/claude-skills · 139 tokens