slipwai 1.2.0.dev19__tar.gz → 1.2.0.dev23__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 (1323) hide show
  1. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/PKG-INFO +3 -2
  2. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/README.md +2 -1
  3. slipwai-1.2.0.dev23/VERSION +1 -0
  4. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/docs/speckit-preset.md +7 -0
  5. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/docs/speckit-preset.md +7 -0
  6. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/cruise.py +110 -3
  7. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/cruise.md +10 -0
  8. slipwai-1.2.0.dev23/changelog.d/describe-service.md +12 -0
  9. slipwai-1.2.0.dev23/changelog.d/init-pyyaml.md +14 -0
  10. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/add_service.py +101 -24
  11. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/cli.py +9 -4
  12. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/cli_add.py +33 -1
  13. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/add_commands.py +1 -0
  14. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/agent_settings.py +9 -4
  15. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/commands.py +7 -6
  16. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/cruise.py +44 -84
  17. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/cruise_agents.py +9 -5
  18. slipwai-1.2.0.dev23/src/slipwai/project/cruise_stops.py +86 -0
  19. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/decisions.py +2 -1
  20. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/guidance.py +5 -2
  21. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/init_script.py +37 -0
  22. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/readme.py +2 -2
  23. slipwai-1.2.0.dev19/VERSION +0 -1
  24. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/.gitignore +0 -0
  25. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/CHANGELOG.md +0 -0
  26. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/LICENSE +0 -0
  27. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/NOTICE +0 -0
  28. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/README.md +0 -0
  29. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/docs/change-strategy.md +0 -0
  30. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/scripts/check-convergence.py +0 -0
  31. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/scripts/ratchet.py +0 -0
  32. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/support.json +0 -0
  33. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/wrappers/gradle/gradle-wrapper.jar.base64 +0 -0
  34. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/wrappers/gradle/gradle-wrapper.properties +0 -0
  35. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/wrappers/gradle/gradlew +0 -0
  36. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/wrappers/gradle/gradlew.bat +0 -0
  37. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/adoption/wrappers/gradle/source-notes.md +0 -0
  38. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/docker-compose.yml +0 -0
  39. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/env.example +0 -0
  40. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_contract.go +0 -0
  41. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_memory.go +0 -0
  42. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_memory_test.go +0 -0
  43. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_postgres.go +0 -0
  44. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_postgres_integration_test.go +0 -0
  45. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_sqlite.go +0 -0
  46. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/checkpoint_store_sqlite_test.go +0 -0
  47. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/config.go +0 -0
  48. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/config_test.go +0 -0
  49. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_contract.go +0 -0
  50. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_memory.go +0 -0
  51. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_memory_test.go +0 -0
  52. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_postgres.go +0 -0
  53. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_postgres_integration_test.go +0 -0
  54. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_sqlite.go +0 -0
  55. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/event_store_sqlite_test.go +0 -0
  56. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/events.go +0 -0
  57. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/http_app.go +0 -0
  58. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/http_app_test.go +0 -0
  59. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/http_openapi_test.go +0 -0
  60. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/http_security.go +0 -0
  61. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/http_security_test.go +0 -0
  62. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/migrate_main.go +0 -0
  63. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/migrate_main_test.go +0 -0
  64. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/migrations_embed.go +0 -0
  65. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/migrations_keep +0 -0
  66. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/oidc_keycloak.go +0 -0
  67. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/oidc_keycloak_test.go +0 -0
  68. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/openapi.yaml +0 -0
  69. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/projections.go +0 -0
  70. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/projections_test.go +0 -0
  71. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/projections_ticker.go +0 -0
  72. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/projections_ticker_test.go +0 -0
  73. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/read_models.go +0 -0
  74. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/serve_main.go +0 -0
  75. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/tracing.go +0 -0
  76. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/tracing_test.go +0 -0
  77. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/users_oidc_keycloak.go +0 -0
  78. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/go/users_oidc_keycloak_test.go +0 -0
  79. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/actor.java +0 -0
  80. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/append_result.java +0 -0
  81. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/causation_id.java +0 -0
  82. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/checkpoint_store_memory.java +0 -0
  83. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/checkpoint_store_postgres.java +0 -0
  84. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/checkpoint_store_sqlite.java +0 -0
  85. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/committed_event.java +0 -0
  86. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/condition.java +0 -0
  87. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/conditional_append_result.java +0 -0
  88. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/correlation_id.java +0 -0
  89. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/database_url.java +0 -0
  90. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/domain_event.java +0 -0
  91. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store.java +0 -0
  92. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store_exception.java +0 -0
  93. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store_memory.java +0 -0
  94. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store_memory_database.java +0 -0
  95. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store_postgres.java +0 -0
  96. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_store_sqlite.java +0 -0
  97. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/event_visitor.java +0 -0
  98. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/http_schema_failure.java +0 -0
  99. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/migrate_main.java +0 -0
  100. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/oidc_keycloak.java +0 -0
  101. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/projection.java +0 -0
  102. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/projections.java +0 -0
  103. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/read_models.java +0 -0
  104. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tag_query.java +0 -0
  105. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tagged_read.java +0 -0
  106. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tags_of.java +0 -0
  107. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/checkpoint_store_contract.java +0 -0
  108. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/checkpoint_store_memory_test.java +0 -0
  109. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/checkpoint_store_sqlite_test.java +0 -0
  110. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/database_url_test.java +0 -0
  111. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/event_store_contract.java +0 -0
  112. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/event_store_memory_test.java +0 -0
  113. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/event_store_sqlite_test.java +0 -0
  114. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/oidc_keycloak_test.java +0 -0
  115. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/projections_test.java +0 -0
  116. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/tests/users_oidc_keycloak_test.java +0 -0
  117. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/transactions.java +0 -0
  118. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java/users_oidc_keycloak.java +0 -0
  119. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/config_source_registration +0 -0
  120. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/database_url_config_source.java +0 -0
  121. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/http_flags_resource.java +0 -0
  122. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/http_health_check.java +0 -0
  123. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/http_not_found_mapper.java +0 -0
  124. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/jta_transactions.java +0 -0
  125. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/oidc_keycloak_augmentor.java +0 -0
  126. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/scheduled_projections.java +0 -0
  127. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/tests/checkpoint_store_postgres_it.java +0 -0
  128. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/tests/event_store_postgres_it.java +0 -0
  129. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/tests/http_app_test.java +0 -0
  130. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-quarkus/users_current_customer.java +0 -0
  131. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/database_url_environment_post_processor.java +0 -0
  132. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/environment_post_processor_registration +0 -0
  133. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/http_flags_controller.java +0 -0
  134. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/http_health_indicator.java +0 -0
  135. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/http_not_found_advice.java +0 -0
  136. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/oidc_keycloak_security.java +0 -0
  137. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/scheduled_projections.java +0 -0
  138. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/spring_transactions.java +0 -0
  139. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/tests/checkpoint_store_postgres_it.java +0 -0
  140. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/tests/event_store_postgres_it.java +0 -0
  141. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/tests/http_app_test.java +0 -0
  142. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/java-spring/users_security.java +0 -0
  143. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/keycloak/README.md +0 -0
  144. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/keycloak/realms/app.json +0 -0
  145. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/keycloak/realms/customers.json +0 -0
  146. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/prune.py +0 -0
  147. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/checkpoint_store_memory.py +0 -0
  148. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/checkpoint_store_postgres.py +0 -0
  149. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/checkpoint_store_sqlite.py +0 -0
  150. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/event_store_memory.py +0 -0
  151. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/event_store_postgres.py +0 -0
  152. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/event_store_sqlite.py +0 -0
  153. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/events.py +0 -0
  154. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/http_app.py +0 -0
  155. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/logging_setup.py +0 -0
  156. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/main.py +0 -0
  157. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/migrations_apply.py +0 -0
  158. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/oidc_keycloak.py +0 -0
  159. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/openapi-flags.json +0 -0
  160. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/openapi.json +0 -0
  161. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/openapi_export.py +0 -0
  162. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/projections.py +0 -0
  163. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/projections_lifespan.py +0 -0
  164. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/read_models.py +0 -0
  165. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/settings.py +0 -0
  166. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/checkpoint_store_contract.py +0 -0
  167. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/conftest.py +0 -0
  168. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/event_store_contract.py +0 -0
  169. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_checkpoint_store_memory.py +0 -0
  170. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_checkpoint_store_postgres.py +0 -0
  171. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_checkpoint_store_sqlite.py +0 -0
  172. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_event_store_memory.py +0 -0
  173. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_event_store_postgres.py +0 -0
  174. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_event_store_sqlite.py +0 -0
  175. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_http_app.py +0 -0
  176. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_logging_setup.py +0 -0
  177. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_oidc_keycloak.py +0 -0
  178. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_projections.py +0 -0
  179. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_projections_lifespan.py +0 -0
  180. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_settings.py +0 -0
  181. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_tracing.py +0 -0
  182. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tests/test_users_oidc_keycloak.py +0 -0
  183. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/tracing.py +0 -0
  184. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/python/users_oidc_keycloak.py +0 -0
  185. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/sql/001_events.sql +0 -0
  186. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/sql/002_events_append_only.sql +0 -0
  187. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/sql/003_projection_checkpoints.sql +0 -0
  188. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/sql/004_event_tags.sql +0 -0
  189. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/checkpoint-store-memory.ts +0 -0
  190. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/checkpoint-store-postgres.ts +0 -0
  191. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/checkpoint-store-sqlite.ts +0 -0
  192. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/config.ts +0 -0
  193. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/event-store-memory.ts +0 -0
  194. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/event-store-postgres.ts +0 -0
  195. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/event-store-sqlite.ts +0 -0
  196. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/events.ts +0 -0
  197. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/http-app.ts +0 -0
  198. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/main.ts +0 -0
  199. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/migrations/001_events.js +0 -0
  200. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/migrations/002_events_append_only.js +0 -0
  201. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/migrations/003_projection_checkpoints.js +0 -0
  202. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/migrations/004_event_tags.js +0 -0
  203. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/oidc-keycloak.ts +0 -0
  204. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/openapi-export.ts +0 -0
  205. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/openapi-flags.json +0 -0
  206. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/openapi.json +0 -0
  207. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/projections-plugin.ts +0 -0
  208. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/projections.ts +0 -0
  209. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/read-models.ts +0 -0
  210. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/checkpoint-store-contract.ts +0 -0
  211. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/checkpoint-store-memory.test.ts +0 -0
  212. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/checkpoint-store-postgres.test.ts +0 -0
  213. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/checkpoint-store-sqlite.test.ts +0 -0
  214. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/event-store-contract.ts +0 -0
  215. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/event-store-memory.test.ts +0 -0
  216. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/event-store-postgres.test.ts +0 -0
  217. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/event-store-sqlite.test.ts +0 -0
  218. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/http-app.test.ts +0 -0
  219. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/oidc-keycloak.test.ts +0 -0
  220. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/projections-plugin.test.ts +0 -0
  221. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/projections.test.ts +0 -0
  222. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/tracing.test.ts +0 -0
  223. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tests/users-oidc-keycloak.test.ts +0 -0
  224. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/tracing.ts +0 -0
  225. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/users-oidc-keycloak.ts +0 -0
  226. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/backing-services/typescript/vitest.integration.config.ts +0 -0
  227. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/api-client/package.json +0 -0
  228. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/api-client/src/index.ts +0 -0
  229. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/index.html +0 -0
  230. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/package.json +0 -0
  231. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/src/App.tsx +0 -0
  232. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/src/main.tsx +0 -0
  233. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/src/styles/base.css +0 -0
  234. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/src/styles/tokens.css +0 -0
  235. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/tests/App.test.tsx +0 -0
  236. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/tests/setup.ts +0 -0
  237. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/tsconfig.json +0 -0
  238. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app/vite.config.ts +0 -0
  239. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-flags-local/flags.test.ts +0 -0
  240. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-flags-local/flags.ts +0 -0
  241. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-flags-target/flags.test.ts +0 -0
  242. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-flags-target/flags.ts +0 -0
  243. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-route-client/Home.test.tsx +0 -0
  244. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-route-client/Home.tsx +0 -0
  245. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-route-plain/Home.test.tsx +0 -0
  246. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/app-route-plain/Home.tsx +0 -0
  247. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/features/users-keycloak/src/auth/Account.tsx +0 -0
  248. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/features/users-keycloak/src/auth/users.tsx +0 -0
  249. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/features/users-keycloak/tests/auth/Account.test.tsx +0 -0
  250. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/features/users-keycloak/tests/auth/users.test.ts +0 -0
  251. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/frontend-only-users-keycloak.json +0 -0
  252. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/frontend-only.json +0 -0
  253. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres-users-keycloak.json +0 -0
  254. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-fastify-postgres.json +0 -0
  255. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-fastify-users-keycloak.json +0 -0
  256. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-fastify.json +0 -0
  257. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-postgres-users-keycloak.json +0 -0
  258. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-postgres.json +0 -0
  259. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend-users-keycloak.json +0 -0
  260. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/frontends/react-vite/locks/typescript-backend.json +0 -0
  261. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/app/.gremlins.yaml +0 -0
  262. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/app/application/README.md +0 -0
  263. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/app/domain/README.md +0 -0
  264. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/app/health/health.go +0 -0
  265. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/app/health/health_test.go +0 -0
  266. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/event-port/application/ports/events/events.go +0 -0
  267. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/event-port/application/ports/events/events_test.go +0 -0
  268. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  269. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  270. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  271. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  272. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  273. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/branded-id-types.md +0 -0
  274. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/create-child-through-root.md +0 -0
  275. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/decider-pattern-order.md +0 -0
  276. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  277. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  278. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  279. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  280. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  281. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  282. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  283. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  284. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  285. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  286. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  287. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  288. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  289. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  290. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/money-value-object-factory.md +0 -0
  291. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  292. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  293. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  294. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  295. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  296. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  297. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  298. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  299. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/pledge-result-types.md +0 -0
  300. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  301. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  302. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  303. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  304. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  305. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/specification-can-pledge.md +0 -0
  306. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/test-decide-order-events.md +0 -0
  307. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  308. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  309. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  310. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  311. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  312. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  313. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  314. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  315. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  316. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  317. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/balance-view-projection.md +0 -0
  318. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  319. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/command-handler-loop.md +0 -0
  320. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  321. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/decide-withdraw-example.md +0 -0
  322. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  323. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  324. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/decider-type.md +0 -0
  325. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/decision-result-type.md +0 -0
  326. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  327. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/event-envelope-type.md +0 -0
  328. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/event-store-port-interface.md +0 -0
  329. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/event-store-port.md +0 -0
  330. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  331. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  332. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  333. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  334. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  335. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  336. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/order-placed-upcaster.md +0 -0
  337. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  338. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  339. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  340. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/todo-list-claiming.md +0 -0
  341. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  342. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  343. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  344. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  345. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  346. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  347. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  348. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  349. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  350. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  351. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  352. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  353. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  354. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  355. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  356. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  357. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  358. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  359. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  360. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  361. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  362. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  363. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  364. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  365. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  366. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  367. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  368. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  369. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  370. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  371. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  372. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  373. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  374. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  375. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  376. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  377. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  378. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  379. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  380. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  381. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  382. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  383. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  384. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  385. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  386. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  387. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/correct-complete-factory-object.md +0 -0
  388. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/correct-fresh-state-per-test.md +0 -0
  389. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/correct-import-real-schema.md +0 -0
  390. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  391. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/correct-testing-behavior-public-api.md +0 -0
  392. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  393. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  394. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  395. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  396. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  397. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  398. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  399. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  400. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/factory-basic-pattern.md +0 -0
  401. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/factory-complete-example.md +0 -0
  402. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/factory-composition.md +0 -0
  403. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/reach-validation-through-behavior.md +0 -0
  404. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  405. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/wrong-incomplete-factory-object.md +0 -0
  406. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  407. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  408. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/examples/testing/wrong-testing-implementation-detail.md +0 -0
  409. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/flags/flags/flags.go +0 -0
  410. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/flags/flags/flags_test.go +0 -0
  411. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/base/go.mod +0 -0
  412. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/base/go.sum +0 -0
  413. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/postgres/go.mod +0 -0
  414. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/postgres/go.sum +0 -0
  415. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/sqlite/go.mod +0 -0
  416. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/modules/sqlite/go.sum +0 -0
  417. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/scripts/go-coverage.py +0 -0
  418. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/go/scripts/go-mutation.py +0 -0
  419. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/.gitattributes +0 -0
  420. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/.mvn/wrapper/maven-wrapper.properties +0 -0
  421. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/config/checkstyle.xml +0 -0
  422. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/config/pmd-ruleset.xml +0 -0
  423. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/config/spotbugs-exclude.xml +0 -0
  424. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/mvnw +0 -0
  425. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/build/mvnw.cmd +0 -0
  426. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  427. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  428. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  429. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  430. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  431. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/branded-id-types.md +0 -0
  432. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/create-child-through-root.md +0 -0
  433. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/decider-pattern-order.md +0 -0
  434. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  435. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  436. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  437. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  438. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  439. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  440. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  441. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  442. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  443. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  444. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  445. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  446. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  447. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  448. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/money-value-object-factory.md +0 -0
  449. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  450. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  451. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  452. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  453. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  454. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  455. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  456. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  457. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/pledge-result-types.md +0 -0
  458. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  459. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  460. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  461. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  462. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  463. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/specification-can-pledge.md +0 -0
  464. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/test-decide-order-events.md +0 -0
  465. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  466. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  467. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  468. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  469. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  470. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  471. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  472. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  473. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  474. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  475. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/balance-view-projection.md +0 -0
  476. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  477. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/command-handler-loop.md +0 -0
  478. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  479. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/decide-withdraw-example.md +0 -0
  480. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  481. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  482. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/decider-type.md +0 -0
  483. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/decision-result-type.md +0 -0
  484. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  485. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/event-envelope-type.md +0 -0
  486. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/event-store-port-interface.md +0 -0
  487. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/event-store-port.md +0 -0
  488. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  489. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  490. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  491. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  492. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  493. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  494. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/order-placed-upcaster.md +0 -0
  495. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  496. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  497. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  498. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/todo-list-claiming.md +0 -0
  499. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  500. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  501. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  502. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  503. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  504. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  505. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  506. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  507. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  508. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  509. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  510. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  511. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  512. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  513. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  514. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  515. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  516. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  517. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  518. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  519. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  520. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  521. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  522. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  523. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  524. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  525. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  526. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  527. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  528. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  529. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  530. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  531. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  532. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  533. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  534. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  535. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  536. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  537. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  538. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  539. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  540. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  541. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  542. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  543. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  544. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  545. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/correct-complete-factory-object.md +0 -0
  546. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/correct-fresh-state-per-test.md +0 -0
  547. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/correct-import-real-schema.md +0 -0
  548. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  549. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/correct-testing-behavior-public-api.md +0 -0
  550. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  551. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  552. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  553. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  554. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  555. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  556. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  557. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  558. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/factory-basic-pattern.md +0 -0
  559. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/factory-complete-example.md +0 -0
  560. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/factory-composition.md +0 -0
  561. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/reach-validation-through-behavior.md +0 -0
  562. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  563. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/wrong-incomplete-factory-object.md +0 -0
  564. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  565. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  566. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/examples/testing/wrong-testing-implementation-detail.md +0 -0
  567. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/flags/src/main/java/com/example/deliverystarter/flags/Flags.java +0 -0
  568. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java/flags/src/test/java/com/example/deliverystarter/flags/FlagsTest.java +0 -0
  569. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/pom.xml +0 -0
  570. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
  571. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
  572. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
  573. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/src/main/resources/application.properties +0 -0
  574. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-quarkus/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
  575. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/pom.xml +0 -0
  576. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/ServiceApplication.java +0 -0
  577. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/application/README.md +0 -0
  578. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/domain/README.md +0 -0
  579. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/main/java/com/example/deliverystarter/health/HealthStatus.java +0 -0
  580. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/main/resources/application.properties +0 -0
  581. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/java-spring/app/src/test/java/com/example/deliverystarter/health/HealthStatusTest.java +0 -0
  582. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/app/pyproject.toml +0 -0
  583. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/app/src/delivery_starter/__init__.py +0 -0
  584. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/app/src/delivery_starter/application/README.md +0 -0
  585. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/app/src/delivery_starter/domain/README.md +0 -0
  586. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/app/tests/test_health.py +0 -0
  587. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/event-port/src/delivery_starter/application/ports/events.py +0 -0
  588. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/event-port/tests/test_events.py +0 -0
  589. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  590. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  591. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  592. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  593. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  594. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/branded-id-types.md +0 -0
  595. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/create-child-through-root.md +0 -0
  596. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/decider-pattern-order.md +0 -0
  597. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  598. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  599. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  600. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  601. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  602. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  603. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  604. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  605. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  606. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  607. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  608. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  609. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  610. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  611. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/money-value-object-factory.md +0 -0
  612. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  613. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  614. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  615. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  616. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  617. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  618. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  619. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  620. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/pledge-result-types.md +0 -0
  621. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  622. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  623. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  624. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  625. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  626. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/specification-can-pledge.md +0 -0
  627. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/test-decide-order-events.md +0 -0
  628. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  629. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  630. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  631. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  632. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  633. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  634. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  635. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  636. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  637. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  638. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/balance-view-projection.md +0 -0
  639. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  640. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/command-handler-loop.md +0 -0
  641. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  642. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/decide-withdraw-example.md +0 -0
  643. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  644. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  645. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/decider-type.md +0 -0
  646. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/decision-result-type.md +0 -0
  647. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  648. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/event-envelope-type.md +0 -0
  649. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/event-store-port-interface.md +0 -0
  650. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/event-store-port.md +0 -0
  651. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  652. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  653. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  654. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  655. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  656. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  657. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/order-placed-upcaster.md +0 -0
  658. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  659. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  660. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  661. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/todo-list-claiming.md +0 -0
  662. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  663. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  664. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  665. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  666. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  667. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  668. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  669. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  670. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  671. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  672. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  673. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  674. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  675. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  676. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  677. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  678. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  679. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  680. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  681. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  682. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  683. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  684. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  685. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  686. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  687. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  688. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  689. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  690. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  691. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  692. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  693. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  694. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  695. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  696. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  697. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  698. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  699. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  700. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  701. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  702. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  703. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  704. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  705. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  706. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  707. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  708. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/correct-complete-factory-object.md +0 -0
  709. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/correct-fresh-state-per-test.md +0 -0
  710. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/correct-import-real-schema.md +0 -0
  711. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  712. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/correct-testing-behavior-public-api.md +0 -0
  713. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  714. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  715. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  716. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  717. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  718. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  719. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  720. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  721. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/factory-basic-pattern.md +0 -0
  722. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/factory-complete-example.md +0 -0
  723. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/factory-composition.md +0 -0
  724. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/reach-validation-through-behavior.md +0 -0
  725. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  726. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/wrong-incomplete-factory-object.md +0 -0
  727. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  728. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  729. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/examples/testing/wrong-testing-implementation-detail.md +0 -0
  730. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/flags/src/delivery_starter/flags.py +0 -0
  731. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/flags/tests/test_flags.py +0 -0
  732. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/locks/uv-fastapi-postgres.lock +0 -0
  733. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/locks/uv-fastapi.lock +0 -0
  734. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/locks/uv-postgres.lock +0 -0
  735. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/python/locks/uv.lock +0 -0
  736. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/app/package.json +0 -0
  737. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/app/src/application/README.md +0 -0
  738. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/app/src/domain/README.md +0 -0
  739. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/app/src/health.ts +0 -0
  740. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/app/tests/health.test.ts +0 -0
  741. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/biome/biome.jsonc +0 -0
  742. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/biome/domain-purity.grit +0 -0
  743. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/accept-child-id-remove-exercise.md +0 -0
  744. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/acl-stripe-payment-translation.md +0 -0
  745. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/aggregate-sizing-occasion.md +0 -0
  746. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/aggregate-vs-read-model.md +0 -0
  747. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/always-valid-occasion-invariants.md +0 -0
  748. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/branded-id-types.md +0 -0
  749. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/create-child-through-root.md +0 -0
  750. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/decider-pattern-order.md +0 -0
  751. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/describe-order-exhaustive-switch.md +0 -0
  752. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/discriminated-union-pledge-result.md +0 -0
  753. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/domain-behavioral-tests.md +0 -0
  754. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/domain-service-pledge-contribution.md +0 -0
  755. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/domain-service-test-pledge-contribution.md +0 -0
  756. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/domain-service-vs-use-case.md +0 -0
  757. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/entity-rename-occasion.md +0 -0
  758. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/error-propagation-through-layers.md +0 -0
  759. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/exception-vs-result-type.md +0 -0
  760. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/explicit-return-pledge-no-events.md +0 -0
  761. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/fake-vs-mock-repository.md +0 -0
  762. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/in-process-event-dispatch.md +0 -0
  763. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/integration-test-order-repository.md +0 -0
  764. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/invariant-driven-vending-machine.md +0 -0
  765. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/money-value-object-factory.md +0 -0
  766. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/multiple-error-reasons-union.md +0 -0
  767. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/naming-signature-domain-vs-use-case.md +0 -0
  768. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/occasion-repository-interface.md +0 -0
  769. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/one-aggregate-per-transaction.md +0 -0
  770. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-repository-save.md +0 -0
  771. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/optimistic-locking-version-field.md +0 -0
  772. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/order-lifecycle-union.md +0 -0
  773. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/outbox-pattern-dispatch.md +0 -0
  774. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/pledge-result-types.md +0 -0
  775. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/process-manager-gift-purchase.md +0 -0
  776. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/property-based-test-pledge-budget.md +0 -0
  777. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/purity-test-domain-vs-presentation.md +0 -0
  778. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/readonly-array-child-collection.md +0 -0
  779. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/shared-kernel-package-layout.md +0 -0
  780. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/specification-can-pledge.md +0 -0
  781. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/test-decide-order-events.md +0 -0
  782. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/test-error-funding-closed.md +0 -0
  783. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/test-factory-get-occasion.md +0 -0
  784. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/ubiquitous-language-glossary-types.md +0 -0
  785. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/use-case-test-pledge-contribution.md +0 -0
  786. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/wrong-catch-rethrow-context.md +0 -0
  787. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/wrong-exception-for-business-rule.md +0 -0
  788. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/wrong-generic-error-type.md +0 -0
  789. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/domain-driven-design/zod-branded-type-bridging.md +0 -0
  790. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/account-decider-and-evolve.md +0 -0
  791. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/balance-view-apply-fold.md +0 -0
  792. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/balance-view-projection.md +0 -0
  793. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/catch-up-checkpoint-transaction.md +0 -0
  794. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/command-handler-loop.md +0 -0
  795. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/command-handler-retry-loop.md +0 -0
  796. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/decide-withdraw-example.md +0 -0
  797. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/decider-behaviour-tests.md +0 -0
  798. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/decider-insufficient-funds-test.md +0 -0
  799. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/decider-type.md +0 -0
  800. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/decision-result-type.md +0 -0
  801. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/deposit-money-command-with-timestamp.md +0 -0
  802. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/event-envelope-type.md +0 -0
  803. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/event-store-port-interface.md +0 -0
  804. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/event-store-port.md +0 -0
  805. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/evolve-behaviour-via-withdraw-limit.md +0 -0
  806. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/generic-rehydrate-fold.md +0 -0
  807. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/idempotent-projection-dedupe.md +0 -0
  808. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/in-memory-event-store-fake.md +0 -0
  809. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/inline-view-in-append-transaction.md +0 -0
  810. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/live-view-bounded-fold.md +0 -0
  811. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/order-placed-upcaster.md +0 -0
  812. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/projection-behaviour-tests.md +0 -0
  813. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/rehydrate-left-fold.md +0 -0
  814. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/tags-of-from-identifying-attributes.md +0 -0
  815. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/todo-list-claiming.md +0 -0
  816. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/tolerant-reader-read-path.md +0 -0
  817. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/event-sourcing/upcaster-behaviour-test.md +0 -0
  818. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/adapter-error-translation.md +0 -0
  819. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-business-logic-in-adapter.md +0 -0
  820. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-bypass-adapter.md +0 -0
  821. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-domain-depends-on-infrastructure.md +0 -0
  822. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-pattern-shaped-names.md +0 -0
  823. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/antipattern-technology-shaped-port.md +0 -0
  824. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-http-entrypoint.md +0 -0
  825. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/composition-root-queue-entrypoint.md +0 -0
  826. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-dashboard-query-function.md +0 -0
  827. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cqrs-lite-domain-transform-read-data.md +0 -0
  828. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-auth-driving-adapter.md +0 -0
  829. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-authorization.md +0 -0
  830. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-domain-probe-port.md +0 -0
  831. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-error-formatting-http.md +0 -0
  832. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-technical-telemetry-adapters.md +0 -0
  833. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-transactional-persistence-port.md +0 -0
  834. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/cross-cutting-use-case-identity.md +0 -0
  835. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/dependency-injection-order-placement.md +0 -0
  836. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/driven-adapter-and-fake-implementation.md +0 -0
  837. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driven-port-fake.md +0 -0
  838. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/greenfield-driving-port-constant.md +0 -0
  839. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-after-thin-entrypoint.md +0 -0
  840. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-before-tangled-handler.md +0 -0
  841. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-adapter.md +0 -0
  842. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-create-use-case.md +0 -0
  843. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-domain-function.md +0 -0
  844. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/incremental-extract-port-interface.md +0 -0
  845. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/port-interface-definitions.md +0 -0
  846. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/reads-vs-writes-query-function-example.md +0 -0
  847. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-create-test-db-helper.md +0 -0
  848. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-domain-unit-test-example.md +0 -0
  849. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-fake-order-repo.md +0 -0
  850. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-narrow-integration-tests.md +0 -0
  851. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-recording-fake-instrumentation.md +0 -0
  852. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/testing-use-case-primary-boundary.md +0 -0
  853. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-function-record-pledge.md +0 -0
  854. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-types.md +0 -0
  855. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-domain-unit-test.md +0 -0
  856. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driven-adapters.md +0 -0
  857. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-driving-adapter-entrypoint.md +0 -0
  858. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-fakes-for-testing.md +0 -0
  859. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-port-interfaces.md +0 -0
  860. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-orchestration.md +0 -0
  861. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/hexagonal-architecture/worked-example-use-case-test.md +0 -0
  862. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/correct-complete-factory-object.md +0 -0
  863. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/correct-fresh-state-per-test.md +0 -0
  864. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/correct-import-real-schema.md +0 -0
  865. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/correct-inline-tested-through-behavior.md +0 -0
  866. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/correct-testing-behavior-public-api.md +0 -0
  867. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-correct.md +0 -0
  868. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-assert-called-only-wrong.md +0 -0
  869. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-branch-coverage-correct.md +0 -0
  870. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-happy-path-only-wrong.md +0 -0
  871. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-correct.md +0 -0
  872. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-mock-function-under-test-wrong.md +0 -0
  873. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-correct.md +0 -0
  874. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/coverage-theater-trivial-getter-setter-wrong.md +0 -0
  875. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/factory-basic-pattern.md +0 -0
  876. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/factory-complete-example.md +0 -0
  877. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/factory-composition.md +0 -0
  878. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/reach-validation-through-behavior.md +0 -0
  879. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/wrong-extracted-helper-with-own-test.md +0 -0
  880. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/wrong-incomplete-factory-object.md +0 -0
  881. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/wrong-redefine-schema-in-test.md +0 -0
  882. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/wrong-shared-mutable-fixture.md +0 -0
  883. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/examples/testing/wrong-testing-implementation-detail.md +0 -0
  884. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/flags/src/flags.ts +0 -0
  885. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/flags/tests/flags.test.ts +0 -0
  886. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/locks/package-lock-fastify-postgres.json +0 -0
  887. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/locks/package-lock-fastify.json +0 -0
  888. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/locks/package-lock-postgres.json +0 -0
  889. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/languages/typescript/locks/package-lock.json +0 -0
  890. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/.specify/presets/.registry +0 -0
  891. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/.specify/presets/event-modelling/preset.yml +0 -0
  892. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/constitution-template.md +0 -0
  893. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/plan-template.md +0 -0
  894. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/.specify/presets/event-modelling/templates/tasks-template.md +0 -0
  895. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/commands/example-map.md +0 -0
  896. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/event-modelling/commands/validate-code-against-model.md +0 -0
  897. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/.specify/presets/.registry +0 -0
  898. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/.specify/presets/standard/preset.yml +0 -0
  899. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/.specify/presets/standard/templates/constitution-template.md +0 -0
  900. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/docs/adr/0001-record-architecture-decisions.md +0 -0
  901. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/skills/adversarial-testing/SKILL.md +0 -0
  902. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
  903. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/profiles/standard/skills/architecture-decisions/SKILL.md +0 -0
  904. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/README.md +0 -0
  905. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/bootstrap/main.tf +0 -0
  906. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/bootstrap/outputs.tf +0 -0
  907. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/bootstrap/variables.tf +0 -0
  908. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/scripts/bootstrap.py +0 -0
  909. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/scripts/check-flags.py +0 -0
  910. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/scripts/deploy.py +0 -0
  911. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/auth0.tf +0 -0
  912. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/cognito_customers.tf +0 -0
  913. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/cognito_staff.tf +0 -0
  914. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/flags.auto.tfvars +0 -0
  915. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/flags.tf +0 -0
  916. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/frontend.tf +0 -0
  917. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/ingress.tf +0 -0
  918. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/main.tf +0 -0
  919. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/network.tf +0 -0
  920. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/no-auth0.tf +0 -0
  921. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/no-frontend.tf +0 -0
  922. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/outputs.tf +0 -0
  923. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/production.tfvars +0 -0
  924. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/rds.tf +0 -0
  925. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/staging.tfvars +0 -0
  926. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/variables.tf +0 -0
  927. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/aws/service/versions.tf +0 -0
  928. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/README.md +0 -0
  929. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/bootstrap/main.tf +0 -0
  930. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/bootstrap/outputs.tf +0 -0
  931. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/bootstrap/variables.tf +0 -0
  932. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/scripts/bootstrap.py +0 -0
  933. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/scripts/check-flags.py +0 -0
  934. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/scripts/deploy.py +0 -0
  935. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/auth0.tf +0 -0
  936. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/entra_staff.tf +0 -0
  937. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/flags.auto.tfvars +0 -0
  938. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/flags.tf +0 -0
  939. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/frontend.tf +0 -0
  940. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/ingress.tf +0 -0
  941. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/main.tf +0 -0
  942. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/no-auth0.tf +0 -0
  943. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/no-frontend.tf +0 -0
  944. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/outputs.tf +0 -0
  945. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/postgres.tf +0 -0
  946. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/production.tfvars +0 -0
  947. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/staging.tfvars +0 -0
  948. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/variables.tf +0 -0
  949. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/targets/azure/service/versions.tf +0 -0
  950. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/.specify/extensions.yml +0 -0
  951. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/adr/0001-record-architecture-decisions.md +0 -0
  952. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/agent-harnesses.md +0 -0
  953. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/delegated-agent-safety.md +0 -0
  954. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/event-model/README.md +0 -0
  955. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/event-model/model.yaml +0 -0
  956. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/event-modeling-to-code.md +0 -0
  957. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/docs/first-slice.md +0 -0
  958. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/benchmark.py +0 -0
  959. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/drive.py +0 -0
  960. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/models.py +0 -0
  961. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/project.py +0 -0
  962. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/agents/registry.json +0 -0
  963. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-codegraph.py +0 -0
  964. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-constitution.py +0 -0
  965. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-decisions.py +0 -0
  966. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-imports.py +0 -0
  967. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-migrations.py +0 -0
  968. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-slice-scope.py +0 -0
  969. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-speckit.py +0 -0
  970. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-styles.py +0 -0
  971. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/check-ux-gates.py +0 -0
  972. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/board-plan.test.ts +0 -0
  973. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/board-plan.ts +0 -0
  974. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/check.py +0 -0
  975. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/check.ts +0 -0
  976. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/drawio.test.ts +0 -0
  977. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/drawio.ts +0 -0
  978. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/example-model.ts +0 -0
  979. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/mermaid.ts +0 -0
  980. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/model.ts +0 -0
  981. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/package.json +0 -0
  982. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/page.ts +0 -0
  983. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/palette.ts +0 -0
  984. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/patch-mermaid-swimlanes.ts +0 -0
  985. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/readme.ts +0 -0
  986. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/render-drawio.ts +0 -0
  987. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/render.ts +0 -0
  988. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/requirements.txt +0 -0
  989. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/validate.ts +0 -0
  990. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/event-model/workspace.ts +0 -0
  991. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/codegraph/init.py +0 -0
  992. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/guidance.py +0 -0
  993. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/menu.py +0 -0
  994. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/project.py +0 -0
  995. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/uipro/init.py +0 -0
  996. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/extensions/ux-gates/init.py +0 -0
  997. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/scripts/test_benchmark.py +0 -0
  998. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/LICENSE +0 -0
  999. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/REFERENCES.md +0 -0
  1000. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/acceptance-review/LICENSE +0 -0
  1001. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/acceptance-review/SKILL.md +0 -0
  1002. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/acceptance-review/agents/openai.yaml +0 -0
  1003. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/acceptance-review/references/source-notes.md +0 -0
  1004. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/adversarial-testing/SKILL.md +0 -0
  1005. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/adversarial-testing/resources/attack-catalogue.md +0 -0
  1006. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/LICENSE +0 -0
  1007. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/SKILL.md +0 -0
  1008. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/api-evolution.md +0 -0
  1009. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/api-security.md +0 -0
  1010. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/auth-security.md +0 -0
  1011. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/http-fundamentals.md +0 -0
  1012. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/problem-details.md +0 -0
  1013. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/api-design/resources/source-notes.md +0 -0
  1014. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/architecture-decisions/SKILL.md +0 -0
  1015. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/SKILL.md +0 -0
  1016. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/agents/openai.yaml +0 -0
  1017. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/references/adoption-and-granularity.md +0 -0
  1018. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/references/aggregation-and-resilience.md +0 -0
  1019. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/references/alternatives.md +0 -0
  1020. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-design/references/upstream-identity.md +0 -0
  1021. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/SKILL.md +0 -0
  1022. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/agents/openai.yaml +0 -0
  1023. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/browser-session-coordination.md +0 -0
  1024. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/endpoint-protection.md +0 -0
  1025. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/enforcement-and-testing.md +0 -0
  1026. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/hexagonal-auth-boundaries.md +0 -0
  1027. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/hono-example.md +0 -0
  1028. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/bff-entry-points/references/realtime-entry-points.md +0 -0
  1029. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/characterisation-tests/SKILL.md +0 -0
  1030. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/characterisation-tests/resources/modern-tooling.md +0 -0
  1031. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/characterisation-tests/resources/writing-process.md +0 -0
  1032. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/ci-debugging/SKILL.md +0 -0
  1033. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/LICENSE +0 -0
  1034. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/SKILL.md +0 -0
  1035. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/resources/composability.md +0 -0
  1036. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/resources/output-architecture.md +0 -0
  1037. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/resources/source-notes.md +0 -0
  1038. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/resources/stream-contracts.md +0 -0
  1039. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/cli-design/resources/testing-cli.md +0 -0
  1040. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/LICENSE +0 -0
  1041. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/SKILL.md +0 -0
  1042. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/agents/openai.yaml +0 -0
  1043. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/references/deepening.md +0 -0
  1044. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/references/design-it-twice.md +0 -0
  1045. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/codebase-design/references/source-notes.md +0 -0
  1046. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/debugging/SKILL.md +0 -0
  1047. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/debugging/agents/openai.yaml +0 -0
  1048. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/debugging/references/source-notes.md +0 -0
  1049. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/diagrams/NOTICE +0 -0
  1050. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/diagrams/SKILL.md +0 -0
  1051. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/diagrams/references/source-notes.md +0 -0
  1052. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/SKILL.md +0 -0
  1053. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/aggregate-design.md +0 -0
  1054. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/bounded-contexts.md +0 -0
  1055. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/domain-events.md +0 -0
  1056. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/domain-services.md +0 -0
  1057. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/error-modeling.md +0 -0
  1058. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/modelling-process.md +0 -0
  1059. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/references.md +0 -0
  1060. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/domain-driven-design/resources/testing-by-layer.md +0 -0
  1061. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/double-check/SKILL.md +0 -0
  1062. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/double-check/resources/brief-template.md +0 -0
  1063. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/double-check/resources/providers.md +0 -0
  1064. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/evaluate-existing-solutions/SKILL.md +0 -0
  1065. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/evaluate-existing-solutions/agents/openai.yaml +0 -0
  1066. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/evaluate-existing-solutions/assets/solution-decision-template.md +0 -0
  1067. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/evaluate-existing-solutions/references/evaluation-dimensions.md +0 -0
  1068. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/evaluate-existing-solutions/references/evidence-and-currentness.md +0 -0
  1069. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-modeling/NOTICE +0 -0
  1070. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-modeling/SKILL.md +0 -0
  1071. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-modeling/references/gwt-template.md +0 -0
  1072. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-modeling/references/nine-steps.md +0 -0
  1073. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/SKILL.md +0 -0
  1074. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/decider-and-rehydration.md +0 -0
  1075. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/event-store.md +0 -0
  1076. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/event-versioning.md +0 -0
  1077. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/modelling-events.md +0 -0
  1078. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/production-concerns.md +0 -0
  1079. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/projections-and-read-models.md +0 -0
  1080. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/references.md +0 -0
  1081. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/testing-event-sourced-systems.md +0 -0
  1082. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/event-sourcing/resources/when-to-use-event-sourcing.md +0 -0
  1083. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/expectations/SKILL.md +0 -0
  1084. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/find-gaps/SKILL.md +0 -0
  1085. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/find-skills/LICENSE +0 -0
  1086. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/find-skills/SKILL.md +0 -0
  1087. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/find-skills/references/source-notes.md +0 -0
  1088. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/finding-seams/SKILL.md +0 -0
  1089. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/finding-seams/resources/creating-seams.md +0 -0
  1090. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/finding-seams/resources/oop-patterns.md +0 -0
  1091. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/finding-seams/resources/seam-types.md +0 -0
  1092. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/folder-structure/SKILL.md +0 -0
  1093. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/folder-structure/agents/openai.yaml +0 -0
  1094. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/front-end-testing/SKILL.md +0 -0
  1095. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/front-end-testing/resources/async-patterns.md +0 -0
  1096. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/front-end-testing/resources/dom-testing-library-legacy.md +0 -0
  1097. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/front-end-testing/resources/msw.md +0 -0
  1098. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/front-end-testing/resources/playwright-e2e.md +0 -0
  1099. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/frontend-design/LICENSE +0 -0
  1100. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/frontend-design/SKILL.md +0 -0
  1101. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/frontend-design/references/source-notes.md +0 -0
  1102. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/functional/SKILL.md +0 -0
  1103. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/functional/resources/composition-patterns.md +0 -0
  1104. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/functional/resources/immutability-catalog.md +0 -0
  1105. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/global-event-model/SKILL.md +0 -0
  1106. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/SKILL.md +0 -0
  1107. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/cqrs-lite.md +0 -0
  1108. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/cross-cutting-concerns.md +0 -0
  1109. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/greenfield-sequence.md +0 -0
  1110. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/incremental-adoption.md +0 -0
  1111. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/references.md +0 -0
  1112. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/testing-hex-arch.md +0 -0
  1113. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/hexagonal-architecture/resources/worked-example.md +0 -0
  1114. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/improve-codebase-architecture/LICENSE +0 -0
  1115. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/improve-codebase-architecture/SKILL.md +0 -0
  1116. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/improve-codebase-architecture/agents/openai.yaml +0 -0
  1117. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/improve-codebase-architecture/references/html-report.md +0 -0
  1118. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/improve-codebase-architecture/references/source-notes.md +0 -0
  1119. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/mutation-testing/SKILL.md +0 -0
  1120. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/mutation-testing/resources/mutator-rules.md +0 -0
  1121. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/observability/SKILL.md +0 -0
  1122. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/observability/resources/node-patterns.md +0 -0
  1123. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/observability/resources/references.md +0 -0
  1124. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/observability/resources/slo-alerting.md +0 -0
  1125. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/observability/resources/testing-telemetry.md +0 -0
  1126. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/planning/SKILL.md +0 -0
  1127. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/production-parity-skill-builder/SKILL.md +0 -0
  1128. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/production-parity-skill-builder/resources/generated-skill-template.md +0 -0
  1129. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/production-parity-skill-builder/resources/parity-surface-catalog.md +0 -0
  1130. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/production-parity-skill-builder/resources/question-patterns.md +0 -0
  1131. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/react-testing/SKILL.md +0 -0
  1132. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/react-testing/resources/testing-library-react-legacy.md +0 -0
  1133. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/reduce-system-complexity/LICENSE +0 -0
  1134. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/reduce-system-complexity/SKILL.md +0 -0
  1135. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/reduce-system-complexity/agents/openai.yaml +0 -0
  1136. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/reduce-system-complexity/references/ledger-template.md +0 -0
  1137. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/reduce-system-complexity/references/source-notes.md +0 -0
  1138. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/refactoring/SKILL.md +0 -0
  1139. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/SKILL.md +0 -0
  1140. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/agents/openai.yaml +0 -0
  1141. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/references/attack-and-test-catalog.md +0 -0
  1142. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/references/oidc-validation.md +0 -0
  1143. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/references/review-and-delivery.md +0 -0
  1144. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/references/rfc9700-control-catalog.md +0 -0
  1145. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/secure-oauth-oidc/references/standards-map.md +0 -0
  1146. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/specification/SKILL.md +0 -0
  1147. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/specification/resources/references.md +0 -0
  1148. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/specification/resources/spec-review-template.html +0 -0
  1149. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/stack-pull-requests/SKILL.md +0 -0
  1150. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/stack-pull-requests/agents/openai.yaml +0 -0
  1151. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/stack-pull-requests/references/source-notes.md +0 -0
  1152. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/story-splitting/SKILL.md +0 -0
  1153. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/story-splitting/resources/pattern-catalog.md +0 -0
  1154. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/story-splitting/resources/source-notes.md +0 -0
  1155. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/storyboard/SKILL.md +0 -0
  1156. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/SKILL.md +0 -0
  1157. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/agents/openai.yaml +0 -0
  1158. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/references/backend-patterns.md +0 -0
  1159. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/references/enforcement-and-migration.md +0 -0
  1160. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/references/frontend-patterns.md +0 -0
  1161. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/references/research-notes.md +0 -0
  1162. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/structure-codebase/references/visible-hexagon.md +0 -0
  1163. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/tdd/SKILL.md +0 -0
  1164. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/tdd/resources/vitest-watch-feedback.md +0 -0
  1165. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/SKILL.md +0 -0
  1166. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/resources/assessment-patterns.md +0 -0
  1167. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/resources/course-generation.md +0 -0
  1168. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/resources/html-lessons.md +0 -0
  1169. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/resources/learning-science.md +0 -0
  1170. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/teach-me/resources/session-management.md +0 -0
  1171. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/LICENSE +0 -0
  1172. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/SKILL.md +0 -0
  1173. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/agent-docs.md +0 -0
  1174. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/doc-types.md +0 -0
  1175. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/docs-quality.md +0 -0
  1176. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/formatting.md +0 -0
  1177. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/readme.md +0 -0
  1178. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/references.md +0 -0
  1179. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/technical-writing/resources/source-notes.md +0 -0
  1180. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/test-design-reviewer/SKILL.md +0 -0
  1181. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/test-design-reviewer/references/source-notes.md +0 -0
  1182. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/testing/SKILL.md +0 -0
  1183. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/twelve-factor/SKILL.md +0 -0
  1184. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/twelve-factor/resources/node-patterns.md +0 -0
  1185. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/typescript-strict/SKILL.md +0 -0
  1186. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/ubiquitous-language/SKILL.md +0 -0
  1187. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/ubiquitous-language/resources/glossary-format.md +0 -0
  1188. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/ubiquitous-language/resources/language-protocol.md +0 -0
  1189. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/web-interface-guidelines/LICENSE +0 -0
  1190. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/web-interface-guidelines/SKILL.md +0 -0
  1191. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/web-interface-guidelines/references/guidelines.md +0 -0
  1192. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/web-interface-guidelines/references/source-notes.md +0 -0
  1193. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/wtf/LICENSE +0 -0
  1194. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/wtf/SKILL.md +0 -0
  1195. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/wtf/agents/openai.yaml +0 -0
  1196. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/assets/toolkit/skills/wtf/references/source-notes.md +0 -0
  1197. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/catalog.json +0 -0
  1198. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/README.md +0 -0
  1199. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/drawio-canvas.md +0 -0
  1200. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/uipro-extension.md +0 -0
  1201. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/ux-design-skills.md +0 -0
  1202. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/changelog.d/ux-gates-extension.md +0 -0
  1203. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/pyproject.toml +0 -0
  1204. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/__init__.py +0 -0
  1205. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/__main__.py +0 -0
  1206. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/adopt.py +0 -0
  1207. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/adopt_report.py +0 -0
  1208. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/assets.py +0 -0
  1209. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/axes.py +0 -0
  1210. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/backends.py +0 -0
  1211. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/capabilities.py +0 -0
  1212. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/catalog.py +0 -0
  1213. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/catch_up.py +0 -0
  1214. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/changelog.py +0 -0
  1215. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/cli_adopt.py +0 -0
  1216. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/cli_prompts.py +0 -0
  1217. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/converge.py +0 -0
  1218. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/convergence.py +0 -0
  1219. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/delivery_facts.py +0 -0
  1220. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/ecosystems.py +0 -0
  1221. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/errors.py +0 -0
  1222. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/examples.py +0 -0
  1223. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/extensions.py +0 -0
  1224. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/features.py +0 -0
  1225. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/images.py +0 -0
  1226. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/layout.py +0 -0
  1227. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/manifest.py +0 -0
  1228. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/migrate.py +0 -0
  1229. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/naming.py +0 -0
  1230. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/origin.py +0 -0
  1231. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/platform.py +0 -0
  1232. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/preflight.py +0 -0
  1233. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/probes.py +0 -0
  1234. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/programme.py +0 -0
  1235. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/__init__.py +0 -0
  1236. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/adopted.py +0 -0
  1237. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/adopted_ci.py +0 -0
  1238. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/adopted_targets.py +0 -0
  1239. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/adversary.py +0 -0
  1240. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/agent_targets.py +0 -0
  1241. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/agents.py +0 -0
  1242. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/aws_docs.py +0 -0
  1243. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/azure_docs.py +0 -0
  1244. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/backing_service_prose.py +0 -0
  1245. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/backing_services.py +0 -0
  1246. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/benchmark.py +0 -0
  1247. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/biome.py +0 -0
  1248. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/ci_services.py +0 -0
  1249. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/ci_workflows.py +0 -0
  1250. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/compose.py +0 -0
  1251. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/composition.py +0 -0
  1252. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/constitution_journey.py +0 -0
  1253. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/converge_stage.py +0 -0
  1254. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/convergence_page.py +0 -0
  1255. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/cruise_record.py +0 -0
  1256. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/cruise_unblock.py +0 -0
  1257. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/demo_stop.py +0 -0
  1258. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/deploy_workflow.py +0 -0
  1259. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/design_page.py +0 -0
  1260. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/docs.py +0 -0
  1261. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/docs_index.py +0 -0
  1262. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/drive_adoption.py +0 -0
  1263. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/drive_settings.py +0 -0
  1264. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/entry_stores.py +0 -0
  1265. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/event_model.py +0 -0
  1266. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/evolving.py +0 -0
  1267. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/existing.py +0 -0
  1268. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/flag_route.py +0 -0
  1269. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/flags.py +0 -0
  1270. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/frontend.py +0 -0
  1271. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/gitignore.py +0 -0
  1272. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/ground_command.py +0 -0
  1273. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/infra.py +0 -0
  1274. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/init_production.py +0 -0
  1275. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/integration.py +0 -0
  1276. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/__init__.py +0 -0
  1277. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/go.py +0 -0
  1278. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/java.py +0 -0
  1279. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/java_quarkus.py +0 -0
  1280. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/java_spring.py +0 -0
  1281. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/python.py +0 -0
  1282. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/languages/typescript.py +0 -0
  1283. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/makefile.py +0 -0
  1284. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/metadata.py +0 -0
  1285. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/model_targets.py +0 -0
  1286. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/model_to_code.py +0 -0
  1287. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/mutation.py +0 -0
  1288. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/native_commands.py +0 -0
  1289. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/openapi.py +0 -0
  1290. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/parallel_slices.py +0 -0
  1291. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/pin_commands.py +0 -0
  1292. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/pins.py +0 -0
  1293. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/production.py +0 -0
  1294. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/provisioning.py +0 -0
  1295. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/read_side_layouts.py +0 -0
  1296. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/renovate.py +0 -0
  1297. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/repository.py +0 -0
  1298. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/rules.py +0 -0
  1299. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/run_skill.py +0 -0
  1300. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/service_layouts.py +0 -0
  1301. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/shared_packages.py +0 -0
  1302. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/skills_page.py +0 -0
  1303. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/stage_models.py +0 -0
  1304. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/strangle_command.py +0 -0
  1305. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/structure_page.py +0 -0
  1306. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/target_docs.py +0 -0
  1307. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/whats_next.py +0 -0
  1308. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/project/where_are_we.py +0 -0
  1309. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/quick_wins.py +0 -0
  1310. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/replay.py +0 -0
  1311. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/resurvey.py +0 -0
  1312. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/scaffold.py +0 -0
  1313. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/selection.py +0 -0
  1314. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/services.py +0 -0
  1315. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/strategy.py +0 -0
  1316. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/structure.py +0 -0
  1317. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/survey.py +0 -0
  1318. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/targets.py +0 -0
  1319. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/tooling.py +0 -0
  1320. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/toolkit.py +0 -0
  1321. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/upgrade.py +0 -0
  1322. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/src/slipwai/versions.py +0 -0
  1323. {slipwai-1.2.0.dev19 → slipwai-1.2.0.dev23}/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.dev19
3
+ Version: 1.2.0.dev23
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
@@ -82,7 +82,8 @@ It is not a one-way door. You can run the factory again inside a project it made
82
82
 
83
83
  - **`slipwai add-service` and `slipwai add-frontend`** read `project.json` and regenerate only the files
84
84
  that list the project's applications. The factory derives that set by generating the project twice and
85
- comparing the results, so it cannot drift from a hand-kept list.
85
+ comparing the results, so it cannot drift from a hand-kept list. **`slipwai describe-service`** records
86
+ what a service already there is for — its purpose and its bounded contexts — and regenerates the same way.
86
87
  - **`./init`** answers the event store, HTTP, staff identity and customer identity questions again, by
87
88
  removing what the old answers brought.
88
89
 
@@ -53,7 +53,8 @@ It is not a one-way door. You can run the factory again inside a project it made
53
53
 
54
54
  - **`slipwai add-service` and `slipwai add-frontend`** read `project.json` and regenerate only the files
55
55
  that list the project's applications. The factory derives that set by generating the project twice and
56
- comparing the results, so it cannot drift from a hand-kept list.
56
+ comparing the results, so it cannot drift from a hand-kept list. **`slipwai describe-service`** records
57
+ what a service already there is for — its purpose and its bounded contexts — and regenerates the same way.
57
58
  - **`./init`** answers the event store, HTTP, staff identity and customer identity questions again, by
58
59
  removing what the old answers brought.
59
60
 
@@ -0,0 +1 @@
1
+ 1.2.0.dev23
@@ -38,6 +38,13 @@ add it to `.specify/presets/event-modelling/templates/` and declare it under `pr
38
38
  unquoted `version: 1.0` parses as a float and Spec Kit reports the whole preset as corrupted without naming
39
39
  the field.
40
40
 
41
+ From Spec Kit 1.0.9 on, its bash scripts compose the templates a preset declares with PyYAML, on the bare
42
+ `python3` they call — without it, `.specify/scripts/bash/create-new-feature.sh` stops with "PyYAML is
43
+ required to resolve preset template composition". `./init` checks for that after installing Spec Kit and
44
+ installs it where it can: into the user site, or — where this Python refuses pip outside a venv (PEP 668:
45
+ Homebrew's, Debian's) — into a venv at `.delivery-tools/venv` that shares the system's packages, printing the
46
+ `PATH` line that puts it first. Rerun `./init` after changing the Python on your PATH.
47
+
41
48
  `make check-speckit` enforces all of this and runs inside `make verify` — in-place edits, deleted managed
42
49
  files, a preset with no or invalid `preset.yml`, and a declared override whose file is missing (which
43
50
  silently falls back to the core template). It reads the committed manifests directly rather than shelling
@@ -37,6 +37,13 @@ add it to `.specify/presets/standard/templates/` and declare it under `provides.
37
37
  unquoted `version: 1.0` parses as a float and Spec Kit reports the whole preset as corrupted without naming
38
38
  the field.
39
39
 
40
+ From Spec Kit 1.0.9 on, its bash scripts compose the templates a preset declares with PyYAML, on the bare
41
+ `python3` they call — without it, `.specify/scripts/bash/create-new-feature.sh` stops with "PyYAML is
42
+ required to resolve preset template composition". `./init` checks for that after installing Spec Kit and
43
+ installs it where it can: into the user site, or — where this Python refuses pip outside a venv (PEP 668:
44
+ Homebrew's, Debian's) — into a venv at `.delivery-tools/venv` that shares the system's packages, printing the
45
+ `PATH` line that puts it first. Rerun `./init` after changing the Python on your PATH.
46
+
40
47
  `make check-speckit` enforces all of this and runs inside `make verify` — in-place edits, deleted managed
41
48
  files, a preset with no or invalid `preset.yml`, and a declared override whose file is missing (which
42
49
  silently falls back to the core template). It reads the committed manifests directly rather than shelling
@@ -14,6 +14,12 @@ fresh context, until the last line of an iteration says `done`, a person stops i
14
14
  python3 scripts/agents/cruise.py status # what the log says the run is doing
15
15
  python3 scripts/agents/cruise.py resume # print the checkpoint into a compacted context; nothing when none
16
16
  python3 scripts/agents/cruise.py compacting # stamp the checkpoint before the harness compacts
17
+ python3 scripts/agents/cruise.py loop # what is reading this session's last line: the runner, or nobody
18
+ python3 scripts/agents/cruise.py stopping # Claude Code's Stop hook: refuse to end a turn mid-iteration
19
+
20
+ `run` marks every session it starts with `CRUISE_RUNNER=1` and `CRUISE_ITERATION=<n>`, which is how `loop` and
21
+ `stopping` tell a runner's iteration from a `/cruise` a person typed — where nothing reads the last line, so
22
+ `continue` is not an end the ladder has, and the session goes on to the next unit instead.
17
23
 
18
24
  A person stops a run with `touch .specify/cruise.stop`, or by interrupting this script: the iteration under
19
25
  way is killed, its increment commits are on the slice branch, and the next iteration re-derives from disk.
@@ -54,6 +60,15 @@ CHECKPOINT = ROOT / "specs/cruise-checkpoint.md"
54
60
  RESUME = ("cruise: this session is a /cruise iteration whose context was compacted. The checkpoint below is what "
55
61
  "the summary lost; read it before acting, then commands/cruise.md for the rules it names — run "
56
62
  "commands/drive.md as written, decide at its stops by the stop table, end with one of the four last lines.")
63
+ # The two variables `run` sets in every session it starts: what tells a runner's iteration from a typed one.
64
+ RUNNER_VARIABLE, ITERATION_VARIABLE = "CRUISE_RUNNER", "CRUISE_ITERATION"
65
+ # What a session is told when nothing reads its last line — the same words `commands/cruise.md` carries.
66
+ UNREAD = ("no outer loop is reading this: `cruise: continue` is not an end here, so the ladder goes on to the next "
67
+ "unit in this session and ends only with `done`, `parked` or `stopped`; `make cruise` runs it unattended")
68
+ # How many times the Stop hook holds a turn against one checkpoint before it lets go: the command rewrites the
69
+ # checkpoint at every stage boundary, so a checkpoint held this often without a rewrite is a session that is
70
+ # not moving, and a hook that never let go would spend tokens forever on it.
71
+ HOLD_LIMIT = 3
57
72
  REGISTRY = Path(__file__).with_name("registry.json")
58
73
  INTEGRATION = ROOT / ".specify/integration.json"
59
74
  # Every setting: the values it takes — a tuple of words, or a kind — its default, and what it controls. The
@@ -237,9 +252,10 @@ def child_environment(harness: dict[str, Any]) -> dict[str, str]:
237
252
  return environment
238
253
 
239
254
 
240
- def iterate(template: str, prompt: str, environment: dict[str, str]) -> str | None:
241
- """Run one iteration, echoing its output, and return its last line."""
255
+ def iterate(template: str, prompt: str, environment: dict[str, str], iteration: int) -> str | None:
256
+ """Run one iteration, marked as the runner's, echoing its output, and return its last line."""
242
257
  command = template.replace("{prompt}", shlex.quote(prompt))
258
+ environment = {**environment, RUNNER_VARIABLE: "1", ITERATION_VARIABLE: str(iteration)}
243
259
  last = None
244
260
  with subprocess.Popen(command, shell=True, cwd=ROOT, text=True, stdout=subprocess.PIPE,
245
261
  stderr=subprocess.STDOUT, env=environment) as process:
@@ -270,6 +286,91 @@ def compacting() -> None:
270
286
  handle.write(f"- **Compacted:** {now()}\n")
271
287
 
272
288
 
289
+ def loop() -> None:
290
+ """Say what is reading this session's last line, so an iteration knows what its end means."""
291
+ if os.environ.get(RUNNER_VARIABLE):
292
+ print(f"cruise: the outer loop (scripts/agents/cruise.py run) started this session as iteration "
293
+ f"{os.environ.get(ITERATION_VARIABLE, '?')} and reads its last line")
294
+ else:
295
+ print(f"cruise: {UNREAD}")
296
+
297
+
298
+ def last_assistant_text(transcript: Path) -> str | None:
299
+ """The text of the last assistant message in a Claude Code transcript, or None where there is none."""
300
+ text = None
301
+ for line in transcript.read_text(errors="replace").splitlines():
302
+ try:
303
+ entry = json.loads(line)
304
+ except ValueError:
305
+ continue
306
+ if entry.get("type") != "assistant":
307
+ continue
308
+ content = (entry.get("message") or {}).get("content")
309
+ if isinstance(content, str):
310
+ text = content
311
+ elif isinstance(content, list):
312
+ texts = [block.get("text", "") for block in content if isinstance(block, dict) and block.get("type") == "text"]
313
+ if texts:
314
+ text = texts[-1]
315
+ return text
316
+
317
+
318
+ def stopping() -> None:
319
+ """Claude Code's Stop hook: hold the turn while an iteration is in flight and this is not its end.
320
+
321
+ Prose in a command file is not a control — the same session ended an iteration after the upstream stages
322
+ and, later, on a report that said "continuing now" — so the end of a turn is checked here, where the harness
323
+ lets a hook refuse it. The hook reads the event Claude Code hands it on stdin, and holds the turn (a
324
+ `block` decision, with the reason the model reads next) when a checkpoint says an iteration is in flight,
325
+ no stop file says a person ended it, and the last assistant message does not end on one of the four last
326
+ lines — or ends on `continue` in a session no runner started, where that line reaches nobody. A turn that
327
+ ends on `done` or `stopped` takes the checkpoint with it, the way the runner would. Every hold is stamped
328
+ on the checkpoint, and the hook lets go after HOLD_LIMIT holds with no rewrite in between — below the
329
+ harness's own cap on consecutive blocks, so it is this script that decides when to let go, and says so.
330
+ """
331
+ if not CHECKPOINT.is_file() or STOP.is_file():
332
+ return
333
+ try:
334
+ event = json.loads(sys.stdin.read() or "{}")
335
+ except ValueError:
336
+ event = {}
337
+ # The message the turn ends on, as the event carries it; the transcript otherwise, which can lag the event.
338
+ text = event.get("last_assistant_message")
339
+ if not isinstance(text, str) or not text.strip():
340
+ transcript = Path(str(event.get("transcript_path") or ""))
341
+ if not transcript.is_file():
342
+ return
343
+ text = last_assistant_text(transcript)
344
+ last = (text or "").rstrip().splitlines()[-1].strip() if (text or "").strip() else ""
345
+ ended = LAST_LINE.match(last) is not None
346
+ if ended and last in ("cruise: done", "cruise: stopped: human"):
347
+ CHECKPOINT.unlink(missing_ok=True)
348
+ return
349
+ if ended and (last != "cruise: continue" or os.environ.get(RUNNER_VARIABLE)):
350
+ return
351
+ checkpoint = CHECKPOINT.read_text()
352
+ if checkpoint.count("- **Held:**") >= HOLD_LIMIT:
353
+ print(f"cruise: held {HOLD_LIMIT} times against a checkpoint nothing rewrote; letting the turn end",
354
+ file=sys.stderr)
355
+ return
356
+ next_step = next((line.strip() for line in checkpoint.splitlines() if line.strip().startswith("- **Next:**")),
357
+ "- **Next:** (the checkpoint names no next step; read it and commands/cruise.md)")
358
+ if last == "cruise: continue":
359
+ why = (f"`cruise: continue` reaches nobody: no runner started this session ({RUNNER_VARIABLE} is unset), "
360
+ "so the ladder continues here and the iteration ends only with `cruise: done`, "
361
+ "`cruise: parked: <why>` or `cruise: stopped: human`.")
362
+ else:
363
+ why = ("an iteration is in flight (specs/cruise-checkpoint.md) and this turn did not end on one of its "
364
+ "four last lines. An iteration ends only on `cruise: continue`, `cruise: done`, "
365
+ "`cruise: parked: <why>` or `cruise: stopped: human`; a message that says what it is about to do "
366
+ "next is a stop, whatever it says.")
367
+ with CHECKPOINT.open("a") as handle:
368
+ handle.write(f"- **Held:** {now()} — {last or 'no last line'!r}\n")
369
+ reason = (f"cruise: {why} Continue from the checkpoint: {next_step}. A person ends the run with "
370
+ f"`touch {STOP.relative_to(ROOT)}`.")
371
+ print(json.dumps({"decision": "block", "reason": reason}))
372
+
373
+
273
374
  def park(reason: str, no_park: bool, poll: float, seen: str) -> None:
274
375
  """Wait for a person: the stop file ends the run, a change under specs/ resumes it, `--no-park` exits 3."""
275
376
  print(f"cruise: parked — {reason}")
@@ -318,7 +419,7 @@ def run(arguments: list[str]) -> None:
318
419
  return
319
420
  iteration = len(entries()) + 1
320
421
  started = now()
321
- last = iterate(template, ask, environment)
422
+ last = iterate(template, ask, environment, iteration)
322
423
  iterations_this_run += 1
323
424
  seen = fingerprint()
324
425
  fingerprints.append(seen)
@@ -386,6 +487,12 @@ def main() -> None:
386
487
  if arguments[:1] == ["compacting"]:
387
488
  compacting()
388
489
  return
490
+ if arguments[:1] == ["loop"]:
491
+ loop()
492
+ return
493
+ if arguments[:1] == ["stopping"]:
494
+ stopping()
495
+ return
389
496
  if "--set" in arguments:
390
497
  table = json.loads(CONFIG.read_text())
391
498
  assignments = arguments[arguments.index("--set") + 1:]
@@ -18,6 +18,16 @@ settings, `/cruise-settings` changes them checked, and it ships disabled: a proj
18
18
  `.specify/models.json` gains a `skipper` role and the `skipper`, `hand` and `bosun` stages, and the benchmark records
19
19
  `driver=cruise` on every stage a run bracketed.
20
20
 
21
+ Three things the first runs taught it. An iteration has a unit before the split exists — the upstream stages
22
+ together, through to the first ready set — and ends only on one of its four last lines: on Claude Code,
23
+ `.claude/settings.json` runs `scripts/agents/cruise.py stopping` as the `Stop` hook, which refuses a turn that
24
+ ends mid-iteration on anything else, or on `continue` in a session no runner started (the runner marks its
25
+ sessions with `CRUISE_RUNNER`; `cruise.py loop` says which kind a session is), handing back the checkpoint's
26
+ `Next:` line. And the session running `/cruise` allocates every identifier a decision carries — the `D<n>`
27
+ goes out in the skipper's brief, the entry comes back and is appended in number order, requirements and
28
+ criteria are numbered after concurrent delegates return — so four delegates deciding at once cannot come
29
+ back as two `D3`s with overlapping requirement ranges.
30
+
21
31
  **Catch-up.** `slipwai migrate` brings the command, the three agent types, the settings file and the two new rows
22
32
  of `.specify/models.json`; then `./init` reprojects the agent types and, as with every new type, the harness
23
33
  reads them at its next session start. Nothing runs until `enabled` is set with `/cruise-settings enabled=true`.
@@ -0,0 +1,12 @@
1
+ MINOR
2
+
3
+ **A service's purpose and bounded contexts can be recorded after the scaffold: `slipwai describe-service`.**
4
+ `purpose` and `contexts` are what the delivery loop places a slice against, and `generate` and `add-service`
5
+ take them at scaffold time — but a purpose is often left unsaid at the start, and the contexts are found later,
6
+ in the model's lanes or the specification's vocabulary, which is where `/drive` says to record them. Until now
7
+ that meant editing `project.json` by hand against a file the factory owns, while `docs/architecture.md` went on
8
+ saying "no purpose recorded yet". `describe-service <name> --purpose "..." --context <name>` edits the entry in
9
+ place — a field given replaces what was recorded, one not given is kept — and regenerates every file that
10
+ prints the two fields, derived the same way `add-service` derives its set. `/drive`, `/cruise`, the
11
+ architecture page and the `add-service` report now name it wherever they say a purpose or a context is
12
+ recorded.
@@ -0,0 +1,14 @@
1
+ PATCH
2
+
3
+ **`./init` checks that Spec Kit's scripts have the PyYAML they compose the preset templates with, and puts it
4
+ right where it can.** From Spec Kit 1.0.9 its bash scripts read a preset's `preset.yml` through the bare
5
+ `python3` they call, and a project whose python3 lacks the module learned so at its first `/speckit-specify`:
6
+ "PyYAML is required to resolve preset template composition", with no remedy — and on a Homebrew or Debian
7
+ Python the obvious `pip install` is refused too (PEP 668). Where the installed Spec Kit's scripts mention it
8
+ and `python3` cannot import it, `./init` now installs it into the user site, or, where that Python refuses
9
+ pip outside a venv, into a venv at `.delivery-tools/venv` that shares the system's packages and prints the
10
+ `PATH` line that puts it first; where neither is possible it says exactly what to install. Never fatal, and
11
+ silent on a Spec Kit whose scripts never mention it. `docs/speckit-preset.md` says the same.
12
+
13
+ **Catch-up.** `slipwai migrate` brings the new `./init`; rerun it once after the merge on a machine whose
14
+ `python3` lacks PyYAML.
@@ -20,6 +20,13 @@ cannot inherit Fastify, so it gets FastAPI).
20
20
  and the same regeneration of what the list drives — which is also how a project generated with
21
21
  `--frontend none` gets its first browser app.
22
22
 
23
+ `describe-service <name> --purpose ... --context ...` records, after the fact, what a service the list already
24
+ has is for — the two fields the delivery loop places a slice against, which `generate` and `add-service` take
25
+ at scaffold time and which are otherwise found later, when the model's lanes or the specification's vocabulary
26
+ say what the contexts are. It scaffolds nothing: `project.json`'s entry is edited in place and every file
27
+ whose content the two fields reach — the architecture page, the agent guidance, the commands that list the
28
+ applications — is regenerated, the same way as above, so the file an agent reads says what was recorded.
29
+
23
30
  Nothing is committed. The tree has to be clean first so that `git checkout .` and `git clean -fd` undo the
24
31
  whole thing, and the command says what it wrote and what to run next.
25
32
  """
@@ -27,6 +34,7 @@ from __future__ import annotations
27
34
 
28
35
  import json
29
36
  import subprocess
37
+ from dataclasses import replace
30
38
  from pathlib import Path
31
39
 
32
40
  from .assets import PRUNER
@@ -37,7 +45,7 @@ from .manifest import apps_from_manifest, check_known, read_manifest, wrote_here
37
45
  from .origin import adoption_of
38
46
  from .scaffold import project_files
39
47
  from .selection import Selection, resolve_selection
40
- from .services import App, add_service, add_web, contexts_phrase, frontend_of, services_of
48
+ from .services import App, add_service, add_web, checked_contexts, contexts_phrase, frontend_of, services_of
41
49
  from .targets import managed, offered_backends
42
50
  from .toolkit import executable_paths
43
51
 
@@ -140,26 +148,79 @@ def grow(
140
148
  f"{app.path} already exists but project.json does not list it; move it aside, or register it "
141
149
  "by hand if it is an application"
142
150
  )
151
+ keep, settled = pruning_state(root, asked)
152
+ added, rewritten, manifest = regenerate(root, document, apps, with_new, asked, new_path=app.path)
153
+
154
+ # The manifest is edited in place rather than regenerated, so anything else it carries survives; the
155
+ # `frontend` field follows the browser apps, so a project that had none now says which framework it has.
156
+ document["deployables"][app.name] = manifest["deployables"][app.name]
157
+ document["frontend"] = frontend_of(with_new)
158
+ rewritten.append(record(root, document))
159
+ PRUNER.prune(root, keep, settled=settled, log=lambda _message: None)
160
+ return app, added, sorted(rewritten)
161
+
162
+
163
+ def describe_service_in(
164
+ root: Path, name: str, purpose: str | None = None, contexts: list[str] | None = None
165
+ ) -> tuple[App, list[str]]:
166
+ """Record what a service already on the list is for, and rewrite every file that says so.
167
+
168
+ A field given replaces what was recorded; one not given is left as it was. Nothing under `apps/` is
169
+ touched: the two fields are read by the delivery loop and the pages that print them, never by the
170
+ scaffold.
171
+ """
172
+ if purpose is None and contexts is None:
173
+ raise GenerationError("nothing to record: say --purpose, --context (once per context), or both")
174
+ document = read_manifest(root)
175
+ apps = apps_from_manifest(document)
176
+ check_known(apps)
177
+ named = [app for app in apps if app.name == name]
178
+ if not named:
179
+ raise GenerationError(
180
+ f"project.json lists no application named '{name}'; it has {', '.join(app.name for app in apps)}"
181
+ )
182
+ app = named[0]
183
+ if not app.is_service:
184
+ raise GenerationError(f"'{name}' is a browser app; a purpose and bounded contexts are a service's to record")
185
+ revised = replace(
186
+ app,
187
+ purpose=(purpose or None) if purpose is not None else app.purpose,
188
+ contexts=checked_contexts(contexts) if contexts is not None else app.contexts,
189
+ )
190
+ if revised.purpose == app.purpose and revised.contexts == app.contexts:
191
+ raise GenerationError(f"'{name}' already records exactly that; nothing to write")
192
+ described = [revised if candidate is app else candidate for candidate in apps]
193
+ refuse_uncommitted(root)
194
+ keep, settled = pruning_state(root, set())
195
+ _added, rewritten, manifest = regenerate(root, document, apps, described, set())
196
+ entry = document["deployables"][name]
197
+ for key in ("purpose", "contexts"):
198
+ if key in manifest["deployables"][name]:
199
+ entry[key] = manifest["deployables"][name][key]
200
+ else:
201
+ entry.pop(key, None)
202
+ rewritten.append(record(root, document))
203
+ PRUNER.prune(root, keep, settled=settled, log=lambda _message: None)
204
+ return revised, sorted(rewritten)
205
+
206
+
207
+ def regenerate(
208
+ root: Path, document: dict, apps: list[App], revised: list[App], asked: set[str], new_path: str | None = None
209
+ ) -> tuple[list[str], list[str], dict]:
210
+ """Write every file whose regenerated content differs between the list as it was and as it is — and
211
+ every file under `new_path`, the application being added — and return the added paths, the rewritten
212
+ ones, and the manifest the revised list generates, for the caller to take its entry from."""
143
213
  layout, adoption = layout_of(document), adoption_of(document)
144
214
  arguments = (document["name"], document["profile"], document["target"])
145
215
  before = project_files(*arguments, apps, layout, adoption)
146
- after = project_files(*arguments, with_new, layout, adoption)
147
- executables = {layout.place(path) for path in executable_paths(document["profile"], with_new)}
148
-
149
- # What this project actually has, read off its disk rather than off the recorded selections: a later
150
- # `./init` may have taken a feature away, and the new application must not bring it back — unless it was
151
- # asked for.
152
- existing = PRUNER.project_services(root)
153
- installed = PRUNER.features_installed(root, existing)
154
- present = PRUNER.features_present(root, existing)
155
- keep = installed | asked
156
-
216
+ after = project_files(*arguments, revised, layout, adoption)
217
+ executables = {layout.place(path) for path in executable_paths(document["profile"], revised)}
157
218
  added: list[str] = []
158
219
  rewritten: list[str] = []
159
220
  for relative, content in after.items():
160
221
  if relative == "project.json":
161
222
  continue
162
- new = relative.startswith(f"{app.path}/")
223
+ new = new_path is not None and relative.startswith(f"{new_path}/")
163
224
  # A file whose regenerated content is unchanged is left alone — unless it carries a region of a
164
225
  # feature asked for by name. `.env.example` reads the same whichever services a project has, so its
165
226
  # earlier prune is the only reason a newly asked feature's keys would be missing from it; written
@@ -171,19 +232,25 @@ def grow(
171
232
  path.write_text(content, newline="")
172
233
  path.chmod(0o755 if relative in executables else 0o644)
173
234
  (added if new else rewritten).append(relative)
235
+ return sorted(added), rewritten, json.loads(after["project.json"])
174
236
 
175
- # The manifest is edited in place rather than regenerated, so anything else it carries survives; the
176
- # `frontend` field follows the browser apps, so a project that had none now says which framework it has.
177
- document["deployables"][app.name] = json.loads(after["project.json"])["deployables"][app.name]
178
- document["frontend"] = frontend_of(with_new)
237
+
238
+ def pruning_state(root: Path, asked: set[str]) -> tuple[set[str], set[str]]:
239
+ """What this project actually has, read off its disk before anything is written rather than off the
240
+ recorded selections: a later `./init` may have taken a feature away, and a regenerated file must not
241
+ bring it back — unless it was asked for. The features to keep, and the ones an earlier `./init` settled
242
+ (their files here, their markers gone), whose fresh markers the prune strips again."""
243
+ existing = PRUNER.project_services(root)
244
+ installed = PRUNER.features_installed(root, existing)
245
+ present = PRUNER.features_present(root, existing)
246
+ return installed | asked, installed - present
247
+
248
+
249
+ def record(root: Path, document: dict) -> str:
250
+ """Write the manifest, edited in place, with this factory stamped as the last to write here."""
179
251
  document["generator"] = wrote_here(document.get("generator"))
180
252
  (root / "project.json").write_text(json.dumps(document, indent=2) + "\n")
181
- rewritten.append("project.json")
182
-
183
- # Features whose files are here but whose markers are gone were settled by an earlier `./init`; the
184
- # regenerated files carry fresh markers for them, and the prune strips those again.
185
- PRUNER.prune(root, keep, settled=installed - present, log=lambda _message: None)
186
- return app, sorted(added), sorted(rewritten)
253
+ return "project.json"
187
254
 
188
255
 
189
256
  def carries_any(content: str, features: set[str]) -> bool:
@@ -213,7 +280,7 @@ def report(app: App, added: list[str], rewritten: list[str], target: str = "none
213
280
  )
214
281
  if not app.purpose:
215
282
  lines.append(
216
- "no purpose recorded: say what it owns (add-service --purpose, or `purpose` in project.json), "
283
+ f"no purpose recorded: say what it owns (`slipwai describe-service {app.name} --purpose \"...\"`), "
217
284
  "or /drive will ask before it places a slice here"
218
285
  )
219
286
  if managed(CATALOG, target) and app.is_service:
@@ -229,3 +296,13 @@ def report(app: App, added: list[str], rewritten: list[str], target: str = "none
229
296
  "Next: make verify",
230
297
  ]
231
298
  return "\n".join(lines)
299
+
300
+
301
+ def described_report(app: App, rewritten: list[str]) -> str:
302
+ """What was recorded and which files now say it, for the person who ran `describe-service`."""
303
+ regenerated = ", ".join(path for path in rewritten if path != "project.json") or "nothing else"
304
+ return "\n".join([
305
+ f"recorded for {app.path}: it holds the bounded {contexts_phrase(app)}"
306
+ + (f" and owns: {app.purpose}" if app.purpose else " (no purpose recorded)"),
307
+ f"written to project.json; regenerated from it: {regenerated}",
308
+ ])
@@ -12,6 +12,7 @@ from .cli_add import (
12
12
  add_frontend_main,
13
13
  add_service_main,
14
14
  converge_main,
15
+ describe_service_main,
15
16
  migrate_main,
16
17
  replay_main,
17
18
  resolve_requested_backend,
@@ -38,14 +39,15 @@ from .services import FIRST_SERVICE, FIRST_WEB, default_apps
38
39
  from .targets import check_project_name, offered_backends
39
40
  from .upgrade import main as upgrade_main
40
41
 
41
- VERBS = ("generate", "add-service", "add-frontend", "migrate", "replay", "upgrade", "adopt", "converge")
42
+ VERBS = ("generate", "add-service", "add-frontend", "describe-service", "migrate", "replay", "upgrade", "adopt",
43
+ "converge")
42
44
 
43
45
 
44
46
  def main() -> None:
45
47
  """`slipwai <verb>`: `generate` from anywhere, naming a project that does not exist yet; `add-service`,
46
- `add-frontend`, `migrate` and `replay` from inside one that does; `upgrade` from anywhere, about the
47
- command itself rather than about any project. Each verb owns its parser, so `slipwai generate --help` is
48
- the generator's flags and nothing else's."""
48
+ `add-frontend`, `describe-service`, `migrate` and `replay` from inside one that does; `upgrade` from
49
+ anywhere, about the command itself rather than about any project. Each verb owns its parser, so
50
+ `slipwai generate --help` is the generator's flags and nothing else's."""
49
51
  validate_catalog(CATALOG)
50
52
  argv = sys.argv[1:]
51
53
  if argv[:1] == ["generate"]:
@@ -57,6 +59,9 @@ def main() -> None:
57
59
  if argv[:1] == ["add-frontend"]:
58
60
  add_frontend_main(argv[1:])
59
61
  return
62
+ if argv[:1] == ["describe-service"]:
63
+ describe_service_main(argv[1:])
64
+ return
60
65
  if argv[:1] == ["migrate"]:
61
66
  migrate_main(argv[1:])
62
67
  return
@@ -11,7 +11,7 @@ import argparse
11
11
  import sys
12
12
  from pathlib import Path
13
13
 
14
- from .add_service import add_frontend_to, add_service_to, report
14
+ from .add_service import add_frontend_to, add_service_to, describe_service_in, described_report, report
15
15
  from .assets import VERSION
16
16
  from .catalog import CATALOG, families, family_of, resolve_backend
17
17
  from .converge import check as converge_check
@@ -105,6 +105,38 @@ def add_service_main(argv: list[str]) -> None:
105
105
  print(report(service, added, rewritten, read_manifest(Path.cwd())["target"]))
106
106
 
107
107
 
108
+ def describe_service_main(argv: list[str]) -> None:
109
+ """`describe-service <name>`, run inside a generated project: what a service already there is for.
110
+
111
+ `generate` and `add-service` take `--purpose` and `--context` at scaffold time, but the contexts are found
112
+ later — in the model's lanes, in the specification's vocabulary — and a purpose nobody gave at the start is
113
+ the first question `/drive` asks. This is where the answer goes: the manifest, and every page that prints
114
+ it, so the file an agent reads says what was recorded rather than "no purpose recorded yet".
115
+ """
116
+ parser = argparse.ArgumentParser(
117
+ prog="slipwai describe-service",
118
+ description="Record what a service of the generated project in the current directory is for: what it "
119
+ "owns, the bounded contexts it holds, or both. Nothing is scaffolded; project.json and the files that "
120
+ "print the two fields are rewritten.",
121
+ )
122
+ parser.add_argument("name", help="the service, as project.json names it")
123
+ parser.add_argument(
124
+ "--purpose", default=None, metavar="TEXT",
125
+ help="what this service owns, in a sentence or two; replaces the purpose recorded before",
126
+ )
127
+ parser.add_argument(
128
+ "--context", action="append", default=None, metavar="NAME",
129
+ help="a bounded context this service holds; repeat for each. Together they replace the list recorded "
130
+ "before",
131
+ )
132
+ args = parser.parse_args(argv)
133
+ try:
134
+ service, rewritten = describe_service_in(Path.cwd(), args.name, purpose=args.purpose, contexts=args.context)
135
+ except GenerationError as error:
136
+ parser.error(str(error))
137
+ print(described_report(service, rewritten))
138
+
139
+
108
140
  def add_frontend_main(argv: list[str]) -> None:
109
141
  """`add-frontend <name>`, run inside a generated project: one more browser app.
110
142
 
@@ -152,6 +152,7 @@ files that name it, and misses the tenth.
152
152
  slice belongs to: a service added without one is a directory the loop cannot place work in, and it will
153
153
  stop to ask before it does. A context is one already on the list above, or a new one; without any the
154
154
  service is a context of its own. A context may span several services; the tree stays `apps/<name>`.
155
+ A service already listed is described after the fact: `<factory> describe-service <name> --purpose "..." --context <name>`.
155
156
 
156
157
  The language, the store, and what the service owns are product decisions. When the request does not name
157
158
  them, ask; taking `{first.name}`'s answers is the default for the first two, and saying so is part of
@@ -16,17 +16,22 @@ MAVEN_PERMISSIONS = ["./mvnw *"]
16
16
 
17
17
 
18
18
  def compaction_hooks(layout: Layout) -> dict[str, list[dict[str, object]]]:
19
- """What Claude Code runs around compaction, so a `/cruise` iteration resumes from its checkpoint.
19
+ """What Claude Code runs around compaction and at the end of a turn, so a `/cruise` iteration resumes
20
+ from its checkpoint and cannot end anywhere but on one of its four last lines.
20
21
 
21
22
  `SessionStart` with the `compact` matcher runs when the session continues after compaction and its
22
- stdout is added to the context; `PreCompact` runs just before. Both call the cruise script, which prints
23
- nothing unless an iteration is in flight, so a plain `/drive` session never sees them. The other
24
- harnesses' equivalents, where one exists, are the registry's `compaction` rows.
23
+ stdout is added to the context; `PreCompact` runs just before. `Stop` runs when the model tries to end
24
+ its turn, and a hook there can refuse: `stopping` does, while a checkpoint says an iteration is in flight
25
+ and the turn's last line is not an end the contract knows — the one control a command file's prose is
26
+ not. All three call the cruise script, which does nothing unless an iteration is in flight, so a plain
27
+ `/drive` session never sees them. The other harnesses' equivalents, where one exists, are the registry's
28
+ `compaction` rows.
25
29
  """
26
30
  script = layout.under("scripts/agents/cruise.py")
27
31
  return {
28
32
  "PreCompact": [{"hooks": [{"type": "command", "command": f"python3 {script} compacting"}]}],
29
33
  "SessionStart": [{"matcher": "compact", "hooks": [{"type": "command", "command": f"python3 {script} resume"}]}],
34
+ "Stop": [{"hooks": [{"type": "command", "command": f"python3 {script} stopping"}]}],
30
35
  }
31
36
 
32
37
 
@@ -61,9 +61,10 @@ def drive_command(
61
61
  never default to the first service or the first context. Which contexts there are is found here, not
62
62
  declared up front: before slices go to `modelled`, apply Conway's law to the model
63
63
  (`skills/event-modeling/references/nine-steps.md`, end of Step 9) — lanes with vocabularies of their
64
- own, joined only by the events one publishes and another reads, are bounded contexts. Record them as
65
- `contexts` on the service in `project.json`, with the user, and place each slice with `context:`. One
66
- vocabulary is one context; say so and move on."""
64
+ own, joined only by the events one publishes and another reads, are bounded contexts. Record them on
65
+ the service, with the user, as `slipwai describe-service <name> --context <context>` (once per
66
+ context; `--purpose` records what the service owns the same way), and place each slice with
67
+ `context:`. One vocabulary is one context; say so and move on."""
67
68
  )
68
69
  stages.append(
69
70
  """**Split** — the work is ordered vertical slices rather than one undivided outcome. Otherwise run
@@ -93,9 +94,9 @@ def drive_command(
93
94
  found in a project without an event model: read the specification's vocabulary the way
94
95
  `skills/domain-driven-design/resources/bounded-contexts.md` describes under *The Language Test* — the
95
96
  same word meaning two things, qualifiers creeping in ("billing customer", "shipping customer"), rules
96
- that change for different reasons. Two vocabularies are two bounded contexts: record them as `contexts`
97
- on the service in `project.json`, with the user, and put each context's code under its own
98
- `src/<context>/` behind a `public` module — `make check-imports` keeps them apart from then on. One
97
+ that change for different reasons. Two vocabularies are two bounded contexts: record them on the
98
+ service, with the user, as `slipwai describe-service <name> --context <context>` (once per context), and
99
+ put each context's code under its own `src/<context>/` behind a `public` module — `make check-imports` keeps them apart from then on. One
99
100
  vocabulary is one context, and saying so is the whole decision. Neither is a reason for a new service;
100
101
  `docs/architecture.md`, *Bounded contexts*, says what is."""
101
102
  )