{{PROJECT_DESCRIPTION}}
New to this project? If you just created this from a template, see TEMPLATE_SETUP.md to complete setup, then delete that file.
This project is optimized for cloud-based development using Claude Code. Local development is optional.
- Open Claude Code on iOS/web, select your repo
- Describe a feature or ask for changes
- Claude Code creates a branch, implements, and opens a PR
- CI runs automatically on the PR
- Review and merge the PR in the GitHub app
- Deploy runs automatically on merge to
main
If you need to run locally for debugging:
# Install dependencies
make install
# Run frontend dev server
make dev
# Run backend locally (requires SAM CLI)
make local
# Run tests
make test
# Run linter
make lint- Feature 1
- Feature 2
- Backend: Python 3.12, AWS Lambda, API Gateway
- Frontend: React 18, TypeScript, Tailwind CSS, shadcn/ui
- Infrastructure: AWS SAM, CloudFront, S3
- AI: Claude API (Anthropic)
- CI/CD: GitHub Actions
{{PROJECT_NAME}}/
├── .github/
│ ├── dependabot.yml # Automated dependency updates
│ ├── pull_request_template.md
│ └── workflows/
│ ├── ci.yml # Lint, test, security scan
│ ├── deploy.yml # SAM deploy + frontend to S3
│ └── rollback.yml # One-click rollback
├── backend/
│ ├── src/
│ │ ├── handler.py # Lambda handler
│ │ └── utils/
│ │ └── secrets.py # Secrets Manager helper
│ ├── tests/
│ └── requirements.txt
├── frontend/
│ ├── src/
│ │ ├── components/ # React components
│ │ │ ├── ui/ # shadcn/ui components
│ │ │ ├── ThemeProvider.tsx
│ │ │ └── ThemeToggle.tsx
│ │ └── lib/utils.ts # Tailwind utilities
│ ├── DESIGN.md # Design system docs
│ └── ...config files
├── specs/
│ ├── CONSTITUTION.md # Project principles
│ └── 000-example-feature/ # Spec template
├── .env.example # Required environment variables
├── CLAUDE.md # AI agent instructions
├── Makefile # Common commands
├── pyproject.toml # Python config
└── template.yaml # SAM template
Merging a PR to main triggers automatic deployment:
- CI runs lint, tests, security scans (on PR)
- You approve and merge the PR (your deploy gate)
- Deploy runs SAM deploy and syncs frontend to S3
- CloudFront cache is invalidated
If a deployment breaks:
- Go to GitHub → Actions → Rollback
- Click "Run workflow"
- Select component (backend/frontend/both)
- Type "ROLLBACK" to confirm
- Click "Run workflow"
No .env files in production! Secrets are managed via AWS Secrets Manager.
- Store secrets in AWS Secrets Manager
- Lambda fetches secrets at runtime via
utils/secrets.py - Secrets are cached for Lambda warm starts
- No redeployment needed for secret rotation
# Update the secret
aws secretsmanager update-secret \
--secret-id {{PROJECT_NAME}}/prod \
--secret-string '{"ANTHROPIC_API_KEY": "new-key", "OTHER_SECRET": "value"}'from src.utils.secrets import get_secret_value
api_key = get_secret_value("{{PROJECT_NAME}}/prod", "ANTHROPIC_API_KEY")This project uses a spec-driven workflow. See CLAUDE.md for details.
- Spec: Define requirements in
specs/XXX-feature/spec.md - Plan: Design architecture in
plan.md - Tasks: Break down into atomic tasks in
tasks.md - Implement: Follow the plan
- PR: Create pull request for review
- Complex features with multiple approaches
- Architectural decisions needed
- Unclear requirements
- Bug fixes with clear solutions
- Documentation changes
- Small changes following existing patterns
The frontend uses an information-dense design philosophy. See frontend/DESIGN.md for:
- Typography and spacing scales
- Color system with CSS variables
- Component usage guidelines
- Dark mode implementation
- How to add new components
Never configure without explicit approval:
- Lambda Provisioned Concurrency
- NAT Gateways
- Dedicated hosts
- Any "always-on" compute
Cold starts are acceptable. Pay-per-invocation only.
- Create a feature branch:
git checkout -b 001-feature-name - Follow the spec-driven workflow (if appropriate)
- Ensure tests pass:
make test - Ensure linting passes:
make lint - Create a PR using the template
[Choose a license]