Borrowing it
Nothing to install: this file belongs to sweeden-ttu/canvas-lms-mcp. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/sweeden-ttu/canvas-lms-mcp/main/.cursor/skills/adaptive-course-learner/SKILL.mdgit clone --depth 1 https://github.com/sweeden-ttu/canvas-lms-mcpWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/sweeden-ttu/canvas-lms-mcp/adaptive-course-learner)<a href="https://agentmods.dev/skills/sweeden-ttu/canvas-lms-mcp/adaptive-course-learner"><img src="https://agentmods.dev/badge/skills/sweeden-ttu/canvas-lms-mcp/adaptive-course-learner/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/sweeden-ttu/canvas-lms-mcp/adaptive-course-learner"><img src="https://agentmods.dev/badge/skills/sweeden-ttu/canvas-lms-mcp/adaptive-course-learner.svg" alt="Reviewed on agentmods" width="80" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00070 | $0.02833 |
| Opus 5 | $0.00035 | $0.01417 |
| Sonnet 5 | $0.00014 | $0.00567 |
| Haiku 4.5 | $0.00007 | $0.00283 |
Grade A, and why
adaptive-course-learner 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 10d 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.
How it starts
The opening of the file, as written. The whole thing — 326 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Adaptive Course Learner
Build reinforcement learning systems that iteratively learn from Canvas course and module content using perceptrons and RL techniques.
Quick Start
Setup:
mkdir adaptive-learner && cd adaptive-learner
uv init --name adaptive-learner --python 3.10+
uv add numpy scikit-learn torch transformers
Project structure:
adaptive-learner/
├── knowledge_base/ # Learned knowledge storage
│ ├── course_{id}/ # Per-course folders
│ │ └── module_{id}/ # Per-module folders
├── models/ # Trained models
│ ├── perceptron.pkl # Perceptron model
│ └── rl_agent.json # RL agent Q-table
├── learner.py # Main system
├── perceptron_model.py # Perceptron implementation
├── rl_agent.py # RL agent
└── canvas_fetcher.py # Content fetcher
Architecture
Three-component system:
- Content Fetcher - Retrieves Canvas course/module data via API/MCP
- Perceptron Network - Extracts features and patterns using MLP
- RL Agent - Learns optimal context building strategies via Q-learning
Implementation Pattern
Step 1: Content Fetcher
canvas_fetcher.py:
import httpx
import json
from pathlib import Path
from config import load_env_config, get_api_headers
class CanvasContentFetcher:
def __init__(self):
self.config = load_env_config()
async def fetch_course_content(self, course_id: int) -> dict:
async with httpx.AsyncClient(
base_url=self.config.base_url,
headers=get_api_headers(self.config.api_token)
) as client:
modules = (await client.get(f"/api/v1/courses/{course_id}/modules")).json()
for module in modules:
module["items"] = (await client.get(
f"/api/v1/courses/{course_id}/modules/{module['id']}/items"
)).json()
return {"course_id": course_id, "modules": modules}
def save_to_folder(self, content: dict, base_path: Path):
course_path = base_path / f"course_{content['course_id']}"
course_path.mkdir(exist_ok=True)
for module in content["modules"]:
module_path = course_path / f"module_{module['id']}"
module_path.mkdir(exist_ok=True)
(module_path / "items.json").write_text(json.dumps(module["items"], indent=2))
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.
- 10d ago First seen · 326 lines · 70 tokens per session scan A f5041f424bda
adaptive-course-learner is a skill published in the GitHub repository sweeden-ttu/canvas-lms-mcp (0 stars, last pushed 6mo ago), licensed MIT. It adds 70 tokens to every session and 2,833 once invoked, about $0.0003 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.
Other skills, from other repositories
fs-notebook-tabs
A computer-science capstone: an on-device ML keyboard that predicts next words privately — problem, method, evaluation, and defense answers. Built as a decision-grade coursework defense deck for professor, defense committee.
implementing-llms-litgpt
Implements and trains LLMs using Lightning AI's LitGPT with 20+ pretrained architectures (Llama, Gemma, Phi, Qwen, Mistral). Use when need clean model implementations, educational understanding of architectures, or production fine-tuning with LoRA/QLoRA. Single-file implementations, no abstraction layers.
rwkv-architecture
RNN+Transformer hybrid with O(n) inference. Linear time, infinite context, no KV cache. Train like GPT (parallel), infer like RNN (sequential). Linux Foundation AI project. Production at Windows, Office, NeMo. RWKV-7 (March 2025). Models up to 14B parameters.
learning-notes-automation
A workflow for turning videos, podcasts, and articles into structured learning notes. It extracts key ideas and creates flashcards that can be imported into Anki, a spaced-repetition study app.
transformer-attention
Use when reasoning about Transformer self-attention, multi-head attention, positional encoding, masked decoder attention, or why attention replaced recurrence/convolutions in sequence models; not for generic NLP or unrelated attention topics.
llm-as-computer
Execute programs on a compiled transformer stack machine where every instruction fetch and memory read is a parabolic attention head. Demonstrates that transformer attention + FF layers can implement a working computer. Use when user mentions "llm-as-computer", "lac", "stack machine", "compiled transformer"…