ace-task 0.31.9 → 0.36.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c67dcf6153b34a7d6a72bf8e58bba04945835c1af53ba458391c857f49260ad
4
- data.tar.gz: 68546adc536f8f70b260e6e7315bfa965112322e4e25dc737bde18b25169461d
3
+ metadata.gz: 81fe627b41cbd7329b370ce01458343eb34bb6dd3033772750976ab7fdbf604e
4
+ data.tar.gz: 55d0dd5f43f21cd4b9f83984d703905d1e66c22869fe6791a430ad1d782fdeb8
5
5
  SHA512:
6
- metadata.gz: dab5c187c7f4f6c031c3510b37b6f0322e8aa73d2aeb57290d7be2d46120ec7c2ea79f4dc18c37a4bfc2d004f760ba502e7f4c377e61cfaa0c83e901cb5668ae
7
- data.tar.gz: 7dd3dfd6cf4b25ea4180310ed6240ef0d421c9a724c6662bc95b926e846060b6b08cf8adf625648d878c35858268cb96ae702479c621c0398ceaf31287a22a1b
6
+ metadata.gz: 5683574d4b854a0aeabd3e1b22e32ab7ad2f74f4bca594316c860954d7bce927da95e9142f804c0bf9078f263f69a6960cdda009fe500e545dbee6d7d78316fc
7
+ data.tar.gz: b28b4bec231fe6d4461a2673d3d4cfcb753aaff3e026ca83cb26b2ed053f906ba1382f174c7e09ad8d92911219626d5445b4507f2de9b356515c14d4341ea804
data/CHANGELOG.md CHANGED
@@ -7,6 +7,210 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.36.7] - 2026-04-25
11
+
12
+ ### Changed
13
+
14
+ - Removed spike as a first-class task pattern from active ACE task drafting. Drafts must now create real child tasks for each original intention, while `as-task-review` owns the deep analysis, draft reshaping, dependency repair, and skip/split decisions for uncertain families.
15
+
16
+ ## [0.36.6] - 2026-04-24
17
+
18
+ ### Changed
19
+
20
+ - Redesigned spike-task guidance around evaluation against real parent goals instead of closure mechanics alone. Spike-first parents must now declare `Learning Targets Before Decomposition`, spike subtasks must map those targets explicitly, and spikes rewrite the active in-folder task tree before later review decides lifecycle.
21
+ - Restricted spike mutation scope to the task folder. Spikes must no longer edit package docs, handbook files, or other out-of-folder assets directly; they capture those impacts as new subtasks under the same parent instead.
22
+
23
+ ## [0.36.5] - 2026-04-24
24
+
25
+ ### Changed
26
+ - Tightened spike-task drafting and review guidance again so spikes must declare explicit outcome tasks whose type matches the completion mode, and so `reopen later if needed` is no longer an acceptable post-spike closure.
27
+
28
+ ### Fixed
29
+ - Tightened spike work guidance so a spike cannot be marked done until its declared concrete outcome task exists in addition to the synchronized parent/doc artifacts and rerun parent review.
30
+
31
+ ### Changed
32
+ - Tightened spike-task workflow guidance so spike drafts must declare a decision-complete Spike Completion Contract naming completion mode, parent sync target, related artifact sync targets, and the final `as-task-review <parent-ref>` rerun.
33
+
34
+ ### Fixed
35
+ - Ensured parent task auto-close for child task closure uses the same `TaskManager#update` flow as explicit task closes, so linked GitHub issues close through one consistent code path.
36
+ - Tightened spike work/review guidance so a spike cannot be considered complete until its parent and declared related task/doc artifacts are synchronized and the parent review has been rerun.
37
+
38
+ ## [0.36.4] - 2026-04-24
39
+
40
+ ## [0.36.2] - 2026-04-23
41
+
42
+
43
+ ### Changed
44
+ - Added layer-ownership triage into task bug-work and planning workflows to reduce cross-package misrouting of root-cause fixes.
45
+ - Tightened task planning workflows to improve issue linkage and work-on sequencing with clearer workflow ownership validation.
46
+
47
+
48
+ ### Changed
49
+ - Added layer-ownership triage to bug analysis/fix and task planning/work workflows so agents identify owner, adapter, and symptom packages before implementing cross-package shared-primitive fixes.
50
+ - Tightened the task draft workflow so GitHub issue URL inputs must create the parent or single task with `--github-issue <number>` and sync the linked issue.
51
+
52
+ ### Technical
53
+ - Added workflow contract coverage for the layer-ownership triage guidance.
54
+ ## [0.36.1] - 2026-04-19
55
+
56
+ ### Technical
57
+ - Decoupled retained create/list/show and archive E2E goals so task root-state evidence is captured before later archive movement.
58
+ - Clarified `TS-TASK-002` plan-path verification so bounded planner timeout diagnostics are accepted as actionable sandbox evidence.
59
+
60
+ ## [0.36.0] - 2026-04-16
61
+
62
+ ### Changed
63
+ - Added `ace-task plan --timeout` so path-based plan generation can be bounded explicitly from the public CLI.
64
+ - Documented bounded plan generation and timeout troubleshooting in the getting-started and usage guides.
65
+
66
+ ### Fixed
67
+ - Converted planner-provider timeout failures into actionable CLI errors instead of surfacing raw timeout backtraces.
68
+ - Updated `TS-TASK-002` path-mode verification to accept explicit timeout diagnostics when plan generation cannot complete within the requested bound.
69
+
70
+ ## [0.35.7] - 2026-04-16
71
+
72
+ ### Fixed
73
+ - Refined `TS-TASK-001` smoke verification around sandbox-root task trees, archive layout, and invalid-status doctor evidence so retained E2E goals track the current public CLI behavior.
74
+
75
+ ## [0.35.6] - 2026-04-15
76
+
77
+ ### Fixed
78
+ - Tightened `TS-TASK-002` plan-path verification to require at least one successful path-mode plan artifact while keeping explicit diagnostics for failed dependency paths.
79
+
80
+ ## [0.35.5] - 2026-04-15
81
+
82
+ ### Changed
83
+ - Reworked retained `TS-TASK-001` goal contracts to use deterministic task-ref handoff artifacts across create/show/update/archive smoke journeys.
84
+ - Added `TS-TASK-002` auxiliary public CLI journeys for `status` and `plan` command coverage, with explicit sandbox diagnostics for unavailable planning dependencies.
85
+ - Updated usage docs with E2E-safe `ace-task plan <ref>` path-mode guidance and `github-sync` precondition examples.
86
+ - Tightened spike-task drafting, review, and work-on-task guidance so spikes must declare whether they are design-contract or proof-of-concept work, define explicit follow-up tasks, and stop implementation flow when runtime work materially drifts from the promised spike contract.
87
+
88
+ ## [0.35.4] - 2026-04-13
89
+
90
+ ### Fixed
91
+ - Reworked `TS-TASK-001` smoke coverage to validate created and archived tasks from stable task-tree state plus runner observations instead of brittle helper files under `results/`.
92
+
93
+ ## [0.35.3] - 2026-04-13
94
+
95
+ ### Fixed
96
+ - Hardened `TS-TASK-001` task-ref capture so create/show/archive smoke coverage derives the persisted short ref from stable list/filesystem evidence instead of brittle prose parsing.
97
+
98
+ ## [0.35.2] - 2026-04-13
99
+
100
+ ### Technical
101
+ - Refreshed `TS-TASK-001` archive and doctor smoke scenario contracts to match the current `_archive` layout and isolate the invalid-status validation path.
102
+
103
+ ## [0.35.1] - 2026-04-13
104
+
105
+ ### Fixed
106
+ - Accepted subtask IDs in task frontmatter ID validation so doctor frontmatter checks no longer report false invalid-ID errors for valid subtasks.
107
+ - Added atomic task-ID reservation during create so concurrent creates treat lock contention as retryable collisions instead of racing through non-atomic prechecks.
108
+
109
+ ### Technical
110
+ - Narrowed task ID-existence scans to ID-prefixed glob matches and added regression coverage for subtask ID validation plus reservation-lock collision behavior.
111
+
112
+ ## [0.35.0] - 2026-04-13
113
+
114
+ ### Fixed
115
+ - Added duplicate persisted task-ID detection to doctor health checks, including subtask collisions and frontmatter-only doctor validation failures.
116
+ - Added bounded retry handling for standalone `ace-task create` ID collisions with clear retry-exhaustion failures and no partial-artifact leakage.
117
+
118
+ ### Technical
119
+ - Added regression coverage for duplicate-ID doctor failures, create-time retry semantics, and cleanup guarantees.
120
+
121
+ ## [0.34.3] - 2026-04-13
122
+
123
+ ### Fixed
124
+ - Added bounded retry handling for standalone `ace-task create` ID collisions so success is emitted only after a unique persisted task ID exists.
125
+ - Added clear retry-exhaustion failure messaging for create-time ID collisions.
126
+
127
+ ### Technical
128
+ - Added command and molecule regression coverage for task ID collision retries and partial-artifact cleanup guarantees.
129
+
130
+ ## [0.34.2] - 2026-04-13
131
+
132
+ ### Fixed
133
+ - Report duplicate persisted task IDs as explicit doctor health-check errors with file-path context, including top-level and subtask collisions.
134
+ - Include duplicate ID detection in `ace-task doctor --check frontmatter` and fail health status when duplicates are present.
135
+
136
+ ### Technical
137
+ - Added organism and CLI regression coverage for duplicate top-level/subtask ID failures and frontmatter-only doctor checks.
138
+
139
+ ## [0.34.1] - 2026-04-13
140
+
141
+ ### Changed
142
+ - Completed the batch i05 migration follow-through for this package and aligned it with the restarted `fast` / `feat` / `e2e` verification model.
143
+
144
+ ### Technical
145
+ - Included in the coordinated assignment-driven patch release for batch i05 package updates.
146
+
147
+
148
+ ### Changed
149
+ - Expanded canonical `as-task-plan` and `as-task-work` skill metadata so public `plan-task` and `work-on-task` assign-step discovery is skill-owned rather than catalog-owned.
150
+
151
+ ## [0.34.0] - 2026-04-12
152
+
153
+ ### Changed
154
+ - Migrated package tests to the restarted `fast` / `feat` / `e2e` model by moving deterministic coverage to `test/fast`, retaining `TS-TASK-001` as workflow-value E2E coverage, and updating package testing guidance.
155
+
156
+ ### Fixed
157
+ - Hardened `TS-TASK-001` sandbox bootstrap and doctor error-path runner setup so repeated E2E runs start from a clean healthy baseline before malformed-task injection.
158
+
159
+ ## [0.33.3] - 2026-04-07
160
+
161
+ ### Changed
162
+ - Added linked GitHub issue metadata handling as a single ownership model and kept task/task manager sync behavior aligned with linked-task life cycle updates.
163
+
164
+ ### Fixed
165
+ - Fixed GitHub sync dispatch and manual sync verification paths by routing through the reusable sync flow and tightening demo-task linkage checks.
166
+
167
+ ### Technical
168
+ - Expanded test coverage around GitHub sync assertions, frontmatter ownership validation, and workflow-level linked issue behavior.
169
+
170
+ ## [0.33.2] - 2026-04-07
171
+
172
+ ### Changed
173
+ - Updated the live GitHub sync demo tape to declare semantic verification expectations for exported issue/task refs, forbidden error output, and final closed-issue state.
174
+
175
+ ## [0.33.1] - 2026-04-07
176
+
177
+ ### Fixed
178
+ - Corrected create-time GitHub sync dispatch so `ace-task` resolves the reusable `sync_task` integration instead of the ownership-validator entrypoint.
179
+ - Fixed the live GitHub sync demo tape to recover the created task ref from slugified task filenames during recording.
180
+
181
+ ## [0.33.0] - 2026-04-07
182
+
183
+ ### Fixed
184
+ - Hardened linked-issue synchronization by loading `ace/git` on the main runtime path, reconciling previous/current issue ID sets during updates, and treating GitHub sync failures as non-blocking task warnings.
185
+ - Surfaced manual `github-sync` failures with per-task error details and an explicit non-zero CLI failure when requested sync work does not complete.
186
+ - Updated linked issue sync payloads to use task spec file paths for sticky comment links so GitHub issue references land on `.s.md` source-of-truth files.
187
+ - Updated `ace-task create` to print non-blocking GitHub sync warnings (`last_update_note`) so create-time linked-issue sync failures are visible to operators.
188
+ - Replaced array-style linked issue metadata with singular `github_issue` ownership and reject duplicate `--github-issue` flags.
189
+
190
+ ### Changed
191
+ - Updated ACE-linked GitHub issue lifecycle guidance to treat task metadata and ACE-managed sync as the canonical path, while keeping PR footer closure keywords as optional manual guidance.
192
+ - Updated linked GitHub issue storage and task-manager sync hooks to enforce one canonical owning task per GitHub issue.
193
+ - Reworked the GitHub sync demo to show live issue creation, task linkage, and automatic issue closure.
194
+
195
+ ### Technical
196
+ - Added linked-issue metadata contract checks to task draft/review workflow instructions and aligned related task spec examples for consistency.
197
+ - Expanded create/update/frontmatter/manager test coverage for singular `github_issue` ownership and conflict handling.
198
+
199
+ ## [0.32.0] - 2026-04-05
200
+
201
+ ### Added
202
+ - Added `ace-task github-sync` command for manual linked-issue synchronization by task reference or `--all`.
203
+ - Added `--github-issue` create-time linkage support for storing machine-readable `github_issue` task metadata.
204
+ - Added lifecycle sync orchestration through `TaskManager` and `GithubIssueSyncAdapter` for linked task create/update/reparent flows.
205
+
206
+ ### Changed
207
+ - Extended task frontmatter defaults to emit structured `github_issue` metadata when linked issues are provided.
208
+ - Updated `ace-task` usage documentation with linked issue create flags and manual sync command usage.
209
+
210
+ ### Technical
211
+ - Added validation rules for `github` and `github_issue` frontmatter structure and numeric issue IDs.
212
+ - Expanded command/organism/validator/defaults test coverage for linked issue metadata and sync behavior.
213
+
10
214
  ## [0.31.9] - 2026-03-31
11
215
 
12
216
  ### Changed
data/README.md CHANGED
@@ -26,6 +26,13 @@ Tasks are markdown specs living in git - attached to branches and worktrees, not
26
26
  2. Review and planning workflows refine scope before implementation.
27
27
  3. Oversee execution through worktrees and assignments until ship-ready.
28
28
 
29
+ ## Testing Model
30
+
31
+ - `ace-test ace-task` runs deterministic package tests (`test/fast`) for the default feedback loop.
32
+ - `ace-test ace-task feat` runs deterministic feature coverage when `test/feat` exists.
33
+ - `ace-test ace-task all` runs all deterministic lanes.
34
+ - `ace-test-e2e ace-task` runs retained real workflow scenarios from `test/e2e`.
35
+
29
36
  ## Use Cases
30
37
 
31
38
  **Draft and structure work** - create a task, split it into subtasks, add new subtasks as work reveals scope. Use `/as-task-draft` to draft from an earlier captured [idea](../ace-idea) or short note, or [`ace-task create`](docs/usage.md#ace-task-create-title) from the CLI.
@@ -2,13 +2,13 @@
2
2
  doc-type: guide
3
3
  purpose: Guide for writing clear, actionable task definitions in ace-task
4
4
  ace-docs:
5
- last-updated: '2026-03-21'
5
+ last-updated: '2026-04-25'
6
6
  ---
7
7
 
8
8
  <!-- markdownlint-disable -->
9
- # 📑 Writing Clear, Actionable Dev Tasks
9
+ # 📑 Writing Clear, Actionable Dev Tasks
10
10
 
11
- ## A playbook for documentationoriented tickets, with a complete worked example
11
+ ## A playbook for documentation-oriented tickets, with a complete worked example
12
12
 
13
13
  ## Introduction & Goal
14
14
 
@@ -19,7 +19,7 @@ minimize ambiguity and streamline the process of defining and executing document
19
19
 
20
20
  ---
21
21
 
22
- ## 0. Directory Audit Step 
22
+ ## 0. Directory Audit Step
23
23
 
24
24
  **Always start by discovering what actually exists in the repo.**
25
25
 
@@ -28,7 +28,7 @@ minimize ambiguity and streamline the process of defining and executing document
28
28
  3. From that listing, build the deliverable manifest.
29
29
 
30
30
  > **Tip:**
31
- > • If you don’t have repo access, create a tiny *preticket* titled “Generate GuideAudit Manifest”.
31
+ > • If you don’t have repo access, create a tiny *pre-ticket* titled “Generate Guide-Audit Manifest”.
32
32
  > • Commit the tree output as a comment or markdown file, then reference it in the main ticket.
33
33
 
34
34
  Example audit snippet to embed:
@@ -45,18 +45,18 @@ guides
45
45
 
46
46
  ---
47
47
 
48
- ## 1. Anatomy of a Great Task
48
+ ## 1. Anatomy of a Great Task
49
49
 
50
- | Section | Purpose | Key Questions |
50
+ | Section | Purpose | Key Questions |
51
51
  |---------|---------|---------------|
52
- | **Frontmatter** | Helps tooling & humans filter | id (use `task-manager generate-id VERSION` to generate), status, priority, estimate, dependencies |
52
+ | **Front-matter** | Helps tooling & humans filter | id (use `task-manager generate-id VERSION` to generate), status, priority, estimate, dependencies |
53
53
  | **Objective / Problem** | *Why* are we doing this? | What pain are we fixing? |
54
- | **Directory Audit (0)** | Sourceoftruth for scope | Did we include the current tree? |
54
+ | **Directory Audit (0)** | Source-of-truth for scope | Did we include the current tree? |
55
55
  | **Scope of Work** | *What* to touch | Which guides/folders? |
56
56
  | **Deliverables / Manifest** | Exact files to create / modify / delete | Could a newcomer do it with just this? |
57
- | **Phases** | Bitesized plan | Audit → Extract → Refactor → Index |
57
+ | **Phases** | Bite-sized plan | Audit → Extract → Refactor → Index |
58
58
  | **Implementation Plan** | Divided into Planning Steps (`* [ ]`) for analysis/design and Execution Steps (`- [ ]`) for implementation actions. Consider embedding automated test/verification steps directly. | |
59
- | **Acceptance Criteria** | Definition of Done | Checklist style `[ ]`. **Can include references to automated checks defined in the Implementation Plan's Planning and Execution sections or be high-level checks themselves.** |
59
+ | **Acceptance Criteria** | Definition of Done | Check-list style `[ ]`. **Can include references to automated checks defined in the Implementation Plan's Planning and Execution sections or be high-level checks themselves.** |
60
60
  | **Out of Scope** | Prevent scope creep | What must *not* be touched? |
61
61
  | **References & Risks** | Links to style guides, ADRs, **testing standards (like [Embedded Testing Guide](ace-docs/handbook/guides/embedded-testing-guide.g.md))**; mitigations | Any scripts to run? **Use links relative to the project root (e.g., `ace-handbook/handbook/guides/some-guide.g.md`), not relative to the current file (`../guides/some-guide.md`)** |
62
62
 
@@ -88,7 +88,7 @@ This distinction supports workflow separation where review/planning phases focus
88
88
 
89
89
  ---
90
90
 
91
- ## 3. **Full Worked Example**
91
+ ## 3. Full Worked Example
92
92
 
93
93
  A full worked example of a task, "Tailor Guides to Tech Stack," has been moved to a separate file:
94
94
  [`ace-task/handbook/templates/release-tasks/example.md`](../templates/release-tasks/example.md)
@@ -153,4 +153,38 @@ For complex tasks requiring analysis or design decisions, include both sections:
153
153
  6. Are Planning Steps used for complex tasks requiring analysis/design?
154
154
  7. Do visual markers distinguish planning (`* [ ]`) from execution (`- [ ]`) steps?
155
155
 
156
- Tick them all → merge the ticket.
156
+ Tick them all → merge the ticket.
157
+
158
+ ---
159
+
160
+ ## Review-first task shaping
161
+
162
+ ACE no longer uses spike as a special task type.
163
+
164
+ ### Rules
165
+
166
+ 1. The parent owns the umbrella outcome and the child-task map.
167
+ 2. Every original intention that matters must exist as a real child task from the start.
168
+ 3. If ordering matters, the first child should be the smallest real vertical slice, not a synthetic research-only task.
169
+ 4. `as-task-review` is the deep-analysis stage: it may rewrite, split, reorder, skip, or dependency-shape draft subtasks after codebase research.
170
+ 5. Do not preserve major uncertainty only in parent prose. If a goal matters enough to protect, give it a child task.
171
+ 6. If review later proves a drafted child obsolete or already satisfied, review updates the task family directly instead of relying on a dedicated spike artifact.
172
+
173
+ ### Parent responsibility
174
+
175
+ The parent should keep:
176
+ - umbrella objective
177
+ - why the family exists
178
+ - decomposition map of child refs and concerns
179
+ - shared boundaries or references
180
+
181
+ The parent should not hide work that has no child owner.
182
+
183
+ ### Child responsibility
184
+
185
+ Each child task should own:
186
+ - one concrete slice of the original intention
187
+ - its own interface contract and success criteria
188
+ - its own verification plan
189
+
190
+ If a single child is trying to answer multiple independent questions, split it before implementation.
@@ -3,7 +3,7 @@ name: as-task-draft
3
3
  description: Draft Task with Idea File Movement (SPECS ONLY - no code)
4
4
  # bundle: wfi://task/draft
5
5
  # context: no-fork
6
- # agent: general-purpose
6
+ # agent: Plan
7
7
  user-invocable: true
8
8
  allowed-tools:
9
9
  - Bash(ace-task:*)
@@ -22,3 +22,9 @@ skill:
22
22
  ---
23
23
 
24
24
  Load and run `ace-bundle wfi://task/draft` in the current project, then follow the loaded workflow as the source of truth and execute it end-to-end instead of only summarizing it.
25
+
26
+ This skill is for specification work only.
27
+
28
+ - Create or update draft task artifacts only.
29
+ - Do not implement package code, tests, or runtime behavior changes.
30
+ - If the user later says "implement", treat that as continuing the drafting/spec workflow unless they explicitly switch to `as-task-work` / `wfi://task/work`.
@@ -18,10 +18,15 @@ skill:
18
18
  execution:
19
19
  workflow: wfi://task/plan
20
20
  assign:
21
- source: wfi://task/plan
22
21
  steps:
23
22
  - name: plan-task
24
23
  description: Analyze task requirements and create an implementation plan
24
+ produces: [implementation-plan]
25
+ consumes: [project-base-context, task-spec]
26
+ when_to_skip:
27
+ - "Task is trivial and doesn't need a plan"
28
+ - "Implementation plan already exists"
29
+ effort: light
25
30
  tags: [planning, analysis]
26
31
  context:
27
32
  default: fork
@@ -17,7 +17,6 @@ argument-hint: [task-id like 123]
17
17
  last_modified: 2026-02-17
18
18
  source: ace-task
19
19
  assign:
20
- source: wfi://task/work
21
20
  steps:
22
21
  - name: work-on-task
23
22
  description: Implement task changes following project conventions
@@ -27,6 +26,12 @@ assign:
27
26
  - "implement task"
28
27
  - "task work"
29
28
  - "build feature"
29
+ produces: [code-changes, commits]
30
+ consumes: [project-base-context, task-spec]
31
+ when_to_skip:
32
+ - "Task is documentation-only"
33
+ - "Changes are already implemented"
34
+ effort: medium
30
35
  tags: [implementation, core-workflow]
31
36
  context:
32
37
  default: fork
@@ -15,7 +15,7 @@ bundle:
15
15
  doc-type: template
16
16
  purpose: Template for drafting task definitions
17
17
  ace-docs:
18
- last-updated: '2026-03-21'
18
+ last-updated: '2026-04-25'
19
19
  ---
20
20
 
21
21
  # {title}
@@ -98,7 +98,7 @@ GET/POST/PUT/DELETE /endpoint
98
98
  <!-- Ask about unclear requirements, edge cases, and user expectations -->
99
99
 
100
100
  - [ ] **Requirement Clarity**: [Question about unclear or ambiguous requirements]
101
- - [ ] **Edge Case Handling**: [Question about boundary conditions or unusual scenarios]
101
+ - [ ] **Edge Case Handling**: [Question about boundary conditions or unusual scenarios]
102
102
  - [ ] **User Experience**: [Question about user expectations, workflows, or interactions]
103
103
  - [ ] **Success Definition**: [Question about how success will be measured or validated]
104
104
 
@@ -135,7 +135,7 @@ Why are we doing this? Focus on user value and behavioral outcomes.
135
135
  <!-- Define the behavioral scope - what user experiences and system behaviors are included -->
136
136
 
137
137
  - **User Experience Scope**: [Which user interactions, workflows, and experiences are included]
138
- - **System Behavior Scope**: [Which system capabilities, responses, and behaviors are included]
138
+ - **System Behavior Scope**: [Which system capabilities, responses, and behaviors are included]
139
139
  - **Interface Scope**: [Which APIs, commands, or interfaces are included]
140
140
 
141
141
  ### Deliverables
@@ -143,7 +143,7 @@ Why are we doing this? Focus on user value and behavioral outcomes.
143
143
 
144
144
  #### Behavioral Specifications
145
145
  - User experience flow definitions
146
- - System behavior specifications
146
+ - System behavior specifications
147
147
  - Interface contract definitions
148
148
 
149
149
  #### Validation Artifacts
@@ -169,7 +169,7 @@ Why are we doing this? Focus on user value and behavioral outcomes.
169
169
  <!-- Explicitly exclude implementation concerns to maintain behavioral focus -->
170
170
 
171
171
  - ❌ **Implementation Details**: File structures, code organization, technical architecture
172
- - ❌ **Technology Decisions**: Tool selections, library choices, framework decisions
172
+ - ❌ **Technology Decisions**: Tool selections, library choices, framework decisions
173
173
  - ❌ **Performance Optimization**: Specific performance improvement strategies
174
174
  - ❌ **Future Enhancements**: Related features or capabilities not in current scope
175
175
 
@@ -177,4 +177,4 @@ Why are we doing this? Focus on user value and behavioral outcomes.
177
177
 
178
178
  - Related capture-it output (if applicable)
179
179
  - User experience requirements
180
- - Interface specification examples
180
+ - Interface specification examples
@@ -156,7 +156,29 @@ Systematically analyze bug reports to identify root cause, verify reproduction,
156
156
  - Contributing factors (conditions that enable the bug)
157
157
  - Impact scope (what else might be affected)
158
158
 
159
- ### 5. Propose Regression Tests
159
+ ### 5. Layer Ownership Triage
160
+
161
+ Before finalizing the fix plan, identify the layer that owns the failing primitive. This is required when the bug crosses package boundaries or involves shared external resources, protocols, command routing, configuration namespaces, or reusable helper APIs.
162
+
163
+ Classify each relevant package/component:
164
+
165
+ - **Owner/creator**: creates, names, persists, routes, or navigates the primitive
166
+ - **Adapter/orchestrator**: coordinates owner APIs for a workflow
167
+ - **Consumer/symptom**: exposes the failure but does not own the primitive
168
+
169
+ Answer these questions in the analysis:
170
+
171
+ - What is the failing primitive or contract?
172
+ - Which package creates or names it?
173
+ - Which package navigates, reuses, or cleans it up?
174
+ - Which package only exposed the symptom?
175
+ - Is there a shared package/API that all callers should use?
176
+
177
+ Default fix rule: fix the owner layer first, then update adapters/consumers only to call the shared behavior. Do not propose a consumer-only fix when an owner layer exists and has not been inspected.
178
+
179
+ Example: if `ace-assign` fails because `ace-t.k5a-fs` is parsed incorrectly as a tmux target, the failing primitive is tmux window naming/targeting. `ace-tmux` owns window creation, naming, and navigation, so the primary fix belongs in `ace-tmux`; `ace-assign` and `ace-overseer` should reuse the shared policy.
180
+
181
+ ### 6. Propose Regression Tests
160
182
 
161
183
  **Design tests to catch this bug:**
162
184
 
@@ -185,24 +207,26 @@ Systematically analyze bug reports to identify root cause, verify reproduction,
185
207
  - Purpose: Verify [specific behavior] handles [edge case]
186
208
  - Scenario: When [condition], expect [result]
187
209
 
188
- **Integration Test: [test name]**
189
- - Location: test/integration/[flow]_test.rb
210
+ **Feature Test: [test name]**
211
+ - Location: test/feat/[flow]_test.rb
190
212
  - Purpose: Verify [workflow] completes correctly
191
213
  - Scenario: Given [setup], when [action], then [verification]
192
214
  ```
193
215
 
194
- ### 6. Create Fix Plan
216
+ ### 7. Create Fix Plan
195
217
 
196
218
  **Document the fix strategy:**
197
219
 
198
220
  1. **Files to modify:**
199
221
  - List each file that needs changes
200
222
  - Describe the type of change for each
223
+ - Mark each file as owner, adapter/orchestrator, or consumer/symptom when layer ownership triage applies
201
224
 
202
225
  2. **Fix approach:**
203
226
  - Describe the technical solution
204
227
  - Explain why this approach was chosen
205
228
  - Note any alternative approaches considered
229
+ - Explain why the fix is placed in the owner layer, or why no owner-layer change is needed
206
230
 
207
231
  3. **Risks and side effects:**
208
232
  - What else might be affected by the fix
@@ -213,7 +237,7 @@ Systematically analyze bug reports to identify root cause, verify reproduction,
213
237
  - How to revert if issues arise
214
238
  - What to check after reverting
215
239
 
216
- ### 7. Save Analysis Results
240
+ ### 8. Save Analysis Results
217
241
 
218
242
  **Cache the analysis for fix-bug workflow:**
219
243
 
@@ -228,6 +252,14 @@ mkdir -p .ace-local/task/bug-analysis/{session}
228
252
  # .ace-local/task/bug-analysis/{session}/analysis.yml
229
253
  root_cause: "Description of root cause"
230
254
  repro_status: confirmed | not_reproducible | intermittent
255
+ layer_ownership:
256
+ primitive: "Shared resource/protocol/API involved, if any"
257
+ owner: "Package/component that owns creation/naming/routing"
258
+ adapters:
259
+ - "Adapter/orchestrator package, if any"
260
+ consumers:
261
+ - "Symptom package, if any"
262
+ fix_layer: "owner | adapter | consumer | not_applicable"
231
263
  affected_files:
232
264
  - path: path/to/file.rb
233
265
  change_summary: "Description of what change is needed"
@@ -357,7 +389,7 @@ Present the analysis to the user in this format:
357
389
  - Purpose: [What it validates]
358
390
 
359
391
  2. **[Test Name]** (integration)
360
- - File: `test/integration/flow_test.rb`
392
+ - File: `test/feat/flow_test.rb`
361
393
  - Purpose: [What it validates]
362
394
 
363
395
  ### Fix Plan
@@ -420,7 +452,7 @@ This workflow provides systematic bug analysis that ensures proper investigation
420
452
  - Purpose: [What it validates]
421
453
 
422
454
  2. **[Test Name]** (integration)
423
- - File: `test/integration/flow_test.rb`
455
+ - File: `test/feat/flow_test.rb`
424
456
  - Purpose: [What it validates]
425
457
 
426
458
  ### Fix Plan
@@ -455,4 +487,4 @@ risks:
455
487
  - "Potential side effect description"
456
488
  rollback_plan: "How to revert if issues arise"
457
489
  </template>
458
- </documents>
490
+ </documents>
@@ -67,6 +67,7 @@ ls .ace-local/task/bug-analysis/
67
67
  - Load the analysis.yml from the most recent session
68
68
  - Review root cause, affected files, and proposed tests
69
69
  - Confirm the fix plan with user if needed
70
+ - Review `layer_ownership` when present and verify the planned fix targets the owner layer before adapters or consumers
70
71
 
71
72
  **If no analysis exists:**
72
73
 
@@ -74,6 +75,16 @@ ls .ace-local/task/bug-analysis/
74
75
  - Gather: affected files, root cause, proposed solution
75
76
  - Document the fix approach before proceeding
76
77
 
78
+ **Layer ownership guard:**
79
+
80
+ When the bug crosses package boundaries or involves a shared primitive, classify packages before editing:
81
+
82
+ - **Owner/creator**: creates, names, persists, routes, or navigates the primitive
83
+ - **Adapter/orchestrator**: coordinates owner APIs for a workflow
84
+ - **Consumer/symptom**: exposes the failure but does not own the primitive
85
+
86
+ If the loaded/user-provided plan changes only a consumer/symptom package while an owner layer exists and was not inspected, stop and return to analysis. Do not implement a local workaround before checking the owner package.
87
+
77
88
  ### 2. Prepare for Fix
78
89
 
79
90
  **Set up the fix branch:**
@@ -100,12 +111,14 @@ git checkout -b fix/[bug-description]
100
111
  - Review surrounding code
101
112
  - Understand dependencies
102
113
  - Check for similar patterns in codebase
114
+ - If the file is a consumer of a shared primitive, inspect the owner package/API before changing local policy
103
115
 
104
116
  2. **Apply the fix:**
105
117
  - Make minimal changes to fix the bug
106
118
  - Follow existing code style and patterns
107
119
  - Add appropriate error handling
108
120
  - Include inline comments only if logic is non-obvious
121
+ - Put shared policy in the owner layer and have adapters/consumers call that policy
109
122
 
110
123
  3. **Review the change:**
111
124
  - Verify the fix addresses root cause
@@ -140,7 +153,7 @@ git checkout -b fix/[bug-description]
140
153
 
141
154
  2. **Create integration test if needed:**
142
155
  ```ruby
143
- # Example: test/integration/workflow_test.rb
156
+ # Example: test/feat/workflow_test.rb
144
157
  def test_complete_flow_with_missing_data
145
158
  # Test the full workflow that exhibited the bug
146
159
  end
@@ -509,4 +522,4 @@ The fix is ready for code review and merge.
509
522
  ### Notes
510
523
  [Any additional context about the fix]
511
524
  </template>
512
- </documents>
525
+ </documents>