slipwai 1.2.0.dev44__tar.gz → 1.2.0.dev46__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.
Files changed (1333) hide show
  1. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/PKG-INFO +2 -1
  2. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/README.md +1 -0
  3. slipwai-1.2.0.dev46/VERSION +1 -0
  4. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/cruise.py +212 -19
  5. slipwai-1.2.0.dev46/changelog.d/cruise-tell.md +18 -0
  6. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/agent_targets.py +3 -1
  7. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/commands.py +3 -2
  8. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise.py +5 -4
  9. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_record.py +4 -0
  10. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_seat.py +35 -3
  11. slipwai-1.2.0.dev46/src/slipwai/project/cruise_told.py +41 -0
  12. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/gitignore.py +14 -2
  13. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/readme.py +1 -1
  14. slipwai-1.2.0.dev44/VERSION +0 -1
  15. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/.gitignore +0 -0
  16. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/CHANGELOG.md +0 -0
  17. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/LICENSE +0 -0
  18. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/NOTICE +0 -0
  19. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/README.md +0 -0
  20. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/docs/change-strategy.md +0 -0
  21. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/scripts/check-convergence.py +0 -0
  22. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/scripts/ratchet.py +0 -0
  23. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/support.json +0 -0
  24. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
  25. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
  26. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/wrappers/gradle/gradlew +0 -0
  27. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
  28. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
  29. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/docker-compose.yml +0 -0
  30. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/env.example +0 -0
  31. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
  32. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
  33. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
  34. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
  35. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
  36. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
  37. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
  38. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/config.go +0 -0
  39. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/config_test.go +0 -0
  40. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_contract.go +0 -0
  41. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_memory.go +0 -0
  42. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_memory_test.go +0 -0
  43. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_postgres.go +0 -0
  44. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
  45. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_sqlite.go +0 -0
  46. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
  47. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/events.go +0 -0
  48. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/http_app.go +0 -0
  49. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/http_app_test.go +0 -0
  50. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/http_openapi_test.go +0 -0
  51. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/http_security.go +0 -0
  52. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/http_security_test.go +0 -0
  53. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/migrate_main.go +0 -0
  54. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/migrate_main_test.go +0 -0
  55. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/migrations_embed.go +0 -0
  56. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/migrations_keep +0 -0
  57. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/oidc_keycloak.go +0 -0
  58. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
  59. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/openapi.yaml +0 -0
  60. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/projections.go +0 -0
  61. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/projections_test.go +0 -0
  62. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/projections_ticker.go +0 -0
  63. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/projections_ticker_test.go +0 -0
  64. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/read_models.go +0 -0
  65. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/serve_main.go +0 -0
  66. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/tracing.go +0 -0
  67. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/tracing_test.go +0 -0
  68. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
  69. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
  70. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/actor.java +0 -0
  71. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/append_result.java +0 -0
  72. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/causation_id.java +0 -0
  73. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
  74. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
  75. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
  76. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/committed_event.java +0 -0
  77. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/condition.java +0 -0
  78. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/conditional_append_result.java +0 -0
  79. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/correlation_id.java +0 -0
  80. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/database_url.java +0 -0
  81. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/domain_event.java +0 -0
  82. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store.java +0 -0
  83. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store_exception.java +0 -0
  84. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store_memory.java +0 -0
  85. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store_memory_database.java +0 -0
  86. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store_postgres.java +0 -0
  87. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_store_sqlite.java +0 -0
  88. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/event_visitor.java +0 -0
  89. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/http_schema_failure.java +0 -0
  90. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/migrate_main.java +0 -0
  91. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/oidc_keycloak.java +0 -0
  92. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/projection.java +0 -0
  93. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/projections.java +0 -0
  94. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/read_models.java +0 -0
  95. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tag_query.java +0 -0
  96. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tagged_read.java +0 -0
  97. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tags_of.java +0 -0
  98. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
  99. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
  100. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
  101. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/database_url_test.java +0 -0
  102. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/event_store_contract.java +0 -0
  103. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
  104. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
  105. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
  106. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/projections_test.java +0 -0
  107. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
  108. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/transactions.java +0 -0
  109. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
  110. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/config_source_registration +0 -0
  111. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
  112. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
  113. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
  114. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
  115. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
  116. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
  117. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
  118. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
  119. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
  120. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
  121. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
  122. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
  123. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
  124. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
  125. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
  126. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
  127. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
  128. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
  129. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/spring_transactions.java +0 -0
  130. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
  131. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
  132. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
  133. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/java-spring/users_security.java +0 -0
  134. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/keycloak/README.md +0 -0
  135. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/keycloak/realms/app.json +0 -0
  136. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/keycloak/realms/customers.json +0 -0
  137. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/prune.py +0 -0
  138. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
  139. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
  140. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
  141. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/event_store_memory.py +0 -0
  142. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/event_store_postgres.py +0 -0
  143. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/event_store_sqlite.py +0 -0
  144. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/events.py +0 -0
  145. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/http_app.py +0 -0
  146. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/logging_setup.py +0 -0
  147. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/main.py +0 -0
  148. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/migrations_apply.py +0 -0
  149. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/oidc_keycloak.py +0 -0
  150. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/openapi-flags.json +0 -0
  151. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/openapi.json +0 -0
  152. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/openapi_export.py +0 -0
  153. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/projections.py +0 -0
  154. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/projections_lifespan.py +0 -0
  155. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/read_models.py +0 -0
  156. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/settings.py +0 -0
  157. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
  158. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/conftest.py +0 -0
  159. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/event_store_contract.py +0 -0
  160. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
  161. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
  162. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
  163. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
  164. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
  165. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
  166. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_http_app.py +0 -0
  167. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
  168. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
  169. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_projections.py +0 -0
  170. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
  171. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_settings.py +0 -0
  172. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_tracing.py +0 -0
  173. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
  174. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/tracing.py +0 -0
  175. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
  176. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/sql/001_events.sql +0 -0
  177. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/sql/002_events_append_only.sql +0 -0
  178. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
  179. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/sql/004_event_tags.sql +0 -0
  180. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
  181. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
  182. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
  183. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/config.ts +0 -0
  184. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/event-store-memory.ts +0 -0
  185. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
  186. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
  187. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/events.ts +0 -0
  188. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/http-app.ts +0 -0
  189. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/main.ts +0 -0
  190. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/migrations/001_events.js +0 -0
  191. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
  192. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
  193. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
  194. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
  195. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/openapi-export.ts +0 -0
  196. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/openapi-flags.json +0 -0
  197. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/openapi.json +0 -0
  198. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/projections-plugin.ts +0 -0
  199. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/projections.ts +0 -0
  200. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/read-models.ts +0 -0
  201. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
  202. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
  203. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
  204. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
  205. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
  206. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
  207. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
  208. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
  209. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
  210. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
  211. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
  212. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
  213. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
  214. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
  215. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/tracing.ts +0 -0
  216. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
  217. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
  218. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/api-client/package.json +0 -0
  219. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
  220. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/index.html +0 -0
  221. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/package.json +0 -0
  222. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/src/App.tsx +0 -0
  223. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/src/main.tsx +0 -0
  224. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
  225. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
  226. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
  227. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
  228. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/tsconfig.json +0 -0
  229. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app/vite.config.ts +0 -0
  230. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
  231. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
  232. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
  233. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
  234. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
  235. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
  236. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
  237. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
  238. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
  239. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
  240. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
  241. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
  242. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
  243. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
  244. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
  245. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
  246. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
  247. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
  248. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
  249. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
  250. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
  251. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
  252. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/app/.gremlins.yaml +0 -0
  253. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/app/application/README.md +0 -0
  254. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/app/domain/README.md +0 -0
  255. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/app/health/health.go +0 -0
  256. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/app/health/health_test.go +0 -0
  257. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
  258. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
  259. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  260. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  261. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  262. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  263. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  264. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
  265. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
  266. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
  267. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  268. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  269. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  270. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  271. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  272. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  273. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  274. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  275. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  276. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  277. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  278. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  279. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  280. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  281. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
  282. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  283. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  284. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  285. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  286. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  287. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  288. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  289. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  290. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
  291. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  292. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  293. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  294. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  295. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  296. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
  297. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
  298. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  299. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  300. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  301. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  302. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  303. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  304. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  305. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  306. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  307. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  308. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
  309. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  310. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
  311. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  312. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
  313. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  314. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  315. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
  316. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
  317. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  318. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
  319. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
  320. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
  321. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  322. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  323. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  324. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  325. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  326. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  327. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
  328. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  329. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  330. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  331. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
  332. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  333. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  334. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  335. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  336. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  337. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  338. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  339. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  340. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  341. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  342. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  343. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  344. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  345. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  346. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  347. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  348. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  349. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  350. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  351. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  352. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  353. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  354. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  355. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  356. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  357. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  358. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  359. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  360. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  361. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  362. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  363. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  364. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  365. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  366. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  367. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  368. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  369. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  370. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  371. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  372. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  373. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  374. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  375. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  376. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  377. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  378. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
  379. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
  380. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
  381. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  382. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
  383. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  384. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  385. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  386. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  387. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  388. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  389. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  390. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  391. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
  392. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
  393. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/factory-composition.md +0 -0
  394. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
  395. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  396. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
  397. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  398. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  399. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
  400. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/flags/flags/flags.go +0 -0
  401. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/flags/flags/flags_test.go +0 -0
  402. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/base/go.mod +0 -0
  403. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/base/go.sum +0 -0
  404. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/postgres/go.mod +0 -0
  405. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/postgres/go.sum +0 -0
  406. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/sqlite/go.mod +0 -0
  407. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/modules/sqlite/go.sum +0 -0
  408. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/scripts/go-coverage.py +0 -0
  409. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/go/scripts/go-mutation.py +0 -0
  410. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/.gitattributes +0 -0
  411. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
  412. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/config/checkstyle.xml +0 -0
  413. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
  414. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
  415. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/mvnw +0 -0
  416. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/build/mvnw.cmd +0 -0
  417. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  418. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  419. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  420. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  421. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  422. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
  423. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
  424. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
  425. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  426. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  427. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  428. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  429. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  430. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  431. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  432. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  433. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  434. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  435. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  436. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  437. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  438. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  439. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
  440. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  441. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  442. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  443. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  444. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  445. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  446. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  447. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  448. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
  449. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  450. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  451. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  452. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  453. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  454. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
  455. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
  456. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  457. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  458. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  459. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  460. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  461. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  462. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  463. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  464. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  465. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  466. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
  467. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  468. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
  469. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  470. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
  471. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  472. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  473. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
  474. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
  475. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  476. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
  477. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
  478. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
  479. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  480. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  481. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  482. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  483. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  484. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  485. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
  486. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  487. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  488. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  489. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
  490. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  491. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  492. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  493. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  494. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  495. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  496. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  497. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  498. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  499. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  500. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  501. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  502. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  503. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  504. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  505. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  506. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  507. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  508. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  509. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  510. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  511. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  512. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  513. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  514. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  515. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  516. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  517. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  518. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  519. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  520. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  521. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  522. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  523. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  524. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  525. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  526. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  527. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  528. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  529. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  530. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  531. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  532. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  533. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  534. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  535. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  536. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
  537. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
  538. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
  539. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  540. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
  541. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  542. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  543. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  544. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  545. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  546. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  547. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  548. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  549. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
  550. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
  551. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/factory-composition.md +0 -0
  552. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
  553. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  554. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
  555. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  556. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  557. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
  558. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
  559. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
  560. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/pom.xml +0 -0
  561. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
  562. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
  563. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
  564. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
  565. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-quarkus/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
  566. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/pom.xml +0 -0
  567. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
  568. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
  569. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
  570. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
  571. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
  572. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/java-spring/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
  573. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/app/pyproject.toml +0 -0
  574. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
  575. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
  576. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
  577. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/app/tests/test_health.py +0 -0
  578. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
  579. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/event-port/tests/test_events.py +0 -0
  580. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  581. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  582. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  583. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  584. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  585. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
  586. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
  587. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
  588. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  589. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  590. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  591. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  592. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  593. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  594. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  595. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  596. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  597. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  598. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  599. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  600. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  601. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  602. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
  603. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  604. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  605. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  606. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  607. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  608. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  609. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  610. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  611. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
  612. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  613. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  614. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  615. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  616. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  617. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
  618. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
  619. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  620. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  621. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  622. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  623. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  624. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  625. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  626. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  627. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  628. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  629. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
  630. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  631. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
  632. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  633. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
  634. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  635. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  636. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
  637. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
  638. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  639. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
  640. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
  641. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
  642. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  643. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  644. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  645. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  646. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  647. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  648. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
  649. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  650. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  651. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  652. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
  653. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  654. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  655. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  656. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  657. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  658. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  659. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  660. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  661. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  662. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  663. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  664. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  665. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  666. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  667. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  668. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  669. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  670. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  671. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  672. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  673. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  674. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  675. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  676. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  677. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  678. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  679. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  680. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  681. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  682. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  683. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  684. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  685. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  686. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  687. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  688. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  689. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  690. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  691. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  692. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  693. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  694. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  695. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  696. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  697. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  698. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  699. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
  700. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
  701. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
  702. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  703. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
  704. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  705. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  706. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  707. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  708. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  709. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  710. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  711. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  712. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
  713. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
  714. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/factory-composition.md +0 -0
  715. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
  716. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  717. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
  718. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  719. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  720. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
  721. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
  722. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/flags/tests/test_flags.py +0 -0
  723. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
  724. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/locks/uv-fastapi.lock +0 -0
  725. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/locks/uv-postgres.lock +0 -0
  726. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/python/locks/uv.lock +0 -0
  727. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/app/package.json +0 -0
  728. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/app/src/application/README.md +0 -0
  729. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/app/src/domain/README.md +0 -0
  730. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/app/src/health.ts +0 -0
  731. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/app/tests/health.test.ts +0 -0
  732. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/biome/biome.jsonc +0 -0
  733. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/biome/domain-purity.grit +0 -0
  734. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  735. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  736. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  737. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  738. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  739. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
  740. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
  741. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
  742. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  743. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  744. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  745. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  746. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  747. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  748. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  749. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  750. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  751. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  752. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  753. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  754. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  755. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  756. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
  757. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  758. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  759. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  760. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  761. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  762. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  763. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  764. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  765. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
  766. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  767. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  768. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  769. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  770. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  771. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
  772. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
  773. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  774. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  775. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  776. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  777. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  778. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  779. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  780. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  781. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  782. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  783. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
  784. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  785. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
  786. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  787. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
  788. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  789. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  790. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
  791. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
  792. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  793. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
  794. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
  795. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
  796. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  797. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  798. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  799. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  800. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  801. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  802. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
  803. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  804. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  805. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  806. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
  807. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  808. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  809. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  810. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  811. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  812. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  813. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  814. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  815. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  816. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  817. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  818. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  819. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  820. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  821. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  822. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  823. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  824. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  825. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  826. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  827. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  828. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  829. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  830. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  831. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  832. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  833. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  834. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  835. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  836. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  837. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  838. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  839. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  840. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  841. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  842. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  843. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  844. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  845. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  846. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  847. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  848. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  849. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  850. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  851. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  852. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  853. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
  854. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
  855. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
  856. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  857. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
  858. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  859. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  860. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  861. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  862. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  863. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  864. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  865. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  866. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
  867. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
  868. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
  869. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
  870. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  871. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
  872. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  873. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  874. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
  875. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/flags/src/flags.ts +0 -0
  876. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
  877. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
  878. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
  879. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
  880. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/languages/typescript/locks/package-lock.json +0 -0
  881. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
  882. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
  883. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
  884. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
  885. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
  886. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/commands/example-map.md +0 -0
  887. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
  888. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/event-modelling/docs/speckit-preset.md +0 -0
  889. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/.specify/presets/.registry +0 -0
  890. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
  891. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
  892. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
  893. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/docs/speckit-preset.md +0 -0
  894. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
  895. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
  896. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
  897. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/README.md +0 -0
  898. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/bootstrap/main.tf +0 -0
  899. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/bootstrap/outputs.tf +0 -0
  900. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/bootstrap/variables.tf +0 -0
  901. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/scripts/bootstrap.py +0 -0
  902. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/scripts/check-flags.py +0 -0
  903. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/scripts/deploy.py +0 -0
  904. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/auth0.tf +0 -0
  905. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/cognito_customers.tf +0 -0
  906. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/cognito_staff.tf +0 -0
  907. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/flags.auto.tfvars +0 -0
  908. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/flags.tf +0 -0
  909. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/frontend.tf +0 -0
  910. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/ingress.tf +0 -0
  911. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/main.tf +0 -0
  912. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/network.tf +0 -0
  913. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/no-auth0.tf +0 -0
  914. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/no-frontend.tf +0 -0
  915. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/outputs.tf +0 -0
  916. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/production.tfvars +0 -0
  917. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/rds.tf +0 -0
  918. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/staging.tfvars +0 -0
  919. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/variables.tf +0 -0
  920. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/aws/service/versions.tf +0 -0
  921. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/README.md +0 -0
  922. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/bootstrap/main.tf +0 -0
  923. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/bootstrap/outputs.tf +0 -0
  924. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/bootstrap/variables.tf +0 -0
  925. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/scripts/bootstrap.py +0 -0
  926. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/scripts/check-flags.py +0 -0
  927. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/scripts/deploy.py +0 -0
  928. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/auth0.tf +0 -0
  929. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/entra_staff.tf +0 -0
  930. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/flags.auto.tfvars +0 -0
  931. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/flags.tf +0 -0
  932. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/frontend.tf +0 -0
  933. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/ingress.tf +0 -0
  934. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/main.tf +0 -0
  935. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/no-auth0.tf +0 -0
  936. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/no-frontend.tf +0 -0
  937. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/outputs.tf +0 -0
  938. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/postgres.tf +0 -0
  939. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/production.tfvars +0 -0
  940. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/staging.tfvars +0 -0
  941. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/variables.tf +0 -0
  942. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/targets/azure/service/versions.tf +0 -0
  943. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/.specify/extensions.yml +0 -0
  944. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
  945. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/agent-harnesses.md +0 -0
  946. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
  947. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/event-model/README.md +0 -0
  948. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/event-model/model.yaml +0 -0
  949. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
  950. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/docs/first-slice.md +0 -0
  951. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/benchmark.py +0 -0
  952. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/drive.py +0 -0
  953. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/models.py +0 -0
  954. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/project.py +0 -0
  955. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/agents/registry.json +0 -0
  956. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-codegraph.py +0 -0
  957. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-constitution.py +0 -0
  958. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-decisions.py +0 -0
  959. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-imports.py +0 -0
  960. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-migrations.py +0 -0
  961. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-slice-scope.py +0 -0
  962. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-speckit.py +0 -0
  963. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-styles.py +0 -0
  964. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/check-ux-gates.py +0 -0
  965. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
  966. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
  967. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/check.py +0 -0
  968. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/check.ts +0 -0
  969. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
  970. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
  971. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
  972. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
  973. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/model.ts +0 -0
  974. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/package.json +0 -0
  975. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/page.ts +0 -0
  976. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/palette.ts +0 -0
  977. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
  978. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/readme.ts +0 -0
  979. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
  980. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/render.ts +0 -0
  981. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
  982. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/validate.ts +0 -0
  983. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
  984. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
  985. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/guidance.py +0 -0
  986. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/menu.py +0 -0
  987. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/project.py +0 -0
  988. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
  989. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/extensions/ux-gates/init.py +0 -0
  990. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/scripts/test_benchmark.py +0 -0
  991. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/LICENSE +0 -0
  992. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/REFERENCES.md +0 -0
  993. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
  994. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
  995. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
  996. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
  997. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
  998. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
  999. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/LICENSE +0 -0
  1000. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/SKILL.md +0 -0
  1001. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
  1002. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
  1003. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
  1004. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
  1005. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
  1006. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
  1007. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
  1008. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
  1009. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
  1010. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
  1011. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
  1012. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
  1013. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
  1014. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
  1015. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
  1016. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
  1017. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
  1018. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
  1019. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
  1020. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
  1021. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
  1022. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
  1023. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
  1024. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
  1025. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
  1026. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/LICENSE +0 -0
  1027. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
  1028. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
  1029. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
  1030. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
  1031. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
  1032. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
  1033. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
  1034. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
  1035. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
  1036. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
  1037. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
  1038. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
  1039. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/debugging/SKILL.md +0 -0
  1040. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
  1041. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
  1042. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/diagrams/NOTICE +0 -0
  1043. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
  1044. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
  1045. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
  1046. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
  1047. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
  1048. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
  1049. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
  1050. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
  1051. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
  1052. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
  1053. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
  1054. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/double-check/SKILL.md +0 -0
  1055. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
  1056. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
  1057. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
  1058. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
  1059. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
  1060. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
  1061. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
  1062. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
  1063. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
  1064. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
  1065. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
  1066. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
  1067. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
  1068. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
  1069. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
  1070. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
  1071. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
  1072. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
  1073. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
  1074. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
  1075. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
  1076. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/expectations/SKILL.md +0 -0
  1077. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
  1078. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/find-skills/LICENSE +0 -0
  1079. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
  1080. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
  1081. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
  1082. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
  1083. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
  1084. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
  1085. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
  1086. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
  1087. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
  1088. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
  1089. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
  1090. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
  1091. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
  1092. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
  1093. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
  1094. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
  1095. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/functional/SKILL.md +0 -0
  1096. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
  1097. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
  1098. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
  1099. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
  1100. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
  1101. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
  1102. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
  1103. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
  1104. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
  1105. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
  1106. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
  1107. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
  1108. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
  1109. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
  1110. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
  1111. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
  1112. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
  1113. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
  1114. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/observability/SKILL.md +0 -0
  1115. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
  1116. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/observability/resources/references.md +0 -0
  1117. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
  1118. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
  1119. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/planning/SKILL.md +0 -0
  1120. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
  1121. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
  1122. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
  1123. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
  1124. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
  1125. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
  1126. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
  1127. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
  1128. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
  1129. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
  1130. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
  1131. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
  1132. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
  1133. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
  1134. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
  1135. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
  1136. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
  1137. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
  1138. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
  1139. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/specification/SKILL.md +0 -0
  1140. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/specification/resources/references.md +0 -0
  1141. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
  1142. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
  1143. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
  1144. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
  1145. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
  1146. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
  1147. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
  1148. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
  1149. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
  1150. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
  1151. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
  1152. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
  1153. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
  1154. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
  1155. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
  1156. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/tdd/SKILL.md +0 -0
  1157. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
  1158. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
  1159. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
  1160. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
  1161. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
  1162. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
  1163. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
  1164. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
  1165. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
  1166. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
  1167. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
  1168. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
  1169. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
  1170. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
  1171. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
  1172. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
  1173. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
  1174. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
  1175. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/testing/SKILL.md +0 -0
  1176. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
  1177. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
  1178. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
  1179. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
  1180. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
  1181. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
  1182. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
  1183. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
  1184. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
  1185. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
  1186. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/wtf/LICENSE +0 -0
  1187. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/wtf/SKILL.md +0 -0
  1188. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
  1189. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
  1190. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/catalog.json +0 -0
  1191. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/README.md +0 -0
  1192. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/benchmark-brackets.md +0 -0
  1193. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/bosun-decisions-gate.md +0 -0
  1194. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/code-index-in-headless.md +0 -0
  1195. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/cruise-runner-everywhere.md +0 -0
  1196. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/cruise-sweep.md +0 -0
  1197. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/cruise-watch-seat.md +0 -0
  1198. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/cruise.md +0 -0
  1199. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/describe-service.md +0 -0
  1200. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/drawio-canvas.md +0 -0
  1201. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/init-pyyaml.md +0 -0
  1202. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/uipro-extension.md +0 -0
  1203. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/ux-design-skills.md +0 -0
  1204. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/changelog.d/ux-gates-extension.md +0 -0
  1205. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/pyproject.toml +0 -0
  1206. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/__init__.py +0 -0
  1207. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/__main__.py +0 -0
  1208. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/add_service.py +0 -0
  1209. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/adopt.py +0 -0
  1210. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/adopt_report.py +0 -0
  1211. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/assets.py +0 -0
  1212. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/axes.py +0 -0
  1213. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/backends.py +0 -0
  1214. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/capabilities.py +0 -0
  1215. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/catalog.py +0 -0
  1216. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/catch_up.py +0 -0
  1217. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/changelog.py +0 -0
  1218. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/cli.py +0 -0
  1219. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/cli_add.py +0 -0
  1220. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/cli_adopt.py +0 -0
  1221. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/cli_prompts.py +0 -0
  1222. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/converge.py +0 -0
  1223. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/convergence.py +0 -0
  1224. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/delivery_facts.py +0 -0
  1225. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/ecosystems.py +0 -0
  1226. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/errors.py +0 -0
  1227. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/examples.py +0 -0
  1228. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/extensions.py +0 -0
  1229. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/features.py +0 -0
  1230. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/images.py +0 -0
  1231. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/layout.py +0 -0
  1232. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/manifest.py +0 -0
  1233. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/migrate.py +0 -0
  1234. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/naming.py +0 -0
  1235. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/origin.py +0 -0
  1236. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/platform.py +0 -0
  1237. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/preflight.py +0 -0
  1238. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/probes.py +0 -0
  1239. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/programme.py +0 -0
  1240. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/__init__.py +0 -0
  1241. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/add_commands.py +0 -0
  1242. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/adopted.py +0 -0
  1243. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/adopted_ci.py +0 -0
  1244. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/adopted_targets.py +0 -0
  1245. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/adversary.py +0 -0
  1246. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/agent_settings.py +0 -0
  1247. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/agents.py +0 -0
  1248. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/aws_docs.py +0 -0
  1249. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/azure_docs.py +0 -0
  1250. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/backing_service_prose.py +0 -0
  1251. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/backing_services.py +0 -0
  1252. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/benchmark.py +0 -0
  1253. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/biome.py +0 -0
  1254. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/ci_services.py +0 -0
  1255. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/ci_workflows.py +0 -0
  1256. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/compose.py +0 -0
  1257. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/composition.py +0 -0
  1258. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/constitution_journey.py +0 -0
  1259. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/converge_stage.py +0 -0
  1260. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/convergence_page.py +0 -0
  1261. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_agents.py +0 -0
  1262. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_hand.py +0 -0
  1263. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_stops.py +0 -0
  1264. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/cruise_unblock.py +0 -0
  1265. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/decisions.py +0 -0
  1266. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/demo_stop.py +0 -0
  1267. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/deploy_workflow.py +0 -0
  1268. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/design_page.py +0 -0
  1269. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/docs.py +0 -0
  1270. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/docs_index.py +0 -0
  1271. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/drive_adoption.py +0 -0
  1272. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/drive_settings.py +0 -0
  1273. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/entry_stores.py +0 -0
  1274. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/event_model.py +0 -0
  1275. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/evolving.py +0 -0
  1276. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/existing.py +0 -0
  1277. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/flag_route.py +0 -0
  1278. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/flags.py +0 -0
  1279. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/frontend.py +0 -0
  1280. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/ground_command.py +0 -0
  1281. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/guidance.py +0 -0
  1282. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/infra.py +0 -0
  1283. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/init_production.py +0 -0
  1284. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/init_script.py +0 -0
  1285. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/integration.py +0 -0
  1286. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/__init__.py +0 -0
  1287. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/go.py +0 -0
  1288. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/java.py +0 -0
  1289. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/java_quarkus.py +0 -0
  1290. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/java_spring.py +0 -0
  1291. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/python.py +0 -0
  1292. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/languages/typescript.py +0 -0
  1293. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/makefile.py +0 -0
  1294. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/metadata.py +0 -0
  1295. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/model_targets.py +0 -0
  1296. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/model_to_code.py +0 -0
  1297. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/mutation.py +0 -0
  1298. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/native_commands.py +0 -0
  1299. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/openapi.py +0 -0
  1300. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/parallel_slices.py +0 -0
  1301. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/pin_commands.py +0 -0
  1302. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/pins.py +0 -0
  1303. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/production.py +0 -0
  1304. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/provisioning.py +0 -0
  1305. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/read_side_layouts.py +0 -0
  1306. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/renovate.py +0 -0
  1307. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/repository.py +0 -0
  1308. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/rules.py +0 -0
  1309. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/run_skill.py +0 -0
  1310. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/service_layouts.py +0 -0
  1311. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/shared_packages.py +0 -0
  1312. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/skills_page.py +0 -0
  1313. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/stage_models.py +0 -0
  1314. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/strangle_command.py +0 -0
  1315. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/structure_page.py +0 -0
  1316. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/target_docs.py +0 -0
  1317. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/whats_next.py +0 -0
  1318. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/project/where_are_we.py +0 -0
  1319. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/quick_wins.py +0 -0
  1320. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/replay.py +0 -0
  1321. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/resurvey.py +0 -0
  1322. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/scaffold.py +0 -0
  1323. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/selection.py +0 -0
  1324. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/services.py +0 -0
  1325. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/strategy.py +0 -0
  1326. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/structure.py +0 -0
  1327. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/survey.py +0 -0
  1328. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/targets.py +0 -0
  1329. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/tooling.py +0 -0
  1330. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/toolkit.py +0 -0
  1331. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/upgrade.py +0 -0
  1332. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/versions.py +0 -0
  1333. {slipwai-1.2.0.dev44 → slipwai-1.2.0.dev46}/src/slipwai/wrappers.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: slipwai
3
- Version: 1.2.0.dev44
3
+ Version: 1.2.0.dev46
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
@@ -274,6 +274,7 @@ the paths and toolchains named in them are real.
274
274
  | `/cruise-settings` | Shows or changes how `/cruise` runs: who decides, how it releases, what it demos with, when it parks |
275
275
  | `/cruise-status` | Says whether a `/cruise` runner is running, how its last iteration ended, and shows the tail of its feed |
276
276
  | `/cruise-stop` | Ends a `/cruise` run after the iteration in flight, or at once with `now` |
277
+ | `/cruise-tell` | Queues a message for a running `/cruise`, which the next iteration carries; `--now` ends the iteration in flight for it |
277
278
 
278
279
  [The delivery loop](docs/delivery-loop.md) describes each one in full, and the ladder they sit on.
279
280
 
@@ -245,6 +245,7 @@ the paths and toolchains named in them are real.
245
245
  | `/cruise-settings` | Shows or changes how `/cruise` runs: who decides, how it releases, what it demos with, when it parks |
246
246
  | `/cruise-status` | Says whether a `/cruise` runner is running, how its last iteration ended, and shows the tail of its feed |
247
247
  | `/cruise-stop` | Ends a `/cruise` run after the iteration in flight, or at once with `now` |
248
+ | `/cruise-tell` | Queues a message for a running `/cruise`, which the next iteration carries; `--now` ends the iteration in flight for it |
248
249
 
249
250
  [The delivery loop](docs/delivery-loop.md) describes each one in full, and the ladder they sit on.
250
251
 
@@ -0,0 +1 @@
1
+ 1.2.0.dev46
@@ -16,6 +16,8 @@ with `start`, and the session that typed it runs no stage of the ladder.
16
16
  python3 scripts/agents/cruise.py start [--feature F] [--no-park] [--sandbox] [kick-off…] # the loop, detached
17
17
  python3 scripts/agents/cruise.py watch [--minutes M] [--quiet S] # the watch seat: the feed since the last watch
18
18
  python3 scripts/agents/cruise.py stop [--now] # end the run after the iteration in flight, or now
19
+ python3 scripts/agents/cruise.py tell [--now] <message…> # queue a message for the next iteration; --now ends the one in flight
20
+ python3 scripts/agents/cruise.py told # inside an iteration: what a person queued since it started, or nothing
19
21
  python3 scripts/agents/cruise.py status # whether a runner is running, and what the log says it is doing
20
22
  python3 scripts/agents/cruise.py denials # every command an iteration was refused, from the stream: what to allow
21
23
  python3 scripts/agents/cruise.py resume # print the checkpoint into a compacted context; nothing when none
@@ -40,7 +42,11 @@ harness.
40
42
 
41
43
  A person stops a run with `touch .specify/cruise.stop` (`stop`), or by interrupting a foreground `run`: the
42
44
  iteration under way is killed, its increment commits are on the slice branch, and the next iteration re-derives
43
- from disk.
45
+ from disk. A person steers a run with `tell`: the message is queued in `.specify/cruise-inbox.jsonl`, and the
46
+ next iteration carries it as `told: <message>` in its argument — the route the kick-off takes — so nothing
47
+ interrupts the iteration in flight unless `--now` says to, which ends that iteration the way `stop --now` does
48
+ and starts the next at once with the message. An iteration can also ask for what was queued since it started
49
+ (`told`), between stages, without waiting for its end. Every message delivered is in the iteration's log entry.
44
50
  """
45
51
 
46
52
  from __future__ import annotations
@@ -94,6 +100,11 @@ MCP_CONFIG = ROOT / ".mcp.json"
94
100
  WATCH_CURSOR = ROOT / ".specify/cruise-watch.cursor"
95
101
  # The last message a harness's after-response hook saw, for a stop hook whose event does not carry it.
96
102
  LAST_RESPONSE = ROOT / ".specify/cruise-last-response.txt"
103
+ # What a person queued for the run (`tell`), one JSON line per message, until an iteration takes it: the runner
104
+ # before it starts one, or the iteration itself between stages (`told`). What was taken waits in the second file
105
+ # until the runner writes the iteration's log entry, so every message delivered is on the record whichever took it.
106
+ INBOX = ROOT / ".specify/cruise-inbox.jsonl"
107
+ TOLD = ROOT / ".specify/cruise-told.jsonl"
97
108
  LOG = ROOT / "specs/cruise-log.jsonl"
98
109
  # The iteration in flight, rewritten by `/cruise` at every stage boundary so a compacted context can resume.
99
110
  CHECKPOINT = ROOT / "specs/cruise-checkpoint.md"
@@ -168,6 +179,11 @@ ABSENT = f"no {CONFIG.relative_to(ROOT)}: /cruise is not enabled here; `slipwai
168
179
  PARENT_SESSION_VARIABLES = ("CLAUDECODE", "CLAUDE_CODE_ENTRYPOINT")
169
180
  # The iteration under way, so a SIGTERM to the runner ends it too rather than orphaning a harness session.
170
181
  CURRENT: subprocess.Popen[str] | None = None
182
+ # Set by the SIGUSR1 handler (`tell --now`) while an iteration was under way: it was ended for a person's message,
183
+ # which the runner says in its log entry instead of reading its missing last line as no progress.
184
+ INTERRUPTED = False
185
+ # The word an iteration's argument carries a person's message under, beside `unblock:`, as `commands/cruise.md` spells it.
186
+ TOLD_WORD = "told:"
171
187
 
172
188
 
173
189
  def now() -> str:
@@ -432,7 +448,7 @@ def fingerprint() -> str:
432
448
  status = subprocess.run(["git", "status", "--porcelain", "--untracked-files=all"], cwd=ROOT, text=True,
433
449
  capture_output=True)
434
450
  own = tuple(path.relative_to(ROOT).as_posix()
435
- for path in (LOG, CHECKPOINT, PID, RUN_LOG, STREAM, WATCH_CURSOR, LAST_RESPONSE))
451
+ for path in (LOG, CHECKPOINT, PID, RUN_LOG, STREAM, WATCH_CURSOR, LAST_RESPONSE, INBOX, TOLD))
436
452
  digest.update("\n".join(line for line in status.stdout.splitlines() if not line.endswith(own)).encode())
437
453
  specs = ROOT / "specs"
438
454
  for path in sorted(specs.rglob("*")) if specs.is_dir() else []:
@@ -678,15 +694,17 @@ def iterate(template: str, prompt: str, environment: dict[str, str], iteration:
678
694
  raw.close()
679
695
  # What the session left running — the app its demo started, which the ladder leaves up for a person who
680
696
  # is not coming, a watcher — is ended with the iteration, or the next one finds the port taken. The group
681
- # outlives its leader while any member does, so a signal that lands is the sign something was left.
697
+ # outlives its leader while any member does, so a signal that lands is the sign something was left — unless
698
+ # the group was ended for a person's message, in which case whatever is still dying was ended on purpose.
682
699
  try:
683
700
  os.killpg(process.pid, signal.SIGTERM)
684
701
  except ProcessLookupError:
685
702
  pass
686
703
  else:
687
- sys.stdout.write(f"{time.strftime('%H:%M:%S')} cruise: iteration {iteration} left a process running — "
688
- "a dev server, a watcher — and it was ended with the iteration\n")
689
- sys.stdout.flush()
704
+ if not INTERRUPTED:
705
+ sys.stdout.write(f"{time.strftime('%H:%M:%S')} cruise: iteration {iteration} left a process running — "
706
+ "a dev server, a watcher — and it was ended with the iteration\n")
707
+ sys.stdout.flush()
690
708
  return feed.last
691
709
 
692
710
 
@@ -829,17 +847,26 @@ def stopping() -> None:
829
847
 
830
848
 
831
849
  def park(reason: str, no_park: bool, poll: float, seen: str) -> None:
832
- """Wait for a person: the stop file ends the run, a change under specs/ resumes it, `--no-park` exits 3."""
850
+ """Wait for a person: the stop file ends the run, a change under specs/ or a message resumes it, `--no-park`
851
+ exits 3. The tree is re-read every poll; the stop file and the inbox every second, because a person who typed
852
+ something into a parked run is waiting for it and `poll_minutes` is sized for a tree nobody is touching."""
833
853
  print(f"cruise: parked — {reason}")
834
854
  if no_park:
835
855
  raise SystemExit(PARKED_EXIT)
836
- print(f"cruise: waiting; `touch {relative(STOP)}` ends the run, a change under specs/ or a commit "
837
- "resumes it", flush=True)
856
+ print(f"cruise: waiting; `touch {relative(STOP)}` ends the run, a change under specs/, a commit or a message "
857
+ "(`python3 scripts/agents/cruise.py tell …`) resumes it", flush=True)
838
858
  while True:
839
- time.sleep(poll)
840
- if STOP.is_file():
841
- print("cruise: stopped by human")
842
- raise SystemExit(0)
859
+ slept = 0.0
860
+ while slept < poll:
861
+ step = min(1.0, poll - slept)
862
+ time.sleep(step)
863
+ slept += step
864
+ if STOP.is_file():
865
+ print("cruise: stopped by human")
866
+ raise SystemExit(0)
867
+ if INBOX.is_file():
868
+ print("cruise: a person's message; resuming")
869
+ return
843
870
  if fingerprint() != seen:
844
871
  print("cruise: something changed; resuming")
845
872
  return
@@ -875,6 +902,124 @@ def terminated(_signal: int, _frame: object) -> None:
875
902
  raise SystemExit(128 + signal.SIGTERM)
876
903
 
877
904
 
905
+ def interrupted(_signal: int, _frame: object) -> None:
906
+ """A SIGUSR1 to the runner (`tell --now`) ends the iteration under way for a person's message, and nothing
907
+ else: the loop goes on, and the next iteration starts at once with the inbox as its argument. Between
908
+ iterations, or parked, there is nothing to end, and the inbox is read within the second anyway."""
909
+ global INTERRUPTED
910
+ if CURRENT is not None and CURRENT.poll() is None:
911
+ INTERRUPTED = True
912
+ try:
913
+ os.killpg(CURRENT.pid, signal.SIGTERM)
914
+ except ProcessLookupError:
915
+ pass
916
+
917
+
918
+ def queued() -> list[dict[str, Any]]:
919
+ """What a person has queued and no iteration has taken yet, oldest first."""
920
+ if not INBOX.is_file():
921
+ return []
922
+ return [json.loads(line) for line in INBOX.read_text().splitlines() if line.strip()]
923
+
924
+
925
+ def deliver() -> list[str]:
926
+ """Take everything queued, in order, and keep it for the iteration's log entry. The file is moved before it
927
+ is read, so a `tell` landing at this moment goes to a fresh inbox rather than being lost."""
928
+ if not INBOX.is_file():
929
+ return []
930
+ taken = INBOX.with_suffix(".taking")
931
+ try:
932
+ os.replace(INBOX, taken)
933
+ except FileNotFoundError:
934
+ return []
935
+ lines = [line for line in taken.read_text().splitlines() if line.strip()]
936
+ taken.unlink()
937
+ with TOLD.open("a") as handle:
938
+ handle.write("".join(f"{line}\n" for line in lines))
939
+ return [str(json.loads(line)["text"]) for line in lines]
940
+
941
+
942
+ def delivered() -> list[dict[str, Any]]:
943
+ """Every message an iteration was given, by the runner or by `told`, and the file cleared for the next."""
944
+ if not TOLD.is_file():
945
+ return []
946
+ given = [json.loads(line) for line in TOLD.read_text().splitlines() if line.strip()]
947
+ TOLD.unlink()
948
+ return given
949
+
950
+
951
+ def requeue(given: list[dict[str, Any]]) -> None:
952
+ """Put back, ahead of anything queued since, what an iteration was given and never got to act on — one
953
+ ended for a later message, or a run ended under it. A person's word is not spent by an iteration that died."""
954
+ if not given:
955
+ return
956
+ lines = [json.dumps(entry, ensure_ascii=False) for entry in given] + [
957
+ json.dumps(entry, ensure_ascii=False) for entry in queued()]
958
+ INBOX.parent.mkdir(parents=True, exist_ok=True)
959
+ INBOX.write_text("".join(f"{line}\n" for line in lines))
960
+
961
+
962
+ def told_argument(texts: list[str]) -> str:
963
+ """The messages as an iteration's argument: `told: <one>`, or the several in order, each on its own `told:`."""
964
+ return " ".join(f"{TOLD_WORD} {' '.join(text.split())}" for text in texts)
965
+
966
+
967
+ def tell(arguments: list[str]) -> None:
968
+ """Queue a message for the run: the next iteration carries it as `told: <message>` in its argument. With
969
+ `--now` — the first word, on the command line or in the text — the iteration in flight is ended for it and
970
+ the next starts at once. The message is the words given, or standard input when there are none, so a
971
+ command file can hand it over in a quoted heredoc and no quote inside it reaches the shell."""
972
+ # A bare `tell` at a terminal is a person who forgot the message, not one about to type it into a pipe.
973
+ text = " ".join(arguments).strip() if arguments else ("" if sys.stdin.isatty() else sys.stdin.read().strip())
974
+ now_flag = False
975
+ if text == "--now" or text.startswith("--now "):
976
+ now_flag, text = True, text.removeprefix("--now").strip()
977
+ if not text:
978
+ raise RuntimeError("tell takes the message as its words, or on standard input")
979
+ INBOX.parent.mkdir(parents=True, exist_ok=True)
980
+ with INBOX.open("a") as handle:
981
+ handle.write(json.dumps({"at": now(), "text": text, "now": now_flag}, ensure_ascii=False) + "\n")
982
+ waiting = len(queued())
983
+ count = f"{waiting} message(s) queued" if waiting > 1 else "queued"
984
+ running = running_pid()
985
+ if running is None:
986
+ print(f"cruise: {count}; no runner is running here — the first iteration of the next run carries it "
987
+ "(`/cruise` starts one)")
988
+ return
989
+ # A parked runner says so as the last line of its log; a foreground one prints it instead, so there the log
990
+ # entry is the evidence, and it cannot say whether something resumed the run since.
991
+ tail = RUN_LOG.read_text(errors="replace").rstrip().splitlines()[-1:] if RUN_LOG.is_file() else []
992
+ log = entries()
993
+ if tail and tail[-1].startswith("cruise: waiting;"):
994
+ print(f"cruise: {count}; the run is parked and resumes with it within the second")
995
+ return
996
+ if not tail and log and str(log[-1]["last_line"]).startswith("cruise: parked: "):
997
+ print(f"cruise: {count}; the run parked after iteration {log[-1]['iteration']} and resumes with it within "
998
+ "the second — unless something already resumed it, in which case the next iteration carries it")
999
+ return
1000
+ if now_flag:
1001
+ os.kill(running[0], signal.SIGUSR1)
1002
+ print(f"cruise: {count}, and the runner (pid {running[0]}) was told to end the iteration in flight for it; "
1003
+ "the next iteration starts at once with the message, and the ended iteration's increment commits "
1004
+ "are on its branch")
1005
+ return
1006
+ print(f"cruise: {count} for the next iteration; the one in flight ends first — the runner (pid {running[0]}) "
1007
+ "reads the inbox before each iteration, and the iteration itself between stages. "
1008
+ "`python3 scripts/agents/cruise.py tell --now …` would end the one in flight for it")
1009
+
1010
+
1011
+ def told() -> None:
1012
+ """Inside an iteration, between stages: what a person queued since the iteration started, one line each,
1013
+ taken — so the next iteration is not given it again — and kept for this iteration's log entry."""
1014
+ texts = deliver()
1015
+ if not texts:
1016
+ return
1017
+ print(f"cruise: {len(texts)} message(s) from a person since this iteration started; act on each before the "
1018
+ "next stage, and write down what must outlive this iteration")
1019
+ for text in texts:
1020
+ print(f"cruise: {TOLD_WORD} {text}")
1021
+
1022
+
878
1023
  def cut_off_brackets(reason: str) -> None:
879
1024
  """Close what the iteration's session left open in the benchmark records: nothing will `end` it now, and an
880
1025
  entry left open reads as a stage still running (`scripts/agents/benchmark.py cut-off`). Its lines go to the
@@ -917,9 +1062,12 @@ def run(arguments: list[str]) -> None:
917
1062
  first = prompt_for(harness, " ".join(part for part in (feature, kickoff) if part))
918
1063
  PID.parent.mkdir(parents=True, exist_ok=True)
919
1064
  PID.write_text(f"{os.getpid()} {now()}\n")
1065
+ # What a run that ended under an iteration — `stop --now`, a killed runner — had given it is not spent.
1066
+ requeue(delivered())
920
1067
  signal.signal(signal.SIGTERM, terminated)
1068
+ signal.signal(signal.SIGUSR1, interrupted)
921
1069
  try:
922
- drive(table, harness, template, why, environment, prompt, first, feature, no_park)
1070
+ drive(table, harness, template, why, environment, prompt, first, feature, kickoff, no_park)
923
1071
  finally:
924
1072
  if PID.is_file() and PID.read_text().split()[:1] == [str(os.getpid())]:
925
1073
  PID.unlink()
@@ -937,7 +1085,8 @@ def settings_now(table: dict[str, Any]) -> dict[str, Any]:
937
1085
 
938
1086
 
939
1087
  def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str, why: str,
940
- environment: dict[str, str], prompt: str, first: str, feature: str | None, no_park: bool) -> None:
1088
+ environment: dict[str, str], prompt: str, first: str, feature: str | None, kickoff: str | None,
1089
+ no_park: bool) -> None:
941
1090
  print(f"cruise: {why}")
942
1091
  if first != prompt:
943
1092
  print(f"cruise: the first iteration runs `{first}`, the kick-off; every later one runs `{prompt}`")
@@ -948,10 +1097,12 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
948
1097
  stream = stream_of(harness)
949
1098
  started_run = time.monotonic()
950
1099
  iterations_this_run = 0
951
- fingerprints = [entry["fingerprint"] for entry in entries()]
1100
+ # An iteration a person ended for a message is not the run failing to move, so it is not in the stuck window.
1101
+ fingerprints = [entry["fingerprint"] for entry in entries() if not entry.get("interrupted")]
952
1102
  # The fingerprint a stuck run was already given its one unblocking iteration at, so it gets exactly one.
953
1103
  unblocked_at: str | None = None
954
1104
  ask, attempt = first, "kick-off" if first != prompt else None
1105
+ global INTERRUPTED
955
1106
  while True:
956
1107
  table = settings_now(table)
957
1108
  poll = float(os.environ.get("CRUISE_POLL_SECONDS", table["poll_minutes"] * 60))
@@ -968,27 +1119,55 @@ def drive(table: dict[str, Any], harness: dict[str, Any] | None, template: str,
968
1119
  if table["max_hours"] is not None and time.monotonic() - started_run >= table["max_hours"] * 3600:
969
1120
  print(f"cruise: budget spent — {table['max_hours']} hour(s)")
970
1121
  return
1122
+ # A person's message rides on this iteration's argument: after the kick-off on the first, in place of
1123
+ # the bosun's `unblock:` — a person's word is the likelier thing to move a stuck run, and the bosun's one
1124
+ # iteration is kept for after it — and alone on any other.
1125
+ messages = deliver()
1126
+ if messages:
1127
+ if attempt == "unblock":
1128
+ unblocked_at, attempt = None, None
1129
+ ask = prompt_for(harness, " ".join(part for part in (
1130
+ feature, kickoff if attempt == "kick-off" else None, told_argument(messages)) if part))
1131
+ print(f"cruise: iteration {len(entries()) + 1} carries {len(messages)} message(s) from a person", flush=True)
971
1132
  iteration = len(entries()) + 1
972
1133
  started = now()
973
1134
  LAST_RESPONSE.unlink(missing_ok=True)
1135
+ INTERRUPTED = False
974
1136
  print(f"cruise: iteration {iteration} started {started}, running `{ask}`", flush=True)
975
1137
  began = time.monotonic()
976
1138
  # The model flag is read with the settings, so `/cruise-settings model=…` holds from the next iteration.
977
1139
  last = iterate(template + model_flags(harness, table["model"]), ask, environment, iteration, stream)
978
- cut_off_brackets(f"iteration {iteration} ended with the entry open")
1140
+ if INTERRUPTED:
1141
+ last = "interrupted: a person's message"
1142
+ cut_off_brackets("the iteration was ended by `tell --now`")
1143
+ else:
1144
+ cut_off_brackets(f"iteration {iteration} ended with the entry open")
979
1145
  iterations_this_run += 1
980
1146
  seen = fingerprint()
981
- fingerprints.append(seen)
1147
+ if not INTERRUPTED:
1148
+ fingerprints.append(seen)
982
1149
  entry: dict[str, Any] = {"iteration": iteration, "started": started, "ended": now(),
983
1150
  "harness": harness["key"] if harness is not None else "override",
984
1151
  "last_line": last or "no last line", "fingerprint": seen}
985
1152
  if attempt is not None:
986
1153
  entry["attempt"] = attempt
1154
+ given = delivered()
1155
+ if given:
1156
+ entry["told"] = [str(each["text"]) for each in given]
1157
+ if INTERRUPTED:
1158
+ # The entry says what the iteration was given; the next is given it again, ahead of the message that
1159
+ # ended this one, since nothing says this one acted on it.
1160
+ entry["interrupted"] = True
1161
+ requeue(given)
987
1162
  ask, attempt = prompt, None
988
1163
  record(entry)
989
1164
  # The boundary `watch` returns on: the iteration, what it ended on, and how long it took.
990
1165
  print(f"cruise: iteration {iteration} ended — {last or 'no last line'} ({duration(time.monotonic() - began)})",
991
1166
  flush=True)
1167
+ if INTERRUPTED:
1168
+ # Ended for a message, not by its own last line: the next iteration is where the message goes, and it
1169
+ # starts now — there is nothing to park on and nothing to count.
1170
+ continue
992
1171
  if last in ("cruise: done", "cruise: stopped: human"):
993
1172
  # The iteration is over for good; a checkpoint left behind would read as state to resume.
994
1173
  CHECKPOINT.unlink(missing_ok=True)
@@ -1036,7 +1215,7 @@ def start(arguments: list[str]) -> None:
1036
1215
  first = prompt_for(harness, " ".join(part for part in (feature, kickoff) if part))
1037
1216
  # Said before the fork, so a runner that ends at once has still said what its iterations run on and how they
1038
1217
  # reach the index.
1039
- for line in model_lines(harness, table["model"]) + index_lines(harness):
1218
+ for line in model_lines(harness, table["model"]) + index_lines(harness) + queued_lines():
1040
1219
  print(line)
1041
1220
  RUN_LOG.parent.mkdir(parents=True, exist_ok=True)
1042
1221
  # The watch seat starts reading here, so the first `watch` shows this run from its first line.
@@ -1302,12 +1481,25 @@ def denials() -> None:
1302
1481
  f"{', '.join(str(each) for each in where)})")
1303
1482
 
1304
1483
 
1484
+ def queued_lines() -> list[str]:
1485
+ """What `status` and `start` say of the inbox: each message waiting for the next iteration, or nothing."""
1486
+ waiting = queued()
1487
+ if not waiting:
1488
+ return []
1489
+ return [f"cruise: {len(waiting)} message(s) queued for the next iteration ({relative(INBOX)}):"] + [
1490
+ f"cruise: {first_line(entry['text'])}" + (" (asked to end the iteration in flight)" if entry.get("now") else "")
1491
+ for entry in waiting
1492
+ ]
1493
+
1494
+
1305
1495
  def status() -> None:
1306
1496
  running = running_pid()
1307
1497
  if running is not None:
1308
1498
  print(f"cruise: the runner is running (pid {running[0]}, since {running[1]}); its log is {relative(RUN_LOG)}")
1309
1499
  else:
1310
1500
  print("cruise: no runner is running here")
1501
+ for line in queued_lines():
1502
+ print(line)
1311
1503
  log = entries()
1312
1504
  if not log:
1313
1505
  print("cruise: no iteration has run here")
@@ -1339,6 +1531,7 @@ def main() -> None:
1339
1531
  return
1340
1532
  verbs = {"run": lambda: run(arguments[1:]), "start": lambda: start(arguments[1:]),
1341
1533
  "watch": lambda: watch(arguments[1:]), "stop": lambda: stop(arguments[1:]), "status": status,
1534
+ "tell": lambda: tell(arguments[1:]), "told": told,
1342
1535
  "denials": denials, "resume": resume, "compacting": compacting, "loop": loop, "stopping": stopping,
1343
1536
  "responded": responded}
1344
1537
  if arguments and arguments[0] in verbs:
@@ -0,0 +1,18 @@
1
+ MINOR
2
+
3
+ **A person can tell a running `/cruise` something without stopping it.** `/cruise-tell <message>` in any
4
+ session, `make cruise-tell MSG="…"`, or `python3 scripts/agents/cruise.py tell …` queues the message in
5
+ `.specify/cruise-inbox.jsonl`; the runner reads the inbox before it starts each iteration and hands the message
6
+ over as `told: <message>` in that iteration's argument — the route the kick-off takes — and the command reads it
7
+ before the first stage and acts on it first, writing what must outlive the iteration into the owner brief or a
8
+ decision entry. Between stages an iteration runs `python3 scripts/agents/cruise.py told` for what was queued since
9
+ it started, so a message can land mid-iteration without cutting a stage. A parked run resumes with a message
10
+ within the second, and a message waiting when a run is stuck goes in place of the bosun's `unblock:` iteration.
11
+ `--now` as the first word ends the iteration in flight for the message, the way `stop --now` does, and starts the
12
+ next at once; the log entry says so, and an interrupted iteration is not counted by the stuck detector. Every
13
+ message delivered is in that iteration's entry in `specs/cruise-log.jsonl` under `told`, and `/cruise-status` lists
14
+ what is queued. The watch seat queues what a person types for the run the same way and repeats what the script
15
+ said. Every setting keeps its meaning; a message never changes one.
16
+
17
+ **Catch-up.** `slipwai migrate` brings the runner, the command files and the Make target; the inbox and the
18
+ delivered file are gitignored.
@@ -12,7 +12,7 @@ from __future__ import annotations
12
12
 
13
13
  def agent_targets() -> str:
14
14
  """The `.PHONY` block between the npm workspace targets and the native gate targets."""
15
- return """.PHONY: agents agents-list check-extensions check-agents models check-benchmark benchmark cruise cruise-watch cruise-status cruise-stop check-decisions
15
+ return """.PHONY: agents agents-list check-extensions check-agents models check-benchmark benchmark cruise cruise-watch cruise-status cruise-stop cruise-tell check-decisions
16
16
  agents: ## Refresh elected extensions, then skills, commands and agent types in every installed agent harness
17
17
  \tpython3 scripts/extensions/project.py
18
18
  \tpython3 scripts/agents/project.py
@@ -37,6 +37,8 @@ cruise-status: ## Say whether a /cruise runner is running and what its log shows
37
37
  \tpython3 scripts/agents/cruise.py status
38
38
  cruise-stop: ## End a /cruise run after the iteration in flight (CRUISE_FLAGS=--now ends that iteration too)
39
39
  \tpython3 scripts/agents/cruise.py stop $(CRUISE_FLAGS)
40
+ cruise-tell: ## Queue a message for the next /cruise iteration (MSG=\"…\"; CRUISE_FLAGS=--now ends the iteration in flight so it goes at once)
41
+ \tpython3 scripts/agents/cruise.py tell $(CRUISE_FLAGS) $(MSG)
40
42
  check-decisions: ## Fail when a decision log or demo log /cruise wrote has lost its shape
41
43
  \tpython3 scripts/check-decisions.py
42
44
  """
@@ -11,7 +11,7 @@ from .adversary import adversary_command
11
11
  from .benchmark import benchmark_command, what_each_stage_costs
12
12
  from .converge_stage import convergence_stage
13
13
  from .cruise import cruise_command, cruise_settings_command
14
- from .cruise_seat import cruise_status_command, cruise_stop_command
14
+ from .cruise_seat import cruise_status_command, cruise_stop_command, cruise_tell_command
15
15
  from .demo_stop import demo_stop
16
16
  from .drive_adoption import adoption_ladder
17
17
  from .drive_settings import drive_settings_command, implementation_section
@@ -310,7 +310,7 @@ than an open question.
310
310
  # three reaching back out to the factory. One list, so the documentation and the files cannot disagree.
311
311
  BASE_COMMANDS = ("drive", "where-are-we", "whats-next", "gaps", "adversary", "mutation", "constitution-coverage",
312
312
  "model-delegation-settings", "drive-settings", "benchmark", "cruise", "cruise-settings",
313
- "cruise-status", "cruise-stop", "add-service", "add-frontend", "catch-up")
313
+ "cruise-status", "cruise-stop", "cruise-tell", "add-service", "add-frontend", "catch-up")
314
314
  # Copied whole from `assets/profiles/event-modelling/commands/`; listed because the documentation names them in order.
315
315
  EVENT_COMMANDS = ("example-map", "validate-code-against-model")
316
316
 
@@ -330,6 +330,7 @@ def command_files(
330
330
  "commands/cruise-settings.md": cruise_settings_command(layout),
331
331
  "commands/cruise-status.md": cruise_status_command(layout),
332
332
  "commands/cruise-stop.md": cruise_stop_command(layout),
333
+ "commands/cruise-tell.md": cruise_tell_command(layout),
333
334
  "commands/where-are-we.md": where_are_we_command(event, target),
334
335
  "commands/whats-next.md": whats_next_command(event),
335
336
  "commands/gaps.md": gaps_command(event),
@@ -21,6 +21,7 @@ from .cruise_agents import DECISIONS, OWNER_BRIEF, SKIPPER
21
21
  from .cruise_hand import hand_section
22
22
  from .cruise_record import CHECKPOINT, CHECKPOINT_ENTRY, DECISION_ENTRY, STOP_FILE
23
23
  from .cruise_stops import LOG, REPORT, stop_table
24
+ from .cruise_told import boundary_asks, seat_queues, told_argument
24
25
  from .cruise_unblock import unblock_section
25
26
 
26
27
  CONFIG = ".specify/cruise.json"
@@ -96,7 +97,7 @@ def cruise_command(
96
97
  )
97
98
  return f"""---
98
99
  description: Run /drive as driver and product owner, iteration after iteration, until every specification is satisfied — stopping only for a human
99
- argument-hint: [--feature <name>] [kick-off: what this run is for, where the brief or PRD is] | unblock: <what the outer loop saw>
100
+ argument-hint: [--feature <name>] [kick-off: what this run is for, where the brief or PRD is] | unblock: <what the outer loop saw> | told: <a person's message>
100
101
  ---
101
102
 
102
103
  # Cruise
@@ -142,7 +143,7 @@ states goes into the owner brief (`{OWNER_BRIEF}`), a scope it sets is a decisio
142
143
  anything else. Two things the runner passes itself recur: a feature named with `--feature` on `run` or `start`
143
144
  (`{layout.make} cruise FEATURE=<name>`) is the first word of every iteration's argument and scopes the run to that
144
145
  feature's specification — the ladder is entered for it and no other — and `unblock: <reason>` is what the runner
145
- says when a run makes no progress (*Blocked: the bosun protocol*, below).
146
+ says when a run makes no progress (*Blocked: the bosun protocol*, below). {told_argument(SCRIPT)}
146
147
 
147
148
  ## The watch seat
148
149
 
@@ -162,7 +163,7 @@ never a reason to run a stage of the ladder in this session.
162
163
  **A person typing here is talking to you, not stopping the run.** Answer them — what the feed shows, what
163
164
  `{CONFIG}` says (`python3 {SCRIPT}` prints every setting and what it controls), what `python3 {SCRIPT} status`
164
165
  says, what `{DECISIONS}` records — and change a setting through `/cruise-settings` where they ask; it takes
165
- effect at the next iteration. Then watch again. Only `touch {STOP_FILE}`, `python3 {SCRIPT} stop`, or
166
+ effect at the next iteration. {seat_queues(SCRIPT)} Then watch again. Only `touch {STOP_FILE}`, `python3 {SCRIPT} stop`, or
166
167
  `{layout.make} cruise-stop` ends the run, and only when they ask for that.
167
168
 
168
169
  ## Run the ladder, and answer at its stops
@@ -229,7 +230,7 @@ the unit is one slice through Phase 4 and its done marker, or one concurrent fan
229
230
  split order. `commands/drive.md` says *do not wait to be invoked again*; here the
230
231
  outer loop is what re-invokes, with a fresh context, which is the rule every delegate already lives by.
231
232
  Between stages, look for `{STOP_FILE}`: present, finish the stage's own writes, commit what is green, and end
232
- on `{LAST_LINES[3]}`.
233
+ on `{LAST_LINES[3]}`. {boundary_asks(SCRIPT)}
233
234
  At every stage boundary and every delegation, rewrite the checkpoint (*Checkpoint*, below).
234
235
  Where nothing can move — every ready slice blocked and the bosun could not move one, or a blocker is on the
235
236
  catastrophic list — end with `parked` and the exact thing a person must provide or decide; the loop waits,
@@ -21,6 +21,10 @@ RUNNER_LOG = ".specify/cruise-run.log"
21
21
  RUNNER_STREAM = ".specify/cruise-stream.jsonl"
22
22
  WATCH_CURSOR = ".specify/cruise-watch.cursor"
23
23
  LAST_RESPONSE = ".specify/cruise-last-response.txt"
24
+ # What a person queued for the run through `tell`, until an iteration takes it; and what an iteration was given,
25
+ # until the runner writes it into that iteration's log entry.
26
+ INBOX = ".specify/cruise-inbox.jsonl"
27
+ TOLD = ".specify/cruise-told.jsonl"
24
28
  DECISION_ENTRY = f"""## D<n> — <the question, in one line>
25
29
  - **Stage:** <stage> · **Slice:** <id> · **When:** <ISO instant> · **Iteration:** <n>
26
30
  - **Question:** <as the stage raised it>
@@ -1,6 +1,6 @@
1
- """The two commands a person types beside a running `/cruise`: `/cruise-status` and `/cruise-stop`.
1
+ """The three commands a person types beside a running `/cruise`: `/cruise-status`, `/cruise-stop` and `/cruise-tell`.
2
2
 
3
- Both are a shell command and the rule for what to do with what it printed. The rule matters more than the
3
+ Each is a shell command and the rule for what to do with what it printed. The rule matters more than the
4
4
  command: a harness folds a command's output to a few lines, so a status or a feed reaches a person only through
5
5
  the reply, and each of these says so in the same words the watch seat in `commands/cruise.md` uses.
6
6
  """
@@ -8,7 +8,7 @@ from __future__ import annotations
8
8
 
9
9
  from ..layout import AT_ROOT, Layout
10
10
  from .cruise import SCRIPT
11
- from .cruise_record import RUNNER_LOG, STOP_FILE
11
+ from .cruise_record import INBOX, RUNNER_LOG, STOP_FILE
12
12
 
13
13
  # The rule every seat command shares: the harness folds a command's output, so the reply carries it.
14
14
  VERBATIM = ("Put every line it printed in your reply, unchanged, in a fenced block, before anything else: the harness "
@@ -64,3 +64,35 @@ start another run until it is removed — `rm {STOP_FILE}` when they want one. W
64
64
  script says so and the file is written anyway, for the same reason. `{layout.make} cruise-stop` is the same
65
65
  from a terminal, `CRUISE_FLAGS=--now` for the immediate form.
66
66
  """
67
+
68
+
69
+ def cruise_tell_command(layout: Layout = AT_ROOT) -> str:
70
+ """`/cruise-tell`: queue a message for the next iteration, or end the one in flight for it with `--now`."""
71
+ return f"""---
72
+ description: Queue a message for a running /cruise — a steer, a fact it lacked, a scope — which the next iteration carries; `--now` ends the iteration in flight for it
73
+ argument-hint: [--now] <what the run should know or do next>
74
+ ---
75
+
76
+ # Cruise tell
77
+
78
+ A person's word to a run that is already going. It is queued, never pushed into the iteration in flight: the
79
+ runner reads the inbox before it starts each iteration and hands the message over as `told: <message>` in that
80
+ iteration's argument — the route the kick-off takes — and the iteration itself asks for what was queued
81
+ between stages. With `--now` as the first word, the iteration in flight is ended for it, the way `/cruise-stop
82
+ now` ends one, and the next iteration starts at once with the message; its increment commits are on the slice
83
+ branch, and the stage's uncommitted work is what it costs.
84
+
85
+ ```sh
86
+ python3 {SCRIPT} tell <<'EOF'
87
+ $ARGUMENTS
88
+ EOF
89
+ ```
90
+
91
+ The message goes in as written — the quoted heredoc is so a quote or a `$` inside it never reaches the shell —
92
+ and `--now` is read from its first word. {VERBATIM} It says whether the message waits for the iteration in
93
+ flight to end, resumes a parked run, or ended the iteration for it — and, where no runner is running, that the
94
+ first iteration of the next run carries it. What was queued and not yet taken is in `{INBOX}`; `/cruise-status`
95
+ lists it, and every message an iteration was given is in that iteration's entry in the run's log. A message
96
+ is not a setting: `/cruise-settings` is still how a rule of the run changes. `{layout.make} cruise-tell
97
+ MSG="…"` is the same from a terminal, `CRUISE_FLAGS=--now` for the immediate form.
98
+ """
@@ -0,0 +1,41 @@
1
+ """A person's word to a run under way: what `commands/cruise.md` says about `told: <message>`.
2
+
3
+ A run used to hear from a person twice — in the kick-off, which reaches the first iteration only, and through
4
+ the stop file. Everything in between meant editing the owner brief and hoping the next iteration read it that
5
+ way. `/cruise-tell` queues a message instead, and the runner hands it to the iteration it starts next as
6
+ `told: <message>` in the argument, the kick-off's own route; the iteration asks for later ones between stages;
7
+ and the watch seat queues what a person types for the run rather than doing anything about it itself. These
8
+ are the three paragraphs of the command that say so, kept beside each other because they name one route.
9
+ """
10
+ from __future__ import annotations
11
+
12
+ from .cruise_agents import OWNER_BRIEF
13
+
14
+
15
+ def told_argument(script: str) -> str:
16
+ """The kick-off paragraph's third argument: what a message is, where it reaches, and what to do with it."""
17
+ return f"""A third is a person's: `told: <message>`
18
+ is what somebody queued for the run through `/cruise-tell` (`python3 {script} tell`) since the last iteration
19
+ started, one `told:` per message in the order they were sent, and it reaches the iteration the runner starts next —
20
+ never the one in flight, unless they ended it for the message. Read it before the first stage and act on it
21
+ first: a steer takes precedence over what the artifacts alone would make this iteration do, a fact the run lacked
22
+ is the answer to a block, and a scope or a preference is written down the way the kick-off is — into the owner
23
+ brief (`{OWNER_BRIEF}`) or a decision entry with `Decided by: human` — so it outlives this iteration. A message
24
+ never changes a setting; say so and point at `/cruise-settings` where one asks for that."""
25
+
26
+
27
+ def seat_queues(script: str) -> str:
28
+ """The watch seat's rule for something a person types that is for the run, not for the seat."""
29
+ return f"""Where what they typed is for the run — a steer, a fact it was missing, a scope, an
30
+ answer to the question it parked on — queue it with `python3 {script} tell <<'EOF'` … `EOF` (`/cruise-tell`),
31
+ the message as they said it, and repeat what the script printed: the next iteration carries it, a parked run
32
+ resumes with it, and `--now` as its first word ends the iteration in flight for it, which is done only when they
33
+ ask for that."""
34
+
35
+
36
+ def boundary_asks(script: str) -> str:
37
+ """The iteration contract's read between stages, beside the look for the stop file."""
38
+ return f"""At the same boundaries run `python3 {script} told`: it prints what a person queued through
39
+ `/cruise-tell` since this iteration started, one `told:` line each, or nothing — and what it printed is acted on
40
+ before the next stage, exactly as a `told:` argument would have been; it is taken as it is printed, so the next
41
+ iteration is not given it again, and the runner puts it in this iteration's log entry."""