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.4---56# Init Project Course78> Bootstrap a university course or module folder into a clean, navigable structure. Designed for taught modules with lectures, workshops, assessments, and optionally recordings.910## When to Use1112- University modules with lectures + workshops + assessments13- Course folders that have accumulated files over a term14- When the user says "organise this module", "init course", "set up this module folder"15- Any taught course with recurring weekly components1617## When NOT to Use — Escalate1819- To `init-project-light` if it's a one-off document collection (no lectures/workshops structure)20- To `init-project-research` if it's a research project that happens to be for a course2122---2324## Phase 1: Scan2526Read everything already in the directory before asking questions.27281. List all files and folders (excluding `.claude/`, `.DS_Store`)292. Identify content types:30 - **Lecture PDFs** — files matching `Lecture*` or containing "lecture" in name31 - **Seminar materials** — files matching `Seminar*`, `Session*`, or containing "seminar" in name (discussion-based modules use seminars instead of lectures)32 - **Lecture recordings** — video files (`.mp4`, `.mov`, `.mkv`, `.webm`, `.avi`) or folders named `recordings`33 - **Workshop folders** — folders matching `Workshop*`, `Lab*`, `Week*`, or numbered folders with exercise content34 - **Assessment folders** — folders containing "group", "individual", "exam", "coursework", "assignment", "portfolio"35 - **Workshop PDFs** — PDFs inside workshop folders that are NOT lectures (exercise sheets, briefs)36 - **Code projects** — `node_modules/`, `package.json`, `.py`, `.js`, `.ts` files inside workshop folders37 - **Notes** — personal notes, reading lists, exercise solutions (common in student modules)383. Detect duplicates: lecture PDFs that appear in multiple locations394. Note workshop numbering gaps (normal — not every week has a workshop)405. Check for existing organisation (already has `lectures/`, `workshops/`, etc.)4142**Goal:** Build a complete inventory so the interview is short.4344---4546## Phase 2: Interview (4-5 questions max)4748Use `the available structured-question mechanism`. Only ask what you couldn't infer from Phase 1.4950Pick from these (skip any you can already answer):51521. **What module is this?** — code + name (e.g., "IB9PK Advances in Behavioural Science")532. **Are you a student or instructor?** — determines template variant (see Phase 3)543. **Who teaches it?** — name(s) and role(s) (for student modules: instructor name; for instructor modules: module leader if different)554. **What components exist?** — lectures/seminars, workshops, group work, individual work, exams, recordings565. **Status?** — still in progress (more content coming) or archived/complete5758If Phase 1 gave you enough, confirm your understanding instead of asking:59> "This looks like [module code + name]. You're [student/instructor]. It has [N] workshops, [N] lecture PDFs, and [assessment types]. Still in progress. Correct?"6061**Always interview** — even if scan is comprehensive. Course folders affect a full term of work; assumptions are expensive.6263---6465## Phase 3: Organise6667Present the proposed structure and **wait for explicit approval** before moving anything.6869Full templates (student + instructor directory structures), workshop naming, lecture/recording/assessment handling rules: [references/organise-templates.md](references/organise-templates.md)7071---7273## Phase 4: Create CLAUDE.md7475Follow the `lean-guidance-files` rule. Include only:76771. **Module overview** — code, name, institution, programme, credits, 1-2 sentence description782. **People** — instructor(s) and/or student, role793. **Assessment** — type(s), format, word count/page limit, deadline(s) if known804. **Directory structure** — compact tree of the organised layout815. **Conventions** — detectable patterns (LaTeX compilation, GitHub repo naming, submission format)826. **Status note** — "in progress" or "complete/archived", with note on what's still to come8384**Do NOT include:**85- Lecture-by-lecture notes86- Workshop solution details87- Full assessment criteria (those live in `docs/` or `assessments/`)88- Anything that duplicates global rules8990---9192## Phase 5: Seed MEMORY.md9394Create `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)9596---9798## Phase 6: Settings99100Create `.claude/settings.local.json` if missing. Full details: [references/memory-and-settings.md](references/memory-and-settings.md)101102---103104## Phase 7: Vault Sync105106Offer 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)107108---109110## Phase 8: Confirmation111112Short report:113114```115Set up course project: <module code + name>116Role: Student / Instructor117118Created:119 - CLAUDE.md120 - MEMORY.md (seeded with [student/instructor] template)121 - lectures/ or seminars/ (N PDFs, deduplicated from M locations)122 - notes/ (student only, if applicable)123 - recordings/ (if applicable)124 - workshops/ (N workshops, renamed from original folders)125 - assessments/{types}/ (moved from original folders)126 - docs/ (module specification, guidelines)127 - [.claude/settings.local.json if created]128 - [vault entry created in Modules Pipeline (Student/Instructor)]129130Workshop naming:131 "Workshop 1 - JavaScript Bootcamp" → workshops/01-javascript-bootcamp132 "Workshop 6" → workshops/06-cwe-vulnerability-analysis133 ...134```135136---137138## Cross-References139140| Skill | Relationship |141|-------|-------------|142| `init-project-light` | For non-course document collections |143| `init-project-research` | For research projects within a course |144| `audit-project-course` | Run later to check the structure is still clean |145| `update-project-doc` | Run later to refresh CLAUDE.md if the module grows |