diff --git a/CLAUDE.md b/CLAUDE.md index 6d24e56..66dafe7 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,32 +4,37 @@ This document contains project-specific instructions for working with the Epheme ## Project Overview -Ephemere is a collection of ephemeral scripts for various tasks, written in TypeScript and Python. It contains utilities for: +Ephemere is a collection of ephemeral scripts for various tasks, written in TypeScript, Python, and Bash. It contains utilities for: - S3 operations (upload, bulk upload, delete, content type correction) - Discord bot utilities - Discourse forum management - Gitea/GitHub operations - Security analysis tools - Music-related scripts -- Various utility functions +- Cohort programme management (Python + Bash) +- YubiKey SSH key and permission utilities (Bash) ## Project Structure ``` ephemere/ ├── typescript/ # TypeScript scripts -│ ├── src/ -│ │ ├── s3/ # S3 operations (upload, delete, bulk operations) -│ │ ├── discord/ # Discord bot and utilities -│ │ ├── discourse/ # Discourse forum management -│ │ ├── gitea/ # Gitea API interactions -│ │ ├── github/ # GitHub API interactions -│ │ ├── security/ # Security analysis tools -│ │ ├── music/ # Music-related utilities -│ │ └── utils/ # Shared utilities -│ └── data/ # Data files for S3 uploads -├── python/ # Python scripts -└── prod.env # 1Password vault references (safe to commit) +│ └── src/ +│ ├── s3/ # S3 operations (upload, delete, bulk operations) +│ ├── discord/ # Discord bot and utilities +│ ├── discourse/ # Discourse forum management +│ ├── gitea/ # Gitea API interactions +│ ├── github/ # GitHub API interactions +│ ├── security/ # Security analysis tools +│ ├── music/ # Music-related utilities +│ └── utils/ # Shared utilities +├── python/ +│ └── cohort/ # Cohort programme management scripts +├── bash/ +│ ├── cohort/ # GitHub team management for cohorts +│ └── yubikey/ # YubiKey SSH key and permission utilities +├── data/ # Input/output data files (gitignored) +└── prod.env # 1Password vault references (safe to commit) ``` ## Development Standards @@ -37,13 +42,20 @@ ephemere/ ### TypeScript Scripts - All TypeScript scripts must follow Naomi's Node.js project standards - Use `@nhcarrigan/typescript-config` and `@nhcarrigan/eslint-config` -- Run scripts using the Makefile: `make run-ts src/path/to/script.ts` +- Run scripts using the interactive runner: `make run` (select TypeScript → category → script) - Interactive scripts should use `@inquirer/prompts` for user input ### Python Scripts - Use `uv` for package management - Linting and formatting with `ruff` -- Run scripts using the Makefile: `make run-py script_name.py` +- Scripts live in subdirectories of `python/` (e.g. `python/cohort/`) +- Run scripts using the interactive runner: `make run` (select Python → category → script) + +### Bash Scripts +- Scripts live in subdirectories of `bash/` (e.g. `bash/cohort/`, `bash/yubikey/`) +- Run scripts using the interactive runner: `make run` (select Bash → category → script) +- Or run directly: `bash bash//