canvas-info
Research and answer questions about Canvas LMS courses using the canvaslms CLI. Use proactively when: (1) user asks about course content, assignments, pages, grades, deadlines, or announcements, (2) user mentions a Canvas course name or course code, (3) user asks "what assignments/pages/modules are in [course]?", (4) user wants to find specific course materials or check deadlines. This skill is read-only; to create quiz content, use the canvas-quiz skill instead.
What this skill does
# Canvas Course Information Research
## Overview
The `canvaslms` CLI provides read-only access to Canvas LMS course data:
assignments, pages, modules, discussions, announcements, grades, quizzes, and
calendar events. This skill teaches a research workflow for answering user
questions about their courses.
For detailed options on any subcommand, run `canvaslms <subcommand> -h`.
## Research Workflow
Follow these steps when answering a Canvas-related question:
### Step 1: Identify the Course
```bash
canvaslms courses # List all courses
canvaslms courses "regex" # Filter by name/code (case-insensitive regex)
```
Note the course ID from the output. Use it with `-c <id>` in subsequent
commands.
### Step 2: Explore Course Structure
Choose the right entry point based on the question:
| Question type | Start with |
|---------------|------------|
| "What's in this course?" | `canvaslms modules list -c <id>` |
| "What assignments exist?" | `canvaslms assignments list -c <id>` |
| "Any announcements?" | `canvaslms discussions list -c <id> -t announcement` |
| "What pages are available?" | `canvaslms pages list -c <id>` |
| "What are the deadlines?" | `canvaslms calendar -c <id>` |
| "How did students do?" | `canvaslms results -c <id>` |
### Step 3: Drill into Content
Use `view` subcommands to read specific items:
```bash
canvaslms modules view -c <id> -m "module regex"
canvaslms pages view -c <id> -p "page regex"
canvaslms assignments view -c <id> -a "assignment regex"
canvaslms discussions view -c <id> -d "discussion regex"
```
The `view` commands output full content (markdown for pages, HTML for
assignments). The `list` commands output tab-delimited CSV summaries.
### Step 4: Refine with Filters
Most commands accept regex filters and additional flags. Run
`canvaslms <subcommand> -h` to discover available filters for each command.
Common refinement patterns:
- Combine course + item filters: `-c "DD2520" -a "lab"`
- Filter by module: `-c <id> -m "week 3"`
- Filter submissions by user: `canvaslms submissions -c <id> -u "username"`
### Step 5: Synthesize and Answer
After gathering data:
- Quote relevant content directly when answering
- Summarize lists into readable format (tables, bullets)
- If data seems stale, suggest re-running with `--no-cache`
- Provide the course/assignment/page names so the user can navigate in Canvas
## Quick Reference
| To find... | Command | Key flags |
|------------|---------|-----------|
| All courses | `canvaslms courses` | regex filter, `-i` for ID only |
| Course modules | `canvaslms modules list` | `-c`, `-m` |
| Module contents | `canvaslms modules view` | `-c`, `-m` |
| Assignments | `canvaslms assignments list` | `-c`, `-a`, `-m` |
| Assignment details | `canvaslms assignments view` | `-c`, `-a` |
| Wiki pages | `canvaslms pages list` | `-c`, `-p`, `-m` |
| Page content | `canvaslms pages view` | `-c`, `-p` |
| Announcements | `canvaslms discussions list` | `-c`, `-t announcement` |
| Discussions | `canvaslms discussions list` | `-c`, `-t discussion` |
| Discussion content | `canvaslms discussions view` | `-c`, `-d` |
| Quizzes | `canvaslms quizzes list` | `-c`, `-q` |
| Submissions | `canvaslms submissions` | `-c`, `-a`, `-u` |
| Grades/results | `canvaslms results` | `-c`, `-a` |
| Calendar/deadlines | `canvaslms calendar` | `-c`, date range flags |
| Users/enrollment | `canvaslms users` | `-c`, role filters |
| Groups | `canvaslms groups` | `-c` |
## Regex Filtering Patterns
- Course matching is case-insensitive: `"dd2520"` matches "DD2520"
- Use anchors for precision: `"^DD2520$"` for exact match
- Partial match works: `"crypt"` matches "Applied Cryptography"
- Combine flags for specificity: `-c "DD2520" -m "week 3" -a "lab"`
## Output and Caching
- `list` commands produce **tab-delimited CSV** (pipe through `column -t -s$'\t'` for readability)
- `view` commands produce **full content** (markdown, HTML, or YAML frontmatter + content)
- Results are cached; use `--no-cache` to force a fresh fetch
- Pages `view` output includes YAML frontmatter with metadata
## Common Pitfalls
**Always identify the course first:**
```
BAD: canvaslms assignments list -a "lab 1" # No course specified
GOOD: canvaslms assignments list -c 12345 -a "lab 1"
```
**Use `list` before `view` to discover item names:**
```
BAD: canvaslms pages view -c 12345 -p "syllabus" # Guessing the page name
GOOD: canvaslms pages list -c 12345 # Discover available pages
canvaslms pages view -c 12345 -p "Course Syllabus" # Use actual name
```
**Use the right content type flag for discussions:**
```
BAD: canvaslms discussions list -c 12345 # Missing type
GOOD: canvaslms discussions list -c 12345 -t announcement
GOOD: canvaslms discussions list -c 12345 -t discussion
```
## Scope
This skill is **read-only** — it retrieves and presents course information.
It does not create, modify, or delete any Canvas content. To create quiz
content, use the `canvas-quiz` skill instead.
Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.