agentme 0.34.0 → 0.35.1

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.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  skill: 151-refine-user-story
3
- skill-version: "2.0"
3
+ skill-version: "4.1"
4
4
  ---
5
5
 
6
6
  ## Test Scenarios
@@ -32,8 +32,8 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
32
32
  **Assertions**
33
33
  - [ ] Skill asks at least one question about who receives notifications and what triggers them before producing any output.
34
34
  - [ ] Skill does not output a story while any area in the identification table (problem, scope, requirements, flow, edge cases, dependencies) has an open question.
35
- - [ ] Final output follows the output template with Title (max 10 words), User Story (As a … I want … so that …), Scope, and Acceptance Criteria sections.
36
- - [ ] Acceptance criteria items are verifiable and start with a checkbox `- [ ]`.
35
+ - [ ] Output follows the output template with Title (max 10 words), User Story (As a … I want … so that …), Scope, and Acceptance Criteria sections.
36
+ - [ ] Output contains acceptance criteria items that are verifiable and start with a checkbox `- [ ]`.
37
37
 
38
38
  ---
39
39
 
@@ -74,9 +74,9 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
74
74
  5. Skill presents `vscode_askQuestions` with "Accept split — start refining Registration" (recommended) plus options to adjust boundaries or keep the original scope.
75
75
  6. User accepts the split and picks "Registration" as the first slice to refine.
76
76
  7. Skill restarts from Phase 1 with the narrower registration scope. The remaining 3 slices are recorded as Deferred Stories.
77
- 8. Phases 1–7 run on the registration slice only. At Phase 7, a Deferred Items summary lists the 3 remaining slices.
78
- 9. Because no plan doc is active, skill presents `vscode_askQuestions` asking where to save the deferred slices; user picks BACKLOG.md.
79
- 10. Skill outputs one fully refined story (registration) and appends the 3 deferred slices to BACKLOG.md.
77
+ 8. Phases 1–7 run on the registration slice only. At Phase 8, a Deferred Items summary lists the 3 remaining slices.
78
+ 9. Because no initiative doc is active, skill presents `vscode_askQuestions` asking where to save the deferred slices; user picks TODO.md.
79
+ 10. Skill outputs one fully refined story (registration) and appends the 3 deferred slices to TODO.md as a single `### Group:` section with one `#### ` subsection per slice.
80
80
 
81
81
  **Simulated Human Responses**
82
82
  1. "Registration: email + password only. Password min 8 chars, at least one digit. Email must be verified before the user can log in."
@@ -87,15 +87,15 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
87
87
  6. "No rate limiting, CAPTCHA, or 2FA in scope for now. Each flow ships independently."
88
88
 
89
89
  **Assertions**
90
- - [ ] Phase 0 is skipped (no XDRS scope found).
90
+ - [ ] Skill skips Phase 0 when no XDRS scope is found.
91
91
  - [ ] Skill proposes a split at Phase 2 with rationale for each slice boundary.
92
92
  - [ ] Skill uses `vscode_askQuestions` to present the split options, not plain text.
93
- - [ ] After the user accepts, skill restarts Phase 1 for the chosen slice (registration) only.
94
- - [ ] Final output contains exactly one fully refined story (the chosen slice), using the full output template.
95
- - [ ] The three deferred slices appear in a Deferred Items summary at Phase 7, each with a one-line description.
93
+ - [ ] Skill restarts Phase 1 for the chosen slice (registration) only after the user accepts the split.
94
+ - [ ] Output contains exactly one fully refined story (the chosen slice) using the full output template.
95
+ - [ ] Deferred Items summary at Phase 8 lists the three deferred slices, each with a one-line description.
96
96
  - [ ] Skill does NOT produce a single merged story covering all four flows.
97
- - [ ] The chosen slice's story is independently shippable and delivers a complete end-to-end user-visible outcome.
98
- - [ ] No slice is a technical-layer-only story (e.g. "implement the auth database schema" alone is not acceptable).
97
+ - [ ] Output confirms the chosen slice delivers a complete, independently shippable end-to-end user outcome.
98
+ - [ ] Output shows no slice is a technical-layer-only story (e.g. "implement the auth database schema" alone is not acceptable).
99
99
 
100
100
  ---
101
101
 
@@ -104,7 +104,7 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
104
104
  **Trigger / Input**
105
105
  You are an agent with the `151-refine-user-story` skill loaded. The skill has completed Phase 4 (Consistency & Scope Review) and presents the phase gate. The user selects:
106
106
 
107
- "Re-run Phase 4 — deeper pass"
107
+ "Re-run Phase 4: Consistency & Scope Review — deeper pass"
108
108
 
109
109
  **Expected Behaviour**
110
110
  1. Skill does NOT advance to Phase 5 — it restarts Phase 4 Step 1 (consistency check) and Phase 4 Step 2 (scope item review) with fresh eyes.
@@ -114,14 +114,14 @@ You are an agent with the `151-refine-user-story` skill loaded. The skill has co
114
114
  5. Skill re-presents the Phase 4 gate with "Continue to Phase 5 — Visual Validation" as the recommended option.
115
115
 
116
116
  **Simulated Human Responses**
117
- 1. (Re-run Phase 4 selected at gate)
117
+ 1. (Re-run Phase 4: Consistency & Scope Review selected at gate)
118
118
  2. "The empty state message should appear only after a 300 ms delay to avoid a flash on fast networks."
119
119
 
120
120
  **Assertions**
121
121
  - [ ] Skill re-runs Phase 4 (does not skip to Phase 5) when the human selects re-run.
122
122
  - [ ] Skill surfaces at least one new finding during the deeper pass.
123
123
  - [ ] Skill asks a question about the new finding before re-presenting the gate.
124
- - [ ] The Phase 4 gate is re-presented after the human responds.
124
+ - [ ] Skill re-presents the Phase 4 gate after the human responds.
125
125
  - [ ] Skill does not advance to Phase 5 until the gate is explicitly confirmed with "Continue".
126
126
 
127
127
  ---
@@ -140,7 +140,7 @@ Phases 1–5 are complete. The skill is running Phase 6, angle 1 (User journey c
140
140
  2. Skill presents this as a finding and asks: "What should the user see while the export is being prepared — an immediate download, a loading indicator, or a background task with a notification? What feedback confirms the download completed?"
141
141
  3. Human answers the question.
142
142
  4. Skill incorporates the answer into the story scope and continues to angles 2–9.
143
- 5. Skill does NOT produce the final story until Phase 7 is complete and the readiness checklist passes.
143
+ 5. Skill does NOT produce the final story until Phase 8 is complete and the readiness checklist passes.
144
144
 
145
145
  **Simulated Human Responses**
146
146
  1. "Show a spinner while generating. When ready, auto-download the file and show a success toast: 'Your CSV is ready'."
@@ -149,15 +149,15 @@ Phases 1–5 are complete. The skill is running Phase 6, angle 1 (User journey c
149
149
  - [ ] Skill runs Phase 6 analysis before producing any output.
150
150
  - [ ] Skill surfaces the missing loading state and download confirmation as a finding during angle 1 (User journey completeness).
151
151
  - [ ] Skill asks at least one question about the finding using `vscode_askQuestions` before moving to angle 2.
152
- - [ ] After the human responds, the answer is reflected in the story scope (loading spinner + success toast added).
153
- - [ ] Skill does not skip to Phase 7 while any angle has open questions.
152
+ - [ ] Skill reflects the human's answer in the story scope (loading spinner + success toast added).
153
+ - [ ] Skill does not skip to Phase 8 while any angle has open questions.
154
154
 
155
155
  ---
156
156
 
157
- ### Scenario 6: Plan document with pending placeholder stories — user picks one to refine
157
+ ### Scenario 6: Initiative document with pending placeholder stories — user picks one to refine
158
158
 
159
159
  **Trigger / Input**
160
- You are an agent with the `151-refine-user-story` skill loaded. The user references an epic plan document at `.xdrs/_local/bdrs/operations/plans/001-epic-improve-checkout.md`. The plan contains:
160
+ You are an agent with the `151-refine-user-story` skill loaded. The user references an epic initiative document at `.xdrs/_local/bdrs/operations/initiatives/001-epic-improve-checkout.md`. The initiative contains:
161
161
 
162
162
  ```
163
163
  ### Milestone 1: Payment Speed
@@ -173,43 +173,43 @@ You are an agent with the `151-refine-user-story` skill loaded. The user referen
173
173
  Each `.assets/userstory-*.md` file contains `**Status:** to-be-refined` plus any preliminary notes captured when the story was created.
174
174
 
175
175
  **Expected Behaviour**
176
- 1. Skill activates Phase 0, detects the plan document, and parses all Milestone key tasks.
176
+ 1. Skill activates Phase 0, detects the initiative document, and parses all Milestone key tasks.
177
177
  2. Skill reads each linked `.assets/userstory-*.md` file and checks for `**Status:** to-be-refined`. Identifies all three as pending.
178
178
  3. Skill presents a `vscode_askQuestions` list of the three pending stories plus a "New story" option.
179
179
  4. User picks the "Reduce payment steps" story from Milestone 1.
180
180
  5. Skill reads the placeholder file — extracts NNN (001) and slug (`reduce-payment-steps`) from its `**Story ID:**` line; carries any notes into Phase 1 as starting context.
181
181
  6. Skill proceeds to Phase 1 using the placeholder's title and notes as the subject.
182
- 7. After Phase 7, skill overwrites `.assets/userstory-001-reduce-payment-steps.md` with the fully refined content (no `**Status:**` line).
182
+ 7. After Phase 8, skill overwrites `.assets/userstory-001-reduce-payment-steps.md` with the fully refined content (no `**Status:**` line).
183
183
  8. Skill updates the task entry link text in Milestone 1 to `- [Reduce payment steps at checkout](.assets/userstory-001-reduce-payment-steps.md)`.
184
184
 
185
185
  **Assertions**
186
- - [ ] Phase 0 detects pending stories by reading file content (`**Status:** to-be-refined`), not by task entry name format.
187
- - [ ] All three pending stories are listed before Phase 1 begins.
188
- - [ ] NNN and slug are extracted from the placeholder file's `**Story ID:**` line, not from the task entry text.
189
- - [ ] After Phase 7, the story detail file is overwritten with the refined content and no `**Status:**` field.
190
- - [ ] The Milestone 1 task entry link text is updated to the refined story title; the file path stays the same.
191
- - [ ] Skill does NOT offer "Save to BACKLOG.md" for deferred items while a plan doc is active.
186
+ - [ ] Skill detects pending stories by reading file content (`**Status:** to-be-refined`), not by task entry name format.
187
+ - [ ] Skill lists all three pending stories before Phase 1 begins.
188
+ - [ ] Output shows NNN and slug extracted from the placeholder file's `**Story ID:**` line, not from the task entry text.
189
+ - [ ] Skill overwrites the story detail file with refined content and no `**Status:**` field after Phase 8.
190
+ - [ ] Skill updates the Milestone 1 task entry link text to the refined story title; the file path stays the same.
191
+ - [ ] Skill does NOT offer "Save to TODO.md" for deferred items while an initiative doc is active.
192
192
 
193
193
  ---
194
194
 
195
- ### Scenario 7: Refined story output writes asset file and updates plan Milestone link
195
+ ### Scenario 7: Refined story output writes asset file and updates initiative Milestone link
196
196
 
197
197
  **Trigger / Input**
198
- You are an agent with the `151-refine-user-story` skill loaded. Phase 0 has detected an active plan doc at `.xdrs/_local/bdrs/operations/plans/002-epic-onboarding.md` with Milestone 1: "First Login Experience". The user is refining a new story to be placed there.
198
+ You are an agent with the `151-refine-user-story` skill loaded. Phase 0 has detected an active initiative doc at `.xdrs/_local/bdrs/operations/initiatives/002-epic-onboarding.md` with Milestone 1: "First Login Experience". The user is refining a new story to be placed there.
199
199
 
200
- After completing Phases 1–6, Phase 7 produces the final story: "Show personalised welcome screen on first login".
200
+ After completing Phases 1–6, Phase 8 produces the final story: "Show personalised welcome screen on first login".
201
201
 
202
202
  **Expected Behaviour**
203
- 1. Phase 7 determines the next NNN in the plan's `.assets/` folder (no existing userstory files → NNN = 001).
204
- 2. Skill writes `.assets/userstory-001-welcome-screen-first-login.md` using the output template sections: Title, User Story, Scope, Edge Cases, Out of Scope, Constraints, Detailed Specs, Acceptance Criteria, Attachments, plus a back-link to the epic plan.
205
- 3. Skill inserts `- [Show personalised welcome screen on first login](.assets/userstory-001-welcome-screen-first-login.md)` as a key task in Milestone 1 of the plan doc.
203
+ 1. Phase 8 determines the next NNN in the initiative's `.assets/` folder (no existing userstory files → NNN = 001).
204
+ 2. Skill writes `.assets/userstory-001-welcome-screen-first-login.md` using the output template sections: Title, User Story, Scope, Edge Cases, Out of Scope, Constraints, Detailed Specs, Acceptance Criteria, Attachments, plus a back-link to the epic initiative.
205
+ 3. Skill inserts `- [Show personalised welcome screen on first login](.assets/userstory-001-welcome-screen-first-login.md)` as a key task in Milestone 1 of the initiative doc.
206
206
 
207
207
  **Assertions**
208
- - [ ] Story detail file is created at the correct path inside the plan's `.assets/` folder.
209
- - [ ] File uses all required template sections including `## Constraints` and `## Detailed Specs`.
210
- - [ ] File includes a back-link to the parent epic plan.
211
- - [ ] The plan doc's Milestone 1 key tasks section contains a markdown link entry pointing to the new file.
212
- - [ ] NNN is 001 (first story in this epic's `.assets/` folder).
208
+ - [ ] Skill creates the story detail file at the correct path inside the initiative's `.assets/` folder.
209
+ - [ ] Output uses all required template sections including `## Constraints` and `## Detailed Specs`.
210
+ - [ ] Output includes a back-link to the parent epic initiative.
211
+ - [ ] Initiative doc's Milestone 1 key tasks section contains a markdown link entry pointing to the new file.
212
+ - [ ] Output shows NNN as 001 (first story in this epic's `.assets/` folder).
213
213
 
214
214
  ---
215
215
 
@@ -223,14 +223,14 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
223
223
  **Expected Behaviour**
224
224
  1. Phase 0 finds no XDRS scope and skips to Phase 1 immediately.
225
225
  2. Skill runs all phases normally.
226
- 3. At Phase 7, after producing the final story, skill asks via `vscode_askQuestions` where to save the story file, defaulting to `userstory-001-reset-pin-via-sms.md` at the workspace root.
227
- 4. If the story is split, the deferred slices prompt offers: add to existing epic plan, create new epic plan, or save to `BACKLOG.md`.
226
+ 3. At Phase 8, after producing the final story, skill asks via `vscode_askQuestions` where to save the story file, defaulting to `userstory-001-reset-pin-via-sms.md` at the workspace root.
227
+ 4. If the story is split, the deferred slices prompt offers: add to existing epic initiative, create new epic initiative, or save to `TODO.md`.
228
228
 
229
229
  **Assertions**
230
- - [ ] Phase 0 does not block or present any plan-doc questions when no XDRS scope exists.
231
- - [ ] Phase 7 asks for a save location with a clear default path.
232
- - [ ] The story file is saved to the user-confirmed path.
233
- - [ ] Split deferred stories trigger a destination choice (not silently written to BACKLOG.md).
230
+ - [ ] Skill does not block or present any initiative-doc questions when no XDRS scope exists.
231
+ - [ ] Skill asks for a save location with a clear default path at Phase 8.
232
+ - [ ] Skill saves the story file to the user-confirmed path.
233
+ - [ ] Skill triggers a destination choice for split deferred stories (not silently writing to TODO.md).
234
234
 
235
235
  ---
236
236
 
@@ -248,36 +248,36 @@ After Phase 2 Step 1, no API endpoints, no payload structures, no documentation
248
248
  2. Skill asks targeted questions: "What is the payment provider? Do you have an API reference or documentation link? What is the payment flow — which endpoints are called, in what order, with what payload?"
249
249
  3. Human provides partial answers: "We use Stripe. Charge endpoint. Don't know the exact payload."
250
250
  4. Skill asks follow-up: "Can you share the Stripe API documentation link or the name of someone who owns the Stripe integration?"
251
- 5. Phase 7 readiness checklist item for Detailed Specs fails until sufficient detail is provided (endpoint, payload shape, or doc link).
251
+ 5. Phase 8 readiness checklist item for Detailed Specs fails until sufficient detail is provided (endpoint, payload shape, or doc link).
252
252
 
253
253
  **Assertions**
254
254
  - [ ] Phase 2 Step 1 explicitly surfaces the missing integration details before Step 2 is reached.
255
255
  - [ ] Skill does not produce a final story while `## Detailed Specs` remains empty for a story involving an external API.
256
- - [ ] Phase 7 checklist item for Detailed Specs is checked only after sufficient detail (at minimum a doc link or endpoint) is provided.
256
+ - [ ] Phase 8 checklist item for Detailed Specs is checked only after sufficient detail (at minimum a doc link or endpoint) is provided.
257
257
  - [ ] Final output's `## Detailed Specs` section contains at least the Stripe API reference and the charge endpoint.
258
258
 
259
259
  ---
260
260
 
261
- ### Scenario 10: XDRS scope active, start fresh, story split — Phase 7 asks where to put deferred slices
261
+ ### Scenario 10: XDRS scope active, start fresh, story split — Phase 8 asks where to put deferred slices
262
262
 
263
263
  **Trigger / Input**
264
- You are an agent with the `151-refine-user-story` skill loaded. Phase 0 detected an XDRS scope with two existing epic plans but the user chose "start fresh — no plan context". During Phase 2, the story is found to be too large and split into three slices. The user accepts the split and starts refining Slice 1.
264
+ You are an agent with the `151-refine-user-story` skill loaded. Phase 0 detected an XDRS scope with two existing epic initiatives but the user chose "start fresh — no initiative context". During Phase 2, the story is found to be too large and split into three slices. The user accepts the split and starts refining Slice 1.
265
265
 
266
266
  **Expected Behaviour**
267
- 1. Phase 0 detects XDRS scope, presents epic plan list plus "Start fresh" option, user picks "Start fresh".
267
+ 1. Phase 0 detects XDRS scope, presents epic initiative list plus "Start fresh" option, user picks "Start fresh".
268
268
  2. Phases 1–7 run normally for Slice 1.
269
- 3. At Phase 7, because the context is "start fresh" (no active plan doc), the two deferred slices trigger a `vscode_askQuestions` prompt: "Where should the deferred story slices go?" with options: add to an existing epic plan (lists found epics), create a new epic plan, or save to BACKLOG.md.
270
- 4. Skill applies the chosen action (e.g., creates placeholder files for the two deferred slices and inserts `- [Slice description — pending](.assets/userstory-NNN-slug.md)` task entries in the chosen epic plan, or appends descriptions to BACKLOG.md).
269
+ 3. At Phase 8, because the context is "start fresh" (no active initiative doc), the two deferred slices trigger a `vscode_askQuestions` prompt: "Where should the deferred story slices go?" with options: add to an existing epic initiative (lists found epics), create a new epic initiative, or save to TODO.md.
270
+ 4. Skill applies the chosen action (e.g., creates placeholder files for the two deferred slices and inserts `- [Slice description — pending](.assets/userstory-NNN-slug.md)` task entries in the chosen epic initiative, or appends a Group/Part entry to TODO.md).
271
271
 
272
272
  **Assertions**
273
- - [ ] Phase 0 presents the XDRS epic plan list even in "start fresh" mode.
274
- - [ ] Deferred slices do NOT go silently to BACKLOG.md when an XDRS scope is present.
275
- - [ ] Phase 7 presents a `vscode_askQuestions` destination choice for deferred slices.
276
- - [ ] If an epic plan is chosen, deferred slices are created as placeholder files and inserted as `- [description — pending](.assets/...)` link entries in the correct Milestone.
273
+ - [ ] Phase 0 presents the XDRS epic initiative list even in "start fresh" mode.
274
+ - [ ] Deferred slices do NOT go silently to TODO.md when an XDRS scope is present.
275
+ - [ ] Phase 8 presents a `vscode_askQuestions` destination choice for deferred slices.
276
+ - [ ] If an epic initiative is chosen, deferred slices are created as placeholder files and inserted as `- [description — pending](.assets/...)` link entries in the correct Milestone.
277
277
 
278
278
  ---
279
279
 
280
- ### Scenario 11: Very large story split into multiple slices — no XDRS scope — deferred slices saved to BACKLOG.md
280
+ ### Scenario 11: Very large story split into multiple slices — no XDRS scope — deferred slices saved to TODO.md
281
281
 
282
282
  **Trigger / Input**
283
283
  You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
@@ -296,11 +296,11 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
296
296
  - Slice 6: Post-purchase upsell screen
297
297
  4. Skill presents `vscode_askQuestions` asking which slice to refine first; user picks Slice 1.
298
298
  5. Phases 1–7 run on Slice 1 only. The remaining 5 slices are tracked as Deferred Stories.
299
- 6. At Phase 7, because no plan doc is active, skill presents `vscode_askQuestions`:
300
- - **"Save deferred slices to BACKLOG.md"** (recommended)
299
+ 6. At Phase 8, because no initiative doc is active, skill presents `vscode_askQuestions`:
300
+ - **"Save deferred slices to TODO.md"** (recommended)
301
301
  - **"Save to a different file"** (open box)
302
302
  - **"Skip — do not save"**
303
- 7. User picks "Save deferred slices to BACKLOG.md". Skill appends the 5 deferred slices under a `## Deferred Stories` heading in `BACKLOG.md` at the workspace root (creating the file if needed), each with a one-line description and split rationale.
303
+ 7. User picks "Save deferred slices to TODO.md". Skill appends a single `### Group: [checkout flow] — deferred [date]` section under a `## Deferred Stories` heading in `TODO.md` at the workspace root (creating the file if needed), recording Origin, Original objective, and Split rationale, followed by one `#### ` subsection per deferred slice (Slices 2–6), each with its own Objective, Scope, Context captured so far, and Suggested prompt to resume.
304
304
  8. Skill outputs the refined story for Slice 1 only.
305
305
 
306
306
  **Assertions**
@@ -308,9 +308,149 @@ You are an agent with the `151-refine-user-story` skill loaded. The workspace ha
308
308
  - [ ] Skill explicitly states at Phase 2 that the request is too large and must be split.
309
309
  - [ ] All identified slices are presented for user selection before any refinement begins.
310
310
  - [ ] Only the user-selected slice (Slice 1) is refined through Phases 1–7.
311
- - [ ] The remaining slices appear in a Deferred Items summary at Phase 7.
312
- - [ ] `vscode_askQuestions` is used at Phase 7 to ask where to save deferred slices (not silently appended).
313
- - [ ] BACKLOG.md is created (or appended to) at the workspace root with a `## Deferred Stories` section.
314
- - [ ] Each deferred slice in BACKLOG.md has a one-line description and reason for deferral.
311
+ - [ ] The remaining slices appear in a Deferred Items summary at Phase 8.
312
+ - [ ] `vscode_askQuestions` is used at Phase 8 to ask where to save deferred slices (not silently appended).
313
+ - [ ] TODO.md is created (or appended to) at the workspace root with a `## Deferred Stories` section containing a single `### Group:` heading for this split.
314
+ - [ ] The Group heading records the origin (151-refine-user-story, Phase 2 Step 3), the original checkout-flow objective, and the split rationale.
315
+ - [ ] Each of the 5 deferred slices appears as its own `#### ` subsection with Objective, Scope, Context captured so far, and a Suggested prompt to resume.
315
316
  - [ ] The final output contains exactly one refined story (Slice 1), not all slices.
316
- - [ ] Skill does NOT offer BACKLOG.md for deferred items from an active plan doc (this scenario has no plan doc — condition satisfied).
317
+ - [ ] Skill does NOT offer TODO.md for deferred items from an active initiative doc (this scenario has no initiative doc — condition satisfied).
318
+
319
+ ---
320
+
321
+ ### Scenario 12: Phase 6 passes cleanly but Phase 7 implementer angles surface missing error paths and a security concern
322
+
323
+ **Trigger / Input**
324
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. Phases 1–6 have completed for:
325
+
326
+ "Allow users to link their Google account to an existing account so they can sign in with Google."
327
+
328
+ Phase 6 converged without surfacing major gaps. The skill is now entering Phase 7.
329
+
330
+ **Expected Behaviour**
331
+ 1. Phase 7 fires and applies the per-angle protocol to all 8 implementer angles.
332
+ 2. Angle 2 (Error and edge paths): the protocol generates questions about failure modes. The current story does not describe what happens if: the Google OAuth callback fails, the Google email is already linked to another account, or the OAuth token is revoked after linking. Skill surfaces these as findings and asks the user how each should be handled.
333
+ 3. Angle 6 (Security implications): the protocol generates questions about auth handling. The story does not specify how the OAuth state parameter is validated, how long the linking session is valid, or whether the user must be authenticated before initiating Google linking. Skill surfaces these as an auth concern and asks.
334
+ 4. Angles 1, 3, 4, 5, 7 converge quickly with answers drawn from story contents or brief user responses.
335
+ 5. Angle 8 (Implementer dry run): a cold engineer following the story would get stuck on the OAuth callback error handling and the authentication prerequisite — both already surfaced by angles 2 and 6. Skill confirms these are now resolved and the dry run passes.
336
+ 6. Phase 8 checklist requires both Phase 6 (9 user-perspective angles) and Phase 7 (8 implementer-perspective angles) complete before output is produced.
337
+ 7. Phase 9 Check A re-validates items 8 (error and edge paths) and 12 (security implications) in the final output. Both pass.
338
+ 8. Phase 9 Check B applies the 4 size criteria — none are met — skill presents the completion gate.
339
+
340
+ **Simulated Human Responses**
341
+ 1. (Phase 7 angle 2 question on OAuth callback failure) "Show an error toast: 'Could not link Google account. Please try again.' Keep the user on the account settings page."
342
+ 2. (Phase 7 angle 2 question on email already linked) "Show: 'This Google account is already linked to another user.' Do not link or merge — block the attempt."
343
+ 3. (Phase 7 angle 2 question on revoked token) "Out of scope — user must re-link manually if token is revoked."
344
+ 4. (Phase 7 angle 6 question on auth prerequisite) "User must be logged in. Redirect to login if not."
345
+ 5. (Phase 7 angle 6 question on state parameter validation) "Yes — validate CSRF state parameter on callback. Reject if missing or mismatched."
346
+
347
+ **Assertions**
348
+ - [ ] Phase 6 completes with all 9 user-perspective angles run using the per-angle protocol (5–10 questions generated per angle, answers attempted, gaps asked).
349
+ - [ ] Phase 7 fires after Phase 6 gate is confirmed.
350
+ - [ ] Phase 7 angle 2 surfaces at least the OAuth callback failure and the "email already linked" case as open findings and asks the user about each.
351
+ - [ ] Phase 7 angle 6 surfaces the missing authentication prerequisite and CSRF state validation as a security concern and asks the user.
352
+ - [ ] Phase 7 angle 8 (implementer dry run) references the gaps found in angles 2 and 6 and confirms they are resolved before marking the dry run passed.
353
+ - [ ] Phase 8 checklist explicitly requires both Phase 6 (9 angles) and Phase 7 (8 angles) complete.
354
+ - [ ] Phase 9 Check A items 8 and 12 pass in the final output (error paths and security addressed in story).
355
+ - [ ] Phase 9 Check B detects no split needed; skill presents the completion gate.
356
+ - [ ] Final story includes error handling for OAuth failure, duplicate email, and revoked token (out-of-scope noted), and documents the CSRF state validation and auth prerequisite in Acceptance Criteria or Detailed Specs.
357
+
358
+ ---
359
+
360
+ ### Scenario 13: Context Enrichment — existing CRM system, domain inferred, URL provided, mid-phase probe fires
361
+
362
+ **Trigger / Input**
363
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
364
+
365
+ "Delete contacts from Leads."
366
+
367
+ **Expected Behaviour**
368
+ 1. Phase 1 Step 3 fires (Context Enrichment).
369
+ 2. Skill performs quick request analysis internally and infers the domain is likely a CRM based on the entities "contacts" and "Leads."
370
+ 3. Skill scans the workspace — finds no relevant source code, READMEs, or prior stories.
371
+ 4. Skill asks targeted, domain-specific questions: *"This looks like a CRM — is it? Can you point me to the Leads screen documentation or any existing specs?"* and *"Do you have screenshots or a recording of the current Leads / Contacts flow?"*
372
+ 5. User provides a URL: `https://internal.docs/crm/leads-screen`.
373
+ 6. Skill reads the URL content and summarises it (factual, labeled with source).
374
+ 7. Context loop re-evaluates: no further gaps at this stage; convergence reached after 1 round. Skill presents the convergence gate.
375
+ 8. User selects "Context is sufficient — continue to Phase 2."
376
+ 9. Skill compiles the Context Summary and carries it into Phase 2.
377
+ 10. During Phase 2 Step 2 (requirements loop), skill hits an interface-and-integration gap: the URL did not specify the API used for deleting contacts. Skill applies the Context Probe rule and asks: *"The docs describe the UI flow but do not mention the API contract for contact deletion — do you have an API reference or endpoint spec?"*
378
+ 11. User provides a partial answer. Skill records it and continues.
379
+
380
+ **Simulated Human Responses**
381
+ 1. (Quick analysis internal — not shown)
382
+ 2. URL: `https://internal.docs/crm/leads-screen`
383
+ 3. (Convergence gate) "Context is sufficient — continue to Phase 2"
384
+ 4. (API probe) "We use a REST API. DELETE /contacts/:id. No other docs."
385
+
386
+ **Assertions**
387
+ - [ ] Skill performs quick internal analysis before surfacing any question.
388
+ - [ ] First questions are domain-specific and tied to inferred domain (CRM), not generic.
389
+ - [ ] Skill auto-reads the provided URL and summarizes its content with source label.
390
+ - [ ] Context loop converges after 1 round and presents the convergence gate.
391
+ - [ ] Context Summary is compiled and referenced in Phase 2.
392
+ - [ ] Mid-phase Context Probe fires in Phase 2 for the API gap — ask is tied to the specific gap, not generic.
393
+ - [ ] Skipped or partial answers (no further docs) are recorded as "Context: not provided for [topic]" and do NOT block Phase 2 progress.
394
+
395
+ ---
396
+
397
+ ### Scenario 14: Context Enrichment — new feature, no codebase, user pastes KR + interview excerpt, loop converges in 2 rounds
398
+
399
+ **Trigger / Input**
400
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
401
+
402
+ "We need a way for field technicians to report equipment failures from their mobile device."
403
+
404
+ **Expected Behaviour**
405
+ 1. Phase 1 Step 3 fires (Context Enrichment).
406
+ 2. Quick analysis identifies: domain = field service / maintenance; key entities = technicians, equipment, failure reports; no named system; operation = create/report flow.
407
+ 3. Workspace scan finds nothing relevant — no source code, no docs.
408
+ 4. Skill asks targeted questions: *"What business outcome is expected from this feature? Are there OKR or KR documents describing the goal?"* and *"Were there user interviews or stakeholder discussions about this need? A transcript or notes would help."* and *"Is there an existing system (even paper-based or manual) that this replaces?"*
409
+ 5. User pastes a KR: "KR: 90% of failures reported within 15 minutes of occurrence (baseline: 45% today)" and an interview excerpt: "Technicians said they often forget details by the time they reach a desk. They need it on-site."
410
+ 6. Skill summarizes the pasted content with source label.
411
+ 7. Context loop re-evaluates: a new gap surfaced (no info on mobile platform or existing backend). Skill asks 1 follow-up round: *"What mobile platform should this target (iOS, Android, both)? Is there an existing backend or API that failure reports should be sent to?"*
412
+ 8. User answers. Loop re-evaluates — no further gaps. Convergence reached after 2 rounds.
413
+ 9. Skill presents the convergence gate; user selects "Context is sufficient — continue to Phase 2."
414
+ 10. Context Summary is compiled with KR, interview excerpt, and platform answer all labeled.
415
+
416
+ **Simulated Human Responses**
417
+ 1. (No workspace artifacts found — no answer needed)
418
+ 2. KR + interview excerpt (pasted inline)
419
+ 3. Follow-up: "Android only. No existing backend — we'll build it."
420
+
421
+ **Assertions**
422
+ - [ ] Skill asks targeted questions derived from domain inference even when workspace scan finds nothing.
423
+ - [ ] Pasted KR and interview excerpt are summarized with source label (e.g. `**Source:** user-provided KR — 90% failure reporting rate target`).
424
+ - [ ] Loop fires a second round when new gaps are identified after first answers.
425
+ - [ ] Loop converges after exactly 2 rounds (no infinite loop).
426
+ - [ ] Context Summary contains all three pieces: KR, interview excerpt, platform decision.
427
+ - [ ] Phase 2 references the Context Summary when restating understanding.
428
+
429
+ ---
430
+
431
+ ### Scenario 15: Context Enrichment — user skips entirely, Phase 2 proceeds, no fabrication
432
+
433
+ **Trigger / Input**
434
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
435
+
436
+ "Add a dark mode toggle to the settings page."
437
+
438
+ **Expected Behaviour**
439
+ 1. Phase 1 Step 3 fires (Context Enrichment).
440
+ 2. Quick analysis: domain = UI/UX, web or mobile app; key entity = settings page; operation = toggle/preference.
441
+ 3. Workspace scan finds nothing.
442
+ 4. Skill asks targeted questions: *"Is there an existing design system or theme configuration? Can you point me to the settings page code or design spec?"* and *"What frameworks or platforms does this app use?"*
443
+ 5. User selects "Skip — no additional context available."
444
+ 6. Skill records `Context: none available` and proceeds immediately to Phase 2.
445
+ 7. Phase 2 restates understanding without any fabricated system details, noting context is unavailable.
446
+ 8. Phase 2 requirements loop asks about the existing theme system, frameworks, and user preference persistence — without assuming any specific technology.
447
+
448
+ **Simulated Human Responses**
449
+ 1. "Skip — no additional context available"
450
+
451
+ **Assertions**
452
+ - [ ] Skill records `Context: none available` explicitly and does not invent any system details.
453
+ - [ ] Skill proceeds to Phase 2 immediately after the skip — no re-prompting.
454
+ - [ ] Phase 2 Step 1 restate does not reference any assumed technologies or design systems.
455
+ - [ ] Phase 2 requirements loop asks about theme system and framework without assuming anything from the story text.
456
+ - [ ] Skipped Context Probe is not treated as an unresolved decision — does not block the Hard Gate.
@@ -27,7 +27,7 @@ The `agentme` EDRs cover project tooling and structure for each supported langua
27
27
 
28
28
  ### Business decisions
29
29
 
30
- The `agentme` BDRs cover software development project management practices: how to organize and track epics, features, and user stories using XDRS plan documents. See the full list in the [BDRs Index](bdrs/index.md).
30
+ The `agentme` BDRs cover software development project management practices: how to organize and track epics, features, and user stories using XDRS initiative documents. See the full list in the [BDRs Index](bdrs/index.md).
31
31
 
32
32
  ## Type Indexes
33
33
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentme",
3
- "version": "0.34.0",
3
+ "version": "0.35.1",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "filedist": "^0.39.0"