agentme 0.34.0 → 0.35.0

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: "3.0"
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,7 +74,7 @@ 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.
77
+ 8. Phases 1–7 run on the registration slice only. At Phase 8, a Deferred Items summary lists the 3 remaining slices.
78
78
  9. Because no plan doc is active, skill presents `vscode_askQuestions` asking where to save the deferred slices; user picks BACKLOG.md.
79
79
  10. Skill outputs one fully refined story (registration) and appends the 3 deferred slices to BACKLOG.md.
80
80
 
@@ -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,8 +149,8 @@ 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
 
@@ -179,15 +179,15 @@ Each `.assets/userstory-*.md` file contains `**Status:** to-be-refined` plus any
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.
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
191
  - [ ] Skill does NOT offer "Save to BACKLOG.md" for deferred items while a plan doc is active.
192
192
 
193
193
  ---
@@ -197,19 +197,19 @@ Each `.assets/userstory-*.md` file contains `**Status:** to-be-refined` plus any
197
197
  **Trigger / Input**
198
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.
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).
203
+ 1. Phase 8 determines the next NNN in the plan's `.assets/` folder (no existing userstory files → NNN = 001).
204
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
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.
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 plan'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 plan.
211
+ - [ ] Plan 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.
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
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`.
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 plan-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 BACKLOG.md).
234
234
 
235
235
  ---
236
236
 
@@ -248,17 +248,17 @@ 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
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.
@@ -266,13 +266,13 @@ You are an agent with the `151-refine-user-story` skill loaded. Phase 0 detected
266
266
  **Expected Behaviour**
267
267
  1. Phase 0 detects XDRS scope, presents epic plan 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.
269
+ 3. At Phase 8, 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
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).
271
271
 
272
272
  **Assertions**
273
273
  - [ ] Phase 0 presents the XDRS epic plan list even in "start fresh" mode.
274
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.
275
+ - [ ] Phase 8 presents a `vscode_askQuestions` destination choice for deferred slices.
276
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.
277
277
 
278
278
  ---
@@ -296,7 +296,7 @@ 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`:
299
+ 6. At Phase 8, because no plan doc is active, skill presents `vscode_askQuestions`:
300
300
  - **"Save deferred slices to BACKLOG.md"** (recommended)
301
301
  - **"Save to a different file"** (open box)
302
302
  - **"Skip — do not save"**
@@ -308,9 +308,148 @@ 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).
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
313
  - [ ] BACKLOG.md is created (or appended to) at the workspace root with a `## Deferred Stories` section.
314
314
  - [ ] Each deferred slice in BACKLOG.md has a one-line description and reason for deferral.
315
315
  - [ ] The final output contains exactly one refined story (Slice 1), not all slices.
316
316
  - [ ] Skill does NOT offer BACKLOG.md for deferred items from an active plan doc (this scenario has no plan doc — condition satisfied).
317
+
318
+ ---
319
+
320
+ ### Scenario 12: Phase 6 passes cleanly but Phase 7 implementer angles surface missing error paths and a security concern
321
+
322
+ **Trigger / Input**
323
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. Phases 1–6 have completed for:
324
+
325
+ "Allow users to link their Google account to an existing account so they can sign in with Google."
326
+
327
+ Phase 6 converged without surfacing major gaps. The skill is now entering Phase 7.
328
+
329
+ **Expected Behaviour**
330
+ 1. Phase 7 fires and applies the per-angle protocol to all 8 implementer angles.
331
+ 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.
332
+ 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.
333
+ 4. Angles 1, 3, 4, 5, 7 converge quickly with answers drawn from story contents or brief user responses.
334
+ 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.
335
+ 6. Phase 8 checklist requires both Phase 6 (9 user-perspective angles) and Phase 7 (8 implementer-perspective angles) complete before output is produced.
336
+ 7. Phase 9 Check A re-validates items 8 (error and edge paths) and 12 (security implications) in the final output. Both pass.
337
+ 8. Phase 9 Check B applies the 4 size criteria — none are met — skill presents the completion gate.
338
+
339
+ **Simulated Human Responses**
340
+ 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."
341
+ 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."
342
+ 3. (Phase 7 angle 2 question on revoked token) "Out of scope — user must re-link manually if token is revoked."
343
+ 4. (Phase 7 angle 6 question on auth prerequisite) "User must be logged in. Redirect to login if not."
344
+ 5. (Phase 7 angle 6 question on state parameter validation) "Yes — validate CSRF state parameter on callback. Reject if missing or mismatched."
345
+
346
+ **Assertions**
347
+ - [ ] 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).
348
+ - [ ] Phase 7 fires after Phase 6 gate is confirmed.
349
+ - [ ] 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.
350
+ - [ ] Phase 7 angle 6 surfaces the missing authentication prerequisite and CSRF state validation as a security concern and asks the user.
351
+ - [ ] 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.
352
+ - [ ] Phase 8 checklist explicitly requires both Phase 6 (9 angles) and Phase 7 (8 angles) complete.
353
+ - [ ] Phase 9 Check A items 8 and 12 pass in the final output (error paths and security addressed in story).
354
+ - [ ] Phase 9 Check B detects no split needed; skill presents the completion gate.
355
+ - [ ] 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.
356
+
357
+ ---
358
+
359
+ ### Scenario 13: Context Enrichment — existing CRM system, domain inferred, URL provided, mid-phase probe fires
360
+
361
+ **Trigger / Input**
362
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
363
+
364
+ "Delete contacts from Leads."
365
+
366
+ **Expected Behaviour**
367
+ 1. Phase 1 Step 3 fires (Context Enrichment).
368
+ 2. Skill performs quick request analysis internally and infers the domain is likely a CRM based on the entities "contacts" and "Leads."
369
+ 3. Skill scans the workspace — finds no relevant source code, READMEs, or prior stories.
370
+ 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?"*
371
+ 5. User provides a URL: `https://internal.docs/crm/leads-screen`.
372
+ 6. Skill reads the URL content and summarises it (factual, labeled with source).
373
+ 7. Context loop re-evaluates: no further gaps at this stage; convergence reached after 1 round. Skill presents the convergence gate.
374
+ 8. User selects "Context is sufficient — continue to Phase 2."
375
+ 9. Skill compiles the Context Summary and carries it into Phase 2.
376
+ 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?"*
377
+ 11. User provides a partial answer. Skill records it and continues.
378
+
379
+ **Simulated Human Responses**
380
+ 1. (Quick analysis internal — not shown)
381
+ 2. URL: `https://internal.docs/crm/leads-screen`
382
+ 3. (Convergence gate) "Context is sufficient — continue to Phase 2"
383
+ 4. (API probe) "We use a REST API. DELETE /contacts/:id. No other docs."
384
+
385
+ **Assertions**
386
+ - [ ] Skill performs quick internal analysis before surfacing any question.
387
+ - [ ] First questions are domain-specific and tied to inferred domain (CRM), not generic.
388
+ - [ ] Skill auto-reads the provided URL and summarizes its content with source label.
389
+ - [ ] Context loop converges after 1 round and presents the convergence gate.
390
+ - [ ] Context Summary is compiled and referenced in Phase 2.
391
+ - [ ] Mid-phase Context Probe fires in Phase 2 for the API gap — ask is tied to the specific gap, not generic.
392
+ - [ ] Skipped or partial answers (no further docs) are recorded as "Context: not provided for [topic]" and do NOT block Phase 2 progress.
393
+
394
+ ---
395
+
396
+ ### Scenario 14: Context Enrichment — new feature, no codebase, user pastes KR + interview excerpt, loop converges in 2 rounds
397
+
398
+ **Trigger / Input**
399
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
400
+
401
+ "We need a way for field technicians to report equipment failures from their mobile device."
402
+
403
+ **Expected Behaviour**
404
+ 1. Phase 1 Step 3 fires (Context Enrichment).
405
+ 2. Quick analysis identifies: domain = field service / maintenance; key entities = technicians, equipment, failure reports; no named system; operation = create/report flow.
406
+ 3. Workspace scan finds nothing relevant — no source code, no docs.
407
+ 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?"*
408
+ 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."
409
+ 6. Skill summarizes the pasted content with source label.
410
+ 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?"*
411
+ 8. User answers. Loop re-evaluates — no further gaps. Convergence reached after 2 rounds.
412
+ 9. Skill presents the convergence gate; user selects "Context is sufficient — continue to Phase 2."
413
+ 10. Context Summary is compiled with KR, interview excerpt, and platform answer all labeled.
414
+
415
+ **Simulated Human Responses**
416
+ 1. (No workspace artifacts found — no answer needed)
417
+ 2. KR + interview excerpt (pasted inline)
418
+ 3. Follow-up: "Android only. No existing backend — we'll build it."
419
+
420
+ **Assertions**
421
+ - [ ] Skill asks targeted questions derived from domain inference even when workspace scan finds nothing.
422
+ - [ ] Pasted KR and interview excerpt are summarized with source label (e.g. `**Source:** user-provided KR — 90% failure reporting rate target`).
423
+ - [ ] Loop fires a second round when new gaps are identified after first answers.
424
+ - [ ] Loop converges after exactly 2 rounds (no infinite loop).
425
+ - [ ] Context Summary contains all three pieces: KR, interview excerpt, platform decision.
426
+ - [ ] Phase 2 references the Context Summary when restating understanding.
427
+
428
+ ---
429
+
430
+ ### Scenario 15: Context Enrichment — user skips entirely, Phase 2 proceeds, no fabrication
431
+
432
+ **Trigger / Input**
433
+ You are an agent with the `151-refine-user-story` skill loaded. The workspace has no `.xdrs/` directory. The user says:
434
+
435
+ "Add a dark mode toggle to the settings page."
436
+
437
+ **Expected Behaviour**
438
+ 1. Phase 1 Step 3 fires (Context Enrichment).
439
+ 2. Quick analysis: domain = UI/UX, web or mobile app; key entity = settings page; operation = toggle/preference.
440
+ 3. Workspace scan finds nothing.
441
+ 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?"*
442
+ 5. User selects "Skip — no additional context available."
443
+ 6. Skill records `Context: none available` and proceeds immediately to Phase 2.
444
+ 7. Phase 2 restates understanding without any fabricated system details, noting context is unavailable.
445
+ 8. Phase 2 requirements loop asks about the existing theme system, frameworks, and user preference persistence — without assuming any specific technology.
446
+
447
+ **Simulated Human Responses**
448
+ 1. "Skip — no additional context available"
449
+
450
+ **Assertions**
451
+ - [ ] Skill records `Context: none available` explicitly and does not invent any system details.
452
+ - [ ] Skill proceeds to Phase 2 immediately after the skip — no re-prompting.
453
+ - [ ] Phase 2 Step 1 restate does not reference any assumed technologies or design systems.
454
+ - [ ] Phase 2 requirements loop asks about theme system and framework without assuming anything from the story text.
455
+ - [ ] Skipped Context Probe is not treated as an unresolved decision — does not block the Hard Gate.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentme",
3
- "version": "0.34.0",
3
+ "version": "0.35.0",
4
4
  "description": "",
5
5
  "dependencies": {
6
6
  "filedist": "^0.39.0"