| 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.
- List all files and folders (excluding
.claude/, .DS_Store)
- 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)
- Detect duplicates: lecture PDFs that appear in multiple locations
- Note workshop numbering gaps (normal — not every week has a workshop)
- 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 the available structured-question mechanism. Only ask what you couldn't infer from Phase 1.
Pick from these (skip any you can already answer):
- What module is this? — code + name (e.g., "IB9PK Advances in Behavioural Science")
- Are you a student or instructor? — determines template variant (see Phase 3)
- Who teaches it? — name(s) and role(s) (for student modules: instructor name; for instructor modules: module leader if different)
- What components exist? — lectures/seminars, workshops, group work, individual work, exams, recordings
- 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
Phase 4: Create CLAUDE.md
Follow the lean-guidance-files rule. Include only:
- Module overview — code, name, institution, programme, credits, 1-2 sentence description
- People — instructor(s) and/or student, role
- Assessment — type(s), format, word count/page limit, deadline(s) if known
- Directory structure — compact tree of the organised layout
- Conventions — detectable patterns (LaTeX compilation, GitHub repo naming, submission format)
- 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
Phase 6: Settings
Create .claude/settings.local.json if missing. Full details: 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
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 |