Files
claude-playground/CLAUDE.md
christianandClaude Opus 5.5 24541f0602 Install hooks by copying into .git/hooks instead of core.hooksPath
Linking core.hooksPath to the tracked, sandbox-writable .githooks/ let a
sandboxed command rewrite a hook that git commit/push then run unsandboxed.
Copies in .git/hooks can't be changed from the sandbox. This also keeps
existing .git/hooks scripts working and lets npm install succeed outside a
git checkout. pre-merge-commit now names itself in errors; hook tests clean
up, ignore GIT_* env and cover the installer; docs state what each layer
does and doesn't stop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 00:44:30 +02:00

838 B

claude-playground

A tiny zero-dependency Node.js todo CLI, used as a sandbox for trying Claude Code features.

Commands

  • npm install — once per clone (no dependencies): installs the git hooks that block commits and pushes to main. If it fails in the sandbox, ask the human to run it.
  • npm test — run the test suite (built-in node:test)
  • npm start -- add "something" / npm start -- ls — run the CLI (data in todos.json, override with TODO_FILE)

Conventions

  • ES modules, Node >= 20, no third-party dependencies.
  • src/todo.js holds pure functions; keep I/O in load/save and src/cli.js.
  • Every behavior change gets a test in test/.
  • Commit messages: short imperative subject line.

Remote

Gitea at code.westerkam.org — origin = git@code.westerkam.org:christian/claude-playground.git.