Danvas
Use the installed danvas command as the authority for Canvas course operations. Keep provider, institution, workspace, and approval policy outside this generic skill.
Start With Discovery
- Run
danvas --versionwhen compatibility matters. - Start at
danvas --help, then inspect the relevant family and leaf help. - Use
danvas guide listand a task guide for multi-command workflows. - Use
danvas describe COMMAND --format jsonfor structured command facts.
Do not rely on a remembered option when installed help or description differs. Do not inspect a source checkout merely to recover ordinary command syntax.
Classify The Requested Effect
Before running anything, distinguish:
- local inspection with no Canvas access;
- Canvas read with stdout or retained local evidence;
- local source/report/download creation that never changes Canvas; and
- a Canvas mutation that requires a reviewed plan and explicit authorization.
Help and describe derive those effects from the shipped access registry. A local write is not a Canvas mutation, but it still needs an appropriate output location and no-clobber review.
Use The Safe Workflow
- Locate the course project from explicit user context or
.danvas/. - Read project instructions that govern the workspace.
- Refresh only when current Canvas evidence is needed;
statusitself uses the saved snapshot and local sources. - For a Canvas-changing command, run the bare command or
--dry-runto plan. - Review target identity, expected state, privacy, visibility, and evidence.
- Add
--applyonly when the user has authorized that Canvas mutation. Preserve any additional--confirmguard shown by help. - Inspect authoritative verification or retained results after apply.
Never drop --apply to make an outdated example work. Never add --apply to a local sync command. Never infer mutation authorization from a request to inspect, compare, prepare, download, export, or explain.
Missing danvas command coverage does not authorize direct Canvas API calls, browser automation, or provider-specific fallback. Classify the proposed effect and ask the operator before leaving the supported interface. A Classic Quiz analysis report request is a Canvas mutation even though it changes no quiz content or grades.
Preserve Identity And Evidence
Prefer stable Canvas IDs, explicit URLs where required, source front matter, and project provenance. Do not silently title-match or substitute a display name for a stable identity.
Treat partial snapshots, conflicts, rejected writes, accepted-unverified writes, and indeterminate outcomes as different states. Do not blindly retry a write whose acceptance is uncertain. Read the private result/recovery artifact and the leaf help before proposing the next action.
Protect Retained Data
Respect shareable, course_internal, and private classifications. Student identifiers, rosters, submissions, grades, comments, discussion posts, feedback, and recording captions commonly require private handling. In an initialized project, private defaults live beneath .danvas/private/ with protected POSIX permissions.
An explicit path does not change the data classification. Do not paste raw private artifacts, token values, reusable protected URLs, or full large payloads into the conversation. Prefer aggregate terminal output, report summaries, manifests, and bounded excerpts.
Keep Credentials Provider-Neutral
Danvas accepts an environment-variable name, an absolute credential-file path, or an optional credential command configured in a trusted user profile. It does not own a password-manager integration. Follow operator or organization policy for credential delivery; never manually resolve, print, copy, or retain the token. Offline auth diagnostics do not execute credential commands.
Use danvas auth doctor for offline origin and transport diagnosis. Use danvas auth doctor --check-canvas only when a bounded live Canvas check is authorized and credential delivery is available.
Load Focused References Only As Needed
- Read references/discovery.md when command selection or machine-readable introspection is the main task.
- Read references/workflows.md for common course, authored-content, grades, Files, and local-sync sequences.
- Read references/safety-and-recovery.md for mutation guards, evidence states, or uncertain outcomes.
- Read references/privacy-and-auth.md for artifact handling and neutral credential boundaries.
Use danvas guide TOPIC for details that may change with the installed CLI.