atdd 0.1.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. atdd/__init__.py +0 -0
  2. atdd/cli.py +404 -0
  3. atdd/coach/__init__.py +0 -0
  4. atdd/coach/commands/__init__.py +0 -0
  5. atdd/coach/commands/add_persistence_metadata.py +215 -0
  6. atdd/coach/commands/analyze_migrations.py +188 -0
  7. atdd/coach/commands/consumers.py +720 -0
  8. atdd/coach/commands/infer_governance_status.py +149 -0
  9. atdd/coach/commands/initializer.py +177 -0
  10. atdd/coach/commands/interface.py +1078 -0
  11. atdd/coach/commands/inventory.py +565 -0
  12. atdd/coach/commands/migration.py +240 -0
  13. atdd/coach/commands/registry.py +1560 -0
  14. atdd/coach/commands/session.py +430 -0
  15. atdd/coach/commands/sync.py +405 -0
  16. atdd/coach/commands/test_interface.py +399 -0
  17. atdd/coach/commands/test_runner.py +141 -0
  18. atdd/coach/commands/tests/__init__.py +1 -0
  19. atdd/coach/commands/tests/test_telemetry_array_validation.py +235 -0
  20. atdd/coach/commands/traceability.py +4264 -0
  21. atdd/coach/conventions/session.convention.yaml +754 -0
  22. atdd/coach/overlays/__init__.py +2 -0
  23. atdd/coach/overlays/claude.md +2 -0
  24. atdd/coach/schemas/config.schema.json +34 -0
  25. atdd/coach/schemas/manifest.schema.json +101 -0
  26. atdd/coach/templates/ATDD.md +282 -0
  27. atdd/coach/templates/SESSION-TEMPLATE.md +327 -0
  28. atdd/coach/utils/__init__.py +0 -0
  29. atdd/coach/utils/graph/__init__.py +0 -0
  30. atdd/coach/utils/graph/urn.py +875 -0
  31. atdd/coach/validators/__init__.py +0 -0
  32. atdd/coach/validators/shared_fixtures.py +365 -0
  33. atdd/coach/validators/test_enrich_wagon_registry.py +167 -0
  34. atdd/coach/validators/test_registry.py +575 -0
  35. atdd/coach/validators/test_session_validation.py +1183 -0
  36. atdd/coach/validators/test_traceability.py +448 -0
  37. atdd/coach/validators/test_update_feature_paths.py +108 -0
  38. atdd/coach/validators/test_validate_contract_consumers.py +297 -0
  39. atdd/coder/__init__.py +1 -0
  40. atdd/coder/conventions/adapter.recipe.yaml +88 -0
  41. atdd/coder/conventions/backend.convention.yaml +460 -0
  42. atdd/coder/conventions/boundaries.convention.yaml +666 -0
  43. atdd/coder/conventions/commons.convention.yaml +460 -0
  44. atdd/coder/conventions/complexity.recipe.yaml +109 -0
  45. atdd/coder/conventions/component-naming.convention.yaml +178 -0
  46. atdd/coder/conventions/design.convention.yaml +327 -0
  47. atdd/coder/conventions/design.recipe.yaml +273 -0
  48. atdd/coder/conventions/dto.convention.yaml +660 -0
  49. atdd/coder/conventions/frontend.convention.yaml +542 -0
  50. atdd/coder/conventions/green.convention.yaml +1012 -0
  51. atdd/coder/conventions/presentation.convention.yaml +587 -0
  52. atdd/coder/conventions/refactor.convention.yaml +535 -0
  53. atdd/coder/conventions/technology.convention.yaml +206 -0
  54. atdd/coder/conventions/tests/__init__.py +0 -0
  55. atdd/coder/conventions/tests/test_adapter_recipe.py +302 -0
  56. atdd/coder/conventions/tests/test_complexity_recipe.py +289 -0
  57. atdd/coder/conventions/tests/test_component_taxonomy.py +278 -0
  58. atdd/coder/conventions/tests/test_component_urn_naming.py +165 -0
  59. atdd/coder/conventions/tests/test_thinness_recipe.py +286 -0
  60. atdd/coder/conventions/thinness.recipe.yaml +82 -0
  61. atdd/coder/conventions/train.convention.yaml +325 -0
  62. atdd/coder/conventions/verification.protocol.yaml +53 -0
  63. atdd/coder/schemas/design_system.schema.json +361 -0
  64. atdd/coder/validators/__init__.py +0 -0
  65. atdd/coder/validators/test_commons_structure.py +485 -0
  66. atdd/coder/validators/test_complexity.py +416 -0
  67. atdd/coder/validators/test_cross_language_consistency.py +431 -0
  68. atdd/coder/validators/test_design_system_compliance.py +413 -0
  69. atdd/coder/validators/test_dto_testing_patterns.py +268 -0
  70. atdd/coder/validators/test_green_cross_stack_layers.py +168 -0
  71. atdd/coder/validators/test_green_layer_dependencies.py +148 -0
  72. atdd/coder/validators/test_green_python_layer_structure.py +103 -0
  73. atdd/coder/validators/test_green_supabase_layer_structure.py +103 -0
  74. atdd/coder/validators/test_import_boundaries.py +396 -0
  75. atdd/coder/validators/test_init_file_urns.py +593 -0
  76. atdd/coder/validators/test_preact_layer_boundaries.py +221 -0
  77. atdd/coder/validators/test_presentation_convention.py +260 -0
  78. atdd/coder/validators/test_python_architecture.py +674 -0
  79. atdd/coder/validators/test_quality_metrics.py +420 -0
  80. atdd/coder/validators/test_station_master_pattern.py +244 -0
  81. atdd/coder/validators/test_train_infrastructure.py +454 -0
  82. atdd/coder/validators/test_train_urns.py +293 -0
  83. atdd/coder/validators/test_typescript_architecture.py +616 -0
  84. atdd/coder/validators/test_usecase_structure.py +421 -0
  85. atdd/coder/validators/test_wagon_boundaries.py +586 -0
  86. atdd/conftest.py +126 -0
  87. atdd/planner/__init__.py +1 -0
  88. atdd/planner/conventions/acceptance.convention.yaml +538 -0
  89. atdd/planner/conventions/appendix.convention.yaml +187 -0
  90. atdd/planner/conventions/artifact-naming.convention.yaml +852 -0
  91. atdd/planner/conventions/component.convention.yaml +670 -0
  92. atdd/planner/conventions/criteria.convention.yaml +141 -0
  93. atdd/planner/conventions/feature.convention.yaml +371 -0
  94. atdd/planner/conventions/interface.convention.yaml +382 -0
  95. atdd/planner/conventions/steps.convention.yaml +141 -0
  96. atdd/planner/conventions/train.convention.yaml +552 -0
  97. atdd/planner/conventions/wagon.convention.yaml +275 -0
  98. atdd/planner/conventions/wmbt.convention.yaml +258 -0
  99. atdd/planner/schemas/acceptance.schema.json +336 -0
  100. atdd/planner/schemas/appendix.schema.json +78 -0
  101. atdd/planner/schemas/component.schema.json +114 -0
  102. atdd/planner/schemas/feature.schema.json +197 -0
  103. atdd/planner/schemas/train.schema.json +192 -0
  104. atdd/planner/schemas/wagon.schema.json +281 -0
  105. atdd/planner/schemas/wmbt.schema.json +59 -0
  106. atdd/planner/validators/__init__.py +0 -0
  107. atdd/planner/validators/conftest.py +5 -0
  108. atdd/planner/validators/test_draft_wagon_registry.py +374 -0
  109. atdd/planner/validators/test_plan_cross_refs.py +240 -0
  110. atdd/planner/validators/test_plan_uniqueness.py +224 -0
  111. atdd/planner/validators/test_plan_urn_resolution.py +268 -0
  112. atdd/planner/validators/test_plan_wagons.py +174 -0
  113. atdd/planner/validators/test_train_validation.py +514 -0
  114. atdd/planner/validators/test_wagon_urn_chain.py +648 -0
  115. atdd/planner/validators/test_wmbt_consistency.py +327 -0
  116. atdd/planner/validators/test_wmbt_vocabulary.py +632 -0
  117. atdd/tester/__init__.py +1 -0
  118. atdd/tester/conventions/artifact.convention.yaml +257 -0
  119. atdd/tester/conventions/contract.convention.yaml +1009 -0
  120. atdd/tester/conventions/filename.convention.yaml +555 -0
  121. atdd/tester/conventions/migration.convention.yaml +509 -0
  122. atdd/tester/conventions/red.convention.yaml +797 -0
  123. atdd/tester/conventions/routing.convention.yaml +51 -0
  124. atdd/tester/conventions/telemetry.convention.yaml +458 -0
  125. atdd/tester/schemas/a11y.tmpl.json +17 -0
  126. atdd/tester/schemas/artifact.schema.json +189 -0
  127. atdd/tester/schemas/contract.schema.json +591 -0
  128. atdd/tester/schemas/contract.tmpl.json +95 -0
  129. atdd/tester/schemas/db.tmpl.json +20 -0
  130. atdd/tester/schemas/e2e.tmpl.json +17 -0
  131. atdd/tester/schemas/edge_function.tmpl.json +17 -0
  132. atdd/tester/schemas/event.tmpl.json +17 -0
  133. atdd/tester/schemas/http.tmpl.json +19 -0
  134. atdd/tester/schemas/job.tmpl.json +18 -0
  135. atdd/tester/schemas/load.tmpl.json +21 -0
  136. atdd/tester/schemas/metric.tmpl.json +19 -0
  137. atdd/tester/schemas/pack.schema.json +139 -0
  138. atdd/tester/schemas/realtime.tmpl.json +20 -0
  139. atdd/tester/schemas/rls.tmpl.json +18 -0
  140. atdd/tester/schemas/script.tmpl.json +16 -0
  141. atdd/tester/schemas/sec.tmpl.json +18 -0
  142. atdd/tester/schemas/storage.tmpl.json +18 -0
  143. atdd/tester/schemas/telemetry.schema.json +128 -0
  144. atdd/tester/schemas/telemetry_tracking_manifest.schema.json +143 -0
  145. atdd/tester/schemas/test_filename.schema.json +194 -0
  146. atdd/tester/schemas/test_intent.schema.json +179 -0
  147. atdd/tester/schemas/unit.tmpl.json +18 -0
  148. atdd/tester/schemas/visual.tmpl.json +18 -0
  149. atdd/tester/schemas/ws.tmpl.json +17 -0
  150. atdd/tester/utils/__init__.py +0 -0
  151. atdd/tester/utils/filename.py +300 -0
  152. atdd/tester/validators/__init__.py +0 -0
  153. atdd/tester/validators/cleanup_duplicate_headers.py +116 -0
  154. atdd/tester/validators/cleanup_duplicate_headers_v2.py +135 -0
  155. atdd/tester/validators/conftest.py +5 -0
  156. atdd/tester/validators/coverage_gap_report.py +321 -0
  157. atdd/tester/validators/fix_dual_ac_references.py +179 -0
  158. atdd/tester/validators/remove_duplicate_lines.py +93 -0
  159. atdd/tester/validators/test_acceptance_urn_filename_mapping.py +359 -0
  160. atdd/tester/validators/test_acceptance_urn_separator.py +166 -0
  161. atdd/tester/validators/test_artifact_naming_category.py +307 -0
  162. atdd/tester/validators/test_contract_schema_compliance.py +706 -0
  163. atdd/tester/validators/test_contracts_structure.py +200 -0
  164. atdd/tester/validators/test_coverage_adequacy.py +797 -0
  165. atdd/tester/validators/test_dual_ac_reference.py +225 -0
  166. atdd/tester/validators/test_fixture_validity.py +372 -0
  167. atdd/tester/validators/test_isolation.py +487 -0
  168. atdd/tester/validators/test_migration_coverage.py +204 -0
  169. atdd/tester/validators/test_migration_criteria.py +276 -0
  170. atdd/tester/validators/test_migration_generation.py +116 -0
  171. atdd/tester/validators/test_python_test_naming.py +410 -0
  172. atdd/tester/validators/test_red_layer_validation.py +95 -0
  173. atdd/tester/validators/test_red_python_layer_structure.py +87 -0
  174. atdd/tester/validators/test_red_supabase_layer_structure.py +90 -0
  175. atdd/tester/validators/test_telemetry_structure.py +634 -0
  176. atdd/tester/validators/test_typescript_test_naming.py +301 -0
  177. atdd/tester/validators/test_typescript_test_structure.py +84 -0
  178. atdd-0.1.0.dist-info/METADATA +191 -0
  179. atdd-0.1.0.dist-info/RECORD +183 -0
  180. atdd-0.1.0.dist-info/WHEEL +5 -0
  181. atdd-0.1.0.dist-info/entry_points.txt +2 -0
  182. atdd-0.1.0.dist-info/licenses/LICENSE +674 -0
  183. atdd-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,187 @@
1
+ version: "1.0"
2
+ name: "Appendix Convention"
3
+ description: "Convention defining rules for attaching multimodal supplementary content to planner outputs to enrich context and reduce ambiguity"
4
+
5
+ # Purpose: Why appendices exist
6
+ purpose:
7
+ enrichment:
8
+ description: "Appendices provide additional context during creation of planner outputs to drastically reduce ambiguity"
9
+ when: "During wagon, wmbt, feature, component, or acceptance creation"
10
+ benefits:
11
+ - "LLM extracts richer requirements from visual, structural, or detailed artifacts"
12
+ - "Better component identification from mockups showing UI sections"
13
+ - "More accurate harness selection based on visual/interaction patterns"
14
+ - "Domain-specific context from diagrams (ERDs, architecture, sequences)"
15
+ - "User insights from audio/video interviews and research sessions"
16
+
17
+ disambiguation:
18
+ description: "During routing, appendices serve as anchors for LLM to ask better clarifying questions"
19
+ when: "User input is ambiguous and requires clarification"
20
+ benefits:
21
+ - "Grounded questions instead of abstract ones"
22
+ - "Example: 'I see your mockup shows a login form - are you creating a wagon or adding a feature?'"
23
+ - "Reduces back-and-forth by referencing concrete artifacts"
24
+ - "LLM can analyze appendix content to infer user intent"
25
+
26
+ # Appendix types and when to use them
27
+ appendix_types:
28
+ mockup:
29
+ description: "Visual designs, UI mockups, wireframes, prototypes"
30
+ extensions: ["PNG", "JPG", "JPEG", "SVG", "GIF"]
31
+ use_cases:
32
+ - "UI screen designs to inform component structure during feature decomposition"
33
+ - "User flow diagrams to inform WMBT decomposition and when/must/then statements"
34
+ - "Visual states (loading, error, success) to inform harness selection (visual, e2e)"
35
+ - "Responsive variants (mobile, tablet, desktop) to inform acceptance criteria"
36
+ example: "checkout-flow_mockup_payment-form.png"
37
+
38
+ spreadsheet:
39
+ description: "Data models, calculations, business rules, requirements matrices"
40
+ extensions: ["XLSX", "CSV", "TSV"]
41
+ use_cases:
42
+ - "Complex pricing/tax calculation logic to inform domain model and business rules"
43
+ - "Data validation rules to inform acceptance criteria"
44
+ - "Requirement traceability matrices for feature clustering"
45
+ - "Test data sets for acceptance given/when sections"
46
+ example: "pricing_spreadsheet_tax-calculations.xlsx"
47
+
48
+ document:
49
+ description: "Specifications, research findings, technical guides, PRDs"
50
+ extensions: ["PDF", "DOCX", "MD", "TXT"]
51
+ use_cases:
52
+ - "Product requirements documents to inform wagon description and scope"
53
+ - "Technical specifications to inform component contracts and responsibilities"
54
+ - "User research findings to inform WMBT scenarios and pain points"
55
+ - "API documentation to inform integration acceptance criteria"
56
+ example: "auth_document_security-spec.pdf"
57
+
58
+ diagram:
59
+ description: "Architecture diagrams, ERDs, sequence diagrams, flowcharts, state machines"
60
+ extensions: ["PNG", "SVG", "MERMAID", "DRAWIO"]
61
+ use_cases:
62
+ - "System architecture diagrams to inform 4-layer structure and component boundaries"
63
+ - "Entity-relationship diagrams for domain model and data structures"
64
+ - "Sequence diagrams to inform WMBT when/then steps and integration points"
65
+ - "State machine diagrams for component behavior and state transitions"
66
+ example: "auth_diagram_sequence.svg"
67
+
68
+ audio:
69
+ description: "User interviews, voice notes, recorded requirements sessions"
70
+ extensions: ["MP3", "WAV", "M4A", "OGG"]
71
+ use_cases:
72
+ - "User interview recordings for extracting pain points and requirements"
73
+ - "Stakeholder requirement sessions for wagon scope and priorities"
74
+ - "Voice memos with context and clarifications"
75
+ - "Accessibility testing feedback for a11y harness criteria"
76
+ example: "user-research_audio_interview-checkout.mp3"
77
+
78
+ video:
79
+ description: "Screen recordings, demos, walkthroughs, user testing sessions"
80
+ extensions: ["MP4", "MOV", "WEBM", "AVI"]
81
+ use_cases:
82
+ - "Demo of existing system behavior to inform feature parity requirements"
83
+ - "User testing sessions showing pain points and interaction patterns"
84
+ - "Tutorial videos for understanding complex workflows"
85
+ - "Screen recordings of bugs to inform WMBT reproduce steps"
86
+ example: "checkout_video_user-session.mp4"
87
+
88
+ # Naming patterns (rules)
89
+ naming_patterns:
90
+ rule: "Appendices follow pattern: {artifact-name}_{type}_{filename}"
91
+ rationale: "Ensures uniqueness, traceability, and clear type identification"
92
+ examples:
93
+ wagon: "checkout-flow_mockup_overview.png"
94
+ wmbt: "E023_diagram_sequence.svg"
95
+ feature: "payment-processing_spreadsheet_tax-rules.xlsx"
96
+ component: "PaymentForm_mockup_states.png"
97
+
98
+ # Storage location rules
99
+ storage_rules:
100
+ rule: "Appendices stored in appendices/ subdirectory of artifact"
101
+ rationale: "Keeps artifacts self-contained and appendices co-located with what they describe"
102
+
103
+ locations:
104
+ wagon: "{output_dir}/wagons/{wagon-name}/appendices/"
105
+ wmbt: "{output_dir}/wagons/{wagon-name}/plan/{wmbt-id}/appendices/"
106
+ feature: "{output_dir}/wagons/{wagon-name}/features/{feature-name}/appendices/"
107
+ component: "{output_dir}/wagons/{wagon-name}/features/{feature-name}/components/{component-name}/appendices/"
108
+
109
+ examples:
110
+ wagon_appendix: "demo/wagons/checkout-flow/appendices/checkout-flow_mockup_overview.png"
111
+ wmbt_appendix: "demo/wagons/checkout-flow/plan/E023/appendices/E023_mockup_payment-error.png"
112
+
113
+ # LLM processing guidelines
114
+ llm_guidelines:
115
+ during_creation:
116
+ description: "How planner agent should process appendices when creating outputs"
117
+
118
+ workflow:
119
+ - step: "Detect appendix in user input"
120
+ pattern: "User includes file path, mentions 'appendix:', or provides file URL"
121
+
122
+ - step: "Use Read tool to consume appendix content"
123
+ capability: "Claude can read PNG, JPG, SVG, PDF, audio, video as multimodal input"
124
+
125
+ - step: "Analyze appendix based on type"
126
+ analysis:
127
+ mockup: "Identify UI components, layouts, flows, states, interactions, responsive variants"
128
+ spreadsheet: "Extract business rules, calculations, data models, validation constraints"
129
+ document: "Extract requirements, constraints, specifications, acceptance criteria"
130
+ diagram: "Understand architecture, entities, sequences, state transitions, relationships"
131
+ audio: "Transcribe and extract user pain points, requirements, context, clarifications"
132
+ video: "Analyze workflows, interactions, pain points, existing behavior patterns"
133
+
134
+ - step: "Enrich output with extracted context"
135
+ enrichment:
136
+ wagon: "More accurate description, domain model informed by diagrams/docs"
137
+ wmbt: "Better when/must/then statements informed by flows/interactions"
138
+ acceptance: "Accurate harness selection (mockup→visual, diagram→integration)"
139
+ feature: "Better component clustering based on mockup sections"
140
+ component: "Accurate props/state/behavior from mockups and diagrams"
141
+
142
+ - step: "Reference appendix in manifest"
143
+ note: "Manifest structure defined in schema, not convention"
144
+
145
+ during_disambiguation:
146
+ description: "How appendices help LLM ask better clarifying questions during routing"
147
+
148
+ workflow:
149
+ - scenario: "User provides appendix without clear intent keyword (no 'wagon', 'wmbt', etc.)"
150
+
151
+ - step: "LLM uses Read tool to view appendix"
152
+ analysis: "Understand what the appendix shows (multi-screen flow, single component, architecture, etc.)"
153
+
154
+ - step: "Ask grounded clarification question"
155
+ examples:
156
+ - input: "mockup showing 3-screen checkout flow"
157
+ question: "I see your mockup shows a multi-screen checkout flow. What would you like to create?\n1. New wagon for entire checkout\n2. WMBT for specific screen\n3. Feature in existing wagon"
158
+
159
+ - input: "ERD diagram with 5 entities"
160
+ question: "Your ERD shows 5 entities. Are you:\n1. Creating new wagon with this domain model\n2. Adding feature to existing wagon\n3. Defining component data structures"
161
+
162
+ - benefit: "Questions grounded in concrete artifact reduce confusion and back-and-forth"
163
+
164
+ examples:
165
+ text_only:
166
+ input: "Create wagon for checkout"
167
+ result: "Generic wagon with placeholder description and no specific WMBTs"
168
+
169
+ with_mockup_appendix:
170
+ input: "Create wagon for checkout, appendix: mockup-checkout.png"
171
+ appendix_shows: "3 screens: cart review, payment form, confirmation with loading states"
172
+ result: "Rich wagon with accurate description, 3-4 specific WMBTs inferred from screens, component suggestions"
173
+
174
+ # Related conventions
175
+ related:
176
+ wagon: "conventions:planner:wagon"
177
+ wmbt: "conventions:planner:wmbt"
178
+ acceptance: "conventions:planner:acceptance"
179
+ feature: "conventions:planner:feature"
180
+ component: "conventions:planner:component"
181
+
182
+ # Important notes
183
+ notes:
184
+ - "This convention defines RULES only - not schema structure or action implementation"
185
+ - "Schema structure defined in: schemas:planner:appendix"
186
+ - "Action implementation defined in: actions:planner:appendix"
187
+ - "Manifest structure defined in individual artifact schemas (wagon, wmbt, etc.)"