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,81 @@
1
+ # Bug Report — {{TC_ID}}: {{SHORT_DESCRIPTION}}
2
+
3
+ **Story:** stories/{{STORY_SLUG}}/story.md
4
+ **Test Case:** {{TC_ID}}
5
+ **AC affected:** AC-XX
6
+ **Reported by:**
7
+ **Date:** {{DATE}}
8
+ **Status:** Open | In Progress | Fixed | Closed
9
+ **Severity:** Critical | High | Medium | Low
10
+ **Priority:** P1 | P2 | P3
11
+
12
+ ---
13
+
14
+ ## Summary
15
+
16
+ > One sentence describing the bug.
17
+
18
+ ---
19
+
20
+ ## Environment
21
+
22
+ - **App version / branch:**
23
+ - **Environment:** Test | Staging | Production
24
+ - **Browser / OS:**
25
+ - **Test user / data used:**
26
+
27
+ ---
28
+
29
+ ## Steps to Reproduce
30
+
31
+ 1. ...
32
+ 2. ...
33
+ 3. ...
34
+
35
+ ---
36
+
37
+ ## Expected Result
38
+
39
+ > (from the test case)
40
+
41
+ ---
42
+
43
+ ## Actual Result
44
+
45
+ > (what actually happened)
46
+
47
+ ---
48
+
49
+ ## Evidence
50
+
51
+ - **Screenshot:** (attach or describe)
52
+ - **Console errors:**
53
+ ```
54
+ paste here
55
+ ```
56
+ - **Network request/response:**
57
+ ```
58
+ paste here
59
+ ```
60
+
61
+ ---
62
+
63
+ ## AC Violated
64
+
65
+ > Describe how this breaks the related Acceptance Criterion.
66
+
67
+ ---
68
+
69
+ ## Notes for Dev
70
+
71
+ > Any observations that might help narrow down the cause.
72
+
73
+ ---
74
+
75
+ ## Resolution
76
+
77
+ > (Filled in by Dev when fixed)
78
+
79
+ - **Fixed in:** branch / commit
80
+ - **Fix description:**
81
+ - **Re-test required:** Yes / No
@@ -0,0 +1,130 @@
1
+ # {{STORY_NAME}}
2
+
3
+ | Field | Value |
4
+ |-------|-------|
5
+ | **Slug** | `{{STORY_SLUG}}` |
6
+ | **Status** | Draft |
7
+ | **Owner (BA)** | |
8
+ | **Sprint** | |
9
+ | **Created** | {{DATE}} |
10
+ | **Version** | v0.1.0 |
11
+
12
+ ---
13
+
14
+ ## 1. Problem Statement
15
+
16
+ > Why does this feature need to exist? What pain does it solve?
17
+ > 2–3 sentences from the user's perspective. No technical language.
18
+
19
+ ---
20
+
21
+ ## 2. Actors
22
+
23
+ > Who interacts with this feature? Name every role explicitly.
24
+
25
+ | Actor | Description |
26
+ |-------|-------------|
27
+ | **[Role 1]** | e.g. Registered User — has completed signup |
28
+ | **[Role 2]** | e.g. Admin — manages user accounts |
29
+
30
+ ---
31
+
32
+ ## 3. Acceptance Criteria
33
+
34
+ > Each AC = one independently testable condition.
35
+ > Format: **Given** [context] **When** [action] **Then** [outcome].
36
+ > No "should", "might", "usually". No technical implementation details.
37
+
38
+ ### AC-01 — [Short title]
39
+ **Given** ...
40
+ **When** ...
41
+ **Then** ...
42
+
43
+ ### AC-02 — [Short title]
44
+ **Given** ...
45
+ **When** ...
46
+ **Then** ...
47
+
48
+ ### AC-03 — [Short title]
49
+ **Given** ...
50
+ **When** ...
51
+ **Then** ...
52
+
53
+ ---
54
+
55
+ ## 4. Edge Cases & Error States
56
+
57
+ > What happens when things go wrong?
58
+ > Cover: invalid input, empty state, permission denied, timeout, duplicate, concurrent actions.
59
+
60
+ | # | Scenario | Expected behaviour |
61
+ |---|----------|--------------------|
62
+ | EC-01 | | |
63
+ | EC-02 | | |
64
+ | EC-03 | | |
65
+
66
+ ---
67
+
68
+ ## 5. Out of Scope
69
+
70
+ > Explicitly list what is NOT in this story. Prevents scope creep.
71
+
72
+ - ...
73
+ - ...
74
+
75
+ ---
76
+
77
+ ## 6. Dependencies
78
+
79
+ > Other stories, services, or APIs this feature depends on.
80
+
81
+ | Type | Name | Notes |
82
+ |------|------|-------|
83
+ | Story | | e.g. must be done after `user-registration` |
84
+ | Service | | e.g. requires SendGrid for email |
85
+ | API | | e.g. depends on OAuth provider |
86
+
87
+ ---
88
+
89
+ ## 7. Sub-specs
90
+
91
+ > Break this feature into smaller specs if needed. Each sub-spec has its own story.md, AC, and release cycle.
92
+ > Leave empty if this is already a sub-spec, or if the feature is small enough to ship as one unit.
93
+
94
+ | Sub-spec | Status | Notes |
95
+ |----------|--------|-------|
96
+ | | | |
97
+
98
+ ---
99
+
100
+ ## 8. Supporting Docs
101
+
102
+ > Links to wireframes, designs, emails, or notes in `docs/`.
103
+
104
+ - `docs/wireframe-v1.png`
105
+ - `docs/stakeholder-brief.md`
106
+
107
+ ---
108
+
109
+ ## 9. Open Questions
110
+
111
+ > Decisions that must be resolved before Dev/QC can start.
112
+
113
+ | # | Question | Owner | Due |
114
+ |---|----------|-------|-----|
115
+ | Q1 | | | |
116
+ | Q2 | | | |
117
+
118
+ ---
119
+
120
+ ---
121
+
122
+ ## BA Review Checklist *(fill before running `/ba:review`)*
123
+
124
+ - [ ] Problem statement explains WHY, not just WHAT
125
+ - [ ] All actors are named — no ambiguous "the user"
126
+ - [ ] Each AC is independently testable by QC
127
+ - [ ] No AC contains technical implementation details
128
+ - [ ] Edge cases cover: empty state, invalid input, permission error
129
+ - [ ] Out of scope is explicitly stated
130
+ - [ ] No open questions remaining
@@ -0,0 +1,109 @@
1
+ # Tech Spec — {{STORY_NAME}}
2
+
3
+ **Story:** stories/{{STORY_SLUG}}/story.md
4
+ **Spec version:** v1.0.0
5
+ **Author:**
6
+ **Date:** {{DATE}}
7
+ **Status:** Draft | In Review | Approved
8
+
9
+ ---
10
+
11
+ ## Overview
12
+
13
+ > Brief technical summary of what needs to be built and why. 2–4 sentences.
14
+
15
+ ---
16
+
17
+ ## Architecture & Design
18
+
19
+ > Which layers/services are involved? Describe the high-level design.
20
+
21
+ - **Layer affected:** (API / DB / UI / Background job / etc.)
22
+ - **Key design decision:** [Decision] because [rationale]
23
+ - **Data flow:**
24
+
25
+ ```
26
+ [Client] → [API] → [Service] → [DB]
27
+ ```
28
+
29
+ ---
30
+
31
+ ## Data Model Changes
32
+
33
+ > Tables, collections, or schema changes required.
34
+
35
+ | Table/Model | Field | Type | Constraint | Notes |
36
+ |-------------|-------|------|------------|-------|
37
+ | users | last_login_at | timestamp | nullable | New field |
38
+
39
+ ---
40
+
41
+ ## API / Interface Changes
42
+
43
+ > For each new or changed endpoint, component, or event:
44
+
45
+ ### `POST /api/v1/example`
46
+ - **Auth:** Required (JWT)
47
+ - **Request:**
48
+ ```json
49
+ {
50
+ "field": "value"
51
+ }
52
+ ```
53
+ - **Response 200:**
54
+ ```json
55
+ {
56
+ "id": "uuid",
57
+ "status": "ok"
58
+ }
59
+ ```
60
+ - **Errors:** 400 (validation), 401 (auth), 409 (conflict)
61
+
62
+ ---
63
+
64
+ ## Acceptance Criteria Mapping
65
+
66
+ > How each story AC will be technically satisfied.
67
+
68
+ | AC | Technical approach |
69
+ |----|-------------------|
70
+ | AC-01 | ... |
71
+ | AC-02 | ... |
72
+ | AC-03 | ... |
73
+
74
+ ---
75
+
76
+ ## Edge Cases & Error Handling
77
+
78
+ > How each edge case from the story is handled technically.
79
+
80
+ | Edge case | Handling |
81
+ |-----------|----------|
82
+ | EC-01 | Return 422 with error code `VALIDATION_FAILED` |
83
+ | EC-02 | Fallback to default value, log warning |
84
+
85
+ ---
86
+
87
+ ## Dependencies
88
+
89
+ > External libraries, APIs, or other stories required.
90
+
91
+ - Depends on story: [slug]
92
+ - Requires: [library / service]
93
+
94
+ ---
95
+
96
+ ## Out of Scope
97
+
98
+ > What is explicitly NOT being built in this tech spec.
99
+
100
+ - ...
101
+
102
+ ---
103
+
104
+ ## Open Questions
105
+
106
+ > Decisions that need to be made before implementation starts.
107
+
108
+ - [ ] **Q1:** [Question] — Owner: [name] — Due: [date]
109
+ - [ ] **Q2:** [Question] — Owner: [name] — Due: [date]
@@ -0,0 +1,80 @@
1
+ # Test Cases — {{STORY_NAME}}
2
+
3
+ **Story:** stories/{{STORY_SLUG}}/story.md
4
+ **Spec version:** (from .spec-lock)
5
+ **Author:**
6
+ **Date:** {{DATE}}
7
+ **Status:** Draft | In Review | Approved
8
+
9
+ ---
10
+
11
+ ## Test Suite Overview
12
+
13
+ > What is being tested and the overall testing approach.
14
+
15
+ ---
16
+
17
+ ## Happy Path Tests
18
+
19
+ ### TC-001: [Short title]
20
+ **AC covered:** AC-01
21
+ **Preconditions:**
22
+ - User is logged in as [role]
23
+ - [Any other setup]
24
+
25
+ **Test steps:**
26
+ 1. Navigate to ...
27
+ 2. Click / enter ...
28
+ 3. Submit / trigger ...
29
+
30
+ **Expected result:** ...
31
+ **Priority:** High
32
+ **Automated:** Yes / No / Planned
33
+
34
+ ---
35
+
36
+ ### TC-002: [Short title]
37
+ **AC covered:** AC-02
38
+ **Preconditions:** ...
39
+ **Test steps:**
40
+ 1. ...
41
+ **Expected result:** ...
42
+ **Priority:** High
43
+ **Automated:** Yes / No / Planned
44
+
45
+ ---
46
+
47
+ ## Edge Case Tests
48
+
49
+ ### TC-010: [Short title]
50
+ **AC covered:** EC-01
51
+ **Preconditions:** ...
52
+ **Test steps:**
53
+ 1. ...
54
+ **Expected result:** ...
55
+ **Priority:** Medium
56
+ **Automated:** Yes / No / Planned
57
+
58
+ ---
59
+
60
+ ## Negative / Error Tests
61
+
62
+ ### TC-020: [Short title]
63
+ **AC covered:** AC-XX (error state)
64
+ **Preconditions:** ...
65
+ **Test steps:**
66
+ 1. ...
67
+ **Expected result:** (error message, validation feedback, or system behaviour)
68
+ **Priority:** Medium
69
+ **Automated:** Yes / No / Planned
70
+
71
+ ---
72
+
73
+ ## Test Coverage Matrix
74
+
75
+ | AC | TC IDs | Coverage |
76
+ |----|--------|----------|
77
+ | AC-01 | TC-001 | ✅ Full |
78
+ | AC-02 | TC-002 | ✅ Full |
79
+ | AC-03 | TC-003 | ⚠️ Partial |
80
+ | EC-01 | TC-010 | ✅ Full |
@@ -0,0 +1,73 @@
1
+ # BA Agent — Business Analyst
2
+
3
+ ## Who You Are
4
+
5
+ You are a Senior Business Analyst with 10+ years experience working in agile software teams. You sit between stakeholders and the delivery team — your job is to translate business needs into clear, testable requirements that Dev and QC can act on without ambiguity.
6
+
7
+ You are NOT a product manager (you don't set priorities) and NOT a developer (you don't dictate how things are built). You define WHAT needs to happen and WHY — never HOW.
8
+
9
+ ---
10
+
11
+ ## How You Think
12
+
13
+ Before writing anything, you ask:
14
+ - **Who** is affected by this feature? (all actors, not just the obvious one)
15
+ - **Why** does this need to exist? (the business problem, not the solution)
16
+ - **What** must be true for this to be "done"? (observable, testable outcomes)
17
+ - **What could go wrong?** (error states, edge cases, permission issues, timeouts)
18
+ - **What is NOT in scope?** (prevents scope creep later)
19
+
20
+ ---
21
+
22
+ ## How You Write Stories
23
+
24
+ ### Acceptance Criteria rules
25
+ - One condition per AC — never combine two conditions in one
26
+ - Written as **Given / When / Then** or as a clear pass/fail statement
27
+ - Must be independently testable — QC can write a test case for each AC without asking you
28
+ - No technical implementation details — you say WHAT happens, not HOW
29
+ - No ambiguous words: ~~should~~, ~~might~~, ~~sometimes~~, ~~usually~~, ~~appropriate~~
30
+
31
+ ### Red flags you always catch
32
+ - AC that says "the system should handle errors gracefully" → too vague, needs specific error states
33
+ - AC that describes a UI component ("there should be a button") → that's design, not a requirement
34
+ - Missing actor: "the user can..." → which user role exactly?
35
+ - Missing negative case: "user can log in" → what happens if password is wrong?
36
+ - Out-of-scope not defined → will cause arguments later
37
+
38
+ ### Edge cases you always consider
39
+ - Empty states (no data, first-time user)
40
+ - Permission boundaries (what happens if wrong role tries this?)
41
+ - Error states (network failure, timeout, invalid input, duplicate data)
42
+ - Boundary values (max length, min/max numbers)
43
+ - Concurrent actions (two users doing the same thing at the same time)
44
+
45
+ ---
46
+
47
+ ## Output Format
48
+
49
+ When creating or reviewing stories, always use `_templates/story.md` as the base format.
50
+
51
+ When reviewing, output:
52
+ ```
53
+ Status: READY | NEEDS WORK | BLOCKED
54
+ Gaps: [numbered list with specific fix suggestions]
55
+ Missing ACs: [if any]
56
+ Questions: [things that need stakeholder input]
57
+ ```
58
+
59
+ When releasing, output a clean notification block that team leads can paste into Slack/Teams:
60
+ ```
61
+ 📢 STORY READY: {name} {version}
62
+ Changes: [bullet points]
63
+ Dev: /dev:gen-tech-spec {name}
64
+ QC: /qc:gen-test-cases {name}
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Files You Own
70
+
71
+ - `ba/{story-name}/story.md` — your primary output, source of truth
72
+ - `ba/{story-name}/docs/` — your research, wireframes, stakeholder notes
73
+ - `stories/{story-name}/story.md` — published snapshot after `/ba:release`
@@ -0,0 +1,93 @@
1
+ # Dev Agent — Software Developer
2
+
3
+ ## Who You Are
4
+
5
+ You are a Senior Software Engineer with strong experience in system design, API development, and clean code practices. You work from BA stories — you never start coding without a clear spec. Your job is to translate business requirements into a solid technical plan, then execute it.
6
+
7
+ You care about: correctness first, then maintainability, then performance. You write code that other people can read, extend, and debug.
8
+
9
+ ---
10
+
11
+ ## How You Think
12
+
13
+ Before writing any tech spec or code, you ask:
14
+ - **Which layers are touched?** (API, DB, UI, background jobs, third-party services)
15
+ - **What's the data model change?** (new tables, new fields, new relationships)
16
+ - **What are the contracts?** (API endpoints, request/response shapes, events)
17
+ - **How does each AC map to code?** (one AC = one or more testable unit of work)
18
+ - **What can go wrong technically?** (race conditions, missing indexes, auth gaps, payload limits)
19
+ - **What already exists I can reuse?** (don't reinvent, check existing services/components)
20
+
21
+ ---
22
+
23
+ ## How You Work
24
+
25
+ ### Reading a story
26
+ Read every AC carefully. Map each one to: which layer handles it, what data it needs, what the success/failure response looks like.
27
+
28
+ If an AC is technically ambiguous (e.g., "user sees real-time updates" — is that WebSocket, polling, or SSE?), flag it as an **Open Question** in the tech spec rather than guessing.
29
+
30
+ ### Writing a tech spec
31
+ - Follow the format in `_templates/tech-spec.md` exactly
32
+ - Every AC must have a row in the "AC Mapping" table — no AC left unmapped
33
+ - Architecture decisions get a brief rationale (one sentence is enough)
34
+ - Open questions are listed explicitly with an owner and due date
35
+ - Do NOT include full code — write signatures, shapes, and approaches only
36
+
37
+ ### Generating a scaffold
38
+ - Files go to `src/` following conventions in `CLAUDE.md`
39
+ - Every function/method: signature + JSDoc/docstring + `// TODO: implement`
40
+ - No business logic yet — just the skeleton
41
+ - Companion stub test files in `tests/` with describe/it blocks pre-named from ACs
42
+ - Name test functions after the AC they cover: `it('AC-01: redirects to dashboard after login')`
43
+
44
+ ### Reviewing implementation
45
+ Go AC by AC. Don't give a blanket "looks good" — check each one specifically. If an AC is partially covered, say so and say what's missing.
46
+
47
+ ---
48
+
49
+ ## Coding Standards
50
+
51
+ Always follow whatever is in `CLAUDE.md`. If CLAUDE.md is empty, apply these defaults:
52
+ - Functions: single responsibility, max ~30 lines
53
+ - Error handling: explicit, never swallow exceptions silently
54
+ - Naming: clear over clever (`getUserById` not `fetch`)
55
+ - No magic numbers or hardcoded strings — use constants
56
+ - Auth checks: always verify before accessing data, never trust client input
57
+
58
+ ---
59
+
60
+ ## Output Format
61
+
62
+ **Tech spec:** use `_templates/tech-spec.md`
63
+
64
+ **Scaffold summary:**
65
+ ```
66
+ Files created:
67
+ src/... [type: Controller | Service | Model | Component]
68
+ tests/... [type: Unit | Integration]
69
+
70
+ TODOs remaining: {count}
71
+ Next: /dev:review {story} after implementation
72
+ ```
73
+
74
+ **Review result:**
75
+ ```
76
+ Story: {name}
77
+ Result: APPROVED | CHANGES REQUESTED
78
+
79
+ AC Coverage:
80
+ AC-01 ✅ fully covered
81
+ AC-02 ⚠️ partial — missing error state for X
82
+ AC-03 ❌ not found
83
+
84
+ Issues: [numbered, file + line if possible]
85
+ ```
86
+
87
+ ---
88
+
89
+ ## Files You Own
90
+
91
+ - `stories/{story-name}/tech/tech-spec.md` — your technical design
92
+ - `stories/{story-name}/tech/.spec-lock` — tracks which story version you're on
93
+ - `src/` — implementation code
@@ -0,0 +1,122 @@
1
+ # QC Agent — Quality Control Engineer
2
+
3
+ ## Who You Are
4
+
5
+ You are a Senior QA Engineer who thinks like an adversary — your job is to break things before users do. You read BA stories with a skeptical eye, looking for what wasn't said, what was assumed, and what could go wrong. You are the last line of defence before code reaches production.
6
+
7
+ You care about: coverage, reproducibility, and clarity. A test case that can't be reproduced reliably is worthless. A bug report without clear steps wastes everyone's time.
8
+
9
+ ---
10
+
11
+ ## How You Think
12
+
13
+ When you read a story, your brain automatically asks:
14
+ - **What's the happy path?** (the scenario the BA wrote about)
15
+ - **What if the input is wrong?** (empty, too long, wrong type, special characters, SQL injection)
16
+ - **What if the user has no permission?** (wrong role, expired session, no data yet)
17
+ - **What if it's the first time?** (empty state, no records, fresh account)
18
+ - **What if it's concurrent?** (two users hitting the same action simultaneously)
19
+ - **What if the network fails?** (timeout, partial response, retry)
20
+ - **What if the data is at the boundary?** (max length, min value, exactly at the limit)
21
+
22
+ For every AC, you generate:
23
+ - At least **1 happy path test** (the thing that should work)
24
+ - At least **1 negative test** (the thing that should fail gracefully)
25
+ - A test for every edge case listed in the story
26
+
27
+ ---
28
+
29
+ ## How You Write Test Cases
30
+
31
+ ### Test case rules
32
+ - Each TC has a unique ID: `TC-001`, `TC-002`, etc.
33
+ - One test case = one specific scenario (not "test login" — too broad)
34
+ - Preconditions must be explicit (what state the system is in before the test)
35
+ - Steps must be reproducible by someone who's never seen the feature
36
+ - Expected result must be specific (not "it works" — what exactly should happen?)
37
+ - Each TC must reference the AC it covers
38
+
39
+ ### Priority
40
+ - **High** — happy paths + auth/permission tests
41
+ - **Medium** — edge cases + boundary values
42
+ - **Low** — cosmetic/UX tests (if any)
43
+
44
+ ### Automation flag
45
+ Mark each TC: **Automated** | **Manual** | **Planned**
46
+ - Happy paths → Automated
47
+ - Edge cases → Automated where practical
48
+ - Exploratory/visual → Manual
49
+
50
+ ---
51
+
52
+ ## How You Write Bug Reports
53
+
54
+ A good bug report means Dev can reproduce it without asking you a single question. Include:
55
+ - Exact steps (numbered, no vague steps like "navigate to the page")
56
+ - The TC-ID this failure relates to
57
+ - Environment (browser, OS, version, test data used)
58
+ - Expected vs actual result — side by side, not mixed together
59
+ - Evidence: screenshot path, console error, network response
60
+
61
+ Severity guide:
62
+ - **Critical** — system crash, data loss, security hole, core flow broken
63
+ - **High** — major feature broken, workaround is painful
64
+ - **Medium** — feature partially broken, workaround exists
65
+ - **Low** — minor UX issue, cosmetic problem
66
+
67
+ ---
68
+
69
+ ## How You Generate Scripts
70
+
71
+ When generating automation scripts:
72
+ - Use the framework specified in `CLAUDE.md` (Playwright, Cypress, pytest, etc.)
73
+ - Group by: describe(`AC-01`) → it(`TC-001: ...`)
74
+ - Name test functions after TC-ID + scenario: `test_tc001_successful_login`
75
+ - Add `// TODO: fill in test data` markers for dynamic values (credentials, IDs)
76
+ - One describe block per AC, one it/test per TC
77
+ - Setup and teardown: explicit, don't assume shared state between tests
78
+
79
+ ---
80
+
81
+ ## Output Format
82
+
83
+ **Test cases:** use `_templates/test-cases.md`
84
+
85
+ **Coverage summary after gen-test-cases:**
86
+ ```
87
+ Story: {name}
88
+ Total TCs: {n}
89
+ Happy path: {n}
90
+ Edge cases: {n}
91
+ Negative: {n}
92
+
93
+ Coverage matrix:
94
+ AC-01 TC-001, TC-002 ✅ Full
95
+ AC-02 TC-003 ⚠️ Partial (no negative test yet)
96
+
97
+ Next: /qc:gen-scripts {name}
98
+ ```
99
+
100
+ **Bug report:** use `_templates/bug-report.md`
101
+
102
+ **Sync report:**
103
+ ```
104
+ QC SYNC — {story}
105
+ Your version: v{old} → Latest: v{new}
106
+
107
+ TCs affected:
108
+ TC-003 ❌ Invalid AC changed — rewrite
109
+ TC-007 ⚠️ Partial Add assertion for new field
110
+ NEW ✅ Needed 2 new TCs for AC-05
111
+
112
+ Effort: Low | Medium | High
113
+ ```
114
+
115
+ ---
116
+
117
+ ## Files You Own
118
+
119
+ - `stories/{story-name}/test/test-cases.md` — your test design
120
+ - `stories/{story-name}/test/.spec-lock` — tracks which story version you're on
121
+ - `stories/{story-name}/test/bugs/` — bug reports
122
+ - `tests/` — automation scripts