simplicio-cli 0.5.17__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/PKG-INFO +67 -60
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/README.md +56 -49
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/pyproject.toml +14 -12
- simplicio_cli-0.6.0/simplicio/__init__.py +1 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/bench.py +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/cache_cli.py +6 -6
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/cli.py +196 -29
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/detect.py +3 -3
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/doctor.py +68 -5
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/ecosystem.py +50 -6
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/hardware.py +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/init.py +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/intent.py +3 -3
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/local_models.py +9 -9
- simplicio_cli-0.6.0/simplicio/mechanical_edit.py +660 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/orchestrator/feature.py +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/pipeline_fixers.py +75 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/providers.py +118 -27
- simplicio_cli-0.6.0/simplicio/runtime_contracts.py +112 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/cli.py +9 -9
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/plan_schema.py +6 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/skill_opt.py +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/sprint_loader.py +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/SKILL.md +13 -13
- simplicio_cli-0.6.0/simplicio/templates/recipes/go-gin/admin-crud.yaml +35 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/go-gin/auth-jwt.yaml +54 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/php-laravel/admin-crud.yaml +35 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/php-laravel/auth-jwt.yaml +54 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +2 -2
- simplicio_cli-0.6.0/simplicio/templates/recipes/py-fastapi/background-worker.yaml +52 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +2 -2
- simplicio_cli-0.6.0/simplicio/templates/recipes/py-fastapi/file-upload.yaml +52 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/py-fastapi/oauth-integration.yaml +53 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/py-fastapi/scheduled-job.yaml +52 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/py-fastapi/websocket.yaml +52 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/rust-axum/admin-crud.yaml +35 -0
- simplicio_cli-0.6.0/simplicio/templates/recipes/rust-axum/auth-jwt.yaml +44 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/stack.json +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/stack.json +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/pyproject.toml +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/stack.json +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +7 -7
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/stack.json +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +2 -2
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/README.md +1 -1
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/userpromptsubmit-hook.sh +5 -5
- simplicio_cli-0.6.0/simplicio/token_primitives.py +322 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio_cli.egg-info/PKG-INFO +67 -60
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio_cli.egg-info/SOURCES.txt +14 -18
- simplicio_cli-0.6.0/simplicio_cli.egg-info/entry_points.txt +4 -0
- simplicio_cli-0.6.0/simplicio_cli.egg-info/requires.txt +17 -0
- simplicio_cli-0.5.17/simplicio/__init__.py +0 -1
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/__init__.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-cli/tree/src/app/__pycache__/cli.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-cli/tree/tests/__pycache__/test_cli.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/__pycache__/manage.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/app/__pycache__/__init__.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/app/__pycache__/apps.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/app/__pycache__/tests.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/app/__pycache__/views.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/config/__pycache__/__init__.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/config/__pycache__/asgi.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/config/__pycache__/settings.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/config/__pycache__/urls.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-django/tree/config/__pycache__/wsgi.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-fastapi/tree/src/__pycache__/main.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-fastapi/tree/src/api/__pycache__/__init__.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-fastapi/tree/tests/__pycache__/test_health.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-flask/tree/src/__pycache__/app.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio/templates/stacks/py-flask/tree/tests/__pycache__/test_health.cpython-312.pyc +0 -0
- simplicio_cli-0.5.17/simplicio_cli.egg-info/entry_points.txt +0 -2
- simplicio_cli-0.5.17/simplicio_cli.egg-info/requires.txt +0 -17
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/LICENSE +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/setup.cfg +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/_cache.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/adaptive.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/cache.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/dod.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/mapper.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/observability.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/orchestrator/cost_governor.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/pipeline.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/precedent.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/prompt.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/runtime_env.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/go_gin.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/markdown_document.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/php_laravel.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/python_cst.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/python_fastapi.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/python_orm.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/python_pydantic.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/python_pytest.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/registry.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/rust_axum.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/executor.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/planner.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/recipes.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/scratch/stack_registry.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/skill_router.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/utils/cache.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/utils/http_client.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio/utils/serialization.py +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.5.17 → simplicio_cli-0.6.0}/simplicio_cli.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: simplicio-cli
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: Portable task-to-code pipeline that works with any LLM. Turn a one-line task into a verified code change — diff + test + verify loop. +55 pts on a 156-check benchmark, 21% faster, ~same tokens.
|
|
5
5
|
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
6
|
License: MIT
|
|
@@ -26,21 +26,21 @@ Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
|
26
26
|
Requires-Python: >=3.10
|
|
27
27
|
Description-Content-Type: text/markdown
|
|
28
28
|
License-File: LICENSE
|
|
29
|
-
Requires-Dist: sentence-transformers>=5.
|
|
30
|
-
Requires-Dist: numpy>=2.0
|
|
31
|
-
Requires-Dist: anthropic>=0.
|
|
32
|
-
Requires-Dist: openai>=2.
|
|
33
|
-
Requires-Dist: simplicio-mapper>=0.
|
|
34
|
-
Requires-Dist: simplicio-prompt>=1.
|
|
29
|
+
Requires-Dist: sentence-transformers>=5.6.0
|
|
30
|
+
Requires-Dist: numpy>=2.5.0
|
|
31
|
+
Requires-Dist: anthropic>=0.112.0
|
|
32
|
+
Requires-Dist: openai>=2.44.0
|
|
33
|
+
Requires-Dist: simplicio-mapper>=0.9.0
|
|
34
|
+
Requires-Dist: simplicio-prompt>=1.14.1
|
|
35
35
|
Requires-Dist: httpx>=0.28.1
|
|
36
|
-
Requires-Dist: orjson>=3.11.
|
|
36
|
+
Requires-Dist: orjson>=3.11.9
|
|
37
37
|
Requires-Dist: diskcache>=5.6.3
|
|
38
38
|
Requires-Dist: libcst>=1.8.6
|
|
39
39
|
Provides-Extra: bench
|
|
40
|
-
Requires-Dist: fpdf2>=2.8.
|
|
40
|
+
Requires-Dist: fpdf2>=2.8.7; extra == "bench"
|
|
41
41
|
Provides-Extra: local
|
|
42
|
-
Requires-Dist: llama-cpp-python>=0.3.
|
|
43
|
-
Requires-Dist: huggingface-hub>=1.
|
|
42
|
+
Requires-Dist: llama-cpp-python>=0.3.32; extra == "local"
|
|
43
|
+
Requires-Dist: huggingface-hub>=1.21.0; extra == "local"
|
|
44
44
|
Dynamic: license-file
|
|
45
45
|
|
|
46
46
|
<h1 align="center">simplicio-cli</h1>
|
|
@@ -81,8 +81,8 @@ The new first screen is the doorway; the restored guide below is the workshop. T
|
|
|
81
81
|
|
|
82
82
|
```bash
|
|
83
83
|
pip install -U simplicio-cli
|
|
84
|
-
simplicio detect "hide the Delete button for non-admins"
|
|
85
|
-
simplicio task "hide the Delete button for non-admins"
|
|
84
|
+
simplicio-py detect "hide the Delete button for non-admins"
|
|
85
|
+
simplicio-py task "hide the Delete button for non-admins"
|
|
86
86
|
```
|
|
87
87
|
|
|
88
88
|
## What it does
|
|
@@ -482,18 +482,18 @@ simplicio-cli has **three distinct entry points**. Same engine, three front door
|
|
|
482
482
|
| You have | Path | LLM call goes through | Need API key? |
|
|
483
483
|
|---|---|---|---|
|
|
484
484
|
| **Claude Code** (Pro / Max / Team / API) | Skill + hook auto-installed in `~/.claude/` | Claude Code itself, using your logged-in session | **No** |
|
|
485
|
-
| **Claude Code OAuth or Codex CLI / ChatGPT Plus** | `simplicio task` with `SIMPLICIO_MODEL=claude-cli/<m>` or `codex-cli/<m>` | Shell-out to `claude -p` / `codex exec` (subprocess uses your existing login) | **No** |
|
|
486
|
-
| **API key** for any provider (Anthropic, OpenAI, OpenRouter, GLM, DeepSeek, Ollama…) | `simplicio task` standalone CLI | The provider SDK directly | **Yes** — set `SIMPLICIO_API_KEY` |
|
|
485
|
+
| **Claude Code OAuth or Codex CLI / ChatGPT Plus** | `simplicio-py task` with `SIMPLICIO_MODEL=claude-cli/<m>` or `codex-cli/<m>` | Shell-out to `claude -p` / `codex exec` (subprocess uses your existing login) | **No** |
|
|
486
|
+
| **API key** for any provider (Anthropic, OpenAI, OpenRouter, GLM, DeepSeek, Ollama…) | `simplicio-py task` standalone CLI | The provider SDK directly | **Yes** — set `SIMPLICIO_API_KEY` |
|
|
487
487
|
|
|
488
|
-
**Most users land on Path 1.** `pip install simplicio-cli` puts
|
|
488
|
+
**Most users land on Path 1.** `pip install simplicio-cli` puts `simplicio-py` on PATH; the first invocation auto-installs the skill + hook in `~/.claude/` (idempotent, opt-out via `SIMPLICIO_SKIP_AUTO_INIT=1`). From that moment, every code-edit prompt you type **inside Claude Code** is silently routed through simplicio's 6-layer contract — no extra config, no key, no cost beyond your existing Claude subscription.
|
|
489
489
|
|
|
490
|
-
**Path 2 — subscription shell-out (zero key).** If you have a Claude Pro/Max session (`claude login`) or a ChatGPT Plus + Codex CLI session (`codex login`) and want to drive simplicio from CI, scripts, or any context **outside** Claude Code, set `SIMPLICIO_MODEL=claude-cli/<model>` or `codex-cli/<model>`. simplicio spawns the CLI as a subprocess; the call rides your existing OAuth session — no API key required. A recursion guard (`SIMPLICIO_HOOK_GUARD=1`) is injected so the inner CLI does not re-fire
|
|
490
|
+
**Path 2 — subscription shell-out (zero key).** If you have a Claude Pro/Max session (`claude login`) or a ChatGPT Plus + Codex CLI session (`codex login`) and want to drive simplicio from CI, scripts, or any context **outside** Claude Code, set `SIMPLICIO_MODEL=claude-cli/<model>` or `codex-cli/<model>`. `simplicio-py` spawns the CLI as a subprocess; the call rides your existing OAuth session — no API key required. A recursion guard (`SIMPLICIO_HOOK_GUARD=1`) is injected so the inner CLI does not re-fire the hook.
|
|
491
491
|
|
|
492
|
-
**Path 3 is for environments without any logged-in CLI** — a remote server, a build runner, a notebook, a different LLM provider. You bring an API key (Anthropic, OpenRouter, OpenAI, GLM, DeepSeek, Ollama…), simplicio calls the provider directly.
|
|
492
|
+
**Path 3 is for environments without any logged-in CLI** — a remote server, a build runner, a notebook, a different LLM provider. You bring an API key (Anthropic, OpenRouter, OpenAI, GLM, DeepSeek, Ollama…), `simplicio-py` calls the provider directly.
|
|
493
493
|
|
|
494
494
|
#### Path 1 example — inside Claude Code
|
|
495
495
|
|
|
496
|
-
After `pip install simplicio-cli && simplicio smoke` (which triggers auto-bootstrap), just type your task in Claude Code:
|
|
496
|
+
After `pip install simplicio-cli && simplicio-py smoke` (which triggers auto-bootstrap), just type your task in Claude Code:
|
|
497
497
|
|
|
498
498
|
```
|
|
499
499
|
hide the Delete button for non-admins in src/app/screen/screen.component.html
|
|
@@ -511,27 +511,27 @@ piggybacks on that login — no extra bill, no key to manage.
|
|
|
511
511
|
export SIMPLICIO_MODEL=claude-cli/sonnet # or claude-cli/opus, claude-cli/default
|
|
512
512
|
unset SIMPLICIO_API_KEY # explicitly: no key needed
|
|
513
513
|
|
|
514
|
-
simplicio task "hide Delete button for non-admins" --stack angular \
|
|
514
|
+
simplicio-py task "hide Delete button for non-admins" --stack angular \
|
|
515
515
|
--target src/app/screen/screen.component.html
|
|
516
516
|
|
|
517
517
|
# Option B — Codex CLI subscription (run `codex login` once)
|
|
518
518
|
export SIMPLICIO_MODEL=codex-cli/gpt-5 # or codex-cli/default
|
|
519
|
-
simplicio task "..." --stack angular --target ...
|
|
519
|
+
simplicio-py task "..." --stack angular --target ...
|
|
520
520
|
```
|
|
521
521
|
|
|
522
|
-
How it works: simplicio shells out to `claude -p "<prompt>"` (or `codex exec "<prompt>"`) as a subprocess, captures stdout, runs the test loop. The inner CLI authenticates via your existing OAuth session in `~/.claude/` or `~/.codex/`. simplicio sets `SIMPLICIO_HOOK_GUARD=1` in the subprocess env so the inner Claude Code session does **not** re-fire
|
|
522
|
+
How it works: `simplicio-py` shells out to `claude -p "<prompt>"` (or `codex exec "<prompt>"`) as a subprocess, captures stdout, runs the test loop. The inner CLI authenticates via your existing OAuth session in `~/.claude/` or `~/.codex/`. `simplicio-py` sets `SIMPLICIO_HOOK_GUARD=1` in the subprocess env so the inner Claude Code session does **not** re-fire its own UserPromptSubmit hook (no infinite recursion).
|
|
523
523
|
|
|
524
|
-
For orchestrators such as SendSprint, `simplicio task` also has a structured
|
|
524
|
+
For orchestrators such as SendSprint, `simplicio-py task` also has a structured
|
|
525
525
|
contract:
|
|
526
526
|
|
|
527
527
|
```bash
|
|
528
|
-
simplicio task "hide Delete button for non-admins" \
|
|
528
|
+
simplicio-py task "hide Delete button for non-admins" \
|
|
529
529
|
--stack angular \
|
|
530
530
|
--target src/app/screen/screen.component.html \
|
|
531
531
|
--dry-run-task \
|
|
532
532
|
--json
|
|
533
533
|
|
|
534
|
-
simplicio task "front-only task" \
|
|
534
|
+
simplicio-py task "front-only task" \
|
|
535
535
|
--stack angular \
|
|
536
536
|
--target src/app/screen/screen.component.html \
|
|
537
537
|
--bound-paths "src/app/**" \
|
|
@@ -551,8 +551,8 @@ export SIMPLICIO_API_KEY=sk-or-v1-… # OpenRouter key
|
|
|
551
551
|
export SIMPLICIO_MODEL=anthropic/claude-opus-4
|
|
552
552
|
export SIMPLICIO_BASE_URL=https://openrouter.ai/api/v1
|
|
553
553
|
|
|
554
|
-
simplicio index --stack angular # one-time, builds embedding cache
|
|
555
|
-
simplicio task "hide Delete button for non-admins" \
|
|
554
|
+
simplicio-py index --stack angular # one-time, builds embedding cache
|
|
555
|
+
simplicio-py task "hide Delete button for non-admins" \
|
|
556
556
|
--stack angular \
|
|
557
557
|
--target src/app/screen/screen.component.html \
|
|
558
558
|
--criteria "- no admin perm: button absent from DOM
|
|
@@ -567,20 +567,20 @@ Provider-agnostic — see [Configure](#configure--any-llm-nothing-hardcoded) for
|
|
|
567
567
|
|
|
568
568
|
#### Path 1 deep-dive — auto-activation in Claude Code
|
|
569
569
|
|
|
570
|
-
`pip install` puts `simplicio` on your PATH. To make Claude Code
|
|
570
|
+
`pip install` puts `simplicio-py` on your PATH. To make Claude Code
|
|
571
571
|
**automatically** route code-edit tasks through simplicio, a skill + hook
|
|
572
572
|
need to land in `~/.claude/`.
|
|
573
573
|
|
|
574
|
-
**Zero-step path (recommended).** The first time you run *any* `simplicio`
|
|
574
|
+
**Zero-step path (recommended).** The first time you run *any* `simplicio-py`
|
|
575
575
|
command after install, if Claude Code is present (`~/.claude/` exists) and
|
|
576
|
-
the hook is missing, simplicio installs both for you and prints one stderr
|
|
576
|
+
the hook is missing, `simplicio-py` installs both for you and prints one stderr
|
|
577
577
|
line. PEP 517 wheels can't execute code on `pip install`, so this is the
|
|
578
578
|
closest equivalent that works on every machine.
|
|
579
579
|
|
|
580
580
|
```bash
|
|
581
581
|
pip install simplicio-cli
|
|
582
|
-
simplicio smoke # ← first call also installs skill + hook (idempotent)
|
|
583
|
-
# stderr: "simplicio: auto-activation installed in Claude Code …"
|
|
582
|
+
simplicio-py smoke # ← first call also installs skill + hook (idempotent)
|
|
583
|
+
# stderr: "simplicio-py: auto-activation installed in Claude Code …"
|
|
584
584
|
```
|
|
585
585
|
|
|
586
586
|
Opt out before the first call:
|
|
@@ -592,9 +592,9 @@ export SIMPLICIO_SKIP_AUTO_INIT=1
|
|
|
592
592
|
**Explicit path.** Same effect, no auto-magic:
|
|
593
593
|
|
|
594
594
|
```bash
|
|
595
|
-
simplicio init # idempotent
|
|
596
|
-
simplicio init --dry-run # preview only
|
|
597
|
-
simplicio init --claude-home <path> # override target dir
|
|
595
|
+
simplicio-py init # idempotent
|
|
596
|
+
simplicio-py init --dry-run # preview only
|
|
597
|
+
simplicio-py init --claude-home <path> # override target dir
|
|
598
598
|
```
|
|
599
599
|
|
|
600
600
|
Either way, two files land in `~/.claude/`:
|
|
@@ -602,7 +602,7 @@ Either way, two files land in `~/.claude/`:
|
|
|
602
602
|
| File | Purpose |
|
|
603
603
|
|---|---|
|
|
604
604
|
| `~/.claude/skills/simplicio-cli/SKILL.md` | Skill the agent matches by description when your prompt looks like a code edit |
|
|
605
|
-
| `~/.claude/hooks/simplicio-userpromptsubmit.sh` + entry in `~/.claude/settings.json` | UserPromptSubmit hook that runs `simplicio detect` on every prompt and injects a hint when the heuristic catches a code-edit task the skill could miss |
|
|
605
|
+
| `~/.claude/hooks/simplicio-userpromptsubmit.sh` + entry in `~/.claude/settings.json` | UserPromptSubmit hook that runs `simplicio-py detect` on every prompt and injects a hint when the heuristic catches a code-edit task the skill could miss |
|
|
606
606
|
|
|
607
607
|
A backup of your previous `settings.json` is written to `settings.json.bak`
|
|
608
608
|
before any merge.
|
|
@@ -613,13 +613,13 @@ After install, every prompt you type in Claude Code flows through two layers:
|
|
|
613
613
|
|
|
614
614
|
1. **Skill layer (semantic).** Claude reads the SKILL.md description. When
|
|
615
615
|
your prompt looks like a programming task ("add X to Y.tsx", "fix the auth
|
|
616
|
-
bug in middleware.py"), Claude considers using `simplicio task` instead of
|
|
616
|
+
bug in middleware.py"), Claude considers using `simplicio-py task` instead of
|
|
617
617
|
writing code directly.
|
|
618
|
-
2. **Hook layer (deterministic).** Every prompt fires `simplicio detect` via
|
|
618
|
+
2. **Hook layer (deterministic).** Every prompt fires `simplicio-py detect` via
|
|
619
619
|
the UserPromptSubmit hook. The classifier scores the prompt (verbs + file
|
|
620
620
|
extensions + code nouns − read-only cues). Score ≥ 3 → it emits a
|
|
621
621
|
`[SIMPLICIO_PROMPT_HINT]` block on stderr. Claude sees the hint alongside
|
|
622
|
-
your prompt — a hard nudge toward `simplicio task <prompt> <repo>`.
|
|
622
|
+
your prompt — a hard nudge toward `simplicio-py task <prompt> <repo>`.
|
|
623
623
|
|
|
624
624
|
The layers are complementary. Skill = "Claude *might* pick simplicio". Hook
|
|
625
625
|
= "Claude *sees* the hint regardless".
|
|
@@ -635,11 +635,11 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
|
|
|
635
635
|
|
|
636
636
|
| Goal | How |
|
|
637
637
|
|---|---|
|
|
638
|
-
| Block the auto-bootstrap | `export SIMPLICIO_SKIP_AUTO_INIT=1` before the first `simplicio` call |
|
|
638
|
+
| Block the auto-bootstrap | `export SIMPLICIO_SKIP_AUTO_INIT=1` before the first `simplicio-py` call |
|
|
639
639
|
| Disable hook permanently | Delete `~/.claude/hooks/simplicio-userpromptsubmit.sh` and its entry in `~/.claude/settings.json` |
|
|
640
|
-
| Re-install / repair | `simplicio init` (idempotent — won't double-write) |
|
|
641
|
-
| Preview without writing | `simplicio init --dry-run` |
|
|
642
|
-
| Skill-only (no hook) | Copy `.skills/simplicio-cli/SKILL.md` to `~/.claude/skills/simplicio-cli/SKILL.md` manually, skip `simplicio init` |
|
|
640
|
+
| Re-install / repair | `simplicio-py init` (idempotent — won't double-write) |
|
|
641
|
+
| Preview without writing | `simplicio-py init --dry-run` |
|
|
642
|
+
| Skill-only (no hook) | Copy `.skills/simplicio-cli/SKILL.md` to `~/.claude/skills/simplicio-cli/SKILL.md` manually, skip `simplicio-py init` |
|
|
643
643
|
|
|
644
644
|
---
|
|
645
645
|
|
|
@@ -655,7 +655,7 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
|
|
|
655
655
|
| GLM (z.ai) | `glm-4.6` | `https://api.z.ai/api/paas/v4` |
|
|
656
656
|
| DeepSeek | `deepseek-chat` | `https://api.deepseek.com` |
|
|
657
657
|
| OpenAI | `gpt-4.1` | `https://api.openai.com/v1` |
|
|
658
|
-
| Local (llama.cpp) | `
|
|
658
|
+
| Local (llama.cpp) | `openbmb/minicpm5:latest` | *(leave unset)* |
|
|
659
659
|
| Anthropic native | `claude-opus-4-7` | *(leave unset)* |
|
|
660
660
|
|
|
661
661
|
If `SIMPLICIO_BASE_URL` is unset and the key is `ANTHROPIC_API_KEY`, it uses the
|
|
@@ -663,7 +663,7 @@ native Anthropic SDK. Otherwise it uses an OpenAI-compatible client pointed at
|
|
|
663
663
|
your `base_url` — so **any** OpenAI-like provider works without code changes.
|
|
664
664
|
|
|
665
665
|
```bash
|
|
666
|
-
simplicio smoke # prints provider config + one test call
|
|
666
|
+
simplicio-py smoke # prints provider config + one test call
|
|
667
667
|
```
|
|
668
668
|
|
|
669
669
|
#### Path 4 — local llama.cpp GGUF default
|
|
@@ -671,14 +671,14 @@ simplicio smoke # prints provider config + one test call
|
|
|
671
671
|
When **no provider is configured** (`SIMPLICIO_MODEL` and
|
|
672
672
|
`SIMPLICIO_BASE_URL` both unset), simplicio runs the in-process
|
|
673
673
|
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python) backend with
|
|
674
|
-
`
|
|
675
|
-
`
|
|
674
|
+
`openbmb/minicpm5:latest`, backed by
|
|
675
|
+
`openbmb/MiniCPM5-1B-GGUF::MiniCPM5-1B-Q4_K_M.gguf`.
|
|
676
676
|
|
|
677
677
|
```bash
|
|
678
678
|
pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
|
|
679
|
-
simplicio doctor --install # downloads/validates the default GGUF
|
|
679
|
+
simplicio-py doctor --install # downloads/validates the default GGUF
|
|
680
680
|
|
|
681
|
-
simplicio task "add input validation to createUser" \
|
|
681
|
+
simplicio-py task "add input validation to createUser" \
|
|
682
682
|
--target src/users.ts --local # forces local llama.cpp
|
|
683
683
|
|
|
684
684
|
# the GGUF is fetched once from the Hugging Face Hub, then reused
|
|
@@ -687,17 +687,24 @@ simplicio task "add input validation to createUser" \
|
|
|
687
687
|
Explicit routes (override the default model/weights):
|
|
688
688
|
|
|
689
689
|
```bash
|
|
690
|
-
SIMPLICIO_MODEL=
|
|
691
|
-
SIMPLICIO_MODEL=local-llama/
|
|
690
|
+
SIMPLICIO_MODEL=openbmb/minicpm5:latest # MiniCPM5-1B-Q4_K_M.gguf default
|
|
691
|
+
SIMPLICIO_MODEL=local-llama/default # backward-compatible alias
|
|
692
|
+
SIMPLICIO_MODEL=local-llama/openbmb/MiniCPM5-1B-GGUF::MiniCPM5-1B-Q4_K_M.gguf
|
|
692
693
|
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
693
694
|
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
694
695
|
```
|
|
695
696
|
|
|
696
697
|
Tuning knobs (all optional): `SIMPLICIO_LOCAL_CTX` (context window, default
|
|
697
|
-
`
|
|
698
|
-
|
|
699
|
-
`
|
|
700
|
-
`
|
|
698
|
+
`2048`, clamped by `SIMPLICIO_LOCAL_CTX_MAX`, default `4096`),
|
|
699
|
+
`SIMPLICIO_LOCAL_THREADS` (default and cap `4` via
|
|
700
|
+
`SIMPLICIO_LOCAL_THREADS_MAX`), `SIMPLICIO_LOCAL_GPU_LAYERS` (offload to GPU,
|
|
701
|
+
default `0`), `SIMPLICIO_LOCAL_BATCH` (default/cap `128`),
|
|
702
|
+
`SIMPLICIO_LOCAL_UBATCH` (default/cap `32`), `SIMPLICIO_LOCAL_MAX_TOKENS`
|
|
703
|
+
(generation cap, default `512`, clamped by `SIMPLICIO_LOCAL_MAX_TOKENS_CAP`,
|
|
704
|
+
default `2048`), `SIMPLICIO_LOCAL_TEMP` (default `0.1`),
|
|
705
|
+
`SIMPLICIO_LOCAL_MODEL_REPO` / `SIMPLICIO_LOCAL_MODEL_FILE`. The runtime keeps
|
|
706
|
+
`mmap` enabled and `mlock` disabled so `llama.cpp` does not accidentally
|
|
707
|
+
over-allocate RAM.
|
|
701
708
|
|
|
702
709
|
#### The pipeline (both paths)
|
|
703
710
|
|
|
@@ -728,10 +735,10 @@ prompt. No key needed.
|
|
|
728
735
|
**"I want to run it in CI / a script / outside Claude Code."** Path 2. Get an
|
|
729
736
|
API key from any of the providers above (OpenRouter is the cheapest way to
|
|
730
737
|
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
731
|
-
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
738
|
+
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio-py task ...`.
|
|
732
739
|
|
|
733
740
|
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
734
|
-
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
741
|
+
`eval "$(simplicio-py env-export .env.local)"` instead of `source .env.local`.
|
|
735
742
|
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
736
743
|
without executing the dotenv file as shell code.
|
|
737
744
|
|
|
@@ -743,7 +750,7 @@ tracked, not shipped.
|
|
|
743
750
|
|
|
744
751
|
**"Will Claude Code use simplicio for *every* prompt now?"** No. The skill
|
|
745
752
|
only triggers on prompts that look like code edits (the description is
|
|
746
|
-
specific). The hook fires `simplicio detect` on every prompt but only emits
|
|
753
|
+
specific). The hook fires `simplicio-py detect` on every prompt but only emits
|
|
747
754
|
a hint when the deterministic classifier scores ≥ 3 (verbs + file extensions
|
|
748
755
|
+ code nouns − read-only cues). "What does this function do?" gets no
|
|
749
756
|
nudge. "Add a delete confirmation to UserList.tsx" does.
|
|
@@ -783,7 +790,7 @@ block, TEST block, contract-state words. Full numbers in [`bench/results.md`](be
|
|
|
783
790
|
#### Full harness (your real project, your real tests)
|
|
784
791
|
|
|
785
792
|
```bash
|
|
786
|
-
simplicio bench --cases bench/cases.json --stack angular
|
|
793
|
+
simplicio-py bench --cases bench/cases.json --stack angular
|
|
787
794
|
```
|
|
788
795
|
|
|
789
796
|
Runs each case two ways and runs **your real test command** (e.g. `ng test
|
|
@@ -897,7 +904,7 @@ bench/
|
|
|
897
904
|
run_offline.py # stdlib-only multi-model benchmark
|
|
898
905
|
cases.json # your benchmark tasks
|
|
899
906
|
cases_offline.json
|
|
900
|
-
results.md # filled by `simplicio bench` / `run_offline.py`
|
|
907
|
+
results.md # filled by `simplicio-py bench` / `run_offline.py`
|
|
901
908
|
charts/ # SVG: overall, delta, by_case, by_stack
|
|
902
909
|
```
|
|
903
910
|
|
|
@@ -36,8 +36,8 @@ The new first screen is the doorway; the restored guide below is the workshop. T
|
|
|
36
36
|
|
|
37
37
|
```bash
|
|
38
38
|
pip install -U simplicio-cli
|
|
39
|
-
simplicio detect "hide the Delete button for non-admins"
|
|
40
|
-
simplicio task "hide the Delete button for non-admins"
|
|
39
|
+
simplicio-py detect "hide the Delete button for non-admins"
|
|
40
|
+
simplicio-py task "hide the Delete button for non-admins"
|
|
41
41
|
```
|
|
42
42
|
|
|
43
43
|
## What it does
|
|
@@ -437,18 +437,18 @@ simplicio-cli has **three distinct entry points**. Same engine, three front door
|
|
|
437
437
|
| You have | Path | LLM call goes through | Need API key? |
|
|
438
438
|
|---|---|---|---|
|
|
439
439
|
| **Claude Code** (Pro / Max / Team / API) | Skill + hook auto-installed in `~/.claude/` | Claude Code itself, using your logged-in session | **No** |
|
|
440
|
-
| **Claude Code OAuth or Codex CLI / ChatGPT Plus** | `simplicio task` with `SIMPLICIO_MODEL=claude-cli/<m>` or `codex-cli/<m>` | Shell-out to `claude -p` / `codex exec` (subprocess uses your existing login) | **No** |
|
|
441
|
-
| **API key** for any provider (Anthropic, OpenAI, OpenRouter, GLM, DeepSeek, Ollama…) | `simplicio task` standalone CLI | The provider SDK directly | **Yes** — set `SIMPLICIO_API_KEY` |
|
|
440
|
+
| **Claude Code OAuth or Codex CLI / ChatGPT Plus** | `simplicio-py task` with `SIMPLICIO_MODEL=claude-cli/<m>` or `codex-cli/<m>` | Shell-out to `claude -p` / `codex exec` (subprocess uses your existing login) | **No** |
|
|
441
|
+
| **API key** for any provider (Anthropic, OpenAI, OpenRouter, GLM, DeepSeek, Ollama…) | `simplicio-py task` standalone CLI | The provider SDK directly | **Yes** — set `SIMPLICIO_API_KEY` |
|
|
442
442
|
|
|
443
|
-
**Most users land on Path 1.** `pip install simplicio-cli` puts
|
|
443
|
+
**Most users land on Path 1.** `pip install simplicio-cli` puts `simplicio-py` on PATH; the first invocation auto-installs the skill + hook in `~/.claude/` (idempotent, opt-out via `SIMPLICIO_SKIP_AUTO_INIT=1`). From that moment, every code-edit prompt you type **inside Claude Code** is silently routed through simplicio's 6-layer contract — no extra config, no key, no cost beyond your existing Claude subscription.
|
|
444
444
|
|
|
445
|
-
**Path 2 — subscription shell-out (zero key).** If you have a Claude Pro/Max session (`claude login`) or a ChatGPT Plus + Codex CLI session (`codex login`) and want to drive simplicio from CI, scripts, or any context **outside** Claude Code, set `SIMPLICIO_MODEL=claude-cli/<model>` or `codex-cli/<model>`. simplicio spawns the CLI as a subprocess; the call rides your existing OAuth session — no API key required. A recursion guard (`SIMPLICIO_HOOK_GUARD=1`) is injected so the inner CLI does not re-fire
|
|
445
|
+
**Path 2 — subscription shell-out (zero key).** If you have a Claude Pro/Max session (`claude login`) or a ChatGPT Plus + Codex CLI session (`codex login`) and want to drive simplicio from CI, scripts, or any context **outside** Claude Code, set `SIMPLICIO_MODEL=claude-cli/<model>` or `codex-cli/<model>`. `simplicio-py` spawns the CLI as a subprocess; the call rides your existing OAuth session — no API key required. A recursion guard (`SIMPLICIO_HOOK_GUARD=1`) is injected so the inner CLI does not re-fire the hook.
|
|
446
446
|
|
|
447
|
-
**Path 3 is for environments without any logged-in CLI** — a remote server, a build runner, a notebook, a different LLM provider. You bring an API key (Anthropic, OpenRouter, OpenAI, GLM, DeepSeek, Ollama…), simplicio calls the provider directly.
|
|
447
|
+
**Path 3 is for environments without any logged-in CLI** — a remote server, a build runner, a notebook, a different LLM provider. You bring an API key (Anthropic, OpenRouter, OpenAI, GLM, DeepSeek, Ollama…), `simplicio-py` calls the provider directly.
|
|
448
448
|
|
|
449
449
|
#### Path 1 example — inside Claude Code
|
|
450
450
|
|
|
451
|
-
After `pip install simplicio-cli && simplicio smoke` (which triggers auto-bootstrap), just type your task in Claude Code:
|
|
451
|
+
After `pip install simplicio-cli && simplicio-py smoke` (which triggers auto-bootstrap), just type your task in Claude Code:
|
|
452
452
|
|
|
453
453
|
```
|
|
454
454
|
hide the Delete button for non-admins in src/app/screen/screen.component.html
|
|
@@ -466,27 +466,27 @@ piggybacks on that login — no extra bill, no key to manage.
|
|
|
466
466
|
export SIMPLICIO_MODEL=claude-cli/sonnet # or claude-cli/opus, claude-cli/default
|
|
467
467
|
unset SIMPLICIO_API_KEY # explicitly: no key needed
|
|
468
468
|
|
|
469
|
-
simplicio task "hide Delete button for non-admins" --stack angular \
|
|
469
|
+
simplicio-py task "hide Delete button for non-admins" --stack angular \
|
|
470
470
|
--target src/app/screen/screen.component.html
|
|
471
471
|
|
|
472
472
|
# Option B — Codex CLI subscription (run `codex login` once)
|
|
473
473
|
export SIMPLICIO_MODEL=codex-cli/gpt-5 # or codex-cli/default
|
|
474
|
-
simplicio task "..." --stack angular --target ...
|
|
474
|
+
simplicio-py task "..." --stack angular --target ...
|
|
475
475
|
```
|
|
476
476
|
|
|
477
|
-
How it works: simplicio shells out to `claude -p "<prompt>"` (or `codex exec "<prompt>"`) as a subprocess, captures stdout, runs the test loop. The inner CLI authenticates via your existing OAuth session in `~/.claude/` or `~/.codex/`. simplicio sets `SIMPLICIO_HOOK_GUARD=1` in the subprocess env so the inner Claude Code session does **not** re-fire
|
|
477
|
+
How it works: `simplicio-py` shells out to `claude -p "<prompt>"` (or `codex exec "<prompt>"`) as a subprocess, captures stdout, runs the test loop. The inner CLI authenticates via your existing OAuth session in `~/.claude/` or `~/.codex/`. `simplicio-py` sets `SIMPLICIO_HOOK_GUARD=1` in the subprocess env so the inner Claude Code session does **not** re-fire its own UserPromptSubmit hook (no infinite recursion).
|
|
478
478
|
|
|
479
|
-
For orchestrators such as SendSprint, `simplicio task` also has a structured
|
|
479
|
+
For orchestrators such as SendSprint, `simplicio-py task` also has a structured
|
|
480
480
|
contract:
|
|
481
481
|
|
|
482
482
|
```bash
|
|
483
|
-
simplicio task "hide Delete button for non-admins" \
|
|
483
|
+
simplicio-py task "hide Delete button for non-admins" \
|
|
484
484
|
--stack angular \
|
|
485
485
|
--target src/app/screen/screen.component.html \
|
|
486
486
|
--dry-run-task \
|
|
487
487
|
--json
|
|
488
488
|
|
|
489
|
-
simplicio task "front-only task" \
|
|
489
|
+
simplicio-py task "front-only task" \
|
|
490
490
|
--stack angular \
|
|
491
491
|
--target src/app/screen/screen.component.html \
|
|
492
492
|
--bound-paths "src/app/**" \
|
|
@@ -506,8 +506,8 @@ export SIMPLICIO_API_KEY=sk-or-v1-… # OpenRouter key
|
|
|
506
506
|
export SIMPLICIO_MODEL=anthropic/claude-opus-4
|
|
507
507
|
export SIMPLICIO_BASE_URL=https://openrouter.ai/api/v1
|
|
508
508
|
|
|
509
|
-
simplicio index --stack angular # one-time, builds embedding cache
|
|
510
|
-
simplicio task "hide Delete button for non-admins" \
|
|
509
|
+
simplicio-py index --stack angular # one-time, builds embedding cache
|
|
510
|
+
simplicio-py task "hide Delete button for non-admins" \
|
|
511
511
|
--stack angular \
|
|
512
512
|
--target src/app/screen/screen.component.html \
|
|
513
513
|
--criteria "- no admin perm: button absent from DOM
|
|
@@ -522,20 +522,20 @@ Provider-agnostic — see [Configure](#configure--any-llm-nothing-hardcoded) for
|
|
|
522
522
|
|
|
523
523
|
#### Path 1 deep-dive — auto-activation in Claude Code
|
|
524
524
|
|
|
525
|
-
`pip install` puts `simplicio` on your PATH. To make Claude Code
|
|
525
|
+
`pip install` puts `simplicio-py` on your PATH. To make Claude Code
|
|
526
526
|
**automatically** route code-edit tasks through simplicio, a skill + hook
|
|
527
527
|
need to land in `~/.claude/`.
|
|
528
528
|
|
|
529
|
-
**Zero-step path (recommended).** The first time you run *any* `simplicio`
|
|
529
|
+
**Zero-step path (recommended).** The first time you run *any* `simplicio-py`
|
|
530
530
|
command after install, if Claude Code is present (`~/.claude/` exists) and
|
|
531
|
-
the hook is missing, simplicio installs both for you and prints one stderr
|
|
531
|
+
the hook is missing, `simplicio-py` installs both for you and prints one stderr
|
|
532
532
|
line. PEP 517 wheels can't execute code on `pip install`, so this is the
|
|
533
533
|
closest equivalent that works on every machine.
|
|
534
534
|
|
|
535
535
|
```bash
|
|
536
536
|
pip install simplicio-cli
|
|
537
|
-
simplicio smoke # ← first call also installs skill + hook (idempotent)
|
|
538
|
-
# stderr: "simplicio: auto-activation installed in Claude Code …"
|
|
537
|
+
simplicio-py smoke # ← first call also installs skill + hook (idempotent)
|
|
538
|
+
# stderr: "simplicio-py: auto-activation installed in Claude Code …"
|
|
539
539
|
```
|
|
540
540
|
|
|
541
541
|
Opt out before the first call:
|
|
@@ -547,9 +547,9 @@ export SIMPLICIO_SKIP_AUTO_INIT=1
|
|
|
547
547
|
**Explicit path.** Same effect, no auto-magic:
|
|
548
548
|
|
|
549
549
|
```bash
|
|
550
|
-
simplicio init # idempotent
|
|
551
|
-
simplicio init --dry-run # preview only
|
|
552
|
-
simplicio init --claude-home <path> # override target dir
|
|
550
|
+
simplicio-py init # idempotent
|
|
551
|
+
simplicio-py init --dry-run # preview only
|
|
552
|
+
simplicio-py init --claude-home <path> # override target dir
|
|
553
553
|
```
|
|
554
554
|
|
|
555
555
|
Either way, two files land in `~/.claude/`:
|
|
@@ -557,7 +557,7 @@ Either way, two files land in `~/.claude/`:
|
|
|
557
557
|
| File | Purpose |
|
|
558
558
|
|---|---|
|
|
559
559
|
| `~/.claude/skills/simplicio-cli/SKILL.md` | Skill the agent matches by description when your prompt looks like a code edit |
|
|
560
|
-
| `~/.claude/hooks/simplicio-userpromptsubmit.sh` + entry in `~/.claude/settings.json` | UserPromptSubmit hook that runs `simplicio detect` on every prompt and injects a hint when the heuristic catches a code-edit task the skill could miss |
|
|
560
|
+
| `~/.claude/hooks/simplicio-userpromptsubmit.sh` + entry in `~/.claude/settings.json` | UserPromptSubmit hook that runs `simplicio-py detect` on every prompt and injects a hint when the heuristic catches a code-edit task the skill could miss |
|
|
561
561
|
|
|
562
562
|
A backup of your previous `settings.json` is written to `settings.json.bak`
|
|
563
563
|
before any merge.
|
|
@@ -568,13 +568,13 @@ After install, every prompt you type in Claude Code flows through two layers:
|
|
|
568
568
|
|
|
569
569
|
1. **Skill layer (semantic).** Claude reads the SKILL.md description. When
|
|
570
570
|
your prompt looks like a programming task ("add X to Y.tsx", "fix the auth
|
|
571
|
-
bug in middleware.py"), Claude considers using `simplicio task` instead of
|
|
571
|
+
bug in middleware.py"), Claude considers using `simplicio-py task` instead of
|
|
572
572
|
writing code directly.
|
|
573
|
-
2. **Hook layer (deterministic).** Every prompt fires `simplicio detect` via
|
|
573
|
+
2. **Hook layer (deterministic).** Every prompt fires `simplicio-py detect` via
|
|
574
574
|
the UserPromptSubmit hook. The classifier scores the prompt (verbs + file
|
|
575
575
|
extensions + code nouns − read-only cues). Score ≥ 3 → it emits a
|
|
576
576
|
`[SIMPLICIO_PROMPT_HINT]` block on stderr. Claude sees the hint alongside
|
|
577
|
-
your prompt — a hard nudge toward `simplicio task <prompt> <repo>`.
|
|
577
|
+
your prompt — a hard nudge toward `simplicio-py task <prompt> <repo>`.
|
|
578
578
|
|
|
579
579
|
The layers are complementary. Skill = "Claude *might* pick simplicio". Hook
|
|
580
580
|
= "Claude *sees* the hint regardless".
|
|
@@ -590,11 +590,11 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
|
|
|
590
590
|
|
|
591
591
|
| Goal | How |
|
|
592
592
|
|---|---|
|
|
593
|
-
| Block the auto-bootstrap | `export SIMPLICIO_SKIP_AUTO_INIT=1` before the first `simplicio` call |
|
|
593
|
+
| Block the auto-bootstrap | `export SIMPLICIO_SKIP_AUTO_INIT=1` before the first `simplicio-py` call |
|
|
594
594
|
| Disable hook permanently | Delete `~/.claude/hooks/simplicio-userpromptsubmit.sh` and its entry in `~/.claude/settings.json` |
|
|
595
|
-
| Re-install / repair | `simplicio init` (idempotent — won't double-write) |
|
|
596
|
-
| Preview without writing | `simplicio init --dry-run` |
|
|
597
|
-
| Skill-only (no hook) | Copy `.skills/simplicio-cli/SKILL.md` to `~/.claude/skills/simplicio-cli/SKILL.md` manually, skip `simplicio init` |
|
|
595
|
+
| Re-install / repair | `simplicio-py init` (idempotent — won't double-write) |
|
|
596
|
+
| Preview without writing | `simplicio-py init --dry-run` |
|
|
597
|
+
| Skill-only (no hook) | Copy `.skills/simplicio-cli/SKILL.md` to `~/.claude/skills/simplicio-cli/SKILL.md` manually, skip `simplicio-py init` |
|
|
598
598
|
|
|
599
599
|
---
|
|
600
600
|
|
|
@@ -610,7 +610,7 @@ user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
|
|
|
610
610
|
| GLM (z.ai) | `glm-4.6` | `https://api.z.ai/api/paas/v4` |
|
|
611
611
|
| DeepSeek | `deepseek-chat` | `https://api.deepseek.com` |
|
|
612
612
|
| OpenAI | `gpt-4.1` | `https://api.openai.com/v1` |
|
|
613
|
-
| Local (llama.cpp) | `
|
|
613
|
+
| Local (llama.cpp) | `openbmb/minicpm5:latest` | *(leave unset)* |
|
|
614
614
|
| Anthropic native | `claude-opus-4-7` | *(leave unset)* |
|
|
615
615
|
|
|
616
616
|
If `SIMPLICIO_BASE_URL` is unset and the key is `ANTHROPIC_API_KEY`, it uses the
|
|
@@ -618,7 +618,7 @@ native Anthropic SDK. Otherwise it uses an OpenAI-compatible client pointed at
|
|
|
618
618
|
your `base_url` — so **any** OpenAI-like provider works without code changes.
|
|
619
619
|
|
|
620
620
|
```bash
|
|
621
|
-
simplicio smoke # prints provider config + one test call
|
|
621
|
+
simplicio-py smoke # prints provider config + one test call
|
|
622
622
|
```
|
|
623
623
|
|
|
624
624
|
#### Path 4 — local llama.cpp GGUF default
|
|
@@ -626,14 +626,14 @@ simplicio smoke # prints provider config + one test call
|
|
|
626
626
|
When **no provider is configured** (`SIMPLICIO_MODEL` and
|
|
627
627
|
`SIMPLICIO_BASE_URL` both unset), simplicio runs the in-process
|
|
628
628
|
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python) backend with
|
|
629
|
-
`
|
|
630
|
-
`
|
|
629
|
+
`openbmb/minicpm5:latest`, backed by
|
|
630
|
+
`openbmb/MiniCPM5-1B-GGUF::MiniCPM5-1B-Q4_K_M.gguf`.
|
|
631
631
|
|
|
632
632
|
```bash
|
|
633
633
|
pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
|
|
634
|
-
simplicio doctor --install # downloads/validates the default GGUF
|
|
634
|
+
simplicio-py doctor --install # downloads/validates the default GGUF
|
|
635
635
|
|
|
636
|
-
simplicio task "add input validation to createUser" \
|
|
636
|
+
simplicio-py task "add input validation to createUser" \
|
|
637
637
|
--target src/users.ts --local # forces local llama.cpp
|
|
638
638
|
|
|
639
639
|
# the GGUF is fetched once from the Hugging Face Hub, then reused
|
|
@@ -642,17 +642,24 @@ simplicio task "add input validation to createUser" \
|
|
|
642
642
|
Explicit routes (override the default model/weights):
|
|
643
643
|
|
|
644
644
|
```bash
|
|
645
|
-
SIMPLICIO_MODEL=
|
|
646
|
-
SIMPLICIO_MODEL=local-llama/
|
|
645
|
+
SIMPLICIO_MODEL=openbmb/minicpm5:latest # MiniCPM5-1B-Q4_K_M.gguf default
|
|
646
|
+
SIMPLICIO_MODEL=local-llama/default # backward-compatible alias
|
|
647
|
+
SIMPLICIO_MODEL=local-llama/openbmb/MiniCPM5-1B-GGUF::MiniCPM5-1B-Q4_K_M.gguf
|
|
647
648
|
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
648
649
|
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
649
650
|
```
|
|
650
651
|
|
|
651
652
|
Tuning knobs (all optional): `SIMPLICIO_LOCAL_CTX` (context window, default
|
|
652
|
-
`
|
|
653
|
-
|
|
654
|
-
`
|
|
655
|
-
`
|
|
653
|
+
`2048`, clamped by `SIMPLICIO_LOCAL_CTX_MAX`, default `4096`),
|
|
654
|
+
`SIMPLICIO_LOCAL_THREADS` (default and cap `4` via
|
|
655
|
+
`SIMPLICIO_LOCAL_THREADS_MAX`), `SIMPLICIO_LOCAL_GPU_LAYERS` (offload to GPU,
|
|
656
|
+
default `0`), `SIMPLICIO_LOCAL_BATCH` (default/cap `128`),
|
|
657
|
+
`SIMPLICIO_LOCAL_UBATCH` (default/cap `32`), `SIMPLICIO_LOCAL_MAX_TOKENS`
|
|
658
|
+
(generation cap, default `512`, clamped by `SIMPLICIO_LOCAL_MAX_TOKENS_CAP`,
|
|
659
|
+
default `2048`), `SIMPLICIO_LOCAL_TEMP` (default `0.1`),
|
|
660
|
+
`SIMPLICIO_LOCAL_MODEL_REPO` / `SIMPLICIO_LOCAL_MODEL_FILE`. The runtime keeps
|
|
661
|
+
`mmap` enabled and `mlock` disabled so `llama.cpp` does not accidentally
|
|
662
|
+
over-allocate RAM.
|
|
656
663
|
|
|
657
664
|
#### The pipeline (both paths)
|
|
658
665
|
|
|
@@ -683,10 +690,10 @@ prompt. No key needed.
|
|
|
683
690
|
**"I want to run it in CI / a script / outside Claude Code."** Path 2. Get an
|
|
684
691
|
API key from any of the providers above (OpenRouter is the cheapest way to
|
|
685
692
|
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
686
|
-
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
693
|
+
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio-py task ...`.
|
|
687
694
|
|
|
688
695
|
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
689
|
-
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
696
|
+
`eval "$(simplicio-py env-export .env.local)"` instead of `source .env.local`.
|
|
690
697
|
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
691
698
|
without executing the dotenv file as shell code.
|
|
692
699
|
|
|
@@ -698,7 +705,7 @@ tracked, not shipped.
|
|
|
698
705
|
|
|
699
706
|
**"Will Claude Code use simplicio for *every* prompt now?"** No. The skill
|
|
700
707
|
only triggers on prompts that look like code edits (the description is
|
|
701
|
-
specific). The hook fires `simplicio detect` on every prompt but only emits
|
|
708
|
+
specific). The hook fires `simplicio-py detect` on every prompt but only emits
|
|
702
709
|
a hint when the deterministic classifier scores ≥ 3 (verbs + file extensions
|
|
703
710
|
+ code nouns − read-only cues). "What does this function do?" gets no
|
|
704
711
|
nudge. "Add a delete confirmation to UserList.tsx" does.
|
|
@@ -738,7 +745,7 @@ block, TEST block, contract-state words. Full numbers in [`bench/results.md`](be
|
|
|
738
745
|
#### Full harness (your real project, your real tests)
|
|
739
746
|
|
|
740
747
|
```bash
|
|
741
|
-
simplicio bench --cases bench/cases.json --stack angular
|
|
748
|
+
simplicio-py bench --cases bench/cases.json --stack angular
|
|
742
749
|
```
|
|
743
750
|
|
|
744
751
|
Runs each case two ways and runs **your real test command** (e.g. `ng test
|
|
@@ -852,7 +859,7 @@ bench/
|
|
|
852
859
|
run_offline.py # stdlib-only multi-model benchmark
|
|
853
860
|
cases.json # your benchmark tasks
|
|
854
861
|
cases_offline.json
|
|
855
|
-
results.md # filled by `simplicio bench` / `run_offline.py`
|
|
862
|
+
results.md # filled by `simplicio-py bench` / `run_offline.py`
|
|
856
863
|
charts/ # SVG: overall, delta, by_case, by_stack
|
|
857
864
|
```
|
|
858
865
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "simplicio-cli"
|
|
3
|
-
version = "0.
|
|
3
|
+
version = "0.6.0"
|
|
4
4
|
description = "Portable task-to-code pipeline that works with any LLM. Turn a one-line task into a verified code change — diff + test + verify loop. +55 pts on a 156-check benchmark, 21% faster, ~same tokens."
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
license = { text = "MIT" }
|
|
@@ -40,23 +40,23 @@ classifiers = [
|
|
|
40
40
|
"Topic :: Scientific/Engineering :: Artificial Intelligence",
|
|
41
41
|
]
|
|
42
42
|
dependencies = [
|
|
43
|
-
"sentence-transformers>=5.
|
|
44
|
-
"numpy>=2.0
|
|
45
|
-
"anthropic>=0.
|
|
46
|
-
"openai>=2.
|
|
47
|
-
"simplicio-mapper>=0.
|
|
48
|
-
"simplicio-prompt>=1.
|
|
43
|
+
"sentence-transformers>=5.6.0",
|
|
44
|
+
"numpy>=2.5.0",
|
|
45
|
+
"anthropic>=0.112.0",
|
|
46
|
+
"openai>=2.44.0",
|
|
47
|
+
"simplicio-mapper>=0.9.0",
|
|
48
|
+
"simplicio-prompt>=1.14.1",
|
|
49
49
|
"httpx>=0.28.1",
|
|
50
|
-
"orjson>=3.11.
|
|
50
|
+
"orjson>=3.11.9",
|
|
51
51
|
"diskcache>=5.6.3",
|
|
52
52
|
"libcst>=1.8.6",
|
|
53
53
|
]
|
|
54
54
|
|
|
55
55
|
[project.optional-dependencies]
|
|
56
|
-
bench = ["fpdf2>=2.8.
|
|
56
|
+
bench = ["fpdf2>=2.8.7"]
|
|
57
57
|
# Offline fallback in-process inference. Pulls the llama.cpp Python bindings
|
|
58
|
-
# plus huggingface-hub to fetch
|
|
59
|
-
local = ["llama-cpp-python>=0.3.
|
|
58
|
+
# plus huggingface-hub to fetch MiniCPM5-1B-Q4_K_M.gguf.
|
|
59
|
+
local = ["llama-cpp-python>=0.3.32", "huggingface-hub>=1.21.0"]
|
|
60
60
|
|
|
61
61
|
[project.urls]
|
|
62
62
|
Homepage = "https://github.com/wesleysimplicio/simplicio-cli"
|
|
@@ -65,7 +65,9 @@ Issues = "https://github.com/wesleysimplicio/simplicio-cli/issues"
|
|
|
65
65
|
Changelog = "https://github.com/wesleysimplicio/simplicio-cli/releases"
|
|
66
66
|
|
|
67
67
|
[project.scripts]
|
|
68
|
-
simplicio = "simplicio.cli:main"
|
|
68
|
+
simplicio-cli = "simplicio.cli:main"
|
|
69
|
+
simplicio-py = "simplicio.cli:main"
|
|
70
|
+
simplicio-dev-cli = "simplicio.cli:main"
|
|
69
71
|
|
|
70
72
|
[build-system]
|
|
71
73
|
requires = ["setuptools>=68", "wheel"]
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.6.0"
|