CLAUDE.md
Composed from the answers you gave and the bundles you picked. Your own paragraphs stay where you put them.
# acme-web ## Git <!-- skills:base:pushes=ask --> - Never push without explicit approval, even after a commit was approved.
CLAUDE.md · rules · skills · hooksCLAUDE.md · .claude/rules · .claude/skills · .claude/hooks
This is the Claude Code setup I use on my own projects: a CLAUDE.md, some rules, skills and hooks. It is split into bundles so you can take the parts that fit and leave the rest. The web builder and the CLI write the same files.
$ pnpx @patrity/skills init --yes --profile nuxt-app.claude/rules/browser-testing.md.claude/skills/browser-testing/SKILL.md.claude/rules/docs.md.claude/skills/handover/SKILL.md.claude/skills/wiki-parity/SKILL.md.claude/skills/wiki-parity/_systems.example.json.claude/skills/wiki-parity/wiki-parity.test.ts.claude/rules/backend.md.claude/rules/cli.md.. 18 moreCLAUDE.md.claude/settings.json.claude/settings.local.json.gitignoreSetup written.
One run into an empty project, and what it wrote.
pnpx @patrity/skills init · --yes --profile nuxt-app
A file, a directory and a record. The paths are already relative to your project root, so there is no wrapper directory to dig anything out of.
Composed from the answers you gave and the bundles you picked. Your own paragraphs stay where you put them.
# acme-web ## Git <!-- skills:base:pushes=ask --> - Never push without explicit approval, even after a commit was approved.
Rules scoped to paths, skills with their scripts, hooks, and the settings that wire them up.
.claude/ rules/web-nuxt.md skills/nuxt-docs/SKILL.md hooks/protect-env.sh settings.json skills.lock.json
Every file the tool wrote, hashed. That is how the next run can take a bundle back out without touching your edits.
{
"version": 1,
"projectName": "acme-web",
"answers": { "pm": "pnpm" },
"bundles": {
"nuxt": { "sha": "8f3c1d" }These are my choices, and each one is either a question you can answer differently or a bundle you can leave out.
A rule is a glob and a constraint, and it loads on its own when Claude touches a matching file. A skill is the procedure, and it gets invoked when it is needed. Keeping them apart is what keeps my CLAUDE.md short enough that Claude still reads it. /skill/nuxt
I moved the checks I keep forgetting into hooks, so the harness runs them rather than me. Delete a tracked hook script and the wiring exits 2, which is the behaviour I want from a check I rely on. /skill/quality-hooks
Handovers, a wiki and frozen specs. The wiki is the tier that rots on me, so a registry names every system and a test fails on a system with no page, or a page nobody registered. /skill/docs-discipline
Typecheck, lint and unit tests all pass on a component that never mounted, so I drive the change with playwright-cli: snapshot, act on refs, assert with eval, then read a screenshot. /skill/browser-testing
These are the habits most likely to be wrong for your project, so the wizard asks instead of assuming. full process is brainstorm, spec, plan, TDD, then a two-stage review, and none is on the list too. Memory is off unless you turn it on. /skill/iterative-spec-design
Listed in the order the CLI installs them. Every one is also a zip you can take on its own, with the CLAUDE.md lines that make it make sense.
Lets Claude call the models you run yourself or reach through a gateway, for speech, vision, embeddings, reranking, decisions, images, video and music, from one CSV of endpoints.
Prove UI changes in a real browser with playwright-cli. Install-if-missing, the snapshot→ref→act workflow, the test-account convention and evidence discipline.
A generator for per-library documentation skills. Configure a template and Claude Code fetches a library's real docs from GitHub instead of recalling them.
The three-tier docs model (handovers, living wiki, frozen specs) with a handover skill and a mechanical wiki-parity test.
Design a system section by section with an approval checkpoint after each one, so a wrong assumption is caught in section two instead of in the finished spec.
Nuxt 4 framework docs fetcher and the rule that makes Claude Code check it before guessing a composable.
Nuxt UI v4 component docs and template fetchers plus the rule that makes Claude Code check them before touching a .vue file.
Fail-closed Claude Code hooks: protect .env and credential files, lint after every edit, and flag an unwritten convention before context is compacted.
A dedicated read-only role, a one-statement runner wrapped in BEGIN READ ONLY, and the rule that keeps destructive SQL out of Claude's hands.
The ssh argument-flattening trap that silently runs your command on the wrong machine, the two forms that work, and the base64 hop for anything with nested quotes or SQL.
I evicted my self-hosted autocomplete model to make room for Cloudflare's Clef, a local Jev alternative, and found its only remaining user was an AI agent.
September 14, 2026I have to spec a two-to-four card inference node, so one Blackwell went on the bench first. Every throughput test picked one winner. Then a benchmark that actually compiles the code scored it 28.9% against 64.4%.
Take the whole thing, or just the bundle you came for.