atdd 0.4.3__tar.gz → 0.4.5__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 (195) hide show
  1. {atdd-0.4.3/src/atdd.egg-info → atdd-0.4.5}/PKG-INFO +13 -5
  2. {atdd-0.4.3 → atdd-0.4.5}/README.md +12 -4
  3. {atdd-0.4.3 → atdd-0.4.5}/pyproject.toml +1 -1
  4. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/sync.py +35 -8
  5. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/templates/SESSION-TEMPLATE.md +1 -1
  6. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_release_versioning.py +13 -1
  7. {atdd-0.4.3 → atdd-0.4.5/src/atdd.egg-info}/PKG-INFO +13 -5
  8. {atdd-0.4.3 → atdd-0.4.5}/LICENSE +0 -0
  9. {atdd-0.4.3 → atdd-0.4.5}/setup.cfg +0 -0
  10. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/__init__.py +0 -0
  11. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/__main__.py +0 -0
  12. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/cli.py +0 -0
  13. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/__init__.py +0 -0
  14. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/__init__.py +0 -0
  15. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/add_persistence_metadata.py +0 -0
  16. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/analyze_migrations.py +0 -0
  17. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/consumers.py +0 -0
  18. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/gate.py +0 -0
  19. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/infer_governance_status.py +0 -0
  20. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/initializer.py +0 -0
  21. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/interface.py +0 -0
  22. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/inventory.py +0 -0
  23. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/migration.py +0 -0
  24. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/registry.py +0 -0
  25. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/session.py +0 -0
  26. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/test_interface.py +0 -0
  27. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/test_runner.py +0 -0
  28. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/tests/__init__.py +0 -0
  29. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/tests/test_telemetry_array_validation.py +0 -0
  30. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/commands/traceability.py +0 -0
  31. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/conventions/session.convention.yaml +0 -0
  32. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/overlays/__init__.py +0 -0
  33. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/overlays/claude.md +0 -0
  34. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/schemas/config.schema.json +0 -0
  35. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/schemas/manifest.schema.json +0 -0
  36. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/templates/ATDD.md +0 -0
  37. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/utils/__init__.py +0 -0
  38. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/utils/graph/__init__.py +0 -0
  39. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/utils/graph/urn.py +0 -0
  40. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/utils/repo.py +0 -0
  41. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/__init__.py +0 -0
  42. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/shared_fixtures.py +0 -0
  43. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_enrich_wagon_registry.py +0 -0
  44. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_registry.py +0 -0
  45. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_session_validation.py +0 -0
  46. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_traceability.py +0 -0
  47. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_update_feature_paths.py +0 -0
  48. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coach/validators/test_validate_contract_consumers.py +0 -0
  49. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/__init__.py +0 -0
  50. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/adapter.recipe.yaml +0 -0
  51. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/backend.convention.yaml +0 -0
  52. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/boundaries.convention.yaml +0 -0
  53. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/commons.convention.yaml +0 -0
  54. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/complexity.recipe.yaml +0 -0
  55. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/component-naming.convention.yaml +0 -0
  56. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/design.convention.yaml +0 -0
  57. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/design.recipe.yaml +0 -0
  58. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/dto.convention.yaml +0 -0
  59. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/frontend.convention.yaml +0 -0
  60. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/green.convention.yaml +0 -0
  61. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/presentation.convention.yaml +0 -0
  62. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/refactor.convention.yaml +0 -0
  63. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/technology.convention.yaml +0 -0
  64. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/__init__.py +0 -0
  65. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_adapter_recipe.py +0 -0
  66. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_complexity_recipe.py +0 -0
  67. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_component_taxonomy.py +0 -0
  68. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_component_urn_naming.py +0 -0
  69. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/tests/test_thinness_recipe.py +0 -0
  70. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/thinness.recipe.yaml +0 -0
  71. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/train.convention.yaml +0 -0
  72. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/conventions/verification.protocol.yaml +0 -0
  73. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/schemas/design_system.schema.json +0 -0
  74. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/__init__.py +0 -0
  75. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_commons_structure.py +0 -0
  76. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_complexity.py +0 -0
  77. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_cross_language_consistency.py +0 -0
  78. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_design_system_compliance.py +0 -0
  79. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_dto_testing_patterns.py +0 -0
  80. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_green_cross_stack_layers.py +0 -0
  81. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_green_layer_dependencies.py +0 -0
  82. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_green_python_layer_structure.py +0 -0
  83. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_green_supabase_layer_structure.py +0 -0
  84. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_import_boundaries.py +0 -0
  85. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_init_file_urns.py +0 -0
  86. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_preact_layer_boundaries.py +0 -0
  87. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_presentation_convention.py +0 -0
  88. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_python_architecture.py +0 -0
  89. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_quality_metrics.py +0 -0
  90. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_station_master_pattern.py +0 -0
  91. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_train_infrastructure.py +0 -0
  92. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_train_urns.py +0 -0
  93. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_typescript_architecture.py +0 -0
  94. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_usecase_structure.py +0 -0
  95. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/coder/validators/test_wagon_boundaries.py +0 -0
  96. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/conftest.py +0 -0
  97. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/__init__.py +0 -0
  98. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/acceptance.convention.yaml +0 -0
  99. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/appendix.convention.yaml +0 -0
  100. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/artifact-naming.convention.yaml +0 -0
  101. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/component.convention.yaml +0 -0
  102. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/criteria.convention.yaml +0 -0
  103. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/feature.convention.yaml +0 -0
  104. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/interface.convention.yaml +0 -0
  105. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/steps.convention.yaml +0 -0
  106. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/train.convention.yaml +0 -0
  107. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/wagon.convention.yaml +0 -0
  108. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/conventions/wmbt.convention.yaml +0 -0
  109. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/acceptance.schema.json +0 -0
  110. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/appendix.schema.json +0 -0
  111. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/component.schema.json +0 -0
  112. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/feature.schema.json +0 -0
  113. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/train.schema.json +0 -0
  114. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/wagon.schema.json +0 -0
  115. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/schemas/wmbt.schema.json +0 -0
  116. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/__init__.py +0 -0
  117. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/conftest.py +0 -0
  118. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_draft_wagon_registry.py +0 -0
  119. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_cross_refs.py +0 -0
  120. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_uniqueness.py +0 -0
  121. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_urn_resolution.py +0 -0
  122. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_plan_wagons.py +0 -0
  123. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_train_validation.py +0 -0
  124. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_wagon_urn_chain.py +0 -0
  125. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_wmbt_consistency.py +0 -0
  126. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/planner/validators/test_wmbt_vocabulary.py +0 -0
  127. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/__init__.py +0 -0
  128. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/artifact.convention.yaml +0 -0
  129. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/contract.convention.yaml +0 -0
  130. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/filename.convention.yaml +0 -0
  131. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/migration.convention.yaml +0 -0
  132. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/red.convention.yaml +0 -0
  133. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/routing.convention.yaml +0 -0
  134. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/security.convention.yaml +0 -0
  135. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/conventions/telemetry.convention.yaml +0 -0
  136. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/a11y.tmpl.json +0 -0
  137. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/artifact.schema.json +0 -0
  138. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/contract.schema.json +0 -0
  139. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/contract.tmpl.json +0 -0
  140. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/db.tmpl.json +0 -0
  141. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/e2e.tmpl.json +0 -0
  142. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/edge_function.tmpl.json +0 -0
  143. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/event.tmpl.json +0 -0
  144. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/http.tmpl.json +0 -0
  145. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/job.tmpl.json +0 -0
  146. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/load.tmpl.json +0 -0
  147. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/metric.tmpl.json +0 -0
  148. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/pack.schema.json +0 -0
  149. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/realtime.tmpl.json +0 -0
  150. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/rls.tmpl.json +0 -0
  151. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/script.tmpl.json +0 -0
  152. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/sec.tmpl.json +0 -0
  153. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/storage.tmpl.json +0 -0
  154. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/telemetry.schema.json +0 -0
  155. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/telemetry_tracking_manifest.schema.json +0 -0
  156. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/test_filename.schema.json +0 -0
  157. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/test_intent.schema.json +0 -0
  158. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/unit.tmpl.json +0 -0
  159. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/visual.tmpl.json +0 -0
  160. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/schemas/ws.tmpl.json +0 -0
  161. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/utils/__init__.py +0 -0
  162. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/utils/filename.py +0 -0
  163. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/__init__.py +0 -0
  164. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/cleanup_duplicate_headers.py +0 -0
  165. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/cleanup_duplicate_headers_v2.py +0 -0
  166. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/conftest.py +0 -0
  167. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/coverage_gap_report.py +0 -0
  168. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/fix_dual_ac_references.py +0 -0
  169. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/remove_duplicate_lines.py +0 -0
  170. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_acceptance_urn_filename_mapping.py +0 -0
  171. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_acceptance_urn_separator.py +0 -0
  172. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_artifact_naming_category.py +0 -0
  173. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_contract_schema_compliance.py +0 -0
  174. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_contract_security.py +0 -0
  175. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_contracts_structure.py +0 -0
  176. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_coverage_adequacy.py +0 -0
  177. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_dual_ac_reference.py +0 -0
  178. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_fixture_validity.py +0 -0
  179. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_isolation.py +0 -0
  180. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_coverage.py +0 -0
  181. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_criteria.py +0 -0
  182. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_migration_generation.py +0 -0
  183. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_python_test_naming.py +0 -0
  184. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_red_layer_validation.py +0 -0
  185. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_red_python_layer_structure.py +0 -0
  186. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_red_supabase_layer_structure.py +0 -0
  187. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_telemetry_structure.py +0 -0
  188. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_typescript_test_naming.py +0 -0
  189. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/tester/validators/test_typescript_test_structure.py +0 -0
  190. {atdd-0.4.3 → atdd-0.4.5}/src/atdd/version_check.py +0 -0
  191. {atdd-0.4.3 → atdd-0.4.5}/src/atdd.egg-info/SOURCES.txt +0 -0
  192. {atdd-0.4.3 → atdd-0.4.5}/src/atdd.egg-info/dependency_links.txt +0 -0
  193. {atdd-0.4.3 → atdd-0.4.5}/src/atdd.egg-info/entry_points.txt +0 -0
  194. {atdd-0.4.3 → atdd-0.4.5}/src/atdd.egg-info/requires.txt +0 -0
  195. {atdd-0.4.3 → atdd-0.4.5}/src/atdd.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atdd
3
- Version: 0.4.3
3
+ Version: 0.4.5
4
4
  Summary: ATDD Platform - Acceptance Test Driven Development toolkit
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -58,14 +58,20 @@ atdd --help
58
58
  ```bash
59
59
  atdd init # Initialize ATDD in your project
60
60
  atdd gate # ⚠️ START EVERY SESSION WITH THIS
61
- atdd session new <capability> # Create a planning session
61
+ atdd session new <task> # Create a planning session
62
62
  atdd sync # Sync rules to agent config files
63
63
  atdd validate # Run all validators
64
64
  ```
65
65
 
66
66
  > **⚠️ `atdd gate` is required.**
67
67
  > 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
68
- > Agents skip instruction files but can't ignore tool output. No gate = no ATDD guarantees.
68
+ > Agents skip instruction files but can't ignore tool ou
69
+
70
+
71
+
72
+
73
+
74
+ tput. No gate = no ATDD guarantees.
69
75
 
70
76
  ## What It Does
71
77
 
@@ -232,14 +238,16 @@ atdd validate --html # With HTML report
232
238
 
233
239
  ### Release Versioning
234
240
 
235
- ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
241
+ ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
236
242
 
237
243
  ```yaml
238
244
  release:
239
- version_file: "pyproject.toml" # or package.json, VERSION, etc.
245
+ version_file: "VERSION" # recommended single source of truth
240
246
  tag_prefix: "v"
241
247
  ```
242
248
 
249
+ If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
250
+
243
251
  Validation (`atdd validate coach` or `atdd validate`) requires:
244
252
  - Version file exists and contains a version
245
253
  - Git tag on HEAD matches `{tag_prefix}{version}`
@@ -44,14 +44,20 @@ atdd --help
44
44
  ```bash
45
45
  atdd init # Initialize ATDD in your project
46
46
  atdd gate # ⚠️ START EVERY SESSION WITH THIS
47
- atdd session new <capability> # Create a planning session
47
+ atdd session new <task> # Create a planning session
48
48
  atdd sync # Sync rules to agent config files
49
49
  atdd validate # Run all validators
50
50
  ```
51
51
 
52
52
  > **⚠️ `atdd gate` is required.**
53
53
  > 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
54
- > Agents skip instruction files but can't ignore tool output. No gate = no ATDD guarantees.
54
+ > Agents skip instruction files but can't ignore tool ou
55
+
56
+
57
+
58
+
59
+
60
+ tput. No gate = no ATDD guarantees.
55
61
 
56
62
  ## What It Does
57
63
 
@@ -218,14 +224,16 @@ atdd validate --html # With HTML report
218
224
 
219
225
  ### Release Versioning
220
226
 
221
- ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
227
+ ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
222
228
 
223
229
  ```yaml
224
230
  release:
225
- version_file: "pyproject.toml" # or package.json, VERSION, etc.
231
+ version_file: "VERSION" # recommended single source of truth
226
232
  tag_prefix: "v"
227
233
  ```
228
234
 
235
+ If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
236
+
229
237
  Validation (`atdd validate coach` or `atdd validate`) requires:
230
238
  - Version file exists and contains a version
231
239
  - Git tag on HEAD matches `{tag_prefix}{version}`
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "atdd"
7
- version = "0.4.3"
7
+ version = "0.4.5"
8
8
  description = "ATDD Platform - Acceptance Test Driven Development toolkit"
9
9
  requires-python = ">=3.10"
10
10
  readme = "README.md"
@@ -194,6 +194,11 @@ class AgentConfigSync:
194
194
  """
195
195
  agents = self._get_enabled_agents()
196
196
 
197
+ # Get configured vs detected for display
198
+ config = self._load_config()
199
+ sync_config = config.get("sync", {})
200
+ configured_agents = set(sync_config.get("agents", []))
201
+
197
202
  print("\n" + "=" * 60)
198
203
  print("ATDD Agent Config Sync Status")
199
204
  print("=" * 60)
@@ -202,8 +207,8 @@ class AgentConfigSync:
202
207
  print(f"ATDD template: {self.atdd_template}")
203
208
  print(f"Overlays dir: {self.overlays_dir}")
204
209
 
205
- print(f"\n{'Agent':<10} {'File':<15} {'Status':<20}")
206
- print("-" * 50)
210
+ print(f"\n{'Agent':<10} {'File':<15} {'Status':<20} {'Source':<12}")
211
+ print("-" * 62)
207
212
 
208
213
  for agent, target_file in sorted(self.AGENT_FILES.items()):
209
214
  target_path = self.target_dir / target_file
@@ -211,18 +216,22 @@ class AgentConfigSync:
211
216
 
212
217
  if not enabled:
213
218
  status = "disabled"
219
+ source = ""
214
220
  elif not target_path.exists():
215
221
  status = "missing"
222
+ source = "config"
216
223
  elif not self._has_managed_block(target_path.read_text()):
217
224
  status = "no managed block"
225
+ source = "auto" if agent not in configured_agents else "config"
218
226
  else:
219
227
  status = "synced"
228
+ source = "auto" if agent not in configured_agents else "config"
220
229
 
221
230
  enabled_marker = "*" if enabled else " "
222
- print(f"{enabled_marker} {agent:<8} {target_file:<15} {status:<20}")
231
+ print(f"{enabled_marker} {agent:<8} {target_file:<15} {status:<20} {source:<12}")
223
232
 
224
- print("-" * 50)
225
- print("* = enabled in config")
233
+ print("-" * 62)
234
+ print("* = enabled for sync (config = explicit, auto = file exists)")
226
235
 
227
236
  # Show overlay status
228
237
  print("\nOverlays:")
@@ -250,14 +259,32 @@ class AgentConfigSync:
250
259
 
251
260
  def _get_enabled_agents(self) -> List[str]:
252
261
  """
253
- Return agents from config.
262
+ Return agents to sync: configured agents + existing agent files.
263
+
264
+ Auto-includes any supported agent file that already exists in the
265
+ target directory, in addition to explicitly configured agents.
266
+ This ensures existing agent files stay in sync without requiring
267
+ explicit configuration.
254
268
 
255
269
  Returns:
256
- List of agent names enabled for sync.
270
+ List of unique agent names enabled for sync.
257
271
  """
272
+ # Get explicitly configured agents
258
273
  config = self._load_config()
259
274
  sync_config = config.get("sync", {})
260
- return sync_config.get("agents", [])
275
+ configured_agents = set(sync_config.get("agents", []))
276
+
277
+ # Auto-detect existing agent files
278
+ detected_agents = set()
279
+ for agent, filename in self.AGENT_FILES.items():
280
+ agent_path = self.target_dir / filename
281
+ if agent_path.exists():
282
+ detected_agents.add(agent)
283
+
284
+ # Merge: configured + detected
285
+ all_agents = configured_agents | detected_agents
286
+
287
+ return sorted(all_agents)
261
288
 
262
289
  def _load_base_content(self) -> Optional[str]:
263
290
  """
@@ -348,7 +348,7 @@ Rules:
348
348
  -->
349
349
 
350
350
  - [ ] Determine change class: PATCH / MINOR / MAJOR
351
- - [ ] Bump version in version file (pyproject.toml, package.json, etc.)
351
+ - [ ] Bump version in version file (recommended: VERSION; sync any language manifests if used)
352
352
  - [ ] Commit: "Bump version to {version}"
353
353
  - [ ] Create tag: `git tag v{version}`
354
354
  - [ ] Push with tags: `git push origin {branch} --tags`
@@ -62,6 +62,12 @@ def _read_version_from_file(path: Path) -> str:
62
62
  version = _parse_package_json_version(path)
63
63
  else:
64
64
  version = _parse_plain_version(path)
65
+ if not version:
66
+ pytest.fail(
67
+ f"Could not read version from {path}. "
68
+ "Expected first non-comment line to contain a semver like "
69
+ "'1.2.3' or '1.2.3 - short summary'."
70
+ )
65
71
 
66
72
  if not version:
67
73
  pytest.fail(f"Could not read version from {path}")
@@ -127,11 +133,17 @@ def _parse_package_json_version(path: Path) -> Optional[str]:
127
133
 
128
134
 
129
135
  def _parse_plain_version(path: Path) -> Optional[str]:
136
+ version_pattern = re.compile(
137
+ r"\bv?(?P<version>\d+\.\d+(?:\.\d+)?(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?)\b"
138
+ )
130
139
  for line in path.read_text().splitlines():
131
140
  stripped = line.strip()
132
141
  if not stripped or stripped.startswith("#"):
133
142
  continue
134
- return stripped
143
+ match = version_pattern.search(stripped)
144
+ if match:
145
+ return match.group("version")
146
+ return None
135
147
  return None
136
148
 
137
149
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atdd
3
- Version: 0.4.3
3
+ Version: 0.4.5
4
4
  Summary: ATDD Platform - Acceptance Test Driven Development toolkit
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -58,14 +58,20 @@ atdd --help
58
58
  ```bash
59
59
  atdd init # Initialize ATDD in your project
60
60
  atdd gate # ⚠️ START EVERY SESSION WITH THIS
61
- atdd session new <capability> # Create a planning session
61
+ atdd session new <task> # Create a planning session
62
62
  atdd sync # Sync rules to agent config files
63
63
  atdd validate # Run all validators
64
64
  ```
65
65
 
66
66
  > **⚠️ `atdd gate` is required.**
67
67
  > 🤖 Tell your agent: "Run `atdd gate` and follow ATDD rigorously."
68
- > Agents skip instruction files but can't ignore tool output. No gate = no ATDD guarantees.
68
+ > Agents skip instruction files but can't ignore tool ou
69
+
70
+
71
+
72
+
73
+
74
+ tput. No gate = no ATDD guarantees.
69
75
 
70
76
  ## What It Does
71
77
 
@@ -232,14 +238,16 @@ atdd validate --html # With HTML report
232
238
 
233
239
  ### Release Versioning
234
240
 
235
- ATDD enforces release versioning via coach validators. Configure the version file and tag prefix in `.atdd/config.yaml`:
241
+ ATDD enforces release versioning via coach validators. Recommended: keep a single root `VERSION` file as the canonical source (first line like `1.2.3 - short summary`; trailing summary is ignored). Configure the version file and tag prefix in `.atdd/config.yaml`:
236
242
 
237
243
  ```yaml
238
244
  release:
239
- version_file: "pyproject.toml" # or package.json, VERSION, etc.
245
+ version_file: "VERSION" # recommended single source of truth
240
246
  tag_prefix: "v"
241
247
  ```
242
248
 
249
+ If you also publish with language-specific manifests (e.g., `pyproject.toml`, `package.json`), keep their version fields in sync with `VERSION`.
250
+
243
251
  Validation (`atdd validate coach` or `atdd validate`) requires:
244
252
  - Version file exists and contains a version
245
253
  - Git tag on HEAD matches `{tag_prefix}{version}`
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes