Skip to content
Back to skills

Assignment

ASecurity

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 mentions an assignment, case report, essay or coursework, or types /assignment new, brief, draft, critique, ship or feedback.

  • 3 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 19, 2026
businessgonodegit

Works with

  • cli

Security analysis

A100/100

Pro scans all 8 files and shows the line behind each finding

Scanned October 19, 2026

npx -y skills add joaoribasio/alterbrain --skill assignment --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Assignment?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Assignment
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/joaoribasio-assignment/badge)](https://www.skillsdirectory.com/skills/joaoribasio-assignment)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: assignment
description: 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 mentions an assignment, case report, essay or coursework, or types /assignment new, brief, draft, critique, ship or feedback.
model: sonnet
effort: medium
argument-hint: "new | brief | draft | critique | ship | feedback [assignment name]"
---
# Assignment 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 `/assignment` with 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

1. **`new.md` is the readiness check.** A new assignment starts with `workflows/new.md`, which is its own interview. Do not run `/clarify` first: it would ask the same questions twice. `../clarify/checklists/assignment.md` is only the list of fields `new.md` must fill. Never start a brief or a draft from a vague request.
2. **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 an `assignment.md` whose front matter is `type: "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.md` status is not `shipped`. One: use it. Several: ask which, with AskUserQuestion (most urgent deadline first).
   - **For `feedback`**, list instead the `shipped` assignments whose `grade` is 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 `new` or `feedback`: offer to run `new`.
3. **Pick the step.** If the user named one, use it. Otherwise infer it from `status` in `assignment.md`:

   | status | next step |
   |---|---|
   | (no folder) | `new` |
   | `setup` | `brief` |
   | `brief` | `draft` |
   | `draft` | `critique` |
   | `critique` | `critique` again, or `ship` if the stop rule is met |
   | `final` | `ship` |
   | `shipped` | `feedback` when the user has a grade or comments; otherwise nothing: say it is done and show the release files |

   Say which step you are about to run, in one line, and why.
4. **Read before asking.** Read `assignment.md`, the course note it links if `course` is not empty (`vault/20_areas/courses/<course-slug>/course.md`), that course's programme note if it has a `programme` link (`vault/20_areas/programmes/<Programme name>.md`: grading scale, submission conventions), `rubric.md` and `decisions.md` if they exist. Never ask what these already answer.
5. **Learner kind.** Read `learner.kind` in `config/brain.json` (`mba`, `degree`, `online`, `professional`, `other`). If `learner` is missing or its `kind` is empty, treat it as `mba` when `packs` lists `mba` or a `school` block exists; otherwise there is no kind and nothing here depends on it. It only changes wording and the order of options (for example a `professional` sees "No course" first). Treat `packs` that is not an array as `["core"]`.
6. **Dates come from the system.** Get today with `node system/scripts/date.mjs` (local date). Never guess a date.

## Steps

1. Open the workflow file for the step and follow it exactly:
   - `new`: `.claude/skills/assignment/workflows/new.md`
   - `brief`: `.claude/skills/assignment/workflows/brief.md`
   - `draft`: `.claude/skills/assignment/workflows/draft.md`
   - `critique`: `.claude/skills/assignment/workflows/critique.md`
   - `ship`: `.claude/skills/assignment/workflows/ship.md`
   - `feedback`: `.claude/skills/assignment/workflows/feedback.md` (a grade or feedback came back)
2. 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`).
3. 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.
4. Confirm, then write: before writing or changing files, show a short summary of what will change and get a yes.
5. At the end of every step:
   - update `status` in `assignment.md` as the workflow says;
   - add one dated line under `## Log` in `assignment.md` (for example `- 2026-10-12: critique round 2, grade 8.1 to 8.6.`);
   - tick any `#ab/assignment` task the step completed (`- [x]` in `vault/00_inbox/Tasks.md`);
   - if `ai-log.md` exists 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.

## 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.md` if the course has none (`new`, through the course procedure `.claude/skills/course/references/course-setup.md`);
- the course's default `team`, `team_name` and `team_number`, kept once in the course note only to pre-fill; the team of each assignment is in its own `assignment.md` and 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 (`new` or `brief`);
- tasks in `vault/00_inbox/Tasks.md`, always through `node 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. `ship` puts files in `releases/` and adds a task for the user to submit.
- **Coursework notice (core rule 6).** Read `ai_policy` from the course note: the course value always decides, whatever the programme note says.
  - `restricted`, `banned` or `unknown`: warn once per assignment in plain words, ask whether to continue, and proceed only on a yes. Never write that consent anywhere git tracks: only `state/local/coursework/`.
  - `allowed-with-disclosure`: draft a disclosure paragraph for the user.
  - `allowed` or `none-stated`: say nothing about it.
  - No course: there is no rule to check, so no notice.
- **Git is the history.** Edit `report.qmd` in place. Never create `_v0.1`, `_v2`, `final-final` or dated copies. Snapshots exist only in `releases/`.
- **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"), and `ship` fails 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-review` or `helper-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`.

Files in this skill

  • SKILL.md11 KB
  • references/writing-rules.md5.4 KB
  • workflows/brief.md7.8 KB
  • workflows/critique.md10.5 KB
  • workflows/draft.md9.9 KB
  • workflows/feedback.md4.3 KB
  • workflows/new.md18.7 KB
  • workflows/ship.md10.5 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.