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/qc.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate automation test scripts for story: $ARGUMENTS
6
+
7
+ ## Steps
8
+
9
+ 1. Read `stories/$ARGUMENTS/test/test-cases.md`. If it doesn't exist, stop and say: "Test cases not found. Run `/qc:gen-test-cases $ARGUMENTS` first."
10
+
11
+ 2. Read `stories/$ARGUMENTS/story.md` for business context and AC details.
12
+
13
+ 3. Read `CLAUDE.md` for:
14
+ - The testing framework in use (e.g. Playwright, Cypress, pytest, Jest, etc.)
15
+ - Test folder conventions and file naming
16
+ - Any existing test helpers, fixtures, or page objects to reuse
17
+
18
+ 4. For each test case in test-cases.md, generate an automation script:
19
+ - Map TC-001 → test function/block with the same ID in a comment
20
+ - Use the testing framework specified in CLAUDE.md
21
+ - Write realistic selectors, assertions, and setup/teardown
22
+ - Use `// TODO:` or `# TODO:` where QC needs to fill in dynamic values (e.g. test user credentials, specific IDs)
23
+ - Group happy path, edge case, and negative tests into separate describe/class blocks
24
+
25
+ 5. Write scripts to `tests/{story-name}/` using the naming convention in CLAUDE.md. If no convention is specified, use `{story-name}.spec.{ext}`.
26
+
27
+ 6. Add a `tests/{story-name}/README.md` with:
28
+ - How to run these tests
29
+ - Any environment variables or setup required
30
+ - Which TC IDs each test function covers
31
+
32
+ 7. Print a summary:
33
+
34
+ **Scripts generated for `$ARGUMENTS`:**
35
+
36
+ | File | TCs covered |
37
+ |------|-------------|
38
+ | tests/$ARGUMENTS/... | TC-001, TC-002, TC-003 |
39
+
40
+ **Next steps:**
41
+ 1. Fill in any `// TODO` values (credentials, test data, selectors)
42
+ 2. Run the suite and use `/qc:bug-report $ARGUMENTS {TC-ID}` for any failures
@@ -0,0 +1,41 @@
1
+ > **Agent:** Read `.claude/agents/qc.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Generate test cases 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.
13
+
14
+ 3. Read `CLAUDE.md` for testing conventions, framework, and naming standards.
15
+
16
+ 4. Read `_templates/test-cases.md` — this is the **exact output format** to follow.
17
+ - Follow the TC numbering scheme, section structure, and coverage matrix from the template
18
+ - Do not skip sections — if a section has no content, note "None for this story"
19
+
20
+ 5. Check if `stories/$ARGUMENTS/test/test-cases.md` already exists. If so, warn and ask to confirm before overwriting.
21
+
22
+ 6. Generate test cases following `_templates/test-cases.md` exactly, and write to `stories/$ARGUMENTS/test/test-cases.md`.
23
+ - Fill `{{STORY_NAME}}` with the title-cased story name
24
+ - Fill `{{STORY_SLUG}}` with `$ARGUMENTS`
25
+ - Fill `{{DATE}}` with today's date
26
+ - Every AC → at least 1 happy path TC + 1 negative TC
27
+ - Every Edge Case from story.md → its own TC
28
+ - Coverage matrix must list every AC with its TC IDs
29
+
30
+ 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/test/.spec-lock`:
31
+ ```
32
+ story: $ARGUMENTS
33
+ spec-version: {current-story-version}
34
+ generated: {today}
35
+ ```
36
+
37
+ 8. Print a coverage summary then next steps:
38
+ - Total TCs by type (happy path / edge case / negative)
39
+ - Any ACs that have incomplete coverage (flag as ⚠️)
40
+ - "Next: `/qc:gen-scripts $ARGUMENTS` to generate automation scripts"
41
+ - "To customize the TC format, edit `_templates/test-cases.md`"
@@ -0,0 +1,51 @@
1
+ > **Agent:** Read `.claude/agents/qc.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Scan all released stories and show which ones need a test case 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}/test/.spec-lock`:
17
+ - If it **doesn't exist** → status: `⚪ No test cases`
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
+ 📋 QC STATUS
27
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
28
+ [one line per story, sorted: outdated first, then up-to-date, then no test cases]
29
+
30
+ 🔴 user-authentication v1.0.0 → v1.3.0 /qc:sync user-authentication
31
+ 🔴 create-order v1.1.0 → v1.2.0 /qc:sync create-order
32
+ ✅ payment-flow v2.0.0
33
+ ⚪ export-report /qc:gen-test-cases export-report
34
+
35
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
36
+ {N} stories need sync {M} up to date {K} no test cases 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
+ /qc:sync {story}
46
+ ```
47
+
48
+ If everything is up to date, print:
49
+ ```
50
+ ✅ All test cases are up to date.
51
+ ```
@@ -0,0 +1,71 @@
1
+ > **Agent:** Read `.claude/agents/qc.md` and adopt that persona fully before proceeding.
2
+
3
+ ---
4
+
5
+ Check if the story spec has changed since the test cases were generated, and show what needs to be updated.
6
+
7
+ Story: $ARGUMENTS
8
+
9
+ ## Steps
10
+
11
+ 1. Read `stories/$ARGUMENTS/test/.spec-lock`. If it doesn't exist, say:
12
+ "No spec-lock found. Run `/qc:gen-test-cases $ARGUMENTS` to generate test cases first."
13
+
14
+ The `.spec-lock` contains the story version these test cases were 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 test cases are 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/test/test-cases.md` fully.
27
+
28
+ 7. Produce a sync report:
29
+
30
+ ```
31
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
32
+ 🔄 QC SYNC — $ARGUMENTS
33
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
+ Your test cases: v{locked}
35
+ Latest story: v{latest}
36
+
37
+ CHANGES SINCE YOUR LAST SYNC:
38
+ [List each changed AC or edge case, clearly described]
39
+
40
+ TEST CASES AFFECTED:
41
+ ┌─────────────────────────────────────────────────────┐
42
+ │ TC │ Status │ Action needed │
43
+ ├─────────────────────────────────────────────────────┤
44
+ │ TC-003 │ ❌ Invalid │ AC changed — rewrite steps │
45
+ │ TC-007 │ ⚠️ Partial │ Add new assertion for X │
46
+ │ NEW │ ✅ Required │ Add TC for AC-05 (remember me)│
47
+ └─────────────────────────────────────────────────────┘
48
+
49
+ NEW TEST CASES TO ADD:
50
+ [For each new AC or edge case, describe the new TC(s) needed]
51
+
52
+ SCRIPTS TO UPDATE:
53
+ [If automation scripts exist, note which files need updating]
54
+
55
+ EFFORT ESTIMATE: Low / Medium / High
56
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
57
+ ```
58
+
59
+ 8. After the report, ask: "Would you like me to update the test cases now with these changes?"
60
+ - If yes: update `stories/$ARGUMENTS/test/test-cases.md` — edit invalid TCs and append new TCs
61
+ - If no: leave as-is
62
+
63
+ 9. Once test cases are updated (now or manually), remind them to update `.spec-lock`:
64
+
65
+ ```
66
+ When you've finished updating your test cases and scripts, update your spec-lock:
67
+
68
+ stories/$ARGUMENTS/test/.spec-lock
69
+ → change spec-version to: {latest}
70
+ → change synced: to today's date
71
+ ```