Renamed from Boilerplate to CleverClaude

This commit is contained in:
Your Name
2025-08-10 00:20:59 +00:00
parent bae6665d94
commit 20d6c2549d
24 changed files with 219 additions and 194 deletions
+2 -2
View File
@@ -105,11 +105,11 @@ jobs:
- name: Build Docker image
run: |
docker build -t boilerplate:test .
docker build -t cleverclaude:test .
- name: Test Docker image
run: |
docker run --rm boilerplate:test --version
docker run --rm cleverclaude:test --version
helm:
needs: [lint, typecheck, behave]
+25
View File
@@ -148,3 +148,28 @@ uv.lock
progress.output
**/settings.local.json
# Claude Flow generated files
.claude/settings.local.json
.mcp.json
claude-flow.config.json
.swarm/
.hive-mind/
memory/claude-flow-data.json
memory/sessions/*
!memory/sessions/README.md
memory/agents/*
!memory/agents/README.md
coordination/memory_bank/*
coordination/subtasks/*
coordination/orchestration/*
*.db
*.db-journal
*.db-wal
*.sqlite
*.sqlite-journal
*.sqlite-wal
claude-flow
claude-flow.bat
claude-flow.ps1
hive-mind-prompt-*.txt
+18 -18
View File
@@ -1,4 +1,4 @@
# Boilerplate
# CleverClaude
[![CI](https://git.cleverthis.com/cleverthis/base/base-python/badges/workflows/ci.yml/badge.svg)](https://git.cleverthis.com/cleverthis/base/base-python/actions)
[![Python 3.13+](https://img.shields.io/badge/python-3.13+-blue.svg)](https://www.python.org/downloads/)
@@ -216,7 +216,7 @@ claude
# Then in Claude Code:
%%tool ruff ruff_check path="src/"
%%tool tests run_tests framework="behave" command="nox -s behave"
%%tool forgejo create_pull_request repo="boilerplate" title="feat: new feature"
%%tool forgejo create_pull_request repo="cleverclaude" title="feat: new feature"
```
#### Infrastructure Management
@@ -760,7 +760,7 @@ This project uses **Behavior-Driven Development (BDD)** with comprehensive fuzzi
# features/cli.feature
Feature: Command-line greeting interface
Scenario: Default greeting
When I run "python -m boilerplate"
When I run "python -m cleverclaude"
Then the exit code should be 0
And the output should contain "Hello, World!"
@@ -782,20 +782,20 @@ Feature: Command-line greeting interface
```bash
# Build development image
docker build -t boilerplate:dev .
docker build -t cleverclaude:dev .
# Run interactively
docker run --rm -it boilerplate:dev bash
docker run --rm -it cleverclaude:dev bash
# Run CLI
docker run --rm boilerplate:dev --name "Docker" --count 3
docker run --rm cleverclaude:dev --name "Docker" --count 3
```
### Production
```bash
# Build optimized production image
docker build -t boilerplate:latest .
docker build -t cleverclaude:latest .
# Run with resource limits
docker run --rm \
@@ -803,12 +803,12 @@ docker run --rm \
--cpus=0.5 \
--read-only \
--user=1000 \
boilerplate:latest --help
cleverclaude:latest --help
# Multi-platform build
docker buildx build \
--platform linux/amd64,linux/arm64 \
-t ghcr.io/cleverthis/boilerplate:latest \
-t ghcr.io/cleverthis/cleverclaude:latest \
--push .
```
@@ -824,10 +824,10 @@ docker buildx build \
```bash
# Deploy with default configuration
helm install boilerplate ./k8s
helm install cleverclaude ./k8s
# Deploy with custom values
helm install boilerplate ./k8s \
helm install cleverclaude ./k8s \
--set image.tag=v0.2.0 \
--set replicaCount=3 \
--set resources.limits.memory=512Mi
@@ -869,7 +869,7 @@ ingress:
```bash
# Deploy to production
helm upgrade --install boilerplate ./k8s \
helm upgrade --install cleverclaude ./k8s \
-f values-production.yaml \
--namespace production \
--create-namespace \
@@ -1009,8 +1009,8 @@ mike set-default latest # Set default version
## 📁 Project Structure
```
boilerplate/
├── src/boilerplate/ # 📦 Source code
cleverclaude/
├── src/cleverclaude/ # 📦 Source code
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Entry point for python -m
│ └── cli.py # Command-line interface
@@ -1091,7 +1091,7 @@ pyright # Type checking (5x faster than mypy)
```gherkin
# BDD scenarios serve as living documentation
Scenario: Custom name greeting
When I run "python -m boilerplate --name Alice"
When I run "python -m cleverclaude --name Alice"
Then the exit code should be 0
And the output should contain "Hello, Alice!"
@@ -1173,7 +1173,7 @@ echo $GRAFANA_API_TOKEN
docker builder prune
# Build with no cache
docker build --no-cache -t boilerplate:latest .
docker build --no-cache -t cleverclaude:latest .
# Check multi-platform support
docker buildx ls
@@ -1251,7 +1251,7 @@ nox -s behave -- --processes 4
### Complete Documentation
Visit **https://cleverthis.github.io/boilerplate** for:
Visit **https://cleverthis.github.io/cleverclaude** for:
- 📋 **Getting Started Guide**
- 🐳 **Development Container Setup**
@@ -1299,7 +1299,7 @@ git checkout -b feature/awesome-feature
claude # Start Claude Code with MCP servers for AI-powered development
# 5. Implement feature
# Edit src/boilerplate/cli.py
# Edit src/cleverclaude/cli.py
# 6. Run tests
nox -s behave
+4 -4
View File
@@ -2,7 +2,7 @@
## CLI Module
### `boilerplate.cli`
### `cleverclaude.cli`
The main command-line interface module.
@@ -18,7 +18,7 @@ The main entry point for the CLI application.
**Example:**
```python
from boilerplate.cli import main
from cleverclaude.cli import main
from click.testing import CliRunner
runner = CliRunner()
@@ -30,11 +30,11 @@ print(result.output)
## Package Information
### `boilerplate.__version__`
### `cleverclaude.__version__`
The current version of the package.
```python
from boilerplate import __version__
from cleverclaude import __version__
print(__version__) # "0.1.0"
```
+3 -3
View File
@@ -8,7 +8,7 @@ All features are documented as Gherkin scenarios that serve as both tests and do
```gherkin
Scenario: Default greeting
When I run "python -m boilerplate"
When I run "python -m cleverclaude"
Then the exit code should be 0
And the output should contain "Hello, World!"
```
@@ -17,7 +17,7 @@ Scenario: Default greeting
```gherkin
Scenario: Custom name greeting
When I run "python -m boilerplate --name Alice"
When I run "python -m cleverclaude --name Alice"
Then the exit code should be 0
And the output should contain "Hello, Alice!"
```
@@ -26,7 +26,7 @@ Scenario: Custom name greeting
```gherkin
Scenario: Multiple greetings
When I run "python -m boilerplate --count 3"
When I run "python -m cleverclaude --count 3"
Then the exit code should be 0
And the output should contain "Hello, World!" 3 times
```
+14 -14
View File
@@ -6,20 +6,20 @@
```bash
# Build with default tag
docker build -t boilerplate:latest .
docker build -t cleverclaude:latest .
# Build with specific version
docker build -t boilerplate:v0.1.0 .
docker build -t cleverclaude:v0.1.0 .
```
### Running the Container
```bash
# Show help
docker run --rm boilerplate:latest
docker run --rm cleverclaude:latest
# Run with custom arguments
docker run --rm boilerplate:latest --name Docker --count 3
docker run --rm cleverclaude:latest --name Docker --count 3
```
### Multi-Platform Builds
@@ -27,7 +27,7 @@ docker run --rm boilerplate:latest --name Docker --count 3
```bash
# Build for multiple platforms
docker buildx build --platform linux/amd64,linux/arm64 \
-t ghcr.io/cleverthis/boilerplate:latest \
-t ghcr.io/cleverthis/cleverclaude:latest \
--push .
```
@@ -43,10 +43,10 @@ docker buildx build --platform linux/amd64,linux/arm64 \
```bash
# Install with default values
helm install boilerplate ./k8s
helm install cleverclaude ./k8s
# Install with custom values
helm install boilerplate ./k8s \
helm install cleverclaude ./k8s \
--set image.tag=v0.1.0 \
--set replicaCount=3
```
@@ -91,7 +91,7 @@ ingress:
Deploy with custom values:
```bash
helm upgrade --install boilerplate ./k8s \
helm upgrade --install cleverclaude ./k8s \
-f values-prod.yaml \
--namespace production \
--create-namespace
@@ -104,26 +104,26 @@ helm upgrade --install boilerplate ./k8s \
kubectl get deployments -n production
# Check pod status
kubectl get pods -n production -l app.kubernetes.io/name=boilerplate
kubectl get pods -n production -l app.kubernetes.io/name=cleverclaude
# Check HPA status
kubectl get hpa -n production
# View logs
kubectl logs -n production -l app.kubernetes.io/name=boilerplate
kubectl logs -n production -l app.kubernetes.io/name=cleverclaude
```
### Rollback
```bash
# View release history
helm history boilerplate -n production
helm history cleverclaude -n production
# Rollback to previous version
helm rollback boilerplate -n production
helm rollback cleverclaude -n production
# Rollback to specific revision
helm rollback boilerplate 3 -n production
helm rollback cleverclaude 3 -n production
```
## CI/CD Pipeline
@@ -155,7 +155,7 @@ deploy:
echo "$KUBECONFIG_DATA" | base64 -d > /tmp/kubeconfig
export KUBECONFIG=/tmp/kubeconfig
helm upgrade --install boilerplate ./k8s \
helm upgrade --install cleverclaude ./k8s \
--namespace production \
--set image.tag=${{ github.sha }} \
--wait
+85 -85
View File
@@ -35,14 +35,14 @@ git clone https://git.cleverthis.com/cleverthis/base/base-python
cd base-python
# Build the development container
docker build -f .devcontainer/Dockerfile -t boilerplate-dev .
docker build -f .devcontainer/Dockerfile -t cleverclaude-dev .
# Run the development container
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
--name boilerplate-dev \
boilerplate-dev bash
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
--name cleverclaude-dev \
cleverclaude-dev bash
```
### 2. Inside the Container
@@ -55,7 +55,7 @@ python --version # Python 3.13.x
which python # /usr/local/bin/python
# Virtual environment is auto-activated
echo $VIRTUAL_ENV # /workspaces/boilerplate/.venv
echo $VIRTUAL_ENV # /workspaces/cleverclaude/.venv
# Check tools are installed
ruff --version # Linting and formatting
@@ -70,7 +70,7 @@ nox -s format # Format code
nox -s typecheck # Type checking
# Test the CLI
python -m boilerplate --name "DevContainer" --count 2
python -m cleverclaude --name "DevContainer" --count 2
```
### 3. Available Shell Aliases
@@ -88,7 +88,7 @@ dev-all # nox (run all checks)
# Docker shortcuts
d # docker
build-docker # docker build -t boilerplate:dev .
build-docker # docker build -t cleverclaude:dev .
# Git shortcuts
gs # git status
@@ -110,15 +110,15 @@ For ongoing development with persistent changes:
```bash
# Create a named container for persistence
docker run -it \
-v $(pwd):/workspaces/boilerplate \
-v boilerplate-venv:/workspaces/boilerplate/.venv \
-v boilerplate-cache:/tmp/uv-cache \
-w /workspaces/boilerplate \
--name boilerplate-dev-persistent \
boilerplate-dev bash
-v $(pwd):/workspaces/cleverclaude \
-v cleverclaude-venv:/workspaces/cleverclaude/.venv \
-v cleverclaude-cache:/tmp/uv-cache \
-w /workspaces/cleverclaude \
--name cleverclaude-dev-persistent \
cleverclaude-dev bash
# Later, restart the same container
docker start -ai boilerplate-dev-persistent
docker start -ai cleverclaude-dev-persistent
```
## IDE Integration
@@ -129,14 +129,14 @@ Connect to your running container from Emacs:
```bash
# 1. Start container with SSH (add to Dockerfile if needed)
docker run -it --name boilerplate-dev \
-v $(pwd):/workspaces/boilerplate \
docker run -it --name cleverclaude-dev \
-v $(pwd):/workspaces/cleverclaude \
-p 2222:22 \
boilerplate-dev
cleverclaude-dev
# 2. In Emacs, connect via TRAMP
# M-x find-file
# /docker:boilerplate-dev:/workspaces/boilerplate/
# /docker:cleverclaude-dev:/workspaces/cleverclaude/
```
**Emacs Configuration:**
@@ -163,30 +163,30 @@ docker run -it --name boilerplate-dev \
```bash
# Run container with vim pre-installed
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev vim
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev vim
# Or use neovim if installed
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev nvim
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev nvim
```
#### Option 2: Host Vim with Container Tools
```bash
# 1. Start container as daemon
docker run -d --name boilerplate-tools \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev tail -f /dev/null
docker run -d --name cleverclaude-tools \
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev tail -f /dev/null
# 2. Create wrapper scripts
cat > vim-ruff << 'EOF'
#!/bin/bash
docker exec boilerplate-tools ruff "$@"
docker exec cleverclaude-tools ruff "$@"
EOF
chmod +x vim-ruff
@@ -197,7 +197,7 @@ chmod +x vim-ruff
```vim
" .vimrc or init.vim
" Python development setup
let g:python3_host_prog = 'docker exec boilerplate-tools python'
let g:python3_host_prog = 'docker exec cleverclaude-tools python'
" Use container tools for linting
let g:ale_linters = {
@@ -217,10 +217,10 @@ let g:ale_fixers = {
```bash
# 1. Start container
docker run -it --name boilerplate-dev \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev bash
docker run -it --name cleverclaude-dev \
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev bash
# 2. Open VS Code and connect to terminal
# Terminal → New Terminal
@@ -254,15 +254,15 @@ The `.devcontainer/devcontainer.json` is pre-configured with:
```bash
# 1. Start container as daemon
docker run -d --name boilerplate-pycharm \
-v $(pwd):/workspaces/boilerplate \
docker run -d --name cleverclaude-pycharm \
-v $(pwd):/workspaces/cleverclaude \
-p 2222:22 \
boilerplate-dev
cleverclaude-dev
# 2. Configure PyCharm remote interpreter
# File → Settings → Project → Python Interpreter
# Add Interpreter → Docker → Existing container
# Container: boilerplate-pycharm
# Container: cleverclaude-pycharm
# Python path: /usr/local/bin/python
```
@@ -277,16 +277,16 @@ services:
context: .
dockerfile: .devcontainer/Dockerfile
volumes:
- .:/workspaces/boilerplate
- boilerplate-venv:/workspaces/boilerplate/.venv
working_dir: /workspaces/boilerplate
- .:/workspaces/cleverclaude
- cleverclaude-venv:/workspaces/cleverclaude/.venv
working_dir: /workspaces/cleverclaude
command: tail -f /dev/null
ports:
- "8000:8000"
- "3000:3000"
volumes:
boilerplate-venv:
cleverclaude-venv:
```
```bash
@@ -314,7 +314,7 @@ docker-compose -f docker-compose.dev.yml up -d
python --version # Python 3.13.x
pip --version # uv-powered pip replacement
which python # /usr/local/bin/python
echo $PYTHONPATH # /workspaces/boilerplate/src
echo $PYTHONPATH # /workspaces/cleverclaude/src
```
### 🛠️ **Development Tools**
@@ -352,12 +352,12 @@ Forward ports from container to host:
```bash
# Forward development server ports
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
-p 8000:8000 \
-p 3000:3000 \
-p 8080:8080 \
boilerplate-dev bash
cleverclaude-dev bash
# Now you can access:
# http://localhost:8000 - Application server
@@ -372,12 +372,12 @@ For better performance, especially on macOS/Windows:
```bash
# Use named volumes for dependencies
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-v boilerplate-venv:/workspaces/boilerplate/.venv \
-v boilerplate-cache:/tmp/uv-cache \
-v boilerplate-node-modules:/workspaces/boilerplate/node_modules \
-w /workspaces/boilerplate \
boilerplate-dev bash
-v $(pwd):/workspaces/cleverclaude \
-v cleverclaude-venv:/workspaces/cleverclaude/.venv \
-v cleverclaude-cache:/tmp/uv-cache \
-v cleverclaude-node-modules:/workspaces/cleverclaude/node_modules \
-w /workspaces/cleverclaude \
cleverclaude-dev bash
```
### Custom Configuration
@@ -387,18 +387,18 @@ Mount custom configuration files:
```bash
# Mount custom git config
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-v $(pwd):/workspaces/cleverclaude \
-v ~/.gitconfig:/home/vscode/.gitconfig:ro \
-v ~/.ssh:/home/vscode/.ssh:ro \
-w /workspaces/boilerplate \
boilerplate-dev bash
-w /workspaces/cleverclaude \
cleverclaude-dev bash
# Mount custom shell config
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-v $(pwd):/workspaces/cleverclaude \
-v ~/.zshrc:/home/vscode/.zshrc.local:ro \
-w /workspaces/boilerplate \
boilerplate-dev bash
-w /workspaces/cleverclaude \
cleverclaude-dev bash
```
### Development Workflow
@@ -406,17 +406,17 @@ docker run -it --rm \
```bash
# 1. Start development container
docker run -it --name dev-session \
-v $(pwd):/workspaces/boilerplate \
-v boilerplate-venv:/workspaces/boilerplate/.venv \
-v $(pwd):/workspaces/cleverclaude \
-v cleverclaude-venv:/workspaces/cleverclaude/.venv \
-p 3000:3000 \
-w /workspaces/boilerplate \
boilerplate-dev bash
-w /workspaces/cleverclaude \
cleverclaude-dev bash
# 2. Inside container - start documentation server
nox -s serve_docs & # Runs in background
# 3. Make changes to code
vim src/boilerplate/cli.py
vim src/cleverclaude/cli.py
# 4. Run tests
dev-test # Quick BDD tests
@@ -449,7 +449,7 @@ For cloud-based development without local Docker:
# Inside Codespace, same commands work:
nox -s behave # Run tests
dev-all # Run all checks
python -m boilerplate --help
python -m cleverclaude --help
```
**Codespace Features:**
@@ -472,7 +472,7 @@ docker ps
docker system prune -f
# Rebuild container
docker build -f .devcontainer/Dockerfile -t boilerplate-dev . --no-cache
docker build -f .devcontainer/Dockerfile -t cleverclaude-dev . --no-cache
```
### Permission Issues
@@ -481,9 +481,9 @@ docker build -f .devcontainer/Dockerfile -t boilerplate-dev . --no-cache
# Run as your user ID
docker run -it --rm \
-u $(id -u):$(id -g) \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev bash
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev bash
# Or fix permissions after
sudo chown -R $(id -u):$(id -g) .
@@ -493,16 +493,16 @@ sudo chown -R $(id -u):$(id -g) .
```bash
# Check if tools are installed
docker run --rm boilerplate-dev which ruff pyright behave nox
docker run --rm cleverclaude-dev which ruff pyright behave nox
# Check PATH
docker run --rm boilerplate-dev echo $PATH
docker run --rm cleverclaude-dev echo $PATH
# Reinstall dependencies
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-w /workspaces/boilerplate \
boilerplate-dev bash -c "uv pip install -e .[dev]"
-v $(pwd):/workspaces/cleverclaude \
-w /workspaces/cleverclaude \
cleverclaude-dev bash -c "uv pip install -e .[dev]"
```
### Performance Issues
@@ -514,10 +514,10 @@ docker run -it --rm \
# Use volumes for better performance
docker run -it --rm \
-v $(pwd):/workspaces/boilerplate \
-v boilerplate-cache:/tmp/uv-cache \
-w /workspaces/boilerplate \
boilerplate-dev bash
-v $(pwd):/workspaces/cleverclaude \
-v cleverclaude-cache:/tmp/uv-cache \
-w /workspaces/cleverclaude \
cleverclaude-dev bash
```
## Best Practices
@@ -525,10 +525,10 @@ docker run -it --rm \
### 🔄 **Container Lifecycle**
```bash
# For short tasks - use --rm
docker run --rm boilerplate-dev nox -s lint
docker run --rm cleverclaude-dev nox -s lint
# For development sessions - use named containers
docker run --name dev-session boilerplate-dev bash
docker run --name dev-session cleverclaude-dev bash
docker start -ai dev-session # Resume later
```
@@ -541,7 +541,7 @@ docker volume ls
docker volume prune
# Backup important data
docker run --rm -v boilerplate-venv:/data -v $(pwd):/backup \
docker run --rm -v cleverclaude-venv:/data -v $(pwd):/backup \
alpine tar czf /backup/venv-backup.tar.gz -C /data .
```
@@ -549,20 +549,20 @@ docker run --rm -v boilerplate-venv:/data -v $(pwd):/backup \
```bash
# Don't store secrets in container images
# Use environment variables or mounted secrets
docker run -e SECRET_KEY="$SECRET_KEY" boilerplate-dev
docker run -e SECRET_KEY="$SECRET_KEY" cleverclaude-dev
# Use read-only mounts when possible
docker run -v $(pwd):/workspace:ro boilerplate-dev
docker run -v $(pwd):/workspace:ro cleverclaude-dev
```
### ⚡ **Performance**
```bash
# Use named volumes for dependencies
-v boilerplate-venv:/workspaces/boilerplate/.venv
-v cleverclaude-venv:/workspaces/cleverclaude/.venv
# Enable BuildKit for faster builds
export DOCKER_BUILDKIT=1
docker build -f .devcontainer/Dockerfile -t boilerplate-dev .
docker build -f .devcontainer/Dockerfile -t cleverclaude-dev .
# Use multi-stage builds for smaller images (already configured)
```
+13 -13
View File
@@ -1,8 +1,8 @@
# Boilerplate
# CleverClaude
**Modern Python 3.13 micro-service starter with bleeding-edge tooling and 60-second cold clone to green CI.**
This is a completely modernized Python starter project that replaces legacy setuptools-based workflows with cutting-edge tools and practices. Built for Python 3.11-3.13 with strict type safety, behavior-driven development, and cloud-native deployment.
CleverClaude is a completely modernized Python starter project that replaces legacy setuptools-based workflows with cutting-edge tools and practices. Built for Python 3.11-3.13 with strict type safety, behavior-driven development, and cloud-native deployment.
## Features
@@ -50,8 +50,8 @@ Get started in 2-3 minutes with zero configuration:
```bash
# Clone and open in VS Code
git clone https://git.cleverthis.com/cleverthis/base/base-python
cd base-python && code .
git clone https://git.cleverthis.com/cleverthis/cleverclaude
cd cleverclaude && code .
# Click "Reopen in Container" when prompted
# Wait 2-3 minutes for automatic setup
@@ -94,8 +94,8 @@ For developers who prefer local development:
pip install uv
# Clone and setup
git clone https://git.cleverthis.com/cleverthis/base/base-python
cd base-python
git clone https://git.cleverthis.com/cleverthis/cleverclaude
cd cleverclaude
# Create virtual environment and install dependencies
uv venv
@@ -187,8 +187,8 @@ dev-all # Alias for nox
### Directory Structure
```
boilerplate/
├── src/boilerplate/ # 📦 Source code with type hints
cleverclaude/
├── src/cleverclaude/ # 📦 Source code with type hints
│ ├── __init__.py # Package initialization
│ ├── __main__.py # Entry point for python -m
│ └── cli.py # Command-line interface
@@ -245,7 +245,7 @@ requires = ["hatchling>=1.21.0"]
build-backend = "hatchling.build"
[project]
name = "boilerplate"
name = "cleverclaude"
version = "0.1.0"
dependencies = ["click>=8.1.7"]
@@ -287,17 +287,17 @@ Tests are written as natural language specifications that serve as both document
```gherkin
Feature: Command-line greeting interface
As a user of the boilerplate CLI
As a user of the CleverClaude CLI
I want to be greeted properly
So that I can verify the application works
Scenario: Default greeting
When I run "python -m boilerplate"
When I run "python -m cleverclaude"
Then the exit code should be 0
And the output should contain "Hello, World!"
Scenario: Custom name greeting
When I run "python -m boilerplate --name Alice"
When I run "python -m cleverclaude --name Alice"
Then the exit code should be 0
And the output should contain "Hello, Alice!"
@@ -461,4 +461,4 @@ noxfile.py # Full Python flexibility
---
**Ready to modernize your Python development?** Choose your preferred setup method above and experience the power of modern Python tooling!
**Ready to modernize your Python development with CleverClaude?** Choose your preferred setup method above and experience the power of modern Python tooling!
+6 -6
View File
@@ -416,10 +416,10 @@ helm lint k8s/
**Solutions**:
```bash
# 1. Check pod status
kubectl get pods -l app.kubernetes.io/name=boilerplate
kubectl get pods -l app.kubernetes.io/name=cleverclaude
# 2. Check pod logs
kubectl logs -l app.kubernetes.io/name=boilerplate
kubectl logs -l app.kubernetes.io/name=cleverclaude
# 3. Describe failing resources
kubectl describe pod <pod-name>
@@ -438,7 +438,7 @@ kubectl describe node
**Solutions**:
```bash
# 1. Check image exists
docker pull ghcr.io/cleverthis/boilerplate:latest
docker pull ghcr.io/cleverthis/cleverclaude:latest
# 2. Check image pull secrets
kubectl get secrets
@@ -446,8 +446,8 @@ kubectl describe secret <image-pull-secret>
# 3. Use local image for testing
# Build locally and use kind/minikube
docker build -t boilerplate:local .
kind load docker-image boilerplate:local
docker build -t cleverclaude:local .
kind load docker-image cleverclaude:local
# 4. Update image pull policy
# In values.yaml
@@ -718,7 +718,7 @@ echo $PYTHONPATH
### Documentation Resources
- **Main Documentation**: https://cleverthis.github.io/boilerplate
- **Main Documentation**: https://cleverthis.github.io/cleverclaude
- **Tool Documentation**:
- [uv docs](https://github.com/astral-sh/uv)
- [Ruff docs](https://docs.astral.sh/ruff/)
+5 -5
View File
@@ -1,5 +1,5 @@
Feature: Command-line greeting interface
As a user of the boilerplate CLI
As a user of the CleverClaude CLI
I want to be greeted properly
So that I can verify the application works
@@ -7,22 +7,22 @@ Feature: Command-line greeting interface
Given the CLI is available
Scenario: Default greeting
When I run "python -m boilerplate"
When I run "python -m cleverclaude"
Then the exit code should be 0
And the output should contain "Hello, World!"
Scenario: Custom name greeting
When I run "python -m boilerplate --name Alice"
When I run "python -m cleverclaude --name Alice"
Then the exit code should be 0
And the output should contain "Hello, Alice!"
Scenario: Multiple greetings
When I run "python -m boilerplate --count 3"
When I run "python -m cleverclaude --count 3"
Then the exit code should be 0
And the output should contain "Hello, World!" 3 times
Scenario Outline: Greeting various names
When I run "python -m boilerplate --name <name>"
When I run "python -m cleverclaude --name <name>"
Then the exit code should be 0
And the output should contain "Hello, <name>!"
+3 -3
View File
@@ -5,7 +5,7 @@ from click.testing import CliRunner
from hypothesis import given as hypothesis_given
from hypothesis import strategies as st
from boilerplate.cli import main
from cleverclaude.cli import main
@given("the CLI is available")
@@ -19,8 +19,8 @@ def step_cli_available(context):
def step_run_command(context, command):
"""Execute a CLI command."""
parts = command.split()
if len(parts) >= 3 and parts[0] == "python" and parts[1] == "-m" and parts[2] == "boilerplate":
args = parts[3:] # Remove "python -m boilerplate"
if len(parts) >= 3 and parts[0] == "python" and parts[1] == "-m" and parts[2] == "cleverclaude":
args = parts[3:] # Remove "python -m cleverclaude"
else:
args = parts
context.result = context.runner.invoke(main, args)
+2 -2
View File
@@ -1,6 +1,6 @@
apiVersion: v2
name: boilerplate
description: Helm chart for boilerplate Python 3.13 micro-service
name: cleverclaude
description: Helm chart for CleverClaude Python 3.13 micro-service
type: application
version: 0.1.0
appVersion: "0.1.0"
+10 -10
View File
@@ -1,14 +1,14 @@
{{/*
Expand the name of the chart.
*/}}
{{- define "boilerplate.name" -}}
{{- define "cleverclaude.name" -}}
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create a default fully qualified app name.
*/}}
{{- define "boilerplate.fullname" -}}
{{- define "cleverclaude.fullname" -}}
{{- if .Values.fullnameOverride }}
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
{{- else }}
@@ -24,16 +24,16 @@ Create a default fully qualified app name.
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "boilerplate.chart" -}}
{{- define "cleverclaude.chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Common labels
*/}}
{{- define "boilerplate.labels" -}}
helm.sh/chart: {{ include "boilerplate.chart" . }}
{{ include "boilerplate.selectorLabels" . }}
{{- define "cleverclaude.labels" -}}
helm.sh/chart: {{ include "cleverclaude.chart" . }}
{{ include "cleverclaude.selectorLabels" . }}
{{- if .Chart.AppVersion }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
{{- end }}
@@ -43,17 +43,17 @@ app.kubernetes.io/managed-by: {{ .Release.Service }}
{{/*
Selector labels
*/}}
{{- define "boilerplate.selectorLabels" -}}
app.kubernetes.io/name: {{ include "boilerplate.name" . }}
{{- define "cleverclaude.selectorLabels" -}}
app.kubernetes.io/name: {{ include "cleverclaude.name" . }}
app.kubernetes.io/instance: {{ .Release.Name }}
{{- end }}
{{/*
Create the name of the service account to use
*/}}
{{- define "boilerplate.serviceAccountName" -}}
{{- define "cleverclaude.serviceAccountName" -}}
{{- if .Values.serviceAccount.create }}
{{- default (include "boilerplate.fullname" .) .Values.serviceAccount.name }}
{{- default (include "cleverclaude.fullname" .) .Values.serviceAccount.name }}
{{- else }}
{{- default "default" .Values.serviceAccount.name }}
{{- end }}
+2 -2
View File
@@ -2,9 +2,9 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "boilerplate.fullname" . }}
name: {{ include "cleverclaude.fullname" . }}
labels:
{{- include "boilerplate.labels" . | nindent 4 }}
{{- include "cleverclaude.labels" . | nindent 4 }}
data:
{{- toYaml .Values.configMap.data | nindent 2 }}
{{- end }}
+5 -5
View File
@@ -1,16 +1,16 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ include "boilerplate.fullname" . }}
name: {{ include "cleverclaude.fullname" . }}
labels:
{{- include "boilerplate.labels" . | nindent 4 }}
{{- include "cleverclaude.labels" . | nindent 4 }}
spec:
{{- if not .Values.autoscaling.enabled }}
replicas: {{ .Values.replicaCount }}
{{- end }}
selector:
matchLabels:
{{- include "boilerplate.selectorLabels" . | nindent 6 }}
{{- include "cleverclaude.selectorLabels" . | nindent 6 }}
template:
metadata:
{{- with .Values.podAnnotations }}
@@ -18,13 +18,13 @@ spec:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
{{- include "boilerplate.selectorLabels" . | nindent 8 }}
{{- include "cleverclaude.selectorLabels" . | nindent 8 }}
spec:
{{- with .Values.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ include "boilerplate.serviceAccountName" . }}
serviceAccountName: {{ include "cleverclaude.serviceAccountName" . }}
securityContext:
{{- toYaml .Values.podSecurityContext | nindent 8 }}
containers:
+3 -3
View File
@@ -2,14 +2,14 @@
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
name: {{ include "boilerplate.fullname" . }}
name: {{ include "cleverclaude.fullname" . }}
labels:
{{- include "boilerplate.labels" . | nindent 4 }}
{{- include "cleverclaude.labels" . | nindent 4 }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ include "boilerplate.fullname" . }}
name: {{ include "cleverclaude.fullname" . }}
minReplicas: {{ .Values.autoscaling.minReplicas }}
maxReplicas: {{ .Values.autoscaling.maxReplicas }}
metrics:
+3 -3
View File
@@ -1,9 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: {{ include "boilerplate.fullname" . }}
name: {{ include "cleverclaude.fullname" . }}
labels:
{{- include "boilerplate.labels" . | nindent 4 }}
{{- include "cleverclaude.labels" . | nindent 4 }}
spec:
type: {{ .Values.service.type }}
ports:
@@ -12,4 +12,4 @@ spec:
protocol: TCP
name: http
selector:
{{- include "boilerplate.selectorLabels" . | nindent 4 }}
{{- include "cleverclaude.selectorLabels" . | nindent 4 }}
+2 -2
View File
@@ -1,7 +1,7 @@
replicaCount: 2
image:
repository: ghcr.io/cleverthis/boilerplate
repository: ghcr.io/cleverthis/cleverclaude
pullPolicy: IfNotPresent
tag: "" # Overrides the image tag whose default is the chart appVersion
@@ -38,7 +38,7 @@ ingress:
className: ""
annotations: {}
hosts:
- host: boilerplate.local
- host: cleverclaude.local
paths:
- path: /
pathType: ImplementationSpecific
+3 -3
View File
@@ -1,9 +1,9 @@
site_name: Boilerplate
site_name: CleverClaude
site_description: Modern Python 3.13 micro-service starter
site_author: CleverThis
site_url: https://cleverthis.github.io/boilerplate
site_url: https://cleverthis.github.io/cleverclaude
repo_name: cleverthis/boilerplate
repo_name: cleverthis/cleverclaude
repo_url: https://git.cleverthis.com/cleverthis/base/base-python
theme:
+4 -4
View File
@@ -3,7 +3,7 @@ requires = ["hatchling>=1.21.0"]
build-backend = "hatchling.build"
[project]
name = "boilerplate"
name = "cleverclaude"
version = "0.1.0"
description = "A modern Python 3.13 micro-service starter"
readme = "README.md"
@@ -45,15 +45,15 @@ dev = [
[project.urls]
Homepage = "https://git.cleverthis.com/cleverthis/base/base-python"
Documentation = "https://cleverthis.github.io/boilerplate"
Documentation = "https://cleverthis.github.io/cleverclaude"
Repository = "https://git.cleverthis.com/cleverthis/base/base-python"
Issues = "https://git.cleverthis.com/cleverthis/base/base-python/issues"
[project.scripts]
boilerplate = "boilerplate.cli:main"
cleverclaude = "cleverclaude.cli:main"
[tool.hatch.build.targets.wheel]
packages = ["src/boilerplate"]
packages = ["src/cleverclaude"]
[tool.ruff]
line-length = 120
-6
View File
@@ -1,6 +0,0 @@
"""Entry point for python -m boilerplate."""
from boilerplate.cli import main
if __name__ == "__main__":
main()
+6
View File
@@ -0,0 +1,6 @@
"""Entry point for python -m cleverclaude."""
from cleverclaude.cli import main
if __name__ == "__main__":
main()
@@ -1,4 +1,4 @@
"""Command-line interface for boilerplate."""
"""Command-line interface for CleverClaude."""
import click