agentme 0.33.0 → 0.34.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.
- package/.filedist-package.yml +1 -1
- package/.xdrs/agentme/bdrs/index.md +9 -0
- package/.xdrs/agentme/bdrs/operations/401-epic-feature-story-planning.md +150 -0
- package/.xdrs/agentme/edrs/application/skills/050-create-javascript-project/SKILL.md +9 -24
- package/.xdrs/agentme/edrs/application/skills/200-run-skill-tests/SKILL.test.md +2 -2
- package/.xdrs/agentme/edrs/index.md +2 -2
- package/.xdrs/agentme/edrs/principles/skills/150-refine-plan-mode/SKILL.md +338 -0
- package/.xdrs/agentme/edrs/principles/skills/150-refine-plan-mode/SKILL.test.md +91 -0
- package/.xdrs/agentme/edrs/principles/skills/151-refine-user-story/SKILL.md +396 -0
- package/.xdrs/agentme/edrs/principles/skills/151-refine-user-story/SKILL.test.md +316 -0
- package/.xdrs/agentme/index.md +6 -1
- package/package.json +1 -1
- package/.xdrs/agentme/edrs/principles/skills/150-plan-mode-consistency/SKILL.md +0 -184
- package/.xdrs/agentme/edrs/principles/skills/150-plan-mode-consistency/SKILL.test.md +0 -88
- package/.xdrs/agentme/edrs/principles/skills/151-write-user-story/SKILL.md +0 -144
- package/.xdrs/agentme/edrs/principles/skills/151-write-user-story/SKILL.test.md +0 -88
|
@@ -1,144 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: 151-write-user-story
|
|
3
|
-
description: 'Write, refine, elaborate, study or develop the contents of a user story used to create a unit of work for an agile team. Use when you need to write, refine, clarify requirements, ask follow-up questions, cover edge cases, and split large requests into vertical slices so they are clear, complete, and ready for implementation.'
|
|
4
|
-
metadata:
|
|
5
|
-
author: flaviostutz
|
|
6
|
-
version: "1.0"
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
Turns a vague request or rough draft into an implementation-ready user story by asking targeted follow-up questions, resolving all ambiguities, and producing a thin vertical slice or a clean set of split slices.
|
|
12
|
-
|
|
13
|
-
Activate when:
|
|
14
|
-
- The request is vague, incomplete, or internally inconsistent.
|
|
15
|
-
- The acceptance criteria are missing or too shallow.
|
|
16
|
-
- The change may affect multiple parts of a system and needs a vertical-slice check.
|
|
17
|
-
- A requirement needs to be refined into a clear, testable story.
|
|
18
|
-
|
|
19
|
-
## Instructions
|
|
20
|
-
|
|
21
|
-
### Core Rules
|
|
22
|
-
|
|
23
|
-
- Start from the user input that exists today. Do not assume missing details are acceptable.
|
|
24
|
-
- Ask targeted follow-up questions until no material ambiguity remains.
|
|
25
|
-
- **HARD GATE: Do not output any story or acceptance criteria while any open decision, unresolved assumption, or ambiguous rule exists — even if the input looks detailed. Embedding an unresolved decision in the output (e.g. "rule X or Y — to be decided") is forbidden; resolve it through questions first.**
|
|
26
|
-
- A detailed or well-structured input does NOT exempt you from the question loop. Treat apparent completeness as a signal to look harder for hidden ambiguities.
|
|
27
|
-
- Analyze all affected parts of the system together before deciding whether the story is small enough.
|
|
28
|
-
- If the request is too large, output only the split implementation-ready stories.
|
|
29
|
-
- Split by independently valuable end-to-end slices, not by technical layers.
|
|
30
|
-
- Produce exactly one recommended result: one final story when feasible, otherwise the final split stories.
|
|
31
|
-
|
|
32
|
-
### Steps
|
|
33
|
-
|
|
34
|
-
1. **Classify the input.**
|
|
35
|
-
Decide whether the input is a vague request, partial draft, or near-complete story. Restate the current understanding in a few lines before asking questions.
|
|
36
|
-
|
|
37
|
-
2. **Identify missing information.** Focus on missing or contradictory items first.
|
|
38
|
-
|
|
39
|
-
| Area | Questions to resolve |
|
|
40
|
-
|---|---|
|
|
41
|
-
| Problem and value | What problem is being solved? Who benefits? What user or business value should exist after the change? |
|
|
42
|
-
| Scope | What behavior is explicitly in scope? What is explicitly out of scope? What should remain unchanged? |
|
|
43
|
-
| Requirements | What must the system do? What inputs, outputs, or contracts matter? What constraints shape the solution? |
|
|
44
|
-
| Flow and interactions | What is the main end-to-end flow? Which actors, systems, or interfaces are involved? Are there state transitions or lifecycle rules? |
|
|
45
|
-
| Edge cases | What unusual but valid scenarios must work? What invalid inputs or error paths must be handled? What happens on retries, duplicates, partial failure, or missing data? |
|
|
46
|
-
| Dependencies | What upstream or downstream systems affect the change? Are there required approvals, sequencing, or external decisions? Does any migration, rollout, or compatibility concern exist? |
|
|
47
|
-
|
|
48
|
-
3. **Ask follow-up questions one by one using interactive inputs.**
|
|
49
|
-
- **Always use the `vscode_askQuestions` tool** to ask questions interactively when it is available. Never dump questions as plain text if the tool is available.
|
|
50
|
-
- Ask **one question at a time** (or at most 4–5 tightly related questions in a single call). Do not batch many unrelated questions together.
|
|
51
|
-
- Use `options` in each question whenever the answer space is bounded (yes/no, a known set of choices). Use free-form text only when the answer is truly open-ended.
|
|
52
|
-
- After each answer, evaluate whether new ambiguities surfaced before asking the next question.
|
|
53
|
-
- Prefer concrete questions over broad prompts such as "anything else?"
|
|
54
|
-
- Keep looping until all areas in the table above are complete enough for autonomous implementation.
|
|
55
|
-
- **Do not proceed to step 4 until all questions are answered. If you find yourself wanting to write "or X" / "TBD" / "to be documented" anywhere in the output, that is a sign you skipped a question that should have been asked here.**
|
|
56
|
-
|
|
57
|
-
4. **Check consistency across the whole change.**
|
|
58
|
-
- Look for contradictions between goal, scope, and acceptance criteria.
|
|
59
|
-
- Cross-check the evolving story against any context already provided by the user.
|
|
60
|
-
- If workspace docs or code are relevant, inspect them to confirm terminology, constraints, and affected parts.
|
|
61
|
-
- Verify: requirements don't contradict each other; acceptance criteria prove the requirements; terminology is consistent; no assumptions remain unresolved.
|
|
62
|
-
|
|
63
|
-
5. **Review each scope item individually.**
|
|
64
|
-
For every item listed under **Scope**, loop through these four checks before moving on:
|
|
65
|
-
|
|
66
|
-
| Check | What to look for |
|
|
67
|
-
|---|---|
|
|
68
|
-
| Completeness | Is the item fully described? Are the inputs, outputs, triggers, and expected behavior clear enough for autonomous implementation without guessing? |
|
|
69
|
-
| Edge cases | Does this specific item have unusual paths — errors, empty states, boundary values, retries, or concurrency — not yet captured in the Edge Cases section? Add any found. |
|
|
70
|
-
| Technical constraints consequences | Does this item imply or conflict with an existing technical constraint (e.g. API contract, data model, performance budget, auth model, third-party limitation)? Flag any constraint that must be honored or must be added to Technical Constraints. |
|
|
71
|
-
| Missing attachments | Would a screenshot, mockup, flow diagram, or reference document make this item unambiguous to implement? If so, ask for it explicitly before proceeding. |
|
|
72
|
-
|
|
73
|
-
- Do **not** move to step 6 while any scope item fails a check.
|
|
74
|
-
- If a check reveals a new gap, return to step 3 and ask the follow-up question.
|
|
75
|
-
|
|
76
|
-
6. **Decide whether the work fits in one story and enforce vertical slices.**
|
|
77
|
-
- **Vertical slice requirement:** every story must deliver a complete, working feature — partial implementations (backend only, UI shell only, data model only) are only allowed if the developer explicitly says so and the feature is complex enough to justify it. Each story must close the loop from user action to user-visible outcome.
|
|
78
|
-
- Keep one story only if it is a thin, independently valuable slice.
|
|
79
|
-
- **Split when:** the request bundles multiple user outcomes or major workflows; different parts would each require substantial analysis; or acceptance criteria would become broad, vague, or hard to verify as one story.
|
|
80
|
-
- When splitting, each story must still be a vertical slice, add incremental releasable value on top of the previous one, and be independently shippable.
|
|
81
|
-
|
|
82
|
-
7. **Produce the final result** using the output template below.
|
|
83
|
-
- If one story is feasible, output one refined story. If the work is too large, output only the split stories using the same template.
|
|
84
|
-
- Acceptance criteria must be a plain checklist.
|
|
85
|
-
|
|
86
|
-
### Output Template
|
|
87
|
-
|
|
88
|
-
```
|
|
89
|
-
## Title
|
|
90
|
-
[required — max 10 words, outcome-focused, e.g. "Add fraud-check endpoint for payment processing"]
|
|
91
|
-
|
|
92
|
-
## User Story
|
|
93
|
-
[required — max 50 words]
|
|
94
|
-
As a [role], I want to [action], so that [benefit].
|
|
95
|
-
|
|
96
|
-
## Scope
|
|
97
|
-
[required — max 200 words. List features, behaviors, screens, or services in scope with key characteristics and points of attention.]
|
|
98
|
-
- [feature or behavior — characteristic / point of attention]
|
|
99
|
-
|
|
100
|
-
## Edge Cases
|
|
101
|
-
[optional — max 50 words. Known edge cases and how each should be handled.]
|
|
102
|
-
- [edge case — expected handling]
|
|
103
|
-
|
|
104
|
-
## Out of Scope
|
|
105
|
-
[optional — max 30 words. What will not be touched; deferred to later or handled elsewhere.]
|
|
106
|
-
- [out-of-scope item]
|
|
107
|
-
|
|
108
|
-
## Technical Constraints
|
|
109
|
-
[optional — max 30 words. Rules, technologies, or standards that must be followed.]
|
|
110
|
-
- [constraint]
|
|
111
|
-
|
|
112
|
-
## Acceptance Criteria
|
|
113
|
-
[required — max 50 words. Verifiable checklist confirming the story is done.]
|
|
114
|
-
- [ ] [verifiable outcome]
|
|
115
|
-
|
|
116
|
-
## Attachments
|
|
117
|
-
[highly desirable — screenshots, mockups, or diagrams illustrating the feature.]
|
|
118
|
-
- [attachment]
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
### Completion Criteria
|
|
122
|
-
|
|
123
|
-
Do not stop the question loop until all of the following are true:
|
|
124
|
-
|
|
125
|
-
- Problem and intended user value are clear; scope and non-goals are explicit.
|
|
126
|
-
- Story description, scope, edge cases, and technical constraints are sufficient for autonomous implementation.
|
|
127
|
-
- Edge cases, failure modes, dependencies, and assumptions are known.
|
|
128
|
-
- Acceptance criteria match the requirements and are verifiable.
|
|
129
|
-
- Story is consistent with available context, with no contradictions or unresolved assumptions.
|
|
130
|
-
- Result is either one thin vertical slice or a clean set of split slices, each delivering complete releasable value on its own.
|
|
131
|
-
|
|
132
|
-
## Examples
|
|
133
|
-
|
|
134
|
-
**Input:** "Add a search bar to the product page."
|
|
135
|
-
|
|
136
|
-
**Clarifying questions asked:** Who performs the search? What data is searched? Should results filter the current page or navigate elsewhere? What happens on no results?
|
|
137
|
-
|
|
138
|
-
**Output:** A refined story scoped to keyword search on product name and description, filtering the current product list in place, with an empty-state message when no results match, and no pagination changes in scope.
|
|
139
|
-
|
|
140
|
-
## Edge Cases
|
|
141
|
-
|
|
142
|
-
- Input already contains detailed acceptance criteria: do not skip the question loop; look harder for hidden ambiguities in scope boundaries and edge cases.
|
|
143
|
-
- User refuses to answer a clarifying question: note it as an unresolved assumption and do not produce output until it is resolved.
|
|
144
|
-
- Request spans multiple independent user outcomes: always split into separate vertical-slice stories rather than merging into one broad story.
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
skill: 151-write-user-story
|
|
3
|
-
skill-version: "1.0"
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
## Test Scenarios
|
|
7
|
-
|
|
8
|
-
### Scenario 1: Vague request refined into a single story
|
|
9
|
-
|
|
10
|
-
**Trigger / Input**
|
|
11
|
-
You are an agent with the `151-write-user-story` skill loaded. The user says:
|
|
12
|
-
|
|
13
|
-
"We need to add notifications to the app."
|
|
14
|
-
|
|
15
|
-
**Expected Behaviour**
|
|
16
|
-
1. Skill classifies the input as vague and restates the current understanding before asking questions.
|
|
17
|
-
2. Skill asks targeted follow-up questions covering problem/value, scope, requirements, flow, edge cases, and dependencies — one group at a time using `vscode_askQuestions` when available.
|
|
18
|
-
3. Skill does NOT produce any story or acceptance criteria while ambiguities remain open.
|
|
19
|
-
4. After all questions are answered and no ambiguity remains, skill performs a consistency check across goal, scope, and acceptance criteria.
|
|
20
|
-
5. Skill reviews each scope item for completeness, edge cases, technical constraint consequences, and missing attachments.
|
|
21
|
-
6. Skill decides whether the work fits in one story; if so, produces one refined story using the output template.
|
|
22
|
-
7. Output contains all required sections: Title, User Story, Scope, Acceptance Criteria.
|
|
23
|
-
|
|
24
|
-
**Simulated Human Responses**
|
|
25
|
-
1. "Registered users receive notifications. Events that trigger them: a new direct message, a mention in a comment, or a status change on an item they own."
|
|
26
|
-
2. "In-app only (bell icon with a badge counter). No email or push for now."
|
|
27
|
-
3. "Users can mark individual notifications as read or mark all as read. Unread count shown in the header."
|
|
28
|
-
4. "No notifications for system or admin events. Notifications are scoped to the current user only."
|
|
29
|
-
5. "If the user is offline the notification is stored and shown when they next open the app. No real-time delivery guarantee needed yet."
|
|
30
|
-
6. "No limit on stored notifications per user for now. No deletion UI required."
|
|
31
|
-
|
|
32
|
-
**Assertions**
|
|
33
|
-
- [ ] Skill asks at least one question about who receives notifications and what triggers them before producing any output.
|
|
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 `- [ ]`.
|
|
37
|
-
|
|
38
|
-
---
|
|
39
|
-
|
|
40
|
-
### Scenario 2: User refuses to answer a clarifying question
|
|
41
|
-
|
|
42
|
-
**Trigger / Input**
|
|
43
|
-
You are an agent with the `151-write-user-story` skill loaded. The user says:
|
|
44
|
-
|
|
45
|
-
"Add export to PDF for the reports page."
|
|
46
|
-
|
|
47
|
-
The skill asks: "Should the export include all report data or only the currently filtered view?" The user replies: "I don't know, just decide."
|
|
48
|
-
|
|
49
|
-
**Expected Behaviour**
|
|
50
|
-
1. Skill classifies the input and identifies the filtering scope as an open decision.
|
|
51
|
-
2. Skill asks the clarifying question about export scope.
|
|
52
|
-
3. When the user refuses to answer, skill notes the item as an unresolved assumption.
|
|
53
|
-
4. Skill does NOT produce a story or acceptance criteria while the assumption is unresolved.
|
|
54
|
-
5. Skill explicitly communicates that it cannot proceed until the assumption is resolved, and re-asks or rephrases the question.
|
|
55
|
-
|
|
56
|
-
**Assertions**
|
|
57
|
-
- [ ] Skill does not produce a story, acceptance criteria, or output template while the filtering scope is unresolved.
|
|
58
|
-
- [ ] Skill explicitly states that the unresolved assumption blocks output and asks the user to resolve it.
|
|
59
|
-
|
|
60
|
-
---
|
|
61
|
-
|
|
62
|
-
### Scenario 3: Request too large — split into vertical slices
|
|
63
|
-
|
|
64
|
-
**Trigger / Input**
|
|
65
|
-
You are an agent with the `151-write-user-story` skill loaded. The user says:
|
|
66
|
-
|
|
67
|
-
"Build a complete user authentication system: registration with email/password, login, password reset via email, and social login with Google."
|
|
68
|
-
|
|
69
|
-
**Expected Behaviour**
|
|
70
|
-
1. Skill classifies the input as too large (bundles multiple independent user outcomes).
|
|
71
|
-
2. Skill asks targeted questions to understand each flow's requirements.
|
|
72
|
-
3. After questions are resolved, skill determines the work cannot fit in one story.
|
|
73
|
-
4. Skill splits the request into independently shippable vertical-slice stories (e.g. registration, login, password reset, social login as separate stories).
|
|
74
|
-
5. Each split story uses the output template and delivers a complete end-to-end user-visible outcome.
|
|
75
|
-
6. Skill does NOT produce a single merged story.
|
|
76
|
-
|
|
77
|
-
**Simulated Human Responses**
|
|
78
|
-
1. "Registration: email + password only. Password min 8 chars, at least one digit. Email must be verified before the user can log in."
|
|
79
|
-
2. "Login: email + password. No magic links. Session token valid for 7 days. Invalidated on logout."
|
|
80
|
-
3. "Password reset: send a time-limited link to the registered email. Link expires after 1 hour. User sets a new password via the link."
|
|
81
|
-
4. "Google social login: OAuth 2.0. If the Google email matches an existing account, link them. Otherwise create a new account."
|
|
82
|
-
5. "Error handling: show a user-friendly message for invalid credentials, expired links, and OAuth failures. No silent failures."
|
|
83
|
-
6. "No rate limiting, CAPTCHA, or 2FA in scope for now. Each flow ships independently."
|
|
84
|
-
|
|
85
|
-
**Assertions**
|
|
86
|
-
- [ ] Output contains multiple stories, each using the full output template.
|
|
87
|
-
- [ ] Each story is independently shippable and delivers a complete end-to-end user-visible outcome.
|
|
88
|
-
- [ ] No story is a technical-layer-only slice (e.g. "implement the auth database schema" alone is not acceptable).
|