@agile-vibe-coding/avc 0.2.3 → 0.3.2
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/README.md +475 -3
- package/cli/agents/agent-selector.md +23 -0
- package/cli/agents/code-implementer.md +117 -0
- package/cli/agents/code-validator.md +80 -0
- package/cli/agents/context-reviewer-epic.md +101 -0
- package/cli/agents/context-reviewer-story.md +92 -0
- package/cli/agents/context-writer-epic.md +145 -0
- package/cli/agents/context-writer-story.md +111 -0
- package/cli/agents/doc-writer-epic.md +42 -0
- package/cli/agents/doc-writer-story.md +43 -0
- package/cli/agents/duplicate-detector.md +110 -0
- package/cli/agents/epic-story-decomposer.md +318 -39
- package/cli/agents/mission-scope-generator.md +68 -4
- package/cli/agents/mission-scope-validator.md +40 -6
- package/cli/agents/project-context-extractor.md +21 -6
- package/cli/agents/scaffolding-generator.md +99 -0
- package/cli/agents/seed-validator.md +71 -0
- package/cli/agents/story-scope-reviewer.md +147 -0
- package/cli/agents/story-splitter.md +83 -0
- package/cli/agents/validator-documentation.json +31 -0
- package/cli/agents/validator-documentation.md +3 -1
- package/cli/api-reference-tool.js +368 -0
- package/cli/checks/catalog.json +76 -0
- package/cli/checks/code/quality.json +26 -0
- package/cli/checks/code/testing.json +14 -0
- package/cli/checks/code/traceability.json +26 -0
- package/cli/checks/cross-refs/epic.json +171 -0
- package/cli/checks/cross-refs/story.json +149 -0
- package/cli/checks/epic/api.json +114 -0
- package/cli/checks/epic/backend.json +126 -0
- package/cli/checks/epic/cloud.json +126 -0
- package/cli/checks/epic/data.json +102 -0
- package/cli/checks/epic/database.json +114 -0
- package/cli/checks/epic/developer.json +182 -0
- package/cli/checks/epic/devops.json +174 -0
- package/cli/checks/epic/frontend.json +162 -0
- package/cli/checks/epic/mobile.json +102 -0
- package/cli/checks/epic/qa.json +90 -0
- package/cli/checks/epic/security.json +184 -0
- package/cli/checks/epic/solution-architect.json +192 -0
- package/cli/checks/epic/test-architect.json +90 -0
- package/cli/checks/epic/ui.json +102 -0
- package/cli/checks/epic/ux.json +90 -0
- package/cli/checks/fixes/epic-fix-template.md +10 -0
- package/cli/checks/fixes/story-fix-template.md +10 -0
- package/cli/checks/story/api.json +186 -0
- package/cli/checks/story/backend.json +102 -0
- package/cli/checks/story/cloud.json +102 -0
- package/cli/checks/story/data.json +210 -0
- package/cli/checks/story/database.json +102 -0
- package/cli/checks/story/developer.json +168 -0
- package/cli/checks/story/devops.json +102 -0
- package/cli/checks/story/frontend.json +174 -0
- package/cli/checks/story/mobile.json +102 -0
- package/cli/checks/story/qa.json +210 -0
- package/cli/checks/story/security.json +198 -0
- package/cli/checks/story/solution-architect.json +230 -0
- package/cli/checks/story/test-architect.json +210 -0
- package/cli/checks/story/ui.json +102 -0
- package/cli/checks/story/ux.json +102 -0
- package/cli/coding-order.js +401 -0
- package/cli/dependency-checker.js +72 -0
- package/cli/epic-story-validator.js +284 -799
- package/cli/index.js +0 -0
- package/cli/init-model-config.js +17 -10
- package/cli/init.js +514 -92
- package/cli/kanban-server-manager.js +1 -2
- package/cli/llm-claude.js +98 -31
- package/cli/llm-gemini.js +29 -5
- package/cli/llm-local.js +493 -0
- package/cli/llm-openai.js +262 -41
- package/cli/llm-provider.js +147 -8
- package/cli/llm-token-limits.js +113 -4
- package/cli/llm-verifier.js +209 -1
- package/cli/llm-xiaomi.js +143 -0
- package/cli/message-constants.js +3 -12
- package/cli/messaging-api.js +6 -12
- package/cli/micro-check-fixer.js +335 -0
- package/cli/micro-check-runner.js +449 -0
- package/cli/micro-check-scorer.js +148 -0
- package/cli/micro-check-validator.js +538 -0
- package/cli/model-pricing.js +23 -0
- package/cli/model-selector.js +3 -2
- package/cli/prompt-logger.js +57 -0
- package/cli/repl-ink.js +106 -346
- package/cli/repl-old.js +1 -2
- package/cli/seed-processor.js +194 -24
- package/cli/sprint-planning-processor.js +2638 -289
- package/cli/template-processor.js +50 -3
- package/cli/token-tracker.js +50 -23
- package/cli/tools/generate-story-validators.js +1 -1
- package/cli/validation-router.js +70 -8
- package/cli/worktree-runner.js +654 -0
- package/kanban/client/dist/assets/index-D_KC5EQT.css +1 -0
- package/kanban/client/dist/assets/index-DjY5zqW7.js +351 -0
- package/kanban/client/dist/index.html +2 -2
- package/kanban/client/src/App.jsx +43 -14
- package/kanban/client/src/components/ceremony/AskArchPopup.jsx +7 -3
- package/kanban/client/src/components/ceremony/AskModelPopup.jsx +23 -10
- package/kanban/client/src/components/ceremony/CeremonyWorkflowModal.jsx +320 -133
- package/kanban/client/src/components/ceremony/ProviderSwitcherButton.jsx +290 -0
- package/kanban/client/src/components/ceremony/SponsorCallModal.jsx +80 -13
- package/kanban/client/src/components/ceremony/SprintPlanningModal.jsx +156 -22
- package/kanban/client/src/components/ceremony/steps/ArchitectureStep.jsx +11 -11
- package/kanban/client/src/components/ceremony/steps/CompleteStep.jsx +3 -21
- package/kanban/client/src/components/ceremony/steps/ReviewAnswersStep.jsx +214 -10
- package/kanban/client/src/components/ceremony/steps/RunningStep.jsx +23 -2
- package/kanban/client/src/components/kanban/CardDetailModal.jsx +97 -10
- package/kanban/client/src/components/kanban/GroupingSelector.jsx +7 -1
- package/kanban/client/src/components/kanban/KanbanCard.jsx +23 -14
- package/kanban/client/src/components/kanban/RefineWorkItemPopup.jsx +9 -14
- package/kanban/client/src/components/kanban/RunButton.jsx +162 -0
- package/kanban/client/src/components/kanban/SeedButton.jsx +176 -0
- package/kanban/client/src/components/settings/AgentsTab.jsx +103 -75
- package/kanban/client/src/components/settings/ApiKeysTab.jsx +31 -2
- package/kanban/client/src/components/settings/CeremonyModelsTab.jsx +9 -2
- package/kanban/client/src/components/settings/CheckEditorPopup.jsx +507 -0
- package/kanban/client/src/components/settings/CostThresholdsTab.jsx +3 -2
- package/kanban/client/src/components/settings/ModelPricingTab.jsx +72 -7
- package/kanban/client/src/components/settings/OpenAIAuthSection.jsx +412 -0
- package/kanban/client/src/components/settings/SettingsModal.jsx +4 -4
- package/kanban/client/src/components/stats/CostModal.jsx +34 -3
- package/kanban/client/src/hooks/useGrouping.js +59 -0
- package/kanban/client/src/lib/api.js +118 -4
- package/kanban/client/src/lib/status-grouping.js +10 -0
- package/kanban/client/src/store/kanbanStore.js +8 -0
- package/kanban/server/index.js +23 -2
- package/kanban/server/routes/ceremony.js +153 -4
- package/kanban/server/routes/costs.js +9 -3
- package/kanban/server/routes/openai-oauth.js +366 -0
- package/kanban/server/routes/settings.js +447 -14
- package/kanban/server/routes/websocket.js +7 -2
- package/kanban/server/routes/work-items.js +141 -1
- package/kanban/server/services/CeremonyService.js +275 -24
- package/kanban/server/services/TaskRunnerService.js +261 -0
- package/kanban/server/workers/run-task-worker.js +121 -0
- package/kanban/server/workers/seed-worker.js +94 -0
- package/kanban/server/workers/sponsor-call-worker.js +14 -6
- package/kanban/server/workers/sprint-planning-worker.js +94 -12
- package/package.json +2 -3
- package/cli/agents/solver-epic-api.json +0 -15
- package/cli/agents/solver-epic-api.md +0 -39
- package/cli/agents/solver-epic-backend.json +0 -15
- package/cli/agents/solver-epic-backend.md +0 -39
- package/cli/agents/solver-epic-cloud.json +0 -15
- package/cli/agents/solver-epic-cloud.md +0 -39
- package/cli/agents/solver-epic-data.json +0 -15
- package/cli/agents/solver-epic-data.md +0 -39
- package/cli/agents/solver-epic-database.json +0 -15
- package/cli/agents/solver-epic-database.md +0 -39
- package/cli/agents/solver-epic-developer.json +0 -15
- package/cli/agents/solver-epic-developer.md +0 -39
- package/cli/agents/solver-epic-devops.json +0 -15
- package/cli/agents/solver-epic-devops.md +0 -39
- package/cli/agents/solver-epic-frontend.json +0 -15
- package/cli/agents/solver-epic-frontend.md +0 -39
- package/cli/agents/solver-epic-mobile.json +0 -15
- package/cli/agents/solver-epic-mobile.md +0 -39
- package/cli/agents/solver-epic-qa.json +0 -15
- package/cli/agents/solver-epic-qa.md +0 -39
- package/cli/agents/solver-epic-security.json +0 -15
- package/cli/agents/solver-epic-security.md +0 -39
- package/cli/agents/solver-epic-solution-architect.json +0 -15
- package/cli/agents/solver-epic-solution-architect.md +0 -39
- package/cli/agents/solver-epic-test-architect.json +0 -15
- package/cli/agents/solver-epic-test-architect.md +0 -39
- package/cli/agents/solver-epic-ui.json +0 -15
- package/cli/agents/solver-epic-ui.md +0 -39
- package/cli/agents/solver-epic-ux.json +0 -15
- package/cli/agents/solver-epic-ux.md +0 -39
- package/cli/agents/solver-story-api.json +0 -15
- package/cli/agents/solver-story-api.md +0 -39
- package/cli/agents/solver-story-backend.json +0 -15
- package/cli/agents/solver-story-backend.md +0 -39
- package/cli/agents/solver-story-cloud.json +0 -15
- package/cli/agents/solver-story-cloud.md +0 -39
- package/cli/agents/solver-story-data.json +0 -15
- package/cli/agents/solver-story-data.md +0 -39
- package/cli/agents/solver-story-database.json +0 -15
- package/cli/agents/solver-story-database.md +0 -39
- package/cli/agents/solver-story-developer.json +0 -15
- package/cli/agents/solver-story-developer.md +0 -39
- package/cli/agents/solver-story-devops.json +0 -15
- package/cli/agents/solver-story-devops.md +0 -39
- package/cli/agents/solver-story-frontend.json +0 -15
- package/cli/agents/solver-story-frontend.md +0 -39
- package/cli/agents/solver-story-mobile.json +0 -15
- package/cli/agents/solver-story-mobile.md +0 -39
- package/cli/agents/solver-story-qa.json +0 -15
- package/cli/agents/solver-story-qa.md +0 -39
- package/cli/agents/solver-story-security.json +0 -15
- package/cli/agents/solver-story-security.md +0 -39
- package/cli/agents/solver-story-solution-architect.json +0 -15
- package/cli/agents/solver-story-solution-architect.md +0 -39
- package/cli/agents/solver-story-test-architect.json +0 -15
- package/cli/agents/solver-story-test-architect.md +0 -39
- package/cli/agents/solver-story-ui.json +0 -15
- package/cli/agents/solver-story-ui.md +0 -39
- package/cli/agents/solver-story-ux.json +0 -15
- package/cli/agents/solver-story-ux.md +0 -39
- package/cli/agents/validator-epic-api.json +0 -93
- package/cli/agents/validator-epic-api.md +0 -137
- package/cli/agents/validator-epic-backend.json +0 -93
- package/cli/agents/validator-epic-backend.md +0 -130
- package/cli/agents/validator-epic-cloud.json +0 -93
- package/cli/agents/validator-epic-cloud.md +0 -137
- package/cli/agents/validator-epic-data.json +0 -93
- package/cli/agents/validator-epic-data.md +0 -130
- package/cli/agents/validator-epic-database.json +0 -93
- package/cli/agents/validator-epic-database.md +0 -137
- package/cli/agents/validator-epic-developer.json +0 -74
- package/cli/agents/validator-epic-developer.md +0 -153
- package/cli/agents/validator-epic-devops.json +0 -74
- package/cli/agents/validator-epic-devops.md +0 -153
- package/cli/agents/validator-epic-frontend.json +0 -74
- package/cli/agents/validator-epic-frontend.md +0 -153
- package/cli/agents/validator-epic-mobile.json +0 -93
- package/cli/agents/validator-epic-mobile.md +0 -130
- package/cli/agents/validator-epic-qa.json +0 -93
- package/cli/agents/validator-epic-qa.md +0 -130
- package/cli/agents/validator-epic-security.json +0 -74
- package/cli/agents/validator-epic-security.md +0 -154
- package/cli/agents/validator-epic-solution-architect.json +0 -74
- package/cli/agents/validator-epic-solution-architect.md +0 -156
- package/cli/agents/validator-epic-test-architect.json +0 -93
- package/cli/agents/validator-epic-test-architect.md +0 -130
- package/cli/agents/validator-epic-ui.json +0 -93
- package/cli/agents/validator-epic-ui.md +0 -130
- package/cli/agents/validator-epic-ux.json +0 -93
- package/cli/agents/validator-epic-ux.md +0 -130
- package/cli/agents/validator-story-api.json +0 -104
- package/cli/agents/validator-story-api.md +0 -152
- package/cli/agents/validator-story-backend.json +0 -104
- package/cli/agents/validator-story-backend.md +0 -152
- package/cli/agents/validator-story-cloud.json +0 -104
- package/cli/agents/validator-story-cloud.md +0 -152
- package/cli/agents/validator-story-data.json +0 -104
- package/cli/agents/validator-story-data.md +0 -152
- package/cli/agents/validator-story-database.json +0 -104
- package/cli/agents/validator-story-database.md +0 -152
- package/cli/agents/validator-story-developer.json +0 -104
- package/cli/agents/validator-story-developer.md +0 -152
- package/cli/agents/validator-story-devops.json +0 -104
- package/cli/agents/validator-story-devops.md +0 -152
- package/cli/agents/validator-story-frontend.json +0 -104
- package/cli/agents/validator-story-frontend.md +0 -152
- package/cli/agents/validator-story-mobile.json +0 -104
- package/cli/agents/validator-story-mobile.md +0 -152
- package/cli/agents/validator-story-qa.json +0 -104
- package/cli/agents/validator-story-qa.md +0 -152
- package/cli/agents/validator-story-security.json +0 -104
- package/cli/agents/validator-story-security.md +0 -152
- package/cli/agents/validator-story-solution-architect.json +0 -104
- package/cli/agents/validator-story-solution-architect.md +0 -152
- package/cli/agents/validator-story-test-architect.json +0 -104
- package/cli/agents/validator-story-test-architect.md +0 -152
- package/cli/agents/validator-story-ui.json +0 -104
- package/cli/agents/validator-story-ui.md +0 -152
- package/cli/agents/validator-story-ux.json +0 -104
- package/cli/agents/validator-story-ux.md +0 -152
- package/kanban/client/dist/assets/index-CiD8PS2e.js +0 -306
- package/kanban/client/dist/assets/index-nLh0m82Q.css +0 -1
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
{
|
|
2
|
+
"perspective": "data",
|
|
3
|
+
"scope": "story",
|
|
4
|
+
"checks": [
|
|
5
|
+
{
|
|
6
|
+
"id": "data-story-01",
|
|
7
|
+
"tier": 1,
|
|
8
|
+
"perspective": "data",
|
|
9
|
+
"severity": "critical",
|
|
10
|
+
"category": "acceptance-criteria-quality",
|
|
11
|
+
"universal": false,
|
|
12
|
+
"applicabilityQuestion": "Does this story involve data processing, transformation, or analytics?",
|
|
13
|
+
"question": "Is each acceptance criterion testable and measurable with concrete data outcomes?",
|
|
14
|
+
"failDescription": "Acceptance criteria lack testable, measurable data outcomes",
|
|
15
|
+
"failSuggestion": "Rewrite each AC with concrete data outcomes: expected row counts, data formats, transformation results, or query outputs"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "data-story-02",
|
|
19
|
+
"tier": 1,
|
|
20
|
+
"perspective": "data",
|
|
21
|
+
"severity": "critical",
|
|
22
|
+
"category": "acceptance-criteria-quality",
|
|
23
|
+
"universal": false,
|
|
24
|
+
"applicabilityQuestion": "Does this story involve data pipelines or data flows?",
|
|
25
|
+
"question": "Do criteria cover happy path, edge cases, and error scenarios for data flows (missing data, malformed records, duplicates)?",
|
|
26
|
+
"failDescription": "Data flow edge cases and error scenarios are not covered in acceptance criteria",
|
|
27
|
+
"failSuggestion": "Add ACs for data edge cases: missing/null fields, malformed records, duplicate entries, empty datasets, schema mismatches"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "data-story-03",
|
|
31
|
+
"tier": 1,
|
|
32
|
+
"perspective": "data",
|
|
33
|
+
"severity": "critical",
|
|
34
|
+
"category": "acceptance-criteria-quality",
|
|
35
|
+
"universal": false,
|
|
36
|
+
"applicabilityQuestion": "Does this story define multiple data-related acceptance criteria?",
|
|
37
|
+
"question": "Are acceptance criteria independent and non-overlapping in their data coverage?",
|
|
38
|
+
"failDescription": "Acceptance criteria overlap or conflict in their data coverage",
|
|
39
|
+
"failSuggestion": "Ensure each AC covers a distinct data concern: one for schema, one for transformation logic, one for validation rules"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "data-story-04",
|
|
43
|
+
"tier": 1,
|
|
44
|
+
"perspective": "data",
|
|
45
|
+
"severity": "critical",
|
|
46
|
+
"category": "acceptance-criteria-quality",
|
|
47
|
+
"universal": false,
|
|
48
|
+
"applicabilityQuestion": "Does this story involve data storage, retrieval, or manipulation?",
|
|
49
|
+
"question": "Are data requirements explicitly stated — schemas, formats, volume expectations, and data types?",
|
|
50
|
+
"failDescription": "Data requirements are not explicitly stated — missing schemas, formats, or volume expectations",
|
|
51
|
+
"failSuggestion": "Explicitly state data requirements: field names and types, data formats (JSON, CSV, Parquet), expected volumes, and retention policies"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "data-story-05",
|
|
55
|
+
"tier": 1,
|
|
56
|
+
"perspective": "data",
|
|
57
|
+
"severity": "major",
|
|
58
|
+
"category": "implementation-clarity",
|
|
59
|
+
"universal": false,
|
|
60
|
+
"applicabilityQuestion": "Does this story involve data engineering or data processing implementation?",
|
|
61
|
+
"question": "Does the story provide enough data detail for implementation — source systems, data formats, transformation rules?",
|
|
62
|
+
"failDescription": "Insufficient data detail for implementation — source systems, formats, or transformation rules are missing",
|
|
63
|
+
"failSuggestion": "Add implementation details: source system names, input/output data formats, specific transformation rules, and data mapping specifications"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "data-story-06",
|
|
67
|
+
"tier": 1,
|
|
68
|
+
"perspective": "data",
|
|
69
|
+
"severity": "major",
|
|
70
|
+
"category": "implementation-clarity",
|
|
71
|
+
"universal": false,
|
|
72
|
+
"applicabilityQuestion": "Does this story involve data constraints or assumptions about data quality?",
|
|
73
|
+
"question": "Are technical constraints and assumptions about data quality, completeness, and freshness explicit?",
|
|
74
|
+
"failDescription": "Data quality constraints and assumptions are not explicit",
|
|
75
|
+
"failSuggestion": "State data assumptions: expected completeness percentage, freshness SLA, null handling strategy, deduplication approach"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "data-story-07",
|
|
79
|
+
"tier": 1,
|
|
80
|
+
"perspective": "data",
|
|
81
|
+
"severity": "major",
|
|
82
|
+
"category": "implementation-clarity",
|
|
83
|
+
"universal": false,
|
|
84
|
+
"applicabilityQuestion": "Does this story require specific data patterns or processing approaches?",
|
|
85
|
+
"question": "Are data patterns and approaches specified — batch vs streaming, ETL vs ELT, incremental vs full load?",
|
|
86
|
+
"failDescription": "Data processing patterns are not specified",
|
|
87
|
+
"failSuggestion": "Specify the data pattern: batch/streaming, ETL/ELT, incremental/full load, change data capture strategy"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "data-story-08",
|
|
91
|
+
"tier": 1,
|
|
92
|
+
"perspective": "data",
|
|
93
|
+
"severity": "major",
|
|
94
|
+
"category": "testability",
|
|
95
|
+
"universal": false,
|
|
96
|
+
"applicabilityQuestion": "Does this story involve data logic that needs testing at multiple levels?",
|
|
97
|
+
"question": "Can the story be tested at multiple levels — unit tests for transformations, integration tests for pipelines, e2e for data flows?",
|
|
98
|
+
"failDescription": "Story cannot be tested at multiple levels — unclear how to unit test transformations or integration test pipelines",
|
|
99
|
+
"failSuggestion": "Define testing levels: unit tests for individual transformations, integration tests for source-to-target pipeline, e2e for full data flow validation"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"id": "data-story-09",
|
|
103
|
+
"tier": 1,
|
|
104
|
+
"perspective": "data",
|
|
105
|
+
"severity": "major",
|
|
106
|
+
"category": "testability",
|
|
107
|
+
"universal": false,
|
|
108
|
+
"applicabilityQuestion": "Does this story require test data for validation?",
|
|
109
|
+
"question": "Are test data requirements clear — sample datasets, boundary values, and representative data distributions?",
|
|
110
|
+
"failDescription": "Test data requirements are unclear — no sample datasets or boundary values defined",
|
|
111
|
+
"failSuggestion": "Define test data: sample input datasets, boundary values (empty, max size, special characters), representative distributions for statistical tests"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"id": "data-story-10",
|
|
115
|
+
"tier": 1,
|
|
116
|
+
"perspective": "data",
|
|
117
|
+
"severity": "major",
|
|
118
|
+
"category": "testability",
|
|
119
|
+
"universal": false,
|
|
120
|
+
"applicabilityQuestion": "Does this story produce data outputs that need verification?",
|
|
121
|
+
"question": "Are expected data outcomes precisely defined — exact output schemas, row counts, or data quality metrics?",
|
|
122
|
+
"failDescription": "Expected data outcomes are not precisely defined",
|
|
123
|
+
"failSuggestion": "Define precise expected outcomes: output schema with field types, expected row counts or ranges, data quality metrics (completeness, accuracy thresholds)"
|
|
124
|
+
},
|
|
125
|
+
{
|
|
126
|
+
"id": "data-story-11",
|
|
127
|
+
"tier": 1,
|
|
128
|
+
"perspective": "data",
|
|
129
|
+
"severity": "minor",
|
|
130
|
+
"category": "scope-dependencies",
|
|
131
|
+
"universal": false,
|
|
132
|
+
"applicabilityQuestion": "Does this story involve data work that could span multiple days?",
|
|
133
|
+
"question": "Is the story appropriately scoped — focused on a single cohesive data engineering capability?",
|
|
134
|
+
"failDescription": "Story scope is too broad — consider splitting into smaller data tasks",
|
|
135
|
+
"failSuggestion": "Split large data stories: separate ingestion, transformation, validation, and output stages into individual stories"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "data-story-12",
|
|
139
|
+
"tier": 1,
|
|
140
|
+
"perspective": "data",
|
|
141
|
+
"severity": "minor",
|
|
142
|
+
"category": "scope-dependencies",
|
|
143
|
+
"universal": false,
|
|
144
|
+
"applicabilityQuestion": "Does this story depend on other data sources, pipelines, or stories?",
|
|
145
|
+
"question": "Are dependencies on other data sources, pipelines, or stories explicitly identified?",
|
|
146
|
+
"failDescription": "Dependencies on data sources or upstream pipelines are not explicitly identified",
|
|
147
|
+
"failSuggestion": "List all data dependencies: upstream pipeline names, source system availability, schema version requirements, data freshness dependencies"
|
|
148
|
+
},
|
|
149
|
+
{
|
|
150
|
+
"id": "data-story-13",
|
|
151
|
+
"tier": 1,
|
|
152
|
+
"perspective": "data",
|
|
153
|
+
"severity": "minor",
|
|
154
|
+
"category": "scope-dependencies",
|
|
155
|
+
"universal": false,
|
|
156
|
+
"applicabilityQuestion": "Does this story deliver data incrementally?",
|
|
157
|
+
"question": "Is the story independent enough to be delivered incrementally without breaking existing data consumers?",
|
|
158
|
+
"failDescription": "Story may not be independently deliverable — risk of breaking existing data consumers",
|
|
159
|
+
"failSuggestion": "Ensure backward compatibility: define how existing consumers are unaffected, or specify a migration plan for schema changes"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "data-story-14",
|
|
163
|
+
"tier": 1,
|
|
164
|
+
"perspective": "data",
|
|
165
|
+
"severity": "minor",
|
|
166
|
+
"category": "best-practices",
|
|
167
|
+
"universal": false,
|
|
168
|
+
"applicabilityQuestion": "Does this story involve data engineering or data science implementation?",
|
|
169
|
+
"question": "Does the story follow data best practices — idempotent pipelines, schema evolution, data lineage, and reproducibility?",
|
|
170
|
+
"failDescription": "Story does not address data best practices",
|
|
171
|
+
"failSuggestion": "Address data best practices: idempotent pipeline runs, schema evolution strategy, data lineage tracking, and reproducible transformations"
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "data-story-15",
|
|
175
|
+
"tier": 1,
|
|
176
|
+
"perspective": "data",
|
|
177
|
+
"severity": "minor",
|
|
178
|
+
"category": "best-practices",
|
|
179
|
+
"universal": false,
|
|
180
|
+
"applicabilityQuestion": "Does this story involve data patterns that could be implemented incorrectly?",
|
|
181
|
+
"question": "Does the story avoid data anti-patterns — no hardcoded schemas, no unpartitioned large tables, no missing data validation?",
|
|
182
|
+
"failDescription": "Story may contain data anti-patterns",
|
|
183
|
+
"failSuggestion": "Check for anti-patterns: hardcoded schemas (use schema registry), unpartitioned tables (define partition strategy), missing validation (add data quality checks)"
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "data-story-16",
|
|
187
|
+
"tier": 1,
|
|
188
|
+
"perspective": "data",
|
|
189
|
+
"severity": "major",
|
|
190
|
+
"category": "acceptance-criteria-quality",
|
|
191
|
+
"universal": false,
|
|
192
|
+
"applicabilityQuestion": "Does this story use vague language in its acceptance criteria?",
|
|
193
|
+
"question": "Do all ACs avoid vague phrases ('handle gracefully', 'validate properly', 'appropriate response') without specifying concrete outcomes?",
|
|
194
|
+
"failDescription": "ACs use vague language without specifying concrete, observable data outcomes",
|
|
195
|
+
"failSuggestion": "Replace vague phrases with concrete outcomes: instead of 'handle errors gracefully', specify 'log failed records to dead-letter table with error code and timestamp'"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"id": "data-story-17",
|
|
199
|
+
"tier": 1,
|
|
200
|
+
"perspective": "data",
|
|
201
|
+
"severity": "major",
|
|
202
|
+
"category": "testability",
|
|
203
|
+
"universal": false,
|
|
204
|
+
"applicabilityQuestion": "Does this story have logic paths that need testing?",
|
|
205
|
+
"question": "Does at least one AC explicitly list concrete test scenarios (boundary values, error paths, or specific test cases)?",
|
|
206
|
+
"failDescription": "Story lacks a test-boundary AC — no AC names the specific data scenarios a developer must test",
|
|
207
|
+
"failSuggestion": "Add one AC: 'Developer tests must cover: (1) happy path with valid data, (2) empty dataset, (3) malformed records, (4) duplicate entries, (5) schema mismatch'"
|
|
208
|
+
}
|
|
209
|
+
]
|
|
210
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"perspective": "database",
|
|
3
|
+
"scope": "story",
|
|
4
|
+
"checks": [
|
|
5
|
+
{
|
|
6
|
+
"id": "db-story-01",
|
|
7
|
+
"tier": 1,
|
|
8
|
+
"perspective": "database",
|
|
9
|
+
"severity": "critical",
|
|
10
|
+
"category": "acceptance-criteria",
|
|
11
|
+
"universal": false,
|
|
12
|
+
"applicabilityQuestion": "Does this story involve database operations? (Does it create tables, modify schemas, write queries, or manage data?)",
|
|
13
|
+
"question": "Is each acceptance criterion testable and measurable?",
|
|
14
|
+
"failDescription": "One or more acceptance criteria are not testable or measurable",
|
|
15
|
+
"failSuggestion": "Make each AC testable: specify exact table/column changes, query results, or constraint behaviors"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "db-story-02",
|
|
19
|
+
"tier": 1,
|
|
20
|
+
"perspective": "database",
|
|
21
|
+
"severity": "major",
|
|
22
|
+
"category": "acceptance-criteria",
|
|
23
|
+
"universal": false,
|
|
24
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
25
|
+
"question": "Do criteria cover happy path, edge cases, and error scenarios?",
|
|
26
|
+
"failDescription": "Criteria do not cover database edge cases or error scenarios",
|
|
27
|
+
"failSuggestion": "Add database error scenarios: unique constraint violations, foreign key failures, null handling, concurrent updates"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "db-story-03",
|
|
31
|
+
"tier": 1,
|
|
32
|
+
"perspective": "database",
|
|
33
|
+
"severity": "major",
|
|
34
|
+
"category": "acceptance-criteria",
|
|
35
|
+
"universal": false,
|
|
36
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
37
|
+
"question": "Are database requirements explicitly stated?",
|
|
38
|
+
"failDescription": "Database requirements are not explicitly stated",
|
|
39
|
+
"failSuggestion": "State database requirements: table/column definitions, index requirements, migration strategy, data types"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "db-story-04",
|
|
43
|
+
"tier": 1,
|
|
44
|
+
"perspective": "database",
|
|
45
|
+
"severity": "major",
|
|
46
|
+
"category": "implementation-clarity",
|
|
47
|
+
"universal": false,
|
|
48
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
49
|
+
"question": "Does the story provide enough database detail for implementation?",
|
|
50
|
+
"failDescription": "Insufficient database detail for implementation",
|
|
51
|
+
"failSuggestion": "Add database details: schema changes, index definitions, query patterns, migration rollback strategy"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "db-story-05",
|
|
55
|
+
"tier": 1,
|
|
56
|
+
"perspective": "database",
|
|
57
|
+
"severity": "minor",
|
|
58
|
+
"category": "implementation-clarity",
|
|
59
|
+
"universal": false,
|
|
60
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
61
|
+
"question": "Are database patterns and approaches specified?",
|
|
62
|
+
"failDescription": "Database patterns and approaches are not specified",
|
|
63
|
+
"failSuggestion": "Specify database patterns: ORM usage, raw SQL vs query builder, transaction handling, connection pooling"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "db-story-06",
|
|
67
|
+
"tier": 1,
|
|
68
|
+
"perspective": "database",
|
|
69
|
+
"severity": "major",
|
|
70
|
+
"category": "testability",
|
|
71
|
+
"universal": false,
|
|
72
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
73
|
+
"question": "Does the story have a test-boundary AC naming specific scenarios a developer must test?",
|
|
74
|
+
"failDescription": "Story lacks a test-boundary AC",
|
|
75
|
+
"failSuggestion": "Add test-boundary AC: 'Tests must cover: (1) successful write, (2) unique constraint violation, (3) FK constraint, (4) null handling'"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "db-story-07",
|
|
79
|
+
"tier": 1,
|
|
80
|
+
"perspective": "database",
|
|
81
|
+
"severity": "minor",
|
|
82
|
+
"category": "scope-dependencies",
|
|
83
|
+
"universal": false,
|
|
84
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
85
|
+
"question": "Are dependencies on other stories explicit?",
|
|
86
|
+
"failDescription": "Dependencies on other stories are not explicit",
|
|
87
|
+
"failSuggestion": "Make dependencies explicit: reference schema dependencies from other stories"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "db-story-08",
|
|
91
|
+
"tier": 1,
|
|
92
|
+
"perspective": "database",
|
|
93
|
+
"severity": "minor",
|
|
94
|
+
"category": "best-practices",
|
|
95
|
+
"universal": false,
|
|
96
|
+
"applicabilityQuestion": "Does this story involve database operations?",
|
|
97
|
+
"question": "Does the story follow database best practices?",
|
|
98
|
+
"failDescription": "Database best practices are not followed",
|
|
99
|
+
"failSuggestion": "Follow database best practices: proper indexing, parameterized queries, migration versioning, data integrity constraints"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
{
|
|
2
|
+
"perspective": "developer",
|
|
3
|
+
"scope": "story",
|
|
4
|
+
"checks": [
|
|
5
|
+
{
|
|
6
|
+
"id": "dev-story-01",
|
|
7
|
+
"tier": 1,
|
|
8
|
+
"perspective": "developer",
|
|
9
|
+
"severity": "major",
|
|
10
|
+
"category": "implementation-completeness",
|
|
11
|
+
"universal": true,
|
|
12
|
+
"question": "Does every AC describe a developer-observable outcome (HTTP status, DB write, event emission) — not just user-visible behavior?",
|
|
13
|
+
"failDescription": "One or more ACs only describe user-visible behavior without developer-observable outcomes",
|
|
14
|
+
"failSuggestion": "Add developer-observable outcomes: e.g. 'returns 201', 'writes record to DB', 'emits UserCreated event'"
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"id": "dev-story-02",
|
|
18
|
+
"tier": 1,
|
|
19
|
+
"perspective": "developer",
|
|
20
|
+
"severity": "major",
|
|
21
|
+
"category": "implementation-completeness",
|
|
22
|
+
"universal": false,
|
|
23
|
+
"applicabilityQuestion": "Does this story involve asynchronous operations? (Does it call external APIs, databases, or message queues?)",
|
|
24
|
+
"question": "Do async operations have error-path ACs covering external call failures (DB down, API timeout, queue full)?",
|
|
25
|
+
"failDescription": "Async operations lack error-path ACs for external call failures",
|
|
26
|
+
"failSuggestion": "Add error-path ACs: what happens if DB is down (503), API times out (504/retry), queue is full (429/backpressure)"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"id": "dev-story-03",
|
|
30
|
+
"tier": 1,
|
|
31
|
+
"perspective": "developer",
|
|
32
|
+
"severity": "major",
|
|
33
|
+
"category": "implementation-completeness",
|
|
34
|
+
"universal": false,
|
|
35
|
+
"applicabilityQuestion": "Does this story involve operations that may be retried? (Does it handle webhooks, payment callbacks, or message delivery?)",
|
|
36
|
+
"question": "Is idempotency stated for operations that may be retried?",
|
|
37
|
+
"failDescription": "Idempotency is not stated for retryable operations",
|
|
38
|
+
"failSuggestion": "State idempotency behavior: duplicate requests produce the same result, use idempotency keys or DB constraints"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"id": "dev-story-04",
|
|
42
|
+
"tier": 1,
|
|
43
|
+
"perspective": "developer",
|
|
44
|
+
"severity": "major",
|
|
45
|
+
"category": "implementation-completeness",
|
|
46
|
+
"universal": false,
|
|
47
|
+
"applicabilityQuestion": "Does this story's operations cause side effects? (Does it invalidate caches, emit events, or trigger downstream processes?)",
|
|
48
|
+
"question": "Are side effects documented (cache invalidation, event emission, downstream triggers)?",
|
|
49
|
+
"failDescription": "Side effects are not documented",
|
|
50
|
+
"failSuggestion": "Document side effects: cache invalidation, event emission, webhook triggers, downstream data updates"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"id": "dev-story-05",
|
|
54
|
+
"tier": 1,
|
|
55
|
+
"perspective": "developer",
|
|
56
|
+
"severity": "major",
|
|
57
|
+
"category": "testing-scope-clarity",
|
|
58
|
+
"universal": true,
|
|
59
|
+
"question": "Is the unit test boundary implied — which function/module is the primary unit under test?",
|
|
60
|
+
"failDescription": "Unit test boundary is not implied — unclear which function/module to test",
|
|
61
|
+
"failSuggestion": "Imply the unit test boundary: name the primary function/module under test"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"id": "dev-story-06",
|
|
65
|
+
"tier": 1,
|
|
66
|
+
"perspective": "developer",
|
|
67
|
+
"severity": "major",
|
|
68
|
+
"category": "testing-scope-clarity",
|
|
69
|
+
"universal": false,
|
|
70
|
+
"applicabilityQuestion": "Does this story interact with external systems? (Does it use databases, external APIs, or message queues?)",
|
|
71
|
+
"question": "Is the integration test boundary implied — which external system is exercised?",
|
|
72
|
+
"failDescription": "Integration test boundary is not implied — unclear which external system to test against",
|
|
73
|
+
"failSuggestion": "Imply the integration test boundary: name the external system exercised (DB, API, queue)"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"id": "dev-story-07",
|
|
77
|
+
"tier": 1,
|
|
78
|
+
"perspective": "developer",
|
|
79
|
+
"severity": "minor",
|
|
80
|
+
"category": "testing-scope-clarity",
|
|
81
|
+
"universal": true,
|
|
82
|
+
"question": "Are test data requirements explicit (what fixtures/seeds are needed)?",
|
|
83
|
+
"failDescription": "Test data requirements are not explicit — unclear what fixtures or seeds are needed",
|
|
84
|
+
"failSuggestion": "Specify test data requirements: user roles, existing records, edge-case states needed for testing"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "dev-story-08",
|
|
88
|
+
"tier": 1,
|
|
89
|
+
"perspective": "developer",
|
|
90
|
+
"severity": "major",
|
|
91
|
+
"category": "testing-scope-clarity",
|
|
92
|
+
"universal": true,
|
|
93
|
+
"question": "Does the story have at least one AC per error path so test coverage is unambiguous?",
|
|
94
|
+
"failDescription": "Story lacks ACs for error paths — test coverage is ambiguous",
|
|
95
|
+
"failSuggestion": "Add one AC per error path: validation errors, auth failures, not-found, conflict scenarios"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "dev-story-09",
|
|
99
|
+
"tier": 1,
|
|
100
|
+
"perspective": "developer",
|
|
101
|
+
"severity": "minor",
|
|
102
|
+
"category": "concurrency-race-conditions",
|
|
103
|
+
"universal": false,
|
|
104
|
+
"applicabilityQuestion": "Does this story involve concurrent writes or shared resources? (Can multiple users modify the same data?)",
|
|
105
|
+
"question": "Are concurrent write conflicts addressed (optimistic locking, idempotency key, last-write-wins)?",
|
|
106
|
+
"failDescription": "Concurrent write conflicts are not addressed",
|
|
107
|
+
"failSuggestion": "Address concurrent writes: optimistic locking (version column), idempotency key, or last-write-wins with rationale"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "dev-story-10",
|
|
111
|
+
"tier": 1,
|
|
112
|
+
"perspective": "developer",
|
|
113
|
+
"severity": "minor",
|
|
114
|
+
"category": "concurrency-race-conditions",
|
|
115
|
+
"universal": false,
|
|
116
|
+
"applicabilityQuestion": "Does this story involve at-least-once delivery scenarios?",
|
|
117
|
+
"question": "Is retry behavior defined for at-least-once delivery scenarios?",
|
|
118
|
+
"failDescription": "Retry behavior is not defined for at-least-once delivery",
|
|
119
|
+
"failSuggestion": "Define retry behavior: retry count, backoff strategy, dead letter handling"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "dev-story-11",
|
|
123
|
+
"tier": 1,
|
|
124
|
+
"perspective": "developer",
|
|
125
|
+
"severity": "minor",
|
|
126
|
+
"category": "concurrency-race-conditions",
|
|
127
|
+
"universal": false,
|
|
128
|
+
"applicabilityQuestion": "Does this story involve multi-step database operations?",
|
|
129
|
+
"question": "Are database transaction boundaries stated for multi-step operations?",
|
|
130
|
+
"failDescription": "Database transaction boundaries are not stated for multi-step operations",
|
|
131
|
+
"failSuggestion": "State transaction boundaries: which operations are atomic, rollback behavior on partial failure"
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"id": "dev-story-12",
|
|
135
|
+
"tier": 1,
|
|
136
|
+
"perspective": "developer",
|
|
137
|
+
"severity": "minor",
|
|
138
|
+
"category": "developer-observability",
|
|
139
|
+
"universal": false,
|
|
140
|
+
"applicabilityQuestion": "Does this story involve security-sensitive or business-critical operations?",
|
|
141
|
+
"question": "Are logging/audit events mentioned for security-sensitive or business-critical operations?",
|
|
142
|
+
"failDescription": "Logging/audit events are not mentioned for critical operations",
|
|
143
|
+
"failSuggestion": "Mention logging requirements: which operations emit audit logs and what data they include"
|
|
144
|
+
},
|
|
145
|
+
{
|
|
146
|
+
"id": "dev-story-13",
|
|
147
|
+
"tier": 1,
|
|
148
|
+
"perspective": "developer",
|
|
149
|
+
"severity": "minor",
|
|
150
|
+
"category": "developer-observability",
|
|
151
|
+
"universal": true,
|
|
152
|
+
"question": "Are error codes machine-readable constants (not free-text messages)?",
|
|
153
|
+
"failDescription": "Error codes are free-text messages instead of machine-readable constants",
|
|
154
|
+
"failSuggestion": "Use machine-readable error constants: e.g. 'INVALID_EMAIL' not 'The email address is invalid'"
|
|
155
|
+
},
|
|
156
|
+
{
|
|
157
|
+
"id": "dev-story-14",
|
|
158
|
+
"tier": 1,
|
|
159
|
+
"perspective": "developer",
|
|
160
|
+
"severity": "minor",
|
|
161
|
+
"category": "scope-sizing",
|
|
162
|
+
"universal": true,
|
|
163
|
+
"question": "Does the story avoid implicit requirements ('the usual error handling') — is everything explicit?",
|
|
164
|
+
"failDescription": "Story has implicit requirements — not everything a developer needs is explicit",
|
|
165
|
+
"failSuggestion": "Make all requirements explicit: no 'the usual error handling' — state exactly what error handling is needed"
|
|
166
|
+
}
|
|
167
|
+
]
|
|
168
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"perspective": "devops",
|
|
3
|
+
"scope": "story",
|
|
4
|
+
"checks": [
|
|
5
|
+
{
|
|
6
|
+
"id": "devops-story-01",
|
|
7
|
+
"tier": 1,
|
|
8
|
+
"perspective": "devops",
|
|
9
|
+
"severity": "critical",
|
|
10
|
+
"category": "acceptance-criteria",
|
|
11
|
+
"universal": false,
|
|
12
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
13
|
+
"question": "Is each acceptance criterion testable and measurable?",
|
|
14
|
+
"failDescription": "One or more acceptance criteria are not testable or measurable",
|
|
15
|
+
"failSuggestion": "Make each AC testable: specify exact expected outcome, metric, or verifiable condition"
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"id": "devops-story-02",
|
|
19
|
+
"tier": 1,
|
|
20
|
+
"perspective": "devops",
|
|
21
|
+
"severity": "major",
|
|
22
|
+
"category": "acceptance-criteria",
|
|
23
|
+
"universal": false,
|
|
24
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
25
|
+
"question": "Do criteria cover happy path, edge cases, and error scenarios?",
|
|
26
|
+
"failDescription": "Criteria do not cover edge cases or error scenarios",
|
|
27
|
+
"failSuggestion": "Add edge case and error scenario ACs: failed deployment rollback, resource limits exceeded, network failures"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "devops-story-03",
|
|
31
|
+
"tier": 1,
|
|
32
|
+
"perspective": "devops",
|
|
33
|
+
"severity": "major",
|
|
34
|
+
"category": "acceptance-criteria",
|
|
35
|
+
"universal": false,
|
|
36
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
37
|
+
"question": "Are DevOps requirements explicitly stated?",
|
|
38
|
+
"failDescription": "DevOps requirements are not explicitly stated in acceptance criteria",
|
|
39
|
+
"failSuggestion": "State DevOps requirements explicitly: deployment target, environment, monitoring hooks, rollback criteria"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"id": "devops-story-04",
|
|
43
|
+
"tier": 1,
|
|
44
|
+
"perspective": "devops",
|
|
45
|
+
"severity": "major",
|
|
46
|
+
"category": "implementation-clarity",
|
|
47
|
+
"universal": false,
|
|
48
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
49
|
+
"question": "Does the story provide enough DevOps detail for implementation?",
|
|
50
|
+
"failDescription": "Insufficient DevOps detail for implementation",
|
|
51
|
+
"failSuggestion": "Add DevOps implementation details: specific tools, configuration values, environment variables, pipeline steps"
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
"id": "devops-story-05",
|
|
55
|
+
"tier": 1,
|
|
56
|
+
"perspective": "devops",
|
|
57
|
+
"severity": "minor",
|
|
58
|
+
"category": "implementation-clarity",
|
|
59
|
+
"universal": false,
|
|
60
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
61
|
+
"question": "Are DevOps patterns and approaches specified?",
|
|
62
|
+
"failDescription": "DevOps patterns and approaches are not specified",
|
|
63
|
+
"failSuggestion": "Specify DevOps patterns: deployment strategy, IaC approach, monitoring integration, log aggregation"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"id": "devops-story-06",
|
|
67
|
+
"tier": 1,
|
|
68
|
+
"perspective": "devops",
|
|
69
|
+
"severity": "major",
|
|
70
|
+
"category": "testability",
|
|
71
|
+
"universal": false,
|
|
72
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
73
|
+
"question": "Does the story have a test-boundary AC naming specific scenarios a developer must test?",
|
|
74
|
+
"failDescription": "Story lacks a test-boundary AC — no specific test scenarios named",
|
|
75
|
+
"failSuggestion": "Add test-boundary AC: 'Tests must cover: (1) successful deployment, (2) rollback on failure, (3) health check pass, (4) resource limit behavior'"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"id": "devops-story-07",
|
|
79
|
+
"tier": 1,
|
|
80
|
+
"perspective": "devops",
|
|
81
|
+
"severity": "minor",
|
|
82
|
+
"category": "scope-dependencies",
|
|
83
|
+
"universal": false,
|
|
84
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
85
|
+
"question": "Are dependencies on other stories explicit?",
|
|
86
|
+
"failDescription": "Dependencies on other stories are not explicit",
|
|
87
|
+
"failSuggestion": "Make dependencies explicit: reference specific story IDs and what they provide"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"id": "devops-story-08",
|
|
91
|
+
"tier": 1,
|
|
92
|
+
"perspective": "devops",
|
|
93
|
+
"severity": "minor",
|
|
94
|
+
"category": "best-practices",
|
|
95
|
+
"universal": false,
|
|
96
|
+
"applicabilityQuestion": "Does this story involve deployment, CI/CD, infrastructure, or operational concerns?",
|
|
97
|
+
"question": "Does the story follow DevOps best practices?",
|
|
98
|
+
"failDescription": "DevOps best practices are not followed",
|
|
99
|
+
"failSuggestion": "Follow DevOps best practices: infrastructure as code, automated testing, immutable deployments"
|
|
100
|
+
}
|
|
101
|
+
]
|
|
102
|
+
}
|