slipwai 1.3.0.dev8__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.dev8 → slipwai-1.3.0.dev32}/PKG-INFO +2 -2
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/README.md +1 -1
- slipwai-1.3.0.dev32/VERSION +1 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/docs/change-strategy.md +5 -4
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/scripts/ratchet.py +44 -5
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/benchmark.py +47 -21
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/code_index.py +79 -20
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/project.py +5 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-codegraph.py +16 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-decisions.py +77 -8
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-ux-gates.py +7 -5
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/codegraph +3 -3
- 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/gates-a-migration-can-pass.md +33 -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.dev8 → slipwai-1.3.0.dev32}/changelog.d/ux-gates-at-scale.md +5 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/adopt.py +36 -2
- {slipwai-1.3.0.dev8 → 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.dev8 → 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.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/src/slipwai/origin.py +27 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/add_commands.py +12 -124
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted_targets.py +22 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/adversary.py +3 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/agent_targets.py +7 -3
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/benchmark.py +3 -2
- slipwai-1.3.0.dev32/src/slipwai/project/catch_up_command.py +128 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/commands.py +2 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/docs.py +1 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/ground_command.py +93 -1
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/makefile.py +4 -5
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/resurvey.py +18 -4
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/strategy.py +18 -4
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/toolkit.py +19 -4
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/wrappers.py +33 -4
- slipwai-1.3.0.dev8/VERSION +0 -1
- slipwai-1.3.0.dev8/src/slipwai/cli_adopt.py +0 -338
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/.gitignore +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/CHANGELOG.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/NOTICE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/scripts/check-convergence.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/support.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradlew +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/docker-compose.yml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/env.example +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/config.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/config_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_contract.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_memory.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_memory_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_postgres.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_sqlite.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/events.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_app.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_app_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_openapi_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_security.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/http_security_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrate_main.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrate_main_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrations_embed.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/migrations_keep +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/openapi.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_ticker.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/projections_ticker_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/read_models.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/serve_main.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/tracing.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/tracing_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/actor.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/append_result.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/causation_id.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/committed_event.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/condition.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/conditional_append_result.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/correlation_id.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/database_url.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/domain_event.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_exception.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_memory.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_memory_database.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_postgres.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_store_sqlite.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/event_visitor.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/http_schema_failure.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/migrate_main.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/projection.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/projections.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/read_models.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tag_query.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tagged_read.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tags_of.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/database_url_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_contract.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/projections_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/transactions.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/config_source_registration +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/spring_transactions.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/java-spring/users_security.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/realms/app.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/keycloak/realms/customers.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/prune.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_memory.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/events.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/http_app.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/logging_setup.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/main.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/migrations_apply.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/openapi_export.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/projections.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/read_models.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/settings.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/conftest.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/event_store_contract.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_http_app.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_projections.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_settings.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_tracing.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/tracing.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/sql/001_events.sql +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/sql/002_events_append_only.sql +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/sql/004_event_tags.sql +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/config.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-memory.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/events.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/http-app.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/main.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/001_events.js +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi-export.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi-flags.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/openapi.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/projections-plugin.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/projections.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/read-models.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/tracing.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/api-client/package.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/index.html +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/package.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/App.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/main.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/tsconfig.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app/vite.config.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/app/.gremlins.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/app/application/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/app/domain/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/app/health/health.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/app/health/health_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/flags/flags/flags.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/flags/flags/flags_test.go +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/base/go.mod +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/base/go.sum +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/postgres/go.mod +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/postgres/go.sum +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/sqlite/go.mod +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/modules/sqlite/go.sum +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/scripts/go-coverage.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/go/scripts/go-mutation.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/.gitattributes +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/checkstyle.xml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/mvnw +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/build/mvnw.cmd +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/pom.xml +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → 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.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/pom.xml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → 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.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/app/pyproject.toml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/app/tests/test_health.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/event-port/tests/test_events.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/flags/tests/test_flags.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-fastapi.lock +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv-postgres.lock +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/python/locks/uv.lock +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/package.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/application/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/domain/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/src/health.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/app/tests/health.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/biome/biome.jsonc +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/biome/domain-purity.grit +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
- {slipwai-1.3.0.dev8 → 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.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/flags/src/flags.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/languages/typescript/locks/package-lock.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/commands/example-map.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/.registry +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/docs/speckit-preset.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/check-deploy-role.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/cognito_customers.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/cognito_staff.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/flags.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/main.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/network.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/rds.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/variables.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/aws/service/versions.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/main.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/outputs.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/bootstrap/variables.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/bootstrap.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/check-flags.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/scripts/deploy.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/auth0.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/entra_staff.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/flags.auto.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/flags.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/frontend.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/ingress.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/main.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/no-auth0.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/no-frontend.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/outputs.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/postgres.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/production.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/staging.tfvars +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/variables.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/targets/azure/service/versions.tf +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/.specify/extensions.yml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/agent-harnesses.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-model/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-model/model.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/docs/first-slice.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/cruise.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/drive.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/models.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/agents/registry.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-constitution.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-imports.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-migrations.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-slice-scope.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-speckit.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/check-styles.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/check.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/check.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/model.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/package.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/page.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/palette.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/readme.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/render.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/validate.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/guidance.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/menu.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/project.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/extensions/ux-gates/init.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/scripts/test_benchmark.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/REFERENCES.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/NOTICE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/expectations/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/planning/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/tdd/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/testing/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/LICENSE +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/SKILL.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/catalog.json +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/changelog.d/README.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/changelog.d/code-index-held.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/changelog.d/deploy-role-scope.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/changelog.d/setup-go-workspace-cache.md +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/pyproject.toml +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/__init__.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/__main__.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/add_service.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/assets.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/axes.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/backends.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/capabilities.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/catalog.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/catch_up.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/changelog.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/cli.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/cli_add.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/cli_prompts.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/converge.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/convergence.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/delivery_facts.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/errors.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/examples.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/extensions.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/features.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/images.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/layout.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/migrate.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/naming.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/platform.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/preflight.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/probes.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/programme.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/__init__.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/adopted_ci.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/agent_settings.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/agents.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/aws_docs.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/azure_docs.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/backing_service_prose.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/backing_services.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/biome.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/ci_services.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/ci_workflows.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/compose.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/composition.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/constitution_journey.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/converge_stage.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/convergence_page.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_agents.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_hand.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_record.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_seat.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_stops.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_told.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/cruise_unblock.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/decisions.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/demo_stop.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/deploy_workflow.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/design_page.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/docs_index.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/drive_adoption.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/drive_settings.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/entry_stores.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/event_model.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/evolving.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/existing.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/flag_route.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/flags.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/frontend.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/gitignore.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/guidance.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/infra.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/init_production.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/init_script.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/integration.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/__init__.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/go.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java_quarkus.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/java_spring.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/python.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/languages/typescript.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/metadata.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/model_targets.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/model_to_code.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/mutation.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/native_commands.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/openapi.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/parallel_slices.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/pin_commands.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/pins.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/production.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/provisioning.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/read_side_layouts.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/readme.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/renovate.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/repository.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/rules.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/run_skill.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/service_layouts.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/shared_packages.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/skills_page.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/stage_models.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/strangle_command.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/structure_page.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/target_docs.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/whats_next.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/project/where_are_we.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/quick_wins.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/replay.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/scaffold.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/selection.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/services.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/structure.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/survey.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/targets.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/tooling.py +0 -0
- {slipwai-1.3.0.dev8 → slipwai-1.3.0.dev32}/src/slipwai/upgrade.py +0 -0
- {slipwai-1.3.0.dev8 → 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"):
|
|
@@ -12,7 +12,7 @@ slice loop, `specs/<feature>/benchmark.json`. `/drive` opens an entry before a s
|
|
|
12
12
|
python3 scripts/agents/benchmark.py overview [shop] # writes specs/<feature>/benchmark.md; `/benchmark`
|
|
13
13
|
python3 scripts/agents/benchmark.py --json
|
|
14
14
|
python3 scripts/agents/benchmark.py cut-off "<why>" # close what an iteration left open; the runner's
|
|
15
|
-
python3 scripts/agents/benchmark.py check #
|
|
15
|
+
python3 scripts/agents/benchmark.py check # warns: anything open, a done slice unrecorded
|
|
16
16
|
|
|
17
17
|
Everything that a transcript, `tasks.md`, git or the record itself can say is read from there, never asked:
|
|
18
18
|
wall time; the agent type each delegate ran as, where the transcript attributes one; tokens by model, from the
|
|
@@ -605,33 +605,55 @@ def cut_off(reason: str) -> None:
|
|
|
605
605
|
save(path.parent, record)
|
|
606
606
|
|
|
607
607
|
|
|
608
|
-
def
|
|
609
|
-
"""
|
|
610
|
-
`
|
|
611
|
-
|
|
612
|
-
register = feature / "slices/README.md"
|
|
613
|
-
if register.is_file():
|
|
614
|
-
for line in register.read_text().splitlines():
|
|
615
|
-
if not line.strip().startswith("|"):
|
|
616
|
-
continue
|
|
617
|
-
first = line.strip().strip("|").split("|")[0].strip().strip("`")
|
|
618
|
-
found = re.match(r"([A-Za-z]+\d+)\b", first)
|
|
619
|
-
if found:
|
|
620
|
-
done.add(found.group(1))
|
|
608
|
+
def implemented() -> list[tuple[str, str | None]]:
|
|
609
|
+
"""Every slice `docs/event-model/model.yaml` marks `status: implemented`, with the feature it names: the
|
|
610
|
+
`specs/<feature>/` its `spec` or `gwt` path is under, or None where it names none. The model is the whole
|
|
611
|
+
project's, so a slice in it belongs to one feature, not to every feature that asks."""
|
|
621
612
|
model = ROOT / "docs/event-model/model.yaml"
|
|
613
|
+
found: list[tuple[str, str | None]] = []
|
|
622
614
|
if model.is_file():
|
|
623
615
|
for block in re.split(r"^\s*- id:\s*", model.read_text(), flags=re.M)[1:]:
|
|
624
616
|
ident = block.split("\n", 1)[0].strip().strip("'\"")
|
|
625
617
|
if ident and re.search(r"^\s*status:\s*implemented\s*$", block, re.M):
|
|
626
|
-
|
|
618
|
+
named = re.search(r"^\s*(?:spec|gwt):\s*['\"]?specs/([^/\s'\"]+)/", block, re.M)
|
|
619
|
+
found.append((ident, named.group(1) if named else None))
|
|
620
|
+
return found
|
|
621
|
+
|
|
622
|
+
|
|
623
|
+
def done_slices(feature: Path) -> set[str]:
|
|
624
|
+
"""The slices this feature has finished, as the ladder marks them (`commands/drive.md`, *Ready-set selection*):
|
|
625
|
+
a row in its register at `slices/README.md`, or `status: implemented` in the event model on a slice that names
|
|
626
|
+
this feature, or names none and has its folder at `slices/<id>/` here."""
|
|
627
|
+
done: set[str] = set()
|
|
628
|
+
register = feature / "slices/README.md"
|
|
629
|
+
if register.is_file():
|
|
630
|
+
for line in register.read_text().splitlines():
|
|
631
|
+
if line.strip().startswith("|"):
|
|
632
|
+
first = line.strip().strip("|").split("|")[0].strip().strip("`")
|
|
633
|
+
found = re.match(r"([A-Za-z]+\d+)\b", first)
|
|
634
|
+
if found:
|
|
635
|
+
done.add(found.group(1))
|
|
636
|
+
for ident, named in implemented():
|
|
637
|
+
if named == feature.name or (named is None and (feature / "slices" / ident).is_dir()):
|
|
638
|
+
done.add(ident)
|
|
627
639
|
return done
|
|
628
640
|
|
|
629
641
|
|
|
642
|
+
def unowned() -> list[str]:
|
|
643
|
+
"""Implemented slices no feature holds: the model names no feature for them and no `specs/*/slices/<id>/`
|
|
644
|
+
exists. Not charged to any feature — said, so the model can be given its `spec` or the id corrected."""
|
|
645
|
+
features = [path for path in (ROOT / "specs").iterdir() if path.is_dir()] if (ROOT / "specs").is_dir() else []
|
|
646
|
+
return sorted(ident for ident, named in implemented()
|
|
647
|
+
if named is None and not any((feature / "slices" / ident).is_dir() for feature in features))
|
|
648
|
+
|
|
649
|
+
|
|
630
650
|
def check() -> list[str]:
|
|
631
|
-
"""What
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
findings = [
|
|
651
|
+
"""What `check-benchmark` warns of: an entry left open, a slice the ladder calls done with no record or an
|
|
652
|
+
unclosed one, a feature with done slices and no record above the slice loop, and an implemented slice in the
|
|
653
|
+
model that no feature holds — because a delivered slice with no benchmark cannot say what it cost."""
|
|
654
|
+
findings = [f"docs/event-model/model.yaml: {ident} is implemented but names no feature (`spec`/`gwt` under "
|
|
655
|
+
"specs/<feature>/) and has no specs/*/slices/ folder, so no feature's record is asked for it"
|
|
656
|
+
for ident in unowned()]
|
|
635
657
|
for path, record in records():
|
|
636
658
|
for entry in record.get("stages", []):
|
|
637
659
|
if "ended" not in entry:
|
|
@@ -959,10 +981,14 @@ def main() -> None:
|
|
|
959
981
|
cut_off(" ".join(rest))
|
|
960
982
|
return
|
|
961
983
|
if command == "check":
|
|
984
|
+
# A warning, never a failure: the brackets can only be taken at the time, so a slice finished without
|
|
985
|
+
# one can never be made to pass honestly, and a gate that nothing true satisfies stops every push.
|
|
962
986
|
findings = check()
|
|
963
987
|
if findings:
|
|
964
|
-
print("\n".join(f"check-benchmark: {finding}" for finding in findings), file=sys.stderr)
|
|
965
|
-
|
|
988
|
+
print("\n".join(f"check-benchmark: warning: {finding}" for finding in findings), file=sys.stderr)
|
|
989
|
+
print(f"check-benchmark: {len(findings)} warning(s) above — what was not measured stays unmeasured; "
|
|
990
|
+
"not failing verify")
|
|
991
|
+
return
|
|
966
992
|
held = records()
|
|
967
993
|
print(f"check-benchmark: {len(held)} record(s), nothing open, every done slice recorded and closed"
|
|
968
994
|
if held else "check-benchmark: no record and no done slice yet — nothing to hold")
|
|
@@ -92,19 +92,48 @@ def adopted() -> bool:
|
|
|
92
92
|
return False
|
|
93
93
|
|
|
94
94
|
|
|
95
|
+
# Why a machine with Node can still have no `npx` on PATH: a hook's shell, and any non-interactive one, sources no
|
|
96
|
+
# profile, so a Node that nvm, volta or fnm put there is not found by name.
|
|
97
|
+
NO_ROUTE = ("neither `npx` nor `codegraph` is on PATH, nor under nvm, volta or fnm — a hook's or non-interactive "
|
|
98
|
+
"shell sources no profile, so a Node one of those manages is found only where it keeps its versions")
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
def version_of(directory: Path) -> tuple[int, ...]:
|
|
102
|
+
return tuple(int(part) for part in re.findall(r"\d+", directory.name)[:3])
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
def managed_node() -> Path | None:
|
|
106
|
+
"""The `bin/` holding `npx` of the newest Node that nvm, volta or fnm installed, or None where none did."""
|
|
107
|
+
home = Path.home()
|
|
108
|
+
nvm = Path(os.environ.get("NVM_DIR") or home / ".nvm") / "versions/node"
|
|
109
|
+
fnm = [Path(os.environ["FNM_DIR"])] if os.environ.get("FNM_DIR") else []
|
|
110
|
+
fnm += [home / ".local/share/fnm", home / "Library/Application Support/fnm", home / ".fnm"]
|
|
111
|
+
candidates = sorted(nvm.glob("*/bin"), key=lambda found: version_of(found.parent), reverse=True)
|
|
112
|
+
candidates.append(Path(os.environ.get("VOLTA_HOME") or home / ".volta") / "bin")
|
|
113
|
+
for root in fnm:
|
|
114
|
+
candidates += sorted((root / "node-versions").glob("*/installation/bin"),
|
|
115
|
+
key=lambda found: version_of(found.parent.parent), reverse=True)
|
|
116
|
+
return next((found for found in candidates if (found / "npx").is_file()), None)
|
|
117
|
+
|
|
118
|
+
|
|
95
119
|
def route() -> list[str] | None:
|
|
96
|
-
"""How to run the pinned CLI: through `npx` where Node is, or an installed `codegraph` where it is not.
|
|
120
|
+
"""How to run the pinned CLI: through `npx` where Node is, or an installed `codegraph` where it is not. A Node
|
|
121
|
+
that nvm, volta or fnm manages counts: its `bin/` goes on this process's PATH, so `npx` finds its `node`."""
|
|
97
122
|
if shutil.which("npx"):
|
|
98
123
|
return ["npx", "-y", CODEGRAPH]
|
|
99
124
|
if shutil.which("codegraph"):
|
|
100
125
|
return ["codegraph"]
|
|
101
|
-
|
|
126
|
+
found = managed_node()
|
|
127
|
+
if found is None:
|
|
128
|
+
return None
|
|
129
|
+
os.environ["PATH"] = f"{found}{os.pathsep}{os.environ.get('PATH', '')}"
|
|
130
|
+
return ["npx", "-y", CODEGRAPH]
|
|
102
131
|
|
|
103
132
|
|
|
104
133
|
def cli(*arguments: str, seconds: int = SYNC_SECONDS) -> tuple[bool, str]:
|
|
105
134
|
command = route()
|
|
106
135
|
if command is None:
|
|
107
|
-
return False,
|
|
136
|
+
return False, NO_ROUTE
|
|
108
137
|
try:
|
|
109
138
|
done = subprocess.run([*command, *arguments], cwd=ROOT, text=True, capture_output=True, timeout=seconds,
|
|
110
139
|
stdin=subprocess.DEVNULL, env={**os.environ, "CODEGRAPH_NO_UPDATE_CHECK": "1"})
|
|
@@ -116,13 +145,30 @@ def cli(*arguments: str, seconds: int = SYNC_SECONDS) -> tuple[bool, str]:
|
|
|
116
145
|
return done.returncode == 0, said[-1].strip("│└● ").strip() if said else ""
|
|
117
146
|
|
|
118
147
|
|
|
148
|
+
class Unopened(Exception):
|
|
149
|
+
"""The database could not be opened to be checked at all — which says nothing about whether it is sound."""
|
|
150
|
+
|
|
151
|
+
|
|
119
152
|
def damage() -> str | None:
|
|
120
|
-
"""Why the database cannot be trusted —
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
153
|
+
"""Why the database cannot be trusted — SQLite's integrity check fails, or the file is not a database — or None.
|
|
154
|
+
Raises `Unopened` when no read-only open succeeds: that is the environment, not the index.
|
|
155
|
+
|
|
156
|
+
A WAL database left with no `-shm` beside it — how CodeGraph leaves one once its daemon exits — is refused by
|
|
157
|
+
some SQLite builds on a plain read-only open (macOS's system Python: "unable to open database file"), and by any
|
|
158
|
+
build where the directory is not writable. `immutable=1` reads it without the `-shm`, so the check tries that
|
|
159
|
+
before it concludes anything; an open failure alone never has a sound database moved aside."""
|
|
160
|
+
refused: list[str] = []
|
|
161
|
+
for mode in ("mode=ro", "immutable=1"):
|
|
162
|
+
try:
|
|
163
|
+
with sqlite3.connect(f"{DATABASE.as_uri()}?{mode}", uri=True) as connection:
|
|
164
|
+
verdict = connection.execute("PRAGMA integrity_check").fetchone()
|
|
165
|
+
break
|
|
166
|
+
except sqlite3.OperationalError as error: # cannot open, cannot lock, read-only: no reading of the file
|
|
167
|
+
refused.append(f"{mode}: {error}")
|
|
168
|
+
except sqlite3.Error as error: # the file was read, and it is not a sound database
|
|
169
|
+
return str(error)
|
|
170
|
+
else:
|
|
171
|
+
raise Unopened("; ".join(refused))
|
|
126
172
|
if verdict and verdict[0] == "ok":
|
|
127
173
|
return None
|
|
128
174
|
# SQLite reports every damaged cell on its own line; the first says what kind of damage, the count how much.
|
|
@@ -160,6 +206,14 @@ def set_aside() -> str:
|
|
|
160
206
|
return (ASIDE.relative_to(ROOT)).as_posix()
|
|
161
207
|
|
|
162
208
|
|
|
209
|
+
def checked() -> str | Unopened | None:
|
|
210
|
+
"""`damage()`, with an open failure returned rather than raised."""
|
|
211
|
+
try:
|
|
212
|
+
return damage()
|
|
213
|
+
except Unopened as error:
|
|
214
|
+
return error
|
|
215
|
+
|
|
216
|
+
|
|
163
217
|
def health() -> dict[str, Any]:
|
|
164
218
|
"""Make the index one an iteration can query, and say what that took: `current`, `synced`, `built`, `rebuilt`,
|
|
165
219
|
`unreachable` (no route to the CLI) or `failed` (the step ran and the index is still not right). Nothing where
|
|
@@ -169,14 +223,16 @@ def health() -> dict[str, Any]:
|
|
|
169
223
|
began = time.monotonic()
|
|
170
224
|
result: dict[str, Any] = {}
|
|
171
225
|
if route() is None:
|
|
172
|
-
result = {"state": "unreachable", "detail": "
|
|
173
|
-
"maintain or query the index"}
|
|
226
|
+
result = {"state": "unreachable", "detail": f"{NO_ROUTE}; so nothing can maintain or query the index"}
|
|
174
227
|
elif not DATABASE.is_file():
|
|
175
228
|
done, said = cli("init", "-y", ".", seconds=BUILD_SECONDS)
|
|
176
229
|
result = {"state": "built", "detail": "there was no database; built it with `codegraph init`"}
|
|
177
230
|
if not done:
|
|
178
231
|
result = {"state": "failed", "detail": f"no database, and `codegraph init` failed: {said}"}
|
|
179
|
-
elif (problem :=
|
|
232
|
+
elif isinstance(problem := checked(), Unopened):
|
|
233
|
+
result = {"state": "failed", "detail": f"the database could not be opened to be checked ({problem}); left "
|
|
234
|
+
"it where it is, since an open failure says nothing about the index"}
|
|
235
|
+
elif problem is not None:
|
|
180
236
|
where = set_aside()
|
|
181
237
|
done, said = cli("init", "-y", ".", seconds=BUILD_SECONDS)
|
|
182
238
|
result = {"state": "rebuilt", "detail": f"the database failed its integrity check ({problem}); moved it "
|
|
@@ -195,7 +251,7 @@ def health() -> dict[str, Any]:
|
|
|
195
251
|
else:
|
|
196
252
|
result = {"state": "current", "detail": "opens, passes its integrity check, and describes the tree"}
|
|
197
253
|
if result["state"] in ("built", "rebuilt", "synced"):
|
|
198
|
-
problem, stale = (
|
|
254
|
+
problem, stale = (checked() if DATABASE.is_file() else "no database was written"), None
|
|
199
255
|
if problem is None:
|
|
200
256
|
stale = behind()
|
|
201
257
|
if problem is not None or stale:
|
|
@@ -212,13 +268,16 @@ def symbols(names: list[str]) -> set[str]:
|
|
|
212
268
|
"""Which of these names the index holds a definition of."""
|
|
213
269
|
if not names or not DATABASE.is_file():
|
|
214
270
|
return set()
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
271
|
+
marks = ",".join("?" * len(names))
|
|
272
|
+
for mode in ("mode=ro", "immutable=1"): # the second for a WAL database with no `-shm`, as `damage()` says
|
|
273
|
+
try:
|
|
274
|
+
with sqlite3.connect(f"{DATABASE.as_uri()}?{mode}", uri=True) as connection:
|
|
275
|
+
return {row[0] for row in connection.execute(
|
|
276
|
+
f"SELECT DISTINCT name FROM nodes WHERE kind NOT IN ('file', 'import') AND name IN ({marks})",
|
|
277
|
+
names)}
|
|
278
|
+
except sqlite3.Error:
|
|
279
|
+
continue
|
|
280
|
+
return set()
|
|
222
281
|
|
|
223
282
|
|
|
224
283
|
def symbol_of(pattern: str) -> str | None:
|
|
@@ -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)
|
|
@@ -190,7 +199,13 @@ def main() -> int:
|
|
|
190
199
|
"check")
|
|
191
200
|
return 0
|
|
192
201
|
tooling = code_index()
|
|
193
|
-
|
|
202
|
+
try:
|
|
203
|
+
problem = tooling.damage()
|
|
204
|
+
except tooling.Unopened as error:
|
|
205
|
+
print(f"check-codegraph: .codegraph/codegraph.db could not be opened to be checked ({error}). That is "
|
|
206
|
+
"this environment's SQLite or the directory's permissions, not damage, so the database was left "
|
|
207
|
+
"alone; `codegraph status` says whether the index itself is current", file=sys.stderr)
|
|
208
|
+
return 1
|
|
194
209
|
repairing = os.environ.get("CODEGRAPH_GATE_NO_SYNC") != "1" and tooling.route() is not None
|
|
195
210
|
repaired = ""
|
|
196
211
|
if problem is not None and repairing:
|
|
@@ -23,7 +23,13 @@ an unwritten row is a pass that has to be run again, and until now nothing notic
|
|
|
23
23
|
**Evidence**, **Feedback**; every **Evidence** path exists, beside the log or from the root, or is `none`;
|
|
24
24
|
- every slice the ladder calls done — a row in `specs/<feature>/slices/README.md`, or `status: implemented` in
|
|
25
25
|
`docs/event-model/model.yaml` — has a `## <slice-id> · …` row in `specs/<feature>/adversary-log.md`: the attack,
|
|
26
|
-
or the recorded skip, that `/adversary` writes after every acceptance.
|
|
26
|
+
or the recorded skip, that `/adversary` writes after every acceptance. The model is the whole project's, so a
|
|
27
|
+
slice in it counts for the feature its `spec` or `gwt` path is under, or, naming none, the one holding
|
|
28
|
+
`slices/<id>/`; an implemented slice no feature holds is noted, not charged to every feature.
|
|
29
|
+
|
|
30
|
+
`python3 scripts/check-decisions.py --adversary-baseline` is for a project that migrated across that last rule: it
|
|
31
|
+
writes, once, a `## <id> · predates the adversary gate · <date>` row for every done slice without one, which the gate accepts
|
|
32
|
+
and which says the slice was never attacked. A second baseline is refused.
|
|
27
33
|
|
|
28
34
|
A project with no record anywhere passes and says so: the gate runs in `make verify` from the first commit.
|
|
29
35
|
"""
|
|
@@ -32,6 +38,7 @@ from __future__ import annotations
|
|
|
32
38
|
|
|
33
39
|
import re
|
|
34
40
|
import sys
|
|
41
|
+
from datetime import date
|
|
35
42
|
from pathlib import Path
|
|
36
43
|
|
|
37
44
|
|
|
@@ -149,8 +156,25 @@ def check_demo_log(path: Path) -> list[str]:
|
|
|
149
156
|
return findings
|
|
150
157
|
|
|
151
158
|
|
|
159
|
+
def implemented() -> list[tuple[str, str | None]]:
|
|
160
|
+
"""Every slice `docs/event-model/model.yaml` marks `status: implemented`, with the feature it names: the
|
|
161
|
+
`specs/<feature>/` its `spec` or `gwt` path is under, or None where it names none. The model is the whole
|
|
162
|
+
project's, so a slice in it belongs to one feature, not to every feature that asks."""
|
|
163
|
+
model = ROOT / "docs/event-model/model.yaml"
|
|
164
|
+
found: list[tuple[str, str | None]] = []
|
|
165
|
+
if model.is_file():
|
|
166
|
+
for block in re.split(r"^\s*- id:\s*", model.read_text(), flags=re.M)[1:]:
|
|
167
|
+
ident = block.split("\n", 1)[0].strip().strip("'\"")
|
|
168
|
+
if ident and re.search(r"^\s*status:\s*implemented\s*$", block, re.M):
|
|
169
|
+
named = re.search(r"^\s*(?:spec|gwt):\s*['\"]?specs/([^/\s'\"]+)/", block, re.M)
|
|
170
|
+
found.append((ident, named.group(1) if named else None))
|
|
171
|
+
return found
|
|
172
|
+
|
|
173
|
+
|
|
152
174
|
def done_slices(feature: Path) -> set[str]:
|
|
153
|
-
"""The slices this feature has finished, as the ladder marks them (`commands/drive.md`, *Ready-set selection*)
|
|
175
|
+
"""The slices this feature has finished, as the ladder marks them (`commands/drive.md`, *Ready-set selection*):
|
|
176
|
+
a row in its register at `slices/README.md`, or `status: implemented` in the event model on a slice that names
|
|
177
|
+
this feature, or names none and has its folder at `slices/<id>/` here."""
|
|
154
178
|
done: set[str] = set()
|
|
155
179
|
register = feature / "slices/README.md"
|
|
156
180
|
if register.is_file():
|
|
@@ -160,15 +184,20 @@ def done_slices(feature: Path) -> set[str]:
|
|
|
160
184
|
found = re.match(r"([A-Za-z]+\d+)\b", first)
|
|
161
185
|
if found:
|
|
162
186
|
done.add(found.group(1))
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
ident = block.split("\n", 1)[0].strip().strip("'\"")
|
|
167
|
-
if ident and re.search(r"^\s*status:\s*implemented\s*$", block, re.M):
|
|
168
|
-
done.add(ident)
|
|
187
|
+
for ident, named in implemented():
|
|
188
|
+
if named == feature.name or (named is None and (feature / "slices" / ident).is_dir()):
|
|
189
|
+
done.add(ident)
|
|
169
190
|
return done
|
|
170
191
|
|
|
171
192
|
|
|
193
|
+
def unowned() -> list[str]:
|
|
194
|
+
"""Implemented slices no feature holds: the model names no feature for them and no `specs/*/slices/<id>/`
|
|
195
|
+
exists. Not charged to any feature — said, so the model can be given its `spec` or the id corrected."""
|
|
196
|
+
features = [path for path in (ROOT / "specs").iterdir() if path.is_dir()] if (ROOT / "specs").is_dir() else []
|
|
197
|
+
return sorted(ident for ident, named in implemented()
|
|
198
|
+
if named is None and not any((feature / "slices" / ident).is_dir() for feature in features))
|
|
199
|
+
|
|
200
|
+
|
|
172
201
|
def check_adversary_rows() -> list[str]:
|
|
173
202
|
"""A finished slice with no row in the adversary log was never attacked and never recorded as skipped."""
|
|
174
203
|
findings: list[str] = []
|
|
@@ -185,7 +214,47 @@ def check_adversary_rows() -> list[str]:
|
|
|
185
214
|
return findings
|
|
186
215
|
|
|
187
216
|
|
|
217
|
+
PREDATES = "predates the adversary gate"
|
|
218
|
+
|
|
219
|
+
|
|
220
|
+
def baseline() -> int:
|
|
221
|
+
"""Write, once, a row for every done slice the adversary log lacks, saying it was finished before this gate held
|
|
222
|
+
finished slices to the log — which is true, and which no later slice may cite as an attack. For a project that
|
|
223
|
+
migrated across the gate, whose history cannot be attacked honestly after the fact; refused where any log
|
|
224
|
+
already carries a baseline row, so it is the done set at one moment and not a way past the gate afterwards."""
|
|
225
|
+
logs = sorted(SPECS.glob(f"*/{ADVERSARY_LOG}")) if SPECS.is_dir() else []
|
|
226
|
+
taken = [log for log in logs if f"· {PREDATES}" in log.read_text()]
|
|
227
|
+
if taken:
|
|
228
|
+
print(f"check-decisions: a baseline was already taken ({taken[0].relative_to(ROOT).as_posix()}); a slice "
|
|
229
|
+
"finished since is held to a row `/adversary` writes", file=sys.stderr)
|
|
230
|
+
return 1
|
|
231
|
+
written = 0
|
|
232
|
+
today = date.today().isoformat()
|
|
233
|
+
for feature in sorted(SPECS.iterdir()) if SPECS.is_dir() else []:
|
|
234
|
+
if not (feature / "slices").is_dir():
|
|
235
|
+
continue
|
|
236
|
+
log = feature / ADVERSARY_LOG
|
|
237
|
+
text = log.read_text() if log.is_file() else f"# Adversary log — {feature.name}\n"
|
|
238
|
+
missing = sorted(done_slices(feature) - set(re.findall(r"^## (\S+) · ", text, re.M)))
|
|
239
|
+
if not missing:
|
|
240
|
+
continue
|
|
241
|
+
rows = "".join(f"\n## {ident} · {PREDATES} · {today}\n\nFinished before `check-decisions` held every done "
|
|
242
|
+
"slice to a row here. Never attacked by `/adversary`, so no slice may cite this row as "
|
|
243
|
+
"coverage.\n" for ident in missing)
|
|
244
|
+
log.write_text(text.rstrip("\n") + "\n" + rows)
|
|
245
|
+
written += len(missing)
|
|
246
|
+
print(f"check-decisions: {log.relative_to(ROOT).as_posix()}: {len(missing)} baseline row(s)")
|
|
247
|
+
print(f"check-decisions: baselined {written} done slice(s)" if written
|
|
248
|
+
else "check-decisions: every done slice already has a row — nothing to baseline")
|
|
249
|
+
return 0
|
|
250
|
+
|
|
251
|
+
|
|
188
252
|
def main() -> int:
|
|
253
|
+
if sys.argv[1:] == ["--adversary-baseline"]:
|
|
254
|
+
return baseline()
|
|
255
|
+
for ident in unowned():
|
|
256
|
+
print(f"check-decisions: note: {ident} is implemented in docs/event-model/model.yaml but names no feature "
|
|
257
|
+
"and has no specs/*/slices/ folder, so no adversary log is asked for it")
|
|
189
258
|
decisions = sorted(SPECS.glob(f"*/{DECISIONS}")) if SPECS.is_dir() else []
|
|
190
259
|
logs = sorted(SPECS.glob(f"*/slices/*/{DEMO_LOG}")) if SPECS.is_dir() else []
|
|
191
260
|
findings: list[str] = check_adversary_rows()
|
|
@@ -47,8 +47,8 @@ import sys
|
|
|
47
47
|
import tempfile
|
|
48
48
|
import threading
|
|
49
49
|
from concurrent.futures import ThreadPoolExecutor
|
|
50
|
-
from dataclasses import dataclass
|
|
51
50
|
from pathlib import Path
|
|
51
|
+
from typing import NamedTuple
|
|
52
52
|
|
|
53
53
|
KEY = "ux-gates"
|
|
54
54
|
KIT = "tools/ux-gates"
|
|
@@ -156,9 +156,10 @@ def say(line: str) -> None:
|
|
|
156
156
|
print(line, flush=True)
|
|
157
157
|
|
|
158
158
|
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
159
|
+
class Gate(NamedTuple):
|
|
160
|
+
"""One run of one kit script: over an app's `src/`, its `screens/` directory, or one preview in it. A tuple
|
|
161
|
+
rather than a dataclass, which looks its module up in `sys.modules`: a project's test that loads this file with
|
|
162
|
+
`importlib` and does not register it there would crash on the class instead of testing it."""
|
|
162
163
|
|
|
163
164
|
app: Path
|
|
164
165
|
script: str
|
|
@@ -340,7 +341,8 @@ def main() -> int:
|
|
|
340
341
|
if spec:
|
|
341
342
|
sharded = shard(gates, spec)
|
|
342
343
|
if sharded is None:
|
|
343
|
-
say(f"check-ux-gates: UX_GATES_SHARD={spec} is not k/n with 1 <= k <= n — FAILING rather than guessing"
|
|
344
|
+
say(f"check-ux-gates: UX_GATES_SHARD={spec} is not k/n with 1 <= k <= n — FAILING rather than guessing; "
|
|
345
|
+
"leave it unset to run every gate")
|
|
344
346
|
return 1
|
|
345
347
|
gates = sharded
|
|
346
348
|
say(f"check-ux-gates: shard {spec} — {len(gates)} of {whole} gate(s)")
|
|
@@ -17,12 +17,12 @@ from pathlib import Path
|
|
|
17
17
|
|
|
18
18
|
sys.dont_write_bytecode = True
|
|
19
19
|
sys.path.insert(0, str(Path(__file__).resolve().parent / "agents"))
|
|
20
|
-
from code_index import ROOT, route # noqa: E402
|
|
20
|
+
from code_index import NO_ROUTE, ROOT, route # noqa: E402
|
|
21
21
|
|
|
22
22
|
command = route()
|
|
23
23
|
if command is None:
|
|
24
|
-
sys.exit("scripts/codegraph:
|
|
25
|
-
"
|
|
24
|
+
sys.exit(f"scripts/codegraph: {NO_ROUTE}. The index cannot be asked here; install Node (or put the one you have "
|
|
25
|
+
"on PATH), and say that the answer you give instead is a text search")
|
|
26
26
|
os.chdir(ROOT)
|
|
27
27
|
os.environ.setdefault("CODEGRAPH_NO_UPDATE_CHECK", "1")
|
|
28
28
|
os.execvp(command[0], [*command, *sys.argv[1:]])
|