@oleksandr.rudnychenko/sync_loop 0.3.2 → 0.3.3
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.
- package/dist/src/init.js +21 -0
- package/dist/src/init.js.map +1 -1
- package/dist/src/template/.agent-loop/patterns/api-standards.md +15 -64
- package/dist/src/template/.agent-loop/patterns/code-patterns.md +31 -199
- package/dist/src/template/.agent-loop/patterns/refactoring-workflow.md +34 -61
- package/dist/src/template/.agent-loop/patterns/testing-guide.md +49 -162
- package/dist/src/template/.agent-loop/reasoning-kernel.md +68 -15
- package/dist/src/template/.agent-loop/validate-n.md +3 -39
- package/dist/src/template/AGENTS.md +33 -4
- package/dist/src/template/backlog-index.md +28 -0
- package/dist/src/template/wiring/agents-claude-architect.md +89 -0
- package/dist/src/template/wiring/agents-claude-fixer.md +45 -0
- package/dist/src/template/wiring/agents-claude.md +14 -2
- package/dist/src/template/wiring/agents-github-architect.md +94 -0
- package/dist/src/template/wiring/agents-github-fixer.md +53 -0
- package/dist/src/template/wiring/agents-github.md +14 -2
- package/dist/src/template/wiring/skills-diagnose-failure.md +34 -0
- package/package.json +15 -3
- package/src/template/.agent-loop/patterns/api-standards.md +15 -64
- package/src/template/.agent-loop/patterns/code-patterns.md +31 -199
- package/src/template/.agent-loop/patterns/refactoring-workflow.md +34 -61
- package/src/template/.agent-loop/patterns/testing-guide.md +49 -162
- package/src/template/.agent-loop/reasoning-kernel.md +68 -15
- package/src/template/.agent-loop/validate-n.md +3 -39
- package/src/template/AGENTS.md +33 -4
- package/src/template/backlog-index.md +28 -0
- package/src/template/wiring/agents-claude-architect.md +89 -0
- package/src/template/wiring/agents-claude-fixer.md +45 -0
- package/src/template/wiring/agents-claude.md +14 -2
- package/src/template/wiring/agents-github-architect.md +94 -0
- package/src/template/wiring/agents-github-fixer.md +53 -0
- package/src/template/wiring/agents-github.md +14 -2
- package/src/template/wiring/skills-diagnose-failure.md +34 -0
package/dist/src/init.js
CHANGED
|
@@ -332,6 +332,15 @@ function generatePlatformFiles(projectPath, platform, stacks, options) {
|
|
|
332
332
|
const agentBody = applyStacks(readTemplate("wiring/agents-github.md"), stacks);
|
|
333
333
|
const agentResult = writeOutput(projectPath, ".github/agents/SyncLoop.agent.md", agentBody, options);
|
|
334
334
|
results.push(` ${formatWriteResult(agentResult)}`);
|
|
335
|
+
const architectBody = applyStacks(readTemplate("wiring/agents-github-architect.md"), stacks);
|
|
336
|
+
const architectResult = writeOutput(projectPath, ".github/agents/SyncLoop-Architect.agent.md", architectBody, options);
|
|
337
|
+
results.push(` ${formatWriteResult(architectResult)}`);
|
|
338
|
+
const fixerBody = applyStacks(readTemplate("wiring/agents-github-fixer.md"), stacks);
|
|
339
|
+
const fixerResult = writeOutput(projectPath, ".github/agents/SyncLoop-Fixer.agent.md", fixerBody, options);
|
|
340
|
+
results.push(` ${formatWriteResult(fixerResult)}`);
|
|
341
|
+
const diagnoseFailureBody = applyStacks(readTemplate("wiring/skills-diagnose-failure.md"), stacks);
|
|
342
|
+
const diagnoseFailureResult = writeOutput(projectPath, ".github/skills/diagnose-failure/SKILL.md", diagnoseFailureBody, options);
|
|
343
|
+
results.push(` ${formatWriteResult(diagnoseFailureResult)}`);
|
|
335
344
|
}
|
|
336
345
|
else if (platform === "cursor") {
|
|
337
346
|
const frontmatter = yamlFrontmatter({ description: "SyncLoop protocol summary and guardrails", alwaysApply: true });
|
|
@@ -344,6 +353,15 @@ function generatePlatformFiles(projectPath, platform, stacks, options) {
|
|
|
344
353
|
const agentBody = applyStacks(readTemplate("wiring/agents-claude.md"), stacks);
|
|
345
354
|
const agentResult = writeOutput(projectPath, ".claude/agents/SyncLoop.md", agentBody, options);
|
|
346
355
|
results.push(` ${formatWriteResult(agentResult)}`);
|
|
356
|
+
const architectBody = applyStacks(readTemplate("wiring/agents-claude-architect.md"), stacks);
|
|
357
|
+
const architectResult = writeOutput(projectPath, ".claude/agents/SyncLoop-Architect.md", architectBody, options);
|
|
358
|
+
results.push(` ${formatWriteResult(architectResult)}`);
|
|
359
|
+
const fixerBody = applyStacks(readTemplate("wiring/agents-claude-fixer.md"), stacks);
|
|
360
|
+
const fixerResult = writeOutput(projectPath, ".claude/agents/SyncLoop-Fixer.md", fixerBody, options);
|
|
361
|
+
results.push(` ${formatWriteResult(fixerResult)}`);
|
|
362
|
+
const diagnoseFailureBody = applyStacks(readTemplate("wiring/skills-diagnose-failure.md"), stacks);
|
|
363
|
+
const diagnoseFailureResult = writeOutput(projectPath, ".claude/skills/diagnose-failure/SKILL.md", diagnoseFailureBody, options);
|
|
364
|
+
results.push(` ${formatWriteResult(diagnoseFailureResult)}`);
|
|
347
365
|
}
|
|
348
366
|
return results;
|
|
349
367
|
}
|
|
@@ -391,6 +409,9 @@ export function init(projectPath, target = "all", stacks = [], options = {}) {
|
|
|
391
409
|
const agentsContent = applyStacks(readTemplate("AGENTS.md"), effectiveStacks);
|
|
392
410
|
const agentsResult = writeOutput(root, "AGENTS.md", agentsContent, mergedOptions);
|
|
393
411
|
results.push(`AGENTS.md (cross-platform entrypoint: ${formatWriteResult(agentsResult)})`);
|
|
412
|
+
const backlogContent = readTemplate("backlog-index.md");
|
|
413
|
+
const backlogResult = writeOutput(root, "docs/backlog/index.md", backlogContent, { ...mergedOptions, overwrite: false });
|
|
414
|
+
results.push(`docs/backlog/index.md (${formatWriteResult(backlogResult)})`);
|
|
394
415
|
const targets = target === "all"
|
|
395
416
|
? ["copilot", "cursor", "claude"]
|
|
396
417
|
: [target];
|
package/dist/src/init.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,76 +19,27 @@ Referenced from [../patterns.md](../patterns.md).
|
|
|
19
19
|
|
|
20
20
|
## Workflow for New Routes
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
4. Run spec generation script
|
|
22
|
+
1. Define Request and Response **typed models** in the module's models file — every field has a declared type and sensible defaults for optional fields
|
|
23
|
+
2. Implement the route handler: parse input into the request model, resolve the service via dependency injection, call the service, and return the response model
|
|
24
|
+
3. Register the router in the app entrypoint with appropriate semantic tags
|
|
25
|
+
4. Run the spec generation script (OpenAPI, Swagger, or equivalent)
|
|
27
26
|
5. Verify generated docs match expectations
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
```python
|
|
33
|
-
# models.py — typed boundary contracts
|
|
34
|
-
@dataclass
|
|
35
|
-
class CreateEntityRequest:
|
|
36
|
-
name: str
|
|
37
|
-
entity_type: str
|
|
38
|
-
metadata: dict[str, Any] = field(default_factory=dict)
|
|
39
|
-
|
|
40
|
-
@dataclass
|
|
41
|
-
class EntityResponse:
|
|
42
|
-
id: str
|
|
43
|
-
name: str
|
|
44
|
-
entity_type: str
|
|
45
|
-
status: str
|
|
46
|
-
created_at: str
|
|
47
|
-
|
|
48
|
-
# routes.py — thin transport layer
|
|
49
|
-
@router.post("/entities", response_model=EntityResponse)
|
|
50
|
-
def create_entity(
|
|
51
|
-
data: CreateEntityRequest,
|
|
52
|
-
service: EntityService = Depends(get_service),
|
|
53
|
-
) -> EntityResponse:
|
|
54
|
-
"""Create a new entity for processing.
|
|
55
|
-
|
|
56
|
-
Validates input, delegates to service, returns created entity.
|
|
57
|
-
"""
|
|
58
|
-
result = service.create(data)
|
|
59
|
-
return EntityResponse(
|
|
60
|
-
id=result.id,
|
|
61
|
-
name=result.name,
|
|
62
|
-
entity_type=result.entity_type,
|
|
63
|
-
status=result.status,
|
|
64
|
-
created_at=result.created_at.isoformat(),
|
|
65
|
-
)
|
|
66
|
-
```
|
|
27
|
+
|
|
28
|
+
### Route Handler Structure
|
|
29
|
+
|
|
30
|
+
A route handler is a thin transport function. It declares the HTTP method and path, accepts a typed request model as input, resolves the service through the framework's dependency injection mechanism, delegates the business operation to the service, and returns a typed response model. The handler contains no business logic, conditionals, or data transformations beyond serialization.
|
|
67
31
|
|
|
68
32
|
---
|
|
69
33
|
|
|
70
34
|
## Error Envelope
|
|
71
35
|
|
|
72
|
-
All error responses must follow a consistent structure:
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
message: str # Human-readable description
|
|
80
|
-
details: dict = field(default_factory=dict) # Optional context
|
|
81
|
-
|
|
82
|
-
# Usage at route boundary
|
|
83
|
-
@router.get("/entities/{entity_id}")
|
|
84
|
-
def get_entity(entity_id: str, service = Depends(get_service)):
|
|
85
|
-
try:
|
|
86
|
-
return service.get(entity_id)
|
|
87
|
-
except NotFoundError as exc:
|
|
88
|
-
raise HTTPException(status_code=404, detail=str(exc))
|
|
89
|
-
except ValidationError as exc:
|
|
90
|
-
raise HTTPException(status_code=400, detail=str(exc))
|
|
91
|
-
```
|
|
36
|
+
All error responses must follow a consistent structure with three fields:
|
|
37
|
+
|
|
38
|
+
- **error**: a machine-readable error code (string)
|
|
39
|
+
- **message**: a human-readable description (string)
|
|
40
|
+
- **details**: optional context dictionary for debugging
|
|
41
|
+
|
|
42
|
+
At the route boundary, catch domain-specific exceptions (NotFoundError, ValidationError) and translate them to the appropriate HTTP status code plus an error envelope. Let unexpected exceptions propagate to a global handler that returns a generic 500-level response.
|
|
92
43
|
|
|
93
44
|
---
|
|
94
45
|
|
|
@@ -9,34 +9,11 @@ Referenced from [../patterns.md](../patterns.md).
|
|
|
9
9
|
|
|
10
10
|
Abstracts infrastructure behind protocol interfaces. Decouples domain logic from external systems.
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
class
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
collection: str,
|
|
18
|
-
query: str,
|
|
19
|
-
*,
|
|
20
|
-
filters: dict | None = None,
|
|
21
|
-
limit: int = 10,
|
|
22
|
-
) -> list[Record]: ...
|
|
23
|
-
|
|
24
|
-
# Adapter (concrete implementation)
|
|
25
|
-
class DatabaseAdapter:
|
|
26
|
-
def __init__(self, client: DBClient) -> None:
|
|
27
|
-
self._client = client
|
|
28
|
-
|
|
29
|
-
def search(
|
|
30
|
-
self,
|
|
31
|
-
collection: str,
|
|
32
|
-
query: str,
|
|
33
|
-
*,
|
|
34
|
-
filters: dict | None = None,
|
|
35
|
-
limit: int = 10,
|
|
36
|
-
) -> list[Record]:
|
|
37
|
-
# Implementation against real infrastructure
|
|
38
|
-
...
|
|
39
|
-
```
|
|
12
|
+
Define a **Port** as an interface (or protocol/trait) that declares the operations a service needs — method names, parameter types, and return types — without any implementation details. The Port belongs to the domain layer and knows nothing about databases, HTTP, or file systems.
|
|
13
|
+
|
|
14
|
+
Create an **Adapter** as a concrete class that implements the Port interface. Each adapter encapsulates the specifics of one external system (a database client, an HTTP API, a message queue). Multiple adapters can satisfy the same port.
|
|
15
|
+
|
|
16
|
+
Services receive the port interface via constructor injection, never the adapter directly.
|
|
40
17
|
|
|
41
18
|
**Key rules:**
|
|
42
19
|
- Port lives in `libs/{component}/port.*`
|
|
@@ -56,17 +33,11 @@ Each domain module follows a consistent multi-file layout:
|
|
|
56
33
|
| `routes.*` | Transport endpoints |
|
|
57
34
|
| `tasks.*` | Background tasks (if async processing needed) |
|
|
58
35
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
def __init__(self, repository: OrderRepository) -> None:
|
|
63
|
-
self._repository = repository
|
|
36
|
+
The **models** file defines data structures (classes, structs, or types) representing the core domain — entities with identity, value objects without identity, and any associated enums or constants.
|
|
37
|
+
|
|
38
|
+
The **services** file contains business logic: methods that operate on models, enforce invariants, and coordinate between ports. Services never reference transport or serialization concerns.
|
|
64
39
|
|
|
65
|
-
|
|
66
|
-
order = self._repository.get(order_id)
|
|
67
|
-
# business logic here
|
|
68
|
-
return ProcessResult(order_id=order.id, status="completed")
|
|
69
|
-
```
|
|
40
|
+
The **routes** file is the transport boundary — HTTP handlers, CLI entry points, or message consumers. Routes parse input, delegate to a service, and format the response. No business logic lives here.
|
|
70
41
|
|
|
71
42
|
---
|
|
72
43
|
|
|
@@ -74,219 +45,80 @@ class OrderService:
|
|
|
74
45
|
|
|
75
46
|
Task handlers stay thin. Business logic always lives in services.
|
|
76
47
|
|
|
77
|
-
|
|
78
|
-
# tasks.py — thin wrapper, delegates to service
|
|
79
|
-
def process_order_task(runtime: TaskRuntime, order_id: str):
|
|
80
|
-
"""Background task that delegates to service."""
|
|
81
|
-
service = runtime.order_service
|
|
82
|
-
service.update_status(order_id, status="processing")
|
|
83
|
-
|
|
84
|
-
try:
|
|
85
|
-
service.process(order_id=order_id)
|
|
86
|
-
service.update_status(order_id, status="completed")
|
|
87
|
-
except Exception as exc:
|
|
88
|
-
service.update_status(order_id, status="failed", error=str(exc))
|
|
89
|
-
raise
|
|
90
|
-
```
|
|
48
|
+
A task handler is a function or method invoked by a job queue or scheduler. It receives a runtime context (containing pre-wired service instances) and the task payload. The handler calls the appropriate service method, updates task status on success and failure, and re-raises exceptions for the queue's retry mechanism.
|
|
91
49
|
|
|
92
50
|
**Key rules:**
|
|
93
51
|
- Tasks never contain business logic
|
|
94
|
-
- Dependencies injected via runtime, not imported directly
|
|
95
|
-
- Always update status on success and failure
|
|
52
|
+
- Dependencies injected via runtime context, not imported directly
|
|
53
|
+
- Always update status on both success and failure paths
|
|
96
54
|
|
|
97
55
|
---
|
|
98
56
|
|
|
99
57
|
## P4 · App Context / Composition Root
|
|
100
58
|
|
|
101
|
-
Centralized dependency wiring, initialized once at startup
|
|
102
|
-
|
|
103
|
-
```python
|
|
104
|
-
@dataclass
|
|
105
|
-
class AppContext:
|
|
106
|
-
config: Config
|
|
107
|
-
session_factory: SessionFactory
|
|
108
|
-
services: ServiceRegistry
|
|
109
|
-
logger: Logger
|
|
110
|
-
|
|
111
|
-
_context: AppContext | None = None
|
|
59
|
+
Centralized dependency wiring, initialized once at startup.
|
|
112
60
|
|
|
113
|
-
|
|
114
|
-
global _context
|
|
115
|
-
if _context:
|
|
116
|
-
return _context
|
|
117
|
-
_context = AppContext(config=config, ...)
|
|
118
|
-
return _context
|
|
119
|
-
|
|
120
|
-
def get_app_context() -> AppContext:
|
|
121
|
-
if _context is None:
|
|
122
|
-
return init_app_context(load_config())
|
|
123
|
-
return _context
|
|
124
|
-
```
|
|
61
|
+
Define an **AppContext** as a container (class or struct) holding all application-wide dependencies: configuration, database session factories, service registries, and loggers. A factory function creates the context once during startup, caching it as a module-level singleton. All subsequent access goes through a getter that returns the cached instance. This ensures consistent wiring and makes the full dependency graph visible in one place.
|
|
125
62
|
|
|
126
63
|
---
|
|
127
64
|
|
|
128
65
|
## P5 · Transport Route
|
|
129
66
|
|
|
130
|
-
Routes only handle transport concerns; all logic delegated to services
|
|
131
|
-
|
|
132
|
-
```python
|
|
133
|
-
router = APIRouter()
|
|
67
|
+
Routes only handle transport concerns; all logic delegated to services.
|
|
134
68
|
|
|
135
|
-
|
|
136
|
-
ctx = get_app_context()
|
|
137
|
-
return OrderService(ctx.repository)
|
|
138
|
-
|
|
139
|
-
@router.post("/orders")
|
|
140
|
-
def create_order(
|
|
141
|
-
data: CreateOrderRequest,
|
|
142
|
-
service: OrderService = Depends(get_service),
|
|
143
|
-
) -> OrderResponse:
|
|
144
|
-
result = service.create(data)
|
|
145
|
-
return OrderResponse(id=result.id, status=result.status)
|
|
146
|
-
```
|
|
69
|
+
A route handler performs three steps: (1) parse and validate the incoming request into a typed model, (2) resolve the appropriate service instance via dependency injection, and (3) call the service method and map the result to a typed response model. The handler never contains conditionals, loops, or data transformations beyond serialization.
|
|
147
70
|
|
|
148
71
|
---
|
|
149
72
|
|
|
150
73
|
## P6 · Typed Models
|
|
151
74
|
|
|
152
|
-
Domain entities with explicit types and serialization
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
@dataclass(slots=True)
|
|
156
|
-
class OrderItem:
|
|
157
|
-
product_id: str
|
|
158
|
-
quantity: int
|
|
159
|
-
unit_price: float
|
|
160
|
-
tags: list[str] = field(default_factory=list)
|
|
161
|
-
|
|
162
|
-
def to_dict(self) -> dict[str, Any]:
|
|
163
|
-
return {
|
|
164
|
-
"product_id": self.product_id,
|
|
165
|
-
"quantity": self.quantity,
|
|
166
|
-
"unit_price": self.unit_price,
|
|
167
|
-
"tags": self.tags,
|
|
168
|
-
}
|
|
169
|
-
```
|
|
75
|
+
Domain entities with explicit types and serialization.
|
|
76
|
+
|
|
77
|
+
Every data structure that crosses a boundary (API request, API response, database row, message payload) must be a typed model — a class, struct, or schema with named fields and declared types. Each model provides a serialization method (to dictionary, JSON, or equivalent) for transport. Use slot-based or frozen classes where the language supports them to prevent accidental mutation.
|
|
170
78
|
|
|
171
79
|
---
|
|
172
80
|
|
|
173
81
|
## P7 · Collection/Enum Safety
|
|
174
82
|
|
|
175
|
-
Replace magic strings with typed enums
|
|
83
|
+
Replace magic strings with typed enums.
|
|
176
84
|
|
|
177
|
-
|
|
178
|
-
class Collection(str, Enum):
|
|
179
|
-
ORDERS = "orders"
|
|
180
|
-
PRODUCTS = "products"
|
|
181
|
-
USERS = "users"
|
|
182
|
-
|
|
183
|
-
# Usage: repository.query(Collection.ORDERS, ...)
|
|
184
|
-
# NOT: repository.query("orders", ...)
|
|
185
|
-
```
|
|
85
|
+
Define an enum (or string enum / literal union) for any fixed set of values: collection names, status codes, category labels, entity types. All code references the enum member, never a raw string. This centralizes valid values in one declaration and makes invalid states unrepresentable.
|
|
186
86
|
|
|
187
87
|
---
|
|
188
88
|
|
|
189
89
|
## P8 · Error Handling
|
|
190
90
|
|
|
191
|
-
Layered exception hierarchy with boundary translation
|
|
192
|
-
|
|
193
|
-
```python
|
|
194
|
-
# Domain exceptions
|
|
195
|
-
class DomainError(Exception):
|
|
196
|
-
"""Base error for domain."""
|
|
197
|
-
|
|
198
|
-
class NotFoundError(DomainError):
|
|
199
|
-
"""Resource not found."""
|
|
200
|
-
|
|
201
|
-
class ValidationError(DomainError):
|
|
202
|
-
"""Invalid input or state."""
|
|
91
|
+
Layered exception hierarchy with boundary translation.
|
|
203
92
|
|
|
204
|
-
|
|
205
|
-
@router.get("/orders/{order_id}")
|
|
206
|
-
def get_order(order_id: str, service = Depends(get_service)):
|
|
207
|
-
try:
|
|
208
|
-
return service.get(order_id)
|
|
209
|
-
except NotFoundError as exc:
|
|
210
|
-
raise HTTPException(status_code=404, detail=str(exc))
|
|
211
|
-
except ValidationError as exc:
|
|
212
|
-
raise HTTPException(status_code=400, detail=str(exc))
|
|
213
|
-
```
|
|
93
|
+
Define a base domain exception class. Derive specific exceptions from it: `NotFoundError`, `ValidationError`, `ConflictError`, etc. Business logic raises domain exceptions only. At the transport boundary (route handler), catch domain exceptions and translate them to the appropriate HTTP status codes or error responses. Internal implementation errors (unexpected crashes) propagate to a global handler that returns a generic 500-level response.
|
|
214
94
|
|
|
215
95
|
---
|
|
216
96
|
|
|
217
97
|
## P9 · Type Hints Everywhere
|
|
218
98
|
|
|
219
|
-
All code must have complete type annotations
|
|
99
|
+
All code must have complete type annotations.
|
|
220
100
|
|
|
221
|
-
|
|
222
|
-
# ✅ Good — fully typed
|
|
223
|
-
def process(
|
|
224
|
-
order_id: str,
|
|
225
|
-
*,
|
|
226
|
-
callback: Callable[..., Awaitable[Response]] | None = None,
|
|
227
|
-
) -> tuple[str, dict[str, Any]] | None:
|
|
228
|
-
...
|
|
229
|
-
|
|
230
|
-
# ❌ Bad — missing annotations
|
|
231
|
-
def process(order_id, callback=None):
|
|
232
|
-
...
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
**Common type aliases:**
|
|
236
|
-
```python
|
|
237
|
-
SessionFactory = Callable[[], Session]
|
|
238
|
-
Filters = Mapping[str, Any]
|
|
239
|
-
```
|
|
101
|
+
Every function signature declares parameter types and return type. Use union types for nullable values. Use generic types for collections. Define type aliases for complex or repeated signatures (e.g., a factory callable, a filter mapping). Avoid `any` / untyped containers. The type checker must pass with zero errors on every commit.
|
|
240
102
|
|
|
241
103
|
---
|
|
242
104
|
|
|
243
105
|
## P10 · Service Orchestration
|
|
244
106
|
|
|
245
|
-
Services accept all dependencies via constructor — no hidden state
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
# Production code
|
|
249
|
-
class AnalysisService:
|
|
250
|
-
def __init__(
|
|
251
|
-
self,
|
|
252
|
-
repository: Repository,
|
|
253
|
-
evaluator: EvaluationService,
|
|
254
|
-
):
|
|
255
|
-
self._repository = repository
|
|
256
|
-
self._evaluator = evaluator
|
|
257
|
-
|
|
258
|
-
# Test code — inject mocks
|
|
259
|
-
service = AnalysisService(
|
|
260
|
-
repository=mock_repository,
|
|
261
|
-
evaluator=mock_evaluator,
|
|
262
|
-
)
|
|
263
|
-
```
|
|
107
|
+
Services accept all dependencies via constructor — no hidden state.
|
|
108
|
+
|
|
109
|
+
A service class receives every collaborator (repositories, other services, external clients) through its constructor. The constructor stores them as private fields. No service creates its own dependencies internally. This makes the dependency graph explicit and enables test doubles to be injected without patching or monkey-patching.
|
|
264
110
|
|
|
265
111
|
---
|
|
266
112
|
|
|
267
113
|
## P11 · Config Isolation
|
|
268
114
|
|
|
269
|
-
Centralized, environment-based configuration with startup validation
|
|
270
|
-
|
|
271
|
-
```python
|
|
272
|
-
@dataclass
|
|
273
|
-
class Config:
|
|
274
|
-
database_url: str
|
|
275
|
-
debug: bool = False
|
|
276
|
-
max_workers: int = 4
|
|
115
|
+
Centralized, environment-based configuration with startup validation.
|
|
277
116
|
|
|
278
|
-
|
|
279
|
-
def from_env(cls) -> "Config":
|
|
280
|
-
return cls(
|
|
281
|
-
database_url=os.environ["DATABASE_URL"],
|
|
282
|
-
debug=os.environ.get("DEBUG", "0") == "1",
|
|
283
|
-
max_workers=int(os.environ.get("MAX_WORKERS", "4")),
|
|
284
|
-
)
|
|
285
|
-
```
|
|
117
|
+
Define a configuration class with typed fields and default values. A class method reads all values from environment variables at startup, parsing them into the correct types. If a required variable is missing, startup fails immediately with a clear error. No other code reads environment variables directly — all access goes through the configuration instance.
|
|
286
118
|
|
|
287
119
|
**Key rules:**
|
|
288
120
|
- All config read from environment at startup
|
|
289
|
-
- No scattered
|
|
121
|
+
- No scattered environment variable calls inside business logic
|
|
290
122
|
- Test config overrides controlled via fixtures
|
|
291
123
|
|
|
292
124
|
---
|
|
@@ -7,55 +7,39 @@ Referenced from [../patterns.md](../patterns.md).
|
|
|
7
7
|
|
|
8
8
|
## Refactoring Checklist
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
☐ Create report in docs/reports/ if the refactor is major
|
|
34
|
-
```
|
|
10
|
+
**Phase 1: PLAN**
|
|
11
|
+
- Identify all files to move, rename, or extract
|
|
12
|
+
- Map old imports to new imports
|
|
13
|
+
- Check for documentation references (README, docstrings, agent-loop specs)
|
|
14
|
+
- Identify public interfaces that must remain stable
|
|
15
|
+
|
|
16
|
+
**Phase 2: EXECUTE**
|
|
17
|
+
- Move files to their new locations
|
|
18
|
+
- Update imports in moved files (internal relative references)
|
|
19
|
+
- Update all caller imports (search the entire codebase for every reference)
|
|
20
|
+
- Update documentation examples if they contain import paths
|
|
21
|
+
- Update `.agent-loop/patterns.md` structure section if layout changed
|
|
22
|
+
|
|
23
|
+
**Phase 3: VALIDATE (NON-NEGOTIABLE)**
|
|
24
|
+
1. Type check: run the project type checker
|
|
25
|
+
2. Run tests: execute the test suite with fail-fast
|
|
26
|
+
3. Check docs: search for old import paths across all files
|
|
27
|
+
4. Verify no orphaned imports (unused or broken)
|
|
28
|
+
|
|
29
|
+
**Phase 4: DOCUMENT**
|
|
30
|
+
- Update README structure section
|
|
31
|
+
- Update architecture docs if needed
|
|
32
|
+
- Create report in `docs/reports/` if the refactor is major
|
|
35
33
|
|
|
36
34
|
---
|
|
37
35
|
|
|
38
36
|
## Example: Moving a Module File
|
|
39
37
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
# e.g., relative imports that changed due to new directory depth
|
|
46
|
-
|
|
47
|
-
# 3. Find ALL references to the old path
|
|
48
|
-
grep -r "from src.modules.old_location.processor" .
|
|
49
|
-
grep -r "import old_location.processor" .
|
|
50
|
-
|
|
51
|
-
# 4. Update each reference found:
|
|
52
|
-
# - tests/unit/test_processor.py
|
|
53
|
-
# - src/modules/new_location/tasks.py
|
|
54
|
-
# - docs/architecture.md (if it mentions import paths)
|
|
55
|
-
|
|
56
|
-
# 5. MANDATORY: Run validation
|
|
57
|
-
# Type check → Tests → Grep for leftover old paths
|
|
58
|
-
```
|
|
38
|
+
1. Move the file from its old location to the new location
|
|
39
|
+
2. Update imports inside the moved file (relative references that changed due to new directory depth)
|
|
40
|
+
3. Search the entire codebase for all references to the old path — tests, other modules, and documentation
|
|
41
|
+
4. Update each reference found to point to the new path
|
|
42
|
+
5. Run the mandatory validation: type check → tests → search for leftover old paths
|
|
59
43
|
|
|
60
44
|
**Why tests after docs?** Documentation often contains import examples. Tests verify imports actually work and catch typos in updated paths.
|
|
61
45
|
|
|
@@ -63,23 +47,12 @@ grep -r "import old_location.processor" .
|
|
|
63
47
|
|
|
64
48
|
## Example: Extracting a Function to a New Module
|
|
65
49
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
# 3. In the original file, replace the function body with an import:
|
|
74
|
-
# from src.libs.parsing.helpers import parse_response
|
|
75
|
-
|
|
76
|
-
# 4. Find all OTHER callers of the original location
|
|
77
|
-
grep -r "from src.modules.analysis.utils import parse_response" .
|
|
78
|
-
|
|
79
|
-
# 5. Update all callers to use the new import path
|
|
80
|
-
|
|
81
|
-
# 6. VALIDATE: type check + tests + grep for old path
|
|
82
|
-
```
|
|
50
|
+
1. Create the new module file
|
|
51
|
+
2. Move the function definition to the new file and update its internal imports
|
|
52
|
+
3. In the original file, replace the function body with a re-export from the new location
|
|
53
|
+
4. Search for all other callers of the function at the original location
|
|
54
|
+
5. Update all callers to use the new import path
|
|
55
|
+
6. Run the mandatory validation: type check → tests → search for old path
|
|
83
56
|
|
|
84
57
|
---
|
|
85
58
|
|