slipwai 1.2.1.dev5__tar.gz → 1.2.1.dev11__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.dev11}/PKG-INFO +9 -3
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/README.md +8 -2
- slipwai-1.2.1.dev11/VERSION +1 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/cruise.py +173 -1
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/registry.json +1 -1
- slipwai-1.2.1.dev11/assets/toolkit/scripts/check-ux-gates.py +245 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/ux-gates/init.py +9 -6
- slipwai-1.2.1.dev11/changelog.d/gates-are-not-the-runs-to-change.md +42 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/agent_settings.py +5 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/commands.py +4 -2
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise.py +4 -23
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_agents.py +12 -4
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_record.py +3 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_seat.py +60 -3
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_told.py +6 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_unblock.py +13 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/whats_next.py +3 -1
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/where_are_we.py +3 -1
- 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.dev11}/.gitignore +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/CHANGELOG.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/docs/change-strategy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/scripts/check-convergence.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/scripts/ratchet.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/support.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/wrappers/gradle/gradlew +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/docker-compose.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/env.example +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/config.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/config_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_contract.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_memory.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_memory_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_postgres.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_sqlite.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/events.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/http_app.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/http_app_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/http_openapi_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/http_security.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/http_security_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/migrate_main.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/migrate_main_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/migrations_embed.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/migrations_keep +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/oidc_keycloak.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/openapi.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/projections.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/projections_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/projections_ticker.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/projections_ticker_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/read_models.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/serve_main.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/tracing.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/tracing_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/actor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/append_result.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/causation_id.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/committed_event.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/condition.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/conditional_append_result.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/correlation_id.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/database_url.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/domain_event.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store_exception.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store_memory.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store_memory_database.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store_postgres.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_store_sqlite.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/event_visitor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/http_schema_failure.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/migrate_main.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/oidc_keycloak.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/projection.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/read_models.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tag_query.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tagged_read.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tags_of.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/database_url_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/event_store_contract.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/projections_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/config_source_registration +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/spring_transactions.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/java-spring/users_security.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/keycloak/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/keycloak/realms/app.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/keycloak/realms/customers.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/prune.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/event_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/event_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/event_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/http_app.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/logging_setup.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/main.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/migrations_apply.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/openapi-flags.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/openapi.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/openapi_export.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/projections.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/projections_lifespan.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/read_models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/conftest.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/event_store_contract.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_http_app.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_projections.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_tracing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/tracing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/sql/001_events.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/sql/002_events_append_only.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/sql/004_event_tags.sql +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/event-store-memory.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/events.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/http-app.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/main.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/migrations/001_events.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/openapi-export.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/openapi-flags.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/openapi.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/projections-plugin.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/projections.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/read-models.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/tracing.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/api-client/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/index.html +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/src/App.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/src/main.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/tsconfig.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app/vite.config.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/app/.gremlins.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/app/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/app/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/app/health/health.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/app/health/health_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/flags/flags/flags.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/flags/flags/flags_test.go +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/base/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/base/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/postgres/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/postgres/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/sqlite/go.mod +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/modules/sqlite/go.sum +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/scripts/go-coverage.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/go/scripts/go-mutation.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/.gitattributes +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/config/checkstyle.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/mvnw +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/build/mvnw.cmd +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java-quarkus/app/pom.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/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.dev11}/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.dev11}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/java-spring/app/pom.xml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/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.dev11}/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.dev11}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/python/app/pyproject.toml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/app/tests/test_health.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/event-port/tests/test_events.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/flags/tests/test_flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/locks/uv-fastapi.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/locks/uv-postgres.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/python/locks/uv.lock +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/app/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/app/src/application/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/app/src/domain/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/app/src/health.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/app/tests/health.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/biome/biome.jsonc +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/biome/domain-purity.grit +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/flags/src/flags.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/languages/typescript/locks/package-lock.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/commands/example-map.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/.specify/presets/.registry +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/docs/speckit-preset.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/bootstrap/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/bootstrap/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/bootstrap/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/scripts/bootstrap.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/scripts/check-flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/scripts/deploy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/cognito_customers.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/cognito_staff.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/flags.auto.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/flags.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/ingress.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/network.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/no-auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/no-frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/production.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/rds.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/staging.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/aws/service/versions.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/bootstrap/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/bootstrap/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/bootstrap/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/scripts/bootstrap.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/scripts/check-flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/scripts/deploy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/entra_staff.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/flags.auto.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/flags.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/ingress.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/main.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/no-auth0.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/no-frontend.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/outputs.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/postgres.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/production.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/staging.tfvars +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/variables.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/targets/azure/service/versions.tf +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/.specify/extensions.yml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/agent-harnesses.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/event-model/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/event-model/model.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/docs/first-slice.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/drive.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/agents/project.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-codegraph.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-constitution.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-decisions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-imports.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-migrations.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-slice-scope.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-speckit.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/check-styles.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/check.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/check.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/model.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/package.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/page.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/palette.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/readme.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/render.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/validate.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/guidance.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/menu.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/project.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/scripts/test_benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/REFERENCES.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/debugging/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/diagrams/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/double-check/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/expectations/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/find-skills/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/functional/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/observability/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/observability/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/planning/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/specification/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/specification/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/tdd/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/testing/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/wtf/LICENSE +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/wtf/SKILL.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/catalog.json +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/changelog.d/README.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/changelog.d/slice-scope-record-and-canvas.md +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/pyproject.toml +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/__main__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/add_service.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/adopt.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/adopt_report.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/assets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/axes.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/backends.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/capabilities.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/catalog.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/catch_up.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/changelog.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/cli.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/cli_add.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/cli_adopt.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/cli_prompts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/converge.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/convergence.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/delivery_facts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/ecosystems.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/errors.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/examples.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/extensions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/features.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/images.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/layout.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/manifest.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/migrate.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/naming.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/origin.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/platform.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/preflight.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/probes.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/programme.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/add_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/adopted.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/adopted_ci.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/adopted_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/adversary.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/agent_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/agents.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/aws_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/azure_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/backing_service_prose.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/backing_services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/benchmark.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/biome.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/ci_services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/ci_workflows.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/compose.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/composition.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/constitution_journey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/converge_stage.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/convergence_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_hand.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/cruise_stops.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/decisions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/demo_stop.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/deploy_workflow.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/design_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/docs_index.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/drive_adoption.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/drive_settings.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/entry_stores.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/event_model.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/evolving.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/existing.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/flag_route.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/flags.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/frontend.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/gitignore.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/ground_command.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/guidance.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/infra.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/init_production.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/init_script.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/integration.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/__init__.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/go.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/java.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/java_quarkus.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/java_spring.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/python.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/languages/typescript.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/makefile.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/metadata.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/model_targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/model_to_code.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/mutation.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/native_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/openapi.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/parallel_slices.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/pin_commands.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/pins.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/production.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/provisioning.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/read_side_layouts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/readme.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/renovate.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/repository.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/rules.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/run_skill.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/service_layouts.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/shared_packages.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/skills_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/stage_models.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/strangle_command.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/structure_page.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/project/target_docs.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/quick_wins.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/replay.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/resurvey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/scaffold.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/selection.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/services.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/strategy.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/structure.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/survey.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/targets.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/tooling.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/toolkit.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/upgrade.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/src/slipwai/versions.py +0 -0
- {slipwai-1.2.1.dev5 → slipwai-1.2.1.dev11}/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.dev11
|
|
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
|
|
@@ -256,6 +260,7 @@ changes. What changes is who answers.
|
|
|
256
260
|
/cruise-settings enabled=true # switch it on; commits .specify/cruise.json
|
|
257
261
|
/cruise use the PRD in docs/prd.md # start the runner, detached, and watch it from this session
|
|
258
262
|
/cruise-status # is it running, how the last iteration ended, the feed's tail
|
|
263
|
+
/cruise-watch # sit back down at the watch seat, where the feed left off
|
|
259
264
|
/cruise-tell take the payments feature next # queued for the next iteration; --now ends the one in flight
|
|
260
265
|
/cruise-stop # end the run after the iteration in flight; `now` ends it now
|
|
261
266
|
```
|
|
@@ -313,8 +318,8 @@ the paths and toolchains named in them are real.
|
|
|
313
318
|
|---|---|
|
|
314
319
|
| `/drive` | Takes one slice from wherever it stands to a demo the actor can see |
|
|
315
320
|
| `/cruise` | Runs `/drive` on its own, deciding as the product owner and demoing as the actor, until the specification is satisfied. Stops only for a person. `/cruise <kick-off>` gives the first iteration a brief; the session then watches the run and answers you |
|
|
316
|
-
| `/whats-next` | Says what is next — one slice, one stage, one command. Reads the disk and changes nothing |
|
|
317
|
-
| `/where-are-we` | Shows the progress board: what works, what is in progress, what is still to come |
|
|
321
|
+
| `/whats-next` | Says what is next — one slice, one stage, one command. Reads the disk and changes nothing; beside a running `/cruise`, says what the runner is on instead |
|
|
322
|
+
| `/where-are-we` | Shows the progress board: what works, what is in progress, what is still to come; beside a running `/cruise`, the next row is the runner's |
|
|
318
323
|
| `/gaps` | Reviews an artifact for holes, before they become rewritten tests |
|
|
319
324
|
| `/example-map` | *Event profile.* Turns one slice of the event model into rules, examples and executable scenarios |
|
|
320
325
|
| `/validate-code-against-model` | *Event profile.* Checks that the code and the event model still agree |
|
|
@@ -331,6 +336,7 @@ the paths and toolchains named in them are real.
|
|
|
331
336
|
| `/cruise-status` | Says whether a `/cruise` runner is running, how its last iteration ended, and shows the tail of its feed |
|
|
332
337
|
| `/cruise-stop` | Ends a `/cruise` run after the iteration in flight, or at once with `now` |
|
|
333
338
|
| `/cruise-tell` | Queues a message for a running `/cruise`, which the next iteration carries; `--now` ends the iteration in flight for it |
|
|
339
|
+
| `/cruise-watch` | Takes the watch seat beside a running `/cruise`: prints the feed as it is written and watches again, starting nothing |
|
|
334
340
|
|
|
335
341
|
[The delivery loop](docs/delivery-loop.md) describes each one in full, and the ladder they sit on.
|
|
336
342
|
|
|
@@ -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
|
|
@@ -227,6 +231,7 @@ changes. What changes is who answers.
|
|
|
227
231
|
/cruise-settings enabled=true # switch it on; commits .specify/cruise.json
|
|
228
232
|
/cruise use the PRD in docs/prd.md # start the runner, detached, and watch it from this session
|
|
229
233
|
/cruise-status # is it running, how the last iteration ended, the feed's tail
|
|
234
|
+
/cruise-watch # sit back down at the watch seat, where the feed left off
|
|
230
235
|
/cruise-tell take the payments feature next # queued for the next iteration; --now ends the one in flight
|
|
231
236
|
/cruise-stop # end the run after the iteration in flight; `now` ends it now
|
|
232
237
|
```
|
|
@@ -284,8 +289,8 @@ the paths and toolchains named in them are real.
|
|
|
284
289
|
|---|---|
|
|
285
290
|
| `/drive` | Takes one slice from wherever it stands to a demo the actor can see |
|
|
286
291
|
| `/cruise` | Runs `/drive` on its own, deciding as the product owner and demoing as the actor, until the specification is satisfied. Stops only for a person. `/cruise <kick-off>` gives the first iteration a brief; the session then watches the run and answers you |
|
|
287
|
-
| `/whats-next` | Says what is next — one slice, one stage, one command. Reads the disk and changes nothing |
|
|
288
|
-
| `/where-are-we` | Shows the progress board: what works, what is in progress, what is still to come |
|
|
292
|
+
| `/whats-next` | Says what is next — one slice, one stage, one command. Reads the disk and changes nothing; beside a running `/cruise`, says what the runner is on instead |
|
|
293
|
+
| `/where-are-we` | Shows the progress board: what works, what is in progress, what is still to come; beside a running `/cruise`, the next row is the runner's |
|
|
289
294
|
| `/gaps` | Reviews an artifact for holes, before they become rewritten tests |
|
|
290
295
|
| `/example-map` | *Event profile.* Turns one slice of the event model into rules, examples and executable scenarios |
|
|
291
296
|
| `/validate-code-against-model` | *Event profile.* Checks that the code and the event model still agree |
|
|
@@ -302,6 +307,7 @@ the paths and toolchains named in them are real.
|
|
|
302
307
|
| `/cruise-status` | Says whether a `/cruise` runner is running, how its last iteration ended, and shows the tail of its feed |
|
|
303
308
|
| `/cruise-stop` | Ends a `/cruise` run after the iteration in flight, or at once with `now` |
|
|
304
309
|
| `/cruise-tell` | Queues a message for a running `/cruise`, which the next iteration carries; `--now` ends the iteration in flight for it |
|
|
310
|
+
| `/cruise-watch` | Takes the watch seat beside a running `/cruise`: prints the feed as it is written and watches again, starting nothing |
|
|
305
311
|
|
|
306
312
|
[The delivery loop](docs/delivery-loop.md) describes each one in full, and the ladder they sit on.
|
|
307
313
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.2.1.dev11
|
|
@@ -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
|
|
@@ -1524,8 +1641,63 @@ def status() -> None:
|
|
|
1524
1641
|
print(line)
|
|
1525
1642
|
|
|
1526
1643
|
|
|
1644
|
+
def checkpoint_fields() -> dict[str, str]:
|
|
1645
|
+
"""The checkpoint's labelled fields — Feature, Slice, Stage, Written, Delegates out, Open question, Next — as
|
|
1646
|
+
the command writes them (`CHECKPOINT_ENTRY`), or nothing where no checkpoint is written."""
|
|
1647
|
+
if not CHECKPOINT.is_file():
|
|
1648
|
+
return {}
|
|
1649
|
+
fields: dict[str, str] = {}
|
|
1650
|
+
label: str | None = None
|
|
1651
|
+
for line in CHECKPOINT.read_text().splitlines():
|
|
1652
|
+
found = re.findall(r"\*\*([A-Za-z ]+):\*\* (.*?)(?= · \*\*|$)", line)
|
|
1653
|
+
if found:
|
|
1654
|
+
for label, value in found:
|
|
1655
|
+
fields[label] = value.strip()
|
|
1656
|
+
elif label is not None and line.startswith(" ") and label in ("Delegates out", "Open question", "Next"):
|
|
1657
|
+
fields[label] = f"{fields[label]} {line.strip()}"
|
|
1658
|
+
return fields
|
|
1659
|
+
|
|
1660
|
+
|
|
1661
|
+
def where() -> None:
|
|
1662
|
+
"""Where a run stands, for `/where-are-we` and `/whats-next` typed beside it — and nothing at all where no runner
|
|
1663
|
+
is running, so that both commands answer exactly as they do without `/cruise`. With a runner alive: the run,
|
|
1664
|
+
the iteration in flight or the park it waits in, the checkpoint's slice, stage and next step, and what a
|
|
1665
|
+
person can do from here, which is never to run a stage themselves."""
|
|
1666
|
+
running = running_pid()
|
|
1667
|
+
if running is None:
|
|
1668
|
+
return
|
|
1669
|
+
log = entries()
|
|
1670
|
+
tail = RUN_LOG.read_text(errors="replace").rstrip().splitlines()[-2:] if RUN_LOG.is_file() else []
|
|
1671
|
+
parked = next((line.removeprefix("cruise: parked — ") for line in tail if line.startswith("cruise: parked — ")),
|
|
1672
|
+
None) if tail and tail[-1].startswith("cruise: waiting;") else None
|
|
1673
|
+
print(f"cruise: a run is going here — runner pid {running[0]} since {running[1]}, {len(log)} iteration(s) logged, "
|
|
1674
|
+
+ (f"parked after iteration {len(log)}" if parked else f"iteration {len(log) + 1} in flight"))
|
|
1675
|
+
fields = checkpoint_fields()
|
|
1676
|
+
if fields:
|
|
1677
|
+
print(f"cruise: feature {fields.get('Feature', '?')} · slice {fields.get('Slice', '?')} · stage "
|
|
1678
|
+
f"{fields.get('Stage', '?')} · checkpoint written {fields.get('Written', '?')}")
|
|
1679
|
+
for label in ("Open question", "Delegates out"):
|
|
1680
|
+
if fields.get(label) and fields[label].lower() != "none":
|
|
1681
|
+
print(f"cruise: {label.lower()} — {fields[label]}")
|
|
1682
|
+
print(f"cruise: next — {fields.get('Next', '(the checkpoint names no next step)')}")
|
|
1683
|
+
else:
|
|
1684
|
+
print("cruise: no checkpoint written yet — the iteration has not reached its first stage boundary")
|
|
1685
|
+
if parked:
|
|
1686
|
+
print(f"cruise: parked — {parked}")
|
|
1687
|
+
print("cruise: nothing to run from here — a person provides what the park names; `/cruise-tell` with it resumes "
|
|
1688
|
+
"the run, `/cruise-stop` ends it")
|
|
1689
|
+
else:
|
|
1690
|
+
print("cruise: nothing to run from here — the runner is on it; `/cruise` watches it, `/cruise-tell` steers it, "
|
|
1691
|
+
"`/cruise-stop` ends it")
|
|
1692
|
+
|
|
1693
|
+
|
|
1527
1694
|
def main() -> None:
|
|
1528
1695
|
arguments = sys.argv[1:]
|
|
1696
|
+
if arguments[:1] == ["where"]:
|
|
1697
|
+
# Before the settings check: a project with no `/cruise` settings has no run, and the commands that ask
|
|
1698
|
+
# this read silence as "answer as without /cruise".
|
|
1699
|
+
where()
|
|
1700
|
+
return
|
|
1529
1701
|
if not CONFIG.is_file():
|
|
1530
1702
|
print(ABSENT)
|
|
1531
1703
|
return
|
|
@@ -1533,7 +1705,7 @@ def main() -> None:
|
|
|
1533
1705
|
"watch": lambda: watch(arguments[1:]), "stop": lambda: stop(arguments[1:]), "status": status,
|
|
1534
1706
|
"tell": lambda: tell(arguments[1:]), "told": told,
|
|
1535
1707
|
"denials": denials, "resume": resume, "compacting": compacting, "loop": loop, "stopping": stopping,
|
|
1536
|
-
"responded": responded}
|
|
1708
|
+
"responded": responded, "guard": guard}
|
|
1537
1709
|
if arguments and arguments[0] in verbs:
|
|
1538
1710
|
verbs[arguments[0]]()
|
|
1539
1711
|
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.dev11}/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,42 @@
|
|
|
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
|
+
**`/where-are-we` and `/whats-next` answer beside a running `/cruise`.** Both used to answer as if the person's
|
|
29
|
+
session were about to take the next slice — "Run: /drive S13" while the runner was on S13. Each now runs
|
|
30
|
+
`scripts/agents/cruise.py where` first, a read that prints the runner's iteration, the checkpoint's slice, stage
|
|
31
|
+
and next step, and a park's reason, and puts those lines in the reply; the step for a person is then the runner's,
|
|
32
|
+
with `/cruise`, `/cruise-tell` and `/cruise-stop` as what they can do. Where no runner is running the verb prints
|
|
33
|
+
nothing and both commands answer exactly as before, so nothing changes outside a run.
|
|
34
|
+
|
|
35
|
+
**`/cruise-watch` takes the watch seat on its own.** `/cruise-status` reads once and stops, and a session that
|
|
36
|
+
typed it to answer a question had left the seat; the way back was `/cruise`, which reads as starting a run.
|
|
37
|
+
`/cruise-watch` sits back down where the feed left off and starts nothing, with the seat's rules — its words
|
|
38
|
+
and `commands/cruise.md`'s are one text — and `make cruise-watch` stays the same seat from a terminal.
|
|
39
|
+
|
|
40
|
+
**Catch-up.** `slipwai migrate` brings the hook, the runner, the gate and the command text. A run that already
|
|
41
|
+
carries a patched gate is found by `git log -- scripts/` and reverted by hand; the runner parks on the next
|
|
42
|
+
change, not on the standing one.
|