From enterprise-harness-engineering
Generates professional User Stories via guided interviews to gather background, goals, and testable acceptance criteria; places files in docs/04-user-stories/ directories.
How this skill is triggered — by the user, by Claude, or both
Slash command
/enterprise-harness-engineering:story-craftsmanThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
This skill embodies the "Everything is Code" engineering philosophy, helping you produce high-quality user stories and their supporting documentation alongside your MR submissions.
This skill embodies the "Everything is Code" engineering philosophy, helping you produce high-quality user stories and their supporting documentation alongside your MR submissions.
For the detailed example template, see examples/TEMPLATE-UserStory.md.
git status to determine the relevant module and place documents in the corresponding docs/04-user-stories/ directoryUser requests "help me write a User Story," "describe this feature," "generate user story," etc.
After receiving a request, check whether the following three elements are present:
| Element | Meaning | Sufficiency Criteria |
|---|---|---|
| Background (Why) | Current pain points, impact scope | Can articulate "who is affected in what scenario" |
| Goals (What) | Verifiable success metrics | Can articulate "what can be quantified after completion" |
| Acceptance Criteria (AC) | Key boundary scenarios | At least 2 checkable conditions are listed |
If information is insufficient, execute Step 2 (interview); if sufficient, proceed directly to Step 3 (generation).
Take on the dual role of "detective" and "poet," asking all missing dimension questions in a single round (avoiding multi-round fragmented questions):
To generate a professional user story, I need you to confirm the following (keep it brief, 1-3 sentences per item):
1. **Background/Pain point**: [specific missing background question]
2. **Goal**: [specific missing goal question]
3. **Acceptance criteria**: [specific missing AC question]
You can describe briefly — I will handle converting it into the standard professional document format.
Strictly follow the structure from TEMPLATE-UserStory.md to generate the file.
File naming convention: {feature-name}.md (lowercase kebab-case)
Placement path: {submodule_root}/docs/04-user-stories/{feature-name}.md
If the target directory does not exist, first execute Feature B or prompt the user.
User explicitly requests "create docs structure," "initialize docs," etc.
docs/
├── 01-product-research/ # Product research and competitive analysis
├── 02-system-design/ # System design and architecture decisions
├── 03-detailed-design/ # Detailed design documents
├── 04-user-stories/ # User Stories
└── 05-user-guide/ # User manuals and operation guides
.gitkeep file in each subdirectory to ensure Git tracks empty directoriesAGENTS.md in the docs/ root directory describing each directory's purposedocs/AGENTS.md Content Template# docs/
This directory is the project documentation root, organized by R&D lifecycle stages.
## Directory Structure
- `01-product-research/`: Product research, competitive analysis, market insights
- `02-system-design/`: System architecture design, technology selection, ADR (Architecture Decision Records)
- `03-detailed-design/`: Module detailed design, interface specifications, data structures
- `04-user-stories/`: User Story files, naming convention: `{feature-name}.md`
- `05-user-guide/`: End-user operation manuals and usage instructions
## Maintenance Conventions
- User stories are created as individual `.md` files per feature module
- This file should be updated after architectural/directory-level changes
Analyze code changes or user descriptions to determine the target sub-module in the following order:
device-cloud-server/, frontend/)git status output## User Story: Alarm Filtering Feature
**As** a system administrator, **I want** to filter alarms, **so that** I can reduce distractions.
**Acceptance Criteria**:
- [ ] System supports filtering functionality
- [ ] Filtered alarms are not displayed after filtering
Problem: Missing background, ACs are too vague, unable to verify "what conditions trigger filtering."
## User Story: Rule-Based Alarm Silence Filtering
**Background**: The monitoring system generates 500+ heartbeat probe alarms daily, causing
operator alert fatigue. Real fault alarms get buried, and average response time has increased
from 2 minutes to 15 minutes.
**As** an operations engineer, **I want** to configure alarm silence rules (by device type + alarm type combination),
**so that** known non-fault alarms are suppressed and real fault alarm response time returns to under 2 minutes.
**Acceptance Criteria**:
- [ ] Given a configured silence rule "device type=heartbeat probe AND alarm type=connection timeout,"
When such an alarm fires, Then the Grafana dashboard does not display it and the audit log records "silenced"
- [ ] Given the silence rule configuration interface, When the admin saves a rule,
Then the rule takes effect within 30 seconds without requiring a service restart
- [ ] Given an alarm matches both a silence rule and an escalation rule simultaneously,
When the alarm fires, Then the silence rule takes priority, but the conflict is noted in the audit log
| Scenario | Condition |
|---|---|
| Technical refactoring MR | No visible user-facing functionality change — may simplify to a brief technical note |
| Pure bug fix | Reference the corresponding Issue directly — full User Story format not required |
Exemption method: /override skill=story-craftsman reason="pure technical refactoring, no user-visible functionality change"
npx claudepluginhub addxai/enterprise-harness-engineering --plugin enterprise-harness-engineeringProvides user story templates using As-a/I-want/So-that format, Given-When-Then acceptance criteria, story splitting, and INVEST criteria for agile backlog refinement and requirements definition.
Writes user stories and acceptance criteria using INVEST principles and Given/When/Then format. Helps teams scope, split, and review backlog items before sprint planning.
Generates user stories with Given/When/Then acceptance criteria from features, personas, goals, or Jira epics. Follows INVEST principles and uses a template for structured output.