Skip to content
Back to skills

Refine Story

ASecurity

Refine a Bug, User Story, or Technical Story into structured markdown with BDD acceptance and a quality scorecard. Use when refining backlog or invoking /refine-story.

  • 6 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 25, 2026
ai-agentsshellrailsazuregitapidevops

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 17 files and shows the line behind each finding

Scanned September 26, 2026

npx -y skills add tibursocampos/agent-dev-toolkit --skill refine-story --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Refine Story?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Refine Story
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/tibursocampos-refine-story/badge)](https://www.skillsdirectory.com/skills/tibursocampos-refine-story)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: refine-story
description: Refine a Bug, User Story, or Technical Story into structured markdown with BDD acceptance and a quality scorecard. Use when refining backlog or invoking /refine-story.
---

## STOP - Read before ANY tool call

1. Read `{{GUARDRAILS_PATH}}`
2. Read `_shared/sdd-artifacts/SESSION.md`; load session-state for `$Cwd`
3. If the relevant gate is not approved: **STOP** - ask the user in the **user chat language** (`LANGUAGE.md`) - do **NOT** Write/Shell
4. SDD/develop skills: after **ONE** step/task, **STOP** session - handoff only
5. This skill body is **English**; user-facing prompts follow the **user chat language** (`LANGUAGE.md`)

### Step -1 - Gate check (report in chat before continuing)

```
Gate check:
[ ] guardrails.mdc read
[ ] SESSION.md read; session-state loaded
[ ] PIPELINE.md read (SDD skills only)
[ ] User confirmed current action (sim)
-> If any unchecked: STOP
```

---

# Skill: refine-story

## Trigger

Invoke when the user asks for: `/refine-story`, `refine backlog item`, or quick intake before SDD / Orchestrated Delivery.

Optional: path to existing notes, pasted description, or explicit mode (`feature` | `tech` | `split`).

**Refine mode (mandatory — no silent default):**

| Mode | Explicit invoke examples | Default item types |
|------|--------------------------|--------------------|
| **feature** | `feature`, `modo feature`, `1` | User Story or Bug |
| **tech** | `tech`, `technical`, `modo tech`, `2` | Technical Story |
| **split** | `split`, `modo split`, `3` | Any type — split-ready steps + checklist handoff |

If the invocation does **not** name a mode: **STOP** after gate check (-1) / before deep refine and ask once, in the **user chat language**, then wait. Do **not** assume `feature`. Do **not** load any mode playbook until answered.

That question applies only to **direct** invocation. When `invocation_context=orchestrated`, the parent passes `mode=feature` or `mode=tech`. Do not ask the mode. Load that playbook. For `mode=feature`, also load `references/feature-research.md` (`references/feature.md`).

```text
refine-story mode?
1) feature - User Story / Bug
2) tech - Technical Story
3) split - steps ready for /split-story-checklist
```

Render the three options in the user chat language. Keep the mode ids `feature`, `tech`, and `split` in English.

## Outcome

Structured **markdown** in chat (BDD acceptance criteria + implementation steps) and a **quality scorecard** aligned to portable backlog refinement patterns.

**Persistence (prefer in order):**

1. `features/NNN-slug/USnn/STORY.md` (or `TSnn`) under resolved classic feature root - optional `REFINE/` notes beside it
2. Shortcut: `docs/backlog/<slug>.md` in the **target workspace**

Does **not** create or update cards in external work-item trackers (see `references/exclusions.md`).

## Lazy-load

| When | Path |
|------|------|
| Command playbook (step discovery after gates) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/command.md` |
| Mode playbook **feature** (only when mode=feature) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/feature.md` |
| Feature research (orchestrated + mode=feature) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/feature-research.md` |
| Mode playbook **tech** (only when mode=tech) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/tech.md` |
| Mode playbook **split** (only when mode=split) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/split.md` |
| Mode isolation matrix (REQ-004) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/mode-isolation.md` |
| Interaction envelope (REQ-005) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/interaction-envelope.md` |
| Q&A history (REQ-005) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/qa-history.md` |
| Caveman Mode (if active) | `{{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md` - **Lite cap** |
| Invocation contexts (`direct` vs `orchestrated`, `IC-DIRECT-ORCHESTRATED`) | `{{TOOLKIT_ROOT}}/skills/_shared/sdd-artifacts/INVOCATION-CONTEXTS.md` |
| Selective retrieval (`SR-NO-FULL-DUMP`) | `{{TOOLKIT_ROOT}}/skills/_shared/sdd-artifacts/SELECTIVE-RETRIEVAL.md` |
| Type templates | `skills/_shared/backlog-item-types/{bug,user-story,technical-story}.md` or `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/` after sync |
| Persona / JTBD (optional; User Story / feature mode only) | `references/product-persona.md` → `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/persona-context.md` |
| Product depth / AC budget (scorecard Step 4) | `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/gherkin-budget.md` + `invest-and-story-quality.md` |
| Evidence omit > fabricate (scorecard) | `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/product-evidence-lite.md` |
| Anti-task-shatter (outcome-shaped titles) | `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/anti-task-shatter.md` |
| Clarify depth + severity B/I/MINOR | `{{TOOLKIT_ROOT}}/skills/_shared/backlog-item-types/clarify-depth.md` |
| Readiness READY / NEEDS_CLARIFICATION | `{{TOOLKIT_ROOT}}/skills/_shared/sdd-artifacts/readiness-severity.md` |
| Finding format (id, severity, type, evidence, recommendation) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/finding-format.md` |
| Reference index (routing only) | `{{TOOLKIT_ROOT}}/skills/refine-story/reference.md` |
| Process step detail (lazy) | `{{TOOLKIT_ROOT}}/skills/refine-story/references/<section>.md` |
| Feature storage | `{{TOOLKIT_ROOT}}/skills/_shared/sdd-artifacts/STORAGE.md`, `PIPELINE.md` |
| Story template | `skills/_shared/templates/features/story/STORY.md` |
| Context pressure | `{{TOOLKIT_ROOT}}/rules/context-management.mdc` |
| Language surfaces (chat vs spawn) | `{{TOOLKIT_ROOT}}/skills/_shared/agents/LANGUAGE.md` |

**Never by default:** do not preload `references/command.md` before Step -1 gates; do **not** preload mode playbooks `feature.md` / `tech.md` / `split.md` until the mode is chosen — load **only** the chosen mode’s playbook; do not preload the other two modes, all `references/*.md`, all backlog-item-types, or `persona-context.md` for Bug/Technical Story. After gates load `references/command.md` for step discovery; then **one** mode playbook + **one** type file + **one** section per step (`SKILL-REFERENCE-RETRIEVAL.md`). Load Product-depth norms only at scorecard Step 4 (or when AC budget is challenged). Do not dump entire `memory-bank/` or full PRD (`SR-NO-FULL-DUMP`).

## Reference routing

| Situation | Path |
|-----------|------|
| Command playbook (step discovery) | `references/command.md` |
| Mode: feature | `references/feature.md` |
| Mode: tech | `references/tech.md` |
| Mode: split | `references/split.md` |
| Mode isolation | `references/mode-isolation.md` |
| Interaction envelope | `references/interaction-envelope.md` |
| Q&A history | `references/qa-history.md` |
| Boundary vs O1 / sdd-spec | `references/boundary.md` |
| Scorecard rubric | `references/scorecard-rubric.md` |
| Scorecard template | `references/scorecard-template.md` |
| Guardrails | `references/guardrails.md` |
| Persistence | `references/persistence.md` |
| Split-story handoff | `references/split-handoff.md` |
| Product persona / JTBD | `references/product-persona.md` → `persona-context.md` |
| Exclusions | `references/exclusions.md` |
| Finding format | `references/finding-format.md` |

## Process

After gates: **Read `references/command.md`** for ordered step discovery. Resolve **refine mode** (`feature` | `tech` | `split`) from invoke or Trigger prompt — then **Read only** `references/<mode>.md` plus `references/mode-isolation.md` (matrix). Do **not** Read the other mode playbooks. Emit/refresh the **interaction envelope** and **Q&A history** per `interaction-envelope.md` / `qa-history.md`. Load `references/<section>.md` for shared procedural detail — **not** full `reference.md`.

### Step -1b - Caveman Mode (Lite cap)
1. Read `{{SDD_ROOT}}/preferences.json` (create `{ "caveman_mode": false, "caveman_level": "full" }` if missing).
2. If `caveman_mode` is false: continue without compression.
3. If true: load `{{TOOLKIT_ROOT}}/skills/_shared/caveman/CAVEMAN.md`; apply **Lite** participation cap + prefs `caveman_level` (Lite skills never escalate); show once: `[Caveman] Modo ativo (respostas compactas, level={effective}). Digite caveman off para desativar.`
4. Honor `caveman on|off|status|lite|full|ultra` (and `stop caveman` / `normal mode`) during the session.
5. Auto-Clarity + never-compress gates/drafts/paths per `CAVEMAN.md`.

### 0. Workspace

Confirm **target repository**. Summarize detected stack via Glob if useful.
Resolve `invocation_context` per `INVOCATION-CONTEXTS.md` (`IC-DIRECT-ORCHESTRATED`): default `direct` unless parent handoff marks `orchestrated`. Apply the matching observable table.

Do **not** assume there is no PRD because root `PRD/` is missing - check `features/**/PRD/` (and global `.../features/**/PRD/`) per `STORAGE.md`. Root/flat `PRD/` is not a Classic SDD path.

### 0.5 Refine mode (feature | tech | split)

Resolve mode from the invocation **or** from the user's answer to the Trigger prompt.

| Signal in invoke / reply | Mode | Playbook |
|--------------------------|------|----------|
| `feature` / `1` / User Story or Bug framing | feature | `references/feature.md` |
| `tech` / `technical` / `2` / Technical Story framing | tech | `references/tech.md` |
| `split` / `3` / checklist / topological steps | split | `references/split.md` |

If still unset or value outside `{feature,tech,split}`: on **direct** invocation, **STOP** and ask the Trigger prompt in the user chat language. On **orchestrated** invocation, do not ask; require `mode=feature` or `mode=tech` from the parent. Do not load any mode playbook until the mode is set.

Then follow **only** that playbook for collect → generate → mode-specific checks. When `invocation_context=orchestrated` and `mode=feature`, also read `references/feature-research.md`. Apply `references/mode-isolation.md` (no cross-mode leak). Open a skeleton **interaction envelope** (`mode` + `invocation_context` + `status: NEEDS_CLARIFICATION` until READY). Shared scorecard / validation / persistence / handoff sections stay lazy per playbook pointers.

### 1–7. Mode playbook + shared sections

Execute steps inside the chosen `references/<mode>.md`. Typical shared tail (cited from playbook, not preloaded):

| Step | Section |
|------|---------|
| Quality scorecard (Product depth + AC budget) | `references/scorecard-rubric.md` + `references/scorecard-template.md`; lazy `gherkin-budget.md`, `invest-and-story-quality.md`, `product-evidence-lite.md` |
| Envelope + Q&A + READY | `references/interaction-envelope.md`; `references/qa-history.md`; consume `readiness-severity.md` (dual-plane; do not rewrite taxonomy) |
| Validation | `references/guardrails.md` |
| Optional persistence | `references/persistence.md` (+ Q&A history path) |
| Handoff | `references/split-handoff.md`; `references/boundary.md`; `references/exclusions.md` — **portable paths only** |

**Selective retrieval:** do **not** dump entire `memory-bank/` or paste a full PRD into refine chat/handoffs (`SELECTIVE-RETRIEVAL.md` / `SR-NO-FULL-DUMP`). Paths + short summaries only.

## Must not

Also enforce `references/exclusions.md`. Boundary: `references/boundary.md`. Product voice: `references/product-persona.md`. Split handoff: `references/split-handoff.md`.

- Call tracker REST APIs, MCP work-item integrations, or PAT scripts for external trackers
- Create or update Azure DevOps Work Items (or any remote board) — file-based persistence only
- Add organization-specific custom fields, mandatory AI tags, or PATCH guardrails for remote boards
- Preload unused mode playbooks (`feature` / `tech` / `split` other than the chosen one) — REQ-004
- Create a new clarify / `feature-refinement` skill folder or clone Supply clarify as a parallel skill — REQ-007; enrich **this** skill only
- Write OS absolute paths or InstallRoot embeds into envelopes, Q&A history, or handoffs — portable only (REQ-006 / RNF-002)
- Write `docs/backlog/` before the language question when choosing shortcut
- Duplicate full PRD/PLAN templates - hand off to `sdd-spec` / `sdd-plan` or O1
- Do not dump entire `memory-bank/` or paste full PRD into prompts (`SELECTIVE-RETRIEVAL.md` / `SR-NO-FULL-DUMP`)
- Do not ignore `IC-DIRECT-ORCHESTRATED` — resolve and apply `direct` vs `orchestrated` (`INVOCATION-CONTEXTS.md`)
- Invent architecture that belongs to O1 specialists
- Do not ship vague BDD without challenge
- Do not hand off to `sdd-spec` / claim ready-for-PRD while open clarification **B** or **I** remain — emit `NEEDS_CLARIFICATION` (`readiness-severity.md`); presence ≠ READY (**RN02**); READY ≠ `step_confirmed` (dual-plane / REQ-006)
- Equate envelope `status: READY` with implementation Complete or PLAN step Completed

## Handoff examples

```
/split-story-checklist - features/004-export/US01/STORY.md
```

```
/orchestrate-analyze - features/004-export
```

```
/sdd-spec - features/004-export/US01/STORY.md
```

Cite `REFINE/qa-history.md` in the typed handoff when present — do not paste the full history into the slash line.

Files in this skill

  • SKILL.md11.9 KB
  • reference.md2.1 KB
  • references/boundary.md3.5 KB
  • references/command.md2.4 KB
  • references/exclusions.md1 KB
  • references/feature.md3.7 KB
  • references/guardrails.md2.2 KB
  • references/interaction-envelope.md3.4 KB
  • references/mode-isolation.md2.3 KB
  • references/persistence.md1.3 KB
  • references/product-persona.md955 B
  • references/qa-history.md2.3 KB
  • references/scorecard-rubric.md3.4 KB
  • references/scorecard-template.md2 KB
  • references/split-handoff.md797 B
  • references/split.md3.5 KB
  • references/tech.md3.3 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…