atdd 4.2.2__tar.gz → 4.2.4__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 (2520) hide show
  1. {atdd-4.2.2/src/atdd.egg-info → atdd-4.2.4}/PKG-INFO +1 -1
  2. {atdd-4.2.2 → atdd-4.2.4}/build_meta_shim/__pycache__/_release_version.cpython-312.pyc +0 -0
  3. {atdd-4.2.2 → atdd-4.2.4}/build_meta_shim/__pycache__/atdd_version_backend.cpython-312.pyc +0 -0
  4. {atdd-4.2.2 → atdd-4.2.4}/pyproject.toml +4 -0
  5. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/registry.py +4 -4
  6. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/graph/relationships.yaml +103 -145
  7. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/edge_validator.py +3 -3
  8. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/graph_builder.py +33 -3
  9. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/resolver.py +315 -28
  10. atdd-4.2.4/src/atdd/coach/utils/graph/tests/test_subject_and_train_resolvers.py +274 -0
  11. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_urn_extension_contract.py +47 -22
  12. atdd-4.2.4/src/atdd/coach/utils/graph/tests/test_urn_grammar_convention.py +152 -0
  13. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_urn_security_grammar.py +37 -33
  14. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_urn_smoke_harness_token.py +10 -10
  15. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/urn.py +272 -247
  16. atdd-4.2.4/src/atdd/coach/utils/graph/urn_grammar.yaml +153 -0
  17. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/rule_binding.py +7 -7
  18. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_repo_rule_walker.py +1 -1
  19. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_registry.py +5 -5
  20. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_init_file_urns.py +5 -5
  21. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author.py +48 -11
  22. atdd-4.2.4/src/atdd/planner/commands/tests/test_create_train_typed.py +77 -0
  23. atdd-4.2.4/src/atdd/planner/conventions/nodes/planner.subject.invariants.convention.yaml +34 -0
  24. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-route-category-matches-train-id.convention.yaml +8 -7
  25. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/train.convention.yaml +10 -190
  26. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/sanity.py +40 -7
  27. atdd-4.2.4/src/atdd/planner/migration/__init__.py +1 -0
  28. atdd-4.2.4/src/atdd/planner/migration/tests/test_train_urn_migration.py +100 -0
  29. atdd-4.2.4/src/atdd/planner/migration/tests/test_train_urn_migration_apply.py +178 -0
  30. atdd-4.2.4/src/atdd/planner/migration/train_urn_migration.py +415 -0
  31. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/train-interlocking.schema.json +5 -6
  32. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/train.schema.json +14 -4
  33. atdd-4.2.4/src/atdd/planner/subjects.py +215 -0
  34. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_sequence_diagram_sanity.py +31 -6
  35. atdd-4.2.4/src/atdd/planner/validators/test_subject_invariants.py +138 -0
  36. atdd-4.2.4/src/atdd/planner/validators/test_typed_urn_schemas.py +160 -0
  37. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_acceptance_urn_separator.py +8 -8
  38. atdd-4.2.4/src/atdd/tester/validators/test_grammar_validators_delegate.py +72 -0
  39. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_smoke_coverage.py +20 -0
  40. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_backend_e2e.py +28 -7
  41. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_completeness.py +2 -2
  42. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_e2e_existence.py +2 -2
  43. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_frontend_e2e.py +21 -2
  44. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_frontend_python.py +24 -6
  45. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_route_smoke_coverage.py +2 -1
  46. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_typescript_test_naming.py +21 -12
  47. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_typescript_test_structure.py +17 -13
  48. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_urn_spec_v3.py +27 -2
  49. atdd-4.2.4/src/atdd/train/tests/__init__.py +0 -0
  50. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/graph_loader.py +25 -2
  51. atdd-4.2.4/src/atdd/validators/conventions/_support/graph_mutations.py +62 -0
  52. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/_parity_support.py +40 -14
  53. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_commit_trailers_rule_binding.py +4 -2
  54. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_no_hardcoded_rule_severity.py +4 -2
  55. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_runtime_artifacts_rule_binding.py +4 -2
  56. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_spawn_cli_rule_binding.py +4 -2
  57. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_train_family_matches_terminal_contract.py +7 -5
  58. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_train_validation.py +6 -4
  59. atdd-4.2.4/src/atdd/validators/conventions/tests/test_e033_binding_fault_in_cloned_graph.py +136 -0
  60. atdd-4.2.4/src/atdd/validators/conventions/tests/test_e033_no_yaml_written_smoke.py +92 -0
  61. {atdd-4.2.2 → atdd-4.2.4/src/atdd.egg-info}/PKG-INFO +1 -1
  62. {atdd-4.2.2 → atdd-4.2.4}/src/atdd.egg-info/SOURCES.txt +17 -2
  63. atdd-4.2.2/src/atdd/planner/conventions/nodes/planner.train.numbering.convention.yaml +0 -30
  64. atdd-4.2.2/src/atdd/planner/conventions/nodes/planner.train.urn-naming.convention.yaml +0 -26
  65. {atdd-4.2.2 → atdd-4.2.4}/LICENSE +0 -0
  66. {atdd-4.2.2 → atdd-4.2.4}/MANIFEST.in +0 -0
  67. {atdd-4.2.2 → atdd-4.2.4}/README.md +0 -0
  68. {atdd-4.2.2 → atdd-4.2.4}/build_meta_shim/_release_version.py +0 -0
  69. {atdd-4.2.2 → atdd-4.2.4}/build_meta_shim/atdd_version_backend.py +0 -0
  70. {atdd-4.2.2 → atdd-4.2.4}/setup.cfg +0 -0
  71. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/__init__.py +0 -0
  72. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/__main__.py +0 -0
  73. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/__init__.py +0 -0
  74. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/__init__.py +0 -0
  75. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/__init__.py +0 -0
  76. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/_helpers.py +0 -0
  77. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/_publish_helpers.py +0 -0
  78. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c010_smoke_001_cli_rejects_tampered_body.py +0 -0
  79. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c010_unit_001_rejects_missing_graph_context.py +0 -0
  80. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c010_unit_002_rejects_out_of_enum_status.py +0 -0
  81. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c011_smoke_001_live_drift_guard_over_real_artifacts.py +0 -0
  82. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c011_unit_001_tri_directional_drift_guard.py +0 -0
  83. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c012_smoke_001_store_unreachable_fails_loud.py +0 -0
  84. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_c012_unit_001_store_unreachable_fails_loud.py +0 -0
  85. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_e006_smoke_001_cli_emits_gate_passing_body.py +0 -0
  86. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_e006_unit_001_emits_schema_valid_body.py +0 -0
  87. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_e008_smoke_001_author_issue_publishes_to_live_store.py +0 -0
  88. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_e008_unit_001_author_issue_creates_work_item.py +0 -0
  89. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_e008_unit_002_links_exactly_one_github_ref.py +0 -0
  90. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_k002_smoke_001_real_issue_bodies_validate.py +0 -0
  91. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/author_atdd_substrate/author_issue_body/tests/test_k002_unit_001_existing_bodies_validate.py +0 -0
  92. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/cli.py +0 -0
  93. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/__init__.py +0 -0
  94. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/__init__.py +0 -0
  95. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/add_persistence_metadata.py +0 -0
  96. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/agent.py +0 -0
  97. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/analyze_migrations.py +0 -0
  98. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/auto_phase.py +0 -0
  99. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/autofix.py +0 -0
  100. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/branch.py +0 -0
  101. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/branch_protection.py +0 -0
  102. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/checkpoint.py +0 -0
  103. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/cleanup.py +0 -0
  104. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach.py +0 -0
  105. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_dashboard.py +0 -0
  106. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_gc.py +0 -0
  107. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_review.py +0 -0
  108. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_status.py +0 -0
  109. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/__init__.py +0 -0
  110. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/check.py +0 -0
  111. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/close_wmbt.py +0 -0
  112. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/enter.py +0 -0
  113. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/is_registered.py +0 -0
  114. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/issue_review.py +0 -0
  115. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/issues.py +0 -0
  116. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/reconcile.py +0 -0
  117. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/sync_labels.py +0 -0
  118. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/sync_wmbts.py +0 -0
  119. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_verbs/transition.py +0 -0
  120. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_watch.py +0 -0
  121. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/coach_workspace.py +0 -0
  122. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/color.py +0 -0
  123. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/consumers.py +0 -0
  124. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/diagnostics.py +0 -0
  125. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/durability.py +0 -0
  126. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/emergency.py +0 -0
  127. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/event_queue.py +0 -0
  128. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/gate.py +0 -0
  129. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/git_watcher.py +0 -0
  130. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/infer_governance_status.py +0 -0
  131. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/initializer.py +0 -0
  132. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/interface.py +0 -0
  133. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/inventory.py +0 -0
  134. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue.py +0 -0
  135. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_graph.py +0 -0
  136. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_lifecycle.py +0 -0
  137. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_prefixes.py +0 -0
  138. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_read.py +0 -0
  139. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_review.py +0 -0
  140. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_template.py +0 -0
  141. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/issue_transition.py +0 -0
  142. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/judge.py +0 -0
  143. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/judge_call_sites.py +0 -0
  144. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/liveness_checker.py +0 -0
  145. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/llm_clients/__init__.py +0 -0
  146. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/llm_clients/_subprocess_shim.py +0 -0
  147. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/merge_cascade.py +0 -0
  148. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/merge_cascade_pyproject.py +0 -0
  149. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/merge_cascade_topology.py +0 -0
  150. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/migration.py +0 -0
  151. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/observer.py +0 -0
  152. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/pr.py +0 -0
  153. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/resume.py +0 -0
  154. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/rules.py +0 -0
  155. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/runtime_watcher.py +0 -0
  156. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/session_template.py +0 -0
  157. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/spawn.py +0 -0
  158. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/spawn_harness_blocks.py +0 -0
  159. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/suppress.py +0 -0
  160. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/sync.py +0 -0
  161. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/test_interface.py +0 -0
  162. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/test_runner.py +0 -0
  163. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/__init__.py +0 -0
  164. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/_e007_respawn_harness.py +0 -0
  165. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/conftest.py +0 -0
  166. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E001_cli_characterization.py +0 -0
  167. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E001_integration_001_phase_a_rollback.py +0 -0
  168. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E001_integration_002_phase_b_launch.py +0 -0
  169. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E001_integration_003_resume_source_replaced.py +0 -0
  170. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E001_smoke_001_two_phase_commit_real_fs.py +0 -0
  171. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E002_integration_001_cold_start_spawns_planner.py +0 -0
  172. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E002_integration_002_cold_start_writes_decisions_jsonl.py +0 -0
  173. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E002_integration_003_cold_start_then_resume_reconstructs.py +0 -0
  174. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E002_integration_004_complete_with_auto_merge.py +0 -0
  175. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E002_integration_005_refactor_without_auto_merge_escalates.py +0 -0
  176. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_integration_001_resume_invokes_transition_action.py +0 -0
  177. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_integration_002_resume_spawns_pending_phase_persona.py +0 -0
  178. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_integration_003_no_paper_fast_forward_on_block.py +0 -0
  179. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_integration_004_already_complete_resume_idempotent.py +0 -0
  180. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_smoke_001_resume_real_orchestration.py +0 -0
  181. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E009_unit_001_missing_transition_action_fails_loudly.py +0 -0
  182. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E025_integration_001_consumer_sweep_excludes_red_phase.py +0 -0
  183. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_E025_unit_consumer_validator_scope_gate.py +0 -0
  184. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_J3_integration_001_decision_per_transition.py +0 -0
  185. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_J3_integration_002_write_before_side_effect.py +0 -0
  186. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_J3_integration_003_resume_replays_correctly.py +0 -0
  187. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_K1_integration_001_spawn_at_each_transition.py +0 -0
  188. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_K1_integration_002_persona_prompts_loaded.py +0 -0
  189. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_K1_integration_003_persona_llm_honored.py +0 -0
  190. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_K1_integration_004_multiplexer_mode_honored.py +0 -0
  191. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_K1_integration_005_spawn_failure_retries_then_escalates.py +0 -0
  192. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L002_integration_001_observer_cospawns_with_planner.py +0 -0
  193. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L002_integration_002_observer_failure_does_not_block_persona.py +0 -0
  194. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L002_unit_001_fake_multiplexer_records_both_spawns.py +0 -0
  195. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L004_integration_001_observer_is_tab_not_pane.py +0 -0
  196. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L004_integration_002_pane_count_unchanged.py +0 -0
  197. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L004_integration_003_workspace_mode_unaffected.py +0 -0
  198. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_L004_unit_001_multiplexer_abc_supports_new_surface_in_pane.py +0 -0
  199. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_M3_integration_001_validators_fire_at_phase_exit.py +0 -0
  200. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_M3_integration_002_strict_violation_blocks.py +0 -0
  201. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_M3_integration_003_risk_threshold_block.py +0 -0
  202. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_R001_integration_001_resume_mid_run.py +0 -0
  203. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_R001_integration_002_no_duplicate_transitions.py +0 -0
  204. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_R001_integration_003_watcher_reconstruct.py +0 -0
  205. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_R001_smoke_001_resume_real_runtime.py +0 -0
  206. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_auto_phase.py +0 -0
  207. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_branch_empty_pr_defer.py +0 -0
  208. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_branch_is_registered.py +0 -0
  209. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_branch_protection.py +0 -0
  210. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_checkpoint.py +0 -0
  211. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_cli_readers_store_first.py +0 -0
  212. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_agent_done_advance.py +0 -0
  213. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_atomization_smoke.py +0 -0
  214. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_cold_start_creates_worktree.py +0 -0
  215. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_review_in_process.py +0 -0
  216. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_stale_done_json_baseline.py +0 -0
  217. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_sync_labels_extraction.py +0 -0
  218. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_coach_watcher_runtime_dir.py +0 -0
  219. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_integration_001_no_scope_leak.py +0 -0
  220. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_integration_001_one_pane_across_lifecycle_blocked_intact.py +0 -0
  221. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_integration_001_worker_added_as_right_pane_surface.py +0 -0
  222. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_smoke_001_judge_real_infrastructure.py +0 -0
  223. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_smoke_001_real_layout_holds_as_workers_added.py +0 -0
  224. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_issue_surface_named_by_issue_identity.py +0 -0
  225. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_judge_cli_returns_structured_or_fails_loud.py +0 -0
  226. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_reviewer_cannot_write_worktree.py +0 -0
  227. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_split_ratio_is_fixed_fifty_fifty.py +0 -0
  228. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_state_machine_skeleton.py +0 -0
  229. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_001_worked_example_doc_committed.py +0 -0
  230. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_002_fail_open_matches_config.py +0 -0
  231. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_002_flag_parsing.py +0 -0
  232. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_002_integration_bugs_section_present.py +0 -0
  233. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_002_issue_surface_resolved_or_created_once.py +0 -0
  234. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_002_reviewer_output_channel_bounded.py +0 -0
  235. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_003_compute_waves_reuse.py +0 -0
  236. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_003_every_call_writes_judgments_jsonl.py +0 -0
  237. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_003_persona_respawned_in_place_not_cleared.py +0 -0
  238. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d001_unit_003_production_readiness_disclaimer_noted.py +0 -0
  239. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_judge_integration_001_coach_routes.py +0 -0
  240. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_judge_unit_001_call_site_trigger_conditions.py +0 -0
  241. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_judge_unit_002_response_schemas.py +0 -0
  242. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_smoke_001_agent_cli_e2e.py +0 -0
  243. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_smoke_001_session_convention_committed_and_loadable.py +0 -0
  244. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_unit_001_session_convention_spawn_time_section.py +0 -0
  245. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_unit_001_subcommands_resolve.py +0 -0
  246. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_unit_002_commit_trailers.py +0 -0
  247. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d002_unit_003_ask_answer_roundtrip.py +0 -0
  248. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d003_integration_001_coach_routes_aggregate_decision.py +0 -0
  249. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d003_unit_001_mixed_verdict_fires_call_site_once.py +0 -0
  250. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d003_unit_002_aggregate_response_schema.py +0 -0
  251. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d004_integration_001_feeds_spawn_feedback.py +0 -0
  252. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d004_unit_001_legacy_alias_triggers_call_site.py +0 -0
  253. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d004_unit_002_consolidation_response_schema.py +0 -0
  254. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d005_integration_001_aggregate_feeds_pre_coach.py +0 -0
  255. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d005_smoke_001_issue_review_real_infrastructure.py +0 -0
  256. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d005_unit_001_multi_pass_cross_llm_discipline.py +0 -0
  257. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d005_unit_002_five_dimensions_per_pass.py +0 -0
  258. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_smoke_001_review_returns_parseable_verdict.py +0 -0
  259. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_001_default_clients_registered.py +0 -0
  260. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_001_issue_body_injected_inline.py +0 -0
  261. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_002_missing_clients_degrade_gracefully.py +0 -0
  262. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_002_rule_binding_survives_malformed_payload.py +0 -0
  263. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_003_judge_works_with_registered_llm.py +0 -0
  264. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_d006_unit_003_repo_graph_summary_in_prompt.py +0 -0
  265. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_coach_transition_extraction.py +0 -0
  266. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_contract_001_agent_spawned_event_conforms.py +0 -0
  267. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_integration_001_between_wave_dependency_order_preserved.py +0 -0
  268. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_integration_001_coach_cli_uses_resolve_multiplexer_mode.py +0 -0
  269. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_integration_001_view_renders_into_canonical_tab.py +0 -0
  270. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_smoke_001_coach_transition_real.py +0 -0
  271. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_smoke_001_cycle_reaches_complete.py +0 -0
  272. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_smoke_001_pane_mode_in_real_cmux_session.py +0 -0
  273. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_smoke_001_real_coach_tab_shows_every_issue.py +0 -0
  274. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_smoke_002_artifacts_readable.py +0 -0
  275. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_concurrent_spawn_before_terminal.py +0 -0
  276. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_conforming_report_persists_and_emits_event.py +0 -0
  277. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_observer_aggregate_approve.py +0 -0
  278. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_one_status_row_per_managed_issue.py +0 -0
  279. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_pane_mode_default_when_cmux_workspace_id_set.py +0 -0
  280. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_001_spawn_cli_launches_session.py +0 -0
  281. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_002_claude_code_adapter_invoked.py +0 -0
  282. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_002_malformed_report_rejected_with_rule_id_error.py +0 -0
  283. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_002_pane_mode_default_respects_tmux_env.py +0 -0
  284. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_002_wave_joins_before_next_wave.py +0 -0
  285. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e001_unit_003_blocked_member_not_aborting_siblings.py +0 -0
  286. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_coach_reconcile_extraction.py +0 -0
  287. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_integration_001_cli_dispatch_routes_review.py +0 -0
  288. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_integration_001_coach_cli_no_prompt_when_not_tty.py +0 -0
  289. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_integration_001_headless_observer_uniform_across_backends.py +0 -0
  290. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_smoke_001_multiagent_observer_live.py +0 -0
  291. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_smoke_001_no_prompt_auto_in_piped_invocation.py +0 -0
  292. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_smoke_001_real_spawn_yields_one_tab_no_obs.py +0 -0
  293. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_smoke_001_rerun_after_no_marker_spawn_reattempts_current.py +0 -0
  294. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_canonical_naming_and_layout_at_spawn.py +0 -0
  295. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_cmd_spawn_runs_observer_headless.py +0 -0
  296. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_coach_review_pr_spawns_reviewer_and_exits_on_verdict.py +0 -0
  297. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_coach_starts_one_observer.py +0 -0
  298. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_no_prompt_auto_enabled_when_not_tty.py +0 -0
  299. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_001_warm_resume_respawns_current_without_marker.py +0 -0
  300. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_002_commit_variant_skips_gh_resolution.py +0 -0
  301. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_002_multiagent_observer_watches_all_dirs.py +0 -0
  302. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_002_warm_resume_advances_when_current_completed.py +0 -0
  303. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_003_agent_done_advances_only_on_persona_phase_match.py +0 -0
  304. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_003_observer_debounced_no_subsecond_poll.py +0 -0
  305. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_003_output_json_flag_returns_report_payload.py +0 -0
  306. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_004_no_llm_registry_exits_nonzero_with_clear_error.py +0 -0
  307. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_004_no_per_worker_obs_surface.py +0 -0
  308. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e002_unit_005_observer_terminates_on_coach_exit.py +0 -0
  309. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_coach_issues_read_extraction.py +0 -0
  310. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_integration_001_graph_helper_matches_spliced_content.py +0 -0
  311. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_integration_002_gc_detects_orphans.py +0 -0
  312. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_integration_003_gc_apply_closes.py +0 -0
  313. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_smoke_001_coach_issues_read_parity.py +0 -0
  314. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_smoke_002_gc_detects_orphans_real_cmux.py +0 -0
  315. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_smoke_003_gc_apply_closes_real_cmux.py +0 -0
  316. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_001_close_on_rename_failure.py +0 -0
  317. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_001_prompt_contains_architecture_section.py +0 -0
  318. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_002_no_wagon_graceful_degrade.py +0 -0
  319. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_004_inbox_drain_subcommand.py +0 -0
  320. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_005_inbox_peek_subcommand.py +0 -0
  321. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_006_dispatch_multiplexer_removed.py +0 -0
  322. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e003_unit_008_schema_deprecation.py +0 -0
  323. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_integration_001_claude_header_actually_renames.py +0 -0
  324. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_integration_001_coach_suite_creates_zero_cmux_workspaces.py +0 -0
  325. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_integration_002_uuid_captured.py +0 -0
  326. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_integration_003_status_surfaces_resume_hint.py +0 -0
  327. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_smoke_001_coach_suite_no_real_cmux_leak.py +0 -0
  328. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_smoke_001_coach_sync_labels_real_subprocess.py +0 -0
  329. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_unit_001_routing_test_is_hermetic.py +0 -0
  330. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_unit_002_suite_audit_no_live_multiplexer_callers.py +0 -0
  331. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_unit_003_fallback_to_direct_dispatch.py +0 -0
  332. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e004_unit_004_from_prompt_file_derives_defaults.py +0 -0
  333. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_integration_001_atdd_agent_done_resolves_from_injected_env.py +0 -0
  334. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_remaining_verbs_extraction.py +0 -0
  335. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_smoke_001_real_spawn_persona_completes_phase_transition.py +0 -0
  336. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_001_parse_cli_defaults_review_phases_to_refactor.py +0 -0
  337. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_001_persona_launch_env_carries_agent_id.py +0 -0
  338. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_002_launch_prompt_states_agent_id_fallback.py +0 -0
  339. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_002_skip_review_bypasses_default.py +0 -0
  340. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_003_explicit_review_phases_override.py +0 -0
  341. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e005_unit_003_multiplexer_help_flag_exits_zero.py +0 -0
  342. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_issue_surface_removal.py +0 -0
  343. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_smoke_001_no_orphan_pane_after_spawn_failure.py +0 -0
  344. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_smoke_001_real_removal_and_repointed_blockers.py +0 -0
  345. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_unit_001_close_called_on_exception_after_surface_create.py +0 -0
  346. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_unit_001_persona_dir_co_created_with_observer.py +0 -0
  347. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_unit_002_close_not_called_on_success.py +0 -0
  348. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_unit_002_observer_cospawn_gated_on_persona.py +0 -0
  349. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e006_unit_003_close_tolerates_close_failure.py +0 -0
  350. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_integration_001_cmd_spawn_uses_surface_rpc.py +0 -0
  351. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_integration_001_multi_phase_fresh_process.py +0 -0
  352. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_integration_001_wave_planning_uses_graph.py +0 -0
  353. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_integration_002_merge_cascade_topological.py +0 -0
  354. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_integration_003_merge_cascade_blocks_orphan_creating_pr.py +0 -0
  355. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_smoke_001_is_registered_resolves_from_store_after_create.py +0 -0
  356. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_smoke_001_new_surface_in_pane_no_broken_pipe.py +0 -0
  357. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_smoke_001_real_respawn.py +0 -0
  358. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_smoke_001_wave_plan_against_real_repo_graph.py +0 -0
  359. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_001_create_writes_branch_and_worktree_path_to_store.py +0 -0
  360. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_001_respawn_primitive_backend_neutral.py +0 -0
  361. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_001_surface_mode_calls_new_surface_in_pane.py +0 -0
  362. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_002_not_in_store_returns_false_without_raising.py +0 -0
  363. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_002_resolve_multiplexer_mode_defaults_surface.py +0 -0
  364. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_002_transition_respawns_no_cli_quit.py +0 -0
  365. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_003_deprecated_modes_raise_error.py +0 -0
  366. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_003_existing_data_keys_preserved.py +0 -0
  367. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_003_per_phase_adapter_selection.py +0 -0
  368. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e007_unit_004_phase_qualified_surface_name.py +0 -0
  369. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_integration_001_chosen_model_flows_to_spawn.py +0 -0
  370. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_integration_001_issue_creation_commits_manifest_with_dirty_index.py +0 -0
  371. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_integration_002_registration_failure_exits_non_zero.py +0 -0
  372. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_smoke_001_create_makes_zero_commits_on_main.py +0 -0
  373. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_smoke_001_interactive_tty_prompt.py +0 -0
  374. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_smoke_001_nonexistent_pr_exits_0_with_broken_verdict.py +0 -0
  375. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_smoke_001_registration_visible_cross_worktree.py +0 -0
  376. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_001_behind_only_clean_fast_forwards_main.py +0 -0
  377. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_001_path_scoped_commit_isolates_index.py +0 -0
  378. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_001_pr_resolution_failure_in_process_writes_sentinel.py +0 -0
  379. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_001_tty_prompt_shown_per_persona.py +0 -0
  380. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_002_diverged_main_is_not_rewritten.py +0 -0
  381. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_002_non_tty_no_prompt.py +0 -0
  382. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_002_pr_resolution_failure_spawn_path_still_returns_2.py +0 -0
  383. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_002_registration_failure_is_not_swallowed.py +0 -0
  384. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_003_dirty_tree_skips_fast_forward.py +0 -0
  385. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_003_persona_llm_flag_skips_prompt.py +0 -0
  386. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_003_sentinel_summary_names_pr_resolution.py +0 -0
  387. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_004_no_prompt_flag_skips_prompt.py +0 -0
  388. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e008_unit_005_invalid_model_rejected.py +0 -0
  389. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_integration_001_spawn_cli_resolves_new_adapter_ids.py +0 -0
  390. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_smoke_001_missing_env_var_produces_clear_adapter_error.py +0 -0
  391. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_unit_001_require_env_raises_adapter_error.py +0 -0
  392. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_unit_002_all_adapters_raise_on_missing_credentials.py +0 -0
  393. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_unit_003_adapter_returns_non_empty_command.py +0 -0
  394. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e009_unit_004_adapter_registry_has_five_entries.py +0 -0
  395. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_integration_001_full_spawn_path_with_readiness_gate.py +0 -0
  396. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_smoke_001_readiness_gate_with_real_multiplexer.py +0 -0
  397. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_smoke_001_real_branch_creation_starts_at_origin.py +0 -0
  398. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_001_branch_manager_cuts_from_origin_default.py +0 -0
  399. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_001_pre_trust_writes_worktree_entry.py +0 -0
  400. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_002_ff_default_branch_clean_tree.py +0 -0
  401. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_002_wait_for_claude_ready_polls_session_file.py +0 -0
  402. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_003_ff_default_branch_dirty_tree_skipped.py +0 -0
  403. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_003_wait_for_claude_ready_raises_timeout.py +0 -0
  404. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_004_assert_worker_processing_passes_on_thinking_marker.py +0 -0
  405. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e010_unit_005_decision_log_gated_on_assertion.py +0 -0
  406. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_integration_001_full_spawn_path_verify_each_stage.py +0 -0
  407. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_smoke_001_real_fs_lock_prevents_concurrent_coaches.py +0 -0
  408. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_smoke_001_verify_stage_with_real_multiplexer.py +0 -0
  409. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_001_lock_created_on_acquire.py +0 -0
  410. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_001_verify_stage_raises_rename_not_accepted.py +0 -0
  411. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_002_live_pid_raises_already_running.py +0 -0
  412. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_002_verify_stage_raises_paste_did_not_land.py +0 -0
  413. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_003_dead_pid_cleans_stale_lock.py +0 -0
  414. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_003_verify_stage_raises_prompt_not_submitted.py +0 -0
  415. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_004_capture_pane_text_on_multiplexer_backend.py +0 -0
  416. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_004_context_manager_releases_on_exit.py +0 -0
  417. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_005_apply_canonical_name_verify_after_send.py +0 -0
  418. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_005_run_refuses_second_coach_with_clear_message.py +0 -0
  419. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_006_assert_worker_processing_hard_raises.py +0 -0
  420. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_006_no_progress_ttl_escalates_and_exits.py +0 -0
  421. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e011_unit_007_verify_stage_retries_once_before_raise.py +0 -0
  422. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_integration_001_full_spawn_atomic_rename_and_orphan_cleanup.py +0 -0
  423. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_smoke_001_atomic_rename_on_real_cmux.py +0 -0
  424. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_smoke_pre_commit_manifest_exception.py +0 -0
  425. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_unit_001_atomic_rename_send_no_separate_enter.py +0 -0
  426. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_unit_002_rename_accepted_requires_post_submit_signal.py +0 -0
  427. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_unit_003_fake_mux_models_enter_races_text.py +0 -0
  428. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_unit_004_orphan_pane_closed_on_readiness_timeout.py +0 -0
  429. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e012_unit_branch_self_heal.py +0 -0
  430. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_smoke_001_live_adapter_registry_passes_layer_b_validator.py +0 -0
  431. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_smoke_001_live_gh_search_runs_without_error.py +0 -0
  432. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_smoke_docs_models_and_manifest_backfill.py +0 -0
  433. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_001_adapter_registry_has_permission_fields.py +0 -0
  434. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_001_dup_check_warns_on_match.py +0 -0
  435. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_002_claude_adapters_declare_accept_edits_flag.py +0 -0
  436. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_002_dup_check_returns_empty_on_no_match.py +0 -0
  437. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_003_new_aborts_on_match_without_no_dup_check.py +0 -0
  438. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_003_validator_fails_on_missing_permission_fields.py +0 -0
  439. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_004_new_proceeds_with_no_dup_check_flag.py +0 -0
  440. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e013_unit_docs_models_and_manifest_backfill.py +0 -0
  441. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_smoke_001_live_bash_auto_approve_no_stale_reference.py +0 -0
  442. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_smoke_001_spawn_guard_reachable_from_cli.py +0 -0
  443. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_unit_001_adapter_command_rejected.py +0 -0
  444. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_unit_001_bash_auto_approve_no_modal_typing_reference.py +0 -0
  445. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_unit_002_bash_auto_approve_fix_hint_references_allowlist.py +0 -0
  446. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_unit_002_clean_command_passes_guard.py +0 -0
  447. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e014_unit_003_claude_code_adapter_never_emits_forbidden_flag.py +0 -0
  448. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_smoke_001_deployed_templates_contain_smoke_acceptance_checklist.py +0 -0
  449. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_smoke_001_gate_output_contains_rules_in_live_repo.py +0 -0
  450. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_unit_001_gate_includes_portable_rules_when_yaml_exists.py +0 -0
  451. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_unit_001_session_launch_template_names_must_have_smoke_acceptance_rule.py +0 -0
  452. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_unit_002_gate_silent_when_no_yaml.py +0 -0
  453. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e015_unit_003_agent_rules_yaml_is_valid_yaml.py +0 -0
  454. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e016_unit_001_inject_agent_env_returns_tuple.py +0 -0
  455. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e016_unit_003_non_cli_return_shell_prefix_reconstructed.py +0 -0
  456. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_integration_001_scope_flag_in_cli_help.py +0 -0
  457. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_integration_002_scope_changed_files_exits_zero_on_clean_branch.py +0 -0
  458. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_smoke_001_scoped_check_exits_zero_on_this_branch.py +0 -0
  459. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_unit_001_scoped_check_exits_zero_no_wagon_sources.py +0 -0
  460. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_unit_002_scoped_check_exits_one_names_drifted_wagon.py +0 -0
  461. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e018_unit_003_pr578_replay_16_drifted_wagons_no_touch.py +0 -0
  462. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e019_integration_001_published_issue_passes_body_validators.py +0 -0
  463. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e019_smoke_001_live_create_zero_edit_calls.py +0 -0
  464. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e019_unit_001_single_graphql_call_on_create.py +0 -0
  465. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e019_unit_002_non_compliant_body_refused_before_publish.py +0 -0
  466. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e019_unit_003_edit_reruns_check_gate.py +0 -0
  467. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_smoke_001_live_sync_codex_produces_conductor_md.py +0 -0
  468. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_unit_001_agent_files_maps_codex_to_conductor_md.py +0 -0
  469. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_unit_002_persona_template_maps_codex_to_conductor_md_tmpl.py +0 -0
  470. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_unit_003_sync_codex_agent_writes_conductor_md.py +0 -0
  471. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_unit_004_conductor_md_tmpl_template_file_exists.py +0 -0
  472. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e020_unit_005_stale_agents_md_triggers_migration_notice.py +0 -0
  473. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_integration_001_ci_check_fails_on_drifted_pr.py +0 -0
  474. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_smoke_001_registry_check_passes_on_main_after_chore_pr.py +0 -0
  475. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_unit_001_registry_check_exits_zero_after_resync.py +0 -0
  476. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_unit_002_pre_push_hook_rejects_drift.py +0 -0
  477. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_unit_003_pre_push_hook_passes_after_resync.py +0 -0
  478. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e021_unit_004_fix_hint_names_exact_command.py +0 -0
  479. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e025_smoke_001_consumer_sweep_excludes_toolkit_only_tests.py +0 -0
  480. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e025_smoke_001_real_wagon_graph_output_present_and_well_formed.py +0 -0
  481. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e025_unit_001_graph_launch_prompt_emits_required_sections.py +0 -0
  482. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e025_unit_002_graph_launch_prompt_output_under_2kb.py +0 -0
  483. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e026_smoke_001_real_rendered_prompt_contains_graph_section.py +0 -0
  484. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e026_unit_001_session_launch_template_contains_wagon_graph_slot.py +0 -0
  485. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e026_unit_002_render_launch_prompt_injects_graph_section.py +0 -0
  486. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e026_unit_003_render_launch_prompt_omits_graph_on_command_failure.py +0 -0
  487. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e027_smoke_001_atdd_validate_coach_passes_with_graph_section_present.py +0 -0
  488. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e027_unit_001_session_convention_declares_wagon_graph_rule.py +0 -0
  489. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e027_unit_002_wagon_graph_rule_fires_on_template_missing_section.py +0 -0
  490. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e027_unit_003_wagon_graph_rule_passes_on_compliant_template.py +0 -0
  491. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_integration_001_cmd_spawn_with_surface_marker_probe_no_jsonl_needed.py +0 -0
  492. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_smoke_001_live_adapter_registry_claude_code_has_surface_marker_probe.py +0 -0
  493. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_001_surface_marker_probe_returns_on_marker_match.py +0 -0
  494. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_002_surface_marker_probe_raises_timeout_on_no_match.py +0 -0
  495. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_003_process_alive_delay_probe_returns_after_min_delay.py +0 -0
  496. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_004_process_alive_delay_probe_raises_if_proc_dies.py +0 -0
  497. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_005_adapter_spec_readiness_probe_populated.py +0 -0
  498. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e028_unit_006_cmd_spawn_calls_readiness_probe_not_poll_jsonl.py +0 -0
  499. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e029_smoke_001_deployed_cmd_spawn_order_is_probe_then_paste_then_jsonl.py +0 -0
  500. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e029_unit_001_paste_precedes_jsonl_based_wait.py +0 -0
  501. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e029_unit_002_assert_worker_processing_called_after_paste.py +0 -0
  502. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e029_unit_003_worker_readiness_timeout_named_post_paste_on_no_processing.py +0 -0
  503. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e031_smoke_001_live_spawn_argv_config_driven_scoped_bash.py +0 -0
  504. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e031_unit_001_convention_declares_freedom_layer_data.py +0 -0
  505. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e031_unit_002_spawn_emits_convention_sourced_scoped_allowlist.py +0 -0
  506. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e034_integration_001_init_installs_three.py +0 -0
  507. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e034_smoke_001_real_init_installs_and_warns.py +0 -0
  508. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e036_unit_002_init_installs_git_shim.py +0 -0
  509. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e036_unit_004_gate_self_heals.py +0 -0
  510. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e043_smoke_001_live_cmux_native_launch.py +0 -0
  511. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e043_unit_002_spawn_default_routes_cmux_native.py +0 -0
  512. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e043_unit_003_cmux_native_liveness.py +0 -0
  513. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e044_smoke_001_toolkit_registry_build_leaves_no_stray_stub_dirs.py +0 -0
  514. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e044_unit_001_toolkit_only_config_creates_no_game_template_stub_dirs.py +0 -0
  515. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e044_unit_002_declared_default_roots_still_materialize.py +0 -0
  516. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e044_unit_003_declared_code_roots_excludes_merged_defaults.py +0 -0
  517. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e051_smoke_001_full_cycle_zero_projects_v2_graphql.py +0 -0
  518. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e051_unit_001_transition_label_rest_only_no_board_graphql.py +0 -0
  519. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e051_unit_002_issue_creation_zero_board_writes.py +0 -0
  520. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e051_unit_003_skip_board_sync_gate_retired.py +0 -0
  521. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e052_smoke_001_train_gate_enforces_offline_zero_board_graphql.py +0 -0
  522. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e052_unit_001_train_gate_reads_manifest_not_board.py +0 -0
  523. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e052_unit_002_train_gate_rejects_unknown_train_no_board_fallback.py +0 -0
  524. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e053_smoke_001_config_loads_and_github_imports_without_projects_v2.py +0 -0
  525. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e053_unit_001_no_projects_v2_module_or_token_in_shipped_code.py +0 -0
  526. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e053_unit_002_claude_md_source_of_truth_debanners_projects_v2.py +0 -0
  527. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e053_unit_003_board_contract_regression_tests_retired.py +0 -0
  528. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e054_smoke_001_reconcile_no_unboundlocalerror.py +0 -0
  529. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e054_unit_001_reconcile_resolves_module_issuemanager.py +0 -0
  530. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_e054_unit_002_no_local_issuemanager_shadow.py +0 -0
  531. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_git_hook_env_scrub.py +0 -0
  532. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_initializer_workflow_emission.py +0 -0
  533. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_is_atdd_source_repo.py +0 -0
  534. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_branch_check.py +0 -0
  535. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_chain_to_branch.py +0 -0
  536. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_creation_injects_graph_context.py +0 -0
  537. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_graph_store_first.py +0 -0
  538. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_lifecycle.py +0 -0
  539. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_planned_pr_gate.py +0 -0
  540. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_template.py +0 -0
  541. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_template_new_sections.py +0 -0
  542. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_issue_train_required_hint.py +0 -0
  543. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_k4_per_llm_convention_sync.py +0 -0
  544. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_integration_001_cli_dispatch_wires_status.py +0 -0
  545. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_smoke_001_claude_code_no_modal_on_bash_read.py +0 -0
  546. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_smoke_001_status_cli_e2e.py +0 -0
  547. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_001_adapter_registry_has_non_interactive_smoke.py +0 -0
  548. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_001_no_runs_exits_zero.py +0 -0
  549. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_001_status_prints_per_surface_table.py +0 -0
  550. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_002_fixture_run_renders_table.py +0 -0
  551. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_003_json_flag_parseable.py +0 -0
  552. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l001_unit_004_nonexistent_run_id_exits_nonzero.py +0 -0
  553. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l002_unit_001_worktree_create_dispatches_to_creation.py +0 -0
  554. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l002_unit_002_branch_alias_warns_and_delegates.py +0 -0
  555. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l002_unit_003_worktree_list_shows_registered_worktrees.py +0 -0
  556. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l002_unit_004_worktree_remove_refuses_main_checkout.py +0 -0
  557. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l004_smoke_001_session_jsonl_appears_after_launch_prompt_paste.py +0 -0
  558. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l004_unit_001_regression_lazy_jsonl_creation_pipeline_completes.py +0 -0
  559. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_l004_unit_002_regression_old_jsonl_boot_wait_would_have_deadlocked.py +0 -0
  560. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_integration_001_runtime_event_latency.py +0 -0
  561. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_integration_002_git_watcher_commit_observed.py +0 -0
  562. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_integration_003_liveness_stuck_detection.py +0 -0
  563. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_integration_004_watcher_reattachment.py +0 -0
  564. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_integration_005_append_only_no_interleave.py +0 -0
  565. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_smoke_001_basic_observer_rules_load_end_to_end.py +0 -0
  566. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_smoke_001_integration_log_covers_every_handoff.py +0 -0
  567. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_smoke_001_runtime_watcher_real_infrastructure.py +0 -0
  568. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_001_rule_01_unstructured_question.py +0 -0
  569. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_002_rule_02_token_silence.py +0 -0
  570. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_003_rule_03_completion_without_commit.py +0 -0
  571. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_004_rule_04_out_of_scope_edit.py +0 -0
  572. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_005_rule_05_missed_heartbeat.py +0 -0
  573. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_006_rule_08_reviewer_edit_attempt.py +0 -0
  574. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_007_rule_09_validator_failure_ignored.py +0 -0
  575. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m001_unit_008_rules_co_located_as_yaml.py +0 -0
  576. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m002_unit_001_rule_06_fires_above_threshold.py +0 -0
  577. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m002_unit_002_config_override_lowers_threshold.py +0 -0
  578. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m003_unit_005_yaml_loader_python_trigger.py +0 -0
  579. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m004_smoke_001_substrate_rules_e2e.py +0 -0
  580. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m004_unit_001_rule_10_stale_suppression.py +0 -0
  581. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m004_unit_002_rule_11_unbound_rule_id.py +0 -0
  582. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m004_unit_003_rule_12_grammar_violation.py +0 -0
  583. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m004_unit_004_rule_17_disposition_declared.py +0 -0
  584. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m005_smoke_001_real_observer_heartbeats_reach_coach.py +0 -0
  585. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m005_unit_001_observer_emits_heartbeat_on_cadence.py +0 -0
  586. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m005_unit_002_heartbeat_emission_is_adapter_agnostic.py +0 -0
  587. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m006_smoke_001_real_blocked_worker_reaches_coach.py +0 -0
  588. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m006_unit_001_blocked_worker_emits_ask.py +0 -0
  589. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m006_unit_002_hard_blocked_worker_emits_escalate.py +0 -0
  590. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_m006_unit_003_healthy_worker_emits_no_ask_or_escalate.py +0 -0
  591. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_main_dispatcher.py +0 -0
  592. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_merge_cascade.py +0 -0
  593. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_merge_cascade_pyproject_resolve.py +0 -0
  594. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_merge_cascade_topology.py +0 -0
  595. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_multiplexer.py +0 -0
  596. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_observer_detectors.py +0 -0
  597. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_observer_scan_worktree_excludes_runtime.py +0 -0
  598. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_smoke_001_observer_cli_e2e.py +0 -0
  599. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_smoke_002_observer_loop_closes.py +0 -0
  600. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_001_decisions_append_only.py +0 -0
  601. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_001_observer_run_tails_log.py +0 -0
  602. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_002_correction_fires_and_writes.py +0 -0
  603. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_002_judgments_append_only.py +0 -0
  604. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_003_attach_prints_recent_observations.py +0 -0
  605. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_003_schema_validation_at_write.py +0 -0
  606. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_004_actions_idempotent.py +0 -0
  607. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_004_rule_failure_isolation.py +0 -0
  608. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_005_durability_smoke.py +0 -0
  609. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_005_rule_loading_order_independent.py +0 -0
  610. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_006_rule_load_error_surfaced.py +0 -0
  611. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_007_three_injection_paths_available.py +0 -0
  612. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_008_cmd_run_exits_when_persona_dir_removed.py +0 -0
  613. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_009_cmd_run_exits_after_idle_timeout.py +0 -0
  614. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p001_unit_010_teardown_fixture_reaps_observer_procs.py +0 -0
  615. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_integration_001_persona_heartbeat_produced.py +0 -0
  616. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_smoke_001_blocked_persona_triggers_correction.py +0 -0
  617. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_smoke_002_acquisition_and_observability.py +0 -0
  618. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_unit_001_collect_input_reads_persona_dir.py +0 -0
  619. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_unit_002_time_token_fields_populated.py +0 -0
  620. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_unit_003_persona_output_stream_acquired.py +0 -0
  621. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_unit_004_observer_status_line_and_trace.py +0 -0
  622. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p002_unit_005_universal_operator_visibility.py +0 -0
  623. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p2_integration_001_complete_triggers_merge.py +0 -0
  624. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p2_integration_002_cleanup.py +0 -0
  625. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_p2_integration_003_no_auto_merge_without_flag.py +0 -0
  626. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_parent_body_template_seed.py +0 -0
  627. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_pr_base_validation.py +0 -0
  628. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_pr_risk_breakdown.py +0 -0
  629. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_integration_001_answered_worker_unblocks.py +0 -0
  630. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_smoke_001_live_bash_auto_approve_escalation_path.py +0 -0
  631. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_smoke_001_real_ask_answer_roundtrip.py +0 -0
  632. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_unit_001_answer_delivered_back_to_worker.py +0 -0
  633. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_unit_001_deny_pattern_routes_to_escalate.py +0 -0
  634. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r001_unit_002_roundtrip_delivery_is_adapter_agnostic.py +0 -0
  635. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r002_integration_001_full_lifecycle_no_abort.py +0 -0
  636. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r002_unit_001_green_is_not_terminal.py +0 -0
  637. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r002_unit_002_loop_continues_through_green.py +0 -0
  638. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r004_integration_001_branch_gate_passes_from_flat_sibling_worktree.py +0 -0
  639. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r004_integration_002_init_worktree_layout_noop_on_already_flat.py +0 -0
  640. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_r004_integration_003_issue_reenter_create_branch_passes.py +0 -0
  641. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_registry_no_empty_code_root_stubs.py +0 -0
  642. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_rules_cli.py +0 -0
  643. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_security_rules_cli.py +0 -0
  644. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_session_template.py +0 -0
  645. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_session_template_checkpoint.py +0 -0
  646. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_spawn_harness_rules_blocks.py +0 -0
  647. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_spawn_harness_security_block.py +0 -0
  648. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_store_authoritative_writes.py +0 -0
  649. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_suppress_backfill.py +0 -0
  650. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_sync.py +0 -0
  651. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_sync_labels.py +0 -0
  652. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_sync_wmbts.py +0 -0
  653. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_sync_wmbts_autospec.py +0 -0
  654. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_telemetry_array_validation.py +0 -0
  655. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_test_runner.py +0 -0
  656. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_transition_side_effects.py +0 -0
  657. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_upgrader.py +0 -0
  658. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_urn_graph_edge_type_exclude_default.py +0 -0
  659. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_viz_app_journey_mode.py +0 -0
  660. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_wave_planning.py +0 -0
  661. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_worktree_gc.py +0 -0
  662. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_integration_001_two_issues_resolve_to_one_tab.py +0 -0
  663. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_integration_001_warm_resume_skips_planner.py +0 -0
  664. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_smoke_001_help_text_shows_timeout_in_real_shell.py +0 -0
  665. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_smoke_001_real_multiplexer_shows_one_coach_tab.py +0 -0
  666. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_001_canonical_coach_tab_name_is_invariant.py +0 -0
  667. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_001_default_timeout_is_30s.py +0 -0
  668. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_001_read_current_phase_at_startup.py +0 -0
  669. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_001_user_content_before_block_preserved.py +0 -0
  670. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_002_help_text_advertises_env_var.py +0 -0
  671. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_002_spawn_correct_persona_for_phase.py +0 -0
  672. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_002_user_content_after_block_preserved.py +0 -0
  673. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y001_unit_003_within_block_deletion_warns.py +0 -0
  674. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_integration_001_github_label_reflects_sm_phase.py +0 -0
  675. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_integration_001_headless_observer_still_writes_corrections.py +0 -0
  676. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_smoke_001_banner_absent_after_sync_in_real_env.py +0 -0
  677. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_smoke_001_real_spawn_yields_one_tab.py +0 -0
  678. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_unit_001_banner_muted_when_marker_exists.py +0 -0
  679. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_unit_001_persona_spawn_creates_no_obs_surface.py +0 -0
  680. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_unit_001_swap_phase_label_helper_exists.py +0 -0
  681. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_unit_002_atdd_sync_writes_marker.py +0 -0
  682. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y002_unit_002_label_swapped_on_each_watcher_advance.py +0 -0
  683. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y003_smoke_001_resume_absent_from_real_help_output.py +0 -0
  684. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y003_unit_001_resume_not_in_help_text.py +0 -0
  685. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y003_unit_002_resume_flag_removed_or_hidden.py +0 -0
  686. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_smoke_001_real_template_render_excludes_sibling_deps_from_merge_wait.py +0 -0
  687. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_001_parse_typed_deps_classifies_tagged_entries.py +0 -0
  688. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_002_bare_dep_classified_as_prereq_with_warning_flag.py +0 -0
  689. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_003_merge_wait_loop_excludes_sibling_deps.py +0 -0
  690. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_004_render_includes_sibling_context_block.py +0 -0
  691. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_005_no_prereqs_skips_merge_wait_loop.py +0 -0
  692. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y004_unit_006_render_emits_bare_dep_warning.py +0 -0
  693. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y006_smoke_init_hookspath_worktree_isolation.py +0 -0
  694. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/tests/test_y006_unit_init_hookspath_worktree_isolation.py +0 -0
  695. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/token_threshold.py +0 -0
  696. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/traceability.py +0 -0
  697. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/two_phase_commit.py +0 -0
  698. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/upgrader.py +0 -0
  699. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/urn.py +0 -0
  700. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/validation_baseline.py +0 -0
  701. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/viz_app.py +0 -0
  702. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/watchers.py +0 -0
  703. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/wave_planning.py +0 -0
  704. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/commands/worktree_gc.py +0 -0
  705. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/coach.convention.yaml +0 -0
  706. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/code-roots.convention.yaml +0 -0
  707. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/commit-trailers.convention.yaml +0 -0
  708. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/forbidden_commands.convention.yaml +0 -0
  709. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/issue.convention.yaml +0 -0
  710. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/naming.convention.yaml +0 -0
  711. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.agent-liveness-and-structured-asks.convention.yaml +0 -0
  712. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.atomic-registry-write.convention.yaml +0 -0
  713. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.decisions-mediated-not-auto-executed.convention.yaml +0 -0
  714. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.dispatch-verifies-channel-live.convention.yaml +0 -0
  715. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.freedom-with-a-leash.convention.yaml +0 -0
  716. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.one-agent-per-delivery-unit.convention.yaml +0 -0
  717. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.out-of-contract-detection.convention.yaml +0 -0
  718. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.runtime-state-not-a-delivery-artifact.convention.yaml +0 -0
  719. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.execution.structured-correction-and-escalation.convention.yaml +0 -0
  720. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.extension.realization-mapping.convention.yaml +0 -0
  721. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.graph.implementation-root-resolution.convention.yaml +0 -0
  722. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.no-green-to-refactor-without-smoke.convention.yaml +0 -0
  723. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.no-terminal-before-lifecycle-satisfied.convention.yaml +0 -0
  724. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.phase-machine.convention.yaml +0 -0
  725. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.session-type-required-phases.convention.yaml +0 -0
  726. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.single-step-advance-on-delivery.convention.yaml +0 -0
  727. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.lifecycle.universal-completion-gates.convention.yaml +0 -0
  728. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.role.cross-cutting-urn-types.convention.yaml +0 -0
  729. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.role.operator-decision-authority.convention.yaml +0 -0
  730. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.role.planner-tester-coder-sequence.convention.yaml +0 -0
  731. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.role.reviewer-no-write.convention.yaml +0 -0
  732. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.disposition-required.convention.yaml +0 -0
  733. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.fix-hint-completeness.convention.yaml +0 -0
  734. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.grammar-and-schema.convention.yaml +0 -0
  735. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.migration-playbook.convention.yaml +0 -0
  736. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.no-hardcoded-rule-severity.convention.yaml +0 -0
  737. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.stale-suppression.convention.yaml +0 -0
  738. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.rule-id.validator-binding-violation.convention.yaml +0 -0
  739. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.source-layout.no-bare-version-detection.convention.yaml +0 -0
  740. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.source-layout.no-toolkit-self-layout-assumption.convention.yaml +0 -0
  741. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.substrate.transport-realizes-mediation.convention.yaml +0 -0
  742. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.template.no-duplicated-convention.convention.yaml +0 -0
  743. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.wheel-completeness.fixture-missing-from-wheel.convention.yaml +0 -0
  744. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/nodes/coach.workspace.emitted-cli-must-parse.convention.yaml +0 -0
  745. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/observer.convention.yaml +0 -0
  746. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/path_shim_gh.convention.yaml +0 -0
  747. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/path_shim_git.convention.yaml +0 -0
  748. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/phase_machine.convention.yaml +0 -0
  749. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/pr.convention.yaml +0 -0
  750. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/rule-id.convention.yaml +0 -0
  751. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/session.convention.yaml +0 -0
  752. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/source-layout.convention.yaml +0 -0
  753. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/spawn.convention.yaml +0 -0
  754. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/template.convention.yaml +0 -0
  755. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/conventions/wheel-completeness.convention.yaml +0 -0
  756. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/core/__init__.py +0 -0
  757. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/core/types.py +0 -0
  758. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/__init__.py +0 -0
  759. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/approval.py +0 -0
  760. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/approval_check.py +0 -0
  761. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/approve_command.py +0 -0
  762. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/command_check.py +0 -0
  763. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/decision.py +0 -0
  764. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/registrations.py +0 -0
  765. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/registry.py +0 -0
  766. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/__init__.py +0 -0
  767. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_c007_unit_multi_check_and_semantics.py +0 -0
  768. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_d019_unit_config_and_migration_safety.py +0 -0
  769. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e045_integration_failing_check_refuses_transition.py +0 -0
  770. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e045_smoke_real_subprocess_check.py +0 -0
  771. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e046_smoke_real_missing_tool.py +0 -0
  772. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e046_unit_fail_closed.py +0 -0
  773. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e050_integration_001_no_token_refuses_transition.py +0 -0
  774. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e050_integration_002_token_allows_transition.py +0 -0
  775. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e050_smoke_001_real_block_then_approve_proceeds.py +0 -0
  776. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/gate/tests/test_e050_unit_001_token_sign_verify_scope.py +0 -0
  777. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/github.py +0 -0
  778. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/__init__.py +0 -0
  779. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/decisions.py +0 -0
  780. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/observer.py +0 -0
  781. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/reviewer.py +0 -0
  782. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/spawn.py +0 -0
  783. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/state_machine.py +0 -0
  784. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/__init__.py +0 -0
  785. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_e006_integration_001_persona_pane_and_spawned_event.py +0 -0
  786. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_e006_integration_002_coach_blocks_loudly_on_persona_failure.py +0 -0
  787. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_e006_smoke_001_real_green_to_smoke_spawn_creates_persona.py +0 -0
  788. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_e006_unit_003_incomplete_persona_spawn_maps_to_error.py +0 -0
  789. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_j5_integration_001_watcher_drives_state.py +0 -0
  790. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_j5_integration_002_stale_warn_fires.py +0 -0
  791. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_j5_integration_003_liveness_cleanup.py +0 -0
  792. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_j5_integration_004_event_serialization.py +0 -0
  793. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_j5_smoke_001_watcher_real_infrastructure.py +0 -0
  794. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_l1_integration_001_observer_alongside_agent.py +0 -0
  795. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_n5_integration_001_reviewer_at_phase_boundary.py +0 -0
  796. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_n5_integration_002_verdict_routing.py +0 -0
  797. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_n5_integration_003_skip_review_honored.py +0 -0
  798. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_rpb_e005_integration_001_reviewer_fires_at_refactor_boundary_by_default.py +0 -0
  799. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/tests/test_spawn_transient_cmux_retry.py +0 -0
  800. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/two_phase_commit.py +0 -0
  801. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/validator_dispatch.py +0 -0
  802. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/handlers/watcher.py +0 -0
  803. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer/__init__.py +0 -0
  804. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer/predicates.py +0 -0
  805. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/__init__.py +0 -0
  806. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/bash_auto_approve.py +0 -0
  807. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/canonical_naming_drift.py +0 -0
  808. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/canonical_role_naming.py +0 -0
  809. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/detectors.py +0 -0
  810. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/layout_drift.py +0 -0
  811. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/observer_rules/smoke_skip.py +0 -0
  812. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/overlays/__init__.py +0 -0
  813. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/overlays/claude.md +0 -0
  814. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/overlays/glm.md +0 -0
  815. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/overlays/mistral.md +0 -0
  816. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/__init__.py +0 -0
  817. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/diagnostics.py +0 -0
  818. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/tests/__init__.py +0 -0
  819. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/tests/test_diagnostics.py +0 -0
  820. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/tests/test_e001_contract_001_violations_jsonl_schema_conformant.py +0 -0
  821. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/tests/test_e001_smoke_001_violation_collector_real_subprocess.py +0 -0
  822. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/tests/test_e001_unit_001_pytest_plugin_captures_all_violations.py +0 -0
  823. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/plugins/violation_collector.py +0 -0
  824. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/judge/judge-reviewer-concern.prompt.yaml +0 -0
  825. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/judge-issue-review-aggregate.prompt.yaml +0 -0
  826. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/coder/green.prompt.yaml +0 -0
  827. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/coder/refactor.prompt.yaml +0 -0
  828. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/planner/planned.prompt.yaml +0 -0
  829. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/reviewer/green.prompt.yaml +0 -0
  830. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/reviewer/planned.prompt.yaml +0 -0
  831. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/reviewer/red.prompt.yaml +0 -0
  832. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/reviewer/refactor.prompt.yaml +0 -0
  833. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/reviewer/smoke.prompt.yaml +0 -0
  834. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/tester/red.prompt.yaml +0 -0
  835. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/prompts/persona/tester/smoke.prompt.yaml +0 -0
  836. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/__init__.py +0 -0
  837. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/dashboard.py +0 -0
  838. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/dispatcher.py +0 -0
  839. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/git_watcher.py +0 -0
  840. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/graph.py +0 -0
  841. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/integration_logger.py +0 -0
  842. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/pr_watcher.py +0 -0
  843. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/reader.py +0 -0
  844. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/risk_score.py +0 -0
  845. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/status_render.py +0 -0
  846. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/suppression_filter.py +0 -0
  847. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/__init__.py +0 -0
  848. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_c001_unit_001_toolkit_suppression_marker_absorbs_violation.py +0 -0
  849. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_c001_unit_002_repo_rule_violation_never_suppressed.py +0 -0
  850. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_c001_unit_003_stale_suppressions_populated.py +0 -0
  851. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_d001_unit_001_green_phase_selects_all_green_repo_rules.py +0 -0
  852. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_d001_unit_002_planned_runs_substrate_enforcement.py +0 -0
  853. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_d001_unit_003_config_override_substitutes_selection.py +0 -0
  854. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_dashboard_integration_001_cli_dispatch.py +0 -0
  855. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_dashboard_unit_001_build_cards.py +0 -0
  856. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_dashboard_unit_002_render_grid.py +0 -0
  857. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_dashboard_unit_003_card_presentation.py +0 -0
  858. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_dashboard_unit_004_filter_menu.py +0 -0
  859. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_e002_contract_001_risk_score_schema_validated_at_write.py +0 -0
  860. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_e002_unit_001_mixed_toolkit_and_repo_breakdown.py +0 -0
  861. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_e007_unit_001_graph_resolves_wagon_deps.py +0 -0
  862. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_graph_issue_wagon_map_store_first.py +0 -0
  863. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_integration_001_backoff_on_secondary_limit.py +0 -0
  864. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_integration_002_preflight_budget_check.py +0 -0
  865. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_integration_003_coach_watch_cli_batched.py +0 -0
  866. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_integration_004_agent_wait_ci_uses_watcher.py +0 -0
  867. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_001_batched_poll_single_api_call.py +0 -0
  868. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_001_commit_observed_event_emitted.py +0 -0
  869. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_002_cheap_state_default.py +0 -0
  870. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_002_missing_trailers_violation_routed_tier_1.py +0 -0
  871. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_003_failures_on_demand.py +0 -0
  872. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/tests/test_m001_unit_003_git_watcher_smoke.py +0 -0
  873. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/runtime/validator_selection.py +0 -0
  874. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/coach-decision.schema.json +0 -0
  875. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/coach-judgment.schema.json +0 -0
  876. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/config.schema.json +0 -0
  877. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/correction.schema.json +0 -0
  878. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/issue-review-aggregate.schema.json +0 -0
  879. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/issue-review-pass.response.schema.json +0 -0
  880. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-borderline-tier1.response.schema.json +0 -0
  881. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-cross-phase-regression.response.schema.json +0 -0
  882. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-issue-review-aggregate.response.schema.json +0 -0
  883. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-retry-vs-escalate.response.schema.json +0 -0
  884. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-reviewer-concern.response.schema.json +0 -0
  885. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/judge-superseded-rule-consolidation.response.schema.json +0 -0
  886. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/label_taxonomy.schema.json +0 -0
  887. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/manifest.schema.json +0 -0
  888. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/project_fields.schema.json +0 -0
  889. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/review-report.schema.json +0 -0
  890. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/risk-score.schema.json +0 -0
  891. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/runtime-event.schema.json +0 -0
  892. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/session.schema.json +0 -0
  893. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/validator-result.schema.json +0 -0
  894. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/schemas/worker-state.schema.json +0 -0
  895. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn/__init__.py +0 -0
  896. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn/reviewer_adapter.py +0 -0
  897. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn_harness/__init__.py +0 -0
  898. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn_harness/renderer.py +0 -0
  899. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn_harness/tests/__init__.py +0 -0
  900. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn_harness/tests/test_renderer_unit.py +0 -0
  901. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/spawn_harness/tests/test_repo_blocks_snapshot.py +0 -0
  902. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/ATDD-ISSUE-TEMPLATE.md +0 -0
  903. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/CONDUCTOR.md +0 -0
  904. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/PARENT-ISSUE-TEMPLATE.md +0 -0
  905. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/SESSION-LAUNCH-TEMPLATE.md +0 -0
  906. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/WMBT-SUBISSUE-TEMPLATE.md +0 -0
  907. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/__init__.py +0 -0
  908. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/__init__.py +0 -0
  909. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/conftest.py +0 -0
  910. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e032_integration_001_shim_blocks_create.py +0 -0
  911. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e032_integration_002_shim_allows_other.py +0 -0
  912. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e032_integration_003_shim_resolves_real_gh.py +0 -0
  913. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e032_smoke_001_installed_shim_blocks_in_real_worktree.py +0 -0
  914. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e032_unit_001_shim_classifier_precise.py +0 -0
  915. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e036_integration_001_shim_blocks_unscoped_bare.py +0 -0
  916. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e036_integration_002_shim_forwards_exactly.py +0 -0
  917. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e036_integration_003_shim_resolves_real_git.py +0 -0
  918. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e036_smoke_001_installed_shim_blocks_and_forwards_in_real_worktree.py +0 -0
  919. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/bin/tests/test_e036_unit_001_shim_classifier_precise.py +0 -0
  920. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/harness/mount-train.mjs +0 -0
  921. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/harness/vitest.config.mjs +0 -0
  922. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/__init__.py +0 -0
  923. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/pre-commit +0 -0
  924. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/__init__.py +0 -0
  925. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/_gh_issue_create_precommit_harness.py +0 -0
  926. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/conftest.py +0 -0
  927. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_C002_smoke_hooks_fire_via_git.py +0 -0
  928. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_C002_unit_commit_msg_mass_delete.py +0 -0
  929. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_C002_unit_pre_push_bare_mode.py +0 -0
  930. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_C003_smoke_prepush_validator.py +0 -0
  931. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_C003_unit_prepush_validator.py +0 -0
  932. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_M002_unit_prepush_postcommit_plan_validate_planner.py +0 -0
  933. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_Y004_smoke_pre_push_version_gate_no_pip.py +0 -0
  934. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_Y004_unit_pre_push_version_gate_never_auto_upgrades.py +0 -0
  935. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e012_unit_pre_commit_manifest_exception.py +0 -0
  936. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e022_smoke_001_post_commit_core_bare_unchanged.py +0 -0
  937. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e022_unit_001_post_commit_excludes_slow_marker.py +0 -0
  938. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e022_unit_002_smoke_test_has_slow_marker.py +0 -0
  939. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e022_unit_003_post_commit_trap_restores_core_bare.py +0 -0
  940. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e023_smoke_001_routine_push_zero_bypasses.py +0 -0
  941. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e023_unit_001_skip_all_gates_bypass.py +0 -0
  942. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e023_unit_002_version_gate_uses_repo_minimum.py +0 -0
  943. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e023_unit_003_registry_auto_heal.py +0 -0
  944. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e024_smoke_001_merge_produces_one_publish_success.py +0 -0
  945. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e024_unit_001_atdd_validate_no_issues_trigger.py +0 -0
  946. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e024_unit_002_publish_condition_head_branch_main.py +0 -0
  947. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e026_smoke_001_routine_push_no_bypass.py +0 -0
  948. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e026_unit_001_bypass_audit_table_committed.py +0 -0
  949. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e026_unit_002_retired_flags_absent.py +0 -0
  950. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e026_unit_003_bypass_reason_required.py +0 -0
  951. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e026_unit_004_bypass_audit_jsonl.py +0 -0
  952. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e030_smoke_001_zero_skip_grep_matches.py +0 -0
  953. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e030_unit_001_all_skip_flags_absent.py +0 -0
  954. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e030_unit_002_bypass_reason_absent.py +0 -0
  955. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e031_smoke_001_emergency_cli_wired.py +0 -0
  956. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e031_unit_001_emergency_command.py +0 -0
  957. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e031_unit_002_hook_reads_emergency_bypass.py +0 -0
  958. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e033_integration_001_precommit_blocks_staged.py +0 -0
  959. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e033_integration_002_precommit_allows_md_docs.py +0 -0
  960. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e033_smoke_001_real_commit_rejects_staged_create.py +0 -0
  961. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_e033_unit_001_precommit_regex_precise.py +0 -0
  962. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_precommit_branch_gate_store.py +0 -0
  963. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/hooks/tests/test_pretooluse_classifier_integration.py +0 -0
  964. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/workflows/__init__.py +0 -0
  965. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/templates/workflows/atdd-auto-phase.yml +0 -0
  966. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/__init__.py +0 -0
  967. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/coach_config.py +0 -0
  968. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/coach_lock.py +0 -0
  969. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/config.py +0 -0
  970. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/coverage_phase.py +0 -0
  971. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/default_branch.py +0 -0
  972. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/diagnostics.py +0 -0
  973. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/disposition_gate.py +0 -0
  974. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/escalation_channel.py +0 -0
  975. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/ff_default_branch.py +0 -0
  976. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/forbidden_command_classifier.py +0 -0
  977. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/git.py +0 -0
  978. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/__init__.py +0 -0
  979. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/__init__.py +0 -0
  980. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_get_subgraph_edge_type_exclude.py +0 -0
  981. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_graph_builder_security_edges.py +0 -0
  982. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_graph_builder_train_participants.py +0 -0
  983. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_graph_builder_train_step_edges.py +0 -0
  984. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/graph/tests/test_security_resolver.py +0 -0
  985. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/locale_phase.py +0 -0
  986. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/manifest.py +0 -0
  987. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/multiplexer.py +0 -0
  988. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/multiplexer_primer.py +0 -0
  989. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/phase_dispatch.py +0 -0
  990. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/repo.py +0 -0
  991. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/review_report_intake.py +0 -0
  992. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/risk_score.py +0 -0
  993. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/rule_id_registry.py +0 -0
  994. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/rule_validator_resolver.py +0 -0
  995. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/session_naming.py +0 -0
  996. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/session_naming_apply.py +0 -0
  997. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/suppression_scanner.py +0 -0
  998. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/__init__.py +0 -0
  999. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_coach_config.py +0 -0
  1000. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_diagnostics.py +0 -0
  1001. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_disposition_gate.py +0 -0
  1002. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_integration_001_spawn_failure_cleans_pane.py +0 -0
  1003. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_smoke_001_coach_invoked_from_worktree_parent.py +0 -0
  1004. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_smoke_001_spawn_failure_cleans_pane_real_cmux.py +0 -0
  1005. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_unit_001_find_worktree_root_walks_up.py +0 -0
  1006. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_unit_002_find_worktree_root_respects_repo_flag.py +0 -0
  1007. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e003_unit_003_actionable_error_when_no_worktree_found.py +0 -0
  1008. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_smoke_001_worktree_reused_not_duplicated.py +0 -0
  1009. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_unit_001_detect_existing_worktree.py +0 -0
  1010. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_unit_001_rename_submits_via_send_key.py +0 -0
  1011. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_unit_002_coach_reuses_existing_worktree.py +0 -0
  1012. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_unit_002_graceful_uuid_extraction.py +0 -0
  1013. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e004_unit_003_coach_adds_worktree_when_none_exists.py +0 -0
  1014. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e005_smoke_001_primer_printed_in_real_cmux_session.py +0 -0
  1015. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e005_unit_001_primer_printed_when_mux_detected.py +0 -0
  1016. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e005_unit_002_primer_text_contains_key_commands.py +0 -0
  1017. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_e005_unit_004_primer_not_reprinted_in_same_session.py +0 -0
  1018. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_escalation_channel.py +0 -0
  1019. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_forbidden_command_classifier.py +0 -0
  1020. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_get_code_roots.py +0 -0
  1021. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_git.py +0 -0
  1022. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_m001_smoke_001_live_session_naming_apply_no_slash_rename.py +0 -0
  1023. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_m001_unit_001_apply_canonical_name_no_slash_rename.py +0 -0
  1024. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_m001_unit_002_multiplexer_rename_still_called.py +0 -0
  1025. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_m001_unit_003_verify_after_send_no_rename_accepted.py +0 -0
  1026. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_multiplexer.py +0 -0
  1027. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_multiplexer_persona_surface.py +0 -0
  1028. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_phase_dispatch.py +0 -0
  1029. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_r004_smoke_001_real_linked_worktree_recognized_worktree_ready.py +0 -0
  1030. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_r004_unit_001_detector_resolves_linked_worktree_common_dir.py +0 -0
  1031. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_risk_score.py +0 -0
  1032. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_rule_binding.py +0 -0
  1033. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_rule_id_registry.py +0 -0
  1034. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_rule_validator_resolver.py +0 -0
  1035. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_security_walker.py +0 -0
  1036. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_session_naming.py +0 -0
  1037. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/tests/test_suppression_scanner.py +0 -0
  1038. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/theme_map.py +0 -0
  1039. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/theme_scanner.py +0 -0
  1040. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/utils/train_spec_phase.py +0 -0
  1041. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/__init__.py +0 -0
  1042. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/_core_bare_baseline.py +0 -0
  1043. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/_fix_hint_audit.py +0 -0
  1044. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/_rule_binders.py +0 -0
  1045. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/_violation.py +0 -0
  1046. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/claude_md_validators.py +0 -0
  1047. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/conftest.py +0 -0
  1048. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/minimal_repo/__init__.py +0 -0
  1049. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/minimal_repo/test_minimal_pass.py +0 -0
  1050. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/toolkit_source_layout/pattern_a_clean.py +0 -0
  1051. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/toolkit_source_layout/pattern_a_violation.py +0 -0
  1052. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/toolkit_source_layout/pattern_b_clean.py +0 -0
  1053. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/fixtures/toolkit_source_layout/pattern_b_violation.py +0 -0
  1054. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/freedom_layer_validator.py +0 -0
  1055. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/launch_prompt_wagon_graph_guard.py +0 -0
  1056. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/red_phase_leak_scanner.py +0 -0
  1057. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/rule_id_emission_extractor.py +0 -0
  1058. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/shared_fixtures.py +0 -0
  1059. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_C001_roundtrip.py +0 -0
  1060. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_api_validators_marked_github_api.py +0 -0
  1061. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_auto_phase_workflow_exists.py +0 -0
  1062. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_branch_protection.py +0 -0
  1063. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_canonical_role_naming.py +0 -0
  1064. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_cleanup_command.py +0 -0
  1065. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_conductor_md_no_duplicated_convention.py +0 -0
  1066. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_config_themes.py +0 -0
  1067. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_core_bare_self_heal.py +0 -0
  1068. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_custom_theme_validation.py +0 -0
  1069. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d001_unit_001_six_schemas_exist.py +0 -0
  1070. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d001_unit_002_fixtures_validate.py +0 -0
  1071. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d002_unit_001_review_report_schema_committed.py +0 -0
  1072. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d002_unit_001_runtime_layout_doc_committed.py +0 -0
  1073. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d002_unit_002_pass_blocked_when_ac_not_covered.py +0 -0
  1074. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d002_unit_003_pass_blocked_with_strict_finding.py +0 -0
  1075. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d002_unit_004_rule_id_severity_matches_registry.py +0 -0
  1076. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d003_unit_001_five_phase_reviewer_prompts.py +0 -0
  1077. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d003_unit_001_validator_invocation_doc_committed.py +0 -0
  1078. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_d004_unit_001_event_semantics_doc_complete.py +0 -0
  1079. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_doctor_environment_diagnosis.py +0 -0
  1080. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e003_integration_001_block_verdict_fails_the_workflow.py +0 -0
  1081. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e003_integration_002_annotate_verdict_passes_with_comment.py +0 -0
  1082. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e003_unit_001_workflow_file_exists_with_correct_triggers.py +0 -0
  1083. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e005_integration_001_init_emits_only_parseable_atdd_commands.py +0 -0
  1084. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e005_integration_002_drift_validator_fires_in_validate_coach.py +0 -0
  1085. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e005_smoke_001_real_validate_coach_runs_extended_drift_validator.py +0 -0
  1086. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e005_unit_001_drift_scan_captures_all_atdd_lines.py +0 -0
  1087. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e005_unit_002_drift_validator_flags_unknown_subcommand.py +0 -0
  1088. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e009_runtime_artifacts_blocked.py +0 -0
  1089. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e022_smoke_001_live_claude_md_contains_no_atdd_skip_references.py +0 -0
  1090. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e022_unit_001_claude_md_contains_no_atdd_skip_references.py +0 -0
  1091. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e022_unit_002_claude_md_references_operator_emergency_bypass_doc.py +0 -0
  1092. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e022_unit_003_upgrade_banner_does_not_suggest_force.py +0 -0
  1093. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e023_smoke_001_live_claude_md_line_count_within_budget.py +0 -0
  1094. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e023_unit_001_claude_md_is_at_most_250_lines.py +0 -0
  1095. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e023_unit_002_claude_md_retains_atdd_lifecycle_and_command_pointers.py +0 -0
  1096. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e024_smoke_001_live_operator_emergency_bypass_doc_present_and_correct.py +0 -0
  1097. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e024_unit_001_operator_emergency_bypass_doc_exists.py +0 -0
  1098. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e024_unit_002_operator_emergency_bypass_doc_documents_cli_not_env_var.py +0 -0
  1099. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e032_unit_001_validator_rejects_forbidden_command_in_allowlist.py +0 -0
  1100. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e032_unit_002_validator_rejects_unscoped_bash_entry.py +0 -0
  1101. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e032_unit_003_validator_is_language_agnostic_data_only.py +0 -0
  1102. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e036_unit_003_shared_core_bare_baseline.py +0 -0
  1103. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e056_smoke_001_real_gate_scopes_to_current_pr.py +0 -0
  1104. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_e056_unit_001_pre_smoke_gate_pr_scope.py +0 -0
  1105. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_enrich_wagon_registry.py +0 -0
  1106. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_github_client_mock_spec.py +0 -0
  1107. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_hook_version_gate_honest_message.py +0 -0
  1108. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_init_substrate_mode.py +0 -0
  1109. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_init_themes_prompt.py +0 -0
  1110. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_issue_advancement.py +0 -0
  1111. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_issue_gate_completion.py +0 -0
  1112. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_issue_validation.py +0 -0
  1113. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_l003_smoke_001_dispatched_agent_bash_log_contains_no_atdd_skip_invocations.py +0 -0
  1114. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_m002_smoke_001_live_observer_rules_pass_validator.py +0 -0
  1115. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_m002_unit_spawn_non_interactive_validator.py +0 -0
  1116. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_no_duplicate_rule_representation.py +0 -0
  1117. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_no_red_phase_tests_in_consumer_entry_points.py +0 -0
  1118. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_observer_universal_cospawn.py +0 -0
  1119. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_open_issue_compliance.py +0 -0
  1120. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pr_base_branch.py +0 -0
  1121. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pr_closes_keyword_discipline.py +0 -0
  1122. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pr_mass_delete_guard.py +0 -0
  1123. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pr_merge_blocks_pre_smoke_close.py +0 -0
  1124. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pr_phase_alignment.py +0 -0
  1125. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_prepush_repo_validate_opt_in.py +0 -0
  1126. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_pytest_invocation_form.py +0 -0
  1127. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r002_smoke_001_atdd_validate_coach_includes_size_budget_rule.py +0 -0
  1128. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r002_unit_001_validator_fails_when_claude_md_exceeds_budget.py +0 -0
  1129. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r002_unit_002_validator_passes_when_claude_md_within_budget.py +0 -0
  1130. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r003_smoke_001_atdd_validate_coach_includes_no_bypass_advertising_rule.py +0 -0
  1131. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r003_unit_001_validator_fails_when_claude_md_contains_atdd_skip_token.py +0 -0
  1132. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_r003_unit_002_validator_passes_when_claude_md_is_clean.py +0 -0
  1133. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_readonly_commands_no_writes.py +0 -0
  1134. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_release_versioning.py +0 -0
  1135. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_required_label_set.py +0 -0
  1136. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_review_gate_ci_safe.py +0 -0
  1137. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_rule_id_registry_coherence.py +0 -0
  1138. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_rule_id_uniqueness.py +0 -0
  1139. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_rule_validator_binding.py +0 -0
  1140. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_session_naming.py +0 -0
  1141. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_spawn_non_interactive_validator.py +0 -0
  1142. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_sync_theme_block.py +0 -0
  1143. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_theme_scanner.py +0 -0
  1144. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_toolkit_source_layout_assumptions.py +0 -0
  1145. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_traceability.py +0 -0
  1146. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_train_registry.py +0 -0
  1147. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_transport_realizes_mediation.py +0 -0
  1148. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_unlabeled_open_issues.py +0 -0
  1149. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_update_feature_paths.py +0 -0
  1150. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_validate_contract_consumers.py +0 -0
  1151. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_validate_uses_live_source_in_checkout.py +0 -0
  1152. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_validator_test_isolation.py +0 -0
  1153. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_wagonless_graph_context_compliance.py +0 -0
  1154. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_wheel_completeness.py +0 -0
  1155. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_workflow_consistency.py +0 -0
  1156. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_workflow_template_command_drift.py +0 -0
  1157. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_worktree_enforcement.py +0 -0
  1158. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_y003_smoke_001_guard_catches_polluter.py +0 -0
  1159. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/test_y003_unit_001_repo_root_bare_guard.py +0 -0
  1160. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/__init__.py +0 -0
  1161. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_E025_regression_validator_red_phase_leak.py +0 -0
  1162. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_commit_trailers_emit.py +0 -0
  1163. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_e006_unit_002_no_dangling_replacement_target.py +0 -0
  1164. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_e061_smoke_001_real_cli_create_by_slug_warns.py +0 -0
  1165. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_e061_unit_001_create_by_slug_warns_and_still_routes.py +0 -0
  1166. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_fix_hint_completeness_helpers.py +0 -0
  1167. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_github_client_mock_spec_validator.py +0 -0
  1168. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_github_client_stub_autofix.py +0 -0
  1169. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_issue_advancement_non_lifecycle.py +0 -0
  1170. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_issue_advancement_scoping.py +0 -0
  1171. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_no_hardcoded_rule_severity.py +0 -0
  1172. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_phase_3a_rules_array_coverage.py +0 -0
  1173. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_pr_base_branch_helpers.py +0 -0
  1174. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_pr_merge_blocks_pre_smoke_close_helpers.py +0 -0
  1175. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_rule_id_emission_extractor.py +0 -0
  1176. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_rule_id_legacy_grammar.py +0 -0
  1177. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_rule_id_uniqueness_helpers.py +0 -0
  1178. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_smoke_rules_discoverability.py +0 -0
  1179. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_spawn_cli_surface.py +0 -0
  1180. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_violation.py +0 -0
  1181. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_wheel_completeness_helpers.py +0 -0
  1182. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/validators/tests/test_workflow_template_command_drift_helpers.py +0 -0
  1183. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/__init__.py +0 -0
  1184. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/atdd_cmux_send.py +0 -0
  1185. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/tests/__init__.py +0 -0
  1186. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/tests/test_e004_smoke_001_shim_console_script_real_exit_codes.py +0 -0
  1187. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/tests/test_e004_unit_001_launch_intent_payload_rejected.py +0 -0
  1188. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/tests/test_e004_unit_002_non_launch_payload_passthrough.py +0 -0
  1189. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coach/wrappers/tests/test_e004_unit_003_escape_flag_bypasses_classifier.py +0 -0
  1190. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/__init__.py +0 -0
  1191. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/adapter.recipe.yaml +0 -0
  1192. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/backend.convention.yaml +0 -0
  1193. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/boundaries.convention.yaml +0 -0
  1194. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/commons.convention.yaml +0 -0
  1195. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/complexity.recipe.yaml +0 -0
  1196. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/component-naming.convention.yaml +0 -0
  1197. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/composition.convention.yaml +0 -0
  1198. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/coverage.convention.yaml +0 -0
  1199. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/dead-code.convention.yaml +0 -0
  1200. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/design.convention.yaml +0 -0
  1201. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/design.recipe.yaml +0 -0
  1202. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/dto.convention.yaml +0 -0
  1203. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/duplication.convention.yaml +0 -0
  1204. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/error-response.convention.yaml +0 -0
  1205. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/frontend.convention.yaml +0 -0
  1206. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/green.convention.yaml +0 -0
  1207. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/logging.convention.yaml +0 -0
  1208. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/performance.convention.yaml +0 -0
  1209. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/presentation.convention.yaml +0 -0
  1210. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/refactor.convention.yaml +0 -0
  1211. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/security.convention.yaml +0 -0
  1212. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/technology.convention.yaml +0 -0
  1213. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/__init__.py +0 -0
  1214. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/test_adapter_recipe.py +0 -0
  1215. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/test_complexity_recipe.py +0 -0
  1216. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/test_component_taxonomy.py +0 -0
  1217. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/test_component_urn_naming.py +0 -0
  1218. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/tests/test_thinness_recipe.py +0 -0
  1219. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/thinness.recipe.yaml +0 -0
  1220. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/train.convention.yaml +0 -0
  1221. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/conventions/verification.protocol.yaml +0 -0
  1222. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/schemas/design_system.schema.json +0 -0
  1223. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/utils/__init__.py +0 -0
  1224. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/utils/python_file_walker.py +0 -0
  1225. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/utils/tests/__init__.py +0 -0
  1226. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/utils/tests/test_python_file_walker.py +0 -0
  1227. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/__init__.py +0 -0
  1228. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/_ast_tsx.py +0 -0
  1229. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/_four_tier_ratchet.py +0 -0
  1230. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/_toolkit_roots.py +0 -0
  1231. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/conftest.py +0 -0
  1232. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_fail_setter/python/bad_match/orchestrate_bad/composition.py +0 -0
  1233. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_fail_setter/python/bad_match/orchestrate_bad/src/application/play_match_use_case.py +0 -0
  1234. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_fail_setter/python/bad_match/orchestrate_bad/src/domain/match.py +0 -0
  1235. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_fail_setter/python/bad_match/orchestrate_bad/src/integration/match_repository.py +0 -0
  1236. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_fail_setter/python/bad_match/orchestrate_bad/src/presentation/controllers/match_controller.py +0 -0
  1237. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/play_match/orchestrate_match/composition.py +0 -0
  1238. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/play_match/orchestrate_match/src/application/play_match_use_case.py +0 -0
  1239. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/play_match/orchestrate_match/src/domain/match.py +0 -0
  1240. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/play_match/orchestrate_match/src/integration/match_repository.py +0 -0
  1241. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/play_match/orchestrate_match/src/presentation/controllers/match_controller.py +0 -0
  1242. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/rankings/calculate_elo/composition.py +0 -0
  1243. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/rankings/calculate_elo/src/domain/elo_rating.py +0 -0
  1244. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/python_pass/python/rankings/calculate_elo/src/integration/elo_repository.py +0 -0
  1245. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/tsconfig.json +0 -0
  1246. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/arena/show-forecast/application/useForecast.ts +0 -0
  1247. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/arena/show-forecast/domain/forecast.ts +0 -0
  1248. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/arena/show-forecast/integration/ForecastGateway.ts +0 -0
  1249. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/arena/show-forecast/presentation/ForecastView.tsx +0 -0
  1250. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/application/useCameoBalance.ts +0 -0
  1251. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/application/useFinalsRewards.ts +0 -0
  1252. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/domain/cameo-types.ts +0 -0
  1253. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/domain/finals-rewards-types.ts +0 -0
  1254. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/integration/CameoRepository.ts +0 -0
  1255. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/integration/FinalsRewardsRepository.ts +0 -0
  1256. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/presentation/FinalsRewardCard.tsx +0 -0
  1257. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/presentation/ProfilePage.tsx +0 -0
  1258. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/manage-profile/display-profile/presentation/ProfileView.tsx +0 -0
  1259. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/reveal-status/display-leaderboard/application/usePlayerRank.ts +0 -0
  1260. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/reveal-status/display-leaderboard/domain/rank.ts +0 -0
  1261. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/reveal-status/display-leaderboard/index.ts +0 -0
  1262. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/reveal-status/display-leaderboard/integration/LeaderboardRepository.ts +0 -0
  1263. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/reveal-status/display-leaderboard/presentation/LeaderboardPage.tsx +0 -0
  1264. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/score/compute-elo/domain/elo.ts +0 -0
  1265. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/composition_completeness/typescript_repo/web/src/score/compute-elo/integration/EloRepository.ts +0 -0
  1266. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/route_train_wagon/dynamic_unknown.tsx +0 -0
  1267. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/route_train_wagon/ghost_train.tsx +0 -0
  1268. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/route_train_wagon/ghost_wagon.yaml +0 -0
  1269. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/route_train_wagon/good_router.tsx +0 -0
  1270. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/silent_swallow/python_clean/observed_handlers.py +0 -0
  1271. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/silent_swallow/python_violations/seek_opponent.py +0 -0
  1272. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/silent_swallow/typescript_clean/observedHandlers.ts +0 -0
  1273. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/silent_swallow/typescript_violations/seekOpponent.ts +0 -0
  1274. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/arrow_null.tsx +0 -0
  1275. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/conditional_null_ok.tsx +0 -0
  1276. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/empty_div.tsx +0 -0
  1277. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/empty_fragment.tsx +0 -0
  1278. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/fn_return_null.tsx +0 -0
  1279. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/jel_app_repro/AuthGateShell.tsx +0 -0
  1280. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/passthrough_children_ok.tsx +0 -0
  1281. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/fixtures/stub_presentation/ternary_both_null.tsx +0 -0
  1282. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/presentation_ratchet.py +0 -0
  1283. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/route_train_wagon_analyzer.py +0 -0
  1284. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_commons_structure.py +0 -0
  1285. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_complexity.py +0 -0
  1286. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_complexity_typescript.py +0 -0
  1287. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_composition_completeness.py +0 -0
  1288. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_contract_driven_http.py +0 -0
  1289. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_cross_language_consistency.py +0 -0
  1290. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_dead_code_python.py +0 -0
  1291. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_design_system_compliance.py +0 -0
  1292. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_dto_testing_patterns.py +0 -0
  1293. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_duplication_detector.py +0 -0
  1294. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_duplication_detector_typescript.py +0 -0
  1295. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_error_response_compliance.py +0 -0
  1296. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_frontend_composition_root.py +0 -0
  1297. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_frontend_security_patterns.py +0 -0
  1298. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_god_hook_elimination.py +0 -0
  1299. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_green_cross_stack_layers.py +0 -0
  1300. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_green_layer_dependencies.py +0 -0
  1301. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_green_python_layer_structure.py +0 -0
  1302. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_green_supabase_layer_structure.py +0 -0
  1303. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_gsap_layer_usage.py +0 -0
  1304. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_hierarchy_coverage.py +0 -0
  1305. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_i18n_runtime.py +0 -0
  1306. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_import_boundaries.py +0 -0
  1307. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_no_silent_exception_swallowing_python.py +0 -0
  1308. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_no_silent_exception_swallowing_typescript.py +0 -0
  1309. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_no_stub_presentation_returns.py +0 -0
  1310. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_page_elimination.py +0 -0
  1311. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_preact_layer_boundaries.py +0 -0
  1312. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_presentation_convention.py +0 -0
  1313. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_presentation_ratchet_requires_smoke.py +0 -0
  1314. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_python_architecture.py +0 -0
  1315. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_quality_metrics.py +0 -0
  1316. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_quality_metrics_typescript.py +0 -0
  1317. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_query_count.py +0 -0
  1318. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_route_train_compliance.py +0 -0
  1319. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_route_train_wagon_coverage.py +0 -0
  1320. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_security_patterns.py +0 -0
  1321. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_state_store_invariants.py +0 -0
  1322. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_state_store_sot_boundary.py +0 -0
  1323. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_station_master_pattern.py +0 -0
  1324. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_structured_logging.py +0 -0
  1325. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_train_composition_smoke.py +0 -0
  1326. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_train_infrastructure.py +0 -0
  1327. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_train_urns.py +0 -0
  1328. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_train_yaml_render_metadata.py +0 -0
  1329. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_typescript_architecture.py +0 -0
  1330. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_usecase_structure.py +0 -0
  1331. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_wagon_boundaries.py +0 -0
  1332. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_wagon_boundaries_typescript.py +0 -0
  1333. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/test_wagon_trains_export_shape.py +0 -0
  1334. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/__init__.py +0 -0
  1335. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/flat_package/__init__.py +0 -0
  1336. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/flat_package/app.py +0 -0
  1337. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/flat_package/models.py +0 -0
  1338. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/flat_package/runner.py +0 -0
  1339. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/from_dot_import_x/python/app.py +0 -0
  1340. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/from_dot_import_x/python/pkg/__init__.py +0 -0
  1341. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/from_dot_import_x/python/pkg/models.py +0 -0
  1342. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/from_dot_import_x/python/pkg/runner.py +0 -0
  1343. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/relative_imports_regression/python/app.py +0 -0
  1344. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/relative_imports_regression/python/trains/__init__.py +0 -0
  1345. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/relative_imports_regression/python/trains/models.py +0 -0
  1346. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/fixtures/relative_imports_regression/python/trains/runner.py +0 -0
  1347. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_composition_toolkit_root_config_driven.py +0 -0
  1348. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_dead_code_python_relative_imports.py +0 -0
  1349. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_four_tier_ratchet_migration_safety.py +0 -0
  1350. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_four_tier_ratchet_smoke_new_violation.py +0 -0
  1351. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_hierarchy_coverage_config_driven.py +0 -0
  1352. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_hierarchy_coverage_smoke_unknown_stack.py +0 -0
  1353. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_quality_metrics_duplication.py +0 -0
  1354. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_structured_logging_unit.py +0 -0
  1355. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_toolkit_four_tier_smoke_live_scan.py +0 -0
  1356. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/coder/validators/tests/test_wagon_boundaries_toolkit_root_config_driven.py +0 -0
  1357. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/conftest.py +0 -0
  1358. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/__init__.py +0 -0
  1359. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/__init__.py +0 -0
  1360. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/composition.py +0 -0
  1361. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/live_smoke.py +0 -0
  1362. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/__init__.py +0 -0
  1363. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/application/__init__.py +0 -0
  1364. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/application/apply_layout_use_case.py +0 -0
  1365. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/application/ports.py +0 -0
  1366. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/domain/__init__.py +0 -0
  1367. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/domain/canonical_name.py +0 -0
  1368. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/domain/layout_plan.py +0 -0
  1369. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/domain/role.py +0 -0
  1370. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/domain/workspace_handle.py +0 -0
  1371. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/integration/__init__.py +0 -0
  1372. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/integration/cmux_layout_adapter.py +0 -0
  1373. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/presentation/__init__.py +0 -0
  1374. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/presentation/apply_conformance.py +0 -0
  1375. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/src/presentation/workspace_handle_surface.py +0 -0
  1376. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/__init__.py +0 -0
  1377. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/_helpers.py +0 -0
  1378. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_c001_smoke_001_live_never_collapse.py +0 -0
  1379. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_c001_unit_001_plan_never_merges_scopes.py +0 -0
  1380. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e003_integration_001_shim_records_layout_call.py +0 -0
  1381. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e003_smoke_001_meta_smoke_print_theater_guard.py +0 -0
  1382. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e003_unit_001_use_case_invokes_layout_port.py +0 -0
  1383. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e004_integration_001_validator_flags_non_role_name.py +0 -0
  1384. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e004_smoke_001_validator_over_live_surface_names.py +0 -0
  1385. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e004_unit_001_build_sanitize_parse_roundtrip.py +0 -0
  1386. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e005_smoke_001_surface_workspace_resolves_without_invalid_handle.py +0 -0
  1387. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e005_unit_001_sanitizer_extracts_bare_handle.py +0 -0
  1388. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/consolidate_coach_workspace/enforce_surface_conformance/tests/test_e005_unit_002_list_workspaces_emits_only_bare_handles.py +0 -0
  1389. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/doctor.py +0 -0
  1390. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/__init__.py +0 -0
  1391. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/cli.py +0 -0
  1392. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/conventions.py +0 -0
  1393. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/resolution.py +0 -0
  1394. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/runner.py +0 -0
  1395. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce/substrate_guard.py +0 -0
  1396. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/__init__.py +0 -0
  1397. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/__init__.py +0 -0
  1398. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/__init__.py +0 -0
  1399. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/conftest.py +0 -0
  1400. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e001_smoke_001_conformance.py +0 -0
  1401. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e002_smoke_001_exit_code.py +0 -0
  1402. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e003_smoke_001_run_on_commit.py +0 -0
  1403. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e004_smoke_001_dogfood_parity.py +0 -0
  1404. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e005_smoke_001_boundary.py +0 -0
  1405. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/enforce_binding_plan/run_binding_plan/tests/test_e006_smoke_001_rematerialization.py +0 -0
  1406. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/__init__.py +0 -0
  1407. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/__init__.py +0 -0
  1408. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/_gh.py +0 -0
  1409. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/checks.py +0 -0
  1410. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/issue_state.py +0 -0
  1411. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/pr.py +0 -0
  1412. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/integrations/github/types.py +0 -0
  1413. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/__init__.py +0 -0
  1414. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/cargo.py +0 -0
  1415. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/runner.py +0 -0
  1416. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/tests/__init__.py +0 -0
  1417. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/tests/test_engine_core.py +0 -0
  1418. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/journey/types.py +0 -0
  1419. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/__init__.py +0 -0
  1420. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/__init__.py +0 -0
  1421. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/composition.py +0 -0
  1422. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/__init__.py +0 -0
  1423. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/application/__init__.py +0 -0
  1424. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/application/apply_use_case.py +0 -0
  1425. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/application/ports.py +0 -0
  1426. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/domain/__init__.py +0 -0
  1427. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/domain/application_plan.py +0 -0
  1428. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/domain/idempotency_key.py +0 -0
  1429. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/domain/record.py +0 -0
  1430. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/integration/__init__.py +0 -0
  1431. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/integration/agent_control_applier.py +0 -0
  1432. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/integration/jsonl_decision_ledger.py +0 -0
  1433. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/presentation/__init__.py +0 -0
  1434. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/src/presentation/apply_cli.py +0 -0
  1435. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/__init__.py +0 -0
  1436. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/_helpers.py +0 -0
  1437. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_e002_integration_001_applied_once.py +0 -0
  1438. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_e002_unit_001_stable_idempotency_key.py +0 -0
  1439. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_k001_integration_001_record_written.py +0 -0
  1440. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_k001_smoke_001_live_ledger.py +0 -0
  1441. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_m002_integration_001_failure_recorded.py +0 -0
  1442. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/apply_decision/tests/test_r001_unit_001_human_required_not_applied.py +0 -0
  1443. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/__init__.py +0 -0
  1444. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/composition.py +0 -0
  1445. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/live_smoke.py +0 -0
  1446. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/__init__.py +0 -0
  1447. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/application/__init__.py +0 -0
  1448. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/application/feed_runner.py +0 -0
  1449. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/application/ports.py +0 -0
  1450. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/__init__.py +0 -0
  1451. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/feed_item.py +0 -0
  1452. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/feed_item_mapper.py +0 -0
  1453. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/feed_reply_mapper.py +0 -0
  1454. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/tool_input_safety.py +0 -0
  1455. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/domain/workspace_scope.py +0 -0
  1456. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/__init__.py +0 -0
  1457. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/coach_context.py +0 -0
  1458. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/feed_advance_verifier.py +0 -0
  1459. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/feed_event_source.py +0 -0
  1460. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/feed_reply_applier.py +0 -0
  1461. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/integration/llm_coach.py +0 -0
  1462. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/presentation/__init__.py +0 -0
  1463. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/src/presentation/feed_runner_cli.py +0 -0
  1464. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/__init__.py +0 -0
  1465. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/_helpers.py +0 -0
  1466. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c003_integration_001_no_reply_for_dangerous.py +0 -0
  1467. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c003_smoke_001_live_dangerous_not_auto_approved.py +0 -0
  1468. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c003_unit_001_dangerous_tool_input_human_required.py +0 -0
  1469. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c003_unit_002_dangerous_permission_policy.py +0 -0
  1470. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c003_unit_003_unrecognized_command_escalates_by_default.py +0 -0
  1471. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c007_unit_001_governance_escalates_no_verdict.py +0 -0
  1472. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_c007_unit_002_routine_question_still_auto_answered.py +0 -0
  1473. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e003_integration_001_reply_once_per_request.py +0 -0
  1474. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e003_smoke_001_unblocks_live_agent.py +0 -0
  1475. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e003_unit_001_verdict_maps_to_feed_reply.py +0 -0
  1476. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e006_smoke_001_live_decider_answers_whole_doc.py +0 -0
  1477. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e006_unit_001_answers_every_block_by_kind.py +0 -0
  1478. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e006_unit_002_selection_constrained_to_block_options.py +0 -0
  1479. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e007_integration_001_roundtrip_each_block_kind.py +0 -0
  1480. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e007_smoke_001_live_multi_question_all_answered.py +0 -0
  1481. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e007_unit_001_reply_carries_per_question_selections.py +0 -0
  1482. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e009_integration_001_resolved_decision_is_the_oracle.py +0 -0
  1483. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e009_smoke_001_worker_actually_proceeds_after_reply.py +0 -0
  1484. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e009_unit_001_verified_advance_no_fallback.py +0 -0
  1485. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e009_unit_002_fallback_advances_stuck_worker.py +0 -0
  1486. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e009_unit_003_still_stuck_escalates_worker_stuck.py +0 -0
  1487. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e011_smoke_001_live_decides_with_convention_loaded.py +0 -0
  1488. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e011_unit_001_decider_carries_coach_convention.py +0 -0
  1489. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e011_unit_002_provider_seam_carries_same_context.py +0 -0
  1490. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_e011_unit_003_safety_gate_unchanged_decider_not_consulted.py +0 -0
  1491. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l002_smoke_001_locates_live_blocked_agent.py +0 -0
  1492. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l002_unit_001_maps_feed_item_to_request.py +0 -0
  1493. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l003_smoke_001_live_multi_question_located_whole.py +0 -0
  1494. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l003_unit_001_preserves_every_question_as_block.py +0 -0
  1495. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l003_unit_002_single_question_still_maps.py +0 -0
  1496. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l005_integration_001_source_scopes_via_surface_list.py +0 -0
  1497. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l005_smoke_001_live_two_workers_no_cross_decide.py +0 -0
  1498. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l005_unit_001_scope_returns_only_own_workspace_items.py +0 -0
  1499. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l005_unit_002_cwd_fallback_when_workstream_unknown.py +0 -0
  1500. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l007_integration_001_worktree_cwd_item_included.py +0 -0
  1501. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l007_integration_002_unresolvable_surface_list_does_not_silently_empty_scope.py +0 -0
  1502. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l007_smoke_001_live_worktree_worker_decision_not_swallowed.py +0 -0
  1503. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/bridge_cmux_feed/tests/test_l007_unit_001_permissive_scope_owns_every_item.py +0 -0
  1504. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/__init__.py +0 -0
  1505. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/live_smoke.py +0 -0
  1506. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/__init__.py +0 -0
  1507. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/application/__init__.py +0 -0
  1508. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/application/answer_escalation.py +0 -0
  1509. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/application/surface_escalations.py +0 -0
  1510. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/domain/__init__.py +0 -0
  1511. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/domain/escalation_surfacing.py +0 -0
  1512. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/src/domain/label_resolver.py +0 -0
  1513. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/__init__.py +0 -0
  1514. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_c009_smoke_001_live_wrong_label_rejected_no_feed_reply.py +0 -0
  1515. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_c009_unit_001_non_matching_label_rejected_loudly_no_reply.py +0 -0
  1516. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_c009_unit_002_partial_prefix_label_rejected_not_silently_accepted.py +0 -0
  1517. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_e014_integration_001_delivers_once_via_transport.py +0 -0
  1518. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_e014_smoke_001_live_answer_advances_parked_worker.py +0 -0
  1519. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_e014_unit_001_permission_reply_verb_and_params.py +0 -0
  1520. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_e014_unit_002_question_reply_exact_label_selections.py +0 -0
  1521. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_l008_smoke_001_live_status_surfaces_then_omits_after_answer.py +0 -0
  1522. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_l008_unit_001_status_lists_unanswered_with_prompt_options.py +0 -0
  1523. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_answer_escalation/tests/test_l008_unit_002_status_omits_answered_escalations.py +0 -0
  1524. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/__init__.py +0 -0
  1525. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/composition.py +0 -0
  1526. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/live_smoke.py +0 -0
  1527. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/__init__.py +0 -0
  1528. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/application/__init__.py +0 -0
  1529. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/application/coach_runtime.py +0 -0
  1530. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/application/ports.py +0 -0
  1531. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/domain/__init__.py +0 -0
  1532. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/domain/cursor.py +0 -0
  1533. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/domain/managed_daemon.py +0 -0
  1534. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/integration/__init__.py +0 -0
  1535. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/integration/daemon_manager.py +0 -0
  1536. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/integration/jsonl_escalation_reader.py +0 -0
  1537. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/log.py +0 -0
  1538. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/presentation/__init__.py +0 -0
  1539. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/presentation/attach_worker_daemon.py +0 -0
  1540. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/src/presentation/coach_runtime_cli.py +0 -0
  1541. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/__init__.py +0 -0
  1542. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/_helpers.py +0 -0
  1543. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e010_smoke_001_live_start_launches_scoped_daemon.py +0 -0
  1544. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e010_unit_001_start_writes_pidfile_and_spawns_once.py +0 -0
  1545. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e010_unit_002_second_start_is_a_no_op.py +0 -0
  1546. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e012_integration_001_spawn_handler_attaches_after_spawn.py +0 -0
  1547. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e012_smoke_001_coach_dispatch_drives_fixture_through_one_mediated_decision.py +0 -0
  1548. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e012_unit_001_dispatch_attach_starts_scoped_daemon_once.py +0 -0
  1549. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_e012_unit_002_attach_is_idempotent.py +0 -0
  1550. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_l006_smoke_001_live_wait_emits_induced_escalation.py +0 -0
  1551. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_l006_unit_001_pure_next_after_cursor.py +0 -0
  1552. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_l006_unit_002_wait_emits_one_advances_cursor_no_reemit.py +0 -0
  1553. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m004_smoke_001_real_spawn_captures_daemon_output_to_log.py +0 -0
  1554. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m004_unit_001_start_passes_durable_log_path_to_spawner.py +0 -0
  1555. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m004_unit_002_subprocess_spawner_wires_stdout_stderr_to_log_file.py +0 -0
  1556. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m005_smoke_001_real_coach_start_managed_daemon_writes_a_verdict.py +0 -0
  1557. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m005_unit_001_run_cmux_raises_and_loud_logs_on_nonzero_exit.py +0 -0
  1558. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m005_unit_002_start_launches_daemon_as_headless_cmux_surface.py +0 -0
  1559. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_m005_unit_003_stop_closes_daemon_workspace_and_liveness_from_existence.py +0 -0
  1560. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_r003_smoke_001_live_stop_terminates_managed_daemon.py +0 -0
  1561. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_r003_unit_001_stop_signals_pid_and_clears_pidfile.py +0 -0
  1562. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/coach_runtime/tests/test_r003_unit_002_daemons_lists_live_and_stale.py +0 -0
  1563. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/commons/__init__.py +0 -0
  1564. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/commons/cmux_cli.py +0 -0
  1565. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/commons/jsonl_writer.py +0 -0
  1566. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/__init__.py +0 -0
  1567. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/composition.py +0 -0
  1568. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/live_smoke.py +0 -0
  1569. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/__init__.py +0 -0
  1570. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/application/__init__.py +0 -0
  1571. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/application/feed_daemon.py +0 -0
  1572. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/application/ports.py +0 -0
  1573. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/domain/__init__.py +0 -0
  1574. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/domain/answered_set.py +0 -0
  1575. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/domain/daemon_config.py +0 -0
  1576. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/integration/__init__.py +0 -0
  1577. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/integration/jsonl_ledgers.py +0 -0
  1578. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/integration/pidfile_lock.py +0 -0
  1579. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/integration/signal_stop.py +0 -0
  1580. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/presentation/__init__.py +0 -0
  1581. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/src/presentation/feed_daemon_cli.py +0 -0
  1582. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/__init__.py +0 -0
  1583. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/_helpers.py +0 -0
  1584. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c004_integration_001_escalation_ledger_written_no_reply.py +0 -0
  1585. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c004_smoke_001_live_dangerous_not_auto_answered.py +0 -0
  1586. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c004_unit_001_dangerous_escalates_not_auto.py +0 -0
  1587. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c005_integration_001_mixed_document_escalated_durably_no_reply.py +0 -0
  1588. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c005_smoke_001_live_mixed_document_not_auto_answered.py +0 -0
  1589. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c005_unit_001_mixed_document_escalates_whole.py +0 -0
  1590. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c007_integration_001_governance_escalated_durably_no_reply.py +0 -0
  1591. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_c007_smoke_001_live_governance_not_auto_answered.py +0 -0
  1592. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_d002_integration_001_run_forever_refuses_when_locked.py +0 -0
  1593. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_d002_smoke_001_live_second_instance_refused.py +0 -0
  1594. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_d002_unit_001_second_acquire_refused_stale_reclaimed.py +0 -0
  1595. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_e004_smoke_001_live_loop_answers_blocked_agent.py +0 -0
  1596. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_e004_unit_001_tick_answers_a_blocked_item.py +0 -0
  1597. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_e005_integration_001_rehydrate_across_restart.py +0 -0
  1598. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_e005_smoke_001_live_restart_no_double_answer.py +0 -0
  1599. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_e005_unit_001_second_tick_skips_answered.py +0 -0
  1600. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_m003_smoke_001_live_daemon_writes_a_verdict.py +0 -0
  1601. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_m003_unit_001_decide_failure_logged_and_escalated_not_swallowed.py +0 -0
  1602. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_r002_integration_001_sigterm_sets_stop.py +0 -0
  1603. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_r002_smoke_001_live_sigterm_clean_shutdown.py +0 -0
  1604. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/feed_daemon/tests/test_r002_unit_001_stop_signal_exits_loop_and_releases_lock.py +0 -0
  1605. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/__init__.py +0 -0
  1606. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/composition.py +0 -0
  1607. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/__init__.py +0 -0
  1608. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/application/__init__.py +0 -0
  1609. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/application/mediate_use_case.py +0 -0
  1610. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/application/ports.py +0 -0
  1611. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/__init__.py +0 -0
  1612. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/coach_reply_parser.py +0 -0
  1613. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/danger_rules.py +0 -0
  1614. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/governance_rules.py +0 -0
  1615. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/safety_classifier.py +0 -0
  1616. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/domain/verdict.py +0 -0
  1617. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/integration/__init__.py +0 -0
  1618. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/presentation/__init__.py +0 -0
  1619. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/src/presentation/mediate_cli.py +0 -0
  1620. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/__init__.py +0 -0
  1621. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/_helpers.py +0 -0
  1622. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_c002_integration_001_gate_before_coach.py +0 -0
  1623. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_c002_unit_001_danger_patterns_human_required.py +0 -0
  1624. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_c002_unit_002_unrecognized_destructive_human_required.py +0 -0
  1625. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_c008_unit_001_bootstrap_cd_prefix_and_repo_graph_auto.py +0 -0
  1626. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_c008_unit_002_cd_unwrap_preserves_escalate_by_default.py +0 -0
  1627. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_e001_unit_001_parse_or_error.py +0 -0
  1628. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_m001_integration_001_timeout_escalates.py +0 -0
  1629. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_p001_integration_001_coach_request_format.py +0 -0
  1630. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/mediate_decision/tests/test_y001_unit_001_option_must_be_in_set.py +0 -0
  1631. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/__init__.py +0 -0
  1632. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/__init__.py +0 -0
  1633. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/application/__init__.py +0 -0
  1634. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/application/persistent_orchestrator.py +0 -0
  1635. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/application/ports.py +0 -0
  1636. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/domain/__init__.py +0 -0
  1637. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/domain/orchestrator_config.py +0 -0
  1638. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/src/domain/phase_snapshot.py +0 -0
  1639. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/tests/__init__.py +0 -0
  1640. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/tests/_helpers.py +0 -0
  1641. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/tests/test_c010_unit_001_advances_only_on_done_signal.py +0 -0
  1642. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/persistent_orchestrator/tests/test_m006_unit_001_stall_is_loud_logged_and_exits.py +0 -0
  1643. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/__init__.py +0 -0
  1644. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/composition.py +0 -0
  1645. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/__init__.py +0 -0
  1646. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/application/__init__.py +0 -0
  1647. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/application/ports.py +0 -0
  1648. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/application/sense_use_case.py +0 -0
  1649. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/domain/__init__.py +0 -0
  1650. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/domain/decision_document.py +0 -0
  1651. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/domain/decision_request.py +0 -0
  1652. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/domain/prompt_parser.py +0 -0
  1653. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/integration/__init__.py +0 -0
  1654. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/presentation/__init__.py +0 -0
  1655. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/src/presentation/emit_cli.py +0 -0
  1656. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/tests/__init__.py +0 -0
  1657. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/tests/test_c001_unit_001_no_false_positive.py +0 -0
  1658. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/tests/test_d001_integration_001_entry_path_parity.py +0 -0
  1659. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/sense_decision/tests/test_l001_unit_001_extracts_latest_prompt.py +0 -0
  1660. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/__init__.py +0 -0
  1661. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/live_smoke.py +0 -0
  1662. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/__init__.py +0 -0
  1663. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/application/__init__.py +0 -0
  1664. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/application/ports.py +0 -0
  1665. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/application/resolve_surfacing_values.py +0 -0
  1666. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/domain/__init__.py +0 -0
  1667. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/domain/decision_surfacing_policy.py +0 -0
  1668. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/domain/surfacing_renderer.py +0 -0
  1669. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/integration/__init__.py +0 -0
  1670. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/integration/cmux_hook_probe.py +0 -0
  1671. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/presentation/__init__.py +0 -0
  1672. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/presentation/dispatch_feed_hook_gate.py +0 -0
  1673. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/src/presentation/surfacing_values_provider.py +0 -0
  1674. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/__init__.py +0 -0
  1675. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/_helpers.py +0 -0
  1676. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_c006_integration_001_policy_rejects_forbidden_flag.py +0 -0
  1677. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_c006_smoke_001_live_bash_decision_surfaces_not_auto_executed.py +0 -0
  1678. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_c006_unit_001_no_bypass_and_bash_always_surfaced.py +0 -0
  1679. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_e008_smoke_001_live_spawned_worker_decision_appears_blocked_in_feed.py +0 -0
  1680. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_e008_unit_001_action_decisions_not_pre_authorized.py +0 -0
  1681. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_e013_smoke_001_dispatch_worker_decision_publishes_to_feed.py +0 -0
  1682. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_e013_unit_001_dispatch_launch_carries_no_hook_suppressing_flag.py +0 -0
  1683. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_e013_unit_002_dispatch_refuses_when_hook_path_inactive.py +0 -0
  1684. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_l004_integration_001_build_warns_when_hook_path_absent.py +0 -0
  1685. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_l004_smoke_001_live_worker_has_active_feed_hook.py +0 -0
  1686. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_l004_unit_001_probe_reports_hook_active_and_inactive.py +0 -0
  1687. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_y002_integration_001_spawn_adapter_command_realizes_policy.py +0 -0
  1688. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_y002_smoke_001_live_worker_launch_argv_matches_policy.py +0 -0
  1689. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_y002_unit_001_rendered_flags_realize_policy_exactly.py +0 -0
  1690. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/mediate_worker_decisions/surface_worker_decisions/tests/test_y002_unit_002_spec_values_carry_policy_fields.py +0 -0
  1691. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/observer/__init__.py +0 -0
  1692. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/observer/__main__.py +0 -0
  1693. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/__init__.py +0 -0
  1694. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/artifact_naming.py +0 -0
  1695. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/__init__.py +0 -0
  1696. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_context.py +0 -0
  1697. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_init.py +0 -0
  1698. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_issue.py +0 -0
  1699. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_manifest.py +0 -0
  1700. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_publish.py +0 -0
  1701. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_registry.py +0 -0
  1702. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_schemas.py +0 -0
  1703. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/author_variant.py +0 -0
  1704. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/compose.py +0 -0
  1705. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/confirm_artifact_naming.py +0 -0
  1706. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/confirm_interlocking.py +0 -0
  1707. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/confirm_naming.py +0 -0
  1708. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/plan_context.py +0 -0
  1709. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/plan_session.py +0 -0
  1710. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/plan_session_cli.py +0 -0
  1711. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/__init__.py +0 -0
  1712. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/_il_author_fixtures.py +0 -0
  1713. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c001_smoke_001_cli_refuses_bad_input.py +0 -0
  1714. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c001_smoke_001_plan_cli_refuses_bad_input.py +0 -0
  1715. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c001_unit_001_plan_guard_rejects_bad_slug_path.py +0 -0
  1716. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c001_unit_001_spine_rejects_bad_role.py +0 -0
  1717. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c001_unit_002_spine_rejects_bad_id_and_path.py +0 -0
  1718. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c002_smoke_001_cli_rejects_bad_node.py +0 -0
  1719. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c002_smoke_001_plan_cli_refuses_wagon.py +0 -0
  1720. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c002_unit_001_plan_wagon_rejects_invalid.py +0 -0
  1721. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c002_unit_001_rejects_bad_role_and_rule_id.py +0 -0
  1722. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c002_unit_002_rejects_subfolder_and_numbered_term.py +0 -0
  1723. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c003_smoke_001_cli_rejects_bad_edge.py +0 -0
  1724. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c003_smoke_001_plan_cli_refuses_feature.py +0 -0
  1725. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c003_unit_001_plan_feature_rejects_invalid.py +0 -0
  1726. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c003_unit_001_rejects_bad_type_and_ref.py +0 -0
  1727. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c003_unit_002_rejects_non_role_prefixed_id.py +0 -0
  1728. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c004_smoke_001_cli_rejects_bad_scope.py +0 -0
  1729. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c004_smoke_001_plan_cli_refuses_wmbt.py +0 -0
  1730. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c004_unit_001_plan_wmbt_rejects_invalid.py +0 -0
  1731. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c004_unit_001_rejects_bad_id_and_selector_type.py +0 -0
  1732. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c004_unit_002_rejects_zero_selectors.py +0 -0
  1733. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c005_smoke_001_cli_rejects_bad_gate.py +0 -0
  1734. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c005_smoke_001_plan_cli_refuses_train.py +0 -0
  1735. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c005_unit_001_plan_train_rejects_invalid.py +0 -0
  1736. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c005_unit_001_rejects_bad_id_trigger_strategy.py +0 -0
  1737. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c005_unit_002_rejects_bad_action_and_implicit_exit.py +0 -0
  1738. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_smoke_001_cli_manifest_roundtrip.py +0 -0
  1739. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_smoke_001_plan_cli_refuses_acceptance.py +0 -0
  1740. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_unit_001_manifest_validation.py +0 -0
  1741. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_unit_001_plan_acceptance_rejects_invalid.py +0 -0
  1742. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_unit_002_contract_compat.py +0 -0
  1743. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_unit_002_implementation_contract.py +0 -0
  1744. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c006_unit_003_capability_contracts.py +0 -0
  1745. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c007_smoke_001_validate_package_cli.py +0 -0
  1746. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c007_unit_001_realization_gate.py +0 -0
  1747. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c008_smoke_001_plan_unit_spec_cli.py +0 -0
  1748. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c008_unit_001_spine_rejects_non_object_spec.py +0 -0
  1749. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c008_unit_002_plan_unit_spec_boundary.py +0 -0
  1750. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c009_smoke_001_validate_refuses_orphan.py +0 -0
  1751. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_c009_unit_001_extension_orphan_detection.py +0 -0
  1752. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_convention_variant_scaffold_smoke.py +0 -0
  1753. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_convention_variant_scaffold_unit.py +0 -0
  1754. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_d001_smoke_001_schemas_load_and_validate.py +0 -0
  1755. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_d001_unit_001_one_schema_per_kind.py +0 -0
  1756. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_d001_unit_002_schemas_are_self_consistent.py +0 -0
  1757. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_d001_unit_003_frozen_vocabularies_loadable_and_closed.py +0 -0
  1758. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_define_plans_session_smoke.py +0 -0
  1759. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e001_smoke_001_cli_creates_valid_node.py +0 -0
  1760. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e001_smoke_001_plan_cli_creates_wagon.py +0 -0
  1761. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e001_unit_001_flat_per_rule_file.py +0 -0
  1762. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e001_unit_001_plan_wagon_canonical_home.py +0 -0
  1763. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e001_unit_002_conflict_free_second_rule.py +0 -0
  1764. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e002_smoke_001_plan_cli_creates_feature.py +0 -0
  1765. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e002_smoke_001_two_edges_sorted_deduped.py +0 -0
  1766. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e002_unit_001_plan_feature_canonical_home.py +0 -0
  1767. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e002_unit_001_stable_sort_by_source.py +0 -0
  1768. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e002_unit_002_idempotent_reinsert.py +0 -0
  1769. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e003_smoke_001_plan_cli_creates_wmbt.py +0 -0
  1770. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e003_smoke_001_scope_written_and_sorted.py +0 -0
  1771. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e003_unit_001_plan_wmbt_seeds_smoke.py +0 -0
  1772. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e003_unit_001_stable_sort_by_scope_id.py +0 -0
  1773. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e003_unit_002_idempotent_atomic.py +0 -0
  1774. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_smoke_001_cli_writes_valid_gate.py +0 -0
  1775. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_smoke_001_plan_cli_creates_train.py +0 -0
  1776. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_001_plan_train_registry_insert.py +0 -0
  1777. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_001_stable_sort_by_gate_id.py +0 -0
  1778. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_002_carries_schema_required_keys.py +0 -0
  1779. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_002_idempotent_atomic.py +0 -0
  1780. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_003_alternate_path_train_carries_sequence.py +0 -0
  1781. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e004_unit_004_preserves_caller_participants.py +0 -0
  1782. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e005_smoke_001_package_composes.py +0 -0
  1783. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e005_smoke_001_plan_cli_appends_acceptance.py +0 -0
  1784. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e005_unit_001_composed_view_modes.py +0 -0
  1785. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e005_unit_001_plan_acceptance_idempotent_append.py +0 -0
  1786. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_integration_001_real_confirm_gate.py +0 -0
  1787. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_smoke_001_cli_authors_interlocking.py +0 -0
  1788. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_smoke_001_cli_writes_validation.py +0 -0
  1789. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_001_emits_validation_and_optional.py +0 -0
  1790. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_001_stamp_composes_digests.py +0 -0
  1791. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_002_missing_train_clean_error.py +0 -0
  1792. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_002_rejects_bad_validation.py +0 -0
  1793. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_003_graph_loader_exposes_validation.py +0 -0
  1794. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e007_unit_003_idempotent_restamp.py +0 -0
  1795. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e008_smoke_001_cli_authors_contract.py +0 -0
  1796. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e008_unit_001_derives_path_id_and_registers.py +0 -0
  1797. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e008_unit_002_rejects_bad_identity_before_write.py +0 -0
  1798. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_e008_unit_003_build_author_fn_dispatches_contract.py +0 -0
  1799. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_k001_integration_001_well_formed_and_not_quarantined.py +0 -0
  1800. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_k001_smoke_001_authored_artifact_not_rejected.py +0 -0
  1801. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_k001_unit_001_no_bypass_marker.py +0 -0
  1802. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p001_smoke_001_cli_extension_default_and_core_flag.py +0 -0
  1803. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p001_unit_001_resolution_order.py +0 -0
  1804. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p001_unit_002_extension_default_core_protected.py +0 -0
  1805. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p001_unit_003_extension_id_namespace.py +0 -0
  1806. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p002_smoke_001_cli_init.py +0 -0
  1807. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p002_unit_001_extension_init_scaffolder.py +0 -0
  1808. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_p002_unit_002_workspace_init_scaffolder.py +0 -0
  1809. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_plan_session_cli_live.py +0 -0
  1810. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_plan_session_machine.py +0 -0
  1811. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_plan_working_context_and_worked_example.py +0 -0
  1812. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_planner_atomization_smoke.py +0 -0
  1813. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_r001_integration_001_driver_resorts_dedups_union.py +0 -0
  1814. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_r001_smoke_001_merge_driver_resolves_concurrent_inserts.py +0 -0
  1815. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_r001_unit_001_gitattributes_registers_driver.py +0 -0
  1816. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/commands/tests/test_wmbt_acceptance_schema_honesty.py +0 -0
  1817. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/acceptance.convention.yaml +0 -0
  1818. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/appendix.convention.yaml +0 -0
  1819. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/artifact-naming.convention.yaml +0 -0
  1820. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/component.convention.yaml +0 -0
  1821. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/coverage.convention.yaml +0 -0
  1822. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/criteria.convention.yaml +0 -0
  1823. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/feature.convention.yaml +0 -0
  1824. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/interface.convention.yaml +0 -0
  1825. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/issue-body.convention.yaml +0 -0
  1826. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.abstract-fields-required.convention.yaml +0 -0
  1827. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.authoring-guidelines.convention.yaml +0 -0
  1828. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.boundary-kind-vocabulary.convention.yaml +0 -0
  1829. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.complete.convention.yaml +0 -0
  1830. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.execution-kind.convention.yaml +0 -0
  1831. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.extraction-no-inference.convention.yaml +0 -0
  1832. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.generator-prompts.convention.yaml +0 -0
  1833. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.given-when-then-structure.convention.yaml +0 -0
  1834. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.harness-vocabulary.convention.yaml +0 -0
  1835. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.harness.convention.yaml +0 -0
  1836. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.hermetic-fake-contract.convention.yaml +0 -0
  1837. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.id-pattern.convention.yaml +0 -0
  1838. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.max-per-wmbt.convention.yaml +0 -0
  1839. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.plane-keywords.convention.yaml +0 -0
  1840. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.route-construction.convention.yaml +0 -0
  1841. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.signal-telemetry-naming.convention.yaml +0 -0
  1842. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.acceptance.urn-generation.convention.yaml +0 -0
  1843. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.appendix.structure.convention.yaml +0 -0
  1844. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.anti-patterns.convention.yaml +0 -0
  1845. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.cardinality-from-aspect.convention.yaml +0 -0
  1846. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.colon-for-hierarchy.convention.yaml +0 -0
  1847. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.contract-file-mapping.convention.yaml +0 -0
  1848. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.depth-guidelines.convention.yaml +0 -0
  1849. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.dot-for-variant.convention.yaml +0 -0
  1850. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.logical-physical-mapping.convention.yaml +0 -0
  1851. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.migration-guide.convention.yaml +0 -0
  1852. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.naming-pattern.convention.yaml +0 -0
  1853. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.path-mirrors-identity.convention.yaml +0 -0
  1854. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.planner-artifacts-use-stable.convention.yaml +0 -0
  1855. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.pluralization.convention.yaml +0 -0
  1856. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.schema-identifier.convention.yaml +0 -0
  1857. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.separator-semantics.convention.yaml +0 -0
  1858. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.theme-first-identity.convention.yaml +0 -0
  1859. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.theme-taxonomy.convention.yaml +0 -0
  1860. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.urn-structure.convention.yaml +0 -0
  1861. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.artifact-naming.validation-rules.convention.yaml +0 -0
  1862. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.contract.registry-coherence.convention.yaml +0 -0
  1863. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.bidirectional-coverage-between-trains.convention.yaml +0 -0
  1864. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.bidirectional-coverage-between-wagons.convention.yaml +0 -0
  1865. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.coverage-graph.convention.yaml +0 -0
  1866. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.every-wmbt-must-be.convention.yaml +0 -0
  1867. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.every-wmbt-must-have.convention.yaml +0 -0
  1868. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.coverage.exception-handling.convention.yaml +0 -0
  1869. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.defaults.convention.yaml +0 -0
  1870. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.harness-templates.convention.yaml +0 -0
  1871. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.metric-mapping.convention.yaml +0 -0
  1872. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.plane-keywords.convention.yaml +0 -0
  1873. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.sequence-routing.convention.yaml +0 -0
  1874. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.criteria.shape.convention.yaml +0 -0
  1875. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.artifact-seeded-naming.convention.yaml +0 -0
  1876. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.estimation.convention.yaml +0 -0
  1877. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.feedback-loop-close-the-loop.convention.yaml +0 -0
  1878. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.feedback-loop-kind.convention.yaml +0 -0
  1879. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.feedback-loop-suppression.convention.yaml +0 -0
  1880. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.footprint-scoring.convention.yaml +0 -0
  1881. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.grouping-strategy.convention.yaml +0 -0
  1882. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.hard-limits.convention.yaml +0 -0
  1883. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.name-is-verb-object.convention.yaml +0 -0
  1884. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.shape.convention.yaml +0 -0
  1885. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.size-max-rule.convention.yaml +0 -0
  1886. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.urn-naming.convention.yaml +0 -0
  1887. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.validation-rules.convention.yaml +0 -0
  1888. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.verb-selection-by-artifact-type.convention.yaml +0 -0
  1889. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.feature.wagon-link.convention.yaml +0 -0
  1890. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.issue-body.dependency-entries-must-be-classified.convention.yaml +0 -0
  1891. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.issue-body.graph-context-required.convention.yaml +0 -0
  1892. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.plan.confirm-before-author.convention.yaml +0 -0
  1893. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.plan.confirm-binds-an-issue.convention.yaml +0 -0
  1894. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.plan.confirm-requires-interlocking-sanity.convention.yaml +0 -0
  1895. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.plan.session-lifecycle.convention.yaml +0 -0
  1896. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.relationship.no-orphan-nodes.convention.yaml +0 -0
  1897. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.steps.sequence.convention.yaml +0 -0
  1898. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.archetype-alignment.convention.yaml +0 -0
  1899. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.canonical-taxonomy.convention.yaml +0 -0
  1900. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.commons-coach-boundary.convention.yaml +0 -0
  1901. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.must-be-canonical.convention.yaml +0 -0
  1902. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.theme-zero-mandatory.convention.yaml +0 -0
  1903. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.theme.urn-namespace-matches.convention.yaml +0 -0
  1904. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.acceptance-commit-failures-covered.convention.yaml +0 -0
  1905. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.acceptances.convention.yaml +0 -0
  1906. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.artifact-flow.convention.yaml +0 -0
  1907. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.categories.convention.yaml +0 -0
  1908. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.dependencies.convention.yaml +0 -0
  1909. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.dispatch-composite-key-exceptional.convention.yaml +0 -0
  1910. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.dispatch-map-is-registry.convention.yaml +0 -0
  1911. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.family-matches-terminal-contract.convention.yaml +0 -0
  1912. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.family.convention.yaml +0 -0
  1913. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.initial-cargo-inputs-declared.convention.yaml +0 -0
  1914. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-does-not-carry-cargo.convention.yaml +0 -0
  1915. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-entrypoint-shape.convention.yaml +0 -0
  1916. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-fragment-acceptance-binding.convention.yaml +0 -0
  1917. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-guard-coverage.convention.yaml +0 -0
  1918. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-guard-grammar.convention.yaml +0 -0
  1919. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-home.convention.yaml +0 -0
  1920. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-message-payload-typed.convention.yaml +0 -0
  1921. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-payload-contract-body-required.convention.yaml +0 -0
  1922. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-payload-contract-registered.convention.yaml +0 -0
  1923. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-projection-equivalence.convention.yaml +0 -0
  1924. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-route-resolution-deterministic.convention.yaml +0 -0
  1925. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-structural-residual-explicit.convention.yaml +0 -0
  1926. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.interlocking-wmbt-surface-or-residual.convention.yaml +0 -0
  1927. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.linearity.convention.yaml +0 -0
  1928. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.naming.convention.yaml +0 -0
  1929. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.participants.convention.yaml +0 -0
  1930. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.production-implementation.convention.yaml +0 -0
  1931. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.registry.convention.yaml +0 -0
  1932. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.scope.convention.yaml +0 -0
  1933. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.sequence.convention.yaml +0 -0
  1934. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.terminal-contract.convention.yaml +0 -0
  1935. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.theme-alignment.convention.yaml +0 -0
  1936. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.theme-orchestrator-urn.convention.yaml +0 -0
  1937. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.theme-ranges.convention.yaml +0 -0
  1938. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.validation-rules.convention.yaml +0 -0
  1939. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.train.variation-strategies.convention.yaml +0 -0
  1940. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.artifact-contracts.convention.yaml +0 -0
  1941. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.complexity-model.convention.yaml +0 -0
  1942. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.coupling-complexity.convention.yaml +0 -0
  1943. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.features-format.convention.yaml +0 -0
  1944. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.features.convention.yaml +0 -0
  1945. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.logical-vs-filesystem-naming.convention.yaml +0 -0
  1946. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.name-is-verb-object.convention.yaml +0 -0
  1947. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.no-consume-cycle.convention.yaml +0 -0
  1948. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.produce-consume-artifacts.convention.yaml +0 -0
  1949. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.refinement-extraction.convention.yaml +0 -0
  1950. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.semantic-coherence.convention.yaml +0 -0
  1951. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.separability.convention.yaml +0 -0
  1952. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.slug-dirname-conversion.convention.yaml +0 -0
  1953. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.telemetry-filesystem.convention.yaml +0 -0
  1954. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.urn-naming.convention.yaml +0 -0
  1955. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wagon.urn.convention.yaml +0 -0
  1956. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.context-clarifier.convention.yaml +0 -0
  1957. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.dimension-selection.convention.yaml +0 -0
  1958. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.direction-selection.convention.yaml +0 -0
  1959. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.filename-pattern.convention.yaml +0 -0
  1960. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.lens-selection.convention.yaml +0 -0
  1961. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.must-have-smoke-acceptance.convention.yaml +0 -0
  1962. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.object-of-control.convention.yaml +0 -0
  1963. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.shape.convention.yaml +0 -0
  1964. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.splitting-rules.convention.yaml +0 -0
  1965. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.statement-template.convention.yaml +0 -0
  1966. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.step-code-vocabulary.convention.yaml +0 -0
  1967. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/nodes/planner.wmbt.urn-naming.convention.yaml +0 -0
  1968. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/plan.convention.yaml +0 -0
  1969. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/relationship.convention.yaml +0 -0
  1970. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/steps.convention.yaml +0 -0
  1971. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/theme.convention.yaml +0 -0
  1972. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/wagon.convention.yaml +0 -0
  1973. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/conventions/wmbt.convention.yaml +0 -0
  1974. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/__init__.py +0 -0
  1975. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/digest.py +0 -0
  1976. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/discovery.py +0 -0
  1977. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/guards.py +0 -0
  1978. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/loader.py +0 -0
  1979. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/models.py +0 -0
  1980. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/projections.py +0 -0
  1981. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/routing.py +0 -0
  1982. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/stamp.py +0 -0
  1983. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/__init__.py +0 -0
  1984. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/_fixtures.py +0 -0
  1985. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_digest.py +0 -0
  1986. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_guards.py +0 -0
  1987. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_loader_and_routing.py +0 -0
  1988. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_projection.py +0 -0
  1989. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_registry_and_backref.py +0 -0
  1990. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_schema.py +0 -0
  1991. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/tests/test_validate.py +0 -0
  1992. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/validate.py +0 -0
  1993. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/interlocking/violations.py +0 -0
  1994. {atdd-4.2.2/src/atdd/planner/validators → atdd-4.2.4/src/atdd/planner/migration/tests}/__init__.py +0 -0
  1995. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/naming.py +0 -0
  1996. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/acceptance.schema.json +0 -0
  1997. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/appendix.schema.json +0 -0
  1998. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/author/convention-node.schema.json +0 -0
  1999. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/author/gate.schema.json +0 -0
  2000. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/author/issue.schema.json +0 -0
  2001. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/author/relationship.schema.json +0 -0
  2002. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/author/scope.schema.json +0 -0
  2003. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/binding-lock.schema.json +0 -0
  2004. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/component.schema.json +0 -0
  2005. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/feature.schema.json +0 -0
  2006. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/registry-index.schema.json +0 -0
  2007. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/substrate-lock.schema.json +0 -0
  2008. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/substrate.schema.json +0 -0
  2009. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/train-interlocking-registry.schema.json +0 -0
  2010. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/wagon.schema.json +0 -0
  2011. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/schemas/wmbt.schema.json +0 -0
  2012. {atdd-4.2.2/src/atdd/planner/validators/tests → atdd-4.2.4/src/atdd/planner/validators}/__init__.py +0 -0
  2013. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_dispatch_registry.py +0 -0
  2014. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_feedback_loop.py +0 -0
  2015. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_meta_walker.py +0 -0
  2016. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_orphan_scan.py +0 -0
  2017. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_smoke_urn.py +0 -0
  2018. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_theme_taxonomy.py +0 -0
  2019. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/_wagon_cohesion.py +0 -0
  2020. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/conftest.py +0 -0
  2021. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_artifact_path_mirrors_identity.py +0 -0
  2022. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_artifact_theme_first_identity.py +0 -0
  2023. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_confirm_interlocking_sanity.py +0 -0
  2024. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_contract_registry_coherence.py +0 -0
  2025. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_custom_themes.py +0 -0
  2026. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_custom_themes_schema.py +0 -0
  2027. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_feature_name_is_verb_object.py +0 -0
  2028. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_issue_body_has_graph_context.py +0 -0
  2029. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_issue_deps_have_classification_tags.py +0 -0
  2030. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_plan_confirm_before_author.py +0 -0
  2031. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_plan_confirm_binds_issue.py +0 -0
  2032. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_plan_cross_refs.py +0 -0
  2033. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_plan_uniqueness.py +0 -0
  2034. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_plan_wagons.py +0 -0
  2035. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_theme_archetype_alignment.py +0 -0
  2036. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_theme_must_be_canonical.py +0 -0
  2037. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_wagon_name_is_verb_object.py +0 -0
  2038. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_wagon_urn_chain.py +0 -0
  2039. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_wmbt_smoke_acceptance_rule_registered.py +0 -0
  2040. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/test_wmbt_vocabulary.py +0 -0
  2041. {atdd-4.2.2/src/atdd/runners → atdd-4.2.4/src/atdd/planner/validators}/tests/__init__.py +0 -0
  2042. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_c008_unit_001_orphan_detection.py +0 -0
  2043. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_check_graph_context_unit.py +0 -0
  2044. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e006_smoke_001_executable_train_rules_bound.py +0 -0
  2045. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e027_smoke_001_audit_covers_all_current_smoke_acceptances.py +0 -0
  2046. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e027_unit_001_audit_doc_exists_with_required_structure.py +0 -0
  2047. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_integration_001_no_false_positive_on_real_entry_point.py +0 -0
  2048. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_smoke_001_validate_planner_clean_after_retrofit.py +0 -0
  2049. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_unit_001_convention_has_real_entry_point_rule.py +0 -0
  2050. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_unit_002_convention_has_producer_only_rule.py +0 -0
  2051. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_unit_003_convention_has_handoff_coverage_rule.py +0 -0
  2052. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_unit_004_validator_detects_fakemultiplexer.py +0 -0
  2053. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_e028_unit_005_validator_detects_stub_popen_command.py +0 -0
  2054. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_feedback_loop_smoke_closes_the_loop_helpers.py +0 -0
  2055. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_l002_smoke_001_meta_walker_zero_hits_on_post_retrofit_repo.py +0 -0
  2056. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_l002_unit_001_meta_walker_function_exists_and_classifies.py +0 -0
  2057. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_m002_unit_001_smoke_audit_has_future_tracking_section.py +0 -0
  2058. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_wagon_cohesion_metric.py +0 -0
  2059. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/planner/validators/tests/test_wmbt_has_smoke_acceptance_helpers.py +0 -0
  2060. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/__init__.py +0 -0
  2061. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/metric_runner.py +0 -0
  2062. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/metrics/__init__.py +0 -0
  2063. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/metrics/hardcoded_theme_map_literal_count.py +0 -0
  2064. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/security_runner.py +0 -0
  2065. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/test_metric_runner.py +0 -0
  2066. {atdd-4.2.2/src/atdd/runtime/agent_control → atdd-4.2.4/src/atdd/runners}/tests/__init__.py +0 -0
  2067. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/tests/test_hardcoded_theme_map_literal_count.py +0 -0
  2068. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/tests/test_metric_runner_unit.py +0 -0
  2069. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/tests/test_security_runner_unit.py +0 -0
  2070. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runners/tests/test_security_validation.py +0 -0
  2071. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/__init__.py +0 -0
  2072. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/__init__.py +0 -0
  2073. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/cmux_launch.py +0 -0
  2074. {atdd-4.2.2/src/atdd/runtime/interlocking → atdd-4.2.4/src/atdd/runtime/agent_control}/tests/__init__.py +0 -0
  2075. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/tests/conftest.py +0 -0
  2076. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/tests/test_e031_unit_003_cmux_launch_argv_carries_scoped_bash_allowlist.py +0 -0
  2077. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/tests/test_e043_unit_001_cmux_native_launch_seed.py +0 -0
  2078. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/agent_control/tests/test_forbidden_launch_flag_guard.py +0 -0
  2079. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/elicit.py +0 -0
  2080. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/interlocking/__init__.py +0 -0
  2081. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/interlocking/runner.py +0 -0
  2082. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/interlocking/station_master.py +0 -0
  2083. {atdd-4.2.2/src/atdd/runtime → atdd-4.2.4/src/atdd/runtime/interlocking}/tests/__init__.py +0 -0
  2084. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/interlocking/tests/test_runner_contract.py +0 -0
  2085. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/multiplexer.py +0 -0
  2086. {atdd-4.2.2/src/atdd/state → atdd-4.2.4/src/atdd/runtime}/tests/__init__.py +0 -0
  2087. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/tests/test_elicit_contract.py +0 -0
  2088. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/runtime/worktree.py +0 -0
  2089. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/__init__.py +0 -0
  2090. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/cli.py +0 -0
  2091. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/db.py +0 -0
  2092. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/hub.py +0 -0
  2093. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/manifest_import.py +0 -0
  2094. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/manifest_projection.py +0 -0
  2095. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/migrations.py +0 -0
  2096. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/paths.py +0 -0
  2097. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/projections.py +0 -0
  2098. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/providers.py +0 -0
  2099. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/store.py +0 -0
  2100. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/sync_cli.py +0 -0
  2101. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/sync_engine.py +0 -0
  2102. {atdd-4.2.2/src/atdd/substrate/binding → atdd-4.2.4/src/atdd/state}/tests/__init__.py +0 -0
  2103. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_build_version_hook.py +0 -0
  2104. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_control_root_scratch.py +0 -0
  2105. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_db.py +0 -0
  2106. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e003_integration_001_worktree_only_rows_and_refs_carried_over.py +0 -0
  2107. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e003_smoke_001_live_consolidation_yields_single_store.py +0 -0
  2108. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e003_unit_001_merge_dedupes_work_items_by_external_ref.py +0 -0
  2109. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e003_unit_002_per_worktree_dbs_deleted_after_merge.py +0 -0
  2110. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e004_smoke_001_write_from_worktree_with_env_lands_in_shared_store.py +0 -0
  2111. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e004_unit_001_override_at_child_worktree_resolves_to_project_root.py +0 -0
  2112. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e004_unit_002_non_worktree_override_honored_verbatim.py +0 -0
  2113. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e005_smoke_001_live_extension_install_lands_in_control_root.py +0 -0
  2114. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e005_unit_001_substrate_project_root_resolves_to_control_root.py +0 -0
  2115. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e006_smoke_001_live_consolidation_yields_single_operational_atdd.py +0 -0
  2116. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e006_unit_001_fold_per_worktree_extensions_and_remove_them.py +0 -0
  2117. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e006_unit_002_control_root_extension_wins_runtime_left_scratch.py +0 -0
  2118. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e058_integration_001_reconcile_then_bump_yields_real_version_and_pending_drain.py +0 -0
  2119. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e058_smoke_001_publish_workflow_resolves_real_version_and_invokes_drain_double_gated.py +0 -0
  2120. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e058_unit_001_change_class_derives_from_conventional_commit_subject.py +0 -0
  2121. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e058_unit_002_set_version_reconciles_current_without_emitting_decision.py +0 -0
  2122. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e059_integration_001_reconcile_bump_over_real_merge_message_yields_3_152_0_not_4_0_0.py +0 -0
  2123. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e059_smoke_001_publish_job_configures_git_identity_so_annotated_tag_creation_succeeds.py +0 -0
  2124. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_e059_unit_001_breaking_change_detected_only_as_a_conventional_commit_footer.py +0 -0
  2125. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_hub.py +0 -0
  2126. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_m002_smoke_001_doctor_flags_and_clears_rogue_store.py +0 -0
  2127. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_m002_unit_001_layout_check_exits_nonzero_and_names_rogue_store.py +0 -0
  2128. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_m002_unit_002_invariant_asserts_behavioral_exit_not_just_wiring.py +0 -0
  2129. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_m003_smoke_001_layout_check_flags_rogue_extensions_live.py +0 -0
  2130. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_m003_unit_001_guard_flags_per_worktree_extensions_not_scratch.py +0 -0
  2131. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_manifest_import.py +0 -0
  2132. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_manifest_projection.py +0 -0
  2133. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_migration_release_kind.py +0 -0
  2134. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_paths.py +0 -0
  2135. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_providers.py +0 -0
  2136. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_reconcile_release_base_integration_001_resolved_base_bumps_above_pypi.py +0 -0
  2137. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_reconcile_release_base_smoke_001_cli_and_publish_yml_wired.py +0 -0
  2138. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_reconcile_release_base_unit_001_semver_max_and_pypi_fallback.py +0 -0
  2139. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_shared_store_layout.py +0 -0
  2140. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_state_cli_live.py +0 -0
  2141. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_store.py +0 -0
  2142. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_sync_engine.py +0 -0
  2143. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_version.py +0 -0
  2144. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_version_cli_live.py +0 -0
  2145. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_version_live_smoke.py +0 -0
  2146. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_work_item_reader.py +0 -0
  2147. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_work_item_reader_all_items.py +0 -0
  2148. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_work_item_reader_cli_accessor.py +0 -0
  2149. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/tests/test_work_item_reader_cold_start_seed.py +0 -0
  2150. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/version.py +0 -0
  2151. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/work_item_reader.py +0 -0
  2152. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/state/work_item_writer.py +0 -0
  2153. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/__init__.py +0 -0
  2154. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/admission.py +0 -0
  2155. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/__init__.py +0 -0
  2156. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/binder.py +0 -0
  2157. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/commands.py +0 -0
  2158. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/composer.py +0 -0
  2159. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/lock_loader.py +0 -0
  2160. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/plan.py +0 -0
  2161. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/resolver.py +0 -0
  2162. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/router.py +0 -0
  2163. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/schemas.py +0 -0
  2164. {atdd-4.2.2/src/atdd/substrate → atdd-4.2.4/src/atdd/substrate/binding}/tests/__init__.py +0 -0
  2165. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/conftest.py +0 -0
  2166. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/fixtures/crashing_impl/test_gate.py +0 -0
  2167. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/fixtures/failing_impl/test_gate.py +0 -0
  2168. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/fixtures/passing_impl/test_gate.py +0 -0
  2169. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/fixtures/provider/adapter/run.py +0 -0
  2170. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_c001_smoke_001_tamper_refused.py +0 -0
  2171. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_c001_unit_001_digest_mismatch_refused.py +0 -0
  2172. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_c002_smoke_001_real_contract_compatible.py +0 -0
  2173. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_c002_unit_001_contract_mismatch_refused.py +0 -0
  2174. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_d001_smoke_001_schema_shipped.py +0 -0
  2175. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_d001_unit_001_binding_plan_schema.py +0 -0
  2176. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_e001_smoke_001_real_pytest_spawn.py +0 -0
  2177. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_e001_unit_001_spawn_captures_violations.py +0 -0
  2178. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_e002_smoke_001_real_bound_gate_blocks.py +0 -0
  2179. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_e002_unit_001_shadow_and_gate.py +0 -0
  2180. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_l001_smoke_001_load_real_substrate.py +0 -0
  2181. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_l001_unit_001_load_enabled_only.py +0 -0
  2182. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_m001_smoke_001_real_crash_falls_back.py +0 -0
  2183. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/binding/tests/test_m001_unit_001_fail_safe_to_legacy.py +0 -0
  2184. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/commands.py +0 -0
  2185. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/installer.py +0 -0
  2186. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/registry.py +0 -0
  2187. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/resolver.py +0 -0
  2188. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/schemas.py +0 -0
  2189. {atdd-4.2.2/src/atdd/tester → atdd-4.2.4/src/atdd}/substrate/tests/__init__.py +0 -0
  2190. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/conftest.py +0 -0
  2191. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/fixtures/poisoned_extension/implementations/poison/poison.py +0 -0
  2192. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c001_smoke_001_add_does_not_execute.py +0 -0
  2193. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c001_unit_001_no_runtime_execution.py +0 -0
  2194. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c002_smoke_001_ambiguous_add_refused.py +0 -0
  2195. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c002_unit_001_ambiguous_alias_refusal.py +0 -0
  2196. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c003_smoke_001_add_validates_cli.py +0 -0
  2197. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c003_unit_001_admission_validates.py +0 -0
  2198. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c004_smoke_001_remove_cli.py +0 -0
  2199. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c004_unit_001_remove_dependency_refusal.py +0 -0
  2200. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c005_smoke_001_flat_verb_deprecation_warns.py +0 -0
  2201. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_c006_smoke_001_readme_documents_grouped.py +0 -0
  2202. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_d001_smoke_001_schemas_shipped.py +0 -0
  2203. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_d001_unit_001_substrate_schemas.py +0 -0
  2204. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_e001_smoke_001_add_list_roundtrip.py +0 -0
  2205. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_e001_unit_001_install_and_lock.py +0 -0
  2206. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_e002_smoke_001_grouped_add_list_parity.py +0 -0
  2207. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_l001_smoke_001_search_cli.py +0 -0
  2208. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_l001_unit_001_registry_search.py +0 -0
  2209. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/substrate/tests/test_l002_smoke_001_substrate_help_lists_five.py +0 -0
  2210. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/__init__.py +0 -0
  2211. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/acceptance-measurability.recipe.yaml +0 -0
  2212. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/acceptance-phase.recipe.yaml +0 -0
  2213. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/acceptance-rule-block.recipe.yaml +0 -0
  2214. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/acceptance-test-headers.recipe.yaml +0 -0
  2215. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/acceptance-violation.convention.yaml +0 -0
  2216. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/artifact.convention.yaml +0 -0
  2217. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/contract.convention.yaml +0 -0
  2218. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/coverage.convention.yaml +0 -0
  2219. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/filename.convention.yaml +0 -0
  2220. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/hermetic-integration-contract.recipe.yaml +0 -0
  2221. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/hermetic-live-smoke-pairing.recipe.yaml +0 -0
  2222. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/live-smoke-evidence.recipe.yaml +0 -0
  2223. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/live-smoke-execution.recipe.yaml +0 -0
  2224. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/metric-implementation.recipe.yaml +0 -0
  2225. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/migration.convention.yaml +0 -0
  2226. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/red.convention.yaml +0 -0
  2227. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/routing.convention.yaml +0 -0
  2228. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/security-acceptance-binding.recipe.yaml +0 -0
  2229. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/security.convention.yaml +0 -0
  2230. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/smoke.convention.yaml +0 -0
  2231. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/telemetry.convention.yaml +0 -0
  2232. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/test-isolation.convention.yaml +0 -0
  2233. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/conventions/train.convention.yaml +0 -0
  2234. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/a11y.tmpl.json +0 -0
  2235. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/artifact.schema.json +0 -0
  2236. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/contract.schema.json +0 -0
  2237. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/contract.tmpl.json +0 -0
  2238. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/db.tmpl.json +0 -0
  2239. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/e2e.tmpl.json +0 -0
  2240. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/edge_function.tmpl.json +0 -0
  2241. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/event.tmpl.json +0 -0
  2242. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/http.tmpl.json +0 -0
  2243. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/job.tmpl.json +0 -0
  2244. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/load.tmpl.json +0 -0
  2245. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/locale_manifest.schema.json +0 -0
  2246. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/metric.tmpl.json +0 -0
  2247. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/pack.schema.json +0 -0
  2248. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/realtime.tmpl.json +0 -0
  2249. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/rls.tmpl.json +0 -0
  2250. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/script.tmpl.json +0 -0
  2251. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/sec.tmpl.json +0 -0
  2252. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/storage.tmpl.json +0 -0
  2253. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/telemetry.schema.json +0 -0
  2254. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/telemetry_tracking_manifest.schema.json +0 -0
  2255. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/test_filename.schema.json +0 -0
  2256. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/test_intent.schema.json +0 -0
  2257. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/train-render-harness-result.schema.json +0 -0
  2258. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/unit.tmpl.json +0 -0
  2259. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/visual.tmpl.json +0 -0
  2260. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/schemas/ws.tmpl.json +0 -0
  2261. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/substrate/__init__.py +0 -0
  2262. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/substrate/plugin.py +0 -0
  2263. {atdd-4.2.2/src/atdd/tester/utils → atdd-4.2.4/src/atdd/tester/substrate/tests}/__init__.py +0 -0
  2264. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/substrate/tests/test_plugin_integration.py +0 -0
  2265. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/substrate/tests/test_plugin_unit.py +0 -0
  2266. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/substrate/tests/test_security_plugin_integration.py +0 -0
  2267. {atdd-4.2.2/src/atdd/tester/validators → atdd-4.2.4/src/atdd/tester/utils}/__init__.py +0 -0
  2268. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/utils/filename.py +0 -0
  2269. {atdd-4.2.2/src/atdd/tester/validators/tests → atdd-4.2.4/src/atdd/tester/validators}/__init__.py +0 -0
  2270. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/_acceptance_walker.py +0 -0
  2271. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/_no_polluting_patterns.py +0 -0
  2272. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/cleanup_duplicate_headers.py +0 -0
  2273. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/cleanup_duplicate_headers_v2.py +0 -0
  2274. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/conftest.py +0 -0
  2275. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/coverage_gap_report.py +0 -0
  2276. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fix_dual_ac_references.py +0 -0
  2277. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fixtures/phase_dispatch/mixed_phases.yaml +0 -0
  2278. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fixtures/train_renders_content/fail_empty/harness_output.json +0 -0
  2279. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fixtures/train_renders_content/fail_stub/harness_output.json +0 -0
  2280. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fixtures/train_renders_content/harness_error/harness_output.json +0 -0
  2281. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/fixtures/train_renders_content/pass/harness_output.json +0 -0
  2282. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/remove_duplicate_lines.py +0 -0
  2283. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_acceptance_disposition.py +0 -0
  2284. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_acceptance_measurable.py +0 -0
  2285. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_acceptance_phase.py +0 -0
  2286. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_acceptance_urn_filename_mapping.py +0 -0
  2287. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_artifact_naming_category.py +0 -0
  2288. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_contract_schema_compliance.py +0 -0
  2289. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_contract_security.py +0 -0
  2290. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_contracts_structure.py +0 -0
  2291. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_coverage_adequacy.py +0 -0
  2292. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_dual_ac_reference.py +0 -0
  2293. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_fixture_validity.py +0 -0
  2294. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_hermetic_integration_contract.py +0 -0
  2295. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_hermetic_live_smoke_pairing.py +0 -0
  2296. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_isolation.py +0 -0
  2297. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_live_smoke_execution.py +0 -0
  2298. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_locale_coverage.py +0 -0
  2299. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_metric_implementation.py +0 -0
  2300. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_migration_coverage.py +0 -0
  2301. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_migration_criteria.py +0 -0
  2302. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_migration_generation.py +0 -0
  2303. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_no_polluting_patterns.py +0 -0
  2304. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_presentation_has_behavioral_test.py +0 -0
  2305. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_presentation_smoke_coverage.py +0 -0
  2306. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_python_test_naming.py +0 -0
  2307. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_red_layer_validation.py +0 -0
  2308. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_red_python_layer_structure.py +0 -0
  2309. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_red_supabase_layer_structure.py +0 -0
  2310. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_repo_validator_binding.py +0 -0
  2311. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_security_ref_binding.py +0 -0
  2312. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_smoke_no_collaborator_substitution.py +0 -0
  2313. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_telemetry_structure.py +0 -0
  2314. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/test_train_renders_content.py +0 -0
  2315. {atdd-4.2.2/src/atdd → atdd-4.2.4/src/atdd/tester/validators}/tests/__init__.py +0 -0
  2316. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_acceptance_violation_fixtures.py +0 -0
  2317. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_hermetic_integration_fixtures.py +0 -0
  2318. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_live_smoke_constant_evidence_fixtures.py +0 -0
  2319. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_live_smoke_execution_fixtures.py +0 -0
  2320. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_owning_issue_phase_store_only.py +0 -0
  2321. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_phase_aware_validator_binding.py +0 -0
  2322. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tester/validators/tests/test_smoke_no_collaborator_substitution_helpers.py +0 -0
  2323. {atdd-4.2.2/src/atdd/train → atdd-4.2.4/src/atdd}/tests/__init__.py +0 -0
  2324. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tests/test_Y005_smoke_upgrade_messaging_install_method_aware.py +0 -0
  2325. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tests/test_Y005_unit_upgrade_messaging_install_method_aware.py +0 -0
  2326. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/tests/test_version_check.py +0 -0
  2327. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/__init__.py +0 -0
  2328. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/events.py +0 -0
  2329. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/issue_runner.py +0 -0
  2330. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/persistence.py +0 -0
  2331. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/resume_cli.py +0 -0
  2332. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/runner_iface.py +0 -0
  2333. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/runners/__init__.py +0 -0
  2334. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/runners/jsonl.py +0 -0
  2335. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/tests/test_persistence_get_issue_store.py +0 -0
  2336. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/types.py +0 -0
  2337. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/train/wave_runner.py +0 -0
  2338. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/__init__.py +0 -0
  2339. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/__init__.py +0 -0
  2340. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/__init__.py +0 -0
  2341. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/assertions.py +0 -0
  2342. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/convention_loader.py +0 -0
  2343. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/evaluators.py +0 -0
  2344. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/node_index.py +0 -0
  2345. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/package_index.py +0 -0
  2346. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/report_adapter.py +0 -0
  2347. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/rule_index.py +0 -0
  2348. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/sentinels.py +0 -0
  2349. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/_support/template_contract.py +0 -0
  2350. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/acyclicity/__init__.py +0 -0
  2351. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/acyclicity/_parity.py +0 -0
  2352. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/acyclicity/archetype.py +0 -0
  2353. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/acyclicity/fixtures.py +0 -0
  2354. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/acyclicity/test_no_cross_wagon_consume_cycle.py +0 -0
  2355. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/__init__.py +0 -0
  2356. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/archetype.py +0 -0
  2357. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/fixtures.py +0 -0
  2358. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_rule_validator_binding.py +0 -0
  2359. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/binding/test_validator_binding_bidirectional.py +0 -0
  2360. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/boundary/__init__.py +0 -0
  2361. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/boundary/_parity.py +0 -0
  2362. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/boundary/archetype.py +0 -0
  2363. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/boundary/fixtures.py +0 -0
  2364. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/boundary/test_theme_commons_coach_boundary.py +0 -0
  2365. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/__init__.py +0 -0
  2366. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/_parity.py +0 -0
  2367. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/archetype.py +0 -0
  2368. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/fixtures.py +0 -0
  2369. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_contract_telemetry_traceability.py +0 -0
  2370. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_cross_language_consistency.py +0 -0
  2371. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_green_cross_stack_layer_names.py +0 -0
  2372. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_review_report_severity_matches_registry.py +0 -0
  2373. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_rule_id_registry_coherence.py +0 -0
  2374. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_theme_archetype_alignment.py +0 -0
  2375. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_theme_urn_namespace_matches.py +0 -0
  2376. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coherence/test_wmbt_consistency.py +0 -0
  2377. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/composition/__init__.py +0 -0
  2378. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/composition/archetype.py +0 -0
  2379. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/composition/fixtures.py +0 -0
  2380. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/composition/test_package_data_ships_convention_nodes.py +0 -0
  2381. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/conftest.py +0 -0
  2382. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/__init__.py +0 -0
  2383. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/_parity.py +0 -0
  2384. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/archetype.py +0 -0
  2385. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/fixtures.py +0 -0
  2386. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_composition_root_completeness.py +0 -0
  2387. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_coverage_adequacy.py +0 -0
  2388. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_dead_code_python.py +0 -0
  2389. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_dead_code_typescript.py +0 -0
  2390. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_design_hierarchy_coverage.py +0 -0
  2391. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_hierarchy_coverage.py +0 -0
  2392. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_migration_coverage.py +0 -0
  2393. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_no_orphan_nodes.py +0 -0
  2394. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_presentation_ratchet_requires_smoke.py +0 -0
  2395. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_smoke_coverage.py +0 -0
  2396. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_station_master_composition.py +0 -0
  2397. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_train_completeness.py +0 -0
  2398. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_train_e2e_existence.py +0 -0
  2399. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_train_registry_completeness.py +0 -0
  2400. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_train_route_smoke_coverage.py +0 -0
  2401. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_wheel_fixture_completeness.py +0 -0
  2402. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/coverage/test_wmbt_has_smoke_acceptance.py +0 -0
  2403. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/__init__.py +0 -0
  2404. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/archetype.py +0 -0
  2405. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/fixtures.py +0 -0
  2406. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_acceptance_urn_grammar.py +0 -0
  2407. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_artifact_naming_grammar.py +0 -0
  2408. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_contracts_path_grammar.py +0 -0
  2409. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_freedom_layer_bash_scope_grammar.py +0 -0
  2410. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_init_file_urn_grammar.py +0 -0
  2411. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_python_test_naming.py +0 -0
  2412. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_red_layer_structure.py +0 -0
  2413. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_red_python_layer_structure.py +0 -0
  2414. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_red_supabase_layer_structure.py +0 -0
  2415. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_telemetry_naming_grammar.py +0 -0
  2416. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_theme_must_be_canonical.py +0 -0
  2417. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_train_backend_e2e_naming.py +0 -0
  2418. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_train_urn_grammar.py +0 -0
  2419. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_typescript_test_naming.py +0 -0
  2420. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_urn_header_spec_v3.py +0 -0
  2421. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/grammar/test_wmbt_vocabulary.py +0 -0
  2422. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/__init__.py +0 -0
  2423. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/_parity.py +0 -0
  2424. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/archetype.py +0 -0
  2425. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/fixtures.py +0 -0
  2426. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_acceptance_disposition_absent.py +0 -0
  2427. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_bypass_inventory.py +0 -0
  2428. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_freedom_layer_bash_scope.py +0 -0
  2429. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_live_smoke_no_self_skip.py +0 -0
  2430. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_no_polluting_patterns.py +0 -0
  2431. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_no_stale_suppressions.py +0 -0
  2432. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_smoke_no_collaborator_substitution.py +0 -0
  2433. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/policy/test_smoke_synthetic_fixture_bypass.py +0 -0
  2434. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/__init__.py +0 -0
  2435. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/archetype.py +0 -0
  2436. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/conftest.py +0 -0
  2437. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/fixtures.py +0 -0
  2438. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_acceptance_measurable.py +0 -0
  2439. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_acceptance_phase_declared.py +0 -0
  2440. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_claude_md_references_emergency_doc.py +0 -0
  2441. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_claude_md_retains_lifecycle_pointers.py +0 -0
  2442. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_contract_security_requirements.py +0 -0
  2443. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_dual_ac_reference.py +0 -0
  2444. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_feedback_loop_close_the_loop.py +0 -0
  2445. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_frontend_composition_root.py +0 -0
  2446. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_green_layer_dependency_rules.py +0 -0
  2447. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_green_python_four_layer.py +0 -0
  2448. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_green_supabase_four_layer.py +0 -0
  2449. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_hermetic_fake_contract_declared.py +0 -0
  2450. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_hermetic_live_smoke_pairing.py +0 -0
  2451. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_phase_machine_init_precommit_gate.py +0 -0
  2452. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_rule_has_disposition.py +0 -0
  2453. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_rule_has_fix_hint.py +0 -0
  2454. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_theme_zero_mandatory.py +0 -0
  2455. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_train_infrastructure_present.py +0 -0
  2456. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_typescript_test_structure.py +0 -0
  2457. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/presence/test_wagon_trains_export_shape.py +0 -0
  2458. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/__init__.py +0 -0
  2459. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/_parity.py +0 -0
  2460. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/archetype.py +0 -0
  2461. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/fixtures.py +0 -0
  2462. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_contract_consumer_resolution.py +0 -0
  2463. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_draft_wagon_registry.py +0 -0
  2464. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_metric_implementation_resolves.py +0 -0
  2465. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_plan_cross_refs.py +0 -0
  2466. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_plan_urn_resolution.py +0 -0
  2467. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_route_train_wagon_chain.py +0 -0
  2468. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_security_ref_resolution.py +0 -0
  2469. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_urn_traceability.py +0 -0
  2470. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/resolution/test_wagon_urn_chain.py +0 -0
  2471. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/__init__.py +0 -0
  2472. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/archetype.py +0 -0
  2473. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/fixtures.py +0 -0
  2474. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/test_contract_schema_conformance.py +0 -0
  2475. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/test_dispatch_map_is_registry.py +0 -0
  2476. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/test_fixture_schema_conformance.py +0 -0
  2477. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/test_plan_wagons.py +0 -0
  2478. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/schema/test_train_yaml_render_metadata.py +0 -0
  2479. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/__init__.py +0 -0
  2480. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/archetype.py +0 -0
  2481. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/fixtures.py +0 -0
  2482. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_claude_md_line_budget.py +0 -0
  2483. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_complexity_python.py +0 -0
  2484. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_complexity_typescript.py +0 -0
  2485. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_hook_size_limit.py +0 -0
  2486. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_quality_metrics_python.py +0 -0
  2487. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_quality_metrics_typescript.py +0 -0
  2488. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_query_count_nplus1.py +0 -0
  2489. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_wagon_coupling_complexity.py +0 -0
  2490. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/sizing/test_wagon_separability.py +0 -0
  2491. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/__init__.py +0 -0
  2492. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/conftest.py +0 -0
  2493. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/graph_build_counter.py +0 -0
  2494. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e001_registry_shape.py +0 -0
  2495. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e002_registry_archetype_roundtrip.py +0 -0
  2496. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e003_template_contract_fields.py +0 -0
  2497. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e004_family_folder_files.py +0 -0
  2498. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e005_legacy_validators_unmoved.py +0 -0
  2499. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e010_p0_variants_built.py +0 -0
  2500. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e011_variant_metadata.py +0 -0
  2501. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e013_no_legacy_import.py +0 -0
  2502. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e014_parallel_suite.py +0 -0
  2503. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e015_no_persona_folder_variant.py +0 -0
  2504. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e018_conventions_authoritative.py +0 -0
  2505. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e032_session_graph_smoke.py +0 -0
  2506. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_e032_single_graph_build.py +0 -0
  2507. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_foundation_official_path.py +0 -0
  2508. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_gates_1211.py +0 -0
  2509. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/tests/test_y003_sweep_coverage_guards.py +0 -0
  2510. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/uniqueness/__init__.py +0 -0
  2511. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/uniqueness/archetype.py +0 -0
  2512. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/uniqueness/fixtures.py +0 -0
  2513. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/uniqueness/test_plan_uniqueness.py +0 -0
  2514. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/conventions/uniqueness/test_rule_id_uniqueness.py +0 -0
  2515. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/validators/emit.py +0 -0
  2516. {atdd-4.2.2 → atdd-4.2.4}/src/atdd/version_check.py +0 -0
  2517. {atdd-4.2.2 → atdd-4.2.4}/src/atdd.egg-info/dependency_links.txt +0 -0
  2518. {atdd-4.2.2 → atdd-4.2.4}/src/atdd.egg-info/entry_points.txt +0 -0
  2519. {atdd-4.2.2 → atdd-4.2.4}/src/atdd.egg-info/requires.txt +0 -0
  2520. {atdd-4.2.2 → atdd-4.2.4}/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: 4.2.2
3
+ Version: 4.2.4
4
4
  Summary: ATDD Platform - Acceptance Test Driven Development toolkit
5
5
  License: MIT
6
6
  Project-URL: Homepage, https://github.com/afokapu/atdd
@@ -79,6 +79,10 @@ exclude = ["atdd.*.validators.fixtures*"]
79
79
  # protocol-flow edges in consumer repos (graph/ is not a package; the glob
80
80
  # reaches into it from the atdd.coach package root).
81
81
  "atdd.coach" = ["graph/*.yaml"]
82
+ # #1421: the URN grammar convention (urn_grammar.yaml) is read at import by the
83
+ # URNGrammar engine, so it must ship in the wheel or a non-editable install
84
+ # fails on first import.
85
+ "atdd.coach.utils.graph" = ["*.yaml"]
82
86
  "atdd.planner.conventions" = ["*.yaml", "nodes/*.yaml"]
83
87
  "atdd.planner.schemas" = ["*.json", "author/*.json"]
84
88
  "atdd.tester.conventions" = ["*.yaml"]
@@ -69,12 +69,12 @@ from atdd.coach.utils.theme_map import get_theme_map
69
69
 
70
70
  _logger = logging.getLogger(__name__)
71
71
 
72
- # Import URNBuilder for URN generation (following conventions)
72
+ # Import URNGrammar for URN generation (following conventions)
73
73
  try:
74
- from atdd.coach.utils.graph.urn import URNBuilder
74
+ from atdd.coach.utils.graph.urn import URNGrammar
75
75
  except ImportError:
76
- # Fallback if URNBuilder not available
77
- class URNBuilder:
76
+ # Fallback if URNGrammar not available
77
+ class URNGrammar:
78
78
  @staticmethod
79
79
  def test(wagon: str, file: str, func: str) -> str:
80
80
  return f"test:{wagon}:{file}::{func}"
@@ -1,78 +1,4 @@
1
1
  edges:
2
- # Foundational verb-object naming enforcement (#1276)
3
- - confidence: 1.0
4
- constraint: mandatory
5
- control: internal
6
- foundation: finish_to_start
7
- reason: the verb-object name rule enforces the verb-object preference of the wagon URN grammar
8
- source_ref: planner.wagon.name-is-verb-object
9
- strength: important
10
- target_ref: planner.wagon.urn-naming
11
- type: refines
12
- - confidence: 1.0
13
- constraint: mandatory
14
- control: internal
15
- foundation: start_to_start
16
- reason: the wagon name rule draws its leading-verb lexicon from the verb-selection table
17
- source_ref: planner.wagon.name-is-verb-object
18
- strength: important
19
- target_ref: planner.feature.verb-selection-by-artifact-type
20
- type: requires
21
- - confidence: 1.0
22
- constraint: mandatory
23
- control: internal
24
- foundation: finish_to_start
25
- reason: the verb-object name rule enforces the verb-object preference of the feature URN grammar
26
- source_ref: planner.feature.name-is-verb-object
27
- strength: important
28
- target_ref: planner.feature.urn-naming
29
- type: refines
30
- - confidence: 1.0
31
- constraint: mandatory
32
- control: internal
33
- foundation: start_to_start
34
- reason: the feature name rule draws its leading-verb lexicon from the verb-selection table
35
- source_ref: planner.feature.name-is-verb-object
36
- strength: important
37
- target_ref: planner.feature.verb-selection-by-artifact-type
38
- type: requires
39
- # Foundational artifact/contract naming enforcement (#1329)
40
- - confidence: 1.0
41
- constraint: mandatory
42
- control: internal
43
- foundation: finish_to_start
44
- reason: the theme-first identity rule enforces the artifact naming-pattern grammar at confirm
45
- source_ref: planner.artifact-naming.theme-first-identity
46
- strength: important
47
- target_ref: planner.artifact-naming.naming-pattern
48
- type: refines
49
- - confidence: 1.0
50
- constraint: mandatory
51
- control: internal
52
- foundation: start_to_start
53
- reason: the theme-first identity rule resolves its allowed themes from the same canonical theme map
54
- source_ref: planner.artifact-naming.theme-first-identity
55
- strength: important
56
- target_ref: planner.theme.must-be-canonical
57
- type: requires
58
- - confidence: 1.0
59
- constraint: mandatory
60
- control: internal
61
- foundation: finish_to_start
62
- reason: the path-mirrors-identity rule enforces the contract-file-mapping algorithm at confirm
63
- source_ref: planner.artifact-naming.path-mirrors-identity
64
- strength: important
65
- target_ref: planner.artifact-naming.contract-file-mapping
66
- type: refines
67
- - confidence: 1.0
68
- constraint: mandatory
69
- control: internal
70
- foundation: finish_to_start
71
- reason: a contract path can only mirror an identity that is a valid theme-first identity
72
- source_ref: planner.artifact-naming.path-mirrors-identity
73
- strength: important
74
- target_ref: planner.artifact-naming.theme-first-identity
75
- type: requires
76
2
  - confidence: 1.0
77
3
  constraint: discretionary
78
4
  control: internal
@@ -575,6 +501,15 @@ edges:
575
501
  strength: important
576
502
  target_ref: coder.state-store.no-raw-sql-at-call-sites
577
503
  type: runs_alongside
504
+ - confidence: 1.0
505
+ constraint: mandatory
506
+ control: internal
507
+ foundation: start_to_start
508
+ reason: "both define what the operational State Store layer may hold \u2014 the SoT boundary runs alongside the foundational layering rule"
509
+ source_ref: coder.state-store.operational-vs-definition-sot
510
+ strength: important
511
+ target_ref: coder.state-store.core-imports-no-providers
512
+ type: runs_alongside
578
513
  - confidence: 1.0
579
514
  constraint: mandatory
580
515
  control: internal
@@ -899,6 +834,24 @@ edges:
899
834
  strength: important
900
835
  target_ref: planner.artifact-naming.theme-taxonomy
901
836
  type: requires
837
+ - confidence: 1.0
838
+ constraint: mandatory
839
+ control: internal
840
+ foundation: finish_to_start
841
+ reason: the path-mirrors-identity rule enforces the contract-file-mapping algorithm at confirm
842
+ source_ref: planner.artifact-naming.path-mirrors-identity
843
+ strength: important
844
+ target_ref: planner.artifact-naming.contract-file-mapping
845
+ type: refines
846
+ - confidence: 1.0
847
+ constraint: mandatory
848
+ control: internal
849
+ foundation: finish_to_start
850
+ reason: a contract path can only mirror an identity that is a valid theme-first identity
851
+ source_ref: planner.artifact-naming.path-mirrors-identity
852
+ strength: important
853
+ target_ref: planner.artifact-naming.theme-first-identity
854
+ type: requires
902
855
  - confidence: 1.0
903
856
  constraint: mandatory
904
857
  control: internal
@@ -926,6 +879,24 @@ edges:
926
879
  strength: important
927
880
  target_ref: planner.artifact-naming.urn-structure
928
881
  type: runs_alongside
882
+ - confidence: 1.0
883
+ constraint: mandatory
884
+ control: internal
885
+ foundation: finish_to_start
886
+ reason: the theme-first identity rule enforces the artifact naming-pattern grammar at confirm
887
+ source_ref: planner.artifact-naming.theme-first-identity
888
+ strength: important
889
+ target_ref: planner.artifact-naming.naming-pattern
890
+ type: refines
891
+ - confidence: 1.0
892
+ constraint: mandatory
893
+ control: internal
894
+ foundation: start_to_start
895
+ reason: the theme-first identity rule resolves its allowed themes from the same canonical theme map
896
+ source_ref: planner.artifact-naming.theme-first-identity
897
+ strength: important
898
+ target_ref: planner.theme.must-be-canonical
899
+ type: requires
929
900
  - confidence: 1.0
930
901
  constraint: mandatory
931
902
  control: internal
@@ -944,6 +915,15 @@ edges:
944
915
  strength: important
945
916
  target_ref: planner.artifact-naming.naming-pattern
946
917
  type: requires
918
+ - confidence: 1.0
919
+ constraint: mandatory
920
+ control: internal
921
+ foundation: finish_to_start
922
+ reason: contract coherence is checked over the produce/consume artifact shape it constrains (#1332)
923
+ source_ref: planner.contract.registry-coherence
924
+ strength: important
925
+ target_ref: planner.wagon.produce-consume-artifacts
926
+ type: requires
947
927
  - confidence: 1.0
948
928
  constraint: discretionary
949
929
  control: internal
@@ -1187,6 +1167,24 @@ edges:
1187
1167
  strength: minor
1188
1168
  target_ref: planner.feature.size-max-rule
1189
1169
  type: runs_alongside
1170
+ - confidence: 1.0
1171
+ constraint: mandatory
1172
+ control: internal
1173
+ foundation: finish_to_start
1174
+ reason: the verb-object name rule enforces the verb-object preference of the feature URN grammar
1175
+ source_ref: planner.feature.name-is-verb-object
1176
+ strength: important
1177
+ target_ref: planner.feature.urn-naming
1178
+ type: refines
1179
+ - confidence: 1.0
1180
+ constraint: mandatory
1181
+ control: internal
1182
+ foundation: start_to_start
1183
+ reason: the feature name rule draws its leading-verb lexicon from the verb-selection table
1184
+ source_ref: planner.feature.name-is-verb-object
1185
+ strength: important
1186
+ target_ref: planner.feature.verb-selection-by-artifact-type
1187
+ type: requires
1190
1188
  - confidence: 1.0
1191
1189
  constraint: mandatory
1192
1190
  control: internal
@@ -1404,15 +1402,6 @@ edges:
1404
1402
  strength: minor
1405
1403
  target_ref: planner.train.registry
1406
1404
  type: runs_alongside
1407
- - confidence: 1.0
1408
- constraint: mandatory
1409
- control: internal
1410
- foundation: finish_to_start
1411
- reason: the category digit is part of the numbering scheme
1412
- source_ref: planner.train.categories
1413
- strength: important
1414
- target_ref: planner.train.numbering
1415
- type: requires
1416
1405
  - confidence: 1.0
1417
1406
  constraint: discretionary
1418
1407
  control: external
@@ -1561,22 +1550,19 @@ edges:
1561
1550
  constraint: mandatory
1562
1551
  control: internal
1563
1552
  foundation: finish_to_start
1564
- reason: registry membership of a payload contract presupposes a typed payload
1553
+ reason: "binding an interlocking payload.contract to an authored/registered contract (#1314 item E) ties the route/interlocking model to the contract layer \u2014 the declared identity must be a registered contract, resolved via the contract identity->file mapping the contract layer maintains"
1565
1554
  source_ref: planner.train.interlocking-payload-contract-registered
1566
1555
  strength: important
1567
- target_ref: planner.train.interlocking-message-payload-typed
1556
+ target_ref: planner.artifact-naming.contract-file-mapping
1568
1557
  type: requires
1569
1558
  - confidence: 1.0
1570
1559
  constraint: mandatory
1571
1560
  control: internal
1572
1561
  foundation: finish_to_start
1573
- reason: binding an interlocking payload.contract to an authored/registered contract
1574
- (#1314 item E) ties the route/interlocking model to the contract layer — the
1575
- declared identity must be a registered contract, resolved via the contract
1576
- identity->file mapping the contract layer maintains
1562
+ reason: registry membership of a payload contract presupposes a typed payload
1577
1563
  source_ref: planner.train.interlocking-payload-contract-registered
1578
1564
  strength: important
1579
- target_ref: planner.artifact-naming.contract-file-mapping
1565
+ target_ref: planner.train.interlocking-message-payload-typed
1580
1566
  type: requires
1581
1567
  - confidence: 1.0
1582
1568
  constraint: mandatory
@@ -1632,15 +1618,6 @@ edges:
1632
1618
  strength: critical
1633
1619
  target_ref: planner.train.sequence
1634
1620
  type: runs_alongside
1635
- - confidence: 1.0
1636
- constraint: mandatory
1637
- control: internal
1638
- foundation: finish_to_start
1639
- reason: the train_id name follows the numbering prefix
1640
- source_ref: planner.train.naming
1641
- strength: important
1642
- target_ref: planner.train.numbering
1643
- type: requires
1644
1621
  - confidence: 0.9
1645
1622
  constraint: discretionary
1646
1623
  control: internal
@@ -1650,6 +1627,15 @@ edges:
1650
1627
  strength: minor
1651
1628
  target_ref: planner.train.artifact-flow
1652
1629
  type: runs_alongside
1630
+ - confidence: 1.0
1631
+ constraint: mandatory
1632
+ control: internal
1633
+ foundation: finish_to_start
1634
+ reason: the subject-bucketed train registry can only key a typed train:<subject>:<slug> entry on a subject already registered in plan/_subjects.yaml
1635
+ source_ref: planner.train.registry
1636
+ strength: important
1637
+ target_ref: planner.subject.invariants
1638
+ type: requires
1653
1639
  - confidence: 1.0
1654
1640
  constraint: mandatory
1655
1641
  control: internal
@@ -1726,10 +1712,10 @@ edges:
1726
1712
  constraint: mandatory
1727
1713
  control: internal
1728
1714
  foundation: finish_to_start
1729
- reason: the orchestrator URN extends the train URN with a theme prefix
1715
+ reason: the train URN carried on a theme orchestrator must reference a train registered in the train registry (registry entry + spec file)
1730
1716
  source_ref: planner.train.theme-orchestrator-urn
1731
- strength: minor
1732
- target_ref: planner.train.urn-naming
1717
+ strength: important
1718
+ target_ref: planner.train.registry
1733
1719
  type: requires
1734
1720
  - confidence: 1.0
1735
1721
  constraint: mandatory
@@ -1740,33 +1726,6 @@ edges:
1740
1726
  strength: minor
1741
1727
  target_ref: planner.train.categories
1742
1728
  type: requires
1743
- - confidence: 1.0
1744
- constraint: mandatory
1745
- control: internal
1746
- foundation: finish_to_start
1747
- reason: the theme digit is part of the numbering scheme
1748
- source_ref: planner.train.theme-ranges
1749
- strength: important
1750
- target_ref: planner.train.numbering
1751
- type: requires
1752
- - confidence: 1.0
1753
- constraint: mandatory
1754
- control: internal
1755
- foundation: finish_to_start
1756
- reason: the train URN embeds the numbered train_id
1757
- source_ref: planner.train.urn-naming
1758
- strength: important
1759
- target_ref: planner.train.numbering
1760
- type: requires
1761
- - confidence: 1.0
1762
- constraint: mandatory
1763
- control: internal
1764
- foundation: finish_to_start
1765
- reason: validation enforces the train_id numbering
1766
- source_ref: planner.train.validation-rules
1767
- strength: important
1768
- target_ref: planner.train.numbering
1769
- type: requires
1770
1729
  - confidence: 1.0
1771
1730
  constraint: mandatory
1772
1731
  control: internal
@@ -1834,19 +1793,28 @@ edges:
1834
1793
  constraint: mandatory
1835
1794
  control: internal
1836
1795
  foundation: finish_to_start
1837
- reason: the strict no-consume-cycle invariant is the exact (acyclicity) case of the complexity model
1838
- source_ref: planner.wagon.no-consume-cycle
1796
+ reason: the verb-object name rule enforces the verb-object preference of the wagon URN grammar
1797
+ source_ref: planner.wagon.name-is-verb-object
1839
1798
  strength: important
1840
- target_ref: planner.wagon.complexity-model
1799
+ target_ref: planner.wagon.urn-naming
1800
+ type: refines
1801
+ - confidence: 1.0
1802
+ constraint: mandatory
1803
+ control: internal
1804
+ foundation: start_to_start
1805
+ reason: the wagon name rule draws its leading-verb lexicon from the verb-selection table
1806
+ source_ref: planner.wagon.name-is-verb-object
1807
+ strength: important
1808
+ target_ref: planner.feature.verb-selection-by-artifact-type
1841
1809
  type: requires
1842
1810
  - confidence: 1.0
1843
1811
  constraint: mandatory
1844
1812
  control: internal
1845
1813
  foundation: finish_to_start
1846
- reason: contract coherence is checked over the produce/consume artifact shape it constrains (#1332)
1847
- source_ref: planner.contract.registry-coherence
1814
+ reason: the strict no-consume-cycle invariant is the exact (acyclicity) case of the complexity model
1815
+ source_ref: planner.wagon.no-consume-cycle
1848
1816
  strength: important
1849
- target_ref: planner.wagon.produce-consume-artifacts
1817
+ target_ref: planner.wagon.complexity-model
1850
1818
  type: requires
1851
1819
  - confidence: 1.0
1852
1820
  constraint: mandatory
@@ -2343,16 +2311,6 @@ edges:
2343
2311
  strength: minor
2344
2312
  target_ref: tester.smoke.operator-observable-assertion
2345
2313
  type: runs_alongside
2346
- - confidence: 1.0
2347
- constraint: mandatory
2348
- control: internal
2349
- foundation: start_to_start
2350
- reason: both define what the operational State Store layer may hold — the SoT boundary runs
2351
- alongside the foundational layering rule
2352
- source_ref: coder.state-store.operational-vs-definition-sot
2353
- strength: important
2354
- target_ref: coder.state-store.core-imports-no-providers
2355
- type: runs_alongside
2356
2314
  graph_id: atdd.convention.relationships
2357
2315
  kind: relationship_graph
2358
2316
  schema_version: 1.0.0
@@ -28,7 +28,7 @@ from atdd.coach.utils.graph.graph_builder import (
28
28
  EdgeType,
29
29
  URNNode,
30
30
  )
31
- from atdd.coach.utils.graph.urn import URNBuilder
31
+ from atdd.coach.utils.graph.urn import URNGrammar
32
32
 
33
33
 
34
34
  class IssueSeverity(Enum):
@@ -172,13 +172,13 @@ class EdgeValidator:
172
172
  def __init__(self, graph: TraceabilityGraph):
173
173
  self.graph = graph
174
174
 
175
- # Root families: derived from URNBuilder.SEGMENT_COUNTS (parent-it-belongs-to,
175
+ # Root families: derived from URNGrammar.SEGMENT_COUNTS (parent-it-belongs-to,
176
176
  # spec v12 §3.2). A family is a root when its segment count after the prefix
177
177
  # is 1 (no parent coordinates). Adding a new top-level family in PATTERNS +
178
178
  # SEGMENT_COUNTS automatically extends this set — no edits here required.
179
179
  self._root_families = {
180
180
  family
181
- for family, count in URNBuilder.SEGMENT_COUNTS.items()
181
+ for family, count in URNGrammar.SEGMENT_COUNTS.items()
182
182
  if count == 1
183
183
  }
184
184
 
@@ -31,7 +31,7 @@ from atdd.coach.utils.graph.resolver import (
31
31
  URNDeclaration,
32
32
  URNResolution,
33
33
  )
34
- from atdd.coach.utils.graph.urn import URNBuilder
34
+ from atdd.coach.utils.graph.urn import URNGrammar
35
35
 
36
36
 
37
37
  class EdgeType(Enum):
@@ -470,14 +470,14 @@ class TraceabilityGraph:
470
470
 
471
471
  # ── gaps ───────────────────────────────────────────────
472
472
  # Nodes with zero incoming edges (excluding root families).
473
- # Root families derived from URNBuilder.SEGMENT_COUNTS (parent-it-belongs-to,
473
+ # Root families derived from URNGrammar.SEGMENT_COUNTS (parent-it-belongs-to,
474
474
  # spec v12 §3.2): a family is a root when its segment count after the
475
475
  # prefix is 1 (no parent coordinates). Adding a new top-level family in
476
476
  # PATTERNS + SEGMENT_COUNTS automatically extends this set.
477
477
  # Audit reference: docs/urn-prefix-audit-2026.md (finding #2).
478
478
  root_families = {
479
479
  family
480
- for family, count in URNBuilder.SEGMENT_COUNTS.items()
480
+ for family, count in URNGrammar.SEGMENT_COUNTS.items()
481
481
  if count == 1
482
482
  }
483
483
  all_targets = set()
@@ -793,6 +793,7 @@ class GraphBuilder:
793
793
  self._build_containment_edges(graph)
794
794
  self._build_produce_consume_edges(graph)
795
795
  self._build_train_edges(graph)
796
+ self._build_subject_edges(graph)
796
797
  self._build_component_edges(graph)
797
798
  self._build_security_edges(graph)
798
799
  # Phase 3: pass content cache to edge builders that read files
@@ -1150,6 +1151,35 @@ class GraphBuilder:
1150
1151
  except Exception:
1151
1152
  continue
1152
1153
 
1154
+ def _build_subject_edges(self, graph: TraceabilityGraph) -> None:
1155
+ """Build subject -> train (CONTAINS) edges for typed trains (#1421).
1156
+
1157
+ A typed ``train:<subject>:<slug>`` is a 2-token URN parented by its
1158
+ ``subject:<subject>`` root (grammar: ``train.parent == subject``). This
1159
+ edge makes the subject a real parent node so the typed train is not a
1160
+ topological orphan. The subject node is auto-synthesized by ``add_edge``
1161
+ if the registry has not declared it yet.
1162
+
1163
+ Legacy ``train:NNNN-slug`` (a single token) has no subject parent and is
1164
+ skipped — dual-resolution keeps it resolving during the migration
1165
+ window (see ``TrainResolver``).
1166
+ """
1167
+ for urn, node in graph.nodes.items():
1168
+ if node.family != "train":
1169
+ continue
1170
+ tokens = urn[len("train:"):].split(":")
1171
+ if len(tokens) != 2 or not all(tokens):
1172
+ continue
1173
+ subject_urn = f"subject:{tokens[0]}"
1174
+ graph.add_edge(
1175
+ URNEdge(
1176
+ source_urn=subject_urn,
1177
+ target_urn=urn,
1178
+ edge_type=EdgeType.CONTAINS,
1179
+ metadata={"source": "urn-structure"},
1180
+ )
1181
+ )
1182
+
1153
1183
  def _build_security_edges(self, graph: TraceabilityGraph) -> None:
1154
1184
  """
1155
1185
  Build security URN edges: