RedButton / CLAUDE.md
Arun-Sanjay's picture
chore: pin python 3.12, rebuild venv, rename master→main
d589da5
# CLAUDE.md
This file is read by Claude Code at session start. It defines how to work in this repository.
## Project
**Name:** RedButton
**Status:** Setup phase. Spec exists at PROJECT.md; no production code yet.
**Spec location:** PROJECT.md (read end-to-end before any implementation begins).
## Working Style
This project is directed by a two-tier system:
- A high-level prompter (Claude.ai) writes the prompts.
- Claude Code (you) executes them.
The prompts are designed assuming you can handle long, multi-step tasks. Trust the prompts to specify what matters; ask only when something material is genuinely unclear.
When working in this repo:
- Tests are written alongside the code, not after.
- Commits happen at logical task boundaries with descriptive messages. No "Claude" trailers in commit messages.
- Pre-commit hook runs the test suite and linter; do not bypass.
- Push to origin after every committed task unless told otherwise.
## Environment
**Language:** Python (system Python 3.14 detected at scaffold time; ruff/pyproject target floor is 3.11).
**Package manager:** pip, with a project virtualenv at `.venv/`.
**Test runner:** pytest.
**Linter/formatter:** ruff (handles both lint and format).
Always activate the project's virtualenv before running any commands that depend on project deps:
source .venv/bin/activate
The `.venv` is at the repo root and is gitignored.
## Hard Constraints
These are non-negotiable. Flag immediately if you see them creeping in:
- Do not commit secrets, .env files, or credentials.
- Do not add dependencies without explicit approval.
- Do not modify the spec document (PROJECT.md) without explicit approval.
- Do not skip tests to "get it working" — failing tests block commits.
## Subagent Roster
Empty. Subagents will be added when the project needs specialized roles. Defined in `.claude/agents/`.
## Skills
Empty. Skills will be added when task patterns repeat. Defined in `.claude/skills/`.
## Recent State
This section tracks current build state. Update at the end of each significant task.
**Last completed:** Initial scaffold — CLAUDE.md, `.claude/` tree, Python project skeleton (`pyproject.toml`, `src/redbutton/`, `tests/`), pre-commit hook.
**Next up:** Awaiting first task prompt. PROJECT.md should be read in full before any implementation begins.
**Known issues:** None at this time.
## When to Stop and Ask
Stop and ask the user before:
- Installing any package not already in the dependency list.
- Modifying CLAUDE.md or anything in `.claude/` that wasn't created in this task.
- Running anything destructive (rm -rf, force push, dropping databases).
- Making architectural decisions that weren't specified.
Do NOT stop and ask for:
- Standard implementation choices within a specified task.
- Style decisions consistent with existing code.
- Test coverage decisions for code you're writing.