---
name: init-project-course
description: "Use when you need to bootstrap a university course or module folder."
allowed-tools: Bash(mkdir*), Bash(mv*), Bash(ls*), Bash(tree*), Bash(find*), Bash(rm*), Bash(cp*), Read, Write, Edit, Glob, Grep, AskUserQuestion
argument-hint: "[no arguments — runs in current directory]"
---

# Init Project Course

> Bootstrap a university course or module folder into a clean, navigable structure. Designed for taught modules with lectures, workshops, assessments, and optionally recordings.

## When to Use

- University modules with lectures + workshops + assessments
- Course folders that have accumulated files over a term
- When the user says "organise this module", "init course", "set up this module folder"
- Any taught course with recurring weekly components

## When NOT to Use — Escalate

- To `/init-project-light` if it's a one-off document collection (no lectures/workshops structure)
- To `/init-project-research` if it's a research project that happens to be for a course

---

## Phase 1: Scan

Read everything already in the directory before asking questions.

1. List all files and folders (excluding `.claude/`, `.DS_Store`)
2. Identify content types:
   - **Lecture PDFs** — files matching `Lecture*` or containing "lecture" in name
   - **Seminar materials** — files matching `Seminar*`, `Session*`, or containing "seminar" in name (discussion-based modules use seminars instead of lectures)
   - **Lecture recordings** — video files (`.mp4`, `.mov`, `.mkv`, `.webm`, `.avi`) or folders named `recordings`
   - **Workshop folders** — folders matching `Workshop*`, `Lab*`, `Week*`, or numbered folders with exercise content
   - **Assessment folders** — folders containing "group", "individual", "exam", "coursework", "assignment", "portfolio"
   - **Workshop PDFs** — PDFs inside workshop folders that are NOT lectures (exercise sheets, briefs)
   - **Code projects** — `node_modules/`, `package.json`, `.py`, `.js`, `.ts` files inside workshop folders
   - **Notes** — personal notes, reading lists, exercise solutions (common in student modules)
3. Detect duplicates: lecture PDFs that appear in multiple locations
4. Note workshop numbering gaps (normal — not every week has a workshop)
5. Check for existing organisation (already has `lectures/`, `workshops/`, etc.)

**Goal:** Build a complete inventory so the interview is short.

---

## Phase 2: Interview (4-5 questions max)

Use `AskUserQuestion`. Only ask what you couldn't infer from Phase 1.

Pick from these (skip any you can already answer):

1. **What module is this?** — code + name (e.g., "IB9PK Advances in Behavioural Science")
2. **Are you a student or instructor?** — determines template variant (see Phase 3)
3. **Who teaches it?** — name(s) and role(s) (for student modules: instructor name; for instructor modules: module leader if different)
4. **What components exist?** — lectures/seminars, workshops, group work, individual work, exams, recordings
5. **Status?** — still in progress (more content coming) or archived/complete

If Phase 1 gave you enough, confirm your understanding instead of asking:
> "This looks like [module code + name]. You're [student/instructor]. It has [N] workshops, [N] lecture PDFs, and [assessment types]. Still in progress. Correct?"

**Always interview** — even if scan is comprehensive. Course folders affect a full term of work; assumptions are expensive.

---

## Phase 3: Organise

Present the proposed structure and **wait for explicit approval** before moving anything.

Full templates (student + instructor directory structures), workshop naming, lecture/recording/assessment handling rules: [references/organise-templates.md](references/organise-templates.md)

---

## Phase 4: Create CLAUDE.md

Follow the `lean-claude-md` rule. Include only:

1. **Module overview** — code, name, institution, programme, credits, 1-2 sentence description
2. **People** — instructor(s) and/or student, role
3. **Assessment** — type(s), format, word count/page limit, deadline(s) if known
4. **Directory structure** — compact tree of the organised layout
5. **Conventions** — detectable patterns (LaTeX compilation, GitHub repo naming, submission format)
6. **Status note** — "in progress" or "complete/archived", with note on what's still to come

**Do NOT include:**
- Lecture-by-lecture notes
- Workshop solution details
- Full assessment criteria (those live in `docs/` or `assessments/`)
- Anything that duplicates global rules

---

## Phase 5: Seed MEMORY.md

Create `MEMORY.md` using the appropriate template (student or instructor). Templates, settings.local.json, and vault entry details: [references/memory-and-settings.md](references/memory-and-settings.md)

---

## Phase 6: Settings

Create `.claude/settings.local.json` if missing. Full details: [references/memory-and-settings.md](references/memory-and-settings.md)

---

## Phase 7: Vault Sync

Offer to create entries in the vault tracking for this module (Student or Instructor). Database IDs and field mappings: [references/memory-and-settings.md](references/memory-and-settings.md)

---

## Phase 8: Confirmation

Short report:

```
Set up course project: <module code + name>
Role: Student / Instructor

Created:
  - CLAUDE.md
  - MEMORY.md (seeded with [student/instructor] template)
  - lectures/ or seminars/ (N PDFs, deduplicated from M locations)
  - notes/ (student only, if applicable)
  - recordings/ (if applicable)
  - workshops/ (N workshops, renamed from original folders)
  - assessments/{types}/ (moved from original folders)
  - docs/ (module specification, guidelines)
  - [.claude/settings.local.json if created]
  - [vault entry created in Modules Pipeline (Student/Instructor)]

Workshop naming:
  "Workshop 1 - JavaScript Bootcamp" → workshops/01-javascript-bootcamp
  "Workshop 6" → workshops/06-cwe-vulnerability-analysis
  ...
```

---

## Cross-References

| Skill | Relationship |
|-------|-------------|
| `/init-project-light` | For non-course document collections |
| `/init-project-research` | For research projects within a course |
| `/audit-project-course` | Run later to check the structure is still clean |
| `/update-project-doc` | Run later to refresh CLAUDE.md if the module grows |
