From 20d6c2549d16ce4563bca12e592168aacd58ba69 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 10 Aug 2025 00:20:59 +0000 Subject: [PATCH] Renamed from Boilerplate to CleverClaude --- .forgejo/workflows/ci.yml | 4 +- .gitignore | 25 +++ README.md | 36 ++-- docs/api.md | 8 +- docs/behaviour.md | 6 +- docs/deployment.md | 28 +-- docs/devcontainer.md | 170 +++++++++--------- docs/index.md | 26 +-- docs/troubleshooting.md | 12 +- features/cli.feature | 10 +- features/steps/cli_steps.py | 6 +- k8s/Chart.yaml | 4 +- k8s/templates/_helpers.tpl | 20 +-- k8s/templates/configmap.yaml | 4 +- k8s/templates/deployment.yaml | 10 +- k8s/templates/hpa.yaml | 6 +- k8s/templates/service.yaml | 6 +- k8s/values.yaml | 4 +- mkdocs.yml | 6 +- pyproject.toml | 8 +- src/boilerplate/__main__.py | 6 - src/{boilerplate => cleverclaude}/__init__.py | 0 src/cleverclaude/__main__.py | 6 + src/{boilerplate => cleverclaude}/cli.py | 2 +- 24 files changed, 219 insertions(+), 194 deletions(-) delete mode 100644 src/boilerplate/__main__.py rename src/{boilerplate => cleverclaude}/__init__.py (100%) create mode 100644 src/cleverclaude/__main__.py rename src/{boilerplate => cleverclaude}/cli.py (90%) diff --git a/.forgejo/workflows/ci.yml b/.forgejo/workflows/ci.yml index f59dc1a..f047cf7 100644 --- a/.forgejo/workflows/ci.yml +++ b/.forgejo/workflows/ci.yml @@ -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] diff --git a/.gitignore b/.gitignore index 09f4fd4..60e7a0a 100644 --- a/.gitignore +++ b/.gitignore @@ -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 diff --git a/README.md b/README.md index bd5bda7..288ac0b 100644 --- a/README.md +++ b/README.md @@ -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 diff --git a/docs/api.md b/docs/api.md index 431e5aa..3769bfb 100644 --- a/docs/api.md +++ b/docs/api.md @@ -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" ``` \ No newline at end of file diff --git a/docs/behaviour.md b/docs/behaviour.md index 0189431..2afdb51 100644 --- a/docs/behaviour.md +++ b/docs/behaviour.md @@ -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 ``` diff --git a/docs/deployment.md b/docs/deployment.md index 39411ec..5bb380d 100644 --- a/docs/deployment.md +++ b/docs/deployment.md @@ -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 diff --git a/docs/devcontainer.md b/docs/devcontainer.md index 38df81c..eb3f582 100644 --- a/docs/devcontainer.md +++ b/docs/devcontainer.md @@ -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) ``` diff --git a/docs/index.md b/docs/index.md index 3c806f6..2350c75 100644 --- a/docs/index.md +++ b/docs/index.md @@ -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! \ No newline at end of file +**Ready to modernize your Python development with CleverClaude?** Choose your preferred setup method above and experience the power of modern Python tooling! \ No newline at end of file diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index 9baf6f7..8425bca 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -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 @@ -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 # 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/) diff --git a/features/cli.feature b/features/cli.feature index a1a5e97..7d7f82b 100644 --- a/features/cli.feature +++ b/features/cli.feature @@ -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 " + When I run "python -m cleverclaude --name " Then the exit code should be 0 And the output should contain "Hello, !" diff --git a/features/steps/cli_steps.py b/features/steps/cli_steps.py index 238e965..b18dadd 100644 --- a/features/steps/cli_steps.py +++ b/features/steps/cli_steps.py @@ -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) diff --git a/k8s/Chart.yaml b/k8s/Chart.yaml index 784c92d..2c77d3a 100644 --- a/k8s/Chart.yaml +++ b/k8s/Chart.yaml @@ -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" diff --git a/k8s/templates/_helpers.tpl b/k8s/templates/_helpers.tpl index 1d389ce..de586d5 100644 --- a/k8s/templates/_helpers.tpl +++ b/k8s/templates/_helpers.tpl @@ -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 }} diff --git a/k8s/templates/configmap.yaml b/k8s/templates/configmap.yaml index e537420..556f188 100644 --- a/k8s/templates/configmap.yaml +++ b/k8s/templates/configmap.yaml @@ -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 }} \ No newline at end of file diff --git a/k8s/templates/deployment.yaml b/k8s/templates/deployment.yaml index 8c12488..ed6913a 100644 --- a/k8s/templates/deployment.yaml +++ b/k8s/templates/deployment.yaml @@ -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: diff --git a/k8s/templates/hpa.yaml b/k8s/templates/hpa.yaml index afb2d54..5cea7d6 100644 --- a/k8s/templates/hpa.yaml +++ b/k8s/templates/hpa.yaml @@ -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: diff --git a/k8s/templates/service.yaml b/k8s/templates/service.yaml index df1a667..8fdf466 100644 --- a/k8s/templates/service.yaml +++ b/k8s/templates/service.yaml @@ -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 }} \ No newline at end of file + {{- include "cleverclaude.selectorLabels" . | nindent 4 }} \ No newline at end of file diff --git a/k8s/values.yaml b/k8s/values.yaml index 608ba91..8eb713b 100644 --- a/k8s/values.yaml +++ b/k8s/values.yaml @@ -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 diff --git a/mkdocs.yml b/mkdocs.yml index 5e31244..e577124 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -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: diff --git a/pyproject.toml b/pyproject.toml index 4d34aff..658227a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -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 diff --git a/src/boilerplate/__main__.py b/src/boilerplate/__main__.py deleted file mode 100644 index cea9e53..0000000 --- a/src/boilerplate/__main__.py +++ /dev/null @@ -1,6 +0,0 @@ -"""Entry point for python -m boilerplate.""" - -from boilerplate.cli import main - -if __name__ == "__main__": - main() diff --git a/src/boilerplate/__init__.py b/src/cleverclaude/__init__.py similarity index 100% rename from src/boilerplate/__init__.py rename to src/cleverclaude/__init__.py diff --git a/src/cleverclaude/__main__.py b/src/cleverclaude/__main__.py new file mode 100644 index 0000000..dd2d317 --- /dev/null +++ b/src/cleverclaude/__main__.py @@ -0,0 +1,6 @@ +"""Entry point for python -m cleverclaude.""" + +from cleverclaude.cli import main + +if __name__ == "__main__": + main() diff --git a/src/boilerplate/cli.py b/src/cleverclaude/cli.py similarity index 90% rename from src/boilerplate/cli.py rename to src/cleverclaude/cli.py index 3ce8f35..986c4fb 100644 --- a/src/boilerplate/cli.py +++ b/src/cleverclaude/cli.py @@ -1,4 +1,4 @@ -"""Command-line interface for boilerplate.""" +"""Command-line interface for CleverClaude.""" import click