specross 1.0.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.
@@ -0,0 +1,42 @@
1
+ > **Agent:** Read `.claude/agents/ba.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate an impact report for story `$ARGUMENTS` when the spec has changed.
6
+
7
+ The full argument format is: `{story-slug} {old-version} {new-version}`
8
+ Parse $ARGUMENTS to extract:
9
+ - STORY = first word
10
+ - V_OLD = second word
11
+ - V_NEW = third word
12
+
13
+ Example: if $ARGUMENTS is `user-authentication v1.0.0 v1.1.0` then STORY=user-authentication, V_OLD=v1.0.0, V_NEW=v1.1.0
14
+
15
+ ## Steps
16
+
17
+ 1. Read the current `stories/{STORY}/story.md`.
18
+
19
+ 2. Run: `git diff {V_OLD} {V_NEW} -- stories/{STORY}/story.md`
20
+ to see what changed between versions. If git is not available, ask the user to paste the diff.
21
+
22
+ 3. Analyse the diff and produce an impact report covering:
23
+
24
+ ### Changes Summary
25
+ What was added, removed, or modified in the story spec.
26
+
27
+ ### Impact on Dev
28
+ - Which parts of the tech-spec (`stories/{STORY}/tech/tech-spec.md`) are affected?
29
+ - Does the scaffold or existing code need to change?
30
+ - Effort estimate for rework: Low / Medium / High
31
+
32
+ ### Impact on QC
33
+ - Which existing test cases (`stories/{STORY}/test/test-cases.md`) are now invalid or need updating?
34
+ - Are new test cases needed for the new/changed ACs?
35
+ - Effort estimate for rework: Low / Medium / High
36
+
37
+ ### Recommended Actions
38
+ Ordered list of actions Dev and QC should take, with the highest-priority items first.
39
+
40
+ 4. Save the report to `stories/{STORY}/docs/impact-{V_OLD}-to-{V_NEW}.md`.
41
+
42
+ 5. Print a summary and remind the team to update their `.spec-lock` files in `stories/{STORY}/tech/` and `stories/{STORY}/test/` once they've applied the changes.
@@ -0,0 +1,68 @@
1
+ > **Agent:** Read `.claude/agents/ba.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Create a new story or sub-spec for: $ARGUMENTS
6
+
7
+ `$ARGUMENTS` supports two formats:
8
+ - `{slug}` — standalone story, e.g. `user-authentication`
9
+ - `{parent}/{slug}` — sub-spec under a parent, e.g. `order-management/create-order`
10
+
11
+ ## Steps
12
+
13
+ 1. Parse $ARGUMENTS:
14
+ - If it contains `/`: IS_SUB_SPEC = true, PARENT = part before `/`, SLUG = part after `/`
15
+ - If no `/`: IS_SUB_SPEC = false, SLUG = $ARGUMENTS
16
+
17
+ 2. Determine the display name (title-case the slug, e.g. `create-order` → "Create Order").
18
+
19
+ 3. Create the following folder and files at `ba/$ARGUMENTS/`:
20
+
21
+ ```
22
+ ba/$ARGUMENTS/
23
+ ├── story.md ← populate from _templates/story.md
24
+ ├── CHANGELOG.md ← create with initial entry
25
+ └── docs/ ← empty folder (add a .gitkeep)
26
+ ```
27
+
28
+ 4. In `ba/$ARGUMENTS/story.md`, copy the contents of `_templates/story.md` exactly and replace:
29
+ - `{{STORY_NAME}}` with the display name
30
+ - `{{STORY_SLUG}}` with `$ARGUMENTS`
31
+ - `{{DATE}}` with today's date in YYYY-MM-DD format
32
+
33
+ **If IS_SUB_SPEC = true**, also add this line to the header table in story.md:
34
+ ```
35
+ | **Parent spec** | `ba/{PARENT}/story.md` |
36
+ ```
37
+
38
+ **If IS_SUB_SPEC = false**, replace the Sub-specs section in story.md with:
39
+ ```markdown
40
+ ## Sub-specs
41
+
42
+ > List child specs here as this feature is broken down.
43
+
44
+ | Spec | Status | Notes |
45
+ |------|--------|-------|
46
+ | | | |
47
+ ```
48
+
49
+ 5. In `ba/$ARGUMENTS/CHANGELOG.md`, create:
50
+
51
+ ```markdown
52
+ # Changelog — {display name}
53
+
54
+ ## v0.1.0 — {today}
55
+ - Initial spec created
56
+ ```
57
+
58
+ 6. **If IS_SUB_SPEC = true**, check if `ba/{PARENT}/story.md` exists. If it does, append a row to its Sub-specs table:
59
+ ```
60
+ | [{display name}]({SLUG}/story.md) | Draft | |
61
+ ```
62
+ If the parent story doesn't have a Sub-specs table yet, add the section at the end.
63
+
64
+ 7. Print a summary:
65
+ - List the files created
66
+ - If sub-spec: remind BA to fill in AC specific to this flow/area
67
+ - If parent: remind BA to fill in the overview, then create sub-specs with `/ba:new-story {SLUG}/{sub-slug}`
68
+ - Suggest next step: "Once story.md is complete, run `/ba:review $ARGUMENTS`"
@@ -0,0 +1,128 @@
1
+ > **Agent:** Read `.claude/agents/ba.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Release a story from `ba/` to `stories/`. Format: `{story-slug} {version}`
6
+
7
+ Parse $ARGUMENTS:
8
+ - STORY = first word (e.g. `user-authentication`)
9
+ - VERSION = second word (e.g. `v1.0.0`). If not provided, default to `v1.0.0` for a new story or bump the patch version of the last release.
10
+
11
+ ## Steps
12
+
13
+ 1. Read `ba/{STORY}/story.md`. If it doesn't exist, stop and say "Story draft not found. Run `/ba:new-story {STORY}` first."
14
+
15
+ 2. Read `ba/{STORY}/CHANGELOG.md` to find the previous version (if any).
16
+
17
+ 3. Determine if this is a new release (first time) or an update:
18
+ - **New release:** `stories/{STORY}/story.md` does not exist yet
19
+ - **Update:** `stories/{STORY}/story.md` already exists — diff it against `ba/{STORY}/story.md`
20
+
21
+ 4. **If this is an UPDATE (not the first release):**
22
+ - Read both `ba/{STORY}/story.md` (new draft) and `stories/{STORY}/story.md` (last released version)
23
+ - Compare them directly — no git required
24
+ - Generate a change summary covering:
25
+ - ACs added / removed / modified
26
+ - Edge cases added / removed / modified
27
+ - Out-of-scope or dependency changes
28
+ - Any section that meaningfully changed
29
+
30
+ 5. Update `ba/{STORY}/CHANGELOG.md` — prepend a new entry:
31
+
32
+ ```markdown
33
+ ## {VERSION} — {today}
34
+
35
+ ### Changes
36
+ - [List each meaningful change to the story — ACs added, edge cases updated, scope changes, etc.]
37
+
38
+ ### Impact
39
+ - **Dev:** [Brief note — e.g. "New AC-05 requires token TTL changes" or "No breaking changes"]
40
+ - **QC:** [Brief note — e.g. "2 new test cases needed for AC-05" or "No impact"]
41
+ ```
42
+
43
+ 6. **Promote to `stories/`** — copy the full draft into the released stories folder:
44
+ - Copy `ba/{STORY}/` → `stories/{STORY}/` (overwrite if exists)
45
+ - This snapshot is the official version Dev and QC will work against
46
+
47
+ 7. Save a release note to `stories/{STORY}/docs/release-{VERSION}.md`:
48
+
49
+ ```markdown
50
+ # Release Note — {STORY} {VERSION}
51
+
52
+ **Date:** {today}
53
+ **Status:** Ready for Dev and QC
54
+
55
+ ## What's in this release
56
+ [Summary of the story purpose — 2–3 sentences for context]
57
+
58
+ ## What changed (vs previous version)
59
+ [For first release: "Initial story release"]
60
+ [For updates: List each AC / edge case change clearly]
61
+
62
+ ## Action required
63
+
64
+ ### Dev team
65
+ - [ ] Run `/dev:gen-tech-spec {STORY}` (first release)
66
+ - [ ] OR run `/dev:sync {STORY}` (update — see what changed)
67
+
68
+ ### QC team
69
+ - [ ] Run `/qc:gen-test-cases {STORY}` (first release)
70
+ - [ ] OR run `/qc:sync {STORY}` (update — see what changed)
71
+
72
+ ## Story location
73
+ `stories/{STORY}/story.md`
74
+ ```
75
+
76
+ 8. **Check for outdated specs** — after promoting to `stories/`, check who is behind:
77
+
78
+ - Check `stories/{STORY}/tech/.spec-lock`:
79
+ - If it exists: read `spec-version` from it
80
+ - If `spec-version` ≠ `{VERSION}` → Dev's tech spec is outdated (locked at that version)
81
+ - Check `stories/{STORY}/test/.spec-lock`:
82
+ - If it exists: read `spec-version` from it
83
+ - If `spec-version` ≠ `{VERSION}` → QC's test cases are outdated (locked at that version)
84
+
85
+ 9. Create a git tag suggestion. Print:
86
+
87
+ ```
88
+ ✅ Story released: {STORY} {VERSION}
89
+ Draft: ba/{STORY}/
90
+ Released: stories/{STORY}/
91
+
92
+ Run this to tag the version in git:
93
+ git add ba/{STORY}/ stories/{STORY}/
94
+ git commit -m "spec({STORY}): release {VERSION}"
95
+ git tag spec/{STORY}/{VERSION}
96
+
97
+ Then share the release note with Dev and QC:
98
+ 📄 stories/{STORY}/docs/release-{VERSION}.md
99
+ ```
100
+
101
+ If any specs are outdated (from step 8), append an alert block:
102
+
103
+ ```
104
+ ⚠️ OUTDATED SPECS DETECTED
105
+ ──────────────────────────────────────────
106
+ [For each outdated spec, one line:]
107
+ 🔴 Dev tech spec is on {locked-version} — run /dev:sync {STORY}
108
+ 🔴 QC test cases are on {locked-version} — run /qc:sync {STORY}
109
+ ──────────────────────────────────────────
110
+ ```
111
+
112
+ If all specs are up to date (or no specs exist yet), print:
113
+ ```
114
+ ✅ No outdated specs.
115
+ ```
116
+
117
+ 10. If this is an update (not first release), also print the impact summary so the BA can paste it into their team chat:
118
+
119
+ ```
120
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
121
+ 📢 STORY UPDATE: {STORY} → {VERSION}
122
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
123
+ [Change summary — bullet points]
124
+
125
+ Dev: run /dev:sync {STORY}
126
+ QC: run /qc:sync {STORY}
127
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
128
+ ```
@@ -0,0 +1,44 @@
1
+ > **Agent:** Read `.claude/agents/ba.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Review the story at `ba/$ARGUMENTS/story.md` for completeness and quality.
6
+
7
+ ## Steps
8
+
9
+ 1. Read `ba/$ARGUMENTS/story.md` fully.
10
+
11
+ 2. Evaluate the story against this checklist:
12
+
13
+ ### Completeness
14
+ - [ ] Story title and slug are filled in
15
+ - [ ] Description clearly explains the "what" and "why" (not just "what")
16
+ - [ ] All actors/users who interact with this feature are identified
17
+ - [ ] Acceptance Criteria (AC) are written in "Given / When / Then" or clear pass/fail format
18
+ - [ ] Each AC is independently testable
19
+ - [ ] Edge cases and error states are documented
20
+ - [ ] Out-of-scope items are explicitly listed
21
+ - [ ] Any dependencies on other stories or systems are noted
22
+
23
+ ### Quality
24
+ - [ ] No ambiguous words like "should", "maybe", "might", "sometimes"
25
+ - [ ] No missing actors (e.g. AC says "the user" but which user role?)
26
+ - [ ] No AC that mixes multiple conditions (each AC = one condition)
27
+ - [ ] No technical implementation details dictated in the AC (BA says WHAT, not HOW)
28
+
29
+ ## Output format
30
+
31
+ Return a structured review:
32
+
33
+ **Story:** `$ARGUMENTS`
34
+ **Status:** READY / NEEDS WORK / BLOCKED
35
+
36
+ **Gaps found:** (list each gap with a specific suggestion to fix it)
37
+
38
+ **Suggested ACs to add:** (if any are missing)
39
+
40
+ **Questions for the BA:** (anything that needs clarification before Dev/QC can proceed)
41
+
42
+ If the story is READY, say so clearly and suggest next steps:
43
+ - Dev: `/dev:gen-tech-spec $ARGUMENTS`
44
+ - QC: `/qc:gen-test-cases $ARGUMENTS`
@@ -0,0 +1,40 @@
1
+ > **Agent:** Read `.claude/agents/dev.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate a code scaffold for story: $ARGUMENTS
6
+
7
+ ## Steps
8
+
9
+ 1. Read `stories/$ARGUMENTS/tech/tech-spec.md`. If it doesn't exist, stop and say: "Tech spec not found. Run `/dev:gen-tech-spec $ARGUMENTS` first."
10
+
11
+ 2. Read `stories/$ARGUMENTS/story.md` for business context.
12
+
13
+ 3. Read `CLAUDE.md` for the project's tech stack, folder conventions, coding standards, and naming rules.
14
+
15
+ 4. Analyse the tech spec and identify all files that need to be created or modified:
16
+ - New files (controllers, services, models, components, tests, etc.)
17
+ - Existing files that need changes (router registration, DI container, etc.)
18
+
19
+ 5. For each file, generate the scaffold:
20
+ - **Include:** function/method signatures, class/interface definitions, inline TODO comments for business logic
21
+ - **Do not include:** full implementations — leave logic as `// TODO: implement` or `pass`
22
+ - **Do include:** imports, type hints/interfaces, error handling stubs, and docstrings/JSDoc
23
+
24
+ 6. Write files to the appropriate locations under `src/` (or the project's source folder as defined in CLAUDE.md).
25
+
26
+ 7. Also create stub test files under `tests/` that match the scaffold — one test file per implementation file, with `describe` / `it` blocks pre-filled from the AC mapping in the tech spec but left as pending (`it.todo()` or `xit()`).
27
+
28
+ 8. After generating all files, print:
29
+
30
+ **Scaffold summary for `$ARGUMENTS`:**
31
+
32
+ | File | Type | Action |
33
+ |------|------|--------|
34
+ | src/... | Controller | Created |
35
+ | src/... | Service | Created |
36
+ | tests/... | Unit test | Created |
37
+
38
+ **Next steps:**
39
+ 1. Fill in the `// TODO` sections in each file
40
+ 2. Run `/dev:review $ARGUMENTS` once implementation is done to verify all ACs are covered
@@ -0,0 +1,39 @@
1
+ > **Agent:** Read `.claude/agents/dev.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate a technical specification for story: $ARGUMENTS
6
+
7
+ ## Steps
8
+
9
+ 1. Read `stories/$ARGUMENTS/story.md` fully. If it doesn't exist, stop and say:
10
+ "Story not found. Run `/ba:new-story $ARGUMENTS` first."
11
+
12
+ 2. Check that the story has complete Acceptance Criteria. If incomplete, warn the user and suggest `/ba:review $ARGUMENTS` before proceeding.
13
+
14
+ 3. Read `CLAUDE.md` to understand the project's tech stack, conventions, and architecture patterns.
15
+
16
+ 4. Read `_templates/tech-spec.md` — this is the **exact output format** to follow.
17
+ - Every section in the template must appear in the output
18
+ - Replace placeholder text with real content derived from the story
19
+ - Do not add or remove sections unless the template instructs it
20
+
21
+ 5. Check if `stories/$ARGUMENTS/tech/tech-spec.md` already exists. If it does, warn the user and ask to confirm before overwriting.
22
+
23
+ 6. Generate the tech spec following `_templates/tech-spec.md` exactly, and write it to `stories/$ARGUMENTS/tech/tech-spec.md`.
24
+ - Fill `{{STORY_NAME}}` with the title-cased story name
25
+ - Fill `{{STORY_SLUG}}` with `$ARGUMENTS`
26
+ - Fill `{{DATE}}` with today's date
27
+ - Map every AC from story.md into the AC Mapping table — no AC left blank
28
+
29
+ 7. Read `stories/$ARGUMENTS/CHANGELOG.md` to find the current story version (the latest `## vX.Y.Z` entry at the top). Create `.spec-lock` at `stories/$ARGUMENTS/tech/.spec-lock`:
30
+ ```
31
+ story: $ARGUMENTS
32
+ spec-version: {current-story-version}
33
+ generated: {today}
34
+ ```
35
+
36
+ 8. Print next steps:
37
+ - "Tech spec created: `stories/$ARGUMENTS/tech/tech-spec.md`"
38
+ - "Review it before running `/dev:gen-scaffold $ARGUMENTS`"
39
+ - "To customize the output format, edit `_templates/tech-spec.md`"
@@ -0,0 +1,52 @@
1
+ > **Agent:** Read `.claude/agents/dev.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Review implementation against the story and tech spec for: $ARGUMENTS
6
+
7
+ ## Steps
8
+
9
+ 1. Read `stories/$ARGUMENTS/story.md` — this is the source of truth for requirements.
10
+ 2. Read `stories/$ARGUMENTS/tech/tech-spec.md` — this is the agreed technical approach.
11
+ 3. Read `stories/$ARGUMENTS/tech/.spec-lock` to check which spec version this work is based on.
12
+ 4. Read all relevant implementation files in `src/` related to this story.
13
+
14
+ ## Review Checklist
15
+
16
+ ### Requirements Coverage
17
+ For each Acceptance Criterion in story.md, check:
18
+ - [ ] Is it implemented?
19
+ - [ ] Is it implemented correctly (matches the AC, not just roughly)?
20
+ - [ ] Is the edge case handling from the story covered?
21
+
22
+ ### Tech Spec Compliance
23
+ - [ ] Does the implementation match the data model in the tech spec?
24
+ - [ ] Are the API contracts (endpoints, shapes, auth) as specced?
25
+ - [ ] Were the architecture decisions from the spec followed? If not, is there a good reason?
26
+
27
+ ### Code Quality
28
+ - [ ] No obvious bugs or unhandled error paths
29
+ - [ ] No hardcoded values where config/constants should be used
30
+ - [ ] No TODO comments left behind that should be implemented
31
+ - [ ] Tests exist for the main paths and edge cases
32
+
33
+ ## Output Format
34
+
35
+ **Story:** `$ARGUMENTS`
36
+ **Review result:** APPROVED / CHANGES REQUESTED / BLOCKED
37
+
38
+ ### ACs Status
39
+ | AC | Status | Notes |
40
+ |----|--------|-------|
41
+ | AC-01 | ✅ Covered | |
42
+ | AC-02 | ⚠️ Partial | Missing error state for X |
43
+ | AC-03 | ❌ Not found | |
44
+
45
+ ### Issues Found
46
+ (Numbered list — specific file and line where possible)
47
+
48
+ ### Questions / Decisions Needed
49
+ (Anything that requires BA or team input)
50
+
51
+ ### Verdict
52
+ Clear recommendation: ready to merge, needs fixes, or needs a BA conversation first.
@@ -0,0 +1,51 @@
1
+ > **Agent:** Read `.claude/agents/dev.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Scan all released stories and show which ones need a tech spec sync.
6
+
7
+ ## Steps
8
+
9
+ 1. List all subdirectories under `stories/`. Each subdirectory is a story slug.
10
+ If `stories/` is empty or doesn't exist, print "No stories released yet." and stop.
11
+
12
+ 2. For each story folder, collect its sync status:
13
+
14
+ a. Read `stories/{story}/CHANGELOG.md` — extract the latest version (the first `## vX.Y.Z` entry at the top). If CHANGELOG doesn't exist, mark as `unknown`.
15
+
16
+ b. Check `stories/{story}/tech/.spec-lock`:
17
+ - If it **doesn't exist** → status: `⚪ No tech spec`
18
+ - If it exists → read `spec-version`
19
+ - If `spec-version` == latest version → status: `✅ Up to date`
20
+ - If `spec-version` != latest version → status: `🔴 Outdated (locked: {spec-version} → latest: {latest})`
21
+
22
+ 3. Print the status table:
23
+
24
+ ```
25
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
26
+ 📋 DEV STATUS
27
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
28
+ [one line per story, sorted: outdated first, then up-to-date, then no spec]
29
+
30
+ 🔴 user-authentication v1.0.0 → v1.3.0 /dev:sync user-authentication
31
+ 🔴 create-order v1.1.0 → v1.2.0 /dev:sync create-order
32
+ ✅ payment-flow v2.0.0
33
+ ⚪ export-report /dev:gen-tech-spec export-report
34
+
35
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36
+ {N} stories need sync {M} up to date {K} no tech spec yet
37
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
38
+ ```
39
+
40
+ 4. If there are outdated stories, print a shortcut block:
41
+
42
+ ```
43
+ Run these to sync:
44
+ [one line per outdated story]
45
+ /dev:sync {story}
46
+ ```
47
+
48
+ If everything is up to date, print:
49
+ ```
50
+ ✅ All tech specs are up to date.
51
+ ```
@@ -0,0 +1,62 @@
1
+ > **Agent:** Read `.claude/agents/dev.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Check if the story spec has changed since the tech spec was generated, and show what needs to be updated.
6
+
7
+ Story: $ARGUMENTS
8
+
9
+ ## Steps
10
+
11
+ 1. Read `stories/$ARGUMENTS/tech/.spec-lock`. If it doesn't exist, say:
12
+ "No spec-lock found. Run `/dev:gen-tech-spec $ARGUMENTS` to generate the tech spec first."
13
+
14
+ The `.spec-lock` contains the story version this tech spec was based on (e.g. `v1.0.0`).
15
+
16
+ 2. Read `stories/$ARGUMENTS/CHANGELOG.md` to find the latest released version.
17
+
18
+ 3. Compare the locked version vs the latest version:
19
+ - If they match → print "✅ Your tech spec is up to date. No action needed." and stop.
20
+ - If they differ → continue.
21
+
22
+ 4. Read the latest release note at `stories/$ARGUMENTS/docs/release-{latest-version}.md` to understand what changed.
23
+
24
+ 5. Read the current `stories/$ARGUMENTS/story.md` fully.
25
+
26
+ 6. Read the current `stories/$ARGUMENTS/tech/tech-spec.md` fully.
27
+
28
+ 7. Produce a sync report:
29
+
30
+ ```
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ 🔄 DEV SYNC — $ARGUMENTS
33
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
+ Your tech spec: v{locked}
35
+ Latest story: v{latest}
36
+
37
+ CHANGES SINCE YOUR LAST SYNC:
38
+ [List each changed AC or edge case, with a clear description of what changed]
39
+
40
+ WHAT YOU NEED TO UPDATE IN YOUR TECH SPEC:
41
+ [For each change, specific guidance on which section of tech-spec.md to update]
42
+
43
+ WHAT YOU NEED TO UPDATE IN YOUR CODE:
44
+ [For each change, brief note on likely code impact — file/function level if possible]
45
+
46
+ EFFORT ESTIMATE: Low / Medium / High
47
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
48
+ ```
49
+
50
+ 8. After the report, ask: "Would you like me to update the tech spec now with these changes?"
51
+ - If yes: update `stories/$ARGUMENTS/tech/tech-spec.md` with the new/changed sections
52
+ - If no: leave it as-is
53
+
54
+ 9. Once the tech spec is updated (either now or by the dev manually), remind them to update `.spec-lock`:
55
+
56
+ ```
57
+ When you've finished updating your tech spec and code, update your spec-lock:
58
+
59
+ stories/$ARGUMENTS/tech/.spec-lock
60
+ → change spec-version to: {latest}
61
+ → change synced: to today's date
62
+ ```
@@ -0,0 +1,77 @@
1
+ Print the Specross command reference. No arguments needed.
2
+
3
+ ---
4
+
5
+ Print the following help text exactly:
6
+
7
+ ```
8
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
9
+ ⚡ SPECROSS — Command Reference
10
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
11
+
12
+ BUSINESS ANALYST ──────────────────────────────────────────
13
+
14
+ /ba:new-story {story}
15
+ Create a new story draft under ba/{story}/story.md
16
+ Uses the story template — fill in AC, edge cases, scope.
17
+
18
+ /ba:review {story}
19
+ Review a draft story for gaps before releasing.
20
+ Checks: missing AC, vague criteria, undefined edge cases.
21
+
22
+ /ba:release {story} {version}
23
+ Promote a draft to stories/ as the official released version.
24
+ Diffs vs previous, writes CHANGELOG, alerts outdated Dev/QC specs.
25
+
26
+ /ba:impact {story}
27
+ Show downstream impact of a story change before releasing.
28
+ Lists which Dev and QC artifacts will be affected.
29
+
30
+ DEVELOPER ─────────────────────────────────────────────────
31
+
32
+ /dev:status
33
+ Scan all stories — show which tech specs are outdated or missing.
34
+ Run this first thing to see what needs attention.
35
+
36
+ /dev:gen-tech-spec {story}
37
+ Generate a tech spec from the released story.
38
+ Maps every AC to a technical approach. Locks spec version.
39
+
40
+ /dev:gen-scaffold {story}
41
+ Generate skeleton code and stub tests from the tech spec.
42
+ Creates files in src/ and tests/ with TODOs to implement.
43
+
44
+ /dev:review {story}
45
+ Review your implementation against the story's AC.
46
+ Flags gaps between code and acceptance criteria.
47
+
48
+ /dev:sync {story}
49
+ Show what changed in the story since your last tech spec.
50
+ Tells you exactly which sections and code to update.
51
+
52
+ QC / TESTING ──────────────────────────────────────────────
53
+
54
+ /qc:status
55
+ Scan all stories — show which test cases are outdated or missing.
56
+ Run this first thing to see what needs attention.
57
+
58
+ /qc:gen-test-cases {story}
59
+ Generate test cases from the released story.
60
+ Happy path + edge case + negative TCs for every AC. Locks spec version.
61
+
62
+ /qc:gen-scripts {story}
63
+ Generate automation scripts from the test cases.
64
+ Uses the framework defined in CLAUDE.md (Playwright, Cypress, pytest…).
65
+
66
+ /qc:sync {story}
67
+ Show what changed in the story since your last test cases.
68
+ Lists invalid TCs, TCs needing updates, and new TCs to add.
69
+
70
+ /qc:bug-report {story}
71
+ Generate a structured bug report tied to a story's AC.
72
+ Includes repro steps, expected vs actual, AC reference.
73
+
74
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
75
+ Tip: Start with /ba:new-story → /ba:release → /dev:status
76
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
77
+ ```
@@ -0,0 +1,33 @@
1
+ > **Agent:** Read `.claude/agents/qc.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate a structured bug report for story: $ARGUMENTS
6
+
7
+ Parse $ARGUMENTS: `{story-slug} {TC-ID}`
8
+ - STORY = first word (e.g. `user-authentication`)
9
+ - TC_ID = second word (e.g. `TC-003`)
10
+
11
+ ## Steps
12
+
13
+ 1. Read `stories/{STORY}/test/test-cases.md` and find the test case matching {TC_ID}.
14
+ If not found, stop and say clearly which TC-IDs are available.
15
+
16
+ 2. Read `stories/{STORY}/story.md` to understand the related AC.
17
+
18
+ 3. Read `_templates/bug-report.md` — this is the **exact output format** to follow.
19
+
20
+ 4. Ask the user to provide:
21
+ - What actually happened (actual result)
22
+ - Steps to reproduce (if different from TC steps)
23
+ - Environment (browser, OS, app version, test/staging/prod)
24
+ - Screenshots, logs, or error messages (paste or describe)
25
+
26
+ 5. Generate the bug report following `_templates/bug-report.md` exactly.
27
+ Save to `stories/{STORY}/test/bugs/bug-{TC_ID}-{slug}.md`
28
+ where `{slug}` is a short hyphenated description (e.g. `login-fails-empty-password`).
29
+
30
+ 6. After saving, print:
31
+ - "Bug report saved: `stories/{STORY}/test/bugs/bug-{TC_ID}-{slug}.md`"
32
+ - "Share with the Dev team and link in your issue tracker."
33
+ - "To customize the bug report format, edit `_templates/bug-report.md`"