agentsclimarketplace

Write user story

Skill MarieLynneBlock/arcanum-artifex/skills/analysis/write-user-story

Prompts, skills, and agents that survive contact with real workflows. No vendor loyalty. Occasionally heretical. πŸ§™πŸ»β€β™€οΈ

Install
npx -y skills add MarieLynneBlock/arcanum-artifex --skill write-user-story

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Produces a complete, ready-to-groom user story following the standard Atlassian/agile format. It applies the INVEST criteria and the 3 Cs framework (Card, Conversation, Confirmation) to ensure each story is well-scoped, valuable, and testable β€” not just syntactically correct.

SKILL.md

6.0 KB, as published. Nobody here has run it

What this skill does

Produces a complete, ready-to-groom user story following the standard Atlassian/agile format. It applies the INVEST criteria and the 3 Cs framework (Card, Conversation, Confirmation) to ensure each story is well-scoped, valuable, and testable β€” not just syntactically correct.

Reference: Atlassian β€” User stories with examples and a template

When to use it

  • User asks to "write a user story" or "create a story" for a feature or requirement.
  • User wants to refine a rough idea, acceptance note, or bug description into a proper story.
  • User needs to validate whether an existing story is well-formed.
  • User is decomposing an epic into individual stories.

Key concepts

The standard format (Connextra template)

As a [persona],
I want to [action / capability],
so that [benefit / outcome].
  • Persona β€” who benefits (not "user" generically β€” use a real role: "logged-in customer", "warehouse operator", "admin").
  • Want β€” the capability or action, not the implementation ("I want to filter results" not "I want a dropdown").
  • Benefit β€” the why; if the benefit is obvious, keep it short but never omit it.

INVEST criteria

A well-formed story is:

LetterCriterionWhat to check
IIndependentCan be developed without another story blocking it?
NNegotiableIs it a conversation-starter, not a contract?
VValuableDoes it deliver value to the persona?
EEstimableIs it specific enough for the team to size?
SSmallCompletable within a single sprint?
TTestableDo the acceptance criteria make pass/fail possible?

3 Cs

  • Card β€” the written story (brief; a reminder, not a spec).
  • Conversation β€” the discussion between team and stakeholders that fills in detail.
  • Confirmation β€” the acceptance criteria that confirm the story is done.

Instructions

  1. Identify the persona. Use the most specific role that benefits from this story. Avoid "user" alone.

  2. State the want. Describe what the persona wants to do, not how the system implements it. Focus on the outcome, not the feature.

  3. State the benefit. Explain why this matters to the persona or the business. If the user did not provide one, infer it from context and flag it for confirmation.

  4. Write the story card using the Connextra template.

  5. Check INVEST. Flag any criterion the story fails and suggest a fix:

    • Too large β†’ split into smaller stories.
    • Too vague to estimate β†’ add a constraint or scope note.
    • Not independently deliverable β†’ identify the dependency.
  6. Write acceptance criteria using Given/When/Then (Gherkin) or a plain bulleted list if Gherkin is too heavyweight:

    • Each criterion must be independently verifiable.
    • Cover the happy path and at least one edge case.
    • Avoid implementation details in criteria.
  7. Add a Definition of Done reminder (standard checklist unless the user provides a custom one).

  8. Produce the output using the format below.

Output format

## User Story: [short title]

**As a** [persona],  
**I want to** [action],  
**so that** [benefit].

---

### Acceptance Criteria

- [ ] Given [context], when [action], then [outcome].
- [ ] Given [context], when [action], then [outcome].
- [ ] [Edge case or negative path]

### Definition of Done

- [ ] Acceptance criteria all pass.
- [ ] Code reviewed and merged.
- [ ] Unit/integration tests written and passing.
- [ ] Documented (if applicable).
- [ ] Deployed to staging and smoke-tested.

### INVEST check

| Criterion | Status | Note |
| --- | --- | --- |
| Independent | Pass / Fail | ... |
| Negotiable | Pass / Fail | ... |
| Valuable | Pass / Fail | ... |
| Estimable | Pass / Fail | ... |
| Small | Pass / Fail | ... |
| Testable | Pass / Fail | ... |

### Notes

- [Dependencies, assumptions, or open questions]

Examples

Example 1 β€” Filter a product list

Input: "Write a story for filtering search results by price range."

Expected output:

## User Story: Filter search results by price range

**As a** shopper,  
**I want to** filter product search results by a minimum and maximum price,  
**so that** I only see products I can afford and avoid scrolling through irrelevant results.

### Acceptance Criteria

- [ ] Given I am on a search results page, when I set a minimum price of $10 and a maximum of $50 and apply the filter, then only products priced between $10 and $50 are shown.
- [ ] Given I apply a price filter, when no products match, then a "No results found" message is shown and the filter values are preserved.
- [ ] Given I apply a price filter, when I clear it, then all results are restored.

Example 2 β€” Vague input requiring a split

Input: "User can manage their account."

Expected output: Story flagged as failing Small (too broad) and Estimable (too vague). Skill proposes a split into: change email, change password, delete account β€” each as a separate story.

Notes

  • A story card should fit on an index card. If the "want" clause needs multiple sentences, the story is likely too large β€” split it.
  • Do not write stories in the passive voice ("It should be possible to…") β€” keep the persona as the subject.
  • Acceptance criteria are not a full test plan; they define the boundaries of done, not every test case.
  • If the user does not provide a persona, ask for one before writing β€” guessing the wrong role produces the wrong story.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.