@rdmind/rdmind 0.0.9-alpha.1 → 0.0.9-alpha.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.
Files changed (96) hide show
  1. package/.knowledge/.ext/.bmad-core/agent-teams/team-all.yaml +15 -0
  2. package/.knowledge/.ext/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
  3. package/.knowledge/.ext/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
  4. package/.knowledge/.ext/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
  5. package/.knowledge/.ext/.bmad-core/agents/analyst.md +84 -0
  6. package/.knowledge/.ext/.bmad-core/agents/architect.md +85 -0
  7. package/.knowledge/.ext/.bmad-core/agents/bmad-master.md +110 -0
  8. package/.knowledge/.ext/.bmad-core/agents/bmad-orchestrator.md +147 -0
  9. package/.knowledge/.ext/.bmad-core/agents/dev.md +81 -0
  10. package/.knowledge/.ext/.bmad-core/agents/pm.md +84 -0
  11. package/.knowledge/.ext/.bmad-core/agents/po.md +79 -0
  12. package/.knowledge/.ext/.bmad-core/agents/qa.md +90 -0
  13. package/.knowledge/.ext/.bmad-core/agents/ra.md +74 -0
  14. package/.knowledge/.ext/.bmad-core/agents/sm.md +65 -0
  15. package/.knowledge/.ext/.bmad-core/agents/ux-expert.md +69 -0
  16. package/.knowledge/.ext/.bmad-core/checklists/architect-checklist.md +440 -0
  17. package/.knowledge/.ext/.bmad-core/checklists/change-checklist.md +184 -0
  18. package/.knowledge/.ext/.bmad-core/checklists/pm-checklist.md +372 -0
  19. package/.knowledge/.ext/.bmad-core/checklists/po-master-checklist.md +434 -0
  20. package/.knowledge/.ext/.bmad-core/checklists/story-dod-checklist.md +96 -0
  21. package/.knowledge/.ext/.bmad-core/checklists/story-draft-checklist.md +155 -0
  22. package/.knowledge/.ext/.bmad-core/checklists/trd-checklist.md +226 -0
  23. package/.knowledge/.ext/.bmad-core/core-config.yaml +22 -0
  24. package/.knowledge/.ext/.bmad-core/data/bmad-kb.md +809 -0
  25. package/.knowledge/.ext/.bmad-core/data/brainstorming-techniques.md +38 -0
  26. package/.knowledge/.ext/.bmad-core/data/elicitation-methods.md +156 -0
  27. package/.knowledge/.ext/.bmad-core/data/technical-preferences.md +5 -0
  28. package/.knowledge/.ext/.bmad-core/data/test-levels-framework.md +148 -0
  29. package/.knowledge/.ext/.bmad-core/data/test-priorities-matrix.md +174 -0
  30. package/.knowledge/.ext/.bmad-core/enhanced-ide-development-workflow.md +248 -0
  31. package/.knowledge/.ext/.bmad-core/install-manifest.yaml +512 -0
  32. package/.knowledge/.ext/.bmad-core/tasks/advanced-elicitation.md +119 -0
  33. package/.knowledge/.ext/.bmad-core/tasks/analyze-prd.md +123 -0
  34. package/.knowledge/.ext/.bmad-core/tasks/apply-qa-fixes.md +150 -0
  35. package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-epic.md +162 -0
  36. package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-story.md +149 -0
  37. package/.knowledge/.ext/.bmad-core/tasks/correct-course.md +72 -0
  38. package/.knowledge/.ext/.bmad-core/tasks/create-brownfield-story.md +314 -0
  39. package/.knowledge/.ext/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
  40. package/.knowledge/.ext/.bmad-core/tasks/create-doc.md +103 -0
  41. package/.knowledge/.ext/.bmad-core/tasks/create-next-story.md +114 -0
  42. package/.knowledge/.ext/.bmad-core/tasks/document-project.md +345 -0
  43. package/.knowledge/.ext/.bmad-core/tasks/execute-checklist.md +88 -0
  44. package/.knowledge/.ext/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
  45. package/.knowledge/.ext/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
  46. package/.knowledge/.ext/.bmad-core/tasks/index-docs.md +175 -0
  47. package/.knowledge/.ext/.bmad-core/tasks/kb-mode-interaction.md +77 -0
  48. package/.knowledge/.ext/.bmad-core/tasks/nfr-assess.md +345 -0
  49. package/.knowledge/.ext/.bmad-core/tasks/qa-gate.md +163 -0
  50. package/.knowledge/.ext/.bmad-core/tasks/review-story.md +316 -0
  51. package/.knowledge/.ext/.bmad-core/tasks/risk-profile.md +355 -0
  52. package/.knowledge/.ext/.bmad-core/tasks/shard-doc.md +187 -0
  53. package/.knowledge/.ext/.bmad-core/tasks/test-design.md +176 -0
  54. package/.knowledge/.ext/.bmad-core/tasks/trace-requirements.md +266 -0
  55. package/.knowledge/.ext/.bmad-core/tasks/validate-next-story.md +136 -0
  56. package/.knowledge/.ext/.bmad-core/tasks/validate-trd.md +158 -0
  57. package/.knowledge/.ext/.bmad-core/templates/architecture-tmpl.yaml +651 -0
  58. package/.knowledge/.ext/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
  59. package/.knowledge/.ext/.bmad-core/templates/brownfield-architecture-tmpl.yaml +478 -0
  60. package/.knowledge/.ext/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
  61. package/.knowledge/.ext/.bmad-core/templates/competitor-analysis-tmpl.yaml +349 -0
  62. package/.knowledge/.ext/.bmad-core/templates/front-end-architecture-tmpl.yaml +273 -0
  63. package/.knowledge/.ext/.bmad-core/templates/front-end-spec-tmpl.yaml +360 -0
  64. package/.knowledge/.ext/.bmad-core/templates/fullstack-architecture-tmpl.yaml +947 -0
  65. package/.knowledge/.ext/.bmad-core/templates/market-research-tmpl.yaml +253 -0
  66. package/.knowledge/.ext/.bmad-core/templates/prd-tmpl.yaml +203 -0
  67. package/.knowledge/.ext/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
  68. package/.knowledge/.ext/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
  69. package/.knowledge/.ext/.bmad-core/templates/story-tmpl.yaml +138 -0
  70. package/.knowledge/.ext/.bmad-core/templates/trd-tmpl.yaml +198 -0
  71. package/.knowledge/.ext/.bmad-core/user-guide.md +530 -0
  72. package/.knowledge/.ext/.bmad-core/utils/bmad-doc-template.md +327 -0
  73. package/.knowledge/.ext/.bmad-core/utils/workflow-management.md +71 -0
  74. package/.knowledge/.ext/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
  75. package/.knowledge/.ext/.bmad-core/workflows/brownfield-service.yaml +188 -0
  76. package/.knowledge/.ext/.bmad-core/workflows/brownfield-ui.yaml +198 -0
  77. package/.knowledge/.ext/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
  78. package/.knowledge/.ext/.bmad-core/workflows/greenfield-service.yaml +207 -0
  79. package/.knowledge/.ext/.bmad-core/workflows/greenfield-ui.yaml +236 -0
  80. package/.knowledge/.ext/.bmad-core/working-in-the-brownfield.md +606 -0
  81. package/.knowledge/.ext/coding/ddd-architecture.md +223 -0
  82. package/.knowledge/.ext/coding/java-standards.md +308 -0
  83. package/.knowledge/.ext/coding/mybatis-standards.md +407 -0
  84. package/.knowledge/.ext/coding/sql-standards.md +263 -0
  85. package/.knowledge/.ext/coding/thrift-service.md +292 -0
  86. package/.knowledge/BMAD.md +255 -0
  87. package/.knowledge/coding.md +135 -0
  88. package/dist/package.json +4 -3
  89. package/dist/src/generated/git-commit.d.ts +2 -2
  90. package/dist/src/generated/git-commit.js +2 -2
  91. package/dist/src/ui/components/Tips.js +1 -1
  92. package/dist/src/ui/components/Tips.js.map +1 -1
  93. package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
  94. package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
  95. package/dist/tsconfig.tsbuildinfo +1 -1
  96. package/package.json +4 -3
@@ -0,0 +1,53 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # Create AI Frontend Prompt Task
4
+
5
+ ## Purpose
6
+
7
+ To generate a masterful, comprehensive, and optimized prompt that can be used with any AI-driven frontend development tool (e.g., Vercel v0, Lovable.ai, or similar) to scaffold or generate significant portions of a frontend application.
8
+
9
+ ## Inputs
10
+
11
+ - Completed UI/UX Specification (`front-end-spec.md`)
12
+ - Completed Frontend Architecture Document (`front-end-architecture`) or a full stack combined architecture such as `architecture.md`
13
+ - Main System Architecture Document (`architecture` - for API contracts and tech stack to give further context)
14
+
15
+ ## Key Activities & Instructions
16
+
17
+ ### 1. Core Prompting Principles
18
+
19
+ Before generating the prompt, you must understand these core principles for interacting with a generative AI for code.
20
+
21
+ - **Be Explicit and Detailed**: The AI cannot read your mind. Provide as much detail and context as possible. Vague requests lead to generic or incorrect outputs.
22
+ - **Iterate, Don't Expect Perfection**: Generating an entire complex application in one go is rare. The most effective method is to prompt for one component or one section at a time, then build upon the results.
23
+ - **Provide Context First**: Always start by providing the AI with the necessary context, such as the tech stack, existing code snippets, and overall project goals.
24
+ - **Mobile-First Approach**: Frame all UI generation requests with a mobile-first design mindset. Describe the mobile layout first, then provide separate instructions for how it should adapt for tablet and desktop.
25
+
26
+ ### 2. The Structured Prompting Framework
27
+
28
+ To ensure the highest quality output, you MUST structure every prompt using the following four-part framework.
29
+
30
+ 1. **High-Level Goal**: Start with a clear, concise summary of the overall objective. This orients the AI on the primary task.
31
+ - _Example: "Create a responsive user registration form with client-side validation and API integration."_
32
+ 2. **Detailed, Step-by-Step Instructions**: Provide a granular, numbered list of actions the AI should take. Break down complex tasks into smaller, sequential steps. This is the most critical part of the prompt.
33
+ - _Example: "1. Create a new file named `RegistrationForm.js`. 2. Use React hooks for state management. 3. Add styled input fields for 'Name', 'Email', and 'Password'. 4. For the email field, ensure it is a valid email format. 5. On submission, call the API endpoint defined below."_
34
+ 3. **Code Examples, Data Structures & Constraints**: Include any relevant snippets of existing code, data structures, or API contracts. This gives the AI concrete examples to work with. Crucially, you must also state what _not_ to do.
35
+ - _Example: "Use this API endpoint: `POST /api/register`. The expected JSON payload is `{ "name": "string", "email": "string", "password": "string" }`. Do NOT include a 'confirm password' field. Use Tailwind CSS for all styling."_
36
+ 4. **Define a Strict Scope**: Explicitly define the boundaries of the task. Tell the AI which files it can modify and, more importantly, which files to leave untouched to prevent unintended changes across the codebase.
37
+ - _Example: "You should only create the `RegistrationForm.js` component and add it to the `pages/register.js` file. Do NOT alter the `Navbar.js` component or any other existing page or component."_
38
+
39
+ ### 3. Assembling the Master Prompt
40
+
41
+ You will now synthesize the inputs and the above principles into a final, comprehensive prompt.
42
+
43
+ 1. **Gather Foundational Context**:
44
+ - Start the prompt with a preamble describing the overall project purpose, the full tech stack (e.g., Next.js, TypeScript, Tailwind CSS), and the primary UI component library being used.
45
+ 2. **Describe the Visuals**:
46
+ - If the user has design files (Figma, etc.), instruct them to provide links or screenshots.
47
+ - If not, describe the visual style: color palette, typography, spacing, and overall aesthetic (e.g., "minimalist", "corporate", "playful").
48
+ 3. **Build the Prompt using the Structured Framework**:
49
+ - Follow the four-part framework from Section 2 to build out the core request, whether it's for a single component or a full page.
50
+ 4. **Present and Refine**:
51
+ - Output the complete, generated prompt in a clear, copy-pasteable format (e.g., a large code block).
52
+ - Explain the structure of the prompt and why certain information was included, referencing the principles above.
53
+ - <important_note>Conclude by reminding the user that all AI-generated code will require careful human review, testing, and refinement to be considered production-ready.</important_note>
@@ -0,0 +1,175 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # Index Documentation Task
4
+
5
+ ## Purpose
6
+
7
+ This task maintains the integrity and completeness of the `docs/index.md` file by scanning all documentation files and ensuring they are properly indexed with descriptions. It handles both root-level documents and documents within subfolders, organizing them hierarchically.
8
+
9
+ ## Task Instructions
10
+
11
+ You are now operating as a Documentation Indexer. Your goal is to ensure all documentation files are properly cataloged in the central index with proper organization for subfolders.
12
+
13
+ ### Required Steps
14
+
15
+ 1. First, locate and scan:
16
+ - The `docs/` directory and all subdirectories
17
+ - The existing `docs/index.md` file (create if absent)
18
+ - All markdown (`.md`) and text (`.txt`) files in the documentation structure
19
+ - Note the folder structure for hierarchical organization
20
+
21
+ 2. For the existing `docs/index.md`:
22
+ - Parse current entries
23
+ - Note existing file references and descriptions
24
+ - Identify any broken links or missing files
25
+ - Keep track of already-indexed content
26
+ - Preserve existing folder sections
27
+
28
+ 3. For each documentation file found:
29
+ - Extract the title (from first heading or filename)
30
+ - Generate a brief description by analyzing the content
31
+ - Create a relative markdown link to the file
32
+ - Check if it's already in the index
33
+ - Note which folder it belongs to (if in a subfolder)
34
+ - If missing or outdated, prepare an update
35
+
36
+ 4. For any missing or non-existent files found in index:
37
+ - Present a list of all entries that reference non-existent files
38
+ - For each entry:
39
+ - Show the full entry details (title, path, description)
40
+ - Ask for explicit confirmation before removal
41
+ - Provide option to update the path if file was moved
42
+ - Log the decision (remove/update/keep) for final report
43
+
44
+ 5. Update `docs/index.md`:
45
+ - Maintain existing structure and organization
46
+ - Create level 2 sections (`##`) for each subfolder
47
+ - List root-level documents first
48
+ - Add missing entries with descriptions
49
+ - Update outdated entries
50
+ - Remove only entries that were confirmed for removal
51
+ - Ensure consistent formatting throughout
52
+
53
+ ### Index Structure Format
54
+
55
+ The index should be organized as follows:
56
+
57
+ ```markdown
58
+ # Documentation Index
59
+
60
+ ## Root Documents
61
+
62
+ ### [Document Title](./document.md)
63
+
64
+ Brief description of the document's purpose and contents.
65
+
66
+ ### [Another Document](./another.md)
67
+
68
+ Description here.
69
+
70
+ ## Folder Name
71
+
72
+ Documents within the `folder-name/` directory:
73
+
74
+ ### [Document in Folder](./folder-name/document.md)
75
+
76
+ Description of this document.
77
+
78
+ ### [Another in Folder](./folder-name/another.md)
79
+
80
+ Description here.
81
+
82
+ ## Another Folder
83
+
84
+ Documents within the `another-folder/` directory:
85
+
86
+ ### [Nested Document](./another-folder/document.md)
87
+
88
+ Description of nested document.
89
+ ```
90
+
91
+ ### Index Entry Format
92
+
93
+ Each entry should follow this format:
94
+
95
+ ```markdown
96
+ ### [Document Title](relative/path/to/file.md)
97
+
98
+ Brief description of the document's purpose and contents.
99
+ ```
100
+
101
+ ### Rules of Operation
102
+
103
+ 1. NEVER modify the content of indexed files
104
+ 2. Preserve existing descriptions in index.md when they are adequate
105
+ 3. Maintain any existing categorization or grouping in the index
106
+ 4. Use relative paths for all links (starting with `./`)
107
+ 5. Ensure descriptions are concise but informative
108
+ 6. NEVER remove entries without explicit confirmation
109
+ 7. Report any broken links or inconsistencies found
110
+ 8. Allow path updates for moved files before considering removal
111
+ 9. Create folder sections using level 2 headings (`##`)
112
+ 10. Sort folders alphabetically, with root documents listed first
113
+ 11. Within each section, sort documents alphabetically by title
114
+
115
+ ### Process Output
116
+
117
+ The task will provide:
118
+
119
+ 1. A summary of changes made to index.md
120
+ 2. List of newly indexed files (organized by folder)
121
+ 3. List of updated entries
122
+ 4. List of entries presented for removal and their status:
123
+ - Confirmed removals
124
+ - Updated paths
125
+ - Kept despite missing file
126
+ 5. Any new folders discovered
127
+ 6. Any other issues or inconsistencies found
128
+
129
+ ### Handling Missing Files
130
+
131
+ For each file referenced in the index but not found in the filesystem:
132
+
133
+ 1. Present the entry:
134
+
135
+ ```markdown
136
+ Missing file detected:
137
+ Title: [Document Title]
138
+ Path: relative/path/to/file.md
139
+ Description: Existing description
140
+ Section: [Root Documents | Folder Name]
141
+
142
+ Options:
143
+
144
+ 1. Remove this entry
145
+ 2. Update the file path
146
+ 3. Keep entry (mark as temporarily unavailable)
147
+
148
+ Please choose an option (1/2/3):
149
+ ```
150
+
151
+ 2. Wait for user confirmation before taking any action
152
+ 3. Log the decision for the final report
153
+
154
+ ### Special Cases
155
+
156
+ 1. **Sharded Documents**: If a folder contains an `index.md` file, treat it as a sharded document:
157
+ - Use the folder's `index.md` title as the section title
158
+ - List the folder's documents as subsections
159
+ - Note in the description that this is a multi-part document
160
+
161
+ 2. **README files**: Convert `README.md` to more descriptive titles based on content
162
+
163
+ 3. **Nested Subfolders**: For deeply nested folders, maintain the hierarchy but limit to 2 levels in the main index. Deeper structures should have their own index files.
164
+
165
+ ## Required Input
166
+
167
+ Please provide:
168
+
169
+ 1. Location of the `docs/` directory (default: `./docs`)
170
+ 2. Confirmation of write access to `docs/index.md`
171
+ 3. Any specific categorization preferences
172
+ 4. Any files or directories to exclude from indexing (e.g., `.git`, `node_modules`)
173
+ 5. Whether to include hidden files/folders (starting with `.`)
174
+
175
+ Would you like to proceed with documentation indexing? Please provide the required input above.
@@ -0,0 +1,77 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # KB Mode Interaction Task
4
+
5
+ ## Purpose
6
+
7
+ Provide a user-friendly interface to the BMad knowledge base without overwhelming users with information upfront.
8
+
9
+ ## Instructions
10
+
11
+ When entering KB mode (\*kb-mode), follow these steps:
12
+
13
+ ### 1. Welcome and Guide
14
+
15
+ Announce entering KB mode with a brief, friendly introduction.
16
+
17
+ ### 2. Present Topic Areas
18
+
19
+ Offer a concise list of main topic areas the user might want to explore:
20
+
21
+ **What would you like to know more about?**
22
+
23
+ 1. **Setup & Installation** - Getting started with BMad
24
+ 2. **Workflows** - Choosing the right workflow for your project
25
+ 3. **Web vs IDE** - When to use each environment
26
+ 4. **Agents** - Understanding specialized agents and their roles
27
+ 5. **Documents** - PRDs, Architecture, Stories, and more
28
+ 6. **Agile Process** - How BMad implements Agile methodologies
29
+ 7. **Configuration** - Customizing BMad for your needs
30
+ 8. **Best Practices** - Tips for effective BMad usage
31
+
32
+ Or ask me about anything else related to BMad-Method!
33
+
34
+ ### 3. Respond Contextually
35
+
36
+ - Wait for user's specific question or topic selection
37
+ - Provide focused, relevant information from the knowledge base
38
+ - Offer to dive deeper or explore related topics
39
+ - Keep responses concise unless user asks for detailed explanations
40
+
41
+ ### 4. Interactive Exploration
42
+
43
+ - After answering, suggest related topics they might find helpful
44
+ - Maintain conversational flow rather than data dumping
45
+ - Use examples when appropriate
46
+ - Reference specific documentation sections when relevant
47
+
48
+ ### 5. Exit Gracefully
49
+
50
+ When user is done or wants to exit KB mode:
51
+
52
+ - Summarize key points discussed if helpful
53
+ - Remind them they can return to KB mode anytime with \*kb-mode
54
+ - Suggest next steps based on what was discussed
55
+
56
+ ## Example Interaction
57
+
58
+ **User**: \*kb-mode
59
+
60
+ **Assistant**: I've entered KB mode and have access to the full BMad knowledge base. I can help you with detailed information about any aspect of BMad-Method.
61
+
62
+ **What would you like to know more about?**
63
+
64
+ 1. **Setup & Installation** - Getting started with BMad
65
+ 2. **Workflows** - Choosing the right workflow for your project
66
+ 3. **Web vs IDE** - When to use each environment
67
+ 4. **Agents** - Understanding specialized agents and their roles
68
+ 5. **Documents** - PRDs, Architecture, Stories, and more
69
+ 6. **Agile Process** - How BMad implements Agile methodologies
70
+ 7. **Configuration** - Customizing BMad for your needs
71
+ 8. **Best Practices** - Tips for effective BMad usage
72
+
73
+ Or ask me about anything else related to BMad-Method!
74
+
75
+ **User**: Tell me about workflows
76
+
77
+ **Assistant**: [Provides focused information about workflows from the KB, then offers to explore specific workflow types or related topics]
@@ -0,0 +1,345 @@
1
+ <!-- Powered by BMAD™ Core -->
2
+
3
+ # nfr-assess
4
+
5
+ Quick NFR validation focused on the core four: security, performance, reliability, maintainability.
6
+
7
+ ## Inputs
8
+
9
+ ```yaml
10
+ required:
11
+ - story_id: '{epic}.{story}' # e.g., "1.3"
12
+ - story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
13
+
14
+ optional:
15
+ - architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
16
+ - technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
17
+ - acceptance_criteria: From story file
18
+ ```
19
+
20
+ ## Purpose
21
+
22
+ Assess non-functional requirements for a story and generate:
23
+
24
+ 1. YAML block for the gate file's `nfr_validation` section
25
+ 2. Brief markdown assessment saved to `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
26
+
27
+ ## Process
28
+
29
+ ### 0. Fail-safe for Missing Inputs
30
+
31
+ If story_path or story file can't be found:
32
+
33
+ - Still create assessment file with note: "Source story not found"
34
+ - Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
35
+ - Continue with assessment to provide value
36
+
37
+ ### 1. Elicit Scope
38
+
39
+ **Interactive mode:** Ask which NFRs to assess
40
+ **Non-interactive mode:** Default to core four (security, performance, reliability, maintainability)
41
+
42
+ ```text
43
+ Which NFRs should I assess? (Enter numbers or press Enter for default)
44
+ [1] Security (default)
45
+ [2] Performance (default)
46
+ [3] Reliability (default)
47
+ [4] Maintainability (default)
48
+ [5] Usability
49
+ [6] Compatibility
50
+ [7] Portability
51
+ [8] Functional Suitability
52
+
53
+ > [Enter for 1-4]
54
+ ```
55
+
56
+ ### 2. Check for Thresholds
57
+
58
+ Look for NFR requirements in:
59
+
60
+ - Story acceptance criteria
61
+ - `docs/architecture/*.md` files
62
+ - `docs/technical-preferences.md`
63
+
64
+ **Interactive mode:** Ask for missing thresholds
65
+ **Non-interactive mode:** Mark as CONCERNS with "Target unknown"
66
+
67
+ ```text
68
+ No performance requirements found. What's your target response time?
69
+ > 200ms for API calls
70
+
71
+ No security requirements found. Required auth method?
72
+ > JWT with refresh tokens
73
+ ```
74
+
75
+ **Unknown targets policy:** If a target is missing and not provided, mark status as CONCERNS with notes: "Target unknown"
76
+
77
+ ### 3. Quick Assessment
78
+
79
+ For each selected NFR, check:
80
+
81
+ - Is there evidence it's implemented?
82
+ - Can we validate it?
83
+ - Are there obvious gaps?
84
+
85
+ ### 4. Generate Outputs
86
+
87
+ ## Output 1: Gate YAML Block
88
+
89
+ Generate ONLY for NFRs actually assessed (no placeholders):
90
+
91
+ ```yaml
92
+ # Gate YAML (copy/paste):
93
+ nfr_validation:
94
+ _assessed: [security, performance, reliability, maintainability]
95
+ security:
96
+ status: CONCERNS
97
+ notes: 'No rate limiting on auth endpoints'
98
+ performance:
99
+ status: PASS
100
+ notes: 'Response times < 200ms verified'
101
+ reliability:
102
+ status: PASS
103
+ notes: 'Error handling and retries implemented'
104
+ maintainability:
105
+ status: CONCERNS
106
+ notes: 'Test coverage at 65%, target is 80%'
107
+ ```
108
+
109
+ ## Deterministic Status Rules
110
+
111
+ - **FAIL**: Any selected NFR has critical gap or target clearly not met
112
+ - **CONCERNS**: No FAILs, but any NFR is unknown/partial/missing evidence
113
+ - **PASS**: All selected NFRs meet targets with evidence
114
+
115
+ ## Quality Score Calculation
116
+
117
+ ```
118
+ quality_score = 100
119
+ - 20 for each FAIL attribute
120
+ - 10 for each CONCERNS attribute
121
+ Floor at 0, ceiling at 100
122
+ ```
123
+
124
+ If `technical-preferences.md` defines custom weights, use those instead.
125
+
126
+ ## Output 2: Brief Assessment Report
127
+
128
+ **ALWAYS save to:** `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
129
+
130
+ ```markdown
131
+ # NFR Assessment: {epic}.{story}
132
+
133
+ Date: {date}
134
+ Reviewer: Quinn
135
+
136
+ <!-- Note: Source story not found (if applicable) -->
137
+
138
+ ## Summary
139
+
140
+ - Security: CONCERNS - Missing rate limiting
141
+ - Performance: PASS - Meets <200ms requirement
142
+ - Reliability: PASS - Proper error handling
143
+ - Maintainability: CONCERNS - Test coverage below target
144
+
145
+ ## Critical Issues
146
+
147
+ 1. **No rate limiting** (Security)
148
+ - Risk: Brute force attacks possible
149
+ - Fix: Add rate limiting middleware to auth endpoints
150
+
151
+ 2. **Test coverage 65%** (Maintainability)
152
+ - Risk: Untested code paths
153
+ - Fix: Add tests for uncovered branches
154
+
155
+ ## Quick Wins
156
+
157
+ - Add rate limiting: ~2 hours
158
+ - Increase test coverage: ~4 hours
159
+ - Add performance monitoring: ~1 hour
160
+ ```
161
+
162
+ ## Output 3: Story Update Line
163
+
164
+ **End with this line for the review task to quote:**
165
+
166
+ ```
167
+ NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
168
+ ```
169
+
170
+ ## Output 4: Gate Integration Line
171
+
172
+ **Always print at the end:**
173
+
174
+ ```
175
+ Gate NFR block ready → paste into qa.qaLocation/gates/{epic}.{story}-{slug}.yml under nfr_validation
176
+ ```
177
+
178
+ ## Assessment Criteria
179
+
180
+ ### Security
181
+
182
+ **PASS if:**
183
+
184
+ - Authentication implemented
185
+ - Authorization enforced
186
+ - Input validation present
187
+ - No hardcoded secrets
188
+
189
+ **CONCERNS if:**
190
+
191
+ - Missing rate limiting
192
+ - Weak encryption
193
+ - Incomplete authorization
194
+
195
+ **FAIL if:**
196
+
197
+ - No authentication
198
+ - Hardcoded credentials
199
+ - SQL injection vulnerabilities
200
+
201
+ ### Performance
202
+
203
+ **PASS if:**
204
+
205
+ - Meets response time targets
206
+ - No obvious bottlenecks
207
+ - Reasonable resource usage
208
+
209
+ **CONCERNS if:**
210
+
211
+ - Close to limits
212
+ - Missing indexes
213
+ - No caching strategy
214
+
215
+ **FAIL if:**
216
+
217
+ - Exceeds response time limits
218
+ - Memory leaks
219
+ - Unoptimized queries
220
+
221
+ ### Reliability
222
+
223
+ **PASS if:**
224
+
225
+ - Error handling present
226
+ - Graceful degradation
227
+ - Retry logic where needed
228
+
229
+ **CONCERNS if:**
230
+
231
+ - Some error cases unhandled
232
+ - No circuit breakers
233
+ - Missing health checks
234
+
235
+ **FAIL if:**
236
+
237
+ - No error handling
238
+ - Crashes on errors
239
+ - No recovery mechanisms
240
+
241
+ ### Maintainability
242
+
243
+ **PASS if:**
244
+
245
+ - Test coverage meets target
246
+ - Code well-structured
247
+ - Documentation present
248
+
249
+ **CONCERNS if:**
250
+
251
+ - Test coverage below target
252
+ - Some code duplication
253
+ - Missing documentation
254
+
255
+ **FAIL if:**
256
+
257
+ - No tests
258
+ - Highly coupled code
259
+ - No documentation
260
+
261
+ ## Quick Reference
262
+
263
+ ### What to Check
264
+
265
+ ```yaml
266
+ security:
267
+ - Authentication mechanism
268
+ - Authorization checks
269
+ - Input validation
270
+ - Secret management
271
+ - Rate limiting
272
+
273
+ performance:
274
+ - Response times
275
+ - Database queries
276
+ - Caching usage
277
+ - Resource consumption
278
+
279
+ reliability:
280
+ - Error handling
281
+ - Retry logic
282
+ - Circuit breakers
283
+ - Health checks
284
+ - Logging
285
+
286
+ maintainability:
287
+ - Test coverage
288
+ - Code structure
289
+ - Documentation
290
+ - Dependencies
291
+ ```
292
+
293
+ ## Key Principles
294
+
295
+ - Focus on the core four NFRs by default
296
+ - Quick assessment, not deep analysis
297
+ - Gate-ready output format
298
+ - Brief, actionable findings
299
+ - Skip what doesn't apply
300
+ - Deterministic status rules for consistency
301
+ - Unknown targets → CONCERNS, not guesses
302
+
303
+ ---
304
+
305
+ ## Appendix: ISO 25010 Reference
306
+
307
+ <details>
308
+ <summary>Full ISO 25010 Quality Model (click to expand)</summary>
309
+
310
+ ### All 8 Quality Characteristics
311
+
312
+ 1. **Functional Suitability**: Completeness, correctness, appropriateness
313
+ 2. **Performance Efficiency**: Time behavior, resource use, capacity
314
+ 3. **Compatibility**: Co-existence, interoperability
315
+ 4. **Usability**: Learnability, operability, accessibility
316
+ 5. **Reliability**: Maturity, availability, fault tolerance
317
+ 6. **Security**: Confidentiality, integrity, authenticity
318
+ 7. **Maintainability**: Modularity, reusability, testability
319
+ 8. **Portability**: Adaptability, installability
320
+
321
+ Use these when assessing beyond the core four.
322
+
323
+ </details>
324
+
325
+ <details>
326
+ <summary>Example: Deep Performance Analysis (click to expand)</summary>
327
+
328
+ ```yaml
329
+ performance_deep_dive:
330
+ response_times:
331
+ p50: 45ms
332
+ p95: 180ms
333
+ p99: 350ms
334
+ database:
335
+ slow_queries: 2
336
+ missing_indexes: ['users.email', 'orders.user_id']
337
+ caching:
338
+ hit_rate: 0%
339
+ recommendation: 'Add Redis for session data'
340
+ load_test:
341
+ max_rps: 150
342
+ breaking_point: 200 rps
343
+ ```
344
+
345
+ </details>