atdd 0.2.6__py3-none-any.whl → 0.2.8__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.
@@ -35,6 +35,19 @@ class ATDDGate:
35
35
  """
36
36
  self.target_dir = target_dir or Path.cwd()
37
37
  self.syncer = AgentConfigSync(self.target_dir)
38
+ self.package_root = Path(__file__).parent.parent # src/atdd/coach
39
+ self.session_convention = self.package_root / "conventions" / "session.convention.yaml"
40
+
41
+ def _load_session_convention(self) -> Optional[str]:
42
+ """
43
+ Load the session convention content.
44
+
45
+ Returns:
46
+ File content or None if missing.
47
+ """
48
+ if not self.session_convention.exists():
49
+ return None
50
+ return self.session_convention.read_text()
38
51
 
39
52
  def _compute_block_hash(self, content: str) -> Optional[str]:
40
53
  """
@@ -106,10 +119,13 @@ class ATDDGate:
106
119
  print("Run 'atdd init' to set up ATDD in this repo.")
107
120
  return 1
108
121
 
122
+ session_convention = self._load_session_convention()
123
+
109
124
  if json:
110
125
  output = {
111
126
  "files": files,
112
127
  "constraints": self.KEY_CONSTRAINTS,
128
+ "session_convention": session_convention,
113
129
  }
114
130
  print(json_module.dumps(output, indent=2))
115
131
  return 0
@@ -132,6 +148,15 @@ class ATDDGate:
132
148
  for i, constraint in enumerate(self.KEY_CONSTRAINTS, 1):
133
149
  print(f" {i}. {constraint}")
134
150
 
151
+ print("\n" + "=" * 60)
152
+ print("Session Convention")
153
+ print("=" * 60)
154
+
155
+ if session_convention is None:
156
+ print(f"Warning: session convention not found at {self.session_convention}")
157
+ else:
158
+ print(session_convention.rstrip())
159
+
135
160
  print("\n" + "-" * 60)
136
161
  print("Before starting work, confirm you have loaded these rules.")
137
162
  print("-" * 60)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: atdd
3
- Version: 0.2.6
3
+ Version: 0.2.8
4
4
  Summary: ATDD Platform - Acceptance Test Driven Development toolkit
5
5
  License: MIT
6
6
  Requires-Python: >=3.10
@@ -24,6 +24,12 @@ Acceptance Test Driven Development toolkit for structured planning and conventio
24
24
  pip install atdd
25
25
  ```
26
26
 
27
+ ### Upgrade
28
+
29
+ ```bash
30
+ pip install --upgrade atdd
31
+ ```
32
+
27
33
  ### For Development
28
34
 
29
35
  ```bash
@@ -41,22 +47,15 @@ atdd --help
41
47
  ## Quick Start
42
48
 
43
49
  ```bash
44
- # Initialize ATDD in your project
45
- atdd init
46
-
47
- # Create a planning session
48
- atdd session new my-feature
49
-
50
- # List sessions
51
- atdd session list
52
-
53
- # Sync ATDD rules to agent config files
54
- atdd sync
55
-
56
- # Run validators
57
- atdd --test all
50
+ atdd init # Initialize ATDD in your project
51
+ atdd gate # ⚠️ START EVERY SESSION WITH THIS
52
+ atdd session new my-feature # Create a planning session
53
+ atdd sync # Sync rules to agent config files
54
+ atdd --test all # Run validators
58
55
  ```
59
56
 
57
+ > **⚠️ `atdd gate` is required.** Agents skip instruction files but can't ignore tool output. No gate = no ATDD guarantees.
58
+
60
59
  ## What It Does
61
60
 
62
61
  ATDD provides:
@@ -8,7 +8,7 @@ atdd/coach/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
8
8
  atdd/coach/commands/add_persistence_metadata.py,sha256=xAdeO9k53CIGTBhzNQbWenuzeoWKZimDBR9xBWaA3NU,6887
9
9
  atdd/coach/commands/analyze_migrations.py,sha256=2bLfR7OwicBXAZWB4R3Sm4d5jFe87d0O_kO68X96ykU,6083
10
10
  atdd/coach/commands/consumers.py,sha256=7vTexse8xznXSzNWjPGYuF4iJ8ZWymmOSkpcA6IWyxU,27514
11
- atdd/coach/commands/gate.py,sha256=Snua6kLXV1AE8xV67O5rmbWotFafdEXaN6OF_vnKrr0,4942
11
+ atdd/coach/commands/gate.py,sha256=_V2GypqoGixTs_kLWxFF3HgEt-Wi2r6Iv0YL75yWrWo,5829
12
12
  atdd/coach/commands/infer_governance_status.py,sha256=91-VnI64mOzijc1Cgkmr7cnNCir2-z2ITA2-SGwk3TU,4473
13
13
  atdd/coach/commands/initializer.py,sha256=Hli3hlL_aHnuDIzK0lHzE6KjG2QGvl2E2TvjmYoPPNE,6069
14
14
  atdd/coach/commands/interface.py,sha256=PPCwICFNN4ddPqucUATIiBrfEkDO66MZbYQkwNu6lm4,40459
@@ -178,9 +178,9 @@ atdd/tester/validators/test_red_supabase_layer_structure.py,sha256=26cnzPZAwSFy0
178
178
  atdd/tester/validators/test_telemetry_structure.py,sha256=hIUnU2WU-8PNIg9EVHe2fnUdIQKIOUm5AWEtCBUXLVk,22467
179
179
  atdd/tester/validators/test_typescript_test_naming.py,sha256=E-TyGv_GVlTfsbyuxrtv9sOWSZS_QcpH6rrJFbWoeeU,11280
180
180
  atdd/tester/validators/test_typescript_test_structure.py,sha256=eV89SD1RaKtchBZupqhnJmaruoROosf3LwB4Fwe4UJI,2612
181
- atdd-0.2.6.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
182
- atdd-0.2.6.dist-info/METADATA,sha256=uj0liRYhcc9r8GkETlt246mMeGRh4YKAL-dVVKnaEFg,6738
183
- atdd-0.2.6.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
184
- atdd-0.2.6.dist-info/entry_points.txt,sha256=-C3yrA1WQQfN3iuGmSzPapA5cKVBEYU5Q1HUffSJTbY,38
185
- atdd-0.2.6.dist-info/top_level.txt,sha256=VKkf6Uiyrm4RS6ULCGM-v8AzYN8K2yg8SMqwJLoO-xs,5
186
- atdd-0.2.6.dist-info/RECORD,,
181
+ atdd-0.2.8.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
182
+ atdd-0.2.8.dist-info/METADATA,sha256=O4Y33052lqboHY9iwK-RDxUetCvfQ9KLxihhYiSwwII,7007
183
+ atdd-0.2.8.dist-info/WHEEL,sha256=wUyA8OaulRlbfwMtmQsvNngGrxQHAvkKcvRmdizlJi0,92
184
+ atdd-0.2.8.dist-info/entry_points.txt,sha256=-C3yrA1WQQfN3iuGmSzPapA5cKVBEYU5Q1HUffSJTbY,38
185
+ atdd-0.2.8.dist-info/top_level.txt,sha256=VKkf6Uiyrm4RS6ULCGM-v8AzYN8K2yg8SMqwJLoO-xs,5
186
+ atdd-0.2.8.dist-info/RECORD,,
File without changes