@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.
- package/.knowledge/.ext/.bmad-core/agent-teams/team-all.yaml +15 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-fullstack.yaml +19 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-ide-minimal.yaml +11 -0
- package/.knowledge/.ext/.bmad-core/agent-teams/team-no-ui.yaml +14 -0
- package/.knowledge/.ext/.bmad-core/agents/analyst.md +84 -0
- package/.knowledge/.ext/.bmad-core/agents/architect.md +85 -0
- package/.knowledge/.ext/.bmad-core/agents/bmad-master.md +110 -0
- package/.knowledge/.ext/.bmad-core/agents/bmad-orchestrator.md +147 -0
- package/.knowledge/.ext/.bmad-core/agents/dev.md +81 -0
- package/.knowledge/.ext/.bmad-core/agents/pm.md +84 -0
- package/.knowledge/.ext/.bmad-core/agents/po.md +79 -0
- package/.knowledge/.ext/.bmad-core/agents/qa.md +90 -0
- package/.knowledge/.ext/.bmad-core/agents/ra.md +74 -0
- package/.knowledge/.ext/.bmad-core/agents/sm.md +65 -0
- package/.knowledge/.ext/.bmad-core/agents/ux-expert.md +69 -0
- package/.knowledge/.ext/.bmad-core/checklists/architect-checklist.md +440 -0
- package/.knowledge/.ext/.bmad-core/checklists/change-checklist.md +184 -0
- package/.knowledge/.ext/.bmad-core/checklists/pm-checklist.md +372 -0
- package/.knowledge/.ext/.bmad-core/checklists/po-master-checklist.md +434 -0
- package/.knowledge/.ext/.bmad-core/checklists/story-dod-checklist.md +96 -0
- package/.knowledge/.ext/.bmad-core/checklists/story-draft-checklist.md +155 -0
- package/.knowledge/.ext/.bmad-core/checklists/trd-checklist.md +226 -0
- package/.knowledge/.ext/.bmad-core/core-config.yaml +22 -0
- package/.knowledge/.ext/.bmad-core/data/bmad-kb.md +809 -0
- package/.knowledge/.ext/.bmad-core/data/brainstorming-techniques.md +38 -0
- package/.knowledge/.ext/.bmad-core/data/elicitation-methods.md +156 -0
- package/.knowledge/.ext/.bmad-core/data/technical-preferences.md +5 -0
- package/.knowledge/.ext/.bmad-core/data/test-levels-framework.md +148 -0
- package/.knowledge/.ext/.bmad-core/data/test-priorities-matrix.md +174 -0
- package/.knowledge/.ext/.bmad-core/enhanced-ide-development-workflow.md +248 -0
- package/.knowledge/.ext/.bmad-core/install-manifest.yaml +512 -0
- package/.knowledge/.ext/.bmad-core/tasks/advanced-elicitation.md +119 -0
- package/.knowledge/.ext/.bmad-core/tasks/analyze-prd.md +123 -0
- package/.knowledge/.ext/.bmad-core/tasks/apply-qa-fixes.md +150 -0
- package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-epic.md +162 -0
- package/.knowledge/.ext/.bmad-core/tasks/brownfield-create-story.md +149 -0
- package/.knowledge/.ext/.bmad-core/tasks/correct-course.md +72 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-brownfield-story.md +314 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-deep-research-prompt.md +280 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-doc.md +103 -0
- package/.knowledge/.ext/.bmad-core/tasks/create-next-story.md +114 -0
- package/.knowledge/.ext/.bmad-core/tasks/document-project.md +345 -0
- package/.knowledge/.ext/.bmad-core/tasks/execute-checklist.md +88 -0
- package/.knowledge/.ext/.bmad-core/tasks/facilitate-brainstorming-session.md +138 -0
- package/.knowledge/.ext/.bmad-core/tasks/generate-ai-frontend-prompt.md +53 -0
- package/.knowledge/.ext/.bmad-core/tasks/index-docs.md +175 -0
- package/.knowledge/.ext/.bmad-core/tasks/kb-mode-interaction.md +77 -0
- package/.knowledge/.ext/.bmad-core/tasks/nfr-assess.md +345 -0
- package/.knowledge/.ext/.bmad-core/tasks/qa-gate.md +163 -0
- package/.knowledge/.ext/.bmad-core/tasks/review-story.md +316 -0
- package/.knowledge/.ext/.bmad-core/tasks/risk-profile.md +355 -0
- package/.knowledge/.ext/.bmad-core/tasks/shard-doc.md +187 -0
- package/.knowledge/.ext/.bmad-core/tasks/test-design.md +176 -0
- package/.knowledge/.ext/.bmad-core/tasks/trace-requirements.md +266 -0
- package/.knowledge/.ext/.bmad-core/tasks/validate-next-story.md +136 -0
- package/.knowledge/.ext/.bmad-core/tasks/validate-trd.md +158 -0
- package/.knowledge/.ext/.bmad-core/templates/architecture-tmpl.yaml +651 -0
- package/.knowledge/.ext/.bmad-core/templates/brainstorming-output-tmpl.yaml +156 -0
- package/.knowledge/.ext/.bmad-core/templates/brownfield-architecture-tmpl.yaml +478 -0
- package/.knowledge/.ext/.bmad-core/templates/brownfield-prd-tmpl.yaml +281 -0
- package/.knowledge/.ext/.bmad-core/templates/competitor-analysis-tmpl.yaml +349 -0
- package/.knowledge/.ext/.bmad-core/templates/front-end-architecture-tmpl.yaml +273 -0
- package/.knowledge/.ext/.bmad-core/templates/front-end-spec-tmpl.yaml +360 -0
- package/.knowledge/.ext/.bmad-core/templates/fullstack-architecture-tmpl.yaml +947 -0
- package/.knowledge/.ext/.bmad-core/templates/market-research-tmpl.yaml +253 -0
- package/.knowledge/.ext/.bmad-core/templates/prd-tmpl.yaml +203 -0
- package/.knowledge/.ext/.bmad-core/templates/project-brief-tmpl.yaml +222 -0
- package/.knowledge/.ext/.bmad-core/templates/qa-gate-tmpl.yaml +103 -0
- package/.knowledge/.ext/.bmad-core/templates/story-tmpl.yaml +138 -0
- package/.knowledge/.ext/.bmad-core/templates/trd-tmpl.yaml +198 -0
- package/.knowledge/.ext/.bmad-core/user-guide.md +530 -0
- package/.knowledge/.ext/.bmad-core/utils/bmad-doc-template.md +327 -0
- package/.knowledge/.ext/.bmad-core/utils/workflow-management.md +71 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-fullstack.yaml +298 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-service.yaml +188 -0
- package/.knowledge/.ext/.bmad-core/workflows/brownfield-ui.yaml +198 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-fullstack.yaml +241 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-service.yaml +207 -0
- package/.knowledge/.ext/.bmad-core/workflows/greenfield-ui.yaml +236 -0
- package/.knowledge/.ext/.bmad-core/working-in-the-brownfield.md +606 -0
- package/.knowledge/.ext/coding/ddd-architecture.md +223 -0
- package/.knowledge/.ext/coding/java-standards.md +308 -0
- package/.knowledge/.ext/coding/mybatis-standards.md +407 -0
- package/.knowledge/.ext/coding/sql-standards.md +263 -0
- package/.knowledge/.ext/coding/thrift-service.md +292 -0
- package/.knowledge/BMAD.md +255 -0
- package/.knowledge/coding.md +135 -0
- package/dist/package.json +4 -3
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/ui/components/Tips.js +1 -1
- package/dist/src/ui/components/Tips.js.map +1 -1
- package/dist/src/ui/hooks/usePhraseCycler.js +2 -2
- package/dist/src/ui/hooks/usePhraseCycler.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- 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>
|