Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 10 additions & 5 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,14 +1,19 @@
# Built apps are artifacts; never tracked anywhere in this repo.
builds/

# Course folders are tracked, but only the spec and the source materials
# ship: courses/<name>/spec.md and courses/<name>/materials/. Everything
# else per course (builds/, evals/, scratch) stays local. Ignoring at
# depth two (courses/*/*) instead of courses/* lets the negations work —
# git can't re-include files whose parent directory is ignored.
# Course folders are tracked, but only the canonical spec, an optional
# variant spec, and the source materials ship: courses/<name>/spec.md,
# courses/<name>/spec.coding-agent-lab.md, and courses/<name>/materials/.
# The variant file is a tracked exploration copy of the canonical spec
# (e.g. testing a Decision Ledger change) — same name across every course,
# so this one negation covers all of them without a per-experiment edit.
# Everything else per course (builds/, evals/, scratch) stays local.
# Ignoring at depth two (courses/*/*) instead of courses/* lets the
# negations work — git can't re-include files whose parent directory is ignored.
courses/*/*
!courses/*/spec.md
!courses/*/materials/
!courses/*/spec.coding-agent-lab.md

# Personal scratch file — kept on disk, not version-controlled.
notes.md
Expand Down
10 changes: 7 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -131,9 +131,13 @@ would leak course content into the docs themselves.
- `evals/run-NN/` is generated to match the build. The run number is the join key
between a build and its evaluation — keep them aligned. Evals require an explicit
`run-NN`; if none is given, list the runs in `builds/` and ask — never default.
- **Version control:** per course, only `spec.md` and `materials/` are tracked.
Everything else under `courses/<name>/` — `builds/`, `evals/`, scratch — is
gitignored and stays local to the machine that ran the build.
- **Version control:** per course, only `spec.md`, `materials/`, and an optional
`spec.coding-agent-lab.md` are tracked. The latter is a variant of the canonical
spec for exploring a Decision Ledger change (e.g. removing an Options entry)
without touching `spec.md` itself — same filename across every course, so it
needs no per-experiment `.gitignore` edit. Everything else under
`courses/<name>/` — `builds/`, `evals/`, scratch — is gitignored and stays
local to the machine that ran the build.

## Run numbering
`run-NN` is per course (`run-01`, `run-02`, …). Every new build is a new run —
Expand Down
8 changes: 5 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,8 @@ against the spec it was actually built from, not a spec you regenerated later.
on demand. There is no `Stop` hook, no `.active-run` pointer, no
`build-complete` marker — `evals/run-NN/.session` is a write-once breadcrumb
recording which transcript to slice.
- Per course, only `spec.md` and `materials/` are version-controlled. Everything
else under `courses/<name>/` — `builds/` (built apps are artifacts) and
`evals/` — is gitignored and stays local.
- Per course, only `spec.md`, `materials/`, and an optional
`spec.coding-agent-lab.md` (a tracked variant of the canonical spec, for
exploring a Decision Ledger change without touching `spec.md`) are
version-controlled. Everything else under `courses/<name>/` — `builds/`
(built apps are artifacts) and `evals/` — is gitignored and stays local.
Loading