You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: .agents/pipelines/audit-duplicates.yaml
+2-4Lines changed: 2 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -71,11 +71,9 @@ steps:
71
71
72
72
4. **Routing** (internal/suggest/ vs internal/pipeline/routing.go): Both may route user intent to pipeline selection. Compare how each determines which pipeline to run. Check for duplicated scoring logic, keyword matching, or heuristic functions.
73
73
74
-
5. **State tracking** (internal/state/ vs internal/deliverable/): Both may track pipeline run status and outcomes. Compare their data models, storage mechanisms, and query patterns. Identify whether they track the same lifecycle events or serve different granularities of state.
74
+
5. **Template variables** (internal/pipeline/context.go ProjectVars vs internal/manifest/types.go ProjectVars): Check whether both define or populate project template variables. Identify whether the same variable names are resolved in two different places, which could lead to inconsistent values.
75
75
76
-
6. **Template variables** (internal/pipeline/context.go ProjectVars vs internal/manifest/types.go ProjectVars): Check whether both define or populate project template variables. Identify whether the same variable names are resolved in two different places, which could lead to inconsistent values.
77
-
78
-
7. **Discovery of additional overlaps**: Beyond the known suspects, scan for:
76
+
6. **Discovery of additional overlaps**: Beyond the known suspects, scan for:
79
77
- Functions with identical or near-identical signatures across different packages.
80
78
- Types that model the same domain concept under different names.
81
79
- Utility functions (string manipulation, file I/O helpers, error wrapping) duplicated across packages rather than centralized.
-`depguard` rules in `.golangci.yml` enforce two layer constraints:
13
13
-`no-presentation-reverse` blocks `display`, `tui`, `webui`, `onboarding` from being imported by domain or infrastructure code.
14
-
-`infrastructure-no-domain` blocks `pipeline`, `adapter`, `contract`, `relay`, `deliverable`, `preflight`, `recovery`, `skill`, `defaults`, `suggest`, `doctor` from being imported by infrastructure.
15
-
- Verified import constraints: `display` → `event`/`pathfmt`/`deliverable` only; `pipeline` does not import `display`/`tui`.
14
+
-`infrastructure-no-domain` blocks `pipeline`, `adapter`, `contract`, `relay`, `preflight`, `recovery`, `skill`, `defaults`, `suggest`, `doctor` from being imported by infrastructure.
15
+
- Verified import constraints: `display` → `event`/`pathfmt`/`state` only; `pipeline` does not import `display`/`tui`.
16
16
17
17
Drift since the original ADR was drafted:
18
18
-`internal/` package count grew from 25 to 39 (additions include `attention`, `bench`, `classify`, `continuous`, `cost`, `fileutil`, `hooks`, `humanize`, `ontology`, `retro`, `sandbox`, `scope`, `testutil`, `timeouts`, `tools`).
@@ -21,7 +21,7 @@ Drift since the original ADR was drafted:
21
21
22
22
## Context
23
23
24
-
Wave's `internal/` directory contains 25 packages that have grown organically during rapid prototyping (v0.15.0 → v0.84.1). While the separation between presentation and backend is already reasonably clean — `display/` imports only `event/`, `pathfmt/`, and `deliverable/`; `pipeline/` does not import `display/` or `tui/` — some areas have accumulated cross-layer coupling that warrants formal documentation and enforcement.
24
+
Wave's `internal/` directory contains 25 packages that have grown organically during rapid prototyping (v0.15.0 → v0.84.1). While the separation between presentation and backend is already reasonably clean — `display/` imports only `event/`, `pathfmt/`, and `state/`; `pipeline/` does not import `display/` or `tui/` — some areas have accumulated cross-layer coupling that warrants formal documentation and enforcement.
25
25
26
26
### Current State
27
27
@@ -33,16 +33,15 @@ An audit of the codebase reveals the following import relationships among intern
Copy file name to clipboardExpand all lines: docs/changelog.md
+3Lines changed: 3 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -39,12 +39,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
39
39
- Unified forge-specific pipelines into forge-agnostic pipelines with template variables
40
40
-`github_api_seconds` → `forge_api_seconds` in timeout configuration
41
41
- All hardcoded timeout values replaced with configurable constants via `internal/timeouts`
42
+
-`state.OutcomeRecord` extended with `Description`, `Metadata`, and typed `OutcomeType` (migration #24); new `state.OutcomeTracker` replaces `deliverable.Tracker` with persistence-on-add (#1286)
- Deprecated pipeline name resolution (`ResolveDeprecatedName`) — no backward-compat shims pre-1.0.0
45
47
- Timeout constant re-exports from `manifest` package
46
48
- Stale multiplatform pipeline tests referencing non-existent gl-*/gt-* YAML files
47
49
- Nonexistent `timeout` and `retry` persona fields from custom-personas guide
50
+
-`internal/deliverable` package — merged into `state.OutcomeRecord` and `state.OutcomeTracker`. Single outcome model backed by SQLite with persistence-on-add (#1286)
Copy file name to clipboardExpand all lines: internal/defaults/pipelines/audit-duplicates.yaml
+2-4Lines changed: 2 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -70,11 +70,9 @@ steps:
70
70
71
71
4. **Routing** (internal/suggest/ vs internal/pipeline/routing.go): Both may route user intent to pipeline selection. Compare how each determines which pipeline to run. Check for duplicated scoring logic, keyword matching, or heuristic functions.
72
72
73
-
5. **State tracking** (internal/state/ vs internal/deliverable/): Both may track pipeline run status and outcomes. Compare their data models, storage mechanisms, and query patterns. Identify whether they track the same lifecycle events or serve different granularities of state.
73
+
5. **Template variables** (internal/pipeline/context.go ProjectVars vs internal/manifest/types.go ProjectVars): Check whether both define or populate project template variables. Identify whether the same variable names are resolved in two different places, which could lead to inconsistent values.
74
74
75
-
6. **Template variables** (internal/pipeline/context.go ProjectVars vs internal/manifest/types.go ProjectVars): Check whether both define or populate project template variables. Identify whether the same variable names are resolved in two different places, which could lead to inconsistent values.
76
-
77
-
7. **Discovery of additional overlaps**: Beyond the known suspects, scan for:
75
+
6. **Discovery of additional overlaps**: Beyond the known suspects, scan for:
78
76
- Functions with identical or near-identical signatures across different packages.
79
77
- Types that model the same domain concept under different names.
80
78
- Utility functions (string manipulation, file I/O helpers, error wrapping) duplicated across packages rather than centralized.
0 commit comments