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 |
1---2name: init-project-course3description: "Bootstrap a university course or module folder with the canonical teaching structure, guidance, and starter files. Use when creating or migrating a course workspace. Not for checking an existing course without modifying it; use $audit-project-course."4allowed-tools: Bash(mkdir*), Bash(mv*), Bash(ls*), Bash(tree*), Bash(find*), Bash(rm*), Bash(cp*), Read, Write, Edit, Glob, Grep, AskUserQuestion5argument-hint: "[no arguments — runs in current directory]"6---78# Init Project Course910> Bootstrap a university course or module folder into a clean, navigable structure. Designed for taught modules with lectures, workshops, assessments, and optionally recordings.1112## When to Use1314- University modules with lectures + workshops + assessments15- Course folders that have accumulated files over a term16- When the user says "organise this module", "init course", "set up this module folder"17- Any taught course with recurring weekly components1819## When NOT to Use — Escalate2021- To `init-project-light` if it's a one-off document collection (no lectures/workshops structure)22- To `init-project-research` if it's a research project that happens to be for a course2324---2526## Phase 1: Scan2728Read everything already in the directory before asking questions.29301. List all files and folders (excluding `.claude/`, `.DS_Store`)312. Identify content types:32 - **Lecture PDFs** — files matching `Lecture*` or containing "lecture" in name33 - **Seminar materials** — files matching `Seminar*`, `Session*`, or containing "seminar" in name (discussion-based modules use seminars instead of lectures)34 - **Lecture recordings** — video files (`.mp4`, `.mov`, `.mkv`, `.webm`, `.avi`) or folders named `recordings`35 - **Workshop folders** — folders matching `Workshop*`, `Lab*`, `Week*`, or numbered folders with exercise content36 - **Assessment folders** — folders containing "group", "individual", "exam", "coursework", "assignment", "portfolio"37 - **Workshop PDFs** — PDFs inside workshop folders that are NOT lectures (exercise sheets, briefs)38 - **Code projects** — `node_modules/`, `package.json`, `.py`, `.js`, `.ts` files inside workshop folders39 - **Notes** — personal notes, reading lists, exercise solutions (common in student modules)403. Detect duplicates: lecture PDFs that appear in multiple locations414. Note workshop numbering gaps (normal — not every week has a workshop)425. Check for existing organisation (already has `lectures/`, `workshops/`, etc.)4344**Goal:** Build a complete inventory so the interview is short.4546---4748## Phase 2: Interview (4-5 questions max)4950Use `the available structured-question mechanism`. Only ask what you couldn't infer from Phase 1.5152Pick from these (skip any you can already answer):53541. **What module is this?** — code + name (e.g., "IB9PK Advances in Behavioural Science")552. **Are you a student or instructor?** — determines template variant (see Phase 3)563. **Who teaches it?** — name(s) and role(s) (for student modules: instructor name; for instructor modules: module leader if different)574. **What components exist?** — lectures/seminars, workshops, group work, individual work, exams, recordings585. **Status?** — still in progress (more content coming) or archived/complete5960If Phase 1 gave you enough, confirm your understanding instead of asking:61> "This looks like [module code + name]. You're [student/instructor]. It has [N] workshops, [N] lecture PDFs, and [assessment types]. Still in progress. Correct?"6263**Always interview** — even if scan is comprehensive. Course folders affect a full term of work; assumptions are expensive.6465---6667## Phase 3: Organise6869Present the proposed structure and **wait for explicit approval** before moving anything.7071Full templates (student + instructor directory structures), workshop naming, lecture/recording/assessment handling rules: [references/organise-templates.md](references/organise-templates.md)7273---7475## Phase 4: Create CLAUDE.md7677Follow the `lean-guidance-files` rule. Include only:78791. **Module overview** — code, name, institution, programme, credits, 1-2 sentence description802. **People** — instructor(s) and/or student, role813. **Assessment** — type(s), format, word count/page limit, deadline(s) if known824. **Directory structure** — compact tree of the organised layout835. **Conventions** — detectable patterns (LaTeX compilation, GitHub repo naming, submission format)846. **Status note** — "in progress" or "complete/archived", with note on what's still to come8586**Do NOT include:**87- Lecture-by-lecture notes88- Workshop solution details89- Full assessment criteria (those live in `docs/` or `assessments/`)90- Anything that duplicates global rules9192---9394## Phase 5: Seed MEMORY.md9596Create `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)9798---99100## Phase 6: Settings101102Create `.claude/settings.local.json` if missing. Full details: [references/memory-and-settings.md](references/memory-and-settings.md)103104---105106## Phase 7: Vault Sync107108Offer 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)109110---111112## Phase 8: Confirmation113114Short report:115116```117Set up course project: <module code + name>118Role: Student / Instructor119120Created:121 - CLAUDE.md122 - MEMORY.md (seeded with [student/instructor] template)123 - lectures/ or seminars/ (N PDFs, deduplicated from M locations)124 - notes/ (student only, if applicable)125 - recordings/ (if applicable)126 - workshops/ (N workshops, renamed from original folders)127 - assessments/{types}/ (moved from original folders)128 - docs/ (module specification, guidelines)129 - [.claude/settings.local.json if created]130 - [vault entry created in Modules Pipeline (Student/Instructor)]131132Workshop naming:133 "Workshop 1 - JavaScript Bootcamp" → workshops/01-javascript-bootcamp134 "Workshop 6" → workshops/06-cwe-vulnerability-analysis135 ...136```137138---139140## Cross-References141142| Skill | Relationship |143|-------|-------------|144| `init-project-light` | For non-course document collections |145| `init-project-research` | For research projects within a course |146| `audit-project-course` | Run later to check the structure is still clean |147| `update-project-doc` | Run later to refresh CLAUDE.md if the module grows |