What they did
Muszarski had Claude Code build his portfolio site one section at a time. Each slice was researched, built with real content, checked and then polished until a further pass found nothing. His CLAUDE.md is a short table that routes kinds of task to pages in a 33-page project wiki. Three hooks do the remembering: one reprints the working rules and a lessons file at every session start and compaction, one injects up to five wiki pages matching each prompt, and one blocks Claude from finishing if code changed but the wiki did not. Done means typecheck, lint, unit tests, Playwright end-to-end runs with accessibility checks, mobile Lighthouse scores and screenshots from 390 to 1920 px in all three languages that Claude has to open and look at. Subagents handled research, with eight sent out in parallel during planning, and fact checks. Missing facts became tagged placeholders that fail the launch build.
How it went
He says the site was built by him and Claude Code in about two weeks. The gates caught failures Claude had reported as finished. A build step merged two CSS animation properties into a shorthand Chrome ignores, so scroll animations silently never ran; a written rule did not stop it coming back three times the next day, so a unit test now scans every stylesheet. A background build piped through tail exited 0 while its log said it failed, leaving a preview serving 404s. The placeholder rule let him ask for every remaining section in one evening and review real pages the next morning. He tracked no token costs.
Worth knowing
Running two or three sessions on one repo caused real damage: one session committed another's unfinished work, an audit ran against the wrong build, and killing Python by name stopped other sessions' servers. His safety rules live in CLAUDE.md, which he notes guides Claude but blocks nothing; settings deny rules are what actually stop a read. The setup is Windows-specific in places, and the lessons file has outgrown the hook's 8,000-character budget.