3.0 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
What This Project Is
edu is an mdbook-based static site called Vibed Learning — a collection of self-guided courses and technical references. There is no Rust code here; all content is Markdown. The generated book/ directory is gitignored.
Commands
# Build the static site
mdbook build
# Serve locally with live reload (default: http://localhost:3000)
mdbook serve
# Enter the Nix dev shell (provides mdbook + nbd)
nix develop
# or automatically via direnv: cd into the directory
Content Structure
src/SUMMARY.md— mdbook table of contents; controls site navigation. Every new page must be listed here.src/<page>.md— individual course or reference pagesbook.toml— site title, theme (navy), and source directory
To add a new page: create src/<name>.md, then add it to src/SUMMARY.md under the appropriate section heading.
Task Tracking with nbd
nbd is a CLI tool for managing work tickets, designed for agent workflows.
Initialisation
nbd init
Run once in the project root. Creates .nbd/tickets/. Safe to run multiple times.
Core commands
# Create a new ticket (use --ftype md for a human-readable body)
nbd create --title "Add OAuth login" --type feature --priority 7 --ftype md --json
# List all open tickets (sorted by priority)
nbd list --json
# Read a specific ticket
nbd read <id> --json
# Update a ticket
nbd update <id> --status in_progress --json
nbd update <id> --status done --json
Finding what to work on
# All tickets that are unblocked and ready to start
nbd ready --json
# The single highest-priority unblocked ticket
nbd next --json
Workflow
- Before starting — create a ticket:
nbd create --title "..." --ftype md --json - When starting — mark it in progress:
nbd update <id> --status in_progress --json - When done — mark it complete:
nbd update <id> --status done --json
Guidelines
- Always pass
--jsonto every command for structured, unambiguous output. - Always pass
--ftype mdwhen creating tickets — markdown format keeps the body human-readable. - Use
jqto parse and transform JSON output when needed. - Priority scale 0–10: use 7–9 for bugs, 5 for normal tasks, 3 for nice-to-haves.
--typechoices:project,feature,task,bug.- Use
--deps id1,id2to express blockers — tickets that must be done first. - Create tickets before starting non-trivial tasks, not after.
Ticket IDs appear in commit messages in [<id>] format.
Conventions
Inherits all Git and general conventions from the parent ../CLAUDE.md (Conventional Commits, dual Apache-2.0/MIT license, Nix for dev, etc.).
Scope for commit messages: edu (e.g., docs(edu): write §3 transition matrices).
Stub sections in content are marked with 🚧 and reference an nbd ticket — fill in content and close the ticket when complete.