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:
Max
2026-01-26 12:28:43 +07:00
commit 3fbbb1a93b
812 changed files with 150531 additions and 0 deletions

View 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