atdd 0.2.1__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.
- atdd/__init__.py +6 -0
- atdd/__main__.py +4 -0
- atdd/cli.py +404 -0
- atdd/coach/__init__.py +0 -0
- atdd/coach/commands/__init__.py +0 -0
- atdd/coach/commands/add_persistence_metadata.py +215 -0
- atdd/coach/commands/analyze_migrations.py +188 -0
- atdd/coach/commands/consumers.py +720 -0
- atdd/coach/commands/infer_governance_status.py +149 -0
- atdd/coach/commands/initializer.py +177 -0
- atdd/coach/commands/interface.py +1078 -0
- atdd/coach/commands/inventory.py +565 -0
- atdd/coach/commands/migration.py +240 -0
- atdd/coach/commands/registry.py +1560 -0
- atdd/coach/commands/session.py +430 -0
- atdd/coach/commands/sync.py +405 -0
- atdd/coach/commands/test_interface.py +399 -0
- atdd/coach/commands/test_runner.py +141 -0
- atdd/coach/commands/tests/__init__.py +1 -0
- atdd/coach/commands/tests/test_telemetry_array_validation.py +235 -0
- atdd/coach/commands/traceability.py +4264 -0
- atdd/coach/conventions/session.convention.yaml +754 -0
- atdd/coach/overlays/__init__.py +2 -0
- atdd/coach/overlays/claude.md +2 -0
- atdd/coach/schemas/config.schema.json +34 -0
- atdd/coach/schemas/manifest.schema.json +101 -0
- atdd/coach/templates/ATDD.md +282 -0
- atdd/coach/templates/SESSION-TEMPLATE.md +327 -0
- atdd/coach/utils/__init__.py +0 -0
- atdd/coach/utils/graph/__init__.py +0 -0
- atdd/coach/utils/graph/urn.py +875 -0
- atdd/coach/validators/__init__.py +0 -0
- atdd/coach/validators/shared_fixtures.py +365 -0
- atdd/coach/validators/test_enrich_wagon_registry.py +167 -0
- atdd/coach/validators/test_registry.py +575 -0
- atdd/coach/validators/test_session_validation.py +1183 -0
- atdd/coach/validators/test_traceability.py +448 -0
- atdd/coach/validators/test_update_feature_paths.py +108 -0
- atdd/coach/validators/test_validate_contract_consumers.py +297 -0
- atdd/coder/__init__.py +1 -0
- atdd/coder/conventions/adapter.recipe.yaml +88 -0
- atdd/coder/conventions/backend.convention.yaml +460 -0
- atdd/coder/conventions/boundaries.convention.yaml +666 -0
- atdd/coder/conventions/commons.convention.yaml +460 -0
- atdd/coder/conventions/complexity.recipe.yaml +109 -0
- atdd/coder/conventions/component-naming.convention.yaml +178 -0
- atdd/coder/conventions/design.convention.yaml +327 -0
- atdd/coder/conventions/design.recipe.yaml +273 -0
- atdd/coder/conventions/dto.convention.yaml +660 -0
- atdd/coder/conventions/frontend.convention.yaml +542 -0
- atdd/coder/conventions/green.convention.yaml +1012 -0
- atdd/coder/conventions/presentation.convention.yaml +587 -0
- atdd/coder/conventions/refactor.convention.yaml +535 -0
- atdd/coder/conventions/technology.convention.yaml +206 -0
- atdd/coder/conventions/tests/__init__.py +0 -0
- atdd/coder/conventions/tests/test_adapter_recipe.py +302 -0
- atdd/coder/conventions/tests/test_complexity_recipe.py +289 -0
- atdd/coder/conventions/tests/test_component_taxonomy.py +278 -0
- atdd/coder/conventions/tests/test_component_urn_naming.py +165 -0
- atdd/coder/conventions/tests/test_thinness_recipe.py +286 -0
- atdd/coder/conventions/thinness.recipe.yaml +82 -0
- atdd/coder/conventions/train.convention.yaml +325 -0
- atdd/coder/conventions/verification.protocol.yaml +53 -0
- atdd/coder/schemas/design_system.schema.json +361 -0
- atdd/coder/validators/__init__.py +0 -0
- atdd/coder/validators/test_commons_structure.py +485 -0
- atdd/coder/validators/test_complexity.py +416 -0
- atdd/coder/validators/test_cross_language_consistency.py +431 -0
- atdd/coder/validators/test_design_system_compliance.py +413 -0
- atdd/coder/validators/test_dto_testing_patterns.py +268 -0
- atdd/coder/validators/test_green_cross_stack_layers.py +168 -0
- atdd/coder/validators/test_green_layer_dependencies.py +148 -0
- atdd/coder/validators/test_green_python_layer_structure.py +103 -0
- atdd/coder/validators/test_green_supabase_layer_structure.py +103 -0
- atdd/coder/validators/test_import_boundaries.py +396 -0
- atdd/coder/validators/test_init_file_urns.py +593 -0
- atdd/coder/validators/test_preact_layer_boundaries.py +221 -0
- atdd/coder/validators/test_presentation_convention.py +260 -0
- atdd/coder/validators/test_python_architecture.py +674 -0
- atdd/coder/validators/test_quality_metrics.py +420 -0
- atdd/coder/validators/test_station_master_pattern.py +244 -0
- atdd/coder/validators/test_train_infrastructure.py +454 -0
- atdd/coder/validators/test_train_urns.py +293 -0
- atdd/coder/validators/test_typescript_architecture.py +616 -0
- atdd/coder/validators/test_usecase_structure.py +421 -0
- atdd/coder/validators/test_wagon_boundaries.py +586 -0
- atdd/conftest.py +126 -0
- atdd/planner/__init__.py +1 -0
- atdd/planner/conventions/acceptance.convention.yaml +538 -0
- atdd/planner/conventions/appendix.convention.yaml +187 -0
- atdd/planner/conventions/artifact-naming.convention.yaml +852 -0
- atdd/planner/conventions/component.convention.yaml +670 -0
- atdd/planner/conventions/criteria.convention.yaml +141 -0
- atdd/planner/conventions/feature.convention.yaml +371 -0
- atdd/planner/conventions/interface.convention.yaml +382 -0
- atdd/planner/conventions/steps.convention.yaml +141 -0
- atdd/planner/conventions/train.convention.yaml +552 -0
- atdd/planner/conventions/wagon.convention.yaml +275 -0
- atdd/planner/conventions/wmbt.convention.yaml +258 -0
- atdd/planner/schemas/acceptance.schema.json +336 -0
- atdd/planner/schemas/appendix.schema.json +78 -0
- atdd/planner/schemas/component.schema.json +114 -0
- atdd/planner/schemas/feature.schema.json +197 -0
- atdd/planner/schemas/train.schema.json +192 -0
- atdd/planner/schemas/wagon.schema.json +281 -0
- atdd/planner/schemas/wmbt.schema.json +59 -0
- atdd/planner/validators/__init__.py +0 -0
- atdd/planner/validators/conftest.py +5 -0
- atdd/planner/validators/test_draft_wagon_registry.py +374 -0
- atdd/planner/validators/test_plan_cross_refs.py +240 -0
- atdd/planner/validators/test_plan_uniqueness.py +224 -0
- atdd/planner/validators/test_plan_urn_resolution.py +268 -0
- atdd/planner/validators/test_plan_wagons.py +174 -0
- atdd/planner/validators/test_train_validation.py +514 -0
- atdd/planner/validators/test_wagon_urn_chain.py +648 -0
- atdd/planner/validators/test_wmbt_consistency.py +327 -0
- atdd/planner/validators/test_wmbt_vocabulary.py +632 -0
- atdd/tester/__init__.py +1 -0
- atdd/tester/conventions/artifact.convention.yaml +257 -0
- atdd/tester/conventions/contract.convention.yaml +1009 -0
- atdd/tester/conventions/filename.convention.yaml +555 -0
- atdd/tester/conventions/migration.convention.yaml +509 -0
- atdd/tester/conventions/red.convention.yaml +797 -0
- atdd/tester/conventions/routing.convention.yaml +51 -0
- atdd/tester/conventions/telemetry.convention.yaml +458 -0
- atdd/tester/schemas/a11y.tmpl.json +17 -0
- atdd/tester/schemas/artifact.schema.json +189 -0
- atdd/tester/schemas/contract.schema.json +591 -0
- atdd/tester/schemas/contract.tmpl.json +95 -0
- atdd/tester/schemas/db.tmpl.json +20 -0
- atdd/tester/schemas/e2e.tmpl.json +17 -0
- atdd/tester/schemas/edge_function.tmpl.json +17 -0
- atdd/tester/schemas/event.tmpl.json +17 -0
- atdd/tester/schemas/http.tmpl.json +19 -0
- atdd/tester/schemas/job.tmpl.json +18 -0
- atdd/tester/schemas/load.tmpl.json +21 -0
- atdd/tester/schemas/metric.tmpl.json +19 -0
- atdd/tester/schemas/pack.schema.json +139 -0
- atdd/tester/schemas/realtime.tmpl.json +20 -0
- atdd/tester/schemas/rls.tmpl.json +18 -0
- atdd/tester/schemas/script.tmpl.json +16 -0
- atdd/tester/schemas/sec.tmpl.json +18 -0
- atdd/tester/schemas/storage.tmpl.json +18 -0
- atdd/tester/schemas/telemetry.schema.json +128 -0
- atdd/tester/schemas/telemetry_tracking_manifest.schema.json +143 -0
- atdd/tester/schemas/test_filename.schema.json +194 -0
- atdd/tester/schemas/test_intent.schema.json +179 -0
- atdd/tester/schemas/unit.tmpl.json +18 -0
- atdd/tester/schemas/visual.tmpl.json +18 -0
- atdd/tester/schemas/ws.tmpl.json +17 -0
- atdd/tester/utils/__init__.py +0 -0
- atdd/tester/utils/filename.py +300 -0
- atdd/tester/validators/__init__.py +0 -0
- atdd/tester/validators/cleanup_duplicate_headers.py +116 -0
- atdd/tester/validators/cleanup_duplicate_headers_v2.py +135 -0
- atdd/tester/validators/conftest.py +5 -0
- atdd/tester/validators/coverage_gap_report.py +321 -0
- atdd/tester/validators/fix_dual_ac_references.py +179 -0
- atdd/tester/validators/remove_duplicate_lines.py +93 -0
- atdd/tester/validators/test_acceptance_urn_filename_mapping.py +359 -0
- atdd/tester/validators/test_acceptance_urn_separator.py +166 -0
- atdd/tester/validators/test_artifact_naming_category.py +307 -0
- atdd/tester/validators/test_contract_schema_compliance.py +706 -0
- atdd/tester/validators/test_contracts_structure.py +200 -0
- atdd/tester/validators/test_coverage_adequacy.py +797 -0
- atdd/tester/validators/test_dual_ac_reference.py +225 -0
- atdd/tester/validators/test_fixture_validity.py +372 -0
- atdd/tester/validators/test_isolation.py +487 -0
- atdd/tester/validators/test_migration_coverage.py +204 -0
- atdd/tester/validators/test_migration_criteria.py +276 -0
- atdd/tester/validators/test_migration_generation.py +116 -0
- atdd/tester/validators/test_python_test_naming.py +410 -0
- atdd/tester/validators/test_red_layer_validation.py +95 -0
- atdd/tester/validators/test_red_python_layer_structure.py +87 -0
- atdd/tester/validators/test_red_supabase_layer_structure.py +90 -0
- atdd/tester/validators/test_telemetry_structure.py +634 -0
- atdd/tester/validators/test_typescript_test_naming.py +301 -0
- atdd/tester/validators/test_typescript_test_structure.py +84 -0
- atdd-0.2.1.dist-info/METADATA +221 -0
- atdd-0.2.1.dist-info/RECORD +184 -0
- atdd-0.2.1.dist-info/WHEEL +5 -0
- atdd-0.2.1.dist-info/entry_points.txt +2 -0
- atdd-0.2.1.dist-info/licenses/LICENSE +674 -0
- atdd-0.2.1.dist-info/top_level.txt +1 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
---
|
|
2
|
+
# SESSION METADATA (YAML frontmatter - machine-parseable)
|
|
3
|
+
#
|
|
4
|
+
# FIRST: Rename this conversation with /rename SESSION-{NN}-{slug}
|
|
5
|
+
#
|
|
6
|
+
session: "{NN}"
|
|
7
|
+
title: "{Title}"
|
|
8
|
+
date: "{YYYY-MM-DD}"
|
|
9
|
+
status: "INIT" # INIT | PLANNED | ACTIVE | BLOCKED | COMPLETE | OBSOLETE
|
|
10
|
+
branch: "{branch-name}"
|
|
11
|
+
type: "{type}" # implementation | migration | refactor | analysis | planning | cleanup | tracking
|
|
12
|
+
complexity: 3 # 1=Trivial, 2=Low, 3=Medium, 4=High, 5=Very High
|
|
13
|
+
archetypes:
|
|
14
|
+
- "{archetype}" # db | be | fe | contracts | wmbt | wagon | train | telemetry | migrations
|
|
15
|
+
|
|
16
|
+
# Scope definition
|
|
17
|
+
scope:
|
|
18
|
+
in:
|
|
19
|
+
- "{specific-deliverable-1}"
|
|
20
|
+
- "{specific-deliverable-2}"
|
|
21
|
+
out:
|
|
22
|
+
- "{explicitly-excluded-1}"
|
|
23
|
+
dependencies:
|
|
24
|
+
- "{SESSION-XX or external requirement}"
|
|
25
|
+
|
|
26
|
+
# ATDD Workflow Phase Tracking (MANDATORY)
|
|
27
|
+
# Sequence: Planner → Tester → Coder (see session.convention.yaml:workflow)
|
|
28
|
+
workflow_phases:
|
|
29
|
+
planner:
|
|
30
|
+
status: "TODO" # TODO | IN_PROGRESS | DONE | SKIPPED | N/A
|
|
31
|
+
artifacts:
|
|
32
|
+
train: false # plan/_trains.yaml updated
|
|
33
|
+
wagon: false # plan/{wagon}/_{wagon}.yaml exists
|
|
34
|
+
feature: false # plan/{wagon}/features/{feature}.yaml exists
|
|
35
|
+
wmbt: false # WMBTs defined in feature YAML
|
|
36
|
+
gate: "python3 -m pytest src/src/atdd/planner/validators/ -v"
|
|
37
|
+
gate_status: "TODO"
|
|
38
|
+
|
|
39
|
+
tester:
|
|
40
|
+
status: "TODO"
|
|
41
|
+
depends_on: "planner"
|
|
42
|
+
artifacts:
|
|
43
|
+
contracts: false # contracts/{domain}/{resource}.schema.json exists
|
|
44
|
+
red_tests: false # Failing tests exist for all WMBTs
|
|
45
|
+
gate: "python3 -m pytest src/src/atdd/tester/validators/ -v"
|
|
46
|
+
gate_status: "TODO"
|
|
47
|
+
red_gate: "pytest {test_path} -v (expect FAIL)"
|
|
48
|
+
red_gate_status: "TODO"
|
|
49
|
+
|
|
50
|
+
coder:
|
|
51
|
+
status: "TODO"
|
|
52
|
+
depends_on: "tester"
|
|
53
|
+
artifacts:
|
|
54
|
+
implementation: false # Code exists in {runtime}/{wagon}/{feature}/src/
|
|
55
|
+
gate: "python3 -m pytest src/atdd/coder/validators/ -v"
|
|
56
|
+
gate_status: "TODO"
|
|
57
|
+
green_gate: "pytest {test_path} -v (expect PASS)"
|
|
58
|
+
green_gate_status: "TODO"
|
|
59
|
+
refactor_gate: "python3 -m pytest src/atdd/coder/validators/ -v"
|
|
60
|
+
refactor_gate_status: "TODO"
|
|
61
|
+
|
|
62
|
+
# Progress tracking (machine-readable)
|
|
63
|
+
progress:
|
|
64
|
+
phases:
|
|
65
|
+
- id: "P1"
|
|
66
|
+
name: "{Phase-1-Name}"
|
|
67
|
+
status: "TODO" # TODO | IN_PROGRESS | DONE | BLOCKED | SKIPPED
|
|
68
|
+
gate: "{validation-command}"
|
|
69
|
+
- id: "P2"
|
|
70
|
+
name: "{Phase-2-Name}"
|
|
71
|
+
status: "TODO"
|
|
72
|
+
gate: "{validation-command}"
|
|
73
|
+
|
|
74
|
+
# WMBT tracking (for implementation sessions)
|
|
75
|
+
wmbt:
|
|
76
|
+
- id: "D001"
|
|
77
|
+
description: "{description}"
|
|
78
|
+
red: "TODO"
|
|
79
|
+
green: "TODO"
|
|
80
|
+
refactor: "TODO"
|
|
81
|
+
- id: "L001"
|
|
82
|
+
description: "{description}"
|
|
83
|
+
red: "TODO"
|
|
84
|
+
green: "TODO"
|
|
85
|
+
refactor: "TODO"
|
|
86
|
+
|
|
87
|
+
# ATDD phase summary
|
|
88
|
+
atdd:
|
|
89
|
+
red:
|
|
90
|
+
status: "TODO"
|
|
91
|
+
gate: "pytest {test-path} -v (expect FAIL)"
|
|
92
|
+
green:
|
|
93
|
+
status: "TODO"
|
|
94
|
+
gate: "pytest {test-path} -v (expect PASS)"
|
|
95
|
+
refactor:
|
|
96
|
+
status: "TODO"
|
|
97
|
+
gate: "pytest src/atdd/coder/validators/ -v"
|
|
98
|
+
|
|
99
|
+
# Gate Tests - Required validation gates with ATDD validators
|
|
100
|
+
# See: src/atdd/coach/conventions/session.convention.yaml for required gates per archetype
|
|
101
|
+
gate_tests:
|
|
102
|
+
# Universal gates (required for all sessions)
|
|
103
|
+
- id: "GT-001"
|
|
104
|
+
phase: "design"
|
|
105
|
+
archetype: "all"
|
|
106
|
+
command: "python3 -m pytest src/atdd/coach/validators/test_session_validation.py -v"
|
|
107
|
+
expected: "PASS"
|
|
108
|
+
atdd_validator: "src/atdd/coach/validators/test_session_validation.py"
|
|
109
|
+
status: "TODO"
|
|
110
|
+
|
|
111
|
+
# Archetype-specific gates (add based on declared archetypes)
|
|
112
|
+
# Example for 'be' archetype:
|
|
113
|
+
# - id: "GT-010"
|
|
114
|
+
# phase: "implementation"
|
|
115
|
+
# archetype: "be"
|
|
116
|
+
# command: "python3 -m pytest src/atdd/coder/validators/test_python_architecture.py -v"
|
|
117
|
+
# expected: "PASS"
|
|
118
|
+
# atdd_validator: "src/atdd/coder/validators/test_python_architecture.py"
|
|
119
|
+
# status: "TODO"
|
|
120
|
+
|
|
121
|
+
# Example for 'fe' archetype:
|
|
122
|
+
# - id: "GT-020"
|
|
123
|
+
# phase: "implementation"
|
|
124
|
+
# archetype: "fe"
|
|
125
|
+
# command: "python3 -m pytest src/atdd/coder/validators/test_typescript_architecture.py -v"
|
|
126
|
+
# expected: "PASS"
|
|
127
|
+
# atdd_validator: "src/atdd/coder/validators/test_typescript_architecture.py"
|
|
128
|
+
# status: "TODO"
|
|
129
|
+
|
|
130
|
+
# Completion gate (required for all sessions)
|
|
131
|
+
- id: "GT-900"
|
|
132
|
+
phase: "completion"
|
|
133
|
+
archetype: "all"
|
|
134
|
+
command: "python3 -m pytest src/atdd/ -v --tb=short"
|
|
135
|
+
expected: "PASS"
|
|
136
|
+
atdd_validator: "src/atdd/"
|
|
137
|
+
status: "TODO"
|
|
138
|
+
|
|
139
|
+
# Success criteria (checkboxes tracked here)
|
|
140
|
+
success_criteria:
|
|
141
|
+
- text: "{measurable-outcome-1}"
|
|
142
|
+
done: false
|
|
143
|
+
- text: "{measurable-outcome-2}"
|
|
144
|
+
done: false
|
|
145
|
+
|
|
146
|
+
# Decisions log
|
|
147
|
+
decisions:
|
|
148
|
+
- id: "Q1"
|
|
149
|
+
question: "{question-faced}"
|
|
150
|
+
decision: "{choice-made}"
|
|
151
|
+
rationale: "{why-this-choice}"
|
|
152
|
+
|
|
153
|
+
# Related references
|
|
154
|
+
related:
|
|
155
|
+
sessions:
|
|
156
|
+
- "{SESSION-XX}: {relationship-description}"
|
|
157
|
+
wmbt:
|
|
158
|
+
- "wmbt:{wagon}:{ID}"
|
|
159
|
+
|
|
160
|
+
# Artifacts produced
|
|
161
|
+
artifacts:
|
|
162
|
+
created: []
|
|
163
|
+
modified: []
|
|
164
|
+
deleted: []
|
|
165
|
+
---
|
|
166
|
+
|
|
167
|
+
<!--
|
|
168
|
+
IMPLEMENTATION RULES:
|
|
169
|
+
1. BEFORE creating/updating files: Identify existing patterns in codebase
|
|
170
|
+
2. New files MUST follow conventions in atdd/*/conventions/*.yaml
|
|
171
|
+
3. New files MUST match patterns of similar existing files
|
|
172
|
+
4. When in doubt: find 2-3 similar files and replicate their structure
|
|
173
|
+
5. NEVER introduce new patterns without explicit decision documented
|
|
174
|
+
6. Validate: python3 -m pytest src/atdd/ -v --tb=short
|
|
175
|
+
-->
|
|
176
|
+
|
|
177
|
+
# SESSION-{NN}: {Title}
|
|
178
|
+
|
|
179
|
+
## Context
|
|
180
|
+
|
|
181
|
+
### Problem Statement
|
|
182
|
+
|
|
183
|
+
| Aspect | Current | Target | Issue |
|
|
184
|
+
|--------|---------|--------|-------|
|
|
185
|
+
| {aspect-1} | {current-state} | {target-state} | {why-it's-a-problem} |
|
|
186
|
+
|
|
187
|
+
### User Impact
|
|
188
|
+
|
|
189
|
+
{How does this problem affect users, developers, or the system? Be specific.}
|
|
190
|
+
|
|
191
|
+
### Root Cause
|
|
192
|
+
|
|
193
|
+
{Why does this problem exist? What architectural or design decisions led to it?}
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Architecture
|
|
198
|
+
|
|
199
|
+
### Existing Patterns (MUST identify before implementation)
|
|
200
|
+
|
|
201
|
+
<!-- Search codebase for similar files and document patterns found -->
|
|
202
|
+
|
|
203
|
+
| Pattern | Example File | Convention |
|
|
204
|
+
|---------|--------------|------------|
|
|
205
|
+
| {layer-structure} | `python/{wagon}/src/domain/` | `atdd/coder/conventions/backend.convention.yaml` |
|
|
206
|
+
| {naming} | `test_{WMBT}_unit_{NNN}_{desc}.py` | `atdd/tester/conventions/filename.convention.yaml` |
|
|
207
|
+
| {imports} | `from .entities import X` | `atdd/coder/conventions/boundaries.convention.yaml` |
|
|
208
|
+
|
|
209
|
+
### Conceptual Model
|
|
210
|
+
|
|
211
|
+
| Term | Definition | Example |
|
|
212
|
+
|------|------------|---------|
|
|
213
|
+
| {term-1} | {what-it-means} | {concrete-example} |
|
|
214
|
+
|
|
215
|
+
### Before State
|
|
216
|
+
|
|
217
|
+
```
|
|
218
|
+
{ascii-diagram or structure showing current state}
|
|
219
|
+
```
|
|
220
|
+
|
|
221
|
+
### After State
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
{ascii-diagram or structure showing target state}
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
### Data Model
|
|
228
|
+
|
|
229
|
+
<!-- Include if archetypes includes: db -->
|
|
230
|
+
|
|
231
|
+
```sql
|
|
232
|
+
-- Table/view definitions
|
|
233
|
+
CREATE TABLE IF NOT EXISTS public.{table_name} (
|
|
234
|
+
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
235
|
+
data JSONB NOT NULL,
|
|
236
|
+
created_at TIMESTAMPTZ DEFAULT NOW(),
|
|
237
|
+
updated_at TIMESTAMPTZ DEFAULT NOW()
|
|
238
|
+
);
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## Phases
|
|
244
|
+
|
|
245
|
+
### Phase 1: {Name}
|
|
246
|
+
|
|
247
|
+
**Deliverables:**
|
|
248
|
+
- {artifact-path-1} - {what-it-does}
|
|
249
|
+
- {artifact-path-2} - {what-it-does}
|
|
250
|
+
|
|
251
|
+
**Files:**
|
|
252
|
+
|
|
253
|
+
| File | Change |
|
|
254
|
+
|------|--------|
|
|
255
|
+
| `{path/to/file}` | {description-of-change} |
|
|
256
|
+
|
|
257
|
+
### Phase 2: {Name}
|
|
258
|
+
|
|
259
|
+
**Deliverables:**
|
|
260
|
+
- {artifact-path-1} - {what-it-does}
|
|
261
|
+
|
|
262
|
+
**Files:**
|
|
263
|
+
|
|
264
|
+
| File | Change |
|
|
265
|
+
|------|--------|
|
|
266
|
+
| `{path/to/file}` | {description-of-change} |
|
|
267
|
+
|
|
268
|
+
---
|
|
269
|
+
|
|
270
|
+
## Validation
|
|
271
|
+
|
|
272
|
+
### Gate Tests (ATDD Validators)
|
|
273
|
+
|
|
274
|
+
<!--
|
|
275
|
+
Gate tests enforce conventions via ATDD validators.
|
|
276
|
+
Each declared archetype MUST have corresponding gate tests.
|
|
277
|
+
Reference: src/atdd/coach/conventions/session.convention.yaml
|
|
278
|
+
-->
|
|
279
|
+
|
|
280
|
+
| ID | Phase | Archetype | Command | Expected | ATDD Validator | Status |
|
|
281
|
+
|----|-------|-----------|---------|----------|----------------|--------|
|
|
282
|
+
| GT-001 | design | all | `python3 -m pytest src/atdd/coach/validators/test_session_validation.py -v` | PASS | `src/atdd/coach/validators/test_session_validation.py` | TODO |
|
|
283
|
+
| GT-010 | implementation | {archetype} | `{command}` | PASS | `{atdd_validator_path}` | TODO |
|
|
284
|
+
| GT-900 | completion | all | `python3 -m pytest src/atdd/ -v --tb=short` | PASS | `src/atdd/` | TODO |
|
|
285
|
+
|
|
286
|
+
### Phase Gates
|
|
287
|
+
|
|
288
|
+
#### Gate 1: {Phase-1-Name}
|
|
289
|
+
|
|
290
|
+
```bash
|
|
291
|
+
{validation-command-1}
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
**Expected:** {expected-outcome}
|
|
295
|
+
**ATDD Validator:** `{atdd/scope/validators/test_file.py}`
|
|
296
|
+
|
|
297
|
+
#### Gate 2: {Phase-2-Name}
|
|
298
|
+
|
|
299
|
+
```bash
|
|
300
|
+
{validation-command-2}
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
**Expected:** {expected-outcome}
|
|
304
|
+
**ATDD Validator:** `{atdd/scope/validators/test_file.py}`
|
|
305
|
+
|
|
306
|
+
---
|
|
307
|
+
|
|
308
|
+
## Session Log
|
|
309
|
+
|
|
310
|
+
### Session 1 ({YYYY-MM-DD}): {Focus}
|
|
311
|
+
|
|
312
|
+
**Completed:**
|
|
313
|
+
- {work-item-1}
|
|
314
|
+
- {work-item-2}
|
|
315
|
+
|
|
316
|
+
**Blocked:**
|
|
317
|
+
- {blocker-if-any}
|
|
318
|
+
|
|
319
|
+
**Next:**
|
|
320
|
+
- {next-action-1}
|
|
321
|
+
- {next-action-2}
|
|
322
|
+
|
|
323
|
+
---
|
|
324
|
+
|
|
325
|
+
## Notes
|
|
326
|
+
|
|
327
|
+
{Additional context, learnings, or decisions that don't fit elsewhere.}
|
|
File without changes
|
|
File without changes
|