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.
- package/.xdrs/agentme/bdrs/index.md +12 -1
- package/.xdrs/agentme/bdrs/operations/.assets/team-composition.svg +171 -0
- package/.xdrs/agentme/bdrs/operations/401-epic-feature-story-planning.md +28 -19
- package/.xdrs/agentme/bdrs/operations/402-digital-product-roles.md +149 -0
- package/.xdrs/agentme/bdrs/operations/403-product-team-composition.md +102 -0
- package/.xdrs/agentme/bdrs/operations/404-team-roles-and-specialists.md +274 -0
- package/.xdrs/agentme/bdrs/principles/001-company-organizational-levels.md +61 -0
- package/.xdrs/agentme/bdrs/principles/002-okr-framework.md +74 -0
- package/.xdrs/agentme/bdrs/principles/003-product-delivery-value-flow.md +90 -0
- package/.xdrs/agentme/edrs/index.md +1 -1
- package/.xdrs/agentme/edrs/principles/skills/150-refine-plan-mode/SKILL.md +36 -31
- package/.xdrs/agentme/edrs/principles/skills/150-refine-plan-mode/SKILL.test.md +25 -1
- package/.xdrs/agentme/edrs/principles/skills/151-refine-user-story/SKILL.md +191 -80
- package/.xdrs/agentme/edrs/principles/skills/151-refine-user-story/SKILL.test.md +205 -65
- package/.xdrs/agentme/index.md +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
skill: 151-refine-user-story
|
|
3
|
-
skill-version: "
|
|
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
|
-
- [ ]
|
|
36
|
-
- [ ]
|
|
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
|
|
78
|
-
9. Because no
|
|
79
|
-
10. Skill outputs one fully refined story (registration) and appends the 3 deferred slices to
|
|
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
|
|
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
|
-
- [ ]
|
|
94
|
-
- [ ]
|
|
95
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
98
|
-
- [ ]
|
|
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
|
-
- [ ]
|
|
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
|
|
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
|
-
- [ ]
|
|
153
|
-
- [ ] Skill does not skip to Phase
|
|
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:
|
|
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
|
|
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
|
|
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
|
|
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
|
-
- [ ]
|
|
187
|
-
- [ ]
|
|
188
|
-
- [ ] NNN and slug
|
|
189
|
-
- [ ]
|
|
190
|
-
- [ ]
|
|
191
|
-
- [ ] Skill does NOT offer "Save to
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
- [ ]
|
|
209
|
-
- [ ]
|
|
210
|
-
- [ ]
|
|
211
|
-
- [ ]
|
|
212
|
-
- [ ] NNN
|
|
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
|
|
227
|
-
4. If the story is split, the deferred slices prompt offers: add to existing epic
|
|
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
|
-
- [ ]
|
|
231
|
-
- [ ]
|
|
232
|
-
- [ ]
|
|
233
|
-
- [ ]
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
274
|
-
- [ ] Deferred slices do NOT go silently to
|
|
275
|
-
- [ ] Phase
|
|
276
|
-
- [ ] If an epic
|
|
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
|
|
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
|
|
300
|
-
- **"Save deferred slices to
|
|
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
|
|
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
|
|
312
|
-
- [ ] `vscode_askQuestions` is used at Phase
|
|
313
|
-
- [ ]
|
|
314
|
-
- [ ]
|
|
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
|
|
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.
|
package/.xdrs/agentme/index.md
CHANGED
|
@@ -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
|
|
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
|
|