@pavp/storywright 1.12.2 → 1.13.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/package.json
CHANGED
|
@@ -3,7 +3,7 @@ name: jira-wiki-formatter
|
|
|
3
3
|
description: Render a story into three files: story.standard.md and story.jira-wiki.md (PM-facing, no technical detail) plus story.dev.md (dev-facing, full technical detail).
|
|
4
4
|
trigger: "internal use by story-* skills"
|
|
5
5
|
intent: Component skill that takes a structured story and produces three output files following the templates in story-generate/templates.
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.2.0
|
|
7
7
|
inputs:
|
|
8
8
|
- structured-story
|
|
9
9
|
outputs:
|
|
@@ -40,6 +40,12 @@ Final step in `story-generate` and `story-refine`. Always last.
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
+
**Pre-emit heading guard (apply before writing any section to any file):**
|
|
44
|
+
- `story.standard.md` and `story.dev.md`: title line must use `#`; every section heading must use `##`. If received content uses `###` or `####` for a section, demote it to `##` before emitting.
|
|
45
|
+
- `story.jira-wiki.md`: title line must use `h2.`; every section heading must use `h3.`. If `h1.` or `h2.` appears on any line after the first heading, correct it to `h3.` before emitting.
|
|
46
|
+
|
|
47
|
+
Apply silently — no log entry needed for heading-level corrections.
|
|
48
|
+
|
|
43
49
|
1. Render `story.jira-wiki.md` (PM-facing) using Jira's wiki markup:
|
|
44
50
|
- Headings: `h1. `, `h2. `, `h3. `
|
|
45
51
|
- Bold: `*text*`
|
|
@@ -108,22 +114,22 @@ h3. Definition of Done
|
|
|
108
114
|
### Good — CommonMark
|
|
109
115
|
|
|
110
116
|
```
|
|
111
|
-
|
|
117
|
+
# Login con Google
|
|
112
118
|
|
|
113
119
|
Permitir a usuarios autenticarse mediante OAuth con Google.
|
|
114
120
|
|
|
115
|
-
|
|
121
|
+
## User Story
|
|
116
122
|
**As a** visitante nuevo
|
|
117
123
|
**I want** iniciar sesión con mi cuenta de Google
|
|
118
124
|
**So that** puedo evitar crear una nueva contraseña.
|
|
119
125
|
|
|
120
|
-
|
|
126
|
+
## Criterios de Aceptación
|
|
121
127
|
**AC-1: Login exitoso**
|
|
122
128
|
- Given el usuario está en la pantalla de login
|
|
123
129
|
- When toca "Continuar con Google" y autoriza una cuenta válida
|
|
124
130
|
- Then es redirigido al dashboard en <3s
|
|
125
131
|
|
|
126
|
-
|
|
132
|
+
## Definition of Done
|
|
127
133
|
- [ ] Code merged behind feature flag
|
|
128
134
|
- [ ] ACs pass in QA
|
|
129
135
|
```
|
|
@@ -3,7 +3,7 @@ name: storywright-base
|
|
|
3
3
|
description: Shared base behavior for all storywright top-level skills. Hard rules, canonical output, terminal-only Q, context schema, mechanical deps, V audit, language detect.
|
|
4
4
|
trigger: "internal use by story-* skills"
|
|
5
5
|
intent: Component skill that holds the v2.2 baseline. Top-level skills (story-generate, story-refine, story-split, story-from-figma) compose this and add only their source-specific behavior on top.
|
|
6
|
-
version: 2.
|
|
6
|
+
version: 2.4.0
|
|
7
7
|
inputs:
|
|
8
8
|
- none
|
|
9
9
|
outputs:
|
|
@@ -96,6 +96,14 @@ If you are reading this through a top-level skill, treat every rule below as non
|
|
|
96
96
|
|
|
97
97
|
12. **Passive-goal downstream prompt (rule G).** If the story's `I want to` verb is observational (`view, see, read, browse, look at, inspect, monitor`) AND the `so that` does not name a follow-up user action — ask once via `AskUserQuestion`: "What does the user do with this?". Strengthen the `so that` accordingly. Skip if `so that` already names a downstream action.
|
|
98
98
|
|
|
99
|
+
13. **PM section whitelist (rule H).** Only these section names may appear in `story.standard.md` and `story.jira-wiki.md`:
|
|
100
|
+
|
|
101
|
+
**ALLOWED:** User Story, Acceptance Criteria, Definition of Done, Contexto, Business Goal, Scope, Out of Scope, Business Rules. (`**Summary:**` is inline text, not a section heading — it is not subject to this list.)
|
|
102
|
+
|
|
103
|
+
**BANNED** (move content to `story.dev.md`, never emit in PM files): Edge Cases, Non-Functional Requirements, NFR, Performance, Security, Accessibility, Technical Considerations, Analytics, Risks, Dependencies, Dependencias, Riesgos — and any section whose name does not appear in the ALLOWED list above.
|
|
104
|
+
|
|
105
|
+
If you find yourself writing a banned section into a PM file, stop. Move its content to `story.dev.md` instead (use `## Technical Considerations` as the target heading for Accessibility, Performance, and Security content). Do not silently drop it.
|
|
106
|
+
|
|
99
107
|
### 4a. Language auto-detect — expanded signals (rule E)
|
|
100
108
|
|
|
101
109
|
Run cheap detection before asking. Multi-signal weighted decision:
|
|
@@ -222,13 +230,22 @@ NOTHING else. No NFR block. No Edge Cases enumeration. No Dependencies prose. No
|
|
|
222
230
|
|
|
223
231
|
8. **Fill the canonical block** (Use Case + AC + Design Ref + INVEST). Preserve original wording where it was already good. NEVER invent NFR/edge-case/deps sections **in the PM story body** — rule 3 still holds for `story.standard.md` / `story.jira-wiki.md`.
|
|
224
232
|
|
|
233
|
+
**Summary line (mandatory).** Generate `**Summary:**` immediately after the title — one sentence, value-focused, no heading. This line is MANDATORY in all three output files. Format: `**Summary:** <sentence>` in CommonMark files, `*Summary:* <sentence>` in the Jira wiki file. Never omit it.
|
|
234
|
+
|
|
235
|
+
8.5. **PM section self-audit (rule H).** Before calling [[jira-wiki-formatter]], enumerate every section drafted for the PM files. For each section name:
|
|
236
|
+
- In Rule H ALLOWED list → keep.
|
|
237
|
+
- In Rule H BANNED list → move its content to `story.dev.md`.
|
|
238
|
+
- Not in either list → treat as BANNED, move to `story.dev.md`.
|
|
239
|
+
Log any moves in the Refinement Log: "Moved <Section> to dev (rule H)."
|
|
240
|
+
Do not proceed to step 8b until the PM draft contains only ALLOWED sections.
|
|
241
|
+
|
|
225
242
|
8b. **Gather dev-file enrichment** (feeds `story.dev.md` only — see rule 3a). Invoke the enrichment components to populate the technical sections of the dev file:
|
|
226
243
|
- `[[edge-cases]]` → `### Edge Cases` (technical failure axes)
|
|
227
244
|
- `[[risks-and-dependencies]]` → `### Dependencias` + `### Riesgos`
|
|
228
245
|
- `[[analytics-events]]` → `### Analytics / Eventos`
|
|
229
246
|
- `[[definition-of-done]]` → full DoD with CLI commands (PM files get the acceptance-only projection)
|
|
230
247
|
- `[[business-rules]]` → policy invariants (also an *optional* PM section per `[[jira-wiki-formatter]]` when non-empty)
|
|
231
|
-
None of these may appear in the PM story body except the optional Business Rules section. Skip any component whose output is empty (drop empty sections — rule 3 / jira-wiki-formatter).
|
|
248
|
+
None of these may appear in the PM story body except the optional Business Rules section (see Rule H for the full PM section whitelist). Skip any component whose output is empty (drop empty sections — rule 3 / jira-wiki-formatter).
|
|
232
249
|
|
|
233
250
|
9. **Run INVEST** via `[[invest-checklist]]`.
|
|
234
251
|
- `READY` → render.
|