- Rename master to main - Add release branch workflow (release/vX.Y.Z) - Feature branches now created from release branches - Release branches merge to main when confirmed good
2.4 KiB
2.4 KiB
Sneaky Klaus
A self-hosted Secret Santa organization application.
Project Documentation
docs/PROJECT_OVERVIEW.md- Product vision and scopedocs/BACKLOG.md- User stories with acceptance criteriadocs/decisions/- Architecture Decision Recordsdocs/designs/vX.Y.Z/- Design documents (versioned)
Workflow
This project uses a two-agent workflow coordinated by the main agent:
- Architect (
.claude/agents/architect.md) - Designs systems, produces ADRs and design docs - Developer (
.claude/agents/developer.md) - Implements features from designs using TDD
Flow: User Story → Architect designs → User approves → Developer implements
The main agent coordinates between subagents. If the developer needs architectural clarification, route through the main agent to the architect.
Tech Stack
| Component | Technology |
|---|---|
| Backend | Flask (Python) |
| Database | SQLite |
| Resend | |
| Deployment | Docker |
| Package Manager | uv |
| Testing | pytest (80% coverage target) |
| Linting/Formatting | Ruff |
| Type Checking | mypy |
Commands
uv sync # Install dependencies
uv run flask run # Run development server
uv run pytest # Run tests
uv run ruff check . # Lint
uv run ruff format . # Format
uv run mypy src # Type check
Git Workflow
Release-based workflow with feature branches:
Branch Structure
main- Production-ready code only. Release branches merge here when confirmed good.release/vX.Y.Z- Release branches. Created frommain, feature branches merge here.feature/<story-id>-description- Feature branches. Created from a release branch.fix/<description>- Bug fix branches. Created from a release branch.chore/<description>- Maintenance branches. Created from a release branch.
Workflow
- Start a release: Create
release/vX.Y.Zfrommain - Develop features: Create
feature/branches from the release branch - Complete features: Merge feature branches back to the release branch
- Ship release: When release is confirmed good, merge release branch to
main
Rules
- Release branches are always created from
main - Feature/fix/chore branches are always created from a release branch
- Never commit directly to
main - Delete feature branches after merging to release