ai-core-framework 0.1.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/.claude-plugin/plugin.json +21 -0
- package/.codex-plugin/plugin.json +35 -0
- package/.cursor-plugin/plugin.json +22 -0
- package/README.md +173 -0
- package/bin/ai-core-framework.js +110 -0
- package/core/README.md +162 -0
- package/core/agents/README.md +32 -0
- package/core/agents/business-analyst.md +269 -0
- package/core/agents/developer.md +375 -0
- package/core/agents/qa-tester.md +477 -0
- package/core/agents/scrum-master.md +136 -0
- package/core/agents/tech-lead.md +345 -0
- package/core/config/backlog.schema.json +38 -0
- package/core/config/docs-policy.default.json +37 -0
- package/core/config/release.schema.json +120 -0
- package/core/config/ticket.schema.json +253 -0
- package/core/rules/00-global-rules.md +373 -0
- package/core/rules/01-git-workflow.md +388 -0
- package/core/rules/02-code-quality.md +77 -0
- package/core/rules/03-security.md +78 -0
- package/core/rules/04-documentation.md +72 -0
- package/core/rules/05-testing-mandatory.md +374 -0
- package/core/rules/06-approval-gates.md +388 -0
- package/core/rules/07-definition-of-ready.md +112 -0
- package/core/rules/08-definition-of-done.md +149 -0
- package/core/scripts/ai-core.sh +456 -0
- package/core/scripts/generate-views.sh +210 -0
- package/core/scripts/install-codex-prompts.sh +127 -0
- package/core/scripts/log-user-request.sh +113 -0
- package/core/scripts/setup-project.sh +183 -0
- package/core/scripts/sync-platforms.sh +322 -0
- package/core/scripts/validate-audit-log.sh +73 -0
- package/core/scripts/validate-docs.sh +365 -0
- package/core/scripts/validate-permissions.sh +132 -0
- package/core/scripts/validate-state.sh +611 -0
- package/core/scripts/workflow.sh +513 -0
- package/core/skills/README.md +21 -0
- package/core/skills/ai-core-commands/SKILL.md +86 -0
- package/core/skills/brainstorming/SKILL.md +40 -0
- package/core/skills/development-implement-task/SKILL.md +308 -0
- package/core/skills/executing-ticket/SKILL.md +28 -0
- package/core/skills/git-branch-status/SKILL.md +56 -0
- package/core/skills/git-cleanup-branches/SKILL.md +57 -0
- package/core/skills/git-scan-untracked/SKILL.md +50 -0
- package/core/skills/meta-generate-views/SKILL.md +54 -0
- package/core/skills/meta-request-log/SKILL.md +61 -0
- package/core/skills/meta-sprint-report/SKILL.md +59 -0
- package/core/skills/meta-sync-platforms/SKILL.md +53 -0
- package/core/skills/meta-ticket-health/SKILL.md +61 -0
- package/core/skills/meta-validate-audit-log/SKILL.md +42 -0
- package/core/skills/meta-validate-docs/SKILL.md +58 -0
- package/core/skills/meta-validate-permissions/SKILL.md +53 -0
- package/core/skills/meta-validate-state/SKILL.md +58 -0
- package/core/skills/planning-analyze-requirements/SKILL.md +471 -0
- package/core/skills/planning-backlog-status/SKILL.md +57 -0
- package/core/skills/planning-document-existing-requirements/SKILL.md +246 -0
- package/core/skills/planning-estimate-task/SKILL.md +60 -0
- package/core/skills/planning-groom-ticket/SKILL.md +442 -0
- package/core/skills/planning-mark-ready/SKILL.md +111 -0
- package/core/skills/planning-plan-refactor/SKILL.md +66 -0
- package/core/skills/planning-plan-sprint/SKILL.md +112 -0
- package/core/skills/planning-prioritize-backlog/SKILL.md +62 -0
- package/core/skills/planning-write-plan/SKILL.md +68 -0
- package/core/skills/project-detect-stack/SKILL.md +71 -0
- package/core/skills/project-discover-codebase/SKILL.md +74 -0
- package/core/skills/project-setup-project/SKILL.md +113 -0
- package/core/skills/qa-bug-status/SKILL.md +52 -0
- package/core/skills/qa-report-bug/SKILL.md +518 -0
- package/core/skills/qa-smoke-test/SKILL.md +387 -0
- package/core/skills/qa-triage-bug/SKILL.md +62 -0
- package/core/skills/qa-verify-fix/SKILL.md +446 -0
- package/core/skills/release-hotfix/SKILL.md +117 -0
- package/core/skills/release-release/SKILL.md +123 -0
- package/core/skills/release-rollback/SKILL.md +62 -0
- package/core/skills/review-create-pr/SKILL.md +418 -0
- package/core/skills/review-merge-pr/SKILL.md +425 -0
- package/core/skills/review-techlead-review/SKILL.md +547 -0
- package/core/skills/using-ai-core/SKILL.md +72 -0
- package/core/skills/verification-before-done/SKILL.md +35 -0
- package/core/skills/writing-implementation-plan/SKILL.md +45 -0
- package/core/templates/ci/ai-core-governance.yml +112 -0
- package/core/templates/ci/node-pnpm.yml +35 -0
- package/core/templates/pm/retrospective-template.md +47 -0
- package/core/templates/pm/sprint-plan-template.md +45 -0
- package/core/templates/pr/pull-request-template.md +247 -0
- package/core/templates/project/CODEOWNERS +11 -0
- package/core/templates/project/docs-policy.json +3 -0
- package/core/templates/project/project-config.yaml +137 -0
- package/core/templates/project/project-structure.yaml +76 -0
- package/core/templates/qa/bug-report-template.md +371 -0
- package/core/templates/qa/test-plan-template.md +57 -0
- package/core/templates/release/release-record-template.json +67 -0
- package/core/templates/requirements/PRD-template.md +58 -0
- package/core/templates/requirements/user-story-template.md +381 -0
- package/core/templates/technical/ADR-template.md +46 -0
- package/core/templates/technical/refactor-plan-template.md +84 -0
- package/core/templates/technical/tech-design-template.md +71 -0
- package/core/workflows/bug-lifecycle.md +56 -0
- package/core/workflows/feature-lifecycle.md +347 -0
- package/core/workflows/hotfix-lifecycle.md +65 -0
- package/core/workflows/sprint-lifecycle.md +56 -0
- package/lib/install-codex.js +85 -0
- package/package.json +36 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Project-specific structure map copied by /setup-project into config/project-structure.yaml
|
|
2
|
+
# core remains framework-only. Runtime state and project docs live outside core.
|
|
3
|
+
|
|
4
|
+
state:
|
|
5
|
+
root: "project"
|
|
6
|
+
tickets: "project/tickets"
|
|
7
|
+
backlog: "project/backlog"
|
|
8
|
+
bugs: "project/bugs"
|
|
9
|
+
sprints: "project/sprints"
|
|
10
|
+
releases: "project/releases"
|
|
11
|
+
metrics: "project/metrics"
|
|
12
|
+
views: "project/views"
|
|
13
|
+
test_runs: "project/test-runs"
|
|
14
|
+
incidents: "project/incidents"
|
|
15
|
+
audit_log: "project/audit-log.jsonl"
|
|
16
|
+
|
|
17
|
+
project_docs:
|
|
18
|
+
root: "docs/project"
|
|
19
|
+
product: "docs/project/product"
|
|
20
|
+
planning: "docs/project/planning"
|
|
21
|
+
specs: "docs/project/specs"
|
|
22
|
+
user_stories: "docs/project/user-stories"
|
|
23
|
+
plans: "docs/project/plans"
|
|
24
|
+
requirements: "docs/project/requirements"
|
|
25
|
+
api: "docs/project/api"
|
|
26
|
+
|
|
27
|
+
runtime_docs:
|
|
28
|
+
root: "docs/runtime"
|
|
29
|
+
refactor: "docs/runtime/refactor"
|
|
30
|
+
adr: "docs/runtime/adr"
|
|
31
|
+
technical: "docs/runtime/technical"
|
|
32
|
+
runbooks: "docs/runtime/runbooks"
|
|
33
|
+
qa: "docs/runtime/qa"
|
|
34
|
+
test_runs: "docs/runtime/test-runs"
|
|
35
|
+
verifications: "docs/runtime/verifications"
|
|
36
|
+
incidents: "docs/runtime/incidents"
|
|
37
|
+
|
|
38
|
+
backlog:
|
|
39
|
+
source_of_truth: "project/backlog/backlog.json"
|
|
40
|
+
ticket_details: "project/tickets/TICKET-XXX.json"
|
|
41
|
+
generated_views: "project/views"
|
|
42
|
+
|
|
43
|
+
ticket_docs:
|
|
44
|
+
spec_path_field: "spec_path"
|
|
45
|
+
spec_dir: "docs/project/specs"
|
|
46
|
+
implementation_plan_path_field: "implementation_plan_path"
|
|
47
|
+
plan_dir: "docs/project/plans"
|
|
48
|
+
|
|
49
|
+
refactor:
|
|
50
|
+
plan_dir: "docs/runtime/refactor"
|
|
51
|
+
template: "core/templates/technical/refactor-plan-template.md"
|
|
52
|
+
requires_ticket_breakdown: true
|
|
53
|
+
requires_adr_when_architectural: true
|
|
54
|
+
|
|
55
|
+
release:
|
|
56
|
+
records: "project/releases/vX.Y.Z.json"
|
|
57
|
+
schema: "core/config/release.schema.json"
|
|
58
|
+
template: "core/templates/release/release-record-template.json"
|
|
59
|
+
requires_rollback_verification: true
|
|
60
|
+
requires_post_release_smoke: true
|
|
61
|
+
|
|
62
|
+
scripts:
|
|
63
|
+
canonical: "core/scripts"
|
|
64
|
+
generated_root: "scripts"
|
|
65
|
+
command_runner: "core/scripts/ai-core.sh"
|
|
66
|
+
workflow_handlers: "core/scripts/workflow.sh"
|
|
67
|
+
audit_validator: "core/scripts/validate-audit-log.sh"
|
|
68
|
+
audit_log: "project/audit-log.jsonl"
|
|
69
|
+
|
|
70
|
+
ci:
|
|
71
|
+
governance_template: "core/templates/ci/ai-core-governance.yml"
|
|
72
|
+
app_templates: "core/templates/ci"
|
|
73
|
+
|
|
74
|
+
docs_policy:
|
|
75
|
+
project_override: "config/docs-policy.json"
|
|
76
|
+
default: "core/config/docs-policy.default.json"
|
|
@@ -0,0 +1,371 @@
|
|
|
1
|
+
<!--
|
|
2
|
+
Bug Report Template
|
|
3
|
+
Used by: /report-bug command (QA agent, or any reporter)
|
|
4
|
+
Consumed by: /triage-bug (scrum-master), /implement-task (developer), /verify-fix (QA)
|
|
5
|
+
|
|
6
|
+
Instructions:
|
|
7
|
+
- Fill ALL required sections (marked *)
|
|
8
|
+
- Be specific, not vague
|
|
9
|
+
- Include evidence (screenshots, logs)
|
|
10
|
+
- Redact sensitive data (passwords, real PII)
|
|
11
|
+
- Stay factual (no blame, no emotions)
|
|
12
|
+
-->
|
|
13
|
+
|
|
14
|
+
# BUG-XXX: [Short descriptive title] *
|
|
15
|
+
|
|
16
|
+
<!--
|
|
17
|
+
Title guidelines:
|
|
18
|
+
- Max 80 chars
|
|
19
|
+
- Describe what's broken + condition
|
|
20
|
+
- ❌ "App is broken"
|
|
21
|
+
- ❌ "Login issue"
|
|
22
|
+
- ✅ "Login returns 500 for emails containing + character"
|
|
23
|
+
- ✅ "Checkout crashes when cart has > 100 items"
|
|
24
|
+
-->
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 📋 Metadata *
|
|
29
|
+
|
|
30
|
+
| Field | Value |
|
|
31
|
+
|-------|-------|
|
|
32
|
+
| **Bug ID** | `BUG-XXX` |
|
|
33
|
+
| **Type** | `bug` |
|
|
34
|
+
| **Severity** | `SEV-1` \| `SEV-2` \| `SEV-3` \| `SEV-4` |
|
|
35
|
+
| **Priority** | `MUST` \| `SHOULD` \| `COULD` |
|
|
36
|
+
| **Status** | `NEW` (auto at creation) |
|
|
37
|
+
| **Filed by** | [Agent/person name] |
|
|
38
|
+
| **Filed at** | YYYY-MM-DD HH:MM UTC |
|
|
39
|
+
| **Assignee** | (empty, filled at triage) |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 🎯 Summary *
|
|
44
|
+
|
|
45
|
+
<!-- 1-2 sentences: what's wrong, under what condition -->
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 🔄 Steps to Reproduce *
|
|
50
|
+
|
|
51
|
+
<!--
|
|
52
|
+
Exact, numbered, copy-pasteable steps.
|
|
53
|
+
Assume reader has never used this app.
|
|
54
|
+
-->
|
|
55
|
+
|
|
56
|
+
### Preconditions
|
|
57
|
+
<!-- What state must the system be in? -->
|
|
58
|
+
- [e.g., "User account exists with email containing +"]
|
|
59
|
+
- [e.g., "On staging environment"]
|
|
60
|
+
|
|
61
|
+
### Steps
|
|
62
|
+
1. Go to [URL or screen]
|
|
63
|
+
2. [Specific action]
|
|
64
|
+
3. [Specific action]
|
|
65
|
+
4. [Observe result]
|
|
66
|
+
|
|
67
|
+
### Test data (if applicable)
|
|
68
|
+
```
|
|
69
|
+
Email: user+test@example.com
|
|
70
|
+
Password: TestPass123!
|
|
71
|
+
(Use test account, not real user)
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## ✅ Expected Behavior *
|
|
77
|
+
|
|
78
|
+
<!-- What SHOULD happen -->
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## ❌ Actual Behavior *
|
|
83
|
+
|
|
84
|
+
<!-- What DOES happen (the bug) -->
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## 📸 Evidence *
|
|
89
|
+
|
|
90
|
+
<!-- Screenshots, recordings, logs. At least 1 required. -->
|
|
91
|
+
|
|
92
|
+
### Screenshots / Recordings
|
|
93
|
+
- `evidence/screenshot-1.png`: [brief description]
|
|
94
|
+
- `evidence/recording.mp4`: [brief description]
|
|
95
|
+
|
|
96
|
+
### Error messages (if any)
|
|
97
|
+
```
|
|
98
|
+
[Copy-paste exact error text, redact sensitive data]
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### Server log excerpt (if available)
|
|
102
|
+
```
|
|
103
|
+
[Timestamp] [Level] [Message]
|
|
104
|
+
(Redact tokens, PII. Link to full log file if long.)
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
### Network trace (if relevant)
|
|
108
|
+
- `evidence/network.har`
|
|
109
|
+
- **Request**: POST /api/...
|
|
110
|
+
- **Response**: 500
|
|
111
|
+
|
|
112
|
+
### Browser console errors (if UI bug)
|
|
113
|
+
```
|
|
114
|
+
Uncaught TypeError: ...
|
|
115
|
+
at file.js:42
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
## 🌍 Environment *
|
|
121
|
+
|
|
122
|
+
| Field | Value |
|
|
123
|
+
|-------|-------|
|
|
124
|
+
| **Environment** | `dev` \| `staging` \| `pre-prod` \| `production` |
|
|
125
|
+
| **Build / Version** | `v1.2.0-rc.3` |
|
|
126
|
+
| **Commit** | `abc1234` |
|
|
127
|
+
| **Deployed at** | YYYY-MM-DD HH:MM UTC |
|
|
128
|
+
| **Browser** | Chrome 134.0.6998.88 (or N/A for API) |
|
|
129
|
+
| **OS** | macOS 14.4 |
|
|
130
|
+
| **Device** | Desktop / iPhone 15 / etc. |
|
|
131
|
+
| **Screen size** | 1920x1080 (if responsive issue) |
|
|
132
|
+
| **User agent** | [Full UA string if relevant] |
|
|
133
|
+
| **User role** | admin / standard user / anonymous |
|
|
134
|
+
| **Locale** | en-US / vi-VN / etc. |
|
|
135
|
+
| **Observed at** | YYYY-MM-DD HH:MM UTC |
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## 🔁 Frequency *
|
|
140
|
+
|
|
141
|
+
<!-- How often does it happen? Be precise. -->
|
|
142
|
+
|
|
143
|
+
- [ ] **Always** (10/10 attempts reproducible)
|
|
144
|
+
- [ ] **Usually** (7-9/10 attempts)
|
|
145
|
+
- [ ] **Sometimes** (3-6/10 attempts)
|
|
146
|
+
- [ ] **Rarely** (1-2/10 attempts)
|
|
147
|
+
- [ ] **Once** (1 observation, cannot reliably reproduce)
|
|
148
|
+
|
|
149
|
+
### Attempts
|
|
150
|
+
Attempted: [N] times
|
|
151
|
+
Reproduced: [N] times
|
|
152
|
+
|
|
153
|
+
### Conditions that trigger it
|
|
154
|
+
<!-- Specific state, timing, data -->
|
|
155
|
+
-
|
|
156
|
+
-
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 📊 Impact Analysis *
|
|
161
|
+
|
|
162
|
+
### Users affected
|
|
163
|
+
<!-- Estimate scope -->
|
|
164
|
+
- [ ] All users (100%)
|
|
165
|
+
- [ ] Many users (majority, e.g., all Chrome users)
|
|
166
|
+
- [ ] Specific segment (e.g., "Users with + in email, ~2-5%")
|
|
167
|
+
- [ ] Few users (edge case)
|
|
168
|
+
- [ ] Specific individual(s)
|
|
169
|
+
|
|
170
|
+
### Business impact
|
|
171
|
+
<!-- Revenue, operations, reputation -->
|
|
172
|
+
-
|
|
173
|
+
|
|
174
|
+
### User experience impact
|
|
175
|
+
<!-- From user's perspective -->
|
|
176
|
+
-
|
|
177
|
+
|
|
178
|
+
### Data impact (if any)
|
|
179
|
+
<!-- Data loss, corruption, exposure -->
|
|
180
|
+
-
|
|
181
|
+
|
|
182
|
+
### Security impact (if any)
|
|
183
|
+
<!-- Exposes secrets, permissions, PII -->
|
|
184
|
+
-
|
|
185
|
+
|
|
186
|
+
### Workaround
|
|
187
|
+
<!-- Can users do anything to avoid this? -->
|
|
188
|
+
- [ ] No workaround
|
|
189
|
+
- [ ] Difficult workaround: [describe]
|
|
190
|
+
- [ ] Easy workaround: [describe]
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
## 🎯 Severity Justification *
|
|
195
|
+
|
|
196
|
+
<!--
|
|
197
|
+
Why this severity level?
|
|
198
|
+
Reference severity matrix in rules/03-security.md or commands/qa/report-bug.md
|
|
199
|
+
-->
|
|
200
|
+
|
|
201
|
+
**SEV-X** because:
|
|
202
|
+
- Users affected: [count/percentage]
|
|
203
|
+
- Business impact: [describe]
|
|
204
|
+
- Workaround: [exists/absent]
|
|
205
|
+
- Data/security: [implications]
|
|
206
|
+
|
|
207
|
+
**Not SEV-(X-1)** because:
|
|
208
|
+
- [why not more severe]
|
|
209
|
+
|
|
210
|
+
**Not SEV-(X+1)** because:
|
|
211
|
+
- [why not less severe]
|
|
212
|
+
|
|
213
|
+
---
|
|
214
|
+
|
|
215
|
+
## 💡 Hypothesis (optional)
|
|
216
|
+
|
|
217
|
+
<!--
|
|
218
|
+
Your best guess about cause, but labeled as hypothesis.
|
|
219
|
+
Don't put this as fact - devs will investigate.
|
|
220
|
+
-->
|
|
221
|
+
|
|
222
|
+
**Hypothesis (not verified)**:
|
|
223
|
+
|
|
224
|
+
Looking at [code/logs/pattern], might be caused by [explanation].
|
|
225
|
+
|
|
226
|
+
Suggested investigation:
|
|
227
|
+
- [ ] Check [specific area]
|
|
228
|
+
- [ ] Test [specific scenario]
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 🔗 Related
|
|
233
|
+
|
|
234
|
+
### Feature ticket
|
|
235
|
+
<!-- If this bug is in a recently released feature -->
|
|
236
|
+
- TICKET-XXX: [title]
|
|
237
|
+
|
|
238
|
+
### Similar past bugs
|
|
239
|
+
<!-- Search bug history -->
|
|
240
|
+
- BUG-YYY: [title] (resolved, might be recurrence)
|
|
241
|
+
- BUG-ZZZ: [title] (similar pattern)
|
|
242
|
+
|
|
243
|
+
### Affected components
|
|
244
|
+
<!-- Code areas -->
|
|
245
|
+
- `src/handlers/login.ts`
|
|
246
|
+
- `src/auth/validators.ts`
|
|
247
|
+
|
|
248
|
+
### Relevant ADRs
|
|
249
|
+
<!-- Architecture decisions -->
|
|
250
|
+
- ADR-0003: [title]
|
|
251
|
+
|
|
252
|
+
### External
|
|
253
|
+
<!-- External tracking IDs -->
|
|
254
|
+
- Sentry: https://sentry.io/issues/12345
|
|
255
|
+
- Support ticket: #1234 (customer XYZ reported)
|
|
256
|
+
- Incident: INC-2026-042
|
|
257
|
+
|
|
258
|
+
---
|
|
259
|
+
|
|
260
|
+
## 🔎 Investigation Notes
|
|
261
|
+
|
|
262
|
+
<!--
|
|
263
|
+
Added during triage and investigation.
|
|
264
|
+
Initial filer may leave empty.
|
|
265
|
+
-->
|
|
266
|
+
|
|
267
|
+
### Triaged by
|
|
268
|
+
<!-- Filled by /triage-bug -->
|
|
269
|
+
- Triager: [name]
|
|
270
|
+
- Triaged at: YYYY-MM-DD
|
|
271
|
+
- Severity confirmed: [final severity]
|
|
272
|
+
- Assigned to: [developer]
|
|
273
|
+
|
|
274
|
+
### Developer investigation
|
|
275
|
+
<!-- Filled during /implement-task -->
|
|
276
|
+
- Root cause: [explanation]
|
|
277
|
+
- Fix approach: [brief]
|
|
278
|
+
|
|
279
|
+
### Fix verification
|
|
280
|
+
<!-- Filled by /verify-fix -->
|
|
281
|
+
- PR: #XXX
|
|
282
|
+
- Deployed: YYYY-MM-DD
|
|
283
|
+
- Verified in: [environment]
|
|
284
|
+
- Regression test: [path/to/test]
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 🎯 Acceptance Criteria for Fix
|
|
289
|
+
|
|
290
|
+
<!--
|
|
291
|
+
What does "fixed" mean for this bug?
|
|
292
|
+
These become test cases.
|
|
293
|
+
-->
|
|
294
|
+
|
|
295
|
+
### AC 1: Original bug fixed *
|
|
296
|
+
```gherkin
|
|
297
|
+
Given [original conditions]
|
|
298
|
+
When [original trigger]
|
|
299
|
+
Then [correct behavior - not the bug]
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
### AC 2: Regression - no new bug introduced *
|
|
303
|
+
```gherkin
|
|
304
|
+
Given [related feature still works]
|
|
305
|
+
When [test related flow]
|
|
306
|
+
Then [still works correctly]
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
### AC 3: Test coverage
|
|
310
|
+
```gherkin
|
|
311
|
+
Given [code deployed with fix]
|
|
312
|
+
When [running test suite]
|
|
313
|
+
Then [regression test for BUG-XXX exists and passes]
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
---
|
|
317
|
+
|
|
318
|
+
## 📝 Additional Context
|
|
319
|
+
|
|
320
|
+
<!-- Anything else not captured above -->
|
|
321
|
+
|
|
322
|
+
### User quotes (if from support)
|
|
323
|
+
> [Exact quote from user/customer]
|
|
324
|
+
|
|
325
|
+
### Time-sensitivity
|
|
326
|
+
<!-- Any deadlines? -->
|
|
327
|
+
-
|
|
328
|
+
|
|
329
|
+
### Related recent changes
|
|
330
|
+
<!-- Deploys, config changes that might correlate -->
|
|
331
|
+
-
|
|
332
|
+
|
|
333
|
+
---
|
|
334
|
+
|
|
335
|
+
## 🚨 Escalation Log (SEV-1 / SEV-2)
|
|
336
|
+
|
|
337
|
+
<!-- Filled for high-severity bugs -->
|
|
338
|
+
|
|
339
|
+
- [ ] **Tech Lead notified**: [name, time]
|
|
340
|
+
- [ ] **Scrum Master notified**: [name, time]
|
|
341
|
+
- [ ] **Engineering Manager** (if > 1h unresolved): [name, time]
|
|
342
|
+
- [ ] **Executive team** (if > 2h SEV-1): [name, time]
|
|
343
|
+
- [ ] **Customer communication** (if user-facing): [who, what, when]
|
|
344
|
+
|
|
345
|
+
---
|
|
346
|
+
|
|
347
|
+
## 🔄 Status History
|
|
348
|
+
|
|
349
|
+
<!-- Auto-populated -->
|
|
350
|
+
|
|
351
|
+
| Date | Status | By | Note |
|
|
352
|
+
|------|--------|----|----|
|
|
353
|
+
| YYYY-MM-DD | NEW | [agent] | Initial filing |
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## 🤝 Handoff
|
|
358
|
+
|
|
359
|
+
**Current assignee**: [to be filled at triage]
|
|
360
|
+
**Next step**: `/triage-bug BUG-XXX`
|
|
361
|
+
**Expected next action**: Severity confirmation + sprint assignment
|
|
362
|
+
|
|
363
|
+
---
|
|
364
|
+
|
|
365
|
+
<!--
|
|
366
|
+
DO NOT EDIT BELOW - auto-populated
|
|
367
|
+
-->
|
|
368
|
+
|
|
369
|
+
<!-- TEMPLATE_VERSION: 1.0.0 -->
|
|
370
|
+
<!-- SCHEMA: core/config/bug.schema.json -->
|
|
371
|
+
<!-- FILED_BY_AGENT: [agent-name] -->
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
# Test Plan Template
|
|
2
|
+
|
|
3
|
+
## Metadata
|
|
4
|
+
|
|
5
|
+
- Ticket ID:
|
|
6
|
+
- Feature:
|
|
7
|
+
- QA owner:
|
|
8
|
+
- Environment:
|
|
9
|
+
- Build/version:
|
|
10
|
+
- Date:
|
|
11
|
+
|
|
12
|
+
## Scope
|
|
13
|
+
|
|
14
|
+
### In Scope
|
|
15
|
+
|
|
16
|
+
-
|
|
17
|
+
|
|
18
|
+
### Out of Scope
|
|
19
|
+
|
|
20
|
+
-
|
|
21
|
+
|
|
22
|
+
## Acceptance Criteria Coverage
|
|
23
|
+
|
|
24
|
+
| AC Scenario | Test Type | Steps | Expected Result | Status |
|
|
25
|
+
|-------------|-----------|-------|-----------------|--------|
|
|
26
|
+
| | | | | |
|
|
27
|
+
|
|
28
|
+
## Regression Areas
|
|
29
|
+
|
|
30
|
+
-
|
|
31
|
+
|
|
32
|
+
## Test Data
|
|
33
|
+
|
|
34
|
+
| Data | Source | Reset needed |
|
|
35
|
+
|------|--------|--------------|
|
|
36
|
+
| | | |
|
|
37
|
+
|
|
38
|
+
## Non-Functional Checks
|
|
39
|
+
|
|
40
|
+
- Performance:
|
|
41
|
+
- Security:
|
|
42
|
+
- Accessibility:
|
|
43
|
+
- Browser/device:
|
|
44
|
+
- Observability:
|
|
45
|
+
|
|
46
|
+
## Risks and Blockers
|
|
47
|
+
|
|
48
|
+
| Risk/Blocker | Impact | Owner | Resolution |
|
|
49
|
+
|--------------|--------|-------|------------|
|
|
50
|
+
| | | | |
|
|
51
|
+
|
|
52
|
+
## Exit Criteria
|
|
53
|
+
|
|
54
|
+
- All AC scenarios pass.
|
|
55
|
+
- No critical/high regressions.
|
|
56
|
+
- Bugs filed with evidence.
|
|
57
|
+
- QA report saved.
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "v0.0.0",
|
|
3
|
+
"status": "PLANNED",
|
|
4
|
+
"created_at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
5
|
+
"created_by": "scrum-master-agent",
|
|
6
|
+
"released_at": null,
|
|
7
|
+
"source_branch": "release/v0.0.0",
|
|
8
|
+
"tag": null,
|
|
9
|
+
"scope": {
|
|
10
|
+
"tickets": [],
|
|
11
|
+
"bugs": [],
|
|
12
|
+
"excluded_tickets": []
|
|
13
|
+
},
|
|
14
|
+
"approvals": {
|
|
15
|
+
"tech_lead": {
|
|
16
|
+
"approved": false,
|
|
17
|
+
"by": "",
|
|
18
|
+
"at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
19
|
+
"notes": ""
|
|
20
|
+
},
|
|
21
|
+
"qa": {
|
|
22
|
+
"approved": false,
|
|
23
|
+
"by": "",
|
|
24
|
+
"at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
25
|
+
"notes": ""
|
|
26
|
+
},
|
|
27
|
+
"release_owner": {
|
|
28
|
+
"approved": false,
|
|
29
|
+
"by": "",
|
|
30
|
+
"at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
31
|
+
"notes": ""
|
|
32
|
+
},
|
|
33
|
+
"security": {
|
|
34
|
+
"approved": false,
|
|
35
|
+
"by": "",
|
|
36
|
+
"at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
37
|
+
"notes": ""
|
|
38
|
+
},
|
|
39
|
+
"known_issues": {
|
|
40
|
+
"approved": false,
|
|
41
|
+
"by": "",
|
|
42
|
+
"at": "YYYY-MM-DDTHH:MM:SSZ",
|
|
43
|
+
"notes": ""
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
"rollback_plan": {
|
|
47
|
+
"owner": "",
|
|
48
|
+
"command_or_steps": "",
|
|
49
|
+
"data_impact": "",
|
|
50
|
+
"time_limit_minutes": 30,
|
|
51
|
+
"verified": false
|
|
52
|
+
},
|
|
53
|
+
"qa": {
|
|
54
|
+
"evidence_path": "",
|
|
55
|
+
"post_release_smoke_required": true,
|
|
56
|
+
"post_release_smoke_path": null,
|
|
57
|
+
"post_release_smoke_passed": false
|
|
58
|
+
},
|
|
59
|
+
"security": {
|
|
60
|
+
"dependency_audit_passed": false,
|
|
61
|
+
"sast_passed": false,
|
|
62
|
+
"scan_url": null
|
|
63
|
+
},
|
|
64
|
+
"known_issues": [],
|
|
65
|
+
"changelog_path": "CHANGELOG.md",
|
|
66
|
+
"release_notes_path": null
|
|
67
|
+
}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# Product Requirements Document Template
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
- Product/area:
|
|
6
|
+
- Author:
|
|
7
|
+
- Date:
|
|
8
|
+
- Status:
|
|
9
|
+
|
|
10
|
+
## Problem Statement
|
|
11
|
+
|
|
12
|
+
Describe the user or business problem.
|
|
13
|
+
|
|
14
|
+
## Goals
|
|
15
|
+
|
|
16
|
+
-
|
|
17
|
+
|
|
18
|
+
## Non-Goals
|
|
19
|
+
|
|
20
|
+
-
|
|
21
|
+
|
|
22
|
+
## Users and Personas
|
|
23
|
+
|
|
24
|
+
| Persona | Need | Pain point |
|
|
25
|
+
|---------|------|------------|
|
|
26
|
+
| | | |
|
|
27
|
+
|
|
28
|
+
## Requirements
|
|
29
|
+
|
|
30
|
+
| ID | Requirement | Priority | Acceptance Signal |
|
|
31
|
+
|----|-------------|----------|-------------------|
|
|
32
|
+
| | | | |
|
|
33
|
+
|
|
34
|
+
## User Stories
|
|
35
|
+
|
|
36
|
+
- As a ..., I want ..., so that ...
|
|
37
|
+
|
|
38
|
+
## Success Metrics
|
|
39
|
+
|
|
40
|
+
| Metric | Baseline | Target |
|
|
41
|
+
|--------|----------|--------|
|
|
42
|
+
| | | |
|
|
43
|
+
|
|
44
|
+
## Risks and Assumptions
|
|
45
|
+
|
|
46
|
+
| Type | Description | Owner |
|
|
47
|
+
|------|-------------|-------|
|
|
48
|
+
| | | |
|
|
49
|
+
|
|
50
|
+
## Open Questions
|
|
51
|
+
|
|
52
|
+
-
|
|
53
|
+
|
|
54
|
+
## Links
|
|
55
|
+
|
|
56
|
+
- Designs:
|
|
57
|
+
- Analytics:
|
|
58
|
+
- Support/customer evidence:
|