slipwai 1.2.1.dev5__tar.gz → 1.2.1.dev8__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.
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/PKG-INFO +5 -1
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/README.md +4 -0
- slipwai-1.2.1.dev8/VERSION +1 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/cruise.py +118 -1
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/registry.json +1 -1
- slipwai-1.2.1.dev8/assets/toolkit/scripts/check-ux-gates.py +245 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/ux-gates/init.py +9 -6
- slipwai-1.2.1.dev8/changelog.d/gates-are-not-the-runs-to-change.md +30 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/agent_settings.py +5 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_agents.py +12 -4
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_unblock.py +13 -0
- slipwai-1.2.1.dev5/VERSION +0 -1
- slipwai-1.2.1.dev5/assets/toolkit/scripts/check-ux-gates.py +0 -168
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/.gitignore +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/CHANGELOG.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/docs/change-strategy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/scripts/check-convergence.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/scripts/ratchet.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/support.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/wrappers/gradle/gradlew +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/docker-compose.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/env.example +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/config.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/config_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_contract.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_memory.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_memory_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_postgres.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_sqlite.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/events.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/http_app.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/http_app_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/http_openapi_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/http_security.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/http_security_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/migrate_main.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/migrate_main_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/migrations_embed.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/migrations_keep +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/oidc_keycloak.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/openapi.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/projections.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/projections_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/projections_ticker.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/projections_ticker_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/read_models.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/serve_main.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/tracing.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/tracing_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/actor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/append_result.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/causation_id.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/committed_event.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/condition.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/conditional_append_result.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/correlation_id.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/database_url.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/domain_event.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store_exception.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store_memory.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store_memory_database.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store_postgres.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_store_sqlite.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/event_visitor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/http_schema_failure.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/migrate_main.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/oidc_keycloak.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/projection.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/read_models.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tag_query.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tagged_read.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tags_of.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/database_url_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/event_store_contract.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/projections_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/config_source_registration +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/spring_transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/java-spring/users_security.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/keycloak/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/keycloak/realms/app.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/keycloak/realms/customers.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/prune.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/event_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/event_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/event_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/http_app.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/logging_setup.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/main.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/migrations_apply.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/openapi-flags.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/openapi.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/openapi_export.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/projections.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/projections_lifespan.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/read_models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/conftest.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/event_store_contract.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_http_app.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_projections.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_tracing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/tracing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/sql/001_events.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/sql/002_events_append_only.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/sql/004_event_tags.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/event-store-memory.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/events.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/http-app.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/main.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/migrations/001_events.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/openapi-export.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/openapi-flags.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/openapi.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/projections-plugin.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/projections.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/read-models.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/tracing.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/api-client/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/index.html +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/src/App.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/src/main.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/tsconfig.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app/vite.config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/app/.gremlins.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/app/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/app/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/app/health/health.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/app/health/health_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/flags/flags/flags.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/flags/flags/flags_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/base/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/base/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/postgres/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/postgres/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/sqlite/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/modules/sqlite/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/scripts/go-coverage.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/go/scripts/go-mutation.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/.gitattributes +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/config/checkstyle.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/mvnw +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/build/mvnw.cmd +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/pom.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-quarkus/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/pom.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/java-spring/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/app/pyproject.toml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/app/tests/test_health.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/event-port/tests/test_events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/flags/tests/test_flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/locks/uv-fastapi.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/locks/uv-postgres.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/python/locks/uv.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/app/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/app/src/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/app/src/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/app/src/health.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/app/tests/health.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/biome/biome.jsonc +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/biome/domain-purity.grit +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/flags/src/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/languages/typescript/locks/package-lock.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/commands/example-map.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/.specify/presets/.registry +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/docs/speckit-preset.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/bootstrap/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/bootstrap/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/bootstrap/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/scripts/bootstrap.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/scripts/check-flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/scripts/deploy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/cognito_customers.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/cognito_staff.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/flags.auto.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/flags.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/ingress.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/network.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/no-auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/no-frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/production.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/rds.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/staging.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/aws/service/versions.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/bootstrap/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/bootstrap/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/bootstrap/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/scripts/bootstrap.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/scripts/check-flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/scripts/deploy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/entra_staff.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/flags.auto.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/flags.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/ingress.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/no-auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/no-frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/postgres.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/production.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/staging.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/targets/azure/service/versions.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/.specify/extensions.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/agent-harnesses.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/event-model/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/event-model/model.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/docs/first-slice.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/drive.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/agents/project.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-codegraph.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-constitution.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-decisions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-imports.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-migrations.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-slice-scope.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-speckit.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/check-styles.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/check.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/check.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/model.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/page.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/palette.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/readme.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/render.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/validate.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/guidance.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/menu.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/project.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/test_benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/REFERENCES.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/debugging/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/diagrams/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/double-check/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/expectations/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/find-skills/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/functional/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/observability/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/observability/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/planning/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/specification/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/specification/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/tdd/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/wtf/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/wtf/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/catalog.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/changelog.d/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/changelog.d/slice-scope-record-and-canvas.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/pyproject.toml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/__main__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/add_service.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/adopt.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/adopt_report.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/assets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/axes.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/backends.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/capabilities.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/catalog.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/catch_up.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/changelog.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/cli.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/cli_add.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/cli_adopt.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/cli_prompts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/converge.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/convergence.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/delivery_facts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/ecosystems.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/errors.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/examples.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/extensions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/features.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/images.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/layout.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/manifest.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/migrate.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/naming.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/origin.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/platform.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/preflight.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/probes.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/programme.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/add_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/adopted.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/adopted_ci.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/adopted_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/adversary.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/agent_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/agents.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/aws_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/azure_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/backing_service_prose.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/backing_services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/biome.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/ci_services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/ci_workflows.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/compose.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/composition.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/constitution_journey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/converge_stage.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/convergence_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_hand.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_record.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_seat.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_stops.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/cruise_told.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/decisions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/demo_stop.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/deploy_workflow.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/design_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/docs_index.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/drive_adoption.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/drive_settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/entry_stores.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/event_model.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/evolving.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/existing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/flag_route.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/frontend.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/gitignore.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/ground_command.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/guidance.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/infra.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/init_production.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/init_script.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/integration.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/go.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/java.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/java_quarkus.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/java_spring.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/python.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/languages/typescript.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/makefile.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/metadata.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/model_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/model_to_code.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/mutation.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/native_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/openapi.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/parallel_slices.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/pin_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/pins.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/production.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/provisioning.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/read_side_layouts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/readme.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/renovate.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/repository.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/rules.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/run_skill.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/service_layouts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/shared_packages.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/skills_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/stage_models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/strangle_command.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/structure_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/target_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/whats_next.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/project/where_are_we.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/quick_wins.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/replay.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/resurvey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/scaffold.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/selection.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/strategy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/structure.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/survey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/tooling.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/toolkit.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/upgrade.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/versions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/src/slipwai/wrappers.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: slipwai
|
|
3
|
-
Version: 1.2.1.
|
|
3
|
+
Version: 1.2.1.dev8
|
|
4
4
|
Summary: One-shot scaffolder for product monorepos: a walking skeleton, a verify gate, a path to production, and a repository set up for coding agents.
|
|
5
5
|
Project-URL: Homepage, https://github.com/ROBCOATVG/slipwai
|
|
6
6
|
Project-URL: Repository, https://git.treyco.dev/ROBCOATVG/slipwai
|
|
@@ -244,6 +244,10 @@ changes. What changes is who answers.
|
|
|
244
244
|
- **It never invents a fact.** A credential, an external system, a person's approval: the slice is marked
|
|
245
245
|
blocked, the run takes the next ready slice, and a strong delegate works around the block — a fake behind
|
|
246
246
|
the port, recorded as a fake, or the narrower reading that keeps every rule — and writes down what it did.
|
|
247
|
+
- **It never makes a gate pass by changing the gate.** `scripts/`, the `Makefile`, `tools/`, CI and the hook
|
|
248
|
+
settings are not an iteration's to edit: Claude Code refuses the edit before it lands, and the runner parks
|
|
249
|
+
the run on any change to them, on every harness. A gate the tree cannot satisfy parks the run with the
|
|
250
|
+
gate's own words as the reason.
|
|
247
251
|
- **Every merge is dark.** Under the default release setting each slice ships behind a flag seeded off.
|
|
248
252
|
Nothing the run merged reaches a real actor until you turn a key on.
|
|
249
253
|
- **Done means the specification is satisfied.** When the split runs out, an audit reads the specification
|
|
@@ -215,6 +215,10 @@ changes. What changes is who answers.
|
|
|
215
215
|
- **It never invents a fact.** A credential, an external system, a person's approval: the slice is marked
|
|
216
216
|
blocked, the run takes the next ready slice, and a strong delegate works around the block — a fake behind
|
|
217
217
|
the port, recorded as a fake, or the narrower reading that keeps every rule — and writes down what it did.
|
|
218
|
+
- **It never makes a gate pass by changing the gate.** `scripts/`, the `Makefile`, `tools/`, CI and the hook
|
|
219
|
+
settings are not an iteration's to edit: Claude Code refuses the edit before it lands, and the runner parks
|
|
220
|
+
the run on any change to them, on every harness. A gate the tree cannot satisfy parks the run with the
|
|
221
|
+
gate's own words as the reason.
|
|
218
222
|
- **Every merge is dark.** Under the default release setting each slice ships behind a flag seeded off.
|
|
219
223
|
Nothing the run merged reaches a real actor until you turn a key on.
|
|
220
224
|
- **Done means the specification is satisfied.** When the split runs out, an audit reads the specification
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.2.1.dev8
|
|
@@ -129,8 +129,26 @@ WATCH_QUIET_SECONDS = 20.0
|
|
|
129
129
|
# checkpoint at every stage boundary, so a checkpoint held this often without a rewrite is a session that is
|
|
130
130
|
# not moving, and a hook that never let go would spend tokens forever on it.
|
|
131
131
|
HOLD_LIMIT = 3
|
|
132
|
+
# How long `stop --now` waits for the runner it signalled to be gone before it returns: the runner ends the
|
|
133
|
+
# iteration's session first, and a harness session shutting down takes a moment.
|
|
134
|
+
STOP_WAIT_SECONDS = 30.0
|
|
132
135
|
REGISTRY = SCRIPT.with_name("registry.json")
|
|
133
136
|
INTEGRATION = ROOT / ".specify/integration.json"
|
|
137
|
+
# What a run may never change to get moving — the gates that judge it and the controls that hold it: `make
|
|
138
|
+
# verify`'s scripts and everything beside them, the Makefile that runs them, the tools they run (`tools/`, ignored by
|
|
139
|
+
# Git and installed by an extension), CI, and the hook files the harnesses read this script from. A gate is
|
|
140
|
+
# satisfied in the tree it measures; an iteration that changed one of these instead has the run parked with the
|
|
141
|
+
# change as the reason (`controls_changed` on its log entry), and Claude Code's `PreToolUse` hook (`guard`) refuses
|
|
142
|
+
# the edit before it lands. Under `tools/` a file added is an install, which `./init --extension` does; a file
|
|
143
|
+
# changed or removed is an edit.
|
|
144
|
+
CONTROL_PATHS = (DELIVERY / "Makefile", DELIVERY / "scripts", ROOT / "Makefile", ROOT / "tools",
|
|
145
|
+
ROOT / ".github/workflows", ROOT / ".gitea/workflows", ROOT / ".claude/settings.json")
|
|
146
|
+
INSTALLED = ROOT / "tools"
|
|
147
|
+
SKIPPED_DIRECTORIES = {".git", "__pycache__", "node_modules"}
|
|
148
|
+
GUARD_REASON = ("cruise: `{path}` is a gate or a control of this run, and an iteration never edits one — a gate is "
|
|
149
|
+
"satisfied in the tree it measures, or the run parks with the gate's own output as the reason "
|
|
150
|
+
"(`cruise: parked: <gate>: <what it said>`). The bosun's brief and commands/cruise.md, *Blocked: the "
|
|
151
|
+
"bosun protocol*, say so; the runner parks the run at the end of an iteration that changed one anyway.")
|
|
134
152
|
# Every setting: the values it takes — a tuple of words, or a kind — its default, and what it controls. The
|
|
135
153
|
# factory writes the same list into `.specify/cruise.json` and `commands/cruise-settings.md`.
|
|
136
154
|
CHOICES: dict[str, tuple[str, ...]] = {
|
|
@@ -488,6 +506,82 @@ def child_environment(harness: dict[str, Any] | None) -> dict[str, str]:
|
|
|
488
506
|
return environment
|
|
489
507
|
|
|
490
508
|
|
|
509
|
+
def control_paths() -> list[Path]:
|
|
510
|
+
"""Every gate and control the run is held by, present or not: the fixed ones, and the hook file of every harness
|
|
511
|
+
whose registry row projects one."""
|
|
512
|
+
paths = list(CONTROL_PATHS)
|
|
513
|
+
for row in registry().values():
|
|
514
|
+
projection = (row.get("hooks") or {}).get("projection") if isinstance(row.get("hooks"), dict) else None
|
|
515
|
+
if isinstance(projection, dict) and projection.get("where"):
|
|
516
|
+
paths.append(ROOT / str(projection["where"]))
|
|
517
|
+
return list(dict.fromkeys(paths))
|
|
518
|
+
|
|
519
|
+
|
|
520
|
+
def controls_signature() -> dict[str, str]:
|
|
521
|
+
"""Every file under the controls by its content, taken before an iteration and compared after it."""
|
|
522
|
+
signature: dict[str, str] = {}
|
|
523
|
+
for control in control_paths():
|
|
524
|
+
if control.is_file():
|
|
525
|
+
files = [control]
|
|
526
|
+
elif control.is_dir():
|
|
527
|
+
files = []
|
|
528
|
+
for directory, names, filenames in os.walk(control):
|
|
529
|
+
names[:] = sorted(name for name in names if name not in SKIPPED_DIRECTORIES)
|
|
530
|
+
files += [Path(directory) / name for name in sorted(filenames)]
|
|
531
|
+
else:
|
|
532
|
+
continue
|
|
533
|
+
for path in files:
|
|
534
|
+
try:
|
|
535
|
+
if path.is_file():
|
|
536
|
+
signature[path.relative_to(ROOT).as_posix()] = hashlib.sha256(path.read_bytes()).hexdigest()
|
|
537
|
+
except OSError:
|
|
538
|
+
continue
|
|
539
|
+
return signature
|
|
540
|
+
|
|
541
|
+
|
|
542
|
+
def controls_changed(before: dict[str, str], after: dict[str, str]) -> list[str]:
|
|
543
|
+
"""What an iteration did to the controls, each with its kind — except a file installed under `tools/`."""
|
|
544
|
+
installed = INSTALLED.relative_to(ROOT).as_posix() + "/"
|
|
545
|
+
changes = []
|
|
546
|
+
for path in sorted(set(before) | set(after)):
|
|
547
|
+
if path in before and path in after:
|
|
548
|
+
if before[path] != after[path]:
|
|
549
|
+
changes.append(f"{path} (modified)")
|
|
550
|
+
elif path in before:
|
|
551
|
+
changes.append(f"{path} (deleted)")
|
|
552
|
+
elif not path.startswith(installed):
|
|
553
|
+
changes.append(f"{path} (added)")
|
|
554
|
+
return changes
|
|
555
|
+
|
|
556
|
+
|
|
557
|
+
def guard() -> None:
|
|
558
|
+
"""Claude Code's `PreToolUse` hook on the editing tools — Edit, Write, MultiEdit, NotebookEdit: in a session the
|
|
559
|
+
runner started, refuse an edit to a gate or a control before it lands, with the reason on stderr and exit 2,
|
|
560
|
+
which is how that harness reads a refusal (a 2.1.281 print session, probed 2026-09-24: the tool result carries
|
|
561
|
+
the reason, the model reads it, the file is not written). Outside a runner's iteration the hook does nothing, so
|
|
562
|
+
a person's `/drive` session edits what it likes. The shell is not covered here — a command can write anything —
|
|
563
|
+
which is why the runner compares the controls after every iteration too."""
|
|
564
|
+
if not os.environ.get(RUNNER_VARIABLE):
|
|
565
|
+
return
|
|
566
|
+
event = read_event()
|
|
567
|
+
given = event.get("tool_input") if isinstance(event.get("tool_input"), dict) else {}
|
|
568
|
+
target = given.get("file_path") or given.get("notebook_path")
|
|
569
|
+
if not target:
|
|
570
|
+
return
|
|
571
|
+
path = Path(str(target))
|
|
572
|
+
if not path.is_absolute():
|
|
573
|
+
path = Path(str(event.get("cwd") or ROOT)) / path
|
|
574
|
+
path = path.resolve()
|
|
575
|
+
for control in control_paths():
|
|
576
|
+
if path == control or control in path.parents:
|
|
577
|
+
try:
|
|
578
|
+
shown = path.relative_to(ROOT).as_posix()
|
|
579
|
+
except ValueError:
|
|
580
|
+
shown = str(path)
|
|
581
|
+
print(GUARD_REASON.format(path=shown), file=sys.stderr)
|
|
582
|
+
raise SystemExit(2)
|
|
583
|
+
|
|
584
|
+
|
|
491
585
|
def stream_of(harness: dict[str, Any] | None) -> str | None:
|
|
492
586
|
"""Which event stream the harness's headless command emits, for the feed: `CRUISE_HARNESS_STREAM` where set
|
|
493
587
|
(a rehearsal against a fake harness), else the headless row's `stream`, else none — plain text, echoed."""
|
|
@@ -1135,6 +1229,7 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
|
|
|
1135
1229
|
INTERRUPTED = False
|
|
1136
1230
|
print(f"cruise: iteration {iteration} started {started}, running `{ask}`", flush=True)
|
|
1137
1231
|
began = time.monotonic()
|
|
1232
|
+
controls_before = controls_signature()
|
|
1138
1233
|
# The model flag is read with the settings, so `/cruise-settings model=…` holds from the next iteration.
|
|
1139
1234
|
last = iterate(template + model_flags(harness, table["model"]), ask, environment, iteration, stream)
|
|
1140
1235
|
if INTERRUPTED:
|
|
@@ -1151,6 +1246,9 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
|
|
|
1151
1246
|
"last_line": last or "no last line", "fingerprint": seen}
|
|
1152
1247
|
if attempt is not None:
|
|
1153
1248
|
entry["attempt"] = attempt
|
|
1249
|
+
changed = controls_changed(controls_before, controls_signature())
|
|
1250
|
+
if changed:
|
|
1251
|
+
entry["controls_changed"] = changed
|
|
1154
1252
|
given = delivered()
|
|
1155
1253
|
if given:
|
|
1156
1254
|
entry["told"] = [str(each["text"]) for each in given]
|
|
@@ -1164,6 +1262,13 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
|
|
|
1164
1262
|
# The boundary `watch` returns on: the iteration, what it ended on, and how long it took.
|
|
1165
1263
|
print(f"cruise: iteration {iteration} ended — {last or 'no last line'} ({duration(time.monotonic() - began)})",
|
|
1166
1264
|
flush=True)
|
|
1265
|
+
if changed:
|
|
1266
|
+
# A gate made to pass is no pass, whatever the last line says: the run parks on the change itself, and a
|
|
1267
|
+
# person reverts it, or keeps it on purpose and resumes with a message.
|
|
1268
|
+
park(f"iteration {iteration} changed a gate or a control of the run — {', '.join(changed)} — and a gate "
|
|
1269
|
+
"is satisfied in the tree it measures, never edited; revert the change, or keep it on purpose and "
|
|
1270
|
+
"resume with a message", no_park, poll, seen)
|
|
1271
|
+
continue
|
|
1167
1272
|
if INTERRUPTED:
|
|
1168
1273
|
# Ended for a message, not by its own last line: the next iteration is where the message goes, and it
|
|
1169
1274
|
# starts now — there is nothing to park on and nothing to count.
|
|
@@ -1376,6 +1481,18 @@ def stop(arguments: list[str]) -> None:
|
|
|
1376
1481
|
return
|
|
1377
1482
|
if "--now" in arguments:
|
|
1378
1483
|
os.kill(running[0], signal.SIGTERM)
|
|
1484
|
+
# Said once it has ended, not once it was told to. The runner ends the iteration's session before it goes,
|
|
1485
|
+
# and a `start` typed the moment this returned found the old runner still alive and declined to start one
|
|
1486
|
+
# — after which nobody was running, and the watch seat found nobody to watch.
|
|
1487
|
+
for _ in range(int(STOP_WAIT_SECONDS / 0.05)):
|
|
1488
|
+
if running_pid() is None:
|
|
1489
|
+
break
|
|
1490
|
+
time.sleep(0.05)
|
|
1491
|
+
else:
|
|
1492
|
+
print(f"cruise: {relative(STOP)} written and the runner (pid {running[0]}) told to end; it is still ending "
|
|
1493
|
+
f"the iteration in flight after {STOP_WAIT_SECONDS:g}s — `python3 scripts/agents/cruise.py status` "
|
|
1494
|
+
"says when it has gone")
|
|
1495
|
+
return
|
|
1379
1496
|
print(f"cruise: {relative(STOP)} written and the runner (pid {running[0]}) terminated with the iteration "
|
|
1380
1497
|
"in flight; its increment commits are on the slice branch, and the next run re-derives from disk")
|
|
1381
1498
|
return
|
|
@@ -1533,7 +1650,7 @@ def main() -> None:
|
|
|
1533
1650
|
"watch": lambda: watch(arguments[1:]), "stop": lambda: stop(arguments[1:]), "status": status,
|
|
1534
1651
|
"tell": lambda: tell(arguments[1:]), "told": told,
|
|
1535
1652
|
"denials": denials, "resume": resume, "compacting": compacting, "loop": loop, "stopping": stopping,
|
|
1536
|
-
"responded": responded}
|
|
1653
|
+
"responded": responded, "guard": guard}
|
|
1537
1654
|
if arguments and arguments[0] in verbs:
|
|
1538
1655
|
verbs[arguments[0]]()
|
|
1539
1656
|
return
|
|
@@ -216,7 +216,7 @@
|
|
|
216
216
|
},
|
|
217
217
|
"hooks": {
|
|
218
218
|
"holds": true,
|
|
219
|
-
"how": "`Stop` runs when the model tries to end its turn; a hook printing {\"decision\": \"block\", \"reason\": \"...\"} refuses the end and the reason is read next; the event carries `last_assistant_message` and `transcript_path`. Hooks run in `-p` sessions. Source: the installed Claude Code 2.1.278's hook events and the Stop hook decision it acted on during /cruise runs, read 2026-09-22.",
|
|
219
|
+
"how": "`Stop` runs when the model tries to end its turn; a hook printing {\"decision\": \"block\", \"reason\": \"...\"} refuses the end and the reason is read next; the event carries `last_assistant_message` and `transcript_path`. Hooks run in `-p` sessions. Source: the installed Claude Code 2.1.278's hook events and the Stop hook decision it acted on during /cruise runs, read 2026-09-22. `PreToolUse` runs before a tool call, with `tool_name` and `tool_input` (`file_path` for Edit, Write and MultiEdit, `notebook_path` for NotebookEdit) in the event; a hook command that exits 2 refuses the call, its stderr is the tool's result the model reads, and the refusal is listed under `permission_denials` in the final `result` event — from a 2.1.281 print session under `acceptEdits --allowedTools Bash` in an untrusted workspace, where the project's `.claude/settings.json` hook still ran with the runner's environment variables inherited, probed 2026-09-24; `scripts/agents/cruise.py guard` runs there.",
|
|
220
220
|
"projection": null,
|
|
221
221
|
"why": "the factory writes `.claude/settings.json` itself, hooks included (Stop, PreCompact, SessionStart); Grok Build reads that file too"
|
|
222
222
|
},
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""Run the adopted UX gates over every browser app, and fail when one of them does.
|
|
3
|
+
|
|
4
|
+
The gates are plugin87's ux-ui-agent-skills kit, installed under `tools/ux-gates/` by `./init --extension
|
|
5
|
+
ux-gates`. Two kinds run here. The file gate always: `lint_hardcodes.py` over each browser app's `src/`,
|
|
6
|
+
which fails on a literal colour, pixel size or duration that is not a token — the rule `docs/design.md`
|
|
7
|
+
states, measured. The render gates when they can: over every `*.html` under each browser app's `screens/`,
|
|
8
|
+
in a real headless browser, contrast in light and dark across default, hover and focus, visible focus,
|
|
9
|
+
target size, overflow at phone widths, and axe. Which browser is asked once, before any of them runs: the
|
|
10
|
+
kit launches Chrome (`channel: 'chrome'`), and in 2.8.0 two of its scripts — `verify_responsive.mjs` and
|
|
11
|
+
`verify_target_size.mjs` — crash where Chrome is not installed instead of falling back to Playwright's own
|
|
12
|
+
Chromium the way the other three do. So where Chrome is absent and that Chromium opens, every render gate
|
|
13
|
+
runs with a Node preload that retries a launch without the channel; where no browser opens, or Playwright
|
|
14
|
+
is not resolvable, the render gates are reported as skipped, never as passed, and a gate that still could
|
|
15
|
+
not open a browser is reported the same way rather than as a failure.
|
|
16
|
+
|
|
17
|
+
Three states are not failures, and each is said out loud. Not adopted: the extension is optional, and a
|
|
18
|
+
project that never asked for it has nothing to run. Adopted but not installed here: `tools/ux-gates/` is
|
|
19
|
+
ignored by Git, so a fresh clone or a CI runner has the election and not the kit — reported as skipped,
|
|
20
|
+
or as a failure when `UX_GATES_REQUIRE=1`, which is what to set wherever the kit is expected. No browser
|
|
21
|
+
app: nothing to measure.
|
|
22
|
+
|
|
23
|
+
Standard library only, like every gate script here; the kit's scripts are run as subprocesses.
|
|
24
|
+
"""
|
|
25
|
+
from __future__ import annotations
|
|
26
|
+
|
|
27
|
+
import json
|
|
28
|
+
import os
|
|
29
|
+
import shutil
|
|
30
|
+
import subprocess
|
|
31
|
+
import sys
|
|
32
|
+
import tempfile
|
|
33
|
+
from pathlib import Path
|
|
34
|
+
|
|
35
|
+
KEY = "ux-gates"
|
|
36
|
+
KIT = "tools/ux-gates"
|
|
37
|
+
# Directory-wide render gates, then per-file ones; each with the flags that make light and dark both count.
|
|
38
|
+
DIRECTORY_GATES = (
|
|
39
|
+
("verify_responsive.mjs", ()),
|
|
40
|
+
("verify_target_size.mjs", ()),
|
|
41
|
+
("measure_render.mjs", ()),
|
|
42
|
+
("measure_render.mjs", ("--dark",)),
|
|
43
|
+
)
|
|
44
|
+
FILE_GATES = (
|
|
45
|
+
("axe_audit.mjs", ()),
|
|
46
|
+
("axe_audit.mjs", ("--dark",)),
|
|
47
|
+
("verify_states.mjs", ()),
|
|
48
|
+
("verify_states.mjs", ("--dark",)),
|
|
49
|
+
)
|
|
50
|
+
# Which browser the kit's scripts can open, Playwright resolved from the kit's directory the way its scripts resolve
|
|
51
|
+
# it from `scripts/` beneath — the same `node_modules` chain — and answered in one word: `chrome` (the channel the kit asks for), `bundled` (Playwright's own Chromium, which
|
|
52
|
+
# `npx playwright install chromium` puts in place), `none`, or `no-playwright`.
|
|
53
|
+
PROBE = """
|
|
54
|
+
let chromium;
|
|
55
|
+
try { ({ chromium } = await import("playwright")); }
|
|
56
|
+
catch { console.log("no-playwright"); process.exit(0); }
|
|
57
|
+
if (!chromium) { console.log("no-playwright"); process.exit(0); }
|
|
58
|
+
for (const [word, options] of [["chrome", { channel: "chrome" }], ["bundled", {}]]) {
|
|
59
|
+
try { const browser = await chromium.launch(options); await browser.close(); console.log(word); process.exit(0); }
|
|
60
|
+
catch {}
|
|
61
|
+
}
|
|
62
|
+
console.log("none");
|
|
63
|
+
"""
|
|
64
|
+
# What every render gate is started with where only the bundled Chromium opens: the same Playwright the kit imports,
|
|
65
|
+
# its `chromium.launch` retried without the channel when the channel is what failed. A CommonJS preload runs before
|
|
66
|
+
# an ES module entry, and the kit's `import('playwright')` returns the same object this patched.
|
|
67
|
+
PRELOAD = """
|
|
68
|
+
const { createRequire } = require("node:module");
|
|
69
|
+
const playwright = createRequire({scripts})("playwright");
|
|
70
|
+
const launch = playwright.chromium.launch.bind(playwright.chromium);
|
|
71
|
+
playwright.chromium.launch = async (options = {}) => {
|
|
72
|
+
try { return await launch(options); }
|
|
73
|
+
catch (error) {
|
|
74
|
+
if (!options.channel) throw error;
|
|
75
|
+
const { channel, ...rest } = options;
|
|
76
|
+
return launch(rest);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
"""
|
|
80
|
+
# The words Playwright's launch failure carries, on stderr, when a kit script could not open a browser.
|
|
81
|
+
LAUNCH_FAILED = "browserType.launch"
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
def project_root(script: Path, depth: int) -> Path:
|
|
85
|
+
"""The nearest parent holding `project.json`, with a source-tree fallback."""
|
|
86
|
+
for candidate in script.parents:
|
|
87
|
+
if (candidate / "project.json").is_file():
|
|
88
|
+
return candidate
|
|
89
|
+
return script.parents[depth]
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
ROOT = project_root(Path(__file__).resolve(), 1)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
def adopted() -> bool:
|
|
96
|
+
"""Elected in the committed record, or marked in `AGENTS.md` by a project older than the record."""
|
|
97
|
+
record = ROOT / ".slipwai/extensions.json"
|
|
98
|
+
if record.is_file():
|
|
99
|
+
try:
|
|
100
|
+
document = json.loads(record.read_text())
|
|
101
|
+
except ValueError:
|
|
102
|
+
document = {}
|
|
103
|
+
if KEY in (document.get("extensions") or []):
|
|
104
|
+
return True
|
|
105
|
+
agents = ROOT / "AGENTS.md"
|
|
106
|
+
return agents.is_file() and f"<!-- extension:{KEY}:begin -->" in agents.read_text()
|
|
107
|
+
|
|
108
|
+
|
|
109
|
+
def browser_apps() -> list[Path]:
|
|
110
|
+
manifest = ROOT / "project.json"
|
|
111
|
+
if not manifest.is_file():
|
|
112
|
+
return []
|
|
113
|
+
deployables = json.loads(manifest.read_text()).get("deployables")
|
|
114
|
+
if not isinstance(deployables, dict):
|
|
115
|
+
return []
|
|
116
|
+
return [
|
|
117
|
+
ROOT / str(deployable["path"])
|
|
118
|
+
for deployable in deployables.values()
|
|
119
|
+
if isinstance(deployable, dict)
|
|
120
|
+
and "frontend" in deployable.get("capabilities", [])
|
|
121
|
+
and (ROOT / str(deployable.get("path", ""))).is_dir()
|
|
122
|
+
]
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
def say(line: str) -> None:
|
|
126
|
+
"""Flushed, so this script's lines land in order with the kit's, which write straight to the terminal."""
|
|
127
|
+
print(line, flush=True)
|
|
128
|
+
|
|
129
|
+
|
|
130
|
+
def browser() -> str:
|
|
131
|
+
"""Which browser the render gates can open, asked once: `chrome`, `bundled`, `none` or `no-playwright`. A probe
|
|
132
|
+
that could not answer — node failing before the question — is `none`, with what it said on stderr."""
|
|
133
|
+
completed = subprocess.run(["node", "--input-type=module", "-e", PROBE], cwd=ROOT / KIT, check=False,
|
|
134
|
+
text=True, capture_output=True)
|
|
135
|
+
word = completed.stdout.strip().splitlines()[-1] if completed.stdout.strip() else ""
|
|
136
|
+
if completed.returncode == 0 and word in ("chrome", "bundled", "none", "no-playwright"):
|
|
137
|
+
return word
|
|
138
|
+
sys.stderr.write(completed.stderr)
|
|
139
|
+
return "none"
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
def run(script: str, *arguments: str, preload: Path | None = None) -> str:
|
|
143
|
+
"""One kit script, from the kit's own directory so its relative imports resolve, started with the preload where
|
|
144
|
+
one is given. Its output is passed through, and the verdict is one of three words: `passed`, `failed`, or
|
|
145
|
+
`skipped` — the kit's own word when a gate could not open a browser, which exits 0 upstream and is refused as
|
|
146
|
+
a pass here, or a launch failure on stderr, which is the same fact told as a crash."""
|
|
147
|
+
kit = ROOT / KIT
|
|
148
|
+
interpreter = [sys.executable] if script.endswith(".py") else ["node"]
|
|
149
|
+
if preload is not None and script.endswith(".mjs"):
|
|
150
|
+
interpreter += ["--require", str(preload)]
|
|
151
|
+
environment = dict(os.environ)
|
|
152
|
+
if environment.get("UX_GATES_REQUIRE") == "1":
|
|
153
|
+
environment["DS_REQUIRE_BROWSER"] = "1" # the kit's own switch for the same demand
|
|
154
|
+
completed = subprocess.run(
|
|
155
|
+
[*interpreter, str(kit / "scripts" / script), *arguments],
|
|
156
|
+
cwd=kit, env=environment, check=False, text=True, capture_output=True,
|
|
157
|
+
)
|
|
158
|
+
sys.stdout.write(completed.stdout)
|
|
159
|
+
sys.stderr.write(completed.stderr)
|
|
160
|
+
sys.stdout.flush()
|
|
161
|
+
if completed.returncode != 0 and LAUNCH_FAILED in completed.stderr:
|
|
162
|
+
say(f"check-ux-gates: {script} could not open a browser — SKIPPED, not passed")
|
|
163
|
+
return "skipped"
|
|
164
|
+
if completed.returncode != 0:
|
|
165
|
+
return "failed"
|
|
166
|
+
return "skipped" if "SKIPPED" in completed.stdout else "passed"
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
def render_gates(app: Path, screens: list[Path], opened: str, preload: Path | None) -> tuple[list[str], int]:
|
|
170
|
+
"""Every render gate over one app's previews, or all of them counted as skipped where no browser opens."""
|
|
171
|
+
relative = app.relative_to(ROOT).as_posix()
|
|
172
|
+
gates = [(script, flags, str(app / "screens")) for script, flags in DIRECTORY_GATES]
|
|
173
|
+
gates += [(script, flags, str(screen)) for screen in screens for script, flags in FILE_GATES]
|
|
174
|
+
if opened in ("none", "no-playwright"):
|
|
175
|
+
why = ("playwright is not resolvable from the kit" if opened == "no-playwright"
|
|
176
|
+
else "no browser opens — neither Chrome nor Playwright's Chromium (`npx playwright install chromium`)")
|
|
177
|
+
say(f"check-ux-gates: {relative}/screens/ — {why}; {len(gates)} render gate(s) SKIPPED, not passed")
|
|
178
|
+
return [], len(gates)
|
|
179
|
+
say(f"check-ux-gates: {relative}/screens/ — {len(screens)} preview(s) through the render gates"
|
|
180
|
+
+ (" on Playwright's Chromium, Chrome not being installed" if opened == "bundled" else ""))
|
|
181
|
+
failures, skipped = [], 0
|
|
182
|
+
for script, flags, target in gates:
|
|
183
|
+
verdict = run(script, target, *flags, preload=preload)
|
|
184
|
+
if verdict == "failed":
|
|
185
|
+
failures.append(f"{Path(target).relative_to(ROOT).as_posix()}: {script} {' '.join(flags)}".rstrip())
|
|
186
|
+
elif verdict == "skipped":
|
|
187
|
+
skipped += 1
|
|
188
|
+
return failures, skipped
|
|
189
|
+
|
|
190
|
+
|
|
191
|
+
def main() -> int:
|
|
192
|
+
if not adopted():
|
|
193
|
+
say("check-ux-gates: not adopted (./init --extension ux-gates); nothing to check")
|
|
194
|
+
return 0
|
|
195
|
+
kit = ROOT / KIT
|
|
196
|
+
required = os.environ.get("UX_GATES_REQUIRE") == "1"
|
|
197
|
+
if not (kit / "scripts/lint_hardcodes.py").is_file():
|
|
198
|
+
say(
|
|
199
|
+
f"check-ux-gates: adopted, but {KIT}/ is not installed in this checkout — "
|
|
200
|
+
+ ("REQUIRED, FAILING" if required else "SKIPPED, not passed")
|
|
201
|
+
+ "; `./init --extension ux-gates` installs it"
|
|
202
|
+
)
|
|
203
|
+
return 1 if required else 0
|
|
204
|
+
apps = browser_apps()
|
|
205
|
+
if not apps:
|
|
206
|
+
say("check-ux-gates: no browser app to measure")
|
|
207
|
+
return 0
|
|
208
|
+
failures: list[str] = []
|
|
209
|
+
skipped = 0
|
|
210
|
+
opened: str | None = None # asked the first time a preview needs a browser, and once
|
|
211
|
+
with tempfile.TemporaryDirectory() as scratch:
|
|
212
|
+
preload = Path(scratch) / "preload.cjs"
|
|
213
|
+
preload.write_text(PRELOAD.replace("{scripts}", json.dumps(str(kit / "scripts/preload.cjs"))))
|
|
214
|
+
for app in apps:
|
|
215
|
+
relative = app.relative_to(ROOT).as_posix()
|
|
216
|
+
source = app / "src"
|
|
217
|
+
if source.is_dir():
|
|
218
|
+
say(f"check-ux-gates: {relative}/src — literal values outside the tokens")
|
|
219
|
+
if run("lint_hardcodes.py", str(source)) == "failed":
|
|
220
|
+
failures.append(f"{relative}/src carries literal values the tokens should own")
|
|
221
|
+
screens = sorted((app / "screens").glob("*.html")) if (app / "screens").is_dir() else []
|
|
222
|
+
if not screens:
|
|
223
|
+
say(f"check-ux-gates: {relative}/screens/ has no previews; the render gates have nothing to open")
|
|
224
|
+
continue
|
|
225
|
+
if shutil.which("node") is None:
|
|
226
|
+
say(f"check-ux-gates: {relative}/screens/ — node not found, render gates SKIPPED, not passed")
|
|
227
|
+
skipped += len(DIRECTORY_GATES) + len(FILE_GATES) * len(screens)
|
|
228
|
+
continue
|
|
229
|
+
opened = browser() if opened is None else opened
|
|
230
|
+
failed, unopened = render_gates(app, screens, opened, preload if opened == "bundled" else None)
|
|
231
|
+
failures += failed
|
|
232
|
+
skipped += unopened
|
|
233
|
+
if failures:
|
|
234
|
+
say("check-ux-gates: FAILED\n - " + "\n - ".join(failures))
|
|
235
|
+
return 1
|
|
236
|
+
if skipped:
|
|
237
|
+
say(f"check-ux-gates: passed where a gate could run; {skipped} render gate(s) SKIPPED, not passed — "
|
|
238
|
+
"each says above what it could not open")
|
|
239
|
+
return 1 if required else 0
|
|
240
|
+
say("check-ux-gates: every gate passed")
|
|
241
|
+
return 0
|
|
242
|
+
|
|
243
|
+
|
|
244
|
+
if __name__ == "__main__":
|
|
245
|
+
raise SystemExit(main())
|
{slipwai-1.2.1.dev5 → slipwai-1.2.1.dev8}/assets/toolkit/scripts/extensions/ux-gates/init.py
RENAMED
|
@@ -54,12 +54,15 @@ the gates in it that are objective: a screen either passes or it does not.
|
|
|
54
54
|
- **Always:** `{KIT_DIR}/scripts/lint_hardcodes.py` over each browser app's `src/`. A literal colour,
|
|
55
55
|
pixel size or duration outside `tokens.css` fails the build; it is the rule `docs/design.md` already
|
|
56
56
|
states, now measured. A justified exception carries a `ds-allow-hardcode` comment on its line.
|
|
57
|
-
- **Where a browser is present** (`node`,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
reported as skipped, never as passed
|
|
57
|
+
- **Where a browser is present** (`node`, `playwright` resolvable from the project root, and Chrome or
|
|
58
|
+
Playwright's own Chromium — `npx playwright install chromium`): the render gates over every `*.html`
|
|
59
|
+
under each browser app's `screens/` — contrast in light and dark across default, hover and focus states,
|
|
60
|
+
visible focus, target size, no overflow at 280/320/414px, and axe. A screen preview under `screens/` is
|
|
61
|
+
what puts a screen under those gates; the live routes are not rendered, because the gates read files and
|
|
62
|
+
the app needs its API. With no browser the render gates are reported as skipped, never as passed, and the
|
|
63
|
+
gate says which browser it ran on. A gate that fails or crashes is never made to pass by editing
|
|
64
|
+
`scripts/check-ux-gates.py` or anything under `{KIT_DIR}/`: fix the screen, install the browser, or
|
|
65
|
+
report the gate's own words.
|
|
63
66
|
|
|
64
67
|
**Run `make check-ux-gates` before the demo stop of any slice with a screen**, and fix what it finds
|
|
65
68
|
rather than carrying it as a note. For the judgement the gates cannot make, the kit's checklists are files:
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**A `/cruise` run can no longer make a gate pass by changing the gate.** A run met `check-ux-gates` failing
|
|
4
|
+
because two of the kit's scripts crash where Chrome is not installed, and the bosun patched
|
|
5
|
+
`scripts/check-ux-gates.py` to report that as skipped, committed it, and went on. Its brief now forbids
|
|
6
|
+
touching anything under `scripts/`, the `Makefile`, anything under `tools/`, CI or a harness's hook settings,
|
|
7
|
+
and says what a gate the tree cannot satisfy becomes: a park with the gate's own words as the reason. The rule
|
|
8
|
+
is held in two places rather than said louder. `.claude/settings.json` runs `scripts/agents/cruise.py guard`
|
|
9
|
+
as Claude Code's `PreToolUse` hook on every editing tool, and in a session the runner started it refuses an
|
|
10
|
+
edit to any of those paths before it lands. And the runner takes the content of every gate and control before
|
|
11
|
+
each iteration and compares it after, on every harness: a file modified, deleted or added — a file installed
|
|
12
|
+
under `tools/` excepted — parks the run at once, names the files on the log entry as `controls_changed`, and
|
|
13
|
+
counts the iteration's last line for nothing. A person's own session meets neither.
|
|
14
|
+
|
|
15
|
+
**`check-ux-gates` runs on Playwright's own Chromium where Chrome is not installed, and never reports a
|
|
16
|
+
crash as a pass or a failure.** The gate now asks once which browser Playwright can open — Chrome, its bundled
|
|
17
|
+
Chromium, or neither — and where only the bundled one opens, starts every render gate with a Node preload that
|
|
18
|
+
retries the kit's `channel: 'chrome'` launch without the channel, so `verify_responsive.mjs` and
|
|
19
|
+
`verify_target_size.mjs` run there like the kit's other three. Where no browser opens, or Playwright is not
|
|
20
|
+
resolvable, the render gates are counted skipped without running one, and a gate that still fails on its launch
|
|
21
|
+
is reported skipped rather than as a finding; `UX_GATES_REQUIRE=1` still makes every skip a failure.
|
|
22
|
+
|
|
23
|
+
**`stop --now` returns once the runner has gone, not once it was told to go.** The runner ends the iteration's
|
|
24
|
+
session before it exits, which takes a moment, and a `start` typed the moment `stop --now` returned found the old
|
|
25
|
+
runner still alive and declined to start one — after which nobody was running and the watch seat found nobody to
|
|
26
|
+
watch. It now waits for the runner to be gone, up to thirty seconds, and says so if it is still ending after that.
|
|
27
|
+
|
|
28
|
+
**Catch-up.** `slipwai migrate` brings the hook, the runner, the gate and the command text. A run that already
|
|
29
|
+
carries a patched gate is found by `git log -- scripts/` and reverted by hand; the runner parks on the next
|
|
30
|
+
change, not on the standing one.
|
|
@@ -33,6 +33,11 @@ def compaction_hooks(layout: Layout) -> dict[str, list[dict[str, object]]]:
|
|
|
33
33
|
"PreCompact": [{"hooks": [{"type": "command", "command": f"python3 {script} compacting"}]}],
|
|
34
34
|
"SessionStart": [{"matcher": "compact", "hooks": [{"type": "command", "command": f"python3 {script} resume"}]}],
|
|
35
35
|
"Stop": [{"hooks": [{"type": "command", "command": f"python3 {script} stopping"}]}],
|
|
36
|
+
# The editing tools, in a session the runner started: an edit to a gate or a control of the run —
|
|
37
|
+
# `scripts/`, the Makefile, `tools/`, CI, this file — is refused before it lands; the runner compares the
|
|
38
|
+
# controls after every iteration for what the shell wrote (`docs/cruise.md`, *When it is blocked*).
|
|
39
|
+
"PreToolUse": [{"matcher": "Edit|Write|MultiEdit|NotebookEdit",
|
|
40
|
+
"hooks": [{"type": "command", "command": f"python3 {script} guard"}]}],
|
|
36
41
|
}
|
|
37
42
|
|
|
38
43
|
|
|
@@ -134,7 +134,7 @@ preference, and stop at the first that works:
|
|
|
134
134
|
or `detected` — you work on the survey's value as a stated assumption and never mark it `confirmed` —
|
|
135
135
|
and a change strategy proceeds at `Proposed` on the recommendation.
|
|
136
136
|
3. **Repair the run.** Rebase and resolve, verify a dead delegate's leftovers against the tree and finish or
|
|
137
|
-
revert them, find why a gate loops and fix the cause.
|
|
137
|
+
revert them, find why a gate loops and fix the cause in the tree the gate measures.
|
|
138
138
|
|
|
139
139
|
Every move is an entry in `{DECISIONS}` with `Decided by: {BOSUN}`, its *Would reverse if* naming what a
|
|
140
140
|
person must eventually supply, and a task in the next slice to remove the stub when they do. Commit on the
|
|
@@ -145,7 +145,15 @@ destroy data or history (drop a database or volume, rewrite or delete a shared b
|
|
|
145
145
|
can recover); release what a person has not asked for (turn a flag on, deploy or promote to production,
|
|
146
146
|
merge anything that reaches a real actor); spend or expose (pay for anything, create or reveal a secret,
|
|
147
147
|
widen permissions); weaken security (bypass authentication, loosen a MUST about money, identity or a
|
|
148
|
-
boundary in production code);
|
|
149
|
-
|
|
150
|
-
|
|
148
|
+
boundary in production code); discard a person's commits to make a rebase go through; or make a gate pass by
|
|
149
|
+
changing the gate. **A gate is satisfied in the tree it measures, never by editing what measures it**: nothing
|
|
150
|
+
under `scripts/` — the `check-*` gates, this runner — the `Makefile`, anything under `tools/`, CI, or a
|
|
151
|
+
harness's hook settings is yours to touch, whatever it reports. A gate that fails because of the slice's own
|
|
152
|
+
tree is a task in that tree. A gate that fails for a reason the tree cannot fix — a browser this machine has
|
|
153
|
+
not got, a tool that is not installed, a script of the kit's that crashes — is `cannot: <the gate's name and
|
|
154
|
+
its own last lines>`, and the run parks on those words; `{layout.make} verify` reporting a gate as skipped is not a
|
|
155
|
+
failure and needs nothing from you. Claude Code refuses the edit before it lands (`PreToolUse`), and the
|
|
156
|
+
runner parks the run at the end of any iteration that changed one of those files, whatever the last line
|
|
157
|
+
said. Return `unblocked: <what you did, and the entry's number>`, `catastrophic: <why>`, or `cannot: <what
|
|
158
|
+
you tried>`, and the session that delegated you decides whether the run continues or parks.""",
|
|
151
159
|
}
|
|
@@ -20,6 +20,9 @@ CATASTROPHIC = (
|
|
|
20
20
|
"weakening security — bypassing authentication, loosening a MUST about money, identity or a boundary in "
|
|
21
21
|
"production code",
|
|
22
22
|
"discarding a person's commits to make a checkout consistent",
|
|
23
|
+
"making a gate pass by changing the gate — anything under `scripts/`, the `Makefile`, anything under `tools/`, CI, "
|
|
24
|
+
"a harness's hook settings: a gate is satisfied in the tree it measures, or the run parks with the gate's own "
|
|
25
|
+
"output as the reason",
|
|
23
26
|
"a run the bosun could not move — the blocker survived its attempt, or the attempt itself would need one of the above",
|
|
24
27
|
)
|
|
25
28
|
|
|
@@ -52,4 +55,14 @@ and parks at once.
|
|
|
52
55
|
|
|
53
56
|
A park is therefore rare, and it says which of those it met, or what the bosun tried. `python3 {script}
|
|
54
57
|
status` shows a parked run's reason beside its checkpoint.
|
|
58
|
+
|
|
59
|
+
**A failing gate is never repaired in the gate.** `make verify` red on the slice's own tree is the slice's
|
|
60
|
+
work. Red for a reason the tree cannot fix — a browser this machine has not got, a tool not installed, a
|
|
61
|
+
script of a kit's that crashes — is a park: `cruise: parked: <gate>: <its own last lines>`, so a person
|
|
62
|
+
reads what the gate said and not what an iteration made of it. A gate reported as skipped is neither. This is
|
|
63
|
+
not left to the text: on Claude Code, `python3 {script} guard` runs as the `PreToolUse` hook of every editing
|
|
64
|
+
tool and refuses, in a runner's session, an edit under `scripts/`, `tools/`, the `Makefile`, CI or the hook
|
|
65
|
+
settings before it lands; and the runner compares those files before and after every iteration, on every
|
|
66
|
+
harness, and parks the run on any change — `controls_changed` on the log entry names the files — whatever
|
|
67
|
+
the iteration's last line said. A file installed under `tools/` by `./init --extension` is not a change.
|
|
55
68
|
"""
|
slipwai-1.2.1.dev5/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
1.2.1.dev5
|