用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
直接命令不会经过审查 Prompt;运行前请先检查来源。
npx skills add https://github.com/lukemcqueen/hermes-cortex --skill story-decomposition命令会保持在同一行。复制前请横向滚动并检查完整内容。
想先保存到本地?可下载 SkillsMP 当前能够提供的文件。
Cross-server agent health monitoring using binary status vectors — deploy health endpoints on each agent, poll from orchestrator, alert on state transitions.
Wire a self-hosted Langfuse instance to Hermes Agent — generate API keys, configure env vars, enable the bundled plugin, install SDK, and verify traces flow.
Use before enforcement code changes or shared-repo commits.
基于 SOC 职业分类
正在显示 SKILL.md
| name | story-decomposition |
| description | Break features into user-visible, testable stories using vertical slicing patterns. |
| version | 1.0.0 |
| author | Hermes Agent |
| license | MIT |
| platforms | ["linux","macos","windows"] |
| metadata | {"hermes":{"tags":["story-decomposition","agile","user-stories","acceptance-criteria","vertical-slices","invest"],"related_skills":["test-driven-development","plan","change-test-loop","writing-plans"]}} |
Turn features into independently deliverable, user-visible stories. A well-sliced story is testable, demonstrable, and fits a single sprint.
Core principle: A story must deliver value to a user in a single vertical slice — not a horizontal layer (database, API, UI separately).
Vertical slice = a thin end-to-end feature that touches all architectural layers.
USER
|
+---+---+
| UI | ← story lives here
+---+---+
|
+---+---+
| Logic | ← not here in isolation
+---+---+
|
+---+---+
| Data | ← and not here alone
+---+---+
A vertical slice crosses every layer to deliver one piece of user-facing value.
Use these as a rough calibration. Adjust based on your team's velocity.
| Size | Scope | Effort | Timeline |
|---|---|---|---|
| Small | One clear acceptance criterion, minimal logic change | Minutes to a few hours | Same day |
| Medium | 3–5 acceptance criteria, touches 2–3 files, possible new component | Half day to ~2 days | 1–2 days |
| Large | Complex workflow, unknowns, multiple acceptance criteria across states | 2–5 days | 3–5 days |
Slice again. A story larger than 5 days is an epic or a feature. Break it into smaller vertical slices.
Use this structured format for all stories. It maps cleanly to both manual testing and automated tests.
Feature: [Feature Name]
Scenario: [Descriptive scenario name]
Given [precondition or context]
And [additional precondition]
When [action is performed]
And [subsequent action]
Then [expected outcome]
And [additional outcome]
Feature: <feature name>
Scenario: <what happens and under what condition>
Given <initial state / context>
And <additional precondition>
When <user action or event>
And <follow-up action>
Then <observable result>
And <additional observable result>
Good:
Feature: Password Reset
Scenario: User resets password with valid token
Given a user "alice@example.com" exists
And a valid password reset token was issued to "alice@example.com"
When the user submits the reset form with token and new password "NewP@ss1"
Then the password is updated
And a confirmation email is sent to "alice@example.com"
Good (negative case):
Feature: Password Reset
Scenario: User attempts reset with expired token
Given a user "bob@example.com" exists
And an expired password reset token for "bob@example.com"
When the user submits the reset form with the expired token
Then an error message "Token expired. Request a new reset link." is shown
And the password is NOT updated
Bad (vague, not testable):
Feature: Password Reset
Scenario: User resets password
Given the user is on the reset page
When they fill in the form
Then it works
A good story must be Independent, Negotiable, Valuable, Estimable, Small, Testable.
Run through this checklist for every story before accepting it into a sprint:
| Letter | Criterion | Check | Ask yourself |
|---|---|---|---|
| I | Independent | ☐ | Can this be built and released without waiting for another story? If not, can it be re-sliced? |
| N | Negotiable | ☐ | Is there room to adjust scope, implementation, or detail? Or is it a rigid spec? |
| V | Valuable | ☐ | Does a user get value from this story independently, in a single sprint? |
| E | Estimable | ☐ | Could two team members independently produce a similar estimate? Or are there too many unknowns? |
| S | Small | ☐ | Can this be completed within the sprint (ideally < 3 days)? If not, slice it. |
| T | Testable | ☐ | Are acceptance criteria written as clear pass/fail conditions? Could QA run them without asking for clarification? |
Independent — Stories should be ordered by priority. If story B depends on story A, consider:
Negotiable — A story is negotiable if the team can discuss implementation details. Red flags:
Valuable — Value is from the user's perspective, not the developer's:
users_count field to the API response" (no user value)Estimable — A story is estimable when the team understands the scope. If estimates vary wildly:
Small — Small means completable. If a story wouldn't fit on a 3×5 index card, it's probably too big.
Testable — A story needs clear pass/fail. If the acceptance criteria can't be executed as automated or manual tests, rewrite them. "UI looks good" is not testable. "The success message appears below the form in green text" is testable.
| Anti-Pattern | Problem | Fix |
|---|---|---|
| Horizontal slice (API layer in one story, UI in another) | Nothing demo-able until both done | Combine into one vertical slice per user action |
| Technical story (set up CI, refactor database, add logging) | No user value | Wrap in a user-facing story, or make it a chore (not a story) |
| Fat story (everything about users: register, login, profile, reset) | Can't finish in a sprint | Slice by user action — one action per story |
| Tiny story (change button color, update error message) | No real value, overhead > benefit | Batch related tiny changes into one story |
| Zombie story (no defined acceptance criteria) | Can't test, can't demo, can't estimate | Add Given/When/Then criteria or reject the story |
| Implementation story ("Add a database index on email") | Doesn't describe user behavior | Reframe: "User can sign up without timeout" with performance acceptance criteria |
Before marking a story as ready: