Skip to content
Back to skills

Init Project Course

ASecurity

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.

  • 144 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 23, 2026
ai-agentsjavascriptgojavabashnodegitdatabase

Security analysis

A100/100

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

Scanned September 23, 2026

npx -y skills add flonat/flonat-research --skill init-project-course --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Init Project Course?

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

Security grade badge for Init Project Course
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/flonat-init-project-course/badge)](https://www.skillsdirectory.com/skills/flonat-init-project-course)

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: init-project-course
description: "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."
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 `the available structured-question mechanism`. 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-guidance-files` 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 |

Files in this skill

  • SKILL.md6.4 KB
  • references/memory-and-settings.md2 KB
  • references/organise-templates.md4.1 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.