Initial commit: Brachnha Insight project setup
- Next.js 14+ with App Router and TypeScript - Tailwind CSS and ShadCN UI styling - Zustand state management - Dexie.js for IndexedDB (local-first data) - Auth.js v5 for authentication - BMAD framework integration Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
269
_bmad/bmb/workflows/workflow/data/input-discovery-standards.md
Normal file
269
_bmad/bmb/workflows/workflow/data/input-discovery-standards.md
Normal file
@@ -0,0 +1,269 @@
|
||||
# Input Document Discovery Standards
|
||||
|
||||
**Purpose:** How workflows discover, validate, and select input documents from prior workflows or external sources.
|
||||
|
||||
---
|
||||
|
||||
## Discovery Patterns
|
||||
|
||||
### Pattern 1: Prior Workflow Output
|
||||
**Use when:** Workflow is part of a sequence (e.g., PRD → Architecture → Epics)
|
||||
|
||||
**Example:** BMM module pipeline - each of these are a workflow with many steps:
|
||||
```
|
||||
brainstorming → research → brief → PRD → UX → architecture → epics → sprint-planning
|
||||
```
|
||||
|
||||
Each workflow checks for output from prior workflow(s).
|
||||
|
||||
### Pattern 2: Module Folder Search
|
||||
**Use when:** Documents stored in known project location
|
||||
|
||||
**Example:** Manager review workflow searches `{project_folder}/employee-notes/`
|
||||
|
||||
### Pattern 3: User-Specified Paths
|
||||
**Use when:** User provides document locations
|
||||
|
||||
**Example:** Tax workflow asks for financial statement paths
|
||||
|
||||
### Pattern 4: Pattern-Based Discovery
|
||||
**Use when:** Search by file naming pattern
|
||||
|
||||
**Example:** Find all `*-brief.md` files in `{planning_artifacts}/`
|
||||
|
||||
---
|
||||
|
||||
## Discovery Step Pattern
|
||||
|
||||
**When:** Step 1 (init) or Step 2 (discovery)
|
||||
|
||||
**Frontmatter:**
|
||||
```yaml
|
||||
---
|
||||
# Input discovery variables
|
||||
inputDocuments: [] # Populated with discovered docs
|
||||
requiredInputCount: 1 # Minimum required to proceed
|
||||
optionalInputCount: 0 # Additional docs user may provide
|
||||
moduleInputFolder: '{planning_artifacts}' # Where to search
|
||||
inputFilePatterns: # File patterns to match
|
||||
- '*-prd.md'
|
||||
- '*-ux.md'
|
||||
---
|
||||
```
|
||||
|
||||
**Discovery Logic:**
|
||||
```markdown
|
||||
## 1. Check for Known Prior Workflow Outputs
|
||||
|
||||
Search in order:
|
||||
1. {module_output_folder}/[known-prior-workflow-output].md
|
||||
2. {project_folder}/[standard-locations]/
|
||||
3. {planning_artifacts}/
|
||||
4. User-provided paths
|
||||
|
||||
## 2. Pattern-Based Search
|
||||
|
||||
If no known prior workflow, search by patterns:
|
||||
- Look for files matching {inputFilePatterns}
|
||||
- Search in {moduleInputFolder}
|
||||
- Search in {project_folder}/docs/
|
||||
|
||||
## 3. Present Findings to User
|
||||
|
||||
"Found these documents that may be relevant:
|
||||
- [1] prd-my-project.md (created 3 days ago)
|
||||
- [2] ux-research.md (created 1 week ago)
|
||||
- [3] competitor-analysis.md
|
||||
|
||||
Which would you like to use? You can select multiple, or provide additional paths."
|
||||
|
||||
## 4. Confirm and Load
|
||||
|
||||
User confirms selection → Load selected documents
|
||||
Add to {inputDocuments} array in output frontmatter
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Required vs Optional Inputs
|
||||
|
||||
### Required Inputs
|
||||
Workflow cannot proceed without these.
|
||||
|
||||
**Example:** Architecture workflow requires PRD
|
||||
|
||||
```markdown
|
||||
## INPUT REQUIREMENT:
|
||||
|
||||
This workflow requires a Product Requirements Document to proceed.
|
||||
|
||||
Searching for PRD in:
|
||||
- {bmm_creations_output_folder}/prd-*.md
|
||||
- {planning_artifacts}/*-prd.md
|
||||
- {project_folder}/docs/*-prd.md
|
||||
|
||||
[If found:]
|
||||
"Found PRD: prd-my-project.md. Use this?"
|
||||
[If not found:]
|
||||
"No PRD found. This workflow requires a PRD to continue.
|
||||
Please provide the path to your PRD, or run the PRD workflow first."
|
||||
```
|
||||
|
||||
### Optional Inputs
|
||||
Workflow can proceed without these, but user may include.
|
||||
|
||||
**Example:** UX workflow can use research docs if available
|
||||
|
||||
```markdown
|
||||
## OPTIONAL INPUTS:
|
||||
|
||||
This workflow can incorporate research documents if available.
|
||||
|
||||
Searching for research in:
|
||||
- {bmm_creations_output_folder}/research-*.md
|
||||
- {project_folder}/research/
|
||||
|
||||
[If found:]
|
||||
"Found these research documents:
|
||||
- [1] user-interviews.md
|
||||
- [2] competitive-analysis.md
|
||||
Include any? (None required to proceed)"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Module Workflow Chaining
|
||||
|
||||
**For modules with sequential workflows:**
|
||||
|
||||
**Frontmatter in workflow.md:**
|
||||
```yaml
|
||||
---
|
||||
## INPUT FROM PRIOR WORKFLOFS
|
||||
|
||||
### Required Inputs:
|
||||
- {module_output_folder}/prd-{project_name}.md
|
||||
|
||||
### Optional Inputs:
|
||||
- {module_output_folder}/ux-research-{project_name}.md
|
||||
- {project_folder}/docs/competitor-analysis.md
|
||||
---
|
||||
```
|
||||
|
||||
**Step 1 discovery:**
|
||||
```markdown
|
||||
## 1. Discover Prior Workflow Outputs
|
||||
|
||||
Check for required inputs:
|
||||
1. Look for {module_output_folder}/prd-{project_name}.md
|
||||
2. If missing → Error: "Please run PRD workflow first"
|
||||
3. If found → Confirm with user
|
||||
|
||||
Check for optional inputs:
|
||||
1. Search {module_output_folder}/ for research-*.md
|
||||
2. Search {project_folder}/docs/ for *-analysis.md
|
||||
3. Present findings to user
|
||||
4. Add selections to {inputDocuments}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Input Validation
|
||||
|
||||
After discovery, validate inputs:
|
||||
|
||||
```markdown
|
||||
## INPUT VALIDATION:
|
||||
|
||||
For each discovered document:
|
||||
1. Load and read frontmatter
|
||||
2. Check workflowType field (should match expected)
|
||||
3. Check completeness (stepsCompleted should be complete)
|
||||
4. Check date (warn if document is very old)
|
||||
|
||||
[If validation fails:]
|
||||
"Document prd-my-project.md appears incomplete.
|
||||
Last step: step-06 (of 11)
|
||||
Recommend completing PRD workflow before proceeding.
|
||||
Proceed anyway? [Y]es [N]o"
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Multiple Input Selection
|
||||
|
||||
**When user can select multiple documents:**
|
||||
|
||||
```markdown
|
||||
## Document Selection
|
||||
|
||||
"Found these relevant documents:
|
||||
[1] prd-my-project.md (3 days ago) ✓ Recommended
|
||||
[2] prd-v1.md (2 months ago) ⚠ Older version
|
||||
[3] ux-research.md (1 week ago)
|
||||
|
||||
Enter numbers to include (comma-separated), or 'none' to skip:
|
||||
> 1, 3
|
||||
|
||||
Selected: prd-my-project.md, ux-research.md"
|
||||
```
|
||||
|
||||
**Track in frontmatter:**
|
||||
```yaml
|
||||
---
|
||||
inputDocuments:
|
||||
- path: '{output_folder}/prd-my-project.md'
|
||||
type: 'prd'
|
||||
source: 'prior-workflow'
|
||||
selected: true
|
||||
- path: '{output_folder}/ux-research.md'
|
||||
type: 'research'
|
||||
source: 'prior-workflow'
|
||||
selected: true
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Search Path Variables
|
||||
|
||||
Common module variables for input discovery:
|
||||
|
||||
| Variable | Purpose |
|
||||
| ------------------------ | -------------------------- |
|
||||
| `{module_output_folder}` | Prior workflow outputs |
|
||||
| `{planning_artifacts}` | General planning docs |
|
||||
| `{project_folder}/docs` | Project documentation |
|
||||
| `{product_knowledge}` | Product-specific knowledge |
|
||||
| `{user_documents}` | User-provided location |
|
||||
|
||||
---
|
||||
|
||||
## Discovery Step Template
|
||||
|
||||
```markdown
|
||||
---
|
||||
name: 'step-01-init'
|
||||
description: 'Initialize and discover input documents'
|
||||
|
||||
# Input Discovery
|
||||
inputDocuments: []
|
||||
requiredInputCount: 1
|
||||
moduleInputFolder: '{module_output_folder}'
|
||||
inputFilePatterns:
|
||||
- '*-prd.md'
|
||||
---
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Validation Checklist
|
||||
|
||||
For input discovery:
|
||||
- [ ] Required inputs defined in step frontmatter
|
||||
- [ ] Search paths defined (module variables or patterns)
|
||||
- [ ] User confirmation before using documents
|
||||
- [ ] Validation of document completeness
|
||||
- [ ] Clear error messages when required inputs missing
|
||||
- [ ] Support for multiple document selection
|
||||
- [ ] Optional inputs clearly marked as optional
|
||||
Reference in New Issue
Block a user