atdd 0.3.3__py3-none-any.whl → 0.4.0__py3-none-any.whl

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 (69) hide show
  1. atdd/cli.py +223 -76
  2. atdd/coach/commands/add_persistence_metadata.py +3 -1
  3. atdd/coach/commands/infer_governance_status.py +3 -1
  4. atdd/coach/commands/interface.py +3 -1
  5. atdd/coach/commands/inventory.py +2 -2
  6. atdd/coach/commands/migration.py +11 -6
  7. atdd/coach/commands/test_runner.py +66 -27
  8. atdd/coach/commands/traceability.py +3 -1
  9. atdd/coach/conventions/session.convention.yaml +26 -26
  10. atdd/coach/templates/ATDD.md +15 -15
  11. atdd/coach/templates/SESSION-TEMPLATE.md +12 -12
  12. atdd/coach/utils/repo.py +24 -8
  13. atdd/coach/validators/shared_fixtures.py +8 -3
  14. atdd/coach/validators/test_session_validation.py +4 -4
  15. atdd/coder/conventions/tests/test_component_taxonomy.py +4 -3
  16. atdd/coder/conventions/tests/test_component_urn_naming.py +3 -1
  17. atdd/coder/validators/test_commons_structure.py +3 -1
  18. atdd/coder/validators/test_complexity.py +3 -1
  19. atdd/coder/validators/test_cross_language_consistency.py +3 -1
  20. atdd/coder/validators/test_design_system_compliance.py +3 -1
  21. atdd/coder/validators/test_dto_testing_patterns.py +4 -2
  22. atdd/coder/validators/test_green_cross_stack_layers.py +3 -1
  23. atdd/coder/validators/test_green_layer_dependencies.py +3 -1
  24. atdd/coder/validators/test_green_python_layer_structure.py +3 -1
  25. atdd/coder/validators/test_green_supabase_layer_structure.py +2 -1
  26. atdd/coder/validators/test_import_boundaries.py +3 -1
  27. atdd/coder/validators/test_init_file_urns.py +3 -1
  28. atdd/coder/validators/test_preact_layer_boundaries.py +3 -1
  29. atdd/coder/validators/test_presentation_convention.py +3 -1
  30. atdd/coder/validators/test_python_architecture.py +3 -1
  31. atdd/coder/validators/test_quality_metrics.py +2 -1
  32. atdd/coder/validators/test_station_master_pattern.py +4 -2
  33. atdd/coder/validators/test_train_infrastructure.py +3 -1
  34. atdd/coder/validators/test_train_urns.py +3 -1
  35. atdd/coder/validators/test_typescript_architecture.py +3 -1
  36. atdd/coder/validators/test_usecase_structure.py +3 -1
  37. atdd/coder/validators/test_wagon_boundaries.py +2 -1
  38. atdd/planner/validators/test_plan_urn_resolution.py +3 -1
  39. atdd/planner/validators/test_wagon_urn_chain.py +3 -1
  40. atdd/planner/validators/test_wmbt_consistency.py +3 -1
  41. atdd/planner/validators/test_wmbt_vocabulary.py +2 -1
  42. atdd/tester/conventions/contract.convention.yaml +1 -1
  43. atdd/tester/conventions/migration.convention.yaml +5 -5
  44. atdd/tester/validators/cleanup_duplicate_headers.py +3 -1
  45. atdd/tester/validators/cleanup_duplicate_headers_v2.py +3 -1
  46. atdd/tester/validators/coverage_gap_report.py +3 -1
  47. atdd/tester/validators/fix_dual_ac_references.py +3 -1
  48. atdd/tester/validators/remove_duplicate_lines.py +3 -1
  49. atdd/tester/validators/test_acceptance_urn_filename_mapping.py +3 -1
  50. atdd/tester/validators/test_acceptance_urn_separator.py +3 -1
  51. atdd/tester/validators/test_contract_schema_compliance.py +3 -1
  52. atdd/tester/validators/test_contracts_structure.py +3 -1
  53. atdd/tester/validators/test_coverage_adequacy.py +3 -1
  54. atdd/tester/validators/test_dual_ac_reference.py +3 -1
  55. atdd/tester/validators/test_fixture_validity.py +2 -1
  56. atdd/tester/validators/test_isolation.py +3 -1
  57. atdd/tester/validators/test_migration_coverage.py +4 -2
  58. atdd/tester/validators/test_migration_generation.py +3 -1
  59. atdd/tester/validators/test_python_test_naming.py +3 -1
  60. atdd/tester/validators/test_red_layer_validation.py +2 -1
  61. atdd/tester/validators/test_red_python_layer_structure.py +2 -1
  62. atdd/tester/validators/test_red_supabase_layer_structure.py +3 -1
  63. atdd/tester/validators/test_telemetry_structure.py +3 -1
  64. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/METADATA +41 -12
  65. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/RECORD +69 -69
  66. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/WHEEL +0 -0
  67. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/entry_points.txt +0 -0
  68. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/licenses/LICENSE +0 -0
  69. {atdd-0.3.3.dist-info → atdd-0.4.0.dist-info}/top_level.txt +0 -0
@@ -8,8 +8,9 @@ import pytest
8
8
  from pathlib import Path
9
9
  import yaml
10
10
 
11
+ from atdd.coach.utils.repo import find_repo_root
11
12
 
12
- REPO_ROOT = Path(__file__).resolve().parents[4]
13
+ REPO_ROOT = find_repo_root()
13
14
  RED_CONVENTION = REPO_ROOT / "atdd" / "tester" / "conventions" / "red.convention.yaml"
14
15
 
15
16
 
@@ -8,8 +8,9 @@ import pytest
8
8
  from pathlib import Path
9
9
  import yaml
10
10
 
11
+ from atdd.coach.utils.repo import find_repo_root
11
12
 
12
- REPO_ROOT = Path(__file__).resolve().parents[4]
13
+ REPO_ROOT = find_repo_root()
13
14
  RED_CONVENTION = REPO_ROOT / "atdd" / "tester" / "conventions" / "red.convention.yaml"
14
15
 
15
16
 
@@ -8,8 +8,10 @@ import pytest
8
8
  from pathlib import Path
9
9
  import yaml
10
10
 
11
+ from atdd.coach.utils.repo import find_repo_root
11
12
 
12
- REPO_ROOT = Path(__file__).resolve().parents[4]
13
+
14
+ REPO_ROOT = find_repo_root()
13
15
  RED_CONVENTION = REPO_ROOT / "atdd" / "tester" / "conventions" / "red.convention.yaml"
14
16
 
15
17
 
@@ -10,8 +10,10 @@ import re
10
10
  import json
11
11
  from jsonschema import validate, ValidationError
12
12
 
13
+ from atdd.coach.utils.repo import find_repo_root
14
+
13
15
  # Path constants
14
- REPO_ROOT = Path(__file__).resolve().parents[4]
16
+ REPO_ROOT = find_repo_root()
15
17
  TELEMETRY_DIR = REPO_ROOT / "telemetry"
16
18
  CONTRACTS_DIR = REPO_ROOT / "contracts"
17
19
  PLAN_DIR = REPO_ROOT / "plan"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atdd
3
- Version: 0.3.3
3
+ Version: 0.4.0
4
4
  Summary: ATDD Platform - Acceptance Test Driven Development toolkit
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -16,6 +16,15 @@ Dynamic: license-file
16
16
 
17
17
  Acceptance Test Driven Development toolkit for structured planning and convention enforcement.
18
18
 
19
+ ATDD covers the full software lifecycle, not just code. It starts from a job to be done (e.g., user problem or goal), turns it into deterministic requirements, validates them with tests, and then drives implementation.
20
+
21
+ ```mermaid
22
+ flowchart LR
23
+ A[Job to be Done] -->|Planner| B[Wagon + Acceptance Criteria]
24
+ B -->|Tester| C[RED Tests]
25
+ C -->|Coder| D[GREEN Code]
26
+ ```
27
+
19
28
  ## Installation
20
29
 
21
30
  ### From PyPI
@@ -49,9 +58,9 @@ atdd --help
49
58
  ```bash
50
59
  atdd init # Initialize ATDD in your project
51
60
  atdd gate # ⚠️ START EVERY SESSION WITH THIS
52
- atdd session new my-feature # Create a planning session
61
+ atdd session new <capability> # Create a planning session
53
62
  atdd sync # Sync rules to agent config files
54
- atdd --test all # Run validators
63
+ atdd validate # Run all validators
55
64
  ```
56
65
 
57
66
  > **⚠️ `atdd gate` is required.**
@@ -67,6 +76,22 @@ ATDD provides:
67
76
  3. **ATDD Lifecycle** - Planner → Tester → Coder phase gates
68
77
  4. **Agent Config Sync** - Keep ATDD rules in sync across AI agent config files
69
78
 
79
+ ```mermaid
80
+ flowchart LR
81
+ A[Job to be Done] -->|Planner| B[Wagon + Acceptance Criteria]
82
+ B -->|Tester| C[RED Tests]
83
+ C -->|Coder| D[GREEN Code]
84
+ D -->|Coder| E[REFACTOR]
85
+ E -.->|feedback| B
86
+
87
+ subgraph "ATDD Lifecycle"
88
+ B
89
+ C
90
+ D
91
+ E
92
+ end
93
+ ```
94
+
70
95
  ## Commands
71
96
 
72
97
  ### Project Initialization
@@ -196,19 +221,23 @@ Before starting work, confirm you have loaded these rules.
196
221
  ### Validation
197
222
 
198
223
  ```bash
199
- atdd --test all # Run all validators
200
- atdd --test planner # Planning artifacts only
201
- atdd --test tester # Testing artifacts only
202
- atdd --test coder # Implementation only
203
- atdd --quick # Fast smoke test
224
+ atdd validate # Run all validators
225
+ atdd validate planner # Planning validators only
226
+ atdd validate tester # Testing validators only
227
+ atdd validate coder # Implementation validators only
228
+ atdd validate --quick # Fast smoke test
229
+ atdd validate --coverage # With coverage report
230
+ atdd validate --html # With HTML report
204
231
  ```
205
232
 
206
233
  ### Other Commands
207
234
 
208
235
  ```bash
209
- atdd --status # Platform status
210
- atdd --inventory # Generate artifact inventory
211
- atdd --help # Full help
236
+ atdd status # Platform status
237
+ atdd inventory # Generate artifact inventory
238
+ atdd inventory --format json # Inventory as JSON
239
+ atdd registry update # Update all registries
240
+ atdd --help # Full help
212
241
  ```
213
242
 
214
243
  ## Project Structure
@@ -264,7 +293,7 @@ pytest --cov=atdd --cov-report=html
264
293
 
265
294
  1. Create `src/atdd/{phase}/validators/test_{name}.py`
266
295
  2. Write pytest test functions
267
- 3. Run `atdd --test {phase}`
296
+ 3. Run `atdd validate {phase}`
268
297
 
269
298
  Validators are auto-discovered by pytest.
270
299
 
@@ -1,43 +1,43 @@
1
1
  atdd/__init__.py,sha256=-S8i9OahH-t9FJkPn6nprxipnjVum3rLeVsCS74T6eY,156
2
2
  atdd/__main__.py,sha256=B0sXDQLjFN9GowTlXo4NMWwPZPjDsrT8Frq7DnbdOD8,77
3
- atdd/cli.py,sha256=IiD7CpLEOSpgldgI55bc540cBGwKug_rUiih41aq5R4,14722
3
+ atdd/cli.py,sha256=NlhWL8sRLBzISgyn2KM-KT_aYnMBHt_xNP3TqfMHIhA,20364
4
4
  atdd/conftest.py,sha256=Fj3kIhCETbj2QBCIjySBgdS3stKNRZcZzKTJr7A4LaQ,5300
5
5
  atdd/version_check.py,sha256=BlPcLwzNnm457vWUolB3wMtZEI-fXvpzfm6p8U_j7rc,6684
6
6
  atdd/coach/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
7
  atdd/coach/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- atdd/coach/commands/add_persistence_metadata.py,sha256=xAdeO9k53CIGTBhzNQbWenuzeoWKZimDBR9xBWaA3NU,6887
8
+ atdd/coach/commands/add_persistence_metadata.py,sha256=AGzQUgMo_8H-YtexYFwQYx0In6fplx_BDLXqWzRIdaw,6918
9
9
  atdd/coach/commands/analyze_migrations.py,sha256=2bLfR7OwicBXAZWB4R3Sm4d5jFe87d0O_kO68X96ykU,6083
10
10
  atdd/coach/commands/consumers.py,sha256=7vTexse8xznXSzNWjPGYuF4iJ8ZWymmOSkpcA6IWyxU,27514
11
11
  atdd/coach/commands/gate.py,sha256=_V2GypqoGixTs_kLWxFF3HgEt-Wi2r6Iv0YL75yWrWo,5829
12
- atdd/coach/commands/infer_governance_status.py,sha256=91-VnI64mOzijc1Cgkmr7cnNCir2-z2ITA2-SGwk3TU,4473
12
+ atdd/coach/commands/infer_governance_status.py,sha256=MlLnx8SrJAOQq2rfuxLZMmyNylCQ-OYx4tSi_iFdhRA,4504
13
13
  atdd/coach/commands/initializer.py,sha256=s7NnITF4c6xGlN6ZJVjyv4a4jxGMjK9OPG1C-OIG55A,6385
14
- atdd/coach/commands/interface.py,sha256=PPCwICFNN4ddPqucUATIiBrfEkDO66MZbYQkwNu6lm4,40459
15
- atdd/coach/commands/inventory.py,sha256=Xakb6U3SfnEcR7rhZ0Wg8SK5frg-oPE7C0fCvE-VoH4,20923
16
- atdd/coach/commands/migration.py,sha256=KlRXXM1O-ZqfwGOWxN5C_gxfTttbXUG_yq9pOLYsGnQ,8119
14
+ atdd/coach/commands/interface.py,sha256=FwBrJpWkfSL9n4n0HT_EC-alseXgU0bweKD4TImyHN0,40483
15
+ atdd/coach/commands/inventory.py,sha256=qU42MnkXt1JSBh5GU7pPSKmCO27Zfga7XwMT19RquJE,20969
16
+ atdd/coach/commands/migration.py,sha256=wRxU7emvvHqWt1MvXKkNTkPBjp0sU9g8F5Uy5yV2YfI,8177
17
17
  atdd/coach/commands/registry.py,sha256=r1QWg841eK6bS4vEbYEviylDCpFkInUVMTsf5h4ArrQ,58344
18
18
  atdd/coach/commands/session.py,sha256=MhuWXd5TR6bB3w0t8vANeZx3L476qwLT6EUQMwg-wQA,14268
19
19
  atdd/coach/commands/sync.py,sha256=4HNzg8AVaePDwhyBlQcywvNVZDP5NIW8TBsEPbqmJuQ,12545
20
20
  atdd/coach/commands/test_interface.py,sha256=a7ut2Hhk0PnQ5LfJZkoQwfkfkVuB5OHA4QBwOS0-jcg,16870
21
- atdd/coach/commands/test_runner.py,sha256=Lutclc8Qr8BmLBvAYshXAjf8ynUM4eJgHF8GLPa1Usw,3929
22
- atdd/coach/commands/traceability.py,sha256=SYl0dRB_nQZJKe1IOCHxX193vaxOChVjnh6hcqcSOB0,163581
21
+ atdd/coach/commands/test_runner.py,sha256=_6JrDRq5fBHUOC4MtkgXcjkgJjG80otoGRTqnkEphIk,5832
22
+ atdd/coach/commands/traceability.py,sha256=8TmpZDeUVHJAz-p3oxXq55jCFiFpKIQR8h1wLZVYcgA,163612
23
23
  atdd/coach/commands/tests/__init__.py,sha256=svBEnRruMuXuaYi3lFxJlzHNWdZ5vlBTaBpjXupaxDA,33
24
24
  atdd/coach/commands/tests/test_telemetry_array_validation.py,sha256=WK5ZXvR1avlzX7mSX84dmxxLFnw7eQB4jtjo7bHG7aE,8464
25
- atdd/coach/conventions/session.convention.yaml,sha256=5gFw1AH4QFtp3mZp3brH8G7iUTWk2caxCr2UUxMc-D0,27039
25
+ atdd/coach/conventions/session.convention.yaml,sha256=1wCxQ_Y2Wb2080Xt2JZs0_WsV8_4SC0Tq87G_BCGdiE,26049
26
26
  atdd/coach/overlays/__init__.py,sha256=2lMiMSgfLJ3YHLpbzNI5B88AdQxiMEwjIfsWWb8t3To,123
27
27
  atdd/coach/overlays/claude.md,sha256=33mhpqhmsRhCtdWlU7cMXAJDsaVra9uBBK8URV8OtQA,101
28
28
  atdd/coach/schemas/config.schema.json,sha256=xzct7gBoPTIGh3NFPSGtfW0zIiyFdHDZkvjuy1qgAqA,951
29
29
  atdd/coach/schemas/manifest.schema.json,sha256=WO13-YF_FgH1awh96khCtk-112b6XSC24anlY3B7GjY,2885
30
- atdd/coach/templates/ATDD.md,sha256=eHdibGHQ66U5sYUvZFzLmTP3Z9J8P-J6dUzrYbjAd_w,13139
31
- atdd/coach/templates/SESSION-TEMPLATE.md,sha256=CPrCh279fQzDmgVob24ctH-vvKpUHr2SrJ3RLCiV05o,9898
30
+ atdd/coach/templates/ATDD.md,sha256=jovi7CeJKidboZPKLmge5OCNESq998dHPr8zTHRRvlg,13100
31
+ atdd/coach/templates/SESSION-TEMPLATE.md,sha256=gcmfDDD6rREI20vhWXlf01AGbRbR8Hh7Q4QZX4H-pVw,9455
32
32
  atdd/coach/utils/__init__.py,sha256=7Jbo-heJEKSAn6I0s35z_2S4R8qGZ48PL6a2IntcNYg,148
33
- atdd/coach/utils/repo.py,sha256=9rZeAf1b7-modoTiPZAwtjnoiI8YyHWIZhpqXvkJ7Qo,3104
33
+ atdd/coach/utils/repo.py,sha256=0kiF5WpVTen0nO14u5T0RflznZhgGco2i9CwKobOh38,3757
34
34
  atdd/coach/utils/graph/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
35
  atdd/coach/utils/graph/urn.py,sha256=O2AHIB_CmmMUvXzyejc_oFReNW_rOcw7m4qaqSYcnNQ,33558
36
36
  atdd/coach/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
37
- atdd/coach/validators/shared_fixtures.py,sha256=ZxpTYM1ERL9sJXNl_IbtBl8MHnGBx1IhKT091Jh_gH4,11920
37
+ atdd/coach/validators/shared_fixtures.py,sha256=ZWZl6vyny8bv4BehJwPAz_Czld1mR3u_SLgC8uL4bhc,12142
38
38
  atdd/coach/validators/test_enrich_wagon_registry.py,sha256=WeTwYJqoNY6mEYc-QAvQo7YVagSOjaNKxB6Q6dpWqIM,6561
39
39
  atdd/coach/validators/test_registry.py,sha256=ffN70yA_1xxL3R8gdpGbY2M8dQXyuajIZhBZ-ylNiNs,17845
40
- atdd/coach/validators/test_session_validation.py,sha256=Tx5HfQ0mZfVLypLe4wbKTracMc9nVRCoxDobOko6xwU,39104
40
+ atdd/coach/validators/test_session_validation.py,sha256=0VszXtFwRTO04b5CxDPO3klk0VfiqlpdbNpshjMn-qU,39079
41
41
  atdd/coach/validators/test_traceability.py,sha256=qTyobt41VBiCr6xRN2C7BPtGYvk_2poVQIe814Blt8E,15977
42
42
  atdd/coach/validators/test_update_feature_paths.py,sha256=zOKVDgEIpncSJwDh_shyyou5Pu-Ai7Z_XgF8zAbQVTA,4528
43
43
  atdd/coach/validators/test_validate_contract_consumers.py,sha256=b01yam_GwAERF6YaFmUV6Bd7SNMWQkUKBfNVvplbEcU,12613
@@ -62,32 +62,32 @@ atdd/coder/conventions/verification.protocol.yaml,sha256=tYOId2A8xKoTqjcrKN1RNUK
62
62
  atdd/coder/conventions/tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
63
63
  atdd/coder/conventions/tests/test_adapter_recipe.py,sha256=293CU9rj7z6bj_1Wh02VhVCslaHfK-KeMJFgKgK7cvM,9370
64
64
  atdd/coder/conventions/tests/test_complexity_recipe.py,sha256=xz-SbIjPRLRdiydRhX1rkHg1aszWyxjo5bJVa5gGohU,9123
65
- atdd/coder/conventions/tests/test_component_taxonomy.py,sha256=syvXVUU0Zucd8gNZ4HVGZmrweSBuDzPt8ct81mFkDcc,14102
66
- atdd/coder/conventions/tests/test_component_urn_naming.py,sha256=MZZkmvhkv4zCrAv_j0di2uQOb6rQPCg5j4XcyLauKn4,6336
65
+ atdd/coder/conventions/tests/test_component_taxonomy.py,sha256=ur_vVh_4G30cYcUEF_Lo0-F9Szno3qNHMuOQyxj7pSI,14037
66
+ atdd/coder/conventions/tests/test_component_urn_naming.py,sha256=XAROfe-fpkY49vIRf8w-4ivj7hvYomrmWKmJ2uZ6Snk,6367
67
67
  atdd/coder/conventions/tests/test_thinness_recipe.py,sha256=cO2BpGnlN62rwje43e-zoh1mADqrtQadPeqRARM9_YE,8702
68
68
  atdd/coder/schemas/design_system.schema.json,sha256=KgHxYa3DeNZdXwn17WniTPN-T-ALdHJpk96YZv4WapU,10101
69
69
  atdd/coder/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
70
- atdd/coder/validators/test_commons_structure.py,sha256=0o-8XMyRLRVj4VB5Elcf5PbVivCdBXPE0rkSaH3t_Cs,15418
71
- atdd/coder/validators/test_complexity.py,sha256=BPgDY_-SVeajHNrmZRjf1Ti4AXC6hGI3jcURon50TFQ,12279
72
- atdd/coder/validators/test_cross_language_consistency.py,sha256=CMxoZO0d3yVXY9Pjs_QAIq0DnUelzrxBTCJxwed784o,13173
73
- atdd/coder/validators/test_design_system_compliance.py,sha256=_foJ3CR8LsQyx1Qy6dPaVjgWnaK9u6HeY_dYjt8zs9M,14510
74
- atdd/coder/validators/test_dto_testing_patterns.py,sha256=_TGnQZCrghC0MNlq6pl4xd0jEhXPFePkklY11xUzyUo,9428
75
- atdd/coder/validators/test_green_cross_stack_layers.py,sha256=x26JEYWtkeCRSV18QpNnbXMadg8yN8Rcifw5RSQRGYU,6791
76
- atdd/coder/validators/test_green_layer_dependencies.py,sha256=azytNISdb8ZPAAu5wQf24tl2P59Ygc3tukvmc-MQWX4,5499
77
- atdd/coder/validators/test_green_python_layer_structure.py,sha256=dQgVwc3QUBG_iJ3yKv8vNnWXioTSNl0_2TR2fr_Cg8U,4256
78
- atdd/coder/validators/test_green_supabase_layer_structure.py,sha256=yTrev-ShElH6a2FwrSCmifYf_dOrdyDlbwBcshetUa0,4245
79
- atdd/coder/validators/test_import_boundaries.py,sha256=FgRKG5UQ2UBrxP-Qxoj9VHl7M6gz4KKuNvUVpfvUZAE,11780
80
- atdd/coder/validators/test_init_file_urns.py,sha256=NxrsX58Al_jMvWwJZVfcqyc1tk2WAho62VlRoMfzZsw,17883
81
- atdd/coder/validators/test_preact_layer_boundaries.py,sha256=d4i4wJxhycYijs49uQVfrkFnxf_ZHH8wbyrzvDH8QQQ,7794
82
- atdd/coder/validators/test_presentation_convention.py,sha256=9zeEMhnGla_eVtBqJZyPWPQ4oLHU_lbarFyezmtMgg4,10006
83
- atdd/coder/validators/test_python_architecture.py,sha256=W05I4UcDQHWykdTJauJf9E7tLP_4JGPRHDLdbcLip1E,25084
84
- atdd/coder/validators/test_quality_metrics.py,sha256=7qZbFZUDDotTcPG7dtYWaM-w3483s3gy1-cYJBvDYos,12521
85
- atdd/coder/validators/test_station_master_pattern.py,sha256=a16uDjuYSg3JiZWyFSjTpeVKPOgcklsIRMFzAafH8V4,9235
86
- atdd/coder/validators/test_train_infrastructure.py,sha256=Ro04kLrzQH26cMrQGe1s21UmGpfqfegIW4KTNPJ1LxA,16042
87
- atdd/coder/validators/test_train_urns.py,sha256=O1TzORT2BUiqN_bK9yZS8cAKi6PLxipZDBBgdEvIL0g,9940
88
- atdd/coder/validators/test_typescript_architecture.py,sha256=IyxLQlPFDLvkkAPnYpFA8RbPeZ5jhlOCtjMDxgBOHSs,22023
89
- atdd/coder/validators/test_usecase_structure.py,sha256=GaHL5IwQcP_IwbJ2ZjGL9JFhHEJrLK5V0WaNCB5scYw,14046
90
- atdd/coder/validators/test_wagon_boundaries.py,sha256=wQkjy-XRT5iqmuro_E58PWIa_Y2YBUzWmrWhgspZUx0,20532
70
+ atdd/coder/validators/test_commons_structure.py,sha256=MSoofMREjdWXsaoy2zvloiBzxk1J80FEOcpd7ed22fs,15449
71
+ atdd/coder/validators/test_complexity.py,sha256=jWDLOUfs66L4vrzWJ41qJTA_AVOeZzXKW94SqMz80I4,12310
72
+ atdd/coder/validators/test_cross_language_consistency.py,sha256=FTHJByvA_zJmJyK8VAK9h0EZaKafP6FmQn9wuoySlks,13204
73
+ atdd/coder/validators/test_design_system_compliance.py,sha256=UA9UwzbayiXnIgYwcQmb4Z7wbntN2oCxOc7eaAeFK6U,14541
74
+ atdd/coder/validators/test_dto_testing_patterns.py,sha256=JMdUWsn0yviOVtMo7zbJ6r3lZbj4SkhSBIIIQ940pE8,9429
75
+ atdd/coder/validators/test_green_cross_stack_layers.py,sha256=OS337t0x3yEITYqS0Q-qCXS9jT_Izz9ctvW3McF90zo,6822
76
+ atdd/coder/validators/test_green_layer_dependencies.py,sha256=xovqlIygF6PTwtflXxPIkWMfwQsbkgqLwsFVFzq3s3E,5530
77
+ atdd/coder/validators/test_green_python_layer_structure.py,sha256=NCOd7X-TzDP-EnF08CR8NZLG-91tFVwLWMag2I2jgTA,4287
78
+ atdd/coder/validators/test_green_supabase_layer_structure.py,sha256=Sn2PK6DfrzJPzXH7Sp24qIs-YtTKtkIbmLrNU_mR7Jg,4275
79
+ atdd/coder/validators/test_import_boundaries.py,sha256=3kzVMKIwZU9FcS0YLU8gsuHSDRlRr2rU3UPgoraV2FU,11811
80
+ atdd/coder/validators/test_init_file_urns.py,sha256=uDJ2MgfJNFcjzoIKItn73n9V08m3ZBkt1SAZgHWdXPs,17914
81
+ atdd/coder/validators/test_preact_layer_boundaries.py,sha256=rabXY9gif3b8QH9_Kz5Pu6FZSvDpfQKDm_SKjdpLD44,7766
82
+ atdd/coder/validators/test_presentation_convention.py,sha256=ceAtg_sTEJiPkHVfnwBEDTzTH44nKQIiukIEvZz8r18,10037
83
+ atdd/coder/validators/test_python_architecture.py,sha256=NCMUPqgaUUPAvpkzLYb1mgjnznjhXnu5Mw0njRawexI,25115
84
+ atdd/coder/validators/test_quality_metrics.py,sha256=vLWPfL0x9sfCvKXO4uECW61RnJTsjbmuEUjCsBcUmuA,12551
85
+ atdd/coder/validators/test_station_master_pattern.py,sha256=biYwXAftpXdhIhDjn2RrVTdEdvTWPW5ddm2gQubJBXQ,9280
86
+ atdd/coder/validators/test_train_infrastructure.py,sha256=lABiut9zV5IQP_E-41aOOeSXasuNtZz_XXBEwsAj0yI,16073
87
+ atdd/coder/validators/test_train_urns.py,sha256=rDz6YHtJx3RWZrBNB0AOuRkWwbr3mvDIIk9z_V1Qmzk,9971
88
+ atdd/coder/validators/test_typescript_architecture.py,sha256=Idnx1Ux551TcC5DVFquz_DHSpcTI9yy13Y0UKxQbl54,22054
89
+ atdd/coder/validators/test_usecase_structure.py,sha256=nAeqmLWRCstXT8fDuxqk6iVcH4TLHjTvlaGDpanD9sM,14077
90
+ atdd/coder/validators/test_wagon_boundaries.py,sha256=dxVCXRWK6Cc_CknRwoGC2y8-JOLq3Q_UsFJDT_N4oqA,20562
91
91
  atdd/planner/__init__.py,sha256=ZXzKPNqP_JgEeFnwwUAKfIwz2e1i2gwrmz1SyC65sl4,47
92
92
  atdd/planner/conventions/acceptance.convention.yaml,sha256=q_1hm-uJ2Sbh6VqGHQ543L9NTnOuS2UGWT-n9uAdfmM,21918
93
93
  atdd/planner/conventions/appendix.convention.yaml,sha256=wuv9mnSZ-L1vUp2xx0OmyOsYurApitsmO_MilLVGcOc,9394
@@ -112,17 +112,17 @@ atdd/planner/validators/conftest.py,sha256=CVr3m9mv4xc8G6azcdbZ1VArVvLZw2Utqt2EI
112
112
  atdd/planner/validators/test_draft_wagon_registry.py,sha256=Bt4xTjgKddEnnxNOMh8jWhvb3aqRaWGBd227Vv3rWz0,13798
113
113
  atdd/planner/validators/test_plan_cross_refs.py,sha256=MlRMuM_eo3h8Q1pOdcvxyRNqRie9xPiYamOeofwiKaM,9505
114
114
  atdd/planner/validators/test_plan_uniqueness.py,sha256=rlC5khAoBkgpTZJdyHi1JbDUj14v1JiGBFv2iV_AP_Y,7735
115
- atdd/planner/validators/test_plan_urn_resolution.py,sha256=FnshqMSDKVxEDnqirWNaYDwFQmYqYskRDY_rYCJHwgI,9409
115
+ atdd/planner/validators/test_plan_urn_resolution.py,sha256=GoxFiRjOfp69FUmIyKGnsGgpYalOz3qfp6qjyCkga44,9440
116
116
  atdd/planner/validators/test_plan_wagons.py,sha256=l4jbHf9Kg-Fy8Gz5O8BO7PDQKbbeLN0uctoErPK_YKI,7357
117
117
  atdd/planner/validators/test_train_validation.py,sha256=13j5hx_bcBhf3xFeqCJGo79y8lN9xpNEXXRzjV17tHQ,16972
118
- atdd/planner/validators/test_wagon_urn_chain.py,sha256=srROMBPGuWNUcW2dYg01SP3pGgzYd1nH0iH4sS-6RnM,26666
119
- atdd/planner/validators/test_wmbt_consistency.py,sha256=vlMARAeUfxHKo5J_J2TCOvpnzKRv0ZEXsBBD4smR1GQ,10844
120
- atdd/planner/validators/test_wmbt_vocabulary.py,sha256=vnkBve6hE1KOd4HYOzSvKoAm1XVKSI-8Qgk_yz5gjsk,18645
118
+ atdd/planner/validators/test_wagon_urn_chain.py,sha256=KY_0vrj6CoiQJ80WbqfCGCYbup13cVssaxbNO0eVf74,26697
119
+ atdd/planner/validators/test_wmbt_consistency.py,sha256=jdfu4xWEozzBGwplKDXxuDQNLBDxB_AC96NHLkyHqQ8,10875
120
+ atdd/planner/validators/test_wmbt_vocabulary.py,sha256=BWXxa2yUIVFC467Jui88ORmlE8lWulqY7vmGr8usZhc,18675
121
121
  atdd/tester/__init__.py,sha256=Y08g-sPqui6fz9ziRFyH5EFt_cGN9-_qrgBLXTy0tSs,46
122
122
  atdd/tester/conventions/artifact.convention.yaml,sha256=6OJHM3scQeVOrSM3DVJH_D6DTGJ8Mdd7gQhf5hGoRvQ,8434
123
- atdd/tester/conventions/contract.convention.yaml,sha256=h32HV_98udN8OQ8Q4iOAQK2vitza2t7k9aDn-6MYEyQ,34832
123
+ atdd/tester/conventions/contract.convention.yaml,sha256=oByzcBZivn-xUHbMg0OeebHeNx5-gwQJwfUDZ_OUgxA,34832
124
124
  atdd/tester/conventions/filename.convention.yaml,sha256=WywcPhdxIZSoY6F6OSx5v3_AtS2jMMGoSnd6Va4BAaw,19920
125
- atdd/tester/conventions/migration.convention.yaml,sha256=xqZZrMKJVlBQdGab5mJF2enChLebGGPQkd-ioDWFQtw,20075
125
+ atdd/tester/conventions/migration.convention.yaml,sha256=Xx5EIwNct6wb--sYtm7EJp8wu39qo4eZZ-O8AyfeRgY,20019
126
126
  atdd/tester/conventions/red.convention.yaml,sha256=S0mc4JpvNuOSYhqmt6bm0tCuDTCFYFRsSBru3XMwXgs,28901
127
127
  atdd/tester/conventions/routing.convention.yaml,sha256=gRJrnQd-cXCUGby0CeaJdRmrFXZx70kl-FxXCoXiu5Y,2751
128
128
  atdd/tester/conventions/security.convention.yaml,sha256=3QjQZqw1Iw8g6jUmuKWkOqcZ1n1sc1OJDvKD0eTk070,5445
@@ -155,35 +155,35 @@ atdd/tester/schemas/ws.tmpl.json,sha256=s4d-QDJpKzF3Ysbm1kkXL78YKKZ5sRrs49YTsVbS
155
155
  atdd/tester/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
156
156
  atdd/tester/utils/filename.py,sha256=okhlkPsE0hUn6AE2I01P38WzFvAtV2jy7FJhDyrnWOg,8445
157
157
  atdd/tester/validators/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
158
- atdd/tester/validators/cleanup_duplicate_headers.py,sha256=XR6oUQY-RqfxZm5XJe8RqqMsBB3vJR4kTLtPAKT6yZ0,3335
159
- atdd/tester/validators/cleanup_duplicate_headers_v2.py,sha256=hLp-sJmLXAueJzGrbtIcGeg--HJP81289TQ4eVAt7c4,3818
158
+ atdd/tester/validators/cleanup_duplicate_headers.py,sha256=ANronriY5nhbDPre566nJile3uoNs-8Mv-SwV3e-OhE,3366
159
+ atdd/tester/validators/cleanup_duplicate_headers_v2.py,sha256=zr2ogvyZEjyVh2c82S0tKI0pzl5fyntxuUIOWcUmylY,3849
160
160
  atdd/tester/validators/conftest.py,sha256=0kQ1VXYWQArkWMB97eTBuviTmEYx69bHhMt4rltL0Jk,154
161
- atdd/tester/validators/coverage_gap_report.py,sha256=654rfCW7BIhX4S-naJd8T8WeNj_vWfdn_WHqBp8nsK8,10152
162
- atdd/tester/validators/fix_dual_ac_references.py,sha256=TyFEfkfNFW1gknRPC_KmTEYhngkpBm6K81DO2ze87cY,4875
163
- atdd/tester/validators/remove_duplicate_lines.py,sha256=2rHWFHF34W5m_TnSdbC3-u7NxTrJ6FWjXJZKP7rWFdY,2494
164
- atdd/tester/validators/test_acceptance_urn_filename_mapping.py,sha256=sLopDoF78heaW5cqT-Z6SmpifKzUr0kndVWzX8xRLvs,12823
165
- atdd/tester/validators/test_acceptance_urn_separator.py,sha256=PnXaISoOVgr21cGgbcFnm8V9re1nv0ctatJaIqJk6KE,6847
161
+ atdd/tester/validators/coverage_gap_report.py,sha256=rNztpPLYl8zf61xVGE-C_cPJ6sOWc3Ji2R0lUQUDjw0,10183
162
+ atdd/tester/validators/fix_dual_ac_references.py,sha256=AlkM7Gj0Bg0Mr2x6tPmzD8pg_6aZygOmsRuQ0xQh4SY,4906
163
+ atdd/tester/validators/remove_duplicate_lines.py,sha256=BdU33gziYYlJQPRXm69XWg-K2zz7J4QZ8BNXQYR7Yp8,2525
164
+ atdd/tester/validators/test_acceptance_urn_filename_mapping.py,sha256=_LjJIq3jvpk7zE-3uvsVd2icyCgEG9HjP-7xn3VzVs4,12854
165
+ atdd/tester/validators/test_acceptance_urn_separator.py,sha256=auCuztjpS0qnP82J7gBYoCX6HhxxVZkvC4PNb1rLOCg,6878
166
166
  atdd/tester/validators/test_artifact_naming_category.py,sha256=V7AOamSUIbpl6bO_Qj3h_46vc2hsh6OVPCMco1H7zTc,12541
167
- atdd/tester/validators/test_contract_schema_compliance.py,sha256=8LnZotoND2UNdZy9XdoNnTcBdMjyDsHtgjKLZ4bFeX8,26103
167
+ atdd/tester/validators/test_contract_schema_compliance.py,sha256=rzBisGK0cbjU4hFUNBpW6RWSe-hKfRXkKlKW65ucbNI,26134
168
168
  atdd/tester/validators/test_contract_security.py,sha256=fKNaevmbSAoGyOKBhPnHw5xSGXptG0ciS0__qtO9Qac,19541
169
- atdd/tester/validators/test_contracts_structure.py,sha256=b930uB96iXK9xF080pATkzBWtP4mvRenkOeA1RdhJOE,9784
170
- atdd/tester/validators/test_coverage_adequacy.py,sha256=1UCJ0-7xnkvcdAagfvB7dT4ZzPEyZC5mMxA3z2g4yGA,27026
171
- atdd/tester/validators/test_dual_ac_reference.py,sha256=3yksy4xWta7kC1QMJQvx-a-cBXNSpY4FNpi0K8H3CYU,8888
172
- atdd/tester/validators/test_fixture_validity.py,sha256=nmkPOWXQFieyGC-hXtIhMm_j1wAW-kIRJsGC3QDB1hM,12071
173
- atdd/tester/validators/test_isolation.py,sha256=btQebRzepCHZoTA1JZvZSumOx0xVJ_IJYCBvD0COmNM,16343
174
- atdd/tester/validators/test_migration_coverage.py,sha256=Fu7CAqKqBJZvnjjmt3RG5GReTKkJmiCX6T67qCXvwyg,7313
169
+ atdd/tester/validators/test_contracts_structure.py,sha256=RRmIzcbwwBtZDVio558TQt-SBjiVOgb79j8aFR4FRbw,9815
170
+ atdd/tester/validators/test_coverage_adequacy.py,sha256=gIaz1LJahSGSn-t-42hTeJochVBJFA4kE7Z_LBg7dtk,27057
171
+ atdd/tester/validators/test_dual_ac_reference.py,sha256=5llpy4gFn0VtWn8KCPFHdE3EoWewB2orjcwrtk5XInU,8919
172
+ atdd/tester/validators/test_fixture_validity.py,sha256=Fp4AWwhvZlos1ik_d7NbP030Qq-klZLnCmc12ylptqs,12101
173
+ atdd/tester/validators/test_isolation.py,sha256=0Dw4ERL5xKrSscSXLdYaZNemFLmonrWrXAtSenp2aLE,16374
174
+ atdd/tester/validators/test_migration_coverage.py,sha256=LOx0L9KLH4gVisNHXhxKrzHLgCgj4PVZxeZ-2gg-SQk,7344
175
175
  atdd/tester/validators/test_migration_criteria.py,sha256=YDGvWjkVSjUVVNv4RJWLdy4iLoG1EXzmm_ficD0Gt3Q,7896
176
- atdd/tester/validators/test_migration_generation.py,sha256=ojuULur6dV9oeBeSKKzaFSEOQuU3J1wnVzZGY6Ph02c,4033
177
- atdd/tester/validators/test_python_test_naming.py,sha256=RfsYvtaGNXtuNmwwtqighI-Gu89blIOjSkzMBQhnKZE,14382
178
- atdd/tester/validators/test_red_layer_validation.py,sha256=8nUy-ThOjrZpxXh_Kmmcj8lKa2cHSQeWcthahq92JLQ,3465
179
- atdd/tester/validators/test_red_python_layer_structure.py,sha256=zqWfKwaPX3HDeY4TUEqppIcD68d6xYuALHIUZBOlZjE,3335
180
- atdd/tester/validators/test_red_supabase_layer_structure.py,sha256=26cnzPZAwSFy0oofoIqanEnSqRgeLP2ZMACw-0KHndo,3703
181
- atdd/tester/validators/test_telemetry_structure.py,sha256=hIUnU2WU-8PNIg9EVHe2fnUdIQKIOUm5AWEtCBUXLVk,22467
176
+ atdd/tester/validators/test_migration_generation.py,sha256=wpTmuxvM13OfSgC-3SJBdtB2XaPjBYyD-jXVYWi7Z9Q,4064
177
+ atdd/tester/validators/test_python_test_naming.py,sha256=4dXlHYTeTt34r5AjXIeGbZuMy6_Eh73kq1ksmQhI5qo,14413
178
+ atdd/tester/validators/test_red_layer_validation.py,sha256=R5aDBxgwUGI6-rQKMhRSHakXLT95stHRpBljtRyrodE,3495
179
+ atdd/tester/validators/test_red_python_layer_structure.py,sha256=_UHi5VMbYkRAWFMULZsAjHEUY5F2kU50rlxaP-mvJWk,3365
180
+ atdd/tester/validators/test_red_supabase_layer_structure.py,sha256=Sm9zycJCLsaMLT-NuDIXC8gLXBLomvKNVWlShHRsowA,3734
181
+ atdd/tester/validators/test_telemetry_structure.py,sha256=i22GY0C6X9or8ErRfPn8Dsge0MfwvkgONVs_24vch-4,22498
182
182
  atdd/tester/validators/test_typescript_test_naming.py,sha256=E-TyGv_GVlTfsbyuxrtv9sOWSZS_QcpH6rrJFbWoeeU,11280
183
183
  atdd/tester/validators/test_typescript_test_structure.py,sha256=eV89SD1RaKtchBZupqhnJmaruoROosf3LwB4Fwe4UJI,2612
184
- atdd-0.3.3.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
185
- atdd-0.3.3.dist-info/METADATA,sha256=K0LQB_4qxlKQ4o7hmBpSDG2zMRoNVbI4QCUggzEb4ws,7081
186
- atdd-0.3.3.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
187
- atdd-0.3.3.dist-info/entry_points.txt,sha256=-C3yrA1WQQfN3iuGmSzPapA5cKVBEYU5Q1HUffSJTbY,38
188
- atdd-0.3.3.dist-info/top_level.txt,sha256=VKkf6Uiyrm4RS6ULCGM-v8AzYN8K2yg8SMqwJLoO-xs,5
189
- atdd-0.3.3.dist-info/RECORD,,
184
+ atdd-0.4.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
185
+ atdd-0.4.0.dist-info/METADATA,sha256=fp4vKeLQzjbW1xNKx56BH2raEnIce4OEhX9Sy8N5MaA,8013
186
+ atdd-0.4.0.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
187
+ atdd-0.4.0.dist-info/entry_points.txt,sha256=-C3yrA1WQQfN3iuGmSzPapA5cKVBEYU5Q1HUffSJTbY,38
188
+ atdd-0.4.0.dist-info/top_level.txt,sha256=VKkf6Uiyrm4RS6ULCGM-v8AzYN8K2yg8SMqwJLoO-xs,5
189
+ atdd-0.4.0.dist-info/RECORD,,
File without changes