slipwai 1.3.0.dev15__tar.gz → 1.3.0.dev32__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.3.0.dev15 → slipwai-1.3.0.dev32}/PKG-INFO +2 -2
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/README.md +1 -1
- slipwai-1.3.0.dev32/VERSION +1 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/docs/change-strategy.md +5 -4
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/scripts/ratchet.py +44 -5
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/project.py +5 -1
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-codegraph.py +9 -0
- slipwai-1.3.0.dev32/changelog.d/a-refusal-comes-before-the-work.md +10 -0
- slipwai-1.3.0.dev32/changelog.d/a-wrapped-application-begins-as-a-candidate.md +37 -0
- slipwai-1.3.0.dev32/changelog.d/adopt-knows-which-agent.md +29 -0
- slipwai-1.3.0.dev32/changelog.d/adopt-next-and-intro-repair.md +25 -0
- slipwai-1.3.0.dev32/changelog.d/four-small-things-a-real-run-found.md +26 -0
- slipwai-1.3.0.dev32/changelog.d/ground-asks-how-much-to-explain.md +18 -0
- slipwai-1.3.0.dev32/changelog.d/ground-says-what-an-answer-does.md +18 -0
- slipwai-1.3.0.dev32/changelog.d/the-gate-is-green-after-ground.md +18 -0
- slipwai-1.3.0.dev32/changelog.d/the-ratchet-sees-findings-below-the-root.md +19 -0
- slipwai-1.3.0.dev32/changelog.d/the-record-catches-up-with-init.md +20 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/adopt.py +36 -2
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/adopt_report.py +72 -7
- slipwai-1.3.0.dev32/src/slipwai/cli_adopt.py +350 -0
- slipwai-1.3.0.dev32/src/slipwai/cli_confirm.py +61 -0
- slipwai-1.3.0.dev32/src/slipwai/cli_init.py +126 -0
- slipwai-1.3.0.dev32/src/slipwai/cli_interview.py +229 -0
- slipwai-1.3.0.dev32/src/slipwai/confirm.py +177 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/ecosystems.py +4 -1
- slipwai-1.3.0.dev32/src/slipwai/experimental.py +40 -0
- slipwai-1.3.0.dev32/src/slipwai/harness.py +155 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/manifest.py +9 -4
- slipwai-1.3.0.dev32/src/slipwai/next_steps.py +149 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/origin.py +27 -1
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/add_commands.py +12 -124
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted_targets.py +22 -0
- slipwai-1.3.0.dev32/src/slipwai/project/catch_up_command.py +128 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/commands.py +2 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/ground_command.py +93 -1
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/makefile.py +3 -4
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/resurvey.py +18 -4
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/strategy.py +18 -4
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/toolkit.py +19 -4
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/wrappers.py +33 -4
- slipwai-1.3.0.dev15/VERSION +0 -1
- slipwai-1.3.0.dev15/src/slipwai/cli_adopt.py +0 -338
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/.gitignore +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/CHANGELOG.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/NOTICE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/scripts/check-convergence.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/support.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradlew +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/docker-compose.yml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/env.example +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/config.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/config_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_contract.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_memory.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_postgres.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/events.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_app.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_app_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_openapi_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_security.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_security_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrate_main.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrate_main_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrations_embed.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrations_keep +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/openapi.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_ticker.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_ticker_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/read_models.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/serve_main.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/tracing.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/tracing_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/actor.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/append_result.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/causation_id.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/committed_event.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/condition.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/conditional_append_result.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/correlation_id.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/database_url.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/domain_event.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_exception.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_memory.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_memory_database.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_postgres.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_visitor.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/http_schema_failure.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/migrate_main.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/projection.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/projections.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/read_models.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tag_query.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tagged_read.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tags_of.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/database_url_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_contract.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/projections_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/transactions.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/config_source_registration +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/spring_transactions.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/users_security.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/realms/app.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/realms/customers.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/prune.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_memory.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/events.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/http_app.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/logging_setup.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/main.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/migrations_apply.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi_export.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/projections.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/read_models.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/settings.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/conftest.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/event_store_contract.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_http_app.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_projections.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_settings.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_tracing.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/tracing.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/sql/001_events.sql +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/sql/002_events_append_only.sql +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/sql/004_event_tags.sql +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/config.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-memory.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/events.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/http-app.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/main.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/001_events.js +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi-export.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/projections-plugin.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/projections.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/read-models.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tracing.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/api-client/package.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/index.html +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/package.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/App.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/main.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tsconfig.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/vite.config.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/app/.gremlins.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/app/application/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/app/domain/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/app/health/health.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/app/health/health_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/flags/flags/flags.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/flags/flags/flags_test.go +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/base/go.mod +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/base/go.sum +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/postgres/go.mod +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/postgres/go.sum +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/sqlite/go.mod +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/modules/sqlite/go.sum +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/scripts/go-coverage.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/go/scripts/go-mutation.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/.gitattributes +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/checkstyle.xml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/mvnw +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/build/mvnw.cmd +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/pom.xml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/pom.xml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/app/pyproject.toml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/app/tests/test_health.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/event-port/tests/test_events.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/flags/tests/test_flags.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-fastapi.lock +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-postgres.lock +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv.lock +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/package.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/application/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/domain/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/health.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/tests/health.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/biome/biome.jsonc +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/biome/domain-purity.grit +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/flags/src/flags.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/commands/example-map.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/check-deploy-role.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/cognito_customers.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/cognito_staff.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/flags.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/main.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/network.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/rds.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/variables.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/aws/service/versions.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/entra_staff.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/flags.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/main.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/postgres.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/variables.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/targets/azure/service/versions.tf +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/.specify/extensions.yml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/agent-harnesses.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-model/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-model/model.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/docs/first-slice.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/benchmark.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/code_index.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/cruise.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/drive.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/models.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/registry.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-constitution.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-decisions.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-imports.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-migrations.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-slice-scope.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-speckit.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-styles.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-ux-gates.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/codegraph +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/check.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/check.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/model.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/package.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/page.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/palette.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/readme.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/render.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/validate.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/guidance.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/menu.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/project.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/ux-gates/init.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/test_benchmark.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/REFERENCES.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/NOTICE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/expectations/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/planning/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/tdd/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/LICENSE +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/SKILL.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/catalog.json +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/README.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/code-index-held.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/deploy-role-scope.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/gates-a-migration-can-pass.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/setup-go-workspace-cache.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/changelog.d/ux-gates-at-scale.md +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/pyproject.toml +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/__init__.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/__main__.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/add_service.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/assets.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/axes.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/backends.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/capabilities.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/catalog.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/catch_up.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/changelog.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/cli.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/cli_add.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/cli_prompts.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/converge.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/convergence.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/delivery_facts.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/errors.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/examples.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/extensions.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/features.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/images.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/layout.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/migrate.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/naming.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/platform.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/preflight.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/probes.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/programme.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/__init__.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted_ci.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/adversary.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/agent_settings.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/agent_targets.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/agents.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/aws_docs.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/azure_docs.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/backing_service_prose.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/backing_services.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/benchmark.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/biome.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/ci_services.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/ci_workflows.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/compose.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/composition.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/constitution_journey.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/converge_stage.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/convergence_page.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_agents.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_hand.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_record.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_seat.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_stops.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_told.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_unblock.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/decisions.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/demo_stop.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/deploy_workflow.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/design_page.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/docs.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/docs_index.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/drive_adoption.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/drive_settings.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/entry_stores.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/event_model.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/evolving.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/existing.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/flag_route.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/flags.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/frontend.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/gitignore.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/guidance.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/infra.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/init_production.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/init_script.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/integration.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/__init__.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/go.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java_quarkus.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java_spring.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/python.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/typescript.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/metadata.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/model_targets.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/model_to_code.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/mutation.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/native_commands.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/openapi.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/parallel_slices.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/pin_commands.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/pins.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/production.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/provisioning.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/read_side_layouts.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/readme.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/renovate.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/repository.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/rules.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/run_skill.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/service_layouts.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/shared_packages.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/skills_page.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/stage_models.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/strangle_command.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/structure_page.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/target_docs.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/whats_next.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/project/where_are_we.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/quick_wins.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/replay.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/scaffold.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/selection.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/services.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/structure.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/survey.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/targets.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/tooling.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/upgrade.py +0 -0
- {slipwai-1.3.0.dev15 → slipwai-1.3.0.dev32}/src/slipwai/versions.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: slipwai
|
|
3
|
-
Version: 1.3.0.
|
|
3
|
+
Version: 1.3.0.dev32
|
|
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
|
|
@@ -458,7 +458,7 @@ is which, what each answer brings, and how a project answers a question again la
|
|
|
458
458
|
| Document | Covers |
|
|
459
459
|
|---|---|
|
|
460
460
|
| [Work on the factory](docs/maintaining.md) | `make verify` and the gates it runs, how `src/slipwai/` is laid out and the check that keeps it that way, browsing generated starters, and regenerating dependency locks |
|
|
461
|
-
| [Architecture decisions](docs/adr/) | The factory's own decisions, in the shape its `architecture-decisions` skill asks of a generated project. Here that mostly means the shape of something a project persists, because a project's log is the one thing no version of this factory can migrate for it. [`0001`](docs/adr/0001-a-dcb-capable-log.md) covers the log's derived tag index and why stream-per-aggregate stays the default write path. [`0002`](docs/adr/0002-the-guard-a-slice-declares.md) covers the guard a slice declares, and identity modelled while tags are not |
|
|
461
|
+
| [Architecture decisions](docs/adr/) | The factory's own decisions, in the shape its `architecture-decisions` skill asks of a generated project. Here that mostly means the shape of something a project persists, because a project's log is the one thing no version of this factory can migrate for it. [`0001`](docs/adr/0001-a-dcb-capable-log.md) covers the log's derived tag index and why stream-per-aggregate stays the default write path. [`0002`](docs/adr/0002-the-guard-a-slice-declares.md) covers the guard a slice declares, and identity modelled while tags are not; and, for what an *adopted* repository persists, [`0003`](docs/adr/0003-a-wrapped-application-begins-as-a-candidate.md), a wrapped application beginning as a candidate the coding agent confirms |
|
|
462
462
|
| [The canonical toolkit](assets/README.md) | The asset tree: where to edit skills, docs, gate scripts, language and frontend packs, and axis adapters |
|
|
463
463
|
| [What a backend owes](docs/backend-obligations.md) | The checklist behind adding a language or a framework: every axis, every `make` target and which gate runs it, every per-backend table, the choices that belong to the ecosystem rather than to this repository, and what a framework that owns startup provides instead of a hand-written adapter |
|
|
464
464
|
| [Publish the factory to Gitea](docs/publishing.md) | `scripts/publish-to-gitea.py`, cutting a release with `make release`, and the local `pages` server |
|
|
@@ -429,7 +429,7 @@ is which, what each answer brings, and how a project answers a question again la
|
|
|
429
429
|
| Document | Covers |
|
|
430
430
|
|---|---|
|
|
431
431
|
| [Work on the factory](docs/maintaining.md) | `make verify` and the gates it runs, how `src/slipwai/` is laid out and the check that keeps it that way, browsing generated starters, and regenerating dependency locks |
|
|
432
|
-
| [Architecture decisions](docs/adr/) | The factory's own decisions, in the shape its `architecture-decisions` skill asks of a generated project. Here that mostly means the shape of something a project persists, because a project's log is the one thing no version of this factory can migrate for it. [`0001`](docs/adr/0001-a-dcb-capable-log.md) covers the log's derived tag index and why stream-per-aggregate stays the default write path. [`0002`](docs/adr/0002-the-guard-a-slice-declares.md) covers the guard a slice declares, and identity modelled while tags are not |
|
|
432
|
+
| [Architecture decisions](docs/adr/) | The factory's own decisions, in the shape its `architecture-decisions` skill asks of a generated project. Here that mostly means the shape of something a project persists, because a project's log is the one thing no version of this factory can migrate for it. [`0001`](docs/adr/0001-a-dcb-capable-log.md) covers the log's derived tag index and why stream-per-aggregate stays the default write path. [`0002`](docs/adr/0002-the-guard-a-slice-declares.md) covers the guard a slice declares, and identity modelled while tags are not; and, for what an *adopted* repository persists, [`0003`](docs/adr/0003-a-wrapped-application-begins-as-a-candidate.md), a wrapped application beginning as a candidate the coding agent confirms |
|
|
433
433
|
| [The canonical toolkit](assets/README.md) | The asset tree: where to edit skills, docs, gate scripts, language and frontend packs, and axis adapters |
|
|
434
434
|
| [What a backend owes](docs/backend-obligations.md) | The checklist behind adding a language or a framework: every axis, every `make` target and which gate runs it, every per-backend table, the choices that belong to the ecosystem rather than to this repository, and what a framework that owns startup provides instead of a hand-written adapter |
|
|
435
435
|
| [Publish the factory to Gitea](docs/publishing.md) | `scripts/publish-to-gitea.py`, cutting a release with `make release`, and the local `pages` server |
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
1.3.0.dev32
|
|
@@ -3,10 +3,11 @@
|
|
|
3
3
|
> **Experimental.** This page arrived with brownfield adoption and will change as real programmes teach it
|
|
4
4
|
> what it gets wrong. What surprised you belongs on the public issue tracker.
|
|
5
5
|
|
|
6
|
-
The delivery method is installed.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
The delivery method is installed. The survey says what is here, `/characterise` can pin any behaviour before
|
|
7
|
+
it changes, and `make verify` runs the build's own commands — green on the day it arrives where the ratchet
|
|
8
|
+
has a baseline to hold them to, and saying plainly what is red where it does not. Nothing on this page had to
|
|
9
|
+
be decided for that to happen, and that was the point: the method makes every later step safe for an agent to
|
|
10
|
+
attempt, and only now is the question *which* step. This page is the Choose and Slice stages — three strategies, the order to change in, what
|
|
10
11
|
to do about data and infrastructure, and the one rule that holds all of it together.
|
|
11
12
|
|
|
12
13
|
## Three strategies, not two
|
|
@@ -13,7 +13,9 @@ never makes anything else fail, and `make ratchet-tighten` re-records the curren
|
|
|
13
13
|
A finding is a line of the command's output that names a file in this repository *at a position* — `src/a.js:3:7`,
|
|
14
14
|
`Foo.cs(3,7)` — which is how every linter and type checker reports one; the position is then dropped, so that
|
|
15
15
|
editing above a known finding does not make it look new, and a line that merely mentions a file (`> node
|
|
16
|
-
lint.js`) is not a finding. A
|
|
16
|
+
lint.js`) is not a finding. A path is resolved against the directory the build runs in as well as the root —
|
|
17
|
+
`project.json` records it, and a wrapped application's commands usually start `cd <its directory> &&` — and
|
|
18
|
+
recorded root-relative either way, so a finding compares the same however the tool that printed it spelled it. A test runner names the test rather than a file — `--- FAIL: TestX`, `not ok 3 - adds`,
|
|
17
19
|
`FAILED tests/test_a.py::test_b`, Surefire's `[ERROR] ShopTest.adds:42` — and each of those is a finding too,
|
|
18
20
|
`test: <name>`, so that a second failure beside a known one is new and named. Where a red command's output has
|
|
19
21
|
neither, this cannot tell new findings from old: the exit code is compared instead, and the report says so. A
|
|
@@ -88,9 +90,37 @@ ROOT = project_root(SCRIPT)
|
|
|
88
90
|
BASELINE = SCRIPT.parents[1] / "baseline.json"
|
|
89
91
|
|
|
90
92
|
|
|
91
|
-
def
|
|
93
|
+
def application_directory(application: str) -> Path:
|
|
94
|
+
"""Where this application's build runs, as `project.json` records it — the repository root for one at `.`.
|
|
95
|
+
|
|
96
|
+
A tool prints the paths it found relative to the directory it ran in, and a wrapped application's build
|
|
97
|
+
usually runs in its own: `cd admin-dev/themes/new-theme && npm exec -- tsc`. Resolving those against the
|
|
98
|
+
repository root alone found nothing, so every finding in every application not at the root was invisible
|
|
99
|
+
and the run fell back to comparing the exit code — which passes a second error tomorrow exactly as it
|
|
100
|
+
passed the first. That is the ratchet not doing the one thing it exists for, silently, on precisely the
|
|
101
|
+
repositories it was written for.
|
|
102
|
+
"""
|
|
103
|
+
manifest = ROOT / "project.json"
|
|
104
|
+
if not manifest.is_file():
|
|
105
|
+
return ROOT
|
|
106
|
+
try:
|
|
107
|
+
recorded = json.loads(manifest.read_text()).get("deployables", {}).get(application, {}).get("path")
|
|
108
|
+
except (OSError, json.JSONDecodeError, AttributeError):
|
|
109
|
+
return ROOT
|
|
110
|
+
if not isinstance(recorded, str) or recorded in ("", "."):
|
|
111
|
+
return ROOT
|
|
112
|
+
directory = (ROOT / recorded).resolve()
|
|
113
|
+
return directory if directory.is_dir() else ROOT
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
def findings_in(output: str, root: Path, where: Path | None = None) -> list[str]:
|
|
92
117
|
"""Every line of `output` that names a file in the repository at a position, positions dropped, and every failed
|
|
93
|
-
test a runner names (`test: <name>`), once each.
|
|
118
|
+
test a runner names (`test: <name>`), once each.
|
|
119
|
+
|
|
120
|
+
`where` is the directory the command ran in, where that is not the root. A path is looked for under the
|
|
121
|
+
root first and under `where` second, and either way the key is written root-relative, so a finding reads
|
|
122
|
+
and compares the same however the tool that reported it spelled it.
|
|
123
|
+
"""
|
|
94
124
|
found: list[str] = []
|
|
95
125
|
for line in output.splitlines():
|
|
96
126
|
if NOT_A_FINDING.match(line):
|
|
@@ -100,9 +130,18 @@ def findings_in(output: str, root: Path) -> list[str]:
|
|
|
100
130
|
def replace(match: re.Match[str]) -> str:
|
|
101
131
|
nonlocal names_a_file
|
|
102
132
|
path = match.group("path")
|
|
103
|
-
if match.group("position")
|
|
133
|
+
if not match.group("position"):
|
|
134
|
+
return match.group(0)
|
|
135
|
+
if (root / path).is_file():
|
|
104
136
|
names_a_file = True
|
|
105
137
|
return path
|
|
138
|
+
if where is not None and (where / path).is_file():
|
|
139
|
+
try:
|
|
140
|
+
spelled = (where / path).resolve().relative_to(root).as_posix()
|
|
141
|
+
except ValueError: # the command reached outside the repository; not ours to hold
|
|
142
|
+
return match.group(0)
|
|
143
|
+
names_a_file = True
|
|
144
|
+
return spelled
|
|
106
145
|
return match.group(0)
|
|
107
146
|
|
|
108
147
|
key = " ".join(LOCATION.sub(replace, line).split())
|
|
@@ -172,7 +211,7 @@ def main(argv: list[str]) -> int:
|
|
|
172
211
|
write_baseline(baseline)
|
|
173
212
|
return 0
|
|
174
213
|
|
|
175
|
-
findings = findings_in(output, ROOT)
|
|
214
|
+
findings = findings_in(output, ROOT, application_directory(application))
|
|
176
215
|
baseline = read_baseline()
|
|
177
216
|
entry = baseline.get(application, {}).get(target)
|
|
178
217
|
if entry is None or os.environ.get("RATCHET_TIGHTEN"):
|
|
@@ -760,7 +760,11 @@ def main() -> None:
|
|
|
760
760
|
if harness is None:
|
|
761
761
|
raise RuntimeError(f'unknown Spec Kit integration "{key}"')
|
|
762
762
|
if harness.get("projectable") is False:
|
|
763
|
-
|
|
763
|
+
# The registry's own reason, not a paraphrase of it: a person told "outside the repository" still
|
|
764
|
+
# has to go and find out *where*, and the row already says. `~/.hermes/skills` is the whole
|
|
765
|
+
# answer to what to do instead.
|
|
766
|
+
reason = harness.get("unprojectableReason") or "it cannot be projected into a repository"
|
|
767
|
+
raise RuntimeError(f'{harness["name"]} cannot be projected: {reason}')
|
|
764
768
|
project(harness)
|
|
765
769
|
if not CHECK:
|
|
766
770
|
done = ("Extension pointers projected" if CONTEXT_ONLY
|
|
@@ -157,6 +157,7 @@ def drift() -> tuple[dict[str, tuple[str, float]], list[str], list[str]] | None:
|
|
|
157
157
|
# indexed here as the answer keeps this check from inventing a language table of its own — and
|
|
158
158
|
# from reporting every committed PNG as a hole in the graph.
|
|
159
159
|
suffixes = {Path(path).suffix for path in rows} - {""}
|
|
160
|
+
last = max((at for _, at in rows.values()), default=0.0)
|
|
160
161
|
missing, changed = [], []
|
|
161
162
|
for path in paths:
|
|
162
163
|
if Path(path).suffix not in suffixes:
|
|
@@ -166,6 +167,14 @@ def drift() -> tuple[dict[str, tuple[str, float]], list[str], list[str]] | None:
|
|
|
166
167
|
continue
|
|
167
168
|
row = rows.get(path)
|
|
168
169
|
if row is None:
|
|
170
|
+
# A file the index has never seen is a hole only where it appeared *after* the index last ran.
|
|
171
|
+
# Matching the suffix is not enough: CodeGraph declines files of a language it indexes — a
|
|
172
|
+
# vendored `bootstrap.min.js` beside a `src/app.js` it read — and which ones is its decision,
|
|
173
|
+
# not this script's. Reported anyway, a real repository's vendored bundles failed a gate that
|
|
174
|
+
# `codegraph sync` said was already up to date, and the two tools called each other wrong. The
|
|
175
|
+
# index records milliseconds and the filesystem seconds.
|
|
176
|
+
if last and absolute.stat().st_mtime * 1000 <= last:
|
|
177
|
+
continue
|
|
169
178
|
missing.append(path)
|
|
170
179
|
elif row[0] and digest(absolute) != row[0]:
|
|
171
180
|
changed.append(path)
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**`slipwai adopt` refuses an unclean tree, a directory that is not a Git repository, or one already holding a
|
|
4
|
+
`project.json` before it surveys anything or asks anything — not after.** The check ran as `adopt` began
|
|
5
|
+
writing, which is the right place for it to be enforced but the wrong place to find out: on a repository of
|
|
6
|
+
twelve thousand files it meant waiting through the survey, answering the interview, and only then being told
|
|
7
|
+
that none of it could be kept. `adopt` still checks when it writes, because it is a library function and that
|
|
8
|
+
contract is its own; the command line now checks first as well.
|
|
9
|
+
|
|
10
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
MINOR
|
|
2
|
+
|
|
3
|
+
**Under `--experimental-intro`, `slipwai adopt` no longer wraps anything: every buildable directory the survey
|
|
4
|
+
finds is recorded as a candidate, and which of them is an application is answered by the coding agent, with
|
|
5
|
+
the code in front of it.** [ADR 0003](docs/adr/0003-a-wrapped-application-begins-as-a-candidate.md) has the reasoning and
|
|
6
|
+
the evidence. `Wrap it as the application …? [Y/n]` defaults to yes and is asked of somebody who has not read
|
|
7
|
+
the directory; on the first real monorepo this met, that wrapped three asset bundles and a test suite as
|
|
8
|
+
applications, under names taken from their directories, with every `purpose` left blank — and there was no way
|
|
9
|
+
back, because a re-survey reports an unwrapped directory but has never removed a record.
|
|
10
|
+
|
|
11
|
+
So `project.json` gained the state it was missing. `deployables` says what somebody has established;
|
|
12
|
+
`candidates` says what was merely found, with the path, the language, the commands the build answers and the
|
|
13
|
+
file that found it. It is the same distinction `unrecorded` already draws for every row of the convergence
|
|
14
|
+
map, and it is why no un-wrap command had to be written: nothing is wrapped, so nothing needs unwrapping.
|
|
15
|
+
|
|
16
|
+
What follows from it: **`make verify` refuses while nothing is confirmed** and names what confirms one, because
|
|
17
|
+
a gate with nothing to hold has not been given its subject and a green run over zero applications is the false
|
|
18
|
+
assurance this exists to prevent. **The terminal asks one question** — the forge — and shows the rest as facts;
|
|
19
|
+
the language, the kind, the commands, what each directory owns, where the schema and the infrastructure live,
|
|
20
|
+
how a change reaches production and why the work is happening all move to the agent or to a conversation.
|
|
21
|
+
**`/ground` opens with the candidates**, one at a time, saying what it thinks each is and why from what it
|
|
22
|
+
read, before asking. **`slipwai adopt --confirm <name>`** records the answer — with `--as` for a name that is
|
|
23
|
+
not the directory's, and `--kind`, `--purpose`, `--command` and `--hexagonal` for the rest — builds the entry
|
|
24
|
+
and regenerates everything that reads it, so `deployables` is never edited by hand; **`--decline <name>`** drops
|
|
25
|
+
a candidate with nothing recorded in its place. **`--next`** names confirming as the step before the map's rows.
|
|
26
|
+
`--yes` stays the unattended path it has always been: it confirms every candidate as found, and the report now
|
|
27
|
+
says plainly that nobody looked.
|
|
28
|
+
|
|
29
|
+
Default off. Without `--experimental-intro` (or `SLIPWAI_EXPERIMENTAL_INTRO=1`) `adopt` asks exactly what it
|
|
30
|
+
asked before, wraps what it always wrapped, and writes no `candidates` key.
|
|
31
|
+
|
|
32
|
+
**Catch-up.** Nothing. A repository adopted before this has its applications in `deployables` already, which is
|
|
33
|
+
confirmation by an earlier factory and is left alone; it has no `candidates` key, which reads as an adoption
|
|
34
|
+
with nothing outstanding, and `--confirm` says so rather than inventing work. Two readers of an adopted record
|
|
35
|
+
— `--next` and `--refresh` — now tolerate a manifest with no deployables, which is the honest state between
|
|
36
|
+
`adopt` and the first confirmation; `add-service` still refuses one, since it needs an application to take a
|
|
37
|
+
language and a port from.
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
MINOR
|
|
2
|
+
|
|
3
|
+
**`slipwai adopt` establishes which coding agent the material is for, instead of leaving it to a question
|
|
4
|
+
`./init` asks one step too late.** `./init` projects the canonical skills, commands and agent types into one
|
|
5
|
+
harness's native locations, and it has always asked which — after `adopt` had already finished. That ordering
|
|
6
|
+
makes the answer useless to the adoption itself, because the questions worth handing to a coding agent are the
|
|
7
|
+
ones asked before there is one. It was also mostly answerable without asking: a run started from inside a
|
|
8
|
+
harness is told so by its environment, and a repository whose team already uses one says so in the tree
|
|
9
|
+
(`.claude/skills`, `.gemini/commands`, `.github/copilot-instructions.md`). `adopt` now reads both and records
|
|
10
|
+
the answer in `project.json` under `agent`, with the evidence and `detected` provenance; `--integration <agent>`
|
|
11
|
+
names it outright, recorded `overridden`, and `./init` asks nothing where the record already says. What nothing
|
|
12
|
+
establishes stays `unrecorded` and is said out loud — a directory two harnesses read names neither, a tree that
|
|
13
|
+
reads for two records neither, and a thirty-six-row list is not a question a terminal can ask well — so `./init`
|
|
14
|
+
keeps its own question for exactly the case it is still needed in.
|
|
15
|
+
|
|
16
|
+
**Catch-up.** Nothing. A repository adopted by an earlier factory has no `agent` key, which reads as the
|
|
17
|
+
question still being open, and `./init --integration <agent>` answers it the way it always did. A re-survey
|
|
18
|
+
carries the key as recorded rather than re-reading it: which agent gets the material is not something the tree
|
|
19
|
+
says.
|
|
20
|
+
|
|
21
|
+
**`slipwai adopt --init` runs `./init` once the adoption is committed, so a terminal adoption can end in one
|
|
22
|
+
step rather than four.** Off unless asked for: `./init` reaches Spec Kit's source, and making every `--yes` in
|
|
23
|
+
a script or a test need the network to finish would be a poor trade for saving a line. It runs last and never
|
|
24
|
+
inside the commit, so an unreachable source costs the adoption nothing — the commit is already made, the
|
|
25
|
+
failure says so, and `slipwai adopt --next` keeps naming `./init` as the step you are on. What it writes is
|
|
26
|
+
left uncommitted and yours to read, exactly as in a project the factory generated. `--no-init` is the default
|
|
27
|
+
said out loud.
|
|
28
|
+
|
|
29
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
MINOR
|
|
2
|
+
|
|
3
|
+
**`slipwai adopt --next` says where an adopted repository stands in the sequence the adoption report names —
|
|
4
|
+
what is done, what is next, and why — so the plan survives the scrollback.** That report is printed once, at
|
|
5
|
+
the end of the longest output this factory produces, and the sequence it names spans days and four tools;
|
|
6
|
+
`docs/adoption.md` carries the same list but is introduced there as a record of what was wrapped rather than
|
|
7
|
+
as the plan. Nothing is remembered now: every step leaves a mark, and `--next` reads them. Spec Kit writes
|
|
8
|
+
`.specify/integration.json`, the first gate run writes the ratchet baseline, `/ground` moves a row of the
|
|
9
|
+
convergence map off `unrecorded`, the root Makefile gains its `-include`, and a strategy is an accepted ADR
|
|
10
|
+
with a `Strategy:` line. It writes nothing itself, and it names the applications nobody has yet proved start.
|
|
11
|
+
A repository adopted by an earlier version needs nothing: the marks are the ones it was already leaving.
|
|
12
|
+
|
|
13
|
+
**A recorded command that changes directory first no longer reports the shell's `cd` as a tool this machine
|
|
14
|
+
is missing.** Every build that is not at the repository root is recorded as `cd <dir> && <build>`, and the
|
|
15
|
+
report read the first word off that line and asked the PATH for it — so a repository with four such builds
|
|
16
|
+
was told `` `cd` is not on PATH here `` above a list of all fifteen of their targets, with the one tool that
|
|
17
|
+
really was missing a line among them. The tools a command runs are now every shell segment's program, past
|
|
18
|
+
any leading `VAR=value`, and never one of the shell's own words.
|
|
19
|
+
|
|
20
|
+
**`slipwai adopt --experimental-intro` turns on the reshaped adoption intro while it is being built.** The
|
|
21
|
+
questions a terminal cannot answer well — what a directory is, what it is called, what it owns — are being
|
|
22
|
+
moved to the coding agent, which can read the code before asking. The switch (or `SLIPWAI_EXPERIMENTAL_INTRO=1`)
|
|
23
|
+
is how to walk that shape before it is the only one; today it removes the first of them, the language, which
|
|
24
|
+
the line above it has already printed and which `--language NAME=LANGUAGE` still corrects. Default off:
|
|
25
|
+
without it the interview asks exactly what it asked before. Experimental within an experiment (#74).
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**A flag that describes the adoption is refused on a `--confirm` or `--decline` run, rather than read and
|
|
4
|
+
thrown away.** `slipwai adopt --confirm shop --integration cursor` looked like it recorded a coding agent and
|
|
5
|
+
recorded nothing: the settling path never reads those flags. It now names each one and says where it belongs —
|
|
6
|
+
`--integration` after the method is installed is `./init`'s. The same rule the reshaped intro already applies
|
|
7
|
+
to flags that describe an application, and nothing that previously worked stops working: a flag that did
|
|
8
|
+
nothing now says so.
|
|
9
|
+
|
|
10
|
+
**`check-codegraph` no longer fails a repository for files CodeGraph deliberately declined.** It inferred what
|
|
11
|
+
should be indexed from the suffixes already in the index, so a vendored `bootstrap.min.js` beside a `src/app.js`
|
|
12
|
+
read as a hole in the graph — and a real adoption failed a gate that `codegraph sync` said was already up to
|
|
13
|
+
date, the two tools calling each other wrong. Which files belong in the index is CodeGraph's decision; a file
|
|
14
|
+
the index has never seen is now a finding only where it appeared *after* the index last ran, which is the
|
|
15
|
+
question the check was always asking.
|
|
16
|
+
|
|
17
|
+
**A harness that cannot be projected says where its skills live instead of only that they are elsewhere.** The
|
|
18
|
+
registry already records the reason — Hermes keeps them at `~/.hermes/skills` — and the refusal now quotes it,
|
|
19
|
+
because a person told "outside the repository" still has to go and find out where.
|
|
20
|
+
|
|
21
|
+
**`docs/change-strategy.md` stopped opening by asserting that `make verify` is green.** It is written before
|
|
22
|
+
any gate has run, and on a repository whose build tool is not on the machine it is not true. The page says what
|
|
23
|
+
the gate actually does instead: runs the build's own commands, green where the ratchet has a baseline to hold
|
|
24
|
+
them to and plainly red where it does not.
|
|
25
|
+
|
|
26
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**`/ground` asks, before anything about the repository, how much each answer should explain itself — and holds
|
|
4
|
+
to the answer.** Spelling out what every option writes, what moves because of it and what it costs is what
|
|
5
|
+
somebody meeting a codebase or this method for the first time needs to answer safely; it is also how a
|
|
6
|
+
question set becomes a wall to skim for somebody on their second adoption who already knows what confirming
|
|
7
|
+
an application does. So it is asked once, the agent says which it would pick for this person and why, and
|
|
8
|
+
either form can be changed at any question. The short form drops the elaboration and not the honesty: what
|
|
9
|
+
the agent thinks and why, from what it read, stays, and *I don't know* stays an answer on offer.
|
|
10
|
+
|
|
11
|
+
**And `slipwai adopt --refresh` no longer drops the outstanding candidates and the recorded agent.** A
|
|
12
|
+
re-survey reads the tree, and neither is a fact about the tree — a candidate is a question nobody has
|
|
13
|
+
answered yet, and which coding agent gets the material is `./init`'s. Rebuilding the record without them left
|
|
14
|
+
`project.json` holding two candidates while the `/ground` regenerated in the same run had lost the section
|
|
15
|
+
that asks about them: a generated file disagreeing with the record it is generated from, which is the one
|
|
16
|
+
thing this must not do. Found by running the command over a real adoption mid-way through.
|
|
17
|
+
|
|
18
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**`/ground` now has to say what each answer on offer will do, not just what it is called.** The first real run
|
|
4
|
+
of the command over a brownfield monorepo produced a page of sound reasoning per candidate and then collapsed
|
|
5
|
+
it into option labels — *Yes — hold its lint*, *Yes, as recommended* — and the person answering it replied
|
|
6
|
+
"Not sure, what do you think?" and, once, "check yourself". A person reads the options, not the paragraph
|
|
7
|
+
above them, so that is where the consequence has to be: each answer names what it writes, what moves because
|
|
8
|
+
of it, and what it costs. Three rules go with it: a question the tree can settle is read and settled rather
|
|
9
|
+
than put as a menu; a recommendation always comes with the reasoning that produced it, never a bare list; and
|
|
10
|
+
*I don't know* is offered as one of the answers every time rather than merely accepted when volunteered,
|
|
11
|
+
because a question that does not offer it manufactures an answer.
|
|
12
|
+
|
|
13
|
+
**And a runtime past its end of life is named once, however many applications run it.** The platform record
|
|
14
|
+
holds a row per application per product, so a repository whose four npm packages all run Node 20 had the same
|
|
15
|
+
sentence four times under the strategy's `because` and four more under its `before`. The reader needs the
|
|
16
|
+
products; a product is its title and its version.
|
|
17
|
+
|
|
18
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**`slipwai adopt --confirm` and `--refresh` now re-derive the harness projections, so `make verify` is not red
|
|
4
|
+
the moment `/ground` finishes.** Confirming a candidate changes which languages the record names, which
|
|
5
|
+
rewrites the skills' prose, which makes every copy under `.claude/skills/` differ from its canonical source —
|
|
6
|
+
and `check-agents` fails. Both real adoptions hit it and fixed it by hand with `make agents`. The factory
|
|
7
|
+
writes the canonical files, so the factory re-derives what copies them, exactly as `migrate` already does
|
|
8
|
+
after a merge. A projector that cannot run is reported rather than raised: the record is written and good
|
|
9
|
+
either way.
|
|
10
|
+
|
|
11
|
+
**And the typecheck the survey proposes for a TypeScript directory with no script of its own now passes
|
|
12
|
+
`--skipLibCheck`.** A bare `tsc --noEmit` gave seventeen errors on a real adoption, every one of them inside
|
|
13
|
+
`node_modules` where two dependencies ship disagreeing types — nothing the project can fix, and the ratchet
|
|
14
|
+
baselines the whole failure as a blanket excuse for the check. With lib types skipped the same tree is green,
|
|
15
|
+
and a type error the project actually wrote is what turns it red. A directory with its own `typecheck` script
|
|
16
|
+
keeps it, whatever it says.
|
|
17
|
+
|
|
18
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**The ratchet now sees findings in an application that is not at the repository root — which, until now, it
|
|
4
|
+
never did.** A tool prints the paths it found relative to the directory it ran in, and a wrapped application's
|
|
5
|
+
build runs in its own: `cd admin-dev/themes/new-theme && npm exec -- tsc`. Every path it reported was resolved
|
|
6
|
+
against the repository root alone, where nothing of that name exists, so the run found no findings at all and
|
|
7
|
+
fell back to comparing the exit code — which passes a second error tomorrow exactly as it passed the first.
|
|
8
|
+
On a real adoption a plain type error in the project's own source was invisible to it. That is the ratchet
|
|
9
|
+
failing at the one thing it exists for, silently, on precisely the repositories it was written for: the ones
|
|
10
|
+
whose applications live in subdirectories. A path is now resolved against the directory the build runs in as
|
|
11
|
+
well as the root — `project.json` records it — and recorded root-relative either way, so a finding compares
|
|
12
|
+
the same however the tool that printed it spelled it.
|
|
13
|
+
|
|
14
|
+
**Catch-up.** An adopted repository with an application below its root should re-record: its `lint` or
|
|
15
|
+
`typecheck` entry in `baseline.json` is almost certainly `{"exit": N, "findings": []}`, which excused the whole
|
|
16
|
+
command. `make ratchet-tighten` after reading what the command actually reports replaces it with the findings
|
|
17
|
+
that are really there, and the gate holds to no new ones from then on.
|
|
18
|
+
|
|
19
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
PATCH
|
|
2
|
+
|
|
3
|
+
**`slipwai adopt` no longer names `./init` as the next step and then runs it two lines later.** Where
|
|
4
|
+
`--init` is going to run it, the report says it is running now and what that leaves for you to commit; the
|
|
5
|
+
rest of the sequence is unchanged, since only the first line was ever about that step.
|
|
6
|
+
|
|
7
|
+
**And where `adopt` could not tell which coding agent the material was for, the record now catches up with
|
|
8
|
+
the answer `./init` collected.** Handing the question on was right — a tree that reads for three harnesses is
|
|
9
|
+
a decision and not a guess — but the answer then existed only in Spec Kit's own file while `project.json`
|
|
10
|
+
still said nobody had established one, and `slipwai adopt --next` went on offering `--integration` for a
|
|
11
|
+
question somebody had already answered. `harness.py` now reads `.specify/integration.json` as a source of its
|
|
12
|
+
own, and the strongest one: a person answered `./init`, so it is recorded `confirmed`, and it outranks both
|
|
13
|
+
the environment a run started in and what the tree reads, which are readings rather than answers. A record
|
|
14
|
+
that already names a harness is left alone, and one a person overrode is never moved by a later step.
|
|
15
|
+
|
|
16
|
+
Found by running the reshaped intro over PrestaShop, whose tree reads for Claude Code, GitHub Copilot and
|
|
17
|
+
Gemini CLI at once — which is the case the ambiguity rule was written for, and the first time it has been met
|
|
18
|
+
in the wild.
|
|
19
|
+
|
|
20
|
+
Part of brownfield adoption, which is experimental (#74): what it offers may change in a MINOR, and what it gets wrong belongs on that issue.
|
|
@@ -67,6 +67,13 @@ class Answers:
|
|
|
67
67
|
# stands as `detected`, or as `unrecorded` where the tree said nothing.
|
|
68
68
|
ci: dict = field(default_factory=dict)
|
|
69
69
|
release: dict = field(default_factory=dict)
|
|
70
|
+
# `{"harness": ..., "evidence": ..., "provenance": ...}` from `harness.py`: which coding agent `./init`
|
|
71
|
+
# projects into. Empty means nobody said and nothing showed, and `./init` keeps its own question.
|
|
72
|
+
agent: dict = field(default_factory=dict)
|
|
73
|
+
# Buildable directories found and not yet confirmed (ADR 0003). Under the reshaped intro this carries
|
|
74
|
+
# every one of them and `applications` is empty; under the interview it is empty and `applications`
|
|
75
|
+
# carries what the person confirmed in the terminal.
|
|
76
|
+
candidates: list = field(default_factory=list)
|
|
70
77
|
|
|
71
78
|
|
|
72
79
|
def check_repository(root: Path) -> None:
|
|
@@ -128,6 +135,31 @@ def proposed(found: Survey, name: str) -> list[App]:
|
|
|
128
135
|
return apps
|
|
129
136
|
|
|
130
137
|
|
|
138
|
+
def candidates_of(found: Survey, name: str) -> list[dict]:
|
|
139
|
+
"""Every buildable directory the survey found, as a candidate record: what `proposed` would have made an
|
|
140
|
+
application of, plus the evidence that found it, and confirmed by nobody.
|
|
141
|
+
|
|
142
|
+
The same directories `proposed` reads, so that confirming one produces exactly the application the old
|
|
143
|
+
interview would have recorded had somebody pressed Enter knowing what they were pressing it over.
|
|
144
|
+
"""
|
|
145
|
+
return [
|
|
146
|
+
{
|
|
147
|
+
"name": app.name,
|
|
148
|
+
"path": app.path,
|
|
149
|
+
"language": app.language,
|
|
150
|
+
"kind": app.kind,
|
|
151
|
+
"commands": dict(app.commands or {}),
|
|
152
|
+
"toolchain": dict(app.toolchain or {}),
|
|
153
|
+
"evidence": root.found.evidence,
|
|
154
|
+
# What the tree said the directory is for, where it said anything. A candidate whose `kind` is
|
|
155
|
+
# `application` with nothing here is one nobody and nothing has placed — the commonest case, and
|
|
156
|
+
# the one the confirming agent has to read the directory to answer.
|
|
157
|
+
**({"roleEvidence": root.role_evidence} if root.role_evidence else {}),
|
|
158
|
+
}
|
|
159
|
+
for app, root in zip(proposed(found, name), found.roots, strict=True)
|
|
160
|
+
]
|
|
161
|
+
|
|
162
|
+
|
|
131
163
|
def facts(found: Survey, answers: Answers, layout: Layout) -> Adoption:
|
|
132
164
|
"""The project-level record: the person's answers where given, the survey's proposal where not — and where
|
|
133
165
|
the tree said nothing and nobody was asked, `unrecorded`, which is a fact about the record and not a guess."""
|
|
@@ -176,6 +208,8 @@ def facts(found: Survey, answers: Answers, layout: Layout) -> Adoption:
|
|
|
176
208
|
"ci": list(found.ci), "containers": list(found.containers),
|
|
177
209
|
"makefile": found.makefile, "readme": found.readme, "quickWins": list(found.quick_wins),
|
|
178
210
|
},
|
|
211
|
+
agent=answers.agent,
|
|
212
|
+
candidates=answers.candidates,
|
|
179
213
|
)
|
|
180
214
|
|
|
181
215
|
|
|
@@ -195,7 +229,7 @@ def adopt(root: Path, answers: Answers, found: Survey | None = None) -> Adopted:
|
|
|
195
229
|
found = survey(root) if found is None else found
|
|
196
230
|
layout = Layout(answers.delivery)
|
|
197
231
|
apps = answers.applications
|
|
198
|
-
if not apps:
|
|
232
|
+
if not apps and not answers.candidates:
|
|
199
233
|
raise GenerationError("no application to install the method around: adopt wraps at least one")
|
|
200
234
|
adoption = with_recommendation(root, layout, with_platform(root, facts(found, answers, layout), apps), apps)
|
|
201
235
|
files = project_files(answers.name, answers.profile, answers.target, apps, layout, adoption)
|
|
@@ -261,4 +295,4 @@ def manifest_of(root: Path) -> dict:
|
|
|
261
295
|
return json.loads((root / "project.json").read_text())
|
|
262
296
|
|
|
263
297
|
|
|
264
|
-
__all__ = ["Adopted", "Answers", "WRITTEN", "adopt", "manifest_of", "proposed", "report"]
|
|
298
|
+
__all__ = ["Adopted", "Answers", "WRITTEN", "adopt", "candidates_of", "manifest_of", "proposed", "report"]
|
|
@@ -11,6 +11,7 @@ from pathlib import Path
|
|
|
11
11
|
|
|
12
12
|
from .assets import VERSION
|
|
13
13
|
from .convergence import summary
|
|
14
|
+
from .harness import name_of
|
|
14
15
|
from .layout import Layout
|
|
15
16
|
from .origin import Adoption
|
|
16
17
|
from .programme import expired, phrase, unplaced
|
|
@@ -131,7 +132,7 @@ def quick_wins_table(findings: tuple[dict, ...]) -> str:
|
|
|
131
132
|
)
|
|
132
133
|
|
|
133
134
|
|
|
134
|
-
def report(done: Adopted) -> str:
|
|
135
|
+
def report(done: Adopted, running_init: bool = False) -> str:
|
|
135
136
|
"""What was written, what it forfeits, and the next steps in order — the first line says experimental, and the
|
|
136
137
|
first step is always `init`, as it is in a generated project's README: the agent before the gate."""
|
|
137
138
|
wrapped = wrapped_of(done.apps)
|
|
@@ -148,7 +149,40 @@ def report(done: Adopted) -> str:
|
|
|
148
149
|
f" {app.name}: {app.path} ({app.language}; {what}), {recorded} of {len(app.commands or {})} targets "
|
|
149
150
|
"have a command; the rest are written no's"
|
|
150
151
|
)
|
|
151
|
-
|
|
152
|
+
# Nothing a person said stands behind an application every one of whose facts is still the survey's own
|
|
153
|
+
# reading, which is what `--yes` leaves. Said once, plainly, rather than left to be inferred from the word
|
|
154
|
+
# `detected` in a file nobody opens: the whole point of the candidate state is that a record says whether
|
|
155
|
+
# somebody looked, and a record that says nobody did has to be as readable as one that says somebody did.
|
|
156
|
+
unlooked = [app for app in wrapped if set(app.provenance.values()) <= {"detected", "unrecorded"}]
|
|
157
|
+
if unlooked and len(unlooked) == len(wrapped):
|
|
158
|
+
lines.append(
|
|
159
|
+
f" Nobody has looked at {'either' if len(unlooked) == 2 else 'any'} of these: every fact above is "
|
|
160
|
+
"the survey's own reading, recorded `detected`. /ground asks about each, and `/survey` refreshes "
|
|
161
|
+
"what stays the tree's word."
|
|
162
|
+
if len(unlooked) > 1 else
|
|
163
|
+
" Nobody has looked at it: every fact above is the survey's own reading, recorded `detected`. "
|
|
164
|
+
"/ground asks, and `/survey` refreshes what stays the tree's word."
|
|
165
|
+
)
|
|
166
|
+
candidates = done.adoption.candidates or []
|
|
167
|
+
if candidates:
|
|
168
|
+
one = len(candidates) == 1
|
|
169
|
+
lines.append(
|
|
170
|
+
f" {len(candidates)} buildable director{'y' if one else 'ies'}, "
|
|
171
|
+
+ ("which is not recorded as an application yet" if one else "none of them recorded as an "
|
|
172
|
+
"application yet")
|
|
173
|
+
+ " — what each is, what it is called and what it owns are questions the code answers:"
|
|
174
|
+
)
|
|
175
|
+
for row in candidates:
|
|
176
|
+
answered = sum(1 for command in (row.get("commands") or {}).values() if command)
|
|
177
|
+
lines.append(
|
|
178
|
+
f" {row['path']} ({row['language']}, from {row['evidence']}), "
|
|
179
|
+
f"{answered} of {len(row.get('commands') or {})} targets have a command"
|
|
180
|
+
)
|
|
181
|
+
lines.append(
|
|
182
|
+
" Until one is confirmed, `verify` refuses rather than passing over nothing: /ground asks about "
|
|
183
|
+
"each with the code in front of it, and `slipwai adopt --confirm <name>` records the answer."
|
|
184
|
+
)
|
|
185
|
+
elif not wrapped:
|
|
152
186
|
lines.append(" no buildable directory was found; the gate is the method's own checks alone")
|
|
153
187
|
lines += ci_lines(done.adoption, done.layout)
|
|
154
188
|
at, below, unrecorded = summary(done.adoption.convergence)
|
|
@@ -202,13 +236,36 @@ def report(done: Adopted) -> str:
|
|
|
202
236
|
lines += missing_tools(wrapped, done.layout)
|
|
203
237
|
verify = "make" if done.makefile_written else done.layout.make
|
|
204
238
|
init = f"./{done.layout.delivery}/init"
|
|
239
|
+
named = recorded_agent(done)
|
|
240
|
+
# `--init` runs it below, so naming it as the next step and then doing it reads as two different
|
|
241
|
+
# instructions about the same thing. What is left after it is what the rest of this list is for.
|
|
242
|
+
# `--init` runs it below, so naming it as the next step and then doing it reads as two instructions
|
|
243
|
+
# about one thing. What is left after it is what the rest of this list is for.
|
|
244
|
+
init_line = (
|
|
245
|
+
f"Next: {init} is running now — it installs Spec Kit and projects the skills and commands; what it "
|
|
246
|
+
"writes is left uncommitted for you to read."
|
|
247
|
+
if running_init
|
|
248
|
+
else f"Next: {init} — installs Spec Kit and " + (
|
|
249
|
+
f"projects the skills and commands into {name_of(named)}, which this record already "
|
|
250
|
+
f"names, so it asks nothing ({init} --integration <agent> changes it)"
|
|
251
|
+
if named
|
|
252
|
+
else f"asks which coding agent gets the skills and commands (or name it: {init} --integration claude)"
|
|
253
|
+
) + ". Add --extension codegraph to index the code for that agent."
|
|
254
|
+
)
|
|
205
255
|
lines += [
|
|
206
256
|
"",
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
257
|
+
init_line,
|
|
258
|
+
"Then: /ground, in the agent — it asks what the tree could not say" + (
|
|
259
|
+
", starting with which of the directories above is an application, what it is called and what it "
|
|
260
|
+
"owns; then one row of the map at a time"
|
|
261
|
+
if done.adoption.candidates
|
|
262
|
+
else ", one row of the map at a time"
|
|
263
|
+
) + ", and records each answer with its provenance; what --yes left unrecorded is settled there.",
|
|
264
|
+
f"Then: {verify} verify — the gate" + (
|
|
265
|
+
", once a candidate above has been confirmed: it refuses while nothing is, because a gate with "
|
|
266
|
+
"nothing to hold has not been given its subject yet"
|
|
267
|
+
if done.adoption.candidates else ""
|
|
268
|
+
) + ". Its first run records the lint and typecheck findings that are there as "
|
|
212
269
|
f"the baseline; commit {done.layout.delivery}/baseline.json with what init wrote. A test suite that is red "
|
|
213
270
|
"stops that run and says so: read the failures, then `make ratchet-tighten` quarantines it deliberately.",
|
|
214
271
|
*([] if done.makefile_written else [
|
|
@@ -217,10 +274,18 @@ def report(done: Adopted) -> str:
|
|
|
217
274
|
f"Read {done.layout.delivery}/docs/adoption.md — what was wrapped, what that forfeits, and where each fact "
|
|
218
275
|
f"came from — and {done.layout.delivery}/docs/convergence.md, where this repository stands and what is next; "
|
|
219
276
|
f"{done.layout.delivery}/survey/survey.md is the survey with its evidence.",
|
|
277
|
+
"This list scrolls away, and the sequence it names takes longer than one sitting: `slipwai adopt --next` "
|
|
278
|
+
"says where you are in it, read off the tree rather than remembered.",
|
|
220
279
|
]
|
|
221
280
|
return "\n".join(lines)
|
|
222
281
|
|
|
223
282
|
|
|
283
|
+
def recorded_agent(done: Adopted) -> str | None:
|
|
284
|
+
"""The harness the record names, or None where the question is still `./init`'s to ask."""
|
|
285
|
+
harness = (done.adoption.agent or {}).get("harness")
|
|
286
|
+
return harness if isinstance(harness, str) and harness else None
|
|
287
|
+
|
|
288
|
+
|
|
224
289
|
def ci_lines(adoption: Adoption, layout: Layout) -> list[str]:
|
|
225
290
|
"""What the report says about the gate's CI configuration and the release path: which forge was recorded, what
|
|
226
291
|
was written for it — or that nothing was, and what to run instead — and how a change reaches production."""
|