simplicio-cli 0.5.15__tar.gz → 0.5.16__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.16/PKG-INFO +922 -0
- simplicio_cli-0.5.16/README.md +877 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/pyproject.toml +3 -3
- simplicio_cli-0.5.16/simplicio/__init__.py +1 -0
- simplicio_cli-0.5.16/simplicio_cli.egg-info/PKG-INFO +922 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio_cli.egg-info/requires.txt +2 -2
- simplicio_cli-0.5.15/PKG-INFO +0 -144
- simplicio_cli-0.5.15/README.md +0 -99
- simplicio_cli-0.5.15/simplicio/__init__.py +0 -1
- simplicio_cli-0.5.15/simplicio_cli.egg-info/PKG-INFO +0 -144
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/LICENSE +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/setup.cfg +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/_cache.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/adaptive.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/bench.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/cache.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/cache_cli.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/cli.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/detect.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/doctor.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/dod.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/ecosystem.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/hardware.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/init.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/intent.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/local_models.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/mapper.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/observability.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/orchestrator/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/orchestrator/cost_governor.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/orchestrator/feature.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/pipeline.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/pipeline_fixers.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/precedent.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/prompt.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/providers.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/runtime_env.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/_pipeline_adapter.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/cli.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/go_gin.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/markdown_document.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/php_laravel.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/python_cst.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/python_fastapi.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/python_orm.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/python_pydantic.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/python_pytest.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/registry.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/rust_axum.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/types.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/typescript_next_page.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/codegen/typescript_next_route.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/executor.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/plan_schema.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/planner.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/recipes.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/skill_opt.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/scratch/stack_registry.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/skill_router.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/sprint_loader.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/SKILL.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/go-gin/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/php-laravel/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/php-vanilla/docs-marker.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/py-fastapi/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/py-fastapi/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/py-fastapi/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/rust-axum/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/ts-nextjs/admin-crud.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/ts-nextjs/auth-jwt.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/recipes/ts-nextjs/crud-resource.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/simplicio_prompt.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/tree/bin/app.sh +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/tree/test/app.bats +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/bash-cli/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/App.Api.csproj +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/tree/src/App.Api/Program.cs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-aspnet/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/App.Web.csproj +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/App.razor +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Components/Pages/Home.razor +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/src/App.Web/Program.cs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/App.Tests.csproj +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/tree/tests/App.Tests/HealthTests.cs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/csharp-blazor/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/tree/lib/main.dart +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/tree/pubspec.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/tree/test/widget_test.dart +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/dart-flutter/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/config/config.exs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app/application.ex +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/controllers/health_controller.ex +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/endpoint.ex +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/lib/app_web/router.ex +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/mix.exs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/test/health_controller_test.exs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/tree/test/test_helper.exs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/elixir-phoenix/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/tree/cmd/root.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/tree/cmd/root_test.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/tree/go.mod +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/tree/main.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-cli/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/tree/go.mod +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-echo/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/tree/cmd/server/main.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/tree/go.mod +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/tree/internal/http/router.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/tree/internal/http/router_test.go +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/go-gin/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/Application.java +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/src/main/java/com/example/HealthController.java +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/tree/src/test/java/com/example/HealthControllerTest.java +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/java-spring/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/tree/package.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/tree/src/app.js +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/tree/src/server.js +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/tree/tests/health.test.js +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/js-express/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/app/build.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/AndroidManifest.xml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/java/com/example/app/MainActivity.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/app/src/main/res/values/styles.xml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/app/src/test/java/com/example/app/SmokeTest.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-android/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/tree/src/test/kotlin/com/example/ApplicationTest.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-ktor/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/build.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/settings.gradle.kts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/Application.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/src/main/kotlin/com/example/HealthController.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/tree/src/test/kotlin/com/example/HealthControllerTest.kt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/kotlin-spring/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/artisan +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/bootstrap/app.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/composer.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/routes/api.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/routes/console.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/tests/Feature/HealthTest.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/tree/tests/TestCase.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-laravel/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/tree/composer.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/tree/src/Controller/HealthController.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/tree/tests/HealthControllerTest.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-symfony/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/tree/composer.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/tree/phpunit.xml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/tree/src/Health.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/tree/tests/HealthTest.php +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/php-vanilla/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/tree/src/app/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/tree/src/app/cli.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/tree/tests/test_cli.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-cli/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/app/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/app/apps.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/app/tests.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/app/views.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/config/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/config/asgi.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/config/settings.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/config/urls.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/config/wsgi.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/manage.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-django/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/.gitignore +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/README.template.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/src/api/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/src/main.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-fastapi/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/tree/pyproject.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/tree/ruff.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/tree/src/app.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/tree/tests/test_health.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/py-flask/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/index.html +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/package.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/src/App.test.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/src/App.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/src/main.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/react-vite/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/Gemfile +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/app/controllers/health_controller.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/bin/rails +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/config/application.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/config/boot.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/config/routes.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/test/controllers/health_controller_test.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/tree/test/test_helper.rb +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ruby-rails/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-axum/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-cli/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/tree/Cargo.toml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/tree/src/main.rs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/rust-leptos/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/tree/Sources/App/App.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/tree/Sources/App/ContentView.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/tree/Tests/AppTests/AppTests.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-ios/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/tree/Package.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/tree/Sources/App/main.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/tree/Tests/AppTests/HealthTests.swift +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/swift-vapor/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/package.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.spec.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/src/app.controller.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/src/app.module.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/src/main.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nestjs/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/.eslintrc.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/.gitignore +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/next.config.mjs +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/package.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/pnpm-workspace.yaml +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/src/app/layout.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/src/app/page.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-nextjs/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/practices.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/stack.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/README.md +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/app/root.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/app/routes/_index.tsx +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.test.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/app/routes/health.ts +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/package.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/tree/tsconfig.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/stacks/ts-remix/verify.json +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/templates/userpromptsubmit-hook.sh +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/utils/__init__.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/utils/cache.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/utils/http_client.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio/utils/serialization.py +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio_cli.egg-info/SOURCES.txt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio_cli.egg-info/dependency_links.txt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio_cli.egg-info/entry_points.txt +0 -0
- {simplicio_cli-0.5.15 → simplicio_cli-0.5.16}/simplicio_cli.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1,922 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: simplicio-cli
|
|
3
|
+
Version: 0.5.16
|
|
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
|
+
Author-email: Wesley Simplicio <wesleybob4@gmail.com>
|
|
6
|
+
License: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/wesleysimplicio/simplicio-cli
|
|
8
|
+
Project-URL: Repository, https://github.com/wesleysimplicio/simplicio-cli
|
|
9
|
+
Project-URL: Issues, https://github.com/wesleysimplicio/simplicio-cli/issues
|
|
10
|
+
Project-URL: Changelog, https://github.com/wesleysimplicio/simplicio-cli/releases
|
|
11
|
+
Keywords: llm,ai,agent,code-generation,prompt-engineering,openrouter,openai,anthropic,claude,developer-tools,cli,rag,embeddings,verify-loop,task-automation
|
|
12
|
+
Classifier: Development Status :: 4 - Beta
|
|
13
|
+
Classifier: Environment :: Console
|
|
14
|
+
Classifier: Intended Audience :: Developers
|
|
15
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
16
|
+
Classifier: Operating System :: OS Independent
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Software Development
|
|
23
|
+
Classifier: Topic :: Software Development :: Code Generators
|
|
24
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
26
|
+
Requires-Python: >=3.10
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
License-File: LICENSE
|
|
29
|
+
Requires-Dist: sentence-transformers>=5.1.2
|
|
30
|
+
Requires-Dist: numpy>=2.0.2
|
|
31
|
+
Requires-Dist: anthropic>=0.105.2
|
|
32
|
+
Requires-Dist: openai>=2.38.0
|
|
33
|
+
Requires-Dist: simplicio-mapper>=0.7.3
|
|
34
|
+
Requires-Dist: simplicio-prompt>=1.13.3
|
|
35
|
+
Requires-Dist: httpx>=0.28.1
|
|
36
|
+
Requires-Dist: orjson>=3.11.5
|
|
37
|
+
Requires-Dist: diskcache>=5.6.3
|
|
38
|
+
Requires-Dist: libcst>=1.8.6
|
|
39
|
+
Provides-Extra: bench
|
|
40
|
+
Requires-Dist: fpdf2>=2.8.4; extra == "bench"
|
|
41
|
+
Provides-Extra: local
|
|
42
|
+
Requires-Dist: llama-cpp-python>=0.3.23; extra == "local"
|
|
43
|
+
Requires-Dist: huggingface-hub>=1.8.0; extra == "local"
|
|
44
|
+
Dynamic: license-file
|
|
45
|
+
|
|
46
|
+
<h1 align="center">simplicio-cli</h1>
|
|
47
|
+
|
|
48
|
+
<p align="center">
|
|
49
|
+
<strong>Turn a one-line task into a verified code change: mapper context, six-layer contract, diff, test, and evidence.</strong><br />
|
|
50
|
+
<em>Commands stay in English so they can be copied exactly.</em>
|
|
51
|
+
</p>
|
|
52
|
+
|
|
53
|
+
<p align="center">
|
|
54
|
+
<a href="https://github.com/wesleysimplicio/simplicio-dev-cli/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/wesleysimplicio/simplicio-dev-cli?style=flat-square" /></a>
|
|
55
|
+
<a href="https://pypi.org/project/simplicio-cli/"><img alt="PyPI" src="https://img.shields.io/pypi/v/simplicio-cli.svg?style=flat-square" /></a>
|
|
56
|
+
<a href="https://pypi.org/project/simplicio-cli/"><img alt="Python versions" src="https://img.shields.io/pypi/pyversions/simplicio-cli.svg?style=flat-square" /></a>
|
|
57
|
+
<a href="LICENSE"><img alt="License" src="https://img.shields.io/badge/license-MIT-yellow?style=flat-square" /></a>
|
|
58
|
+
</p>
|
|
59
|
+
|
|
60
|
+
<p align="center">
|
|
61
|
+
<a href="README.md">English</a> | <a href="READMEs/README.pt-BR.md">Português</a> | <a href="READMEs/README.es-ES.md">Español</a> | <a href="READMEs/README.ja-JP.md">日本語</a> | <a href="READMEs/README.ko-KR.md">한국어</a> | <a href="READMEs/README.zh-CN.md">简体中文</a> | <a href="READMEs/README.it-IT.md">Italiano</a> | <a href="READMEs/README.fr-FR.md">Français</a> | <a href="READMEs/README.ru-RU.md">Русский</a> | <a href="READMEs/README.pl-PL.md">Polski</a> | <a href="READMEs/README.hi-IN.md">हिन्दी</a> | <a href="READMEs/README.ar-SA.md">العربية</a> | <a href="READMEs/README.he-IL.md">עברית</a> | <a href="READMEs/README.ms-MY.md">Bahasa Melayu</a> | <a href="READMEs/README.id-ID.md">Bahasa Indonesia</a>
|
|
62
|
+
</p>
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<img src="output/imagegen/simplicio-cli-readme-hero-web.png" alt="simplicio-cli preview" width="860" />
|
|
66
|
+
</p>
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## The short version
|
|
71
|
+
|
|
72
|
+
Turn a one-line task into a verified code change: mapper context, six-layer contract, diff, test, and evidence.
|
|
73
|
+
|
|
74
|
+
## Project DNA
|
|
75
|
+
|
|
76
|
+
simplicio-cli is not just a command wrapper; it is the measured execution layer of the ecosystem. Its older README carried the hard proof: real hidden tests, benchmark tables, model comparisons, provider policy, and the honest boundary between better prompting and actual capability. That evidence belongs beside the new hero, not behind it.
|
|
77
|
+
|
|
78
|
+
The new first screen is the doorway; the restored guide below is the workshop. This README should help a stranger understand the promise quickly and still give an operator enough depth to run, validate, and extend the project.
|
|
79
|
+
|
|
80
|
+
## Quick Start
|
|
81
|
+
|
|
82
|
+
```bash
|
|
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"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## What it does
|
|
89
|
+
|
|
90
|
+
- Classifies the task before execution so small fixes stay small and sprint-scale work becomes a plan.
|
|
91
|
+
- Loads simplicio-mapper artifacts before asking an LLM to edit.
|
|
92
|
+
- Keeps a verification loop around generated diffs instead of trusting the first answer.
|
|
93
|
+
- Works with local Simplicio1, OpenRouter, OpenAI, Anthropic, DeepSeek, Hermes, Codex and Claude-style hosts.
|
|
94
|
+
|
|
95
|
+
## Why this README is built to earn attention
|
|
96
|
+
|
|
97
|
+
- clear first-screen promise
|
|
98
|
+
- language links before installation
|
|
99
|
+
- badges and a visual hero for fast trust
|
|
100
|
+
- copy-ready quick start
|
|
101
|
+
- proof before long reference material
|
|
102
|
+
- star history for social proof
|
|
103
|
+
|
|
104
|
+
## How it works
|
|
105
|
+
|
|
106
|
+
```mermaid
|
|
107
|
+
flowchart LR
|
|
108
|
+
mapper["simplicio-mapper
|
|
109
|
+
repo context"] --> current["simplicio-cli
|
|
110
|
+
this project"]
|
|
111
|
+
prompt["simplicio-prompt
|
|
112
|
+
reasoning runtime"] --> current
|
|
113
|
+
current --> evidence["validated evidence
|
|
114
|
+
tests, docs, screenshots"]
|
|
115
|
+
current --> sprint["simplicio-sprint
|
|
116
|
+
delivery loop"]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
## Proof and validation
|
|
120
|
+
|
|
121
|
+
- Benchmark docs compare plain prompting vs the Simplicio contract on real code tasks.
|
|
122
|
+
- Package metadata tests pin ecosystem dependency floors.
|
|
123
|
+
- The CLI is the executor layer used by SendSprint and SimplicioCode flows.
|
|
124
|
+
|
|
125
|
+
## Simplicio ecosystem
|
|
126
|
+
|
|
127
|
+
- [simplicio-mapper](https://github.com/wesleysimplicio/simplicio-mapper) supplies repo context before interpretation.
|
|
128
|
+
- [simplicio-cli](https://github.com/wesleysimplicio/simplicio-dev-cli) executes focused code tasks with verification.
|
|
129
|
+
- [simplicio-prompt](https://github.com/wesleysimplicio/simplicio-prompt) provides fan-out and consensus runtime patterns.
|
|
130
|
+
- [simplicio-sprint](https://github.com/wesleysimplicio/simplicio-sprint) turns cards into draft PR delivery loops.
|
|
131
|
+
|
|
132
|
+
## Documentation standard
|
|
133
|
+
|
|
134
|
+
- [docs/PYTHON_PACKAGE_INTERDEPENDENCE.md](docs/PYTHON_PACKAGE_INTERDEPENDENCE.md)
|
|
135
|
+
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
136
|
+
- [docs/readme-globalization-standard.md](docs/readme-globalization-standard.md)
|
|
137
|
+
|
|
138
|
+
## Original Field Guide
|
|
139
|
+
|
|
140
|
+
The section below restores the project-specific README material that existed before the globalization pass. Keep this substance when refreshing the top-level narrative: add polish, do not erase operational memory.
|
|
141
|
+
|
|
142
|
+
**Your tasks with 99% accuracy using any LLM (Claude, DeepSeek, Codex, Gemini, Hermes, OpenClaw, Cursor).**
|
|
143
|
+
|
|
144
|
+
[](https://pypi.org/project/simplicio-cli/)
|
|
145
|
+
[](https://pypi.org/project/simplicio-cli/)
|
|
146
|
+
[](LICENSE)
|
|
147
|
+
|
|
148
|
+
[](output/imagegen/simplicio-cli-readme-hero.png)
|
|
149
|
+
|
|
150
|
+
> *"hide the Delete button for non-admins"* → diff + test + applied + verified.
|
|
151
|
+
> **Zero API key inside Claude Code** (auto-installs, uses your subscription) — or
|
|
152
|
+
> bring your own key for any provider: OpenRouter, OpenAI, Anthropic, GLM,
|
|
153
|
+
> DeepSeek, Ollama.
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
pip install simplicio-cli
|
|
157
|
+
```
|
|
158
|
+
|
|
159
|
+
---
|
|
160
|
+
### Recommended Default Stack (Official)
|
|
161
|
+
|
|
162
|
+
The recommended and supported way to use `simplicio-dev-cli` is as part of the full Simplicio execution stack:
|
|
163
|
+
|
|
164
|
+
**simplicio-dev-cli + simplicio-prompt + agents/skills**
|
|
165
|
+
|
|
166
|
+
- `simplicio-dev-cli`: 6-layer contract, verification loop, and core task execution.
|
|
167
|
+
- `simplicio-prompt`: Subagent runtime, fan-out, behavior consensus aggregator, and advanced orchestration.
|
|
168
|
+
- **Agents & Skills**: Reusable capabilities from `.skills/`, `.agents/`, and the Simplicio starter (AGENTS.md, specs-as-code, etc.).
|
|
169
|
+
|
|
170
|
+
This combination is the **official default** across the Simplicio ecosystem. All benchmarks, examples, and documentation assume this full stack.
|
|
171
|
+
|
|
172
|
+
See the canonical policy:
|
|
173
|
+
- [docs/LLM_USAGE_POLICY.md](docs/LLM_USAGE_POLICY.md)
|
|
174
|
+
|
|
175
|
+
When bootstrapping a new project with the Simplicio starter, this stack is configured by default.
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
### Why it works — the numbers
|
|
179
|
+
|
|
180
|
+
Two complementary benchmarks measure different things. Read them in order.
|
|
181
|
+
|
|
182
|
+
#### 1. Execution benchmark — real project, real tasks, real test suite (the "does it work" answer)
|
|
183
|
+
|
|
184
|
+
**This is not regex pattern-matching. This is not a synthetic toy harness in
|
|
185
|
+
isolation.** Run against [`wesleysimplicio/sistema-sindico`](https://github.com/wesleysimplicio/sistema-sindico)
|
|
186
|
+
— a real condominium-management system in pure PHP 8, public on GitHub, with a
|
|
187
|
+
real PHPUnit suite (`vendor/bin/phpunit --configuration phpunit.xml.dist`).
|
|
188
|
+
|
|
189
|
+
For each task the model is asked for a **real engineering change** — add a new
|
|
190
|
+
method to an existing production class (permission helper, env parser,
|
|
191
|
+
rate-limit key builder, repository SQL builder, route introspection, etc.).
|
|
192
|
+
The generated file replaces the original in a working copy of the real repo;
|
|
193
|
+
a **hidden PHPUnit test** (never shown to the model, asserting BOTH true and
|
|
194
|
+
false states of the required behaviour) is dropped into
|
|
195
|
+
`tests/unit/Core/Hidden/`; the **entire production suite runs** (every
|
|
196
|
+
pre-existing test of the real codebase plus the hidden one). **Pass =
|
|
197
|
+
`phpunit` exit code 0** — the same green/red signal the project's CI would use
|
|
198
|
+
to merge a PR. The model's change must be *correct* (the new test passes) AND
|
|
199
|
+
must *not break existing behaviour* (every prior test still passes).
|
|
200
|
+
|
|
201
|
+
All sides emit the complete file (identical output shape); the only variable
|
|
202
|
+
is the wrapping prompt.
|
|
203
|
+
|
|
204
|
+
4 tasks · **9 models** (3 small · 3 mid · 3 frontier) · 2 sides = **36 runs per side**, scored by `vendor/bin/phpunit` exit code on 2026-05-28. Both sides emit the complete file; the only variable is whether the goal is wrapped in the simplicio contract:
|
|
205
|
+
|
|
206
|
+
| Tier | Model | Without simplicio | With simplicio | Gain |
|
|
207
|
+
|---|---|---|---|---|
|
|
208
|
+
| small | **Llama 3.2 1B** (`meta-llama/Llama-3.2-1B-Instruct`) | 0% | 0% | 0 pts |
|
|
209
|
+
| small | **Gemma 3n e4B** (`google/gemma-3n-E4B-it`) | 0% | 0% | 0 pts |
|
|
210
|
+
| small | **Gemma 3 4B** (`google/gemma-3-4b-it`) | 0% | **75%** | **+75 pts** |
|
|
211
|
+
| mid | **Qwen 2.5 7B** (`qwen/qwen-2.5-7b-instruct`) | 0% | **25%** | **+25 pts** |
|
|
212
|
+
| mid | **Llama 3.1 8B** (`meta-llama/Llama-3.1-8B-Instruct`) | 50% | **100%** | **+50 pts** |
|
|
213
|
+
| mid | **Gemma 3 12B** (`google/gemma-3-12b-it`) | 50% | **75%** | **+25 pts** |
|
|
214
|
+
| frontier | **Gemini 3.5 Flash** (`google/gemini-3.5-flash`) | 75% | **100%** | **+25 pts** |
|
|
215
|
+
| frontier | **Claude Opus 4.7** (`anthropic/claude-opus-4.7`) | 50% | **100%** | **+50 pts** |
|
|
216
|
+
| frontier | **GPT-5.5** (`openai/gpt-5.5`) | 75% | **100%** | **+25 pts** |
|
|
217
|
+
| **Headline (9 models · 4 tasks · 36 runs/side)** | | **33%** | **64%** | **+31 pts** |
|
|
218
|
+
|
|
219
|
+
> Every model with baseline capability to emit valid PHP gains **+25 to +75
|
|
220
|
+
> points** when the task is wrapped in the simplicio contract. The **two
|
|
221
|
+
> sub-2B/4B-MoE models score 0% on both sides** — they can't produce a
|
|
222
|
+
> parseable PHP file regardless of prompt — so the contract has nothing to
|
|
223
|
+
> amplify. Honest scope: simplicio multiplies capable models, it does not
|
|
224
|
+
> create capability in tiny ones. Three frontier models hit **100%** with the
|
|
225
|
+
> contract.
|
|
226
|
+
|
|
227
|
+
Full report: [`bench/results_exec_sindico.md`](bench/results_exec_sindico.md) ·
|
|
228
|
+
[`bench/results_exec_sindico.pdf`](bench/results_exec_sindico.pdf). Reproduce:
|
|
229
|
+
clone `sistema-sindico` (public), `composer install`, then
|
|
230
|
+
`BENCH_BASE_URL=… BENCH_API_KEY=… BENCH_MODELS=…
|
|
231
|
+
python3 bench/run_exec_sindico.py`. Hidden tests live under
|
|
232
|
+
`bench/sindico_hidden/`; harness in `bench/run_exec_sindico.py`.
|
|
233
|
+
|
|
234
|
+
#### 2. Contract-adherence benchmark — structural checks across many models
|
|
235
|
+
|
|
236
|
+
The tables below measure something **narrower and complementary**: did the
|
|
237
|
+
model produce **the right shape of actionable output** (target-file mention +
|
|
238
|
+
DIFF block + TEST block + contract-state keywords) on a raw one-line prompt
|
|
239
|
+
vs. the simplicio contract. Scoring is via **deterministic regex** on the
|
|
240
|
+
output — it's not a proof that the code compiles or passes runtime tests.
|
|
241
|
+
That's what the execution benchmark above is for. The two answer different
|
|
242
|
+
questions: this one measures *contract adherence at scale across many models*;
|
|
243
|
+
the execution one measures *runtime correctness on a real codebase*.
|
|
244
|
+
|
|
245
|
+
Same model. Same task. Only the prompt changes. **Measured, reproducible, deterministic.**
|
|
246
|
+
**Seventeen models tested across four runs** — three local Ollama models on an
|
|
247
|
+
M1 MacBook (8 GB), five sub-4B tiny models, six frontier 2026 models, and three
|
|
248
|
+
mid-tier 7B–12B open models. Every one gained at least **+14 points** when
|
|
249
|
+
wrapped in simplicio's 6-layer contract.
|
|
250
|
+
|
|
251
|
+
##### Hugging Face — recommended Qwen3-Coder defaults (HF router)
|
|
252
|
+
|
|
253
|
+
The served Qwen Coder recommendation now uses the Qwen3-Coder MoE family.
|
|
254
|
+
`Qwen/Qwen2.5-Coder-3B-Instruct` and
|
|
255
|
+
`Qwen/Qwen2.5-Coder-7B-Instruct` remain available as legacy fallback models for
|
|
256
|
+
historical comparisons and hardware that cannot host the MoE successors.
|
|
257
|
+
|
|
258
|
+
| Slot | Recommended model | Route | Notes |
|
|
259
|
+
|---|---|---|---|
|
|
260
|
+
| Efficient coder | `Qwen/Qwen3-Coder-30B-A3B-Instruct` | HF router | 30B total / ~3B active MoE successor to the 3B slot |
|
|
261
|
+
| High-ceiling coder | `Qwen/Qwen3-Coder-Next` | HF router | 80B total / ~3B active MoE successor to the 7B slot |
|
|
262
|
+
|
|
263
|
+
> Reproduce the new default set:
|
|
264
|
+
> `BENCH_BASE_URL=https://router.huggingface.co/v1 BENCH_API_KEY=<hf-token>
|
|
265
|
+
> BENCH_MODELS="Qwen/Qwen3-Coder-30B-A3B-Instruct,Qwen/Qwen3-Coder-Next"
|
|
266
|
+
> python3 bench/run_offline.py`.
|
|
267
|
+
|
|
268
|
+
Legacy Qwen2.5-Coder baseline, re-run on 2026-05-27 against the latest
|
|
269
|
+
`simplicio-mapper` artifacts (10 cases/side, 156 checks):
|
|
270
|
+
|
|
271
|
+
| Model | Without simplicio | With simplicio | Gain |
|
|
272
|
+
|---|---|---|---|
|
|
273
|
+
| **Qwen 2.5 Coder 7B** (`Qwen/Qwen2.5-Coder-7B-Instruct`) | 38% | **96%** | **+58 pts** |
|
|
274
|
+
| **Qwen 2.5 Coder 3B** (`Qwen/Qwen2.5-Coder-3B-Instruct`) | 34% | **94%** | **+60 pts** |
|
|
275
|
+
| **Qwen 2.5 Coder 1.5B** (`Qwen/Qwen2.5-Coder-1.5B-Instruct`, local CPU) | 30% | **92%** | **+62 pts** |
|
|
276
|
+
| **HF avg (3 models · 10 cases · 156 checks)** | **34%** | **94%** | **+60 pts (+172%)** |
|
|
277
|
+
|
|
278
|
+
> Monotonic from smaller to larger in the legacy baseline: pass-rate with
|
|
279
|
+
> simplicio climbs **92% → 94% → 96%** as the model grows, while the raw-prompt
|
|
280
|
+
> baseline stays at **30–38%**. Reproduce the legacy set:
|
|
281
|
+
> `BENCH_BASE_URL=https://router.huggingface.co/v1 BENCH_API_KEY=<hf-token>
|
|
282
|
+
> BENCH_MODELS="local:Qwen/Qwen2.5-Coder-1.5B-Instruct,Qwen/Qwen2.5-Coder-3B-Instruct,Qwen/Qwen2.5-Coder-7B-Instruct"
|
|
283
|
+
> python3 bench/run_offline.py`.
|
|
284
|
+
|
|
285
|
+
Side-by-side delta vs the previously published numbers (same regex methodology,
|
|
286
|
+
all 17 README models re-measured):
|
|
287
|
+
[`bench/results_comparison.md`](bench/results_comparison.md) ·
|
|
288
|
+
[`bench/results_comparison.pdf`](bench/results_comparison.pdf). Headline on the
|
|
289
|
+
14 models with clean data: **with simplicio averaged 86% → 88% (+2 pts); without
|
|
290
|
+
simplicio 36% → 36% (+1 pt)** — the new run reproduces the published numbers
|
|
291
|
+
within noise. Three frontier models (Claude Opus 4.7, Qwen 3.7 Max, DeepSeek V4
|
|
292
|
+
Pro) show `n/a` for the new column: their OpenRouter calls hit account-level
|
|
293
|
+
HTTP 402 / provider failures on >50% of requests this round, so the sample is
|
|
294
|
+
too small to publish; their old numbers still stand.
|
|
295
|
+
|
|
296
|
+
##### Local offline — Qwen3-Coder GGUF recommendation, Qwen2.5 legacy baseline
|
|
297
|
+
|
|
298
|
+
For local OpenAI-compatible servers, prefer the Qwen3-Coder GGUF builds when
|
|
299
|
+
the machine can host MoE weights:
|
|
300
|
+
|
|
301
|
+
| Slot | Recommended local weights | Notes |
|
|
302
|
+
|---|---|---|
|
|
303
|
+
| Efficient coder | `unsloth/Qwen3-Coder-30B-A3B-Instruct-GGUF` | Primary local successor for the 3B-active slot |
|
|
304
|
+
| High-ceiling coder | `unsloth/Qwen3-Coder-Next-GGUF` | 24 GB GPU-class successor for long-context work |
|
|
305
|
+
|
|
306
|
+
The last fully offline fallback baseline remains qwen2.5-coder on Ollama,
|
|
307
|
+
M1 8 GB, run on 2026-05-27 (30 runs/side, 156 checks):
|
|
308
|
+
|
|
309
|
+
| Model | Without simplicio | With simplicio | Gain |
|
|
310
|
+
|---|---|---|---|
|
|
311
|
+
| **Qwen 2.5 Coder 7B** (`qwen2.5-coder:7b`) | 36% | **92%** | **+56 pts** |
|
|
312
|
+
| **Qwen 2.5 Coder 3B** (`qwen2.5-coder:3b`) | 34% | **82%** | **+48 pts** |
|
|
313
|
+
| **Qwen 2.5 Coder 1.5B** (`qwen2.5-coder:1.5b`) | 32% | **88%** | **+56 pts** |
|
|
314
|
+
| **Local avg (3 models · 10 cases · 156 checks)** | **34%** | **87%** | **+53 pts (+156%)** |
|
|
315
|
+
|
|
316
|
+
> **Zero API key, zero network.** Bench ran fully offline against
|
|
317
|
+
> `http://localhost:11434/v1` (Ollama's OpenAI-compatible endpoint). A
|
|
318
|
+
> 1.5B-param model running on a 4-year-old laptop reaches **88%** pass-rate
|
|
319
|
+
> with simplicio's contract — same hardware, same model, raw prompt = 32%.
|
|
320
|
+
> Reproduce the legacy fallback: `BENCH_BASE_URL=http://localhost:11434/v1 BENCH_API_KEY=ollama
|
|
321
|
+
> BENCH_MODELS="qwen2.5-coder:7b" python3 bench/run_offline.py`.
|
|
322
|
+
|
|
323
|
+
##### Tiny models — sub-4B, run on 2026-05-26 (50 runs/side, 260 checks)
|
|
324
|
+
|
|
325
|
+
| Model | Without simplicio | With simplicio | Gain |
|
|
326
|
+
|---|---|---|---|
|
|
327
|
+
| **Gemma 3 4B** (`google/gemma-3-4b-it`) | 38% | **96%** | **+58 pts** |
|
|
328
|
+
| **Llama 3.2 3B** (`meta-llama/llama-3.2-3b-instruct`) | 28% | **73%** | **+45 pts** |
|
|
329
|
+
| **Gemma 3n e4B** (`google/gemma-3n-e4b-it`) | 44% | **88%** | **+44 pts** |
|
|
330
|
+
| **Phi-4 mini** (`microsoft/phi-4-mini-instruct`) | 36% | **73%** | **+37 pts** |
|
|
331
|
+
| **Llama 3.2 1B** (`meta-llama/llama-3.2-1b-instruct`) | 26% | **40%** | **+14 pts** |
|
|
332
|
+
| **Tiny avg (5 models · 10 cases · 260 checks)** | **35%** | **74%** | **+39 pts (+112%)** |
|
|
333
|
+
|
|
334
|
+
> **Not hosted on OpenRouter** (requested but skipped): Gemma 3 270M, Gemma 3 1B,
|
|
335
|
+
> Gemma 2 2B, Qwen3 0.6B, Qwen3 1.7B, Qwen2.5 0.5B, Qwen2.5 1.5B, Qwen 3B,
|
|
336
|
+
> Nemotron Nano 4B (OR's smallest Nemotron is 9B). Sub-4B substitutes used above.
|
|
337
|
+
> simplicio still gains **+14 to +58 points** even on a 1B-param model.
|
|
338
|
+
|
|
339
|
+
##### Frontier 2026 models — run on 2026-05-26 (60 runs/side, 312 checks)
|
|
340
|
+
|
|
341
|
+
| Model | Without simplicio | With simplicio | Gain |
|
|
342
|
+
|---|---|---|---|
|
|
343
|
+
| **GPT-5.5** (`openai/gpt-5.5`) | 38% | **100%** | **+62 pts** |
|
|
344
|
+
| **Kimi K2.6** (`moonshotai/kimi-k2.6`) | 40% | **100%** | **+60 pts** |
|
|
345
|
+
| **Gemini 3.5 Flash** (`google/gemini-3.5-flash`) | 42% | **100%** | **+58 pts** |
|
|
346
|
+
| **Qwen 3.7 Max** (`qwen/qwen3.7-max`) | 44% | **100%** | **+56 pts** |
|
|
347
|
+
| **Claude Opus 4.7** (`anthropic/claude-opus-4.7`) | 42% | **98%** | **+56 pts** |
|
|
348
|
+
| **DeepSeek V4 Pro** (`deepseek/deepseek-v4-pro`) | 44% | **96%** | **+52 pts** |
|
|
349
|
+
| **Frontier avg (6 models · 10 cases · 312 checks)** | **41%** | **99%** | **+58 pts (+136%)** |
|
|
350
|
+
|
|
351
|
+
##### Mid-tier 7B–12B open models — earlier run (v0.2.2, 30 runs/side, 156 checks)
|
|
352
|
+
|
|
353
|
+
| Model | Without simplicio | With simplicio | Gain |
|
|
354
|
+
|---|---|---|---|
|
|
355
|
+
| **Gemma 3 12B** (`google/gemma-3-12b-it`) | 34% | **92%** | **+58 pts** |
|
|
356
|
+
| **Llama 3.1 8B** (`meta-llama/llama-3.1-8b-instruct`) | 36% | **90%** | **+54 pts** |
|
|
357
|
+
| **Qwen 2.5 7B** (`qwen/qwen-2.5-7b-instruct`) | 34% | **88%** | **+54 pts** |
|
|
358
|
+
| **Mid-tier avg (3 models · 10 cases · 156 checks)** | **35%** | **90%** | **+55 pts (+156%)** |
|
|
359
|
+
|
|
360
|
+
> **Across all 17 models tested across four runs**, the average gain is **+51
|
|
361
|
+
> points**. Smallest: **+14 pts** (Llama 3.2 1B — the contract still moves a
|
|
362
|
+
> 1B-param model). Largest: **+62 pts** (GPT-5.5). The contract helps local
|
|
363
|
+
> Ollama models on a 4-year-old laptop, tiny sub-4B models, frontier reasoning
|
|
364
|
+
> models, and mid-tier 7B–12B alike — five of the six frontier models hit
|
|
365
|
+
> **100% pass-rate**.
|
|
366
|
+
|
|
367
|
+
#### Output-quality signals (rate across all 60 frontier runs)
|
|
368
|
+
|
|
369
|
+
| Signal | Raw prompt | With simplicio |
|
|
370
|
+
|---|---|---|
|
|
371
|
+
| **DIFF block present** | 36% | **98%** |
|
|
372
|
+
| Target file mentioned | 1% | **100%** |
|
|
373
|
+
| TEST block present | 88% | **98%** |
|
|
374
|
+
|
|
375
|
+
#### Cost — tokens & wall-clock (measured, not estimated)
|
|
376
|
+
|
|
377
|
+
Same provider, same models, same cases. Token counts pulled from the API
|
|
378
|
+
`usage` field; latency from `time.perf_counter()` around each call.
|
|
379
|
+
|
|
380
|
+
| Side | Tokens / run | Wall-clock / run | Total tokens (60 runs) | Total time |
|
|
381
|
+
|---|---|---|---|---|
|
|
382
|
+
| Raw prompt | 1,967 | 46.1s | 118,040 | 46m 07s |
|
|
383
|
+
| With simplicio | **3,168** | **57.6s** | **190,119** | **57m 33s** |
|
|
384
|
+
| Δ | **+61%** | **+24%** | +72,079 | +11m 26s |
|
|
385
|
+
|
|
386
|
+
simplicio wraps the objective in a 6-layer contract — more input tokens up
|
|
387
|
+
front, longer completions because the model produces the full DIFF + TEST +
|
|
388
|
+
EVIDENCE the contract demands instead of a one-line guess. The bill goes up,
|
|
389
|
+
but so does the **pass-rate (41% → 99%)** and the **DIFF-block rate (36% → 98%)** —
|
|
390
|
+
useful tokens, not chat.
|
|
391
|
+
|
|
392
|
+
> Six frontier models — GPT-5.5, Kimi K2.6, Gemini 3.5 Flash, Qwen 3.7 Max,
|
|
393
|
+
> Claude Opus 4.7, DeepSeek V4 Pro — gained **+52 to +62 points** when wrapped
|
|
394
|
+
> in simplicio's 6-layer contract. Without changing the model. Without
|
|
395
|
+
> fine-tuning. Five of six landed at **100% pass-rate with simplicio**.
|
|
396
|
+
|
|
397
|
+
Full report: [`bench/results.md`](bench/results.md) · [`bench/results.pdf`](bench/results.pdf) · raw outputs under `.simplicio/bench_runs/`.
|
|
398
|
+
|
|
399
|
+
---
|
|
400
|
+
|
|
401
|
+
### How it works
|
|
402
|
+
|
|
403
|
+
```
|
|
404
|
+
mapper WHERE project structure + latest state
|
|
405
|
+
precedent HOW-1 the real snippet in THIS repo that already does it
|
|
406
|
+
skill-router HOW-2 the ONE mapper skill that matches (ranked, not all)
|
|
407
|
+
simplicio BUILD stacks the 6 layers into one prompt (cache-friendly)
|
|
408
|
+
test JUDGE contract written as testable states
|
|
409
|
+
verify PROOF ran it — did it actually pass? loop-fix up to 3x
|
|
410
|
+
```
|
|
411
|
+
|
|
412
|
+
#### Rich mapper integration
|
|
413
|
+
|
|
414
|
+
When `simplicio-mapper` has generated `.simplicio/project-map.json` and
|
|
415
|
+
`.simplicio/precedent-index.json`, `simplicio-cli` consumes them directly:
|
|
416
|
+
|
|
417
|
+
- exact target file metadata, roles, imports and exports
|
|
418
|
+
- entry points, test files, modules, entities and architecture signals
|
|
419
|
+
- recent changes and changed-file context
|
|
420
|
+
- precedent snippets ranked from `precedent-index.json`
|
|
421
|
+
|
|
422
|
+
If those artifacts are missing, the CLI falls back to the older target-file
|
|
423
|
+
inspection path, so existing projects keep working.
|
|
424
|
+
|
|
425
|
+
#### Adaptive retry and observability
|
|
426
|
+
|
|
427
|
+
The retry loop now validates generated output before applying/testing it,
|
|
428
|
+
classifies failures, and sends targeted retry feedback. Bench and pipeline runs
|
|
429
|
+
can append lightweight JSONL records to `.simplicio/runs.jsonl` with prompt
|
|
430
|
+
variant, model/provider, estimated tokens, target, mode and failure class.
|
|
431
|
+
|
|
432
|
+
**The idea in one line: don't ask the model to guess — hand it the path.**
|
|
433
|
+
Each layer terminates one decision the model would otherwise hallucinate.
|
|
434
|
+
Relevant > complete — inject the *right* context, never *all* of it.
|
|
435
|
+
|
|
436
|
+
---
|
|
437
|
+
|
|
438
|
+
### Install
|
|
439
|
+
|
|
440
|
+
```bash
|
|
441
|
+
pip install simplicio-cli # from PyPI (pulls simplicio-mapper + simplicio-prompt)
|
|
442
|
+
# or
|
|
443
|
+
pip install -e . # from this repo
|
|
444
|
+
```
|
|
445
|
+
|
|
446
|
+
The install ships **three Simplicio packages** that play distinct roles:
|
|
447
|
+
|
|
448
|
+
- **`simplicio-cli`** (this repo) — the 6-layer task contract + verify loop.
|
|
449
|
+
The default wrapper for one-shot code edits. *Headline: +31 pts vs raw
|
|
450
|
+
baseline on real PHPUnit (see Section 1).*
|
|
451
|
+
- **`simplicio-mapper`** — emits `.simplicio/project-map.json` and
|
|
452
|
+
`precedent-index.json` so the CLI can target the right file/precedent
|
|
453
|
+
without guessing.
|
|
454
|
+
- **`simplicio-prompt`** (≥1.7.0) — the Tuple-Space + Yool agent runtime
|
|
455
|
+
kernel (`kernel.subagent_runtime.SubagentRuntime`) for orchestrated work:
|
|
456
|
+
real parallel subagent fan-out on any OpenAI-compatible provider, with
|
|
457
|
+
bounded lane concurrency, a receipt cache, jittered backoff and a
|
|
458
|
+
circuit breaker. *On one-shot code tasks it's net-neutral and not the
|
|
459
|
+
right tool (use simplicio-cli for those); on orchestrated multi-step /
|
|
460
|
+
fan-out work it's the engine.* Our chosen fan-out default for this
|
|
461
|
+
project is **N=200** subagents — the level where harder tasks start to
|
|
462
|
+
recover from per-call noise (partial Qwen2.5-Coder-3B data:
|
|
463
|
+
`env_get_int` at N=64 → 0 PHPUnit passes of 64; at higher N some tasks
|
|
464
|
+
flip to passing). The fan-out benchmark
|
|
465
|
+
(`bench/run_fanout.py`) measures both real PHPUnit pass-rate and a
|
|
466
|
+
structural regex check on every subagent and surfaces the gap; full
|
|
467
|
+
ongoing numbers in [`bench/results_fanout.md`](bench/results_fanout.md) ·
|
|
468
|
+
[`bench/results_fanout.pdf`](bench/results_fanout.pdf). Set
|
|
469
|
+
`BENCH_SINDICO_SRC` / `BENCH_SINDICO_WORK` when the local
|
|
470
|
+
`sistema-sindico` checkout and work copy are not under `/tmp`.
|
|
471
|
+
|
|
472
|
+
Each is independently published on PyPI; ship them as a set so the CLI's
|
|
473
|
+
mapper-rich precedent ranking, contract-shaped prompts, and (when called
|
|
474
|
+
for) real subagent fan-out all work out of the box without extra setup.
|
|
475
|
+
|
|
476
|
+
---
|
|
477
|
+
|
|
478
|
+
### How you use it — pick your path
|
|
479
|
+
|
|
480
|
+
simplicio-cli has **three distinct entry points**. Same engine, three front doors — pick the one that matches what you already pay for:
|
|
481
|
+
|
|
482
|
+
| You have | Path | LLM call goes through | Need API key? |
|
|
483
|
+
|---|---|---|---|
|
|
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` |
|
|
487
|
+
|
|
488
|
+
**Most users land on Path 1.** `pip install simplicio-cli` puts the binary 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
|
+
|
|
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 simplicio's own hook.
|
|
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.
|
|
493
|
+
|
|
494
|
+
#### Path 1 example — inside Claude Code
|
|
495
|
+
|
|
496
|
+
After `pip install simplicio-cli && simplicio smoke` (which triggers auto-bootstrap), just type your task in Claude Code:
|
|
497
|
+
|
|
498
|
+
```
|
|
499
|
+
hide the Delete button for non-admins in src/app/screen/screen.component.html
|
|
500
|
+
```
|
|
501
|
+
|
|
502
|
+
Claude Code sees the skill (semantic match) and the hook hint (`[SIMPLICIO_PROMPT_HINT]` on stderr — deterministic classifier). It runs simplicio's 6-layer contract under the hood. You see the diff + tests + verification — same as before, just dramatically more accurate.
|
|
503
|
+
|
|
504
|
+
#### Path 2 example — subscription shell-out, zero key
|
|
505
|
+
|
|
506
|
+
You already pay for Claude Pro/Max or ChatGPT Plus + Codex CLI. simplicio
|
|
507
|
+
piggybacks on that login — no extra bill, no key to manage.
|
|
508
|
+
|
|
509
|
+
```bash
|
|
510
|
+
# Option A — Claude Code subscription (run `claude login` once)
|
|
511
|
+
export SIMPLICIO_MODEL=claude-cli/sonnet # or claude-cli/opus, claude-cli/default
|
|
512
|
+
unset SIMPLICIO_API_KEY # explicitly: no key needed
|
|
513
|
+
|
|
514
|
+
simplicio task "hide Delete button for non-admins" --stack angular \
|
|
515
|
+
--target src/app/screen/screen.component.html
|
|
516
|
+
|
|
517
|
+
# Option B — Codex CLI subscription (run `codex login` once)
|
|
518
|
+
export SIMPLICIO_MODEL=codex-cli/gpt-5 # or codex-cli/default
|
|
519
|
+
simplicio task "..." --stack angular --target ...
|
|
520
|
+
```
|
|
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 simplicio's own UserPromptSubmit hook (no infinite recursion).
|
|
523
|
+
|
|
524
|
+
For orchestrators such as SendSprint, `simplicio task` also has a structured
|
|
525
|
+
contract:
|
|
526
|
+
|
|
527
|
+
```bash
|
|
528
|
+
simplicio task "hide Delete button for non-admins" \
|
|
529
|
+
--stack angular \
|
|
530
|
+
--target src/app/screen/screen.component.html \
|
|
531
|
+
--dry-run-task \
|
|
532
|
+
--json
|
|
533
|
+
|
|
534
|
+
simplicio task "front-only task" \
|
|
535
|
+
--stack angular \
|
|
536
|
+
--target src/app/screen/screen.component.html \
|
|
537
|
+
--bound-paths "src/app/**" \
|
|
538
|
+
--json
|
|
539
|
+
```
|
|
540
|
+
|
|
541
|
+
`--dry-run-task` generates the would-be diff/test output without applying or
|
|
542
|
+
testing it. `--json` returns `{task_id, applied, files_changed, tokens_used,
|
|
543
|
+
cost_usd, diff_summary, warnings}`. Repeat `--bound-paths <glob>` to reject
|
|
544
|
+
diffs outside the allowed edit surface; violations are reported in `warnings`
|
|
545
|
+
and the command exits non-zero.
|
|
546
|
+
|
|
547
|
+
#### Path 3 example — standalone with API key
|
|
548
|
+
|
|
549
|
+
```bash
|
|
550
|
+
export SIMPLICIO_API_KEY=sk-or-v1-… # OpenRouter key
|
|
551
|
+
export SIMPLICIO_MODEL=anthropic/claude-opus-4
|
|
552
|
+
export SIMPLICIO_BASE_URL=https://openrouter.ai/api/v1
|
|
553
|
+
|
|
554
|
+
simplicio index --stack angular # one-time, builds embedding cache
|
|
555
|
+
simplicio task "hide Delete button for non-admins" \
|
|
556
|
+
--stack angular \
|
|
557
|
+
--target src/app/screen/screen.component.html \
|
|
558
|
+
--criteria "- no admin perm: button absent from DOM
|
|
559
|
+
- with admin perm: button present" \
|
|
560
|
+
--constraints "- don't touch save flow
|
|
561
|
+
- build passes"
|
|
562
|
+
```
|
|
563
|
+
|
|
564
|
+
Provider-agnostic — see [Configure](#configure--any-llm-nothing-hardcoded) for the full matrix.
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
#### Path 1 deep-dive — auto-activation in Claude Code
|
|
569
|
+
|
|
570
|
+
`pip install` puts `simplicio` on your PATH. To make Claude Code
|
|
571
|
+
**automatically** route code-edit tasks through simplicio, a skill + hook
|
|
572
|
+
need to land in `~/.claude/`.
|
|
573
|
+
|
|
574
|
+
**Zero-step path (recommended).** The first time you run *any* `simplicio`
|
|
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
|
|
577
|
+
line. PEP 517 wheels can't execute code on `pip install`, so this is the
|
|
578
|
+
closest equivalent that works on every machine.
|
|
579
|
+
|
|
580
|
+
```bash
|
|
581
|
+
pip install simplicio-cli
|
|
582
|
+
simplicio smoke # ← first call also installs skill + hook (idempotent)
|
|
583
|
+
# stderr: "simplicio: auto-activation installed in Claude Code …"
|
|
584
|
+
```
|
|
585
|
+
|
|
586
|
+
Opt out before the first call:
|
|
587
|
+
|
|
588
|
+
```bash
|
|
589
|
+
export SIMPLICIO_SKIP_AUTO_INIT=1
|
|
590
|
+
```
|
|
591
|
+
|
|
592
|
+
**Explicit path.** Same effect, no auto-magic:
|
|
593
|
+
|
|
594
|
+
```bash
|
|
595
|
+
simplicio init # idempotent
|
|
596
|
+
simplicio init --dry-run # preview only
|
|
597
|
+
simplicio init --claude-home <path> # override target dir
|
|
598
|
+
```
|
|
599
|
+
|
|
600
|
+
Either way, two files land in `~/.claude/`:
|
|
601
|
+
|
|
602
|
+
| File | Purpose |
|
|
603
|
+
|---|---|
|
|
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 |
|
|
606
|
+
|
|
607
|
+
A backup of your previous `settings.json` is written to `settings.json.bak`
|
|
608
|
+
before any merge.
|
|
609
|
+
|
|
610
|
+
#### How it works at runtime
|
|
611
|
+
|
|
612
|
+
After install, every prompt you type in Claude Code flows through two layers:
|
|
613
|
+
|
|
614
|
+
1. **Skill layer (semantic).** Claude reads the SKILL.md description. When
|
|
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
|
|
617
|
+
writing code directly.
|
|
618
|
+
2. **Hook layer (deterministic).** Every prompt fires `simplicio detect` via
|
|
619
|
+
the UserPromptSubmit hook. The classifier scores the prompt (verbs + file
|
|
620
|
+
extensions + code nouns − read-only cues). Score ≥ 3 → it emits a
|
|
621
|
+
`[SIMPLICIO_PROMPT_HINT]` block on stderr. Claude sees the hint alongside
|
|
622
|
+
your prompt — a hard nudge toward `simplicio task <prompt> <repo>`.
|
|
623
|
+
|
|
624
|
+
The layers are complementary. Skill = "Claude *might* pick simplicio". Hook
|
|
625
|
+
= "Claude *sees* the hint regardless".
|
|
626
|
+
|
|
627
|
+
#### Why UserPromptSubmit and not PreToolUse
|
|
628
|
+
|
|
629
|
+
UserPromptSubmit fires **once, before Claude decides which tool to call** —
|
|
630
|
+
exactly when we want to steer. PreToolUse fires *after* the decision is made,
|
|
631
|
+
and again for every tool call in the turn, with no access to the original
|
|
632
|
+
user prompt. UserPromptSubmit is the right pre-hook for routing decisions.
|
|
633
|
+
|
|
634
|
+
#### Disable / re-enable
|
|
635
|
+
|
|
636
|
+
| Goal | How |
|
|
637
|
+
|---|---|
|
|
638
|
+
| Block the auto-bootstrap | `export SIMPLICIO_SKIP_AUTO_INIT=1` before the first `simplicio` call |
|
|
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` |
|
|
643
|
+
|
|
644
|
+
---
|
|
645
|
+
|
|
646
|
+
### Configure — any LLM, nothing hardcoded
|
|
647
|
+
|
|
648
|
+
> Applies to **Path 2** (standalone CLI). Path 1 users can skip this entire
|
|
649
|
+
> section — Claude Code handles the LLM call with the model and key already
|
|
650
|
+
> tied to your subscription.
|
|
651
|
+
|
|
652
|
+
| Provider | SIMPLICIO_MODEL | SIMPLICIO_BASE_URL |
|
|
653
|
+
|---|---|---|
|
|
654
|
+
| OpenRouter | `anthropic/claude-opus-4` | `https://openrouter.ai/api/v1` |
|
|
655
|
+
| GLM (z.ai) | `glm-4.6` | `https://api.z.ai/api/paas/v4` |
|
|
656
|
+
| DeepSeek | `deepseek-chat` | `https://api.deepseek.com` |
|
|
657
|
+
| OpenAI | `gpt-4.1` | `https://api.openai.com/v1` |
|
|
658
|
+
| Local (Ollama) | `openbmb/minicpm5:latest` | `http://localhost:11434/v1` |
|
|
659
|
+
| Local (in-process) | `local-llama/default` | *(leave unset)* |
|
|
660
|
+
| Anthropic native | `claude-opus-4-7` | *(leave unset)* |
|
|
661
|
+
|
|
662
|
+
If `SIMPLICIO_BASE_URL` is unset and the key is `ANTHROPIC_API_KEY`, it uses the
|
|
663
|
+
native Anthropic SDK. Otherwise it uses an OpenAI-compatible client pointed at
|
|
664
|
+
your `base_url` — so **any** OpenAI-like provider works without code changes.
|
|
665
|
+
|
|
666
|
+
```bash
|
|
667
|
+
simplicio smoke # prints provider config + one test call
|
|
668
|
+
```
|
|
669
|
+
|
|
670
|
+
#### Path 4 — local Ollama primary with GGUF fallback
|
|
671
|
+
|
|
672
|
+
When **no provider is configured** (`SIMPLICIO_MODEL` and
|
|
673
|
+
`SIMPLICIO_BASE_URL` both unset), simplicio uses local Ollama with
|
|
674
|
+
`openbmb/minicpm5:latest`. If that call fails, it falls back to the in-process
|
|
675
|
+
[`llama-cpp-python`](https://github.com/abetlen/llama-cpp-python) backend with
|
|
676
|
+
`Qwen_Qwen3.5-2B-Q6_K.gguf`.
|
|
677
|
+
|
|
678
|
+
```bash
|
|
679
|
+
pip install 'simplicio-cli[local]' # pulls llama-cpp-python + huggingface-hub
|
|
680
|
+
|
|
681
|
+
simplicio task "add input validation to createUser" \
|
|
682
|
+
--target src/users.ts --local # forces local Ollama primary
|
|
683
|
+
|
|
684
|
+
# the fallback GGUF is fetched once from the Hugging Face Hub, then reused
|
|
685
|
+
```
|
|
686
|
+
|
|
687
|
+
Explicit routes (override the default model/weights):
|
|
688
|
+
|
|
689
|
+
```bash
|
|
690
|
+
SIMPLICIO_MODEL=openbmb/minicpm5:latest
|
|
691
|
+
SIMPLICIO_BASE_URL=http://localhost:11434/v1
|
|
692
|
+
SIMPLICIO_API_KEY=ollama
|
|
693
|
+
SIMPLICIO_MODEL=local-llama/default # Qwen_Qwen3.5-2B-Q6_K.gguf fallback
|
|
694
|
+
SIMPLICIO_MODEL=local-llama/bartowski/Qwen_Qwen3.5-2B-GGUF::Qwen_Qwen3.5-2B-Q6_K.gguf
|
|
695
|
+
SIMPLICIO_MODEL=local-llama//models/my-model.gguf # direct local path
|
|
696
|
+
SIMPLICIO_LOCAL_MODEL_PATH=/models/my-model.gguf # always wins
|
|
697
|
+
```
|
|
698
|
+
|
|
699
|
+
Tuning knobs (all optional): `SIMPLICIO_LOCAL_CTX` (context window, default
|
|
700
|
+
`8192`), `SIMPLICIO_LOCAL_THREADS`, `SIMPLICIO_LOCAL_GPU_LAYERS` (offload to GPU,
|
|
701
|
+
default `0`), `SIMPLICIO_LOCAL_MAX_TOKENS` (generation cap),
|
|
702
|
+
`SIMPLICIO_LOCAL_TEMP` (default `0.1`), `SIMPLICIO_LOCAL_MODEL_REPO` /
|
|
703
|
+
`SIMPLICIO_LOCAL_MODEL_FILE`.
|
|
704
|
+
|
|
705
|
+
#### The pipeline (both paths)
|
|
706
|
+
|
|
707
|
+
Whichever entry point you use, each task runs through the same engine:
|
|
708
|
+
|
|
709
|
+
```
|
|
710
|
+
precedent (from cache)
|
|
711
|
+
→ skill match
|
|
712
|
+
→ 6-layer prompt
|
|
713
|
+
→ LLM generates diff + test + Playwright
|
|
714
|
+
→ apply diff
|
|
715
|
+
→ run SIMPLICIO_TEST_CMD
|
|
716
|
+
→ pass? done : send the error back → fix → retry (up to 3x)
|
|
717
|
+
```
|
|
718
|
+
|
|
719
|
+
The 6-layer contract is what moves pass-rate from 41% to 99% on frontier
|
|
720
|
+
models (see [the numbers](#why-it-works--the-numbers) above). The retry loop
|
|
721
|
+
is what catches the remaining edge cases — measured separately in the
|
|
722
|
+
[4-quadrant bench](#4-quadrant-bench--agent--simplicio-matrix).
|
|
723
|
+
|
|
724
|
+
#### Common questions
|
|
725
|
+
|
|
726
|
+
**"I have a Claude Pro subscription but no API key — does this work?"** Yes,
|
|
727
|
+
on Path 1. Install simplicio-cli, open Claude Code, type your task as normal.
|
|
728
|
+
Claude Code makes the LLM call with your subscription; simplicio shapes the
|
|
729
|
+
prompt. No key needed.
|
|
730
|
+
|
|
731
|
+
**"I want to run it in CI / a script / outside Claude Code."** Path 2. Get an
|
|
732
|
+
API key from any of the providers above (OpenRouter is the cheapest way to
|
|
733
|
+
try multiple models behind one key), set `SIMPLICIO_API_KEY` +
|
|
734
|
+
`SIMPLICIO_MODEL` + optional `SIMPLICIO_BASE_URL`, run `simplicio task ...`.
|
|
735
|
+
|
|
736
|
+
**"How do I load `.env.local` safely before running a local API?"** Use
|
|
737
|
+
`eval "$(simplicio env-export .env.local)"` instead of `source .env.local`.
|
|
738
|
+
This preserves values with semicolons, such as PostgreSQL connection strings,
|
|
739
|
+
without executing the dotenv file as shell code.
|
|
740
|
+
|
|
741
|
+
**"I have Codex CLI / ChatGPT Plus and don't want to pay for an API key."**
|
|
742
|
+
Not auto-wired yet. Workarounds: (a) get an OpenRouter key (~$2 covers
|
|
743
|
+
thousands of tasks at small-model rates), (b) wait for the shell-out provider
|
|
744
|
+
that pipes through `claude -p` / `codex exec` using your subscription —
|
|
745
|
+
tracked, not shipped.
|
|
746
|
+
|
|
747
|
+
**"Will Claude Code use simplicio for *every* prompt now?"** No. The skill
|
|
748
|
+
only triggers on prompts that look like code edits (the description is
|
|
749
|
+
specific). The hook fires `simplicio detect` on every prompt but only emits
|
|
750
|
+
a hint when the deterministic classifier scores ≥ 3 (verbs + file extensions
|
|
751
|
+
+ code nouns − read-only cues). "What does this function do?" gets no
|
|
752
|
+
nudge. "Add a delete confirmation to UserList.tsx" does.
|
|
753
|
+
|
|
754
|
+
**"How do I turn it off?"** See [Disable / re-enable](#disable--re-enable)
|
|
755
|
+
above. Two ways: env var (`SIMPLICIO_SKIP_AUTO_INIT=1` before first call) or
|
|
756
|
+
delete the hook entry from `~/.claude/settings.json`.
|
|
757
|
+
|
|
758
|
+
---
|
|
759
|
+
|
|
760
|
+
### Cache — why it doesn't re-map every time
|
|
761
|
+
|
|
762
|
+
Embeddings are keyed by **content hash**, stored in `.simplicio/`. Unchanged
|
|
763
|
+
code block → vector reused. Change one file → only that block re-embeds.
|
|
764
|
+
|
|
765
|
+
| Run | Blocks embedded | Time |
|
|
766
|
+
|---|---|---|
|
|
767
|
+
| 1st (cold cache) | 3 | ~baseline |
|
|
768
|
+
| 2nd (no change) | **0** | **~instant** |
|
|
769
|
+
| after editing 1 file | **1** | partial |
|
|
770
|
+
|
|
771
|
+
---
|
|
772
|
+
|
|
773
|
+
### Benchmark — reproduce in 30 seconds
|
|
774
|
+
|
|
775
|
+
```bash
|
|
776
|
+
OPENROUTER_API_KEY=… \
|
|
777
|
+
BENCH_MODELS="deepseek/deepseek-v4-pro,qwen/qwen3.7-max,moonshotai/kimi-k2.6,openai/gpt-5.5,anthropic/claude-opus-4.7,google/gemini-3.5-flash" \
|
|
778
|
+
python3 bench/run_offline.py
|
|
779
|
+
```
|
|
780
|
+
|
|
781
|
+
No project required, stdlib only, deterministic regex scoring — no LLM judges
|
|
782
|
+
the LLM. Each case runs twice on the **same** model: raw one-line objective vs
|
|
783
|
+
simplicio's 6-layer contract. Outputs scored on target-file mention, DIFF
|
|
784
|
+
block, TEST block, contract-state words. Full numbers in [`bench/results.md`](bench/results.md).
|
|
785
|
+
|
|
786
|
+
#### Full harness (your real project, your real tests)
|
|
787
|
+
|
|
788
|
+
```bash
|
|
789
|
+
simplicio bench --cases bench/cases.json --stack angular
|
|
790
|
+
```
|
|
791
|
+
|
|
792
|
+
Runs each case two ways and runs **your real test command** (e.g. `ng test
|
|
793
|
+
--watch=false`) on each output. Writes the true pass-rate to
|
|
794
|
+
[`bench/results.md`](bench/results.md).
|
|
795
|
+
|
|
796
|
+
#### 4-quadrant bench — agent × simplicio matrix
|
|
797
|
+
|
|
798
|
+
Adds the second axis: not just *"does the 6-layer wrap help one call?"* but
|
|
799
|
+
*"does it still help inside a retry loop?"*. Same model, same cases — only
|
|
800
|
+
the cell logic changes.
|
|
801
|
+
|
|
802
|
+
| | **no simplicio** | **with simplicio** |
|
|
803
|
+
| ----------------------- | ------------------------ | ------------------------ |
|
|
804
|
+
| **no agent** (1 call) | Q1 — baseline | Q2 — current bench |
|
|
805
|
+
| **with agent** (loop) | Q3 — loop only | Q4 — composition |
|
|
806
|
+
|
|
807
|
+
```bash
|
|
808
|
+
pip install -e ".[bench]" # adds fpdf2 for PDF report
|
|
809
|
+
OPENROUTER_API_KEY=… \
|
|
810
|
+
BENCH_MODELS="google/gemma-3-4b-it" \
|
|
811
|
+
BENCH_MAX_ITERS=3 \
|
|
812
|
+
python3 bench/run_4quadrant.py
|
|
813
|
+
```
|
|
814
|
+
|
|
815
|
+
Outputs `bench/results_4quadrant.{md,pdf,json}` + SVG charts under
|
|
816
|
+
`bench/charts/4q_*.svg` + per-iteration raw outputs under
|
|
817
|
+
`.simplicio/bench_4q/<model>/case_NN/q*_iter*.txt`. Methodology and
|
|
818
|
+
hypothesis decomposition: [`docs/benchmark-4quadrant.md`](docs/benchmark-4quadrant.md).
|
|
819
|
+
|
|
820
|
+
The matrix decomposes:
|
|
821
|
+
|
|
822
|
+
- **Prompt effect alone**: Q2 − Q1
|
|
823
|
+
- **Loop effect alone**: Q3 − Q1
|
|
824
|
+
- **Prompt effect inside loop**: Q4 − Q3 (does simplicio still matter once you loop?)
|
|
825
|
+
- **Composition gain over best single axis**: Q4 − max(Q2, Q3)
|
|
826
|
+
- **Synergy vs linear stacking**: Q4 − (Q1 + (Q2−Q1) + (Q3−Q1))
|
|
827
|
+
|
|
828
|
+
##### Run 1 — focused single-model, `google/gemma-3-4b-it`, 5 cases, max_iters=3 (2026-05-26)
|
|
829
|
+
|
|
830
|
+
| Quadrant | Prompt | Execution | Pass rate | Avg iters | Tokens / pass |
|
|
831
|
+
|---|---|---|---|---|---|
|
|
832
|
+
| **Q1** | raw goal | 1-shot | **0/5 (0%)** | 1.00 | 4,683 |
|
|
833
|
+
| **Q2** | simplicio 6-layer | 1-shot | **3/5 (60%)** | 1.00 | 800 |
|
|
834
|
+
| **Q3** | raw goal | loop w/ feedback | **2/5 (40%)** | 3.00 | 3,135 |
|
|
835
|
+
| **Q4** | simplicio 6-layer | loop w/ feedback | **4/5 (80%)** | 1.80 | 1,018 |
|
|
836
|
+
|
|
837
|
+
Decomposition (rejection threshold `|Δ| ≥ 5 pts`):
|
|
838
|
+
|
|
839
|
+
| Hypothesis | Δ | Verdict |
|
|
840
|
+
|---|---|---|
|
|
841
|
+
| Loop alone closes the gap (simplicio unnecessary once you loop) | Q4 − Q3 = **+40 pts** | **rejected** |
|
|
842
|
+
| Simplicio alone is enough (loop is overkill) | Q4 − Q2 = **+20 pts** | **rejected** |
|
|
843
|
+
| Gains stack linearly (no synergy) | Q4 − linear = **−20 pts** | **rejected** |
|
|
844
|
+
|
|
845
|
+
Cost per passing case: Q1 = 4,683 tok / 236s — Q2 = **800 tok / 21s** — Q3 = 3,135 tok / 109s — Q4 = **1,018 tok / 20s**. Full table + charts in [`bench/results_4quadrant.md`](bench/results_4quadrant.md).
|
|
846
|
+
|
|
847
|
+
##### Run 2 — wider multi-model, 3 models × 10 cases (partial), max_iters=5 (2026-05-26)
|
|
848
|
+
|
|
849
|
+
Replicated the matrix across more models and more cases. `qwen-2.5-7b` covers only the first 5 of 10 cases (wide run was killed mid-execution); `claude-3.5-haiku` not reached. Aggregate counts every observed `(model × case × quadrant)` tuple as one observation:
|
|
850
|
+
|
|
851
|
+
| Quadrant | Prompt | Execution | Pass rate | Avg iters | Tokens / pass | ms / pass |
|
|
852
|
+
|---|---|---|---|---|---|---|
|
|
853
|
+
| **Q1** | raw goal | 1-shot | **0/25 (0%)** | 1.00 | 22,387 | 817,437 |
|
|
854
|
+
| **Q2** | simplicio 6-layer | 1-shot | **16/25 (64%)** | 1.00 | 1,093 | 14,797 |
|
|
855
|
+
| **Q3** | raw goal | loop w/ feedback | **11/25 (44%)** | 4.00 | 7,154 | 106,382 |
|
|
856
|
+
| **Q4** | simplicio 6-layer | loop w/ feedback | **19/25 (76%)** | 2.44 | 1,914 | 24,170 |
|
|
857
|
+
|
|
858
|
+
Per-model breakdown:
|
|
859
|
+
|
|
860
|
+
| Model | Cases | Q1 | Q2 | Q3 | Q4 |
|
|
861
|
+
|---|---|---|---|---|---|
|
|
862
|
+
| `google/gemma-3-4b-it` | 10/10 | 0/10 (0%) | 7/10 (70%) | 4/10 (40%) | **8/10 (80%)** |
|
|
863
|
+
| `meta-llama/llama-3.2-3b-instruct` | 10/10 | 0/10 (0%) | 5/10 (50%) | 4/10 (40%) | **6/10 (60%)** |
|
|
864
|
+
| `qwen/qwen-2.5-7b-instruct` | 5/10 | 0/5 (0%) | 4/5 (80%) | 3/5 (60%) | **5/5 (100%)** |
|
|
865
|
+
|
|
866
|
+
Decomposition (rejection threshold `|Δ| ≥ 5 pts`):
|
|
867
|
+
|
|
868
|
+
| Hypothesis | Δ | Verdict |
|
|
869
|
+
|---|---|---|
|
|
870
|
+
| Loop alone closes the gap (simplicio unnecessary once you loop) | Q4 − Q3 = **+32 pts** | **rejected** |
|
|
871
|
+
| Simplicio alone is enough (loop is overkill) | Q4 − Q2 = **+12 pts** | **rejected** |
|
|
872
|
+
| Gains stack linearly (no synergy) | Q4 − linear = **−32 pts** | **rejected** |
|
|
873
|
+
|
|
874
|
+
Same picture at every scale: Q4 (composition) wins on pass-rate, **and** Q4 stays close to Q2 on cost (1.9k tok / 24s per pass vs. Q2's 1.1k / 15s) while Q3 burns 7.2k tok / 106s per pass for fewer passes. Full table + per-case breakdown in [`bench/results_4quadrant_wide.md`](bench/results_4quadrant_wide.md).
|
|
875
|
+
|
|
876
|
+
---
|
|
877
|
+
|
|
878
|
+
### Plug points (stubs marked in code)
|
|
879
|
+
|
|
880
|
+
| File | Replace with |
|
|
881
|
+
|---|---|
|
|
882
|
+
| `prompt.py::_mapper` | your real **llm-project-mapper** |
|
|
883
|
+
| `pipeline.py::_aplicar_e_testar` | extract diff → `git apply` → parse test result |
|
|
884
|
+
| `skill_router.py` | point `SIMPLICIO_SKILLS_DIR` at your mapper's skills |
|
|
885
|
+
|
|
886
|
+
### Layout
|
|
887
|
+
|
|
888
|
+
```
|
|
889
|
+
simplicio/
|
|
890
|
+
cli.py # index | task | bench | smoke
|
|
891
|
+
cache.py # content-hash embedding cache
|
|
892
|
+
precedent.py # grep + semantic rank (uses cache)
|
|
893
|
+
skill_router.py # picks the ONE matching skill
|
|
894
|
+
prompt.py # stacks the 6 layers
|
|
895
|
+
providers.py # any OpenAI-compatible endpoint + Anthropic native
|
|
896
|
+
pipeline.py # generate → test → fix loop
|
|
897
|
+
bench.py # with-vs-without harness
|
|
898
|
+
templates/simplicio_prompt.md
|
|
899
|
+
bench/
|
|
900
|
+
run_offline.py # stdlib-only multi-model benchmark
|
|
901
|
+
cases.json # your benchmark tasks
|
|
902
|
+
cases_offline.json
|
|
903
|
+
results.md # filled by `simplicio bench` / `run_offline.py`
|
|
904
|
+
charts/ # SVG: overall, delta, by_case, by_stack
|
|
905
|
+
```
|
|
906
|
+
|
|
907
|
+
### License
|
|
908
|
+
MIT
|
|
909
|
+
|
|
910
|
+
## Star History
|
|
911
|
+
|
|
912
|
+
<a href="https://www.star-history.com/#wesleysimplicio/simplicio-dev-cli&Date">
|
|
913
|
+
<picture>
|
|
914
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=wesleysimplicio/simplicio-dev-cli&type=Date&theme=dark" />
|
|
915
|
+
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=wesleysimplicio/simplicio-dev-cli&type=Date" />
|
|
916
|
+
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=wesleysimplicio/simplicio-dev-cli&type=Date" />
|
|
917
|
+
</picture>
|
|
918
|
+
</a>
|
|
919
|
+
|
|
920
|
+
## License
|
|
921
|
+
|
|
922
|
+
MIT. See [LICENSE](LICENSE).
|