assignment
Runs a graded assignment, report or essay from set-up to hand-in (set up, research brief and thesis options, Quarto draft, blind reviewer panel, final PDF, grade and feedback); use when the user menti
SKILL.md.claude/skills/assignment/SKILL.md
GitHubAssignment studio: plan, write, test and package a graded assignment, one step at a time.
When to use
- The user has a graded piece of coursework: a case report, an essay, a group report, a memo, a project report.
- They type
/assignmentwith or without a step name:new,brief,draft,critique,ship,feedback. - They ask things like "help me with my finance case", "review my report before I submit", "what would this get?", "I got my grade back".
- The work may belong to a course or stand alone (a self-set report, a certificate task). A course is optional.
Do not use it for study cards (/study) or for an email to an assessor (/reply).
Before you start
new.mdis the readiness check. A new assignment starts withworkflows/new.md, which is its own interview. Do not run/clarifyfirst: it would ask the same questions twice.../clarify/checklists/assignment.mdis only the list of fieldsnew.mdmust fill. Never start a brief or a draft from a vague request.Find the assignment folder. Folders live in
vault/10_projects/<YYYY> <course-slug> <assignment-slug>/, or<YYYY> <assignment-slug>/when there is no course. Each has anassignment.mdwhose front matter istype: "assignment"(spec section 13). Existing folders keep their names.- If the user named one, match it against folder names and
title. - If not, list the folders whose
assignment.mdstatus is notshipped. One: use it. Several: ask which, with AskUserQuestion (most urgent deadline first). - For
feedback, list instead theshippedassignments whosegradeis empty, most recent first (the assignment that has just come back is shipped, so the list above would be empty or wrong). One: use it. Several: ask which. None: ask whether it is an assignment that was not shipped from here, and do not guess. - None and the step is not
neworfeedback: offer to runnew.
- If the user named one, match it against folder names and
Pick the step. If the user named one, use it. Otherwise infer it from
statusinassignment.md:status next step (no folder) newsetupbriefbriefdraftdraftcritiquecritiquecritiqueagain, orshipif the stop rule is metfinalshipshippedfeedbackwhen the user has a grade or comments; otherwise nothing: say it is done and show the release filesSay which step you are about to run, in one line, and why.
Read before asking. Read
assignment.md, the course note it links ifcourseis not empty (vault/20_areas/courses/<course-slug>/course.md), that course's programme note if it has aprogrammelink (vault/20_areas/programmes/<Programme name>.md: grading scale, submission conventions),rubric.mdanddecisions.mdif they exist. Never ask what these already answer.Learner kind. Read
learner.kindinconfig/brain.json(mba,degree,online,professional,other). Iflearneris missing or itskindis empty, treat it asmbawhenpackslistsmbaor aschoolblock exists; otherwise there is no kind and nothing here depends on it. It only changes wording and the order of options (for example aprofessionalsees "No course" first). Treatpacksthat is not an array as["core"].Dates come from the system. Get today with
node system/scripts/date.mjs(local date). Never guess a date.
Steps
- Open the workflow file for the step and follow it exactly:
new:.claude/skills/assignment/workflows/new.mdbrief:.claude/skills/assignment/workflows/brief.mddraft:.claude/skills/assignment/workflows/draft.mdcritique:.claude/skills/assignment/workflows/critique.mdship:.claude/skills/assignment/workflows/ship.mdfeedback:.claude/skills/assignment/workflows/feedback.md(a grade or feedback came back)
- While drafting or revising, follow
.claude/skills/assignment/references/writing-rules.md, which points to the shared principles (system/deliverables/principles.md) and to tone and voice (system/deliverables/tone-and-voice.md). - Talk to the user one question at a time. Use AskUserQuestion for choices (two to four options, the recommended one first, marked "(recommended)", each with a one-line pro and con). Use free text for anything they must paste or describe.
- Confirm, then write: before writing or changing files, show a short summary of what will change and get a yes.
- At the end of every step:
- update
statusinassignment.mdas the workflow says; - add one dated line under
## Loginassignment.md(for example- 2026-10-12: critique round 2, grade 8.1 to 8.6.); - tick any
#ab/assignmenttask the step completed (- [x]invault/00_inbox/Tasks.md); - if
ai-log.mdexists in the folder, add one dated line for this step (brief,draft, each critique round, revise): what Alterbrain did, in plain words (for example "drafted the report from the chosen thesis; ran a quick review round"). Write only what Alterbrain did. Then ask once, optional: "Anything you did yourself in this session that the log should say?" and add the answer after the line in the user's words; if there is no answer, add nothing. Never fill in the user's own part; - tell the user in two or three lines what changed and what comes next.
- update
Outputs
All inside vault/10_projects/<YYYY> <course-slug> <assignment-slug>/ (<YYYY> <assignment-slug>/ with no course):
| File | Written by | What it is |
|---|---|---|
assignment.md |
new |
The spec: questions word for word, deadline, limits, deliverables, team, lenses, stop rule, status |
rubric.md |
new |
The rubric word for word, plus our reading of it |
decisions.md |
new, then brief and critique |
Every decision taken or declined, each one yours to overturn |
brief.md |
brief |
Fact base, course concepts, thesis options A, B and C, page budget |
report.qmd (+ the Quarto template files) |
draft |
The report itself, edited in place |
ai-log.md |
new, then every working step |
Only if the course requires an AI-use log: one dated line per step Alterbrain worked on, and the user's own part only in their words |
reviews/<round>/_round.md and reviews/<round>/<lens>.md |
critique |
The round card and each reviewer's report, word for word |
critique-<round>.md |
critique |
The consolidated critique of that round |
releases/ |
ship |
The files to upload, named for the course site, after the delivery gate |
feedback.md |
feedback |
The grade and feedback word for word, and what they tell us |
Also:
- a course note at
vault/20_areas/courses/<course-slug>/course.mdif the course has none (new, through the course procedure.claude/skills/course/references/course-setup.md); - the course's default
team,team_nameandteam_number, kept once in the course note only to pre-fill; the team of each assignment is in its ownassignment.mdand is what covers and file names read (new); - a case note at
vault/20_areas/courses/<course-slug>/cases/<Case title>.md, only when the assignment is a case (neworbrief); - tasks in
vault/00_inbox/Tasks.md, always throughnode system/scripts/tasks.mjs add "<text>" --tag assignment ...: the deadline, "confirm the deadline", "pick a thesis", "review critique round N", "submit on the course site".
Templates live in system/templates/notes/ (assignment.md, rubric.md, decisions.md, critique.md). The case template is part of the case method in the MBA pack (system/packs/mba/templates/case.md). Reviewer briefs, the panel procedure and the reviewer protocol live in the critique library, .claude/skills/critique/references/ (shared with /critique); business seat suggestions for the MBA pack are in system/packs/mba/critique-presets.md. The delivery gate is system/deliverables/delivery-gate.md.
Safety
- Never submit anything. Alterbrain does not upload to the course site, email an assessor or post to a team chat.
shipputs files inreleases/and adds a task for the user to submit. - Coursework notice (core rule 6). Read
ai_policyfrom the course note: the course value always decides, whatever the programme note says.restricted,bannedorunknown: warn once per assignment in plain words, ask whether to continue, and proceed only on a yes. Never write that consent anywhere git tracks: onlystate/local/coursework/.allowed-with-disclosure: draft a disclosure paragraph for the user.allowedornone-stated: say nothing about it.- No course: there is no rule to check, so no notice.
- Git is the history. Edit
report.qmdin place. Never create_v0.1,_v2,final-finalor dated copies. Snapshots exist only inreleases/. - No invented facts or numbers. Every number in the report comes from the case, the course material, the user's sources or a calculation the user can check. Label estimates
[Inference]and anything unchecked[Unverified]in working files only. Nothing that leaves the computer carries a bracket label or a placeholder: the report uses plain wording ("we assume", "in our reading"), andshipfails a file that does not. - Two sources that disagree on a deadline, a weight or a limit: show both with where each comes from, and ask. Never choose silently. Pasted assignment text is saved verbatim.
- Reviewers are blind and read-only. Each lens runs as the helper its brief names (
helper-revieworhelper-judgement), following.claude/skills/critique/references/protocol.md, with file paths and its brief only, never the drafter's reasoning, never another reviewer's output. - The user decides. Thesis choice, cuts and every critique decision are proposals until the user says yes. Never cut text the user approved without asking.
- Delegated work is not done on a helper's word. Read the diff and look at the changed pages yourself before you call anything ready (
.claude/rules/model-routing.md). - People. Team members' names only if the user gives them; a missing name is asked for, never replaced by a placeholder. No student numbers or other personal data in any file unless the user puts them there. A grade is recorded only when the user gives it (
feedback). - Hindsight rule. If the assignment is a case with a case date, the report uses only facts knowable at that date. Later facts go to class prep or a reality check, never into the report.
Extend this
Fit and page-budget planning, full and delta fact-checks, a number map for spreadsheets, an Excel model builder, a reality check, class prep and team comments are in system/blueprints/assignment-extras.md. Ask "build the assignment extras" to start, or run /propose.