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.
Files changed (103) hide show
  1. package/.claude-plugin/plugin.json +21 -0
  2. package/.codex-plugin/plugin.json +35 -0
  3. package/.cursor-plugin/plugin.json +22 -0
  4. package/README.md +173 -0
  5. package/bin/ai-core-framework.js +110 -0
  6. package/core/README.md +162 -0
  7. package/core/agents/README.md +32 -0
  8. package/core/agents/business-analyst.md +269 -0
  9. package/core/agents/developer.md +375 -0
  10. package/core/agents/qa-tester.md +477 -0
  11. package/core/agents/scrum-master.md +136 -0
  12. package/core/agents/tech-lead.md +345 -0
  13. package/core/config/backlog.schema.json +38 -0
  14. package/core/config/docs-policy.default.json +37 -0
  15. package/core/config/release.schema.json +120 -0
  16. package/core/config/ticket.schema.json +253 -0
  17. package/core/rules/00-global-rules.md +373 -0
  18. package/core/rules/01-git-workflow.md +388 -0
  19. package/core/rules/02-code-quality.md +77 -0
  20. package/core/rules/03-security.md +78 -0
  21. package/core/rules/04-documentation.md +72 -0
  22. package/core/rules/05-testing-mandatory.md +374 -0
  23. package/core/rules/06-approval-gates.md +388 -0
  24. package/core/rules/07-definition-of-ready.md +112 -0
  25. package/core/rules/08-definition-of-done.md +149 -0
  26. package/core/scripts/ai-core.sh +456 -0
  27. package/core/scripts/generate-views.sh +210 -0
  28. package/core/scripts/install-codex-prompts.sh +127 -0
  29. package/core/scripts/log-user-request.sh +113 -0
  30. package/core/scripts/setup-project.sh +183 -0
  31. package/core/scripts/sync-platforms.sh +322 -0
  32. package/core/scripts/validate-audit-log.sh +73 -0
  33. package/core/scripts/validate-docs.sh +365 -0
  34. package/core/scripts/validate-permissions.sh +132 -0
  35. package/core/scripts/validate-state.sh +611 -0
  36. package/core/scripts/workflow.sh +513 -0
  37. package/core/skills/README.md +21 -0
  38. package/core/skills/ai-core-commands/SKILL.md +86 -0
  39. package/core/skills/brainstorming/SKILL.md +40 -0
  40. package/core/skills/development-implement-task/SKILL.md +308 -0
  41. package/core/skills/executing-ticket/SKILL.md +28 -0
  42. package/core/skills/git-branch-status/SKILL.md +56 -0
  43. package/core/skills/git-cleanup-branches/SKILL.md +57 -0
  44. package/core/skills/git-scan-untracked/SKILL.md +50 -0
  45. package/core/skills/meta-generate-views/SKILL.md +54 -0
  46. package/core/skills/meta-request-log/SKILL.md +61 -0
  47. package/core/skills/meta-sprint-report/SKILL.md +59 -0
  48. package/core/skills/meta-sync-platforms/SKILL.md +53 -0
  49. package/core/skills/meta-ticket-health/SKILL.md +61 -0
  50. package/core/skills/meta-validate-audit-log/SKILL.md +42 -0
  51. package/core/skills/meta-validate-docs/SKILL.md +58 -0
  52. package/core/skills/meta-validate-permissions/SKILL.md +53 -0
  53. package/core/skills/meta-validate-state/SKILL.md +58 -0
  54. package/core/skills/planning-analyze-requirements/SKILL.md +471 -0
  55. package/core/skills/planning-backlog-status/SKILL.md +57 -0
  56. package/core/skills/planning-document-existing-requirements/SKILL.md +246 -0
  57. package/core/skills/planning-estimate-task/SKILL.md +60 -0
  58. package/core/skills/planning-groom-ticket/SKILL.md +442 -0
  59. package/core/skills/planning-mark-ready/SKILL.md +111 -0
  60. package/core/skills/planning-plan-refactor/SKILL.md +66 -0
  61. package/core/skills/planning-plan-sprint/SKILL.md +112 -0
  62. package/core/skills/planning-prioritize-backlog/SKILL.md +62 -0
  63. package/core/skills/planning-write-plan/SKILL.md +68 -0
  64. package/core/skills/project-detect-stack/SKILL.md +71 -0
  65. package/core/skills/project-discover-codebase/SKILL.md +74 -0
  66. package/core/skills/project-setup-project/SKILL.md +113 -0
  67. package/core/skills/qa-bug-status/SKILL.md +52 -0
  68. package/core/skills/qa-report-bug/SKILL.md +518 -0
  69. package/core/skills/qa-smoke-test/SKILL.md +387 -0
  70. package/core/skills/qa-triage-bug/SKILL.md +62 -0
  71. package/core/skills/qa-verify-fix/SKILL.md +446 -0
  72. package/core/skills/release-hotfix/SKILL.md +117 -0
  73. package/core/skills/release-release/SKILL.md +123 -0
  74. package/core/skills/release-rollback/SKILL.md +62 -0
  75. package/core/skills/review-create-pr/SKILL.md +418 -0
  76. package/core/skills/review-merge-pr/SKILL.md +425 -0
  77. package/core/skills/review-techlead-review/SKILL.md +547 -0
  78. package/core/skills/using-ai-core/SKILL.md +72 -0
  79. package/core/skills/verification-before-done/SKILL.md +35 -0
  80. package/core/skills/writing-implementation-plan/SKILL.md +45 -0
  81. package/core/templates/ci/ai-core-governance.yml +112 -0
  82. package/core/templates/ci/node-pnpm.yml +35 -0
  83. package/core/templates/pm/retrospective-template.md +47 -0
  84. package/core/templates/pm/sprint-plan-template.md +45 -0
  85. package/core/templates/pr/pull-request-template.md +247 -0
  86. package/core/templates/project/CODEOWNERS +11 -0
  87. package/core/templates/project/docs-policy.json +3 -0
  88. package/core/templates/project/project-config.yaml +137 -0
  89. package/core/templates/project/project-structure.yaml +76 -0
  90. package/core/templates/qa/bug-report-template.md +371 -0
  91. package/core/templates/qa/test-plan-template.md +57 -0
  92. package/core/templates/release/release-record-template.json +67 -0
  93. package/core/templates/requirements/PRD-template.md +58 -0
  94. package/core/templates/requirements/user-story-template.md +381 -0
  95. package/core/templates/technical/ADR-template.md +46 -0
  96. package/core/templates/technical/refactor-plan-template.md +84 -0
  97. package/core/templates/technical/tech-design-template.md +71 -0
  98. package/core/workflows/bug-lifecycle.md +56 -0
  99. package/core/workflows/feature-lifecycle.md +347 -0
  100. package/core/workflows/hotfix-lifecycle.md +65 -0
  101. package/core/workflows/sprint-lifecycle.md +56 -0
  102. package/lib/install-codex.js +85 -0
  103. 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: