@cleocode/core 2026.4.5 → 2026.4.6
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/discovery.d.ts +69 -0
- package/dist/discovery.d.ts.map +1 -0
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1643 -2349
- package/dist/index.js.map +4 -4
- package/dist/init.d.ts +51 -0
- package/dist/init.d.ts.map +1 -1
- package/dist/internal.d.ts +9 -1
- package/dist/internal.d.ts.map +1 -1
- package/dist/lifecycle/default-chain.d.ts +8 -2
- package/dist/lifecycle/default-chain.d.ts.map +1 -1
- package/dist/lifecycle/index.d.ts +1 -0
- package/dist/lifecycle/index.d.ts.map +1 -1
- package/dist/lifecycle/stage-guidance.d.ts +140 -0
- package/dist/lifecycle/stage-guidance.d.ts.map +1 -0
- package/dist/orchestration/protocol-validators.d.ts +122 -3
- package/dist/orchestration/protocol-validators.d.ts.map +1 -1
- package/dist/paths.d.ts +91 -0
- package/dist/paths.d.ts.map +1 -1
- package/dist/scaffold.d.ts +31 -1
- package/dist/scaffold.d.ts.map +1 -1
- package/dist/skills/dispatch.d.ts +1 -1
- package/dist/skills/skill-paths.d.ts +9 -6
- package/dist/skills/skill-paths.d.ts.map +1 -1
- package/dist/validation/protocols/_shared.d.ts +40 -0
- package/dist/validation/protocols/_shared.d.ts.map +1 -0
- package/dist/validation/protocols/architecture-decision.d.ts +23 -0
- package/dist/validation/protocols/architecture-decision.d.ts.map +1 -0
- package/dist/validation/protocols/artifact-publish.d.ts +22 -0
- package/dist/validation/protocols/artifact-publish.d.ts.map +1 -0
- package/dist/validation/protocols/consensus.d.ts +11 -17
- package/dist/validation/protocols/consensus.d.ts.map +1 -1
- package/dist/validation/protocols/contribution.d.ts +12 -17
- package/dist/validation/protocols/contribution.d.ts.map +1 -1
- package/dist/validation/protocols/decomposition.d.ts +18 -21
- package/dist/validation/protocols/decomposition.d.ts.map +1 -1
- package/dist/validation/protocols/implementation.d.ts +9 -17
- package/dist/validation/protocols/implementation.d.ts.map +1 -1
- package/dist/validation/protocols/provenance.d.ts +23 -0
- package/dist/validation/protocols/provenance.d.ts.map +1 -0
- package/dist/validation/protocols/release.d.ts +25 -0
- package/dist/validation/protocols/release.d.ts.map +1 -0
- package/dist/validation/protocols/research.d.ts +9 -17
- package/dist/validation/protocols/research.d.ts.map +1 -1
- package/dist/validation/protocols/specification.d.ts +7 -17
- package/dist/validation/protocols/specification.d.ts.map +1 -1
- package/dist/validation/protocols/testing.d.ts +22 -0
- package/dist/validation/protocols/testing.d.ts.map +1 -0
- package/dist/validation/protocols/validation.d.ts +22 -0
- package/dist/validation/protocols/validation.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/__tests__/injection-mvi-tiers.test.js +54 -90
- package/src/__tests__/injection-mvi-tiers.test.js.map +1 -1
- package/src/discovery.ts +235 -0
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js +3 -1
- package/src/hooks/handlers/__tests__/hook-automation-e2e.test.js.map +1 -1
- package/src/index.ts +16 -0
- package/src/init.ts +196 -0
- package/src/internal.ts +31 -1
- package/src/lifecycle/default-chain.ts +11 -2
- package/src/lifecycle/index.ts +10 -0
- package/src/lifecycle/stage-guidance.ts +282 -0
- package/src/metrics/__tests__/provider-detection.test.js +19 -7
- package/src/metrics/__tests__/provider-detection.test.js.map +1 -1
- package/src/orchestration/__tests__/protocol-validators.test.js +228 -8
- package/src/orchestration/__tests__/protocol-validators.test.js.map +1 -1
- package/src/orchestration/__tests__/protocol-validators.test.ts +259 -7
- package/src/orchestration/protocol-validators.ts +419 -4
- package/src/paths.ts +110 -0
- package/src/scaffold.ts +240 -4
- package/src/skills/dispatch.ts +6 -6
- package/src/skills/skill-paths.ts +27 -23
- package/src/validation/protocols/_shared.ts +88 -0
- package/src/validation/protocols/architecture-decision.ts +52 -0
- package/src/validation/protocols/artifact-publish.ts +49 -0
- package/src/validation/protocols/consensus.ts +44 -74
- package/src/validation/protocols/contribution.ts +28 -65
- package/src/validation/protocols/decomposition.ts +37 -64
- package/src/validation/protocols/implementation.ts +25 -65
- package/src/validation/protocols/protocols-markdown/architecture-decision.md +303 -0
- package/src/validation/protocols/protocols-markdown/artifact-publish.md +600 -0
- package/src/validation/protocols/protocols-markdown/consensus.md +322 -0
- package/src/validation/protocols/protocols-markdown/contribution.md +388 -0
- package/src/validation/protocols/protocols-markdown/decomposition.md +421 -0
- package/src/validation/protocols/protocols-markdown/implementation.md +357 -0
- package/src/validation/protocols/protocols-markdown/provenance.md +613 -0
- package/src/validation/protocols/protocols-markdown/release.md +783 -0
- package/src/validation/protocols/protocols-markdown/research.md +261 -0
- package/src/validation/protocols/protocols-markdown/specification.md +300 -0
- package/src/validation/protocols/protocols-markdown/testing.md +287 -0
- package/src/validation/protocols/protocols-markdown/validation.md +242 -0
- package/src/validation/protocols/provenance.ts +50 -0
- package/src/validation/protocols/release.ts +44 -0
- package/src/validation/protocols/research.ts +25 -87
- package/src/validation/protocols/specification.ts +27 -89
- package/src/validation/protocols/testing.ts +46 -0
- package/src/validation/protocols/validation.ts +46 -0
- package/dist/validation/protocols/release-protocol.d.ts +0 -27
- package/dist/validation/protocols/release-protocol.d.ts.map +0 -1
- package/dist/validation/protocols/testing-protocol.d.ts +0 -27
- package/dist/validation/protocols/testing-protocol.d.ts.map +0 -1
- package/dist/validation/protocols/validation-protocol.d.ts +0 -27
- package/dist/validation/protocols/validation-protocol.d.ts.map +0 -1
- package/schemas/agent-configs.schema.json +0 -120
- package/schemas/agent-registry.schema.json +0 -132
- package/schemas/archive.schema.json +0 -450
- package/schemas/brain-decision.schema.json +0 -69
- package/schemas/brain-learning.schema.json +0 -57
- package/schemas/brain-pattern.schema.json +0 -72
- package/schemas/critical-path.schema.json +0 -246
- package/schemas/deps-cache.schema.json +0 -97
- package/schemas/doctor-output.schema.json +0 -283
- package/schemas/error.schema.json +0 -161
- package/schemas/global-config.schema.json +0 -219
- package/schemas/grade.schema.json +0 -49
- package/schemas/log.schema.json +0 -250
- package/schemas/metrics.schema.json +0 -328
- package/schemas/migrations.schema.json +0 -150
- package/schemas/nexus-registry.schema.json +0 -90
- package/schemas/operation-constitution.schema.json +0 -438
- package/schemas/output.schema.json +0 -164
- package/schemas/projects-registry.schema.json +0 -107
- package/schemas/protocol-frontmatter.schema.json +0 -72
- package/schemas/rcasd-consensus-report.schema.json +0 -10
- package/schemas/rcasd-evidence.schema.json +0 -42
- package/schemas/rcasd-gate-result.schema.json +0 -46
- package/schemas/rcasd-hitl-resolution.schema.json +0 -10
- package/schemas/rcasd-index.schema.json +0 -10
- package/schemas/rcasd-manifest.schema.json +0 -10
- package/schemas/rcasd-research-output.schema.json +0 -10
- package/schemas/rcasd-spec-frontmatter.schema.json +0 -10
- package/schemas/rcasd-stage-transition.schema.json +0 -38
- package/schemas/releases.schema.json +0 -267
- package/schemas/skills-manifest.schema.json +0 -91
- package/schemas/spec-index.schema.json +0 -196
- package/schemas/system-flow-atlas.schema.json +0 -125
- package/src/conduit/__tests__/dual-api-e2e.test.d.ts.map +0 -1
- package/src/conduit/__tests__/dual-api-e2e.test.js +0 -178
- package/src/conduit/__tests__/dual-api-e2e.test.js.map +0 -1
- package/src/conduit/__tests__/dual-api-e2e.test.ts +0 -212
- package/src/validation/protocols/release-protocol.ts +0 -80
- package/src/validation/protocols/testing-protocol.ts +0 -93
- package/src/validation/protocols/validation-protocol.ts +0 -93
|
@@ -0,0 +1,357 @@
|
|
|
1
|
+
---
|
|
2
|
+
id: IMPL
|
|
3
|
+
title: Implementation Protocol
|
|
4
|
+
version: 1.0.0
|
|
5
|
+
status: active
|
|
6
|
+
type: base
|
|
7
|
+
audience: [llm-agent]
|
|
8
|
+
tags: [implementation, coding, development]
|
|
9
|
+
skillRef: ct-task-executor
|
|
10
|
+
lastUpdated: 2026-02-24
|
|
11
|
+
enforcement: strict
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Implementation Protocol
|
|
15
|
+
|
|
16
|
+
**Provenance**: @task T3155, @epic T3147
|
|
17
|
+
**Version**: 1.0.1
|
|
18
|
+
**Type**: Conditional Protocol
|
|
19
|
+
**Max Active**: 3 protocols (including base)
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Trigger Conditions
|
|
24
|
+
|
|
25
|
+
This protocol activates when the task involves:
|
|
26
|
+
|
|
27
|
+
| Trigger | Keywords | Context |
|
|
28
|
+
|---------|----------|---------|
|
|
29
|
+
| Building | "implement", "build", "create", "develop" | New functionality |
|
|
30
|
+
| Coding | "code", "write", "program" | Software creation |
|
|
31
|
+
| Fixing | "fix", "bug", "patch", "repair" | Issue resolution |
|
|
32
|
+
| Enhancement | "improve", "enhance", "optimize" | Existing code |
|
|
33
|
+
|
|
34
|
+
**Explicit Override**: `--protocol implementation` flag on task creation.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Requirements (RFC 2119)
|
|
39
|
+
|
|
40
|
+
### MUST
|
|
41
|
+
|
|
42
|
+
| Requirement | Description |
|
|
43
|
+
|-------------|-------------|
|
|
44
|
+
| IMPL-001 | MUST include tests for new functionality |
|
|
45
|
+
| IMPL-002 | MUST follow project code style conventions |
|
|
46
|
+
| IMPL-003 | MUST include JSDoc/docstring provenance tags |
|
|
47
|
+
| IMPL-004 | MUST verify changes pass existing tests |
|
|
48
|
+
| IMPL-005 | MUST document breaking changes |
|
|
49
|
+
| IMPL-006 | MUST write implementation summary to manifest |
|
|
50
|
+
| IMPL-007 | MUST set `agent_type: "implementation"` in manifest |
|
|
51
|
+
|
|
52
|
+
### SHOULD
|
|
53
|
+
|
|
54
|
+
| Requirement | Description |
|
|
55
|
+
|-------------|-------------|
|
|
56
|
+
| IMPL-010 | SHOULD add inline comments for complex logic |
|
|
57
|
+
| IMPL-011 | SHOULD refactor duplicated code |
|
|
58
|
+
| IMPL-012 | SHOULD update related documentation |
|
|
59
|
+
| IMPL-013 | SHOULD consider error handling edge cases |
|
|
60
|
+
|
|
61
|
+
### MAY
|
|
62
|
+
|
|
63
|
+
| Requirement | Description |
|
|
64
|
+
|-------------|-------------|
|
|
65
|
+
| IMPL-020 | MAY propose architectural improvements |
|
|
66
|
+
| IMPL-021 | MAY add performance benchmarks |
|
|
67
|
+
| IMPL-022 | MAY suggest follow-up enhancements |
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## Output Format
|
|
72
|
+
|
|
73
|
+
### Provenance Tags
|
|
74
|
+
|
|
75
|
+
**JavaScript/TypeScript**:
|
|
76
|
+
```javascript
|
|
77
|
+
/**
|
|
78
|
+
* @task T####
|
|
79
|
+
* @session session_YYYYMMDD_HHMMSS_######
|
|
80
|
+
* @agent opus-1
|
|
81
|
+
* @date YYYY-MM-DD
|
|
82
|
+
* @description Brief description of the function
|
|
83
|
+
*/
|
|
84
|
+
function implementedFunction() {
|
|
85
|
+
// Implementation
|
|
86
|
+
}
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
**Bash**:
|
|
90
|
+
```bash
|
|
91
|
+
# =============================================================================
|
|
92
|
+
# Function: function_name
|
|
93
|
+
# Task: T####
|
|
94
|
+
# Session: session_YYYYMMDD_HHMMSS_######
|
|
95
|
+
# Agent: opus-1
|
|
96
|
+
# Date: YYYY-MM-DD
|
|
97
|
+
# Description: Brief description
|
|
98
|
+
# =============================================================================
|
|
99
|
+
function_name() {
|
|
100
|
+
# Implementation
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Python**:
|
|
105
|
+
```python
|
|
106
|
+
def implemented_function():
|
|
107
|
+
"""
|
|
108
|
+
Brief description.
|
|
109
|
+
|
|
110
|
+
Task: T####
|
|
111
|
+
Session: session_YYYYMMDD_HHMMSS_######
|
|
112
|
+
Agent: opus-1
|
|
113
|
+
Date: YYYY-MM-DD
|
|
114
|
+
"""
|
|
115
|
+
# Implementation
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
### Test Requirements
|
|
119
|
+
|
|
120
|
+
| Test Type | When Required | Coverage |
|
|
121
|
+
|-----------|---------------|----------|
|
|
122
|
+
| Unit | New functions | MUST cover happy path |
|
|
123
|
+
| Integration | New workflows | SHOULD cover end-to-end |
|
|
124
|
+
| Edge Case | Complex logic | SHOULD cover boundaries |
|
|
125
|
+
| Regression | Bug fixes | MUST reproduce issue |
|
|
126
|
+
|
|
127
|
+
### Code Style Checklist
|
|
128
|
+
|
|
129
|
+
| Language | Style Guide | Enforcement |
|
|
130
|
+
|----------|-------------|-------------|
|
|
131
|
+
| Bash | CLEO style (4 spaces, snake_case) | `shellcheck` |
|
|
132
|
+
| JavaScript | ESLint config | `eslint` |
|
|
133
|
+
| TypeScript | TSConfig strict | `tsc --noEmit` |
|
|
134
|
+
| Python | PEP 8 | `flake8`, `black` |
|
|
135
|
+
|
|
136
|
+
### File Output
|
|
137
|
+
|
|
138
|
+
```markdown
|
|
139
|
+
# Implementation: {Feature/Fix Title}
|
|
140
|
+
|
|
141
|
+
**Task**: T####
|
|
142
|
+
**Date**: YYYY-MM-DD
|
|
143
|
+
**Status**: complete|partial|blocked
|
|
144
|
+
**Agent Type**: implementation
|
|
145
|
+
|
|
146
|
+
---
|
|
147
|
+
|
|
148
|
+
## Summary
|
|
149
|
+
|
|
150
|
+
{2-3 sentence summary of implementation}
|
|
151
|
+
|
|
152
|
+
## Changes
|
|
153
|
+
|
|
154
|
+
### Files Modified
|
|
155
|
+
|
|
156
|
+
| File | Action | Description |
|
|
157
|
+
|------|--------|-------------|
|
|
158
|
+
| `path/to/file.sh` | Modified | Added validation function |
|
|
159
|
+
| `path/to/new.sh` | Created | New utility module |
|
|
160
|
+
|
|
161
|
+
### Functions Added
|
|
162
|
+
|
|
163
|
+
| Function | File | Purpose |
|
|
164
|
+
|----------|------|---------|
|
|
165
|
+
| `validate_input()` | file.sh | Input validation |
|
|
166
|
+
|
|
167
|
+
### Functions Modified
|
|
168
|
+
|
|
169
|
+
| Function | File | Change |
|
|
170
|
+
|----------|------|--------|
|
|
171
|
+
| `process_data()` | file.sh | Added error handling |
|
|
172
|
+
|
|
173
|
+
## Tests
|
|
174
|
+
|
|
175
|
+
### New Tests
|
|
176
|
+
|
|
177
|
+
| Test | File | Coverage |
|
|
178
|
+
|------|------|----------|
|
|
179
|
+
| `test_validate_input` | tests/unit/file.bats | Input validation |
|
|
180
|
+
|
|
181
|
+
### Test Results
|
|
182
|
+
|
|
183
|
+
```
|
|
184
|
+
Running tests/unit/file.bats
|
|
185
|
+
✓ validate_input accepts valid input
|
|
186
|
+
✓ validate_input rejects empty input
|
|
187
|
+
✓ validate_input handles special characters
|
|
188
|
+
|
|
189
|
+
3 tests, 0 failures
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Validation
|
|
193
|
+
|
|
194
|
+
| Check | Status | Notes |
|
|
195
|
+
|-------|--------|-------|
|
|
196
|
+
| Tests pass | PASS | All 42 tests pass |
|
|
197
|
+
| Lint clean | PASS | No shellcheck warnings |
|
|
198
|
+
| No regressions | PASS | Existing tests unchanged |
|
|
199
|
+
|
|
200
|
+
## Breaking Changes
|
|
201
|
+
|
|
202
|
+
{If any, document migration path}
|
|
203
|
+
|
|
204
|
+
## Follow-up
|
|
205
|
+
|
|
206
|
+
- {Suggested improvements}
|
|
207
|
+
- {Technical debt items}
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Manifest Entry
|
|
211
|
+
|
|
212
|
+
@skills/_shared/manifest-operations.md
|
|
213
|
+
|
|
214
|
+
Use `cleo research add` to create the manifest entry:
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
cleo research add \
|
|
218
|
+
--title "Implementation: Feature Name" \
|
|
219
|
+
--file "YYYY-MM-DD_implementation.md" \
|
|
220
|
+
--topics "implementation,feature" \
|
|
221
|
+
--findings "3 functions added,Tests passing,No breaking changes" \
|
|
222
|
+
--status complete \
|
|
223
|
+
--task T#### \
|
|
224
|
+
--not-actionable \
|
|
225
|
+
--agent-type implementation
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
---
|
|
229
|
+
|
|
230
|
+
## Integration Points
|
|
231
|
+
|
|
232
|
+
### Base Protocol
|
|
233
|
+
|
|
234
|
+
- Inherits task lifecycle (start, execute, complete)
|
|
235
|
+
- Inherits manifest append requirement
|
|
236
|
+
- Inherits error handling patterns
|
|
237
|
+
|
|
238
|
+
### Protocol Interactions
|
|
239
|
+
|
|
240
|
+
| Combined With | Behavior |
|
|
241
|
+
|---------------|----------|
|
|
242
|
+
| specification | Spec defines implementation requirements |
|
|
243
|
+
| contribution | Implementation triggers contribution record |
|
|
244
|
+
| release | Implementation changes tracked for release |
|
|
245
|
+
|
|
246
|
+
### Workflow Sequence
|
|
247
|
+
|
|
248
|
+
```
|
|
249
|
+
1. Read task requirements (cleo show T####)
|
|
250
|
+
2. Start task (cleo start T####)
|
|
251
|
+
3. Implement changes with provenance tags
|
|
252
|
+
4. Write/update tests
|
|
253
|
+
5. Run validation (tests, lint)
|
|
254
|
+
6. Document changes in output file
|
|
255
|
+
7. Append manifest entry
|
|
256
|
+
8. Complete task (cleo complete T####)
|
|
257
|
+
9. Return completion message
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Example
|
|
263
|
+
|
|
264
|
+
**Task**: Implement session binding for multi-agent support
|
|
265
|
+
|
|
266
|
+
**Manifest Entry Command**:
|
|
267
|
+
```bash
|
|
268
|
+
cleo research add \
|
|
269
|
+
--title "Implementation: Session Binding" \
|
|
270
|
+
--file "2026-01-26_session-binding-impl.md" \
|
|
271
|
+
--topics "session,binding,multi-agent" \
|
|
272
|
+
--findings "TTY binding implemented,Env var fallback added,4 new tests passing" \
|
|
273
|
+
--status complete \
|
|
274
|
+
--task T2400 \
|
|
275
|
+
--epic T2392 \
|
|
276
|
+
--not-actionable \
|
|
277
|
+
--agent-type implementation
|
|
278
|
+
```
|
|
279
|
+
|
|
280
|
+
**Return Message**:
|
|
281
|
+
```
|
|
282
|
+
Implementation complete. See MANIFEST.jsonl for summary.
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
---
|
|
286
|
+
|
|
287
|
+
## Provenance Validation
|
|
288
|
+
|
|
289
|
+
### Pre-Commit Hook
|
|
290
|
+
|
|
291
|
+
**Location**: `.git/hooks/commit-msg` (installed via `git config core.hooksPath .cleo/hooks`)
|
|
292
|
+
|
|
293
|
+
**Logic**:
|
|
294
|
+
1. Extract @task tags from commit diff
|
|
295
|
+
2. Count new functions/classes
|
|
296
|
+
3. Calculate provenance coverage
|
|
297
|
+
4. Apply thresholds:
|
|
298
|
+
- **New code**: 100% coverage required
|
|
299
|
+
- **Existing code**: 80% coverage required
|
|
300
|
+
- **Legacy code**: 50% coverage required
|
|
301
|
+
5. Block commit if thresholds not met
|
|
302
|
+
|
|
303
|
+
**Exit Code**: `EXIT_PROTOCOL_IMPLEMENTATION` (64) on violation
|
|
304
|
+
|
|
305
|
+
### Runtime Validation
|
|
306
|
+
|
|
307
|
+
**Command** (planned): `cleo provenance validate [--task TASK_ID]`
|
|
308
|
+
|
|
309
|
+
**Current State**: Validation available via protocol library
|
|
310
|
+
|
|
311
|
+
```bash
|
|
312
|
+
# Programmatic validation
|
|
313
|
+
source lib/protocol-validation.sh
|
|
314
|
+
result=$(validate_implementation_protocol "T1234" "$manifest_entry" "false")
|
|
315
|
+
```
|
|
316
|
+
|
|
317
|
+
**Checks**:
|
|
318
|
+
- IMPL-003: `@task T####` tags in new functions
|
|
319
|
+
- Git diff analysis for provenance coverage
|
|
320
|
+
- Agent type = "implementation" (IMPL-007)
|
|
321
|
+
|
|
322
|
+
### Thresholds
|
|
323
|
+
|
|
324
|
+
| Code Category | Provenance Requirement | Rationale |
|
|
325
|
+
|---------------|------------------------|-----------|
|
|
326
|
+
| **New code** | 100% | Fresh code must be attributable |
|
|
327
|
+
| **Existing code** | 80% | Modifications should track origin |
|
|
328
|
+
| **Legacy code** | 50% | Gradual attribution improvement |
|
|
329
|
+
|
|
330
|
+
**Detection**:
|
|
331
|
+
- New code: Lines with `^+` in git diff, no prior history
|
|
332
|
+
- Existing code: Modified files with prior commits
|
|
333
|
+
- Legacy code: Files >6 months old or >100 commits
|
|
334
|
+
|
|
335
|
+
### Enforcement Points
|
|
336
|
+
|
|
337
|
+
1. **Pre-commit**: Blocks commits lacking provenance
|
|
338
|
+
2. **Pre-push**: Warns on aggregate provenance score <70%
|
|
339
|
+
3. **Runtime**: `cleo complete` validates IMPL-003 for implementation tasks
|
|
340
|
+
4. **Orchestrator**: Validates before spawning implementation agents
|
|
341
|
+
|
|
342
|
+
---
|
|
343
|
+
|
|
344
|
+
## Anti-Patterns
|
|
345
|
+
|
|
346
|
+
| Pattern | Why Avoid |
|
|
347
|
+
|---------|-----------|
|
|
348
|
+
| Code without tests | Regression risk |
|
|
349
|
+
| Missing provenance | Lost attribution |
|
|
350
|
+
| Skipping validation | Quality regression |
|
|
351
|
+
| Undocumented breaking changes | Surprise failures |
|
|
352
|
+
| No error handling | Silent failures |
|
|
353
|
+
| Hardcoded values | Maintenance burden |
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
*Protocol Version 1.0.0 - Implementation Protocol*
|