Files
brachnha-insight/_bmad/bmb/workflows/workflow/data/menu-handling-standards.md
Max 3fbbb1a93b 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>
2026-01-26 12:28:43 +07:00

5.0 KiB

Menu Handling Standards

CRITICAL: Every menu MUST have a handler section. No exceptions.


Reserved Letters

Letter Purpose After Execution
A Advanced Elicitation Redisplay menu
P Party Mode Redisplay menu
C Continue/Accept Save → update → load next step
X Exit/Cancel End workflow

Custom letters allowed (L/R/F/etc.) but don't conflict with reserved.


Required Structure

Section 1: Display

### N. Present MENU OPTIONS

Display: "**Select:** [A] [action] [P] [action] [C] Continue"

Section 2: Handler (MANDATORY)

#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)

Section 3: Execution Rules

#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu

When To Include A/P

DON'T Include A/P:

  • Step 1 (init) - no content to refine yet
  • Step 2 if only loading documents
  • Validation sequences - auto-flow instead
  • Simple data gathering

DO Include A/P:

  • Collaborative content creation
  • User might want alternatives
  • Quality gate before proceeding
  • Creative exploration valuable

Menu Patterns

Pattern 1: Standard A/P/C

Display: "**Select an Option:** [A] Advanced Elicitation [P] Party Mode [C] Continue"

#### Menu Handling Logic:
- IF A: Execute {advancedElicitationTask}, and when finished redisplay the menu
- IF P: Execute {partyModeWorkflow}, and when finished redisplay the menu
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)

#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'
- After other menu items execution, return to this menu

Pattern 2: C Only (No A/P)

Display: "**Select:** [C] Continue"

#### Menu Handling Logic:
- IF C: Save content to {outputFile}, update frontmatter, then load, read entire file, then execute {nextStepFile}
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)

#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- ONLY proceed to next step when user selects 'C'

Use for: Step 1, document discovery, simple progression

Pattern 3: Auto-Proceed (No Menu)

Display: "**Proceeding to [next step]...**"

#### Menu Handling Logic:
- After [completion condition], immediately load, read entire file, then execute {nextStepFile}

#### EXECUTION RULES:
- This is an [auto-proceed reason] step with no user choices
- Proceed directly to next step after setup

Use for: Init steps, validation sequences

Pattern 4: Branching

Display: "**Select:** [L] Load Existing [N] Create New [C] Continue"

#### Menu Handling Logic:
- IF L: Load existing document, then load, read entire file, then execute {stepForExisting}
- IF N: Create new document, then load, read entire file, then execute {stepForNew}
- IF C: Save content to {outputFile}, update frontmatter, check {condition}, then load appropriate step
- IF Any other: help user, then [Redisplay Menu Options](#n-present-menu-options)

#### EXECUTION RULES:
- ALWAYS halt and wait for user input after presenting menu
- Branching options load different steps based on user choice

Critical Violations

DON'T:

# Missing Handler Section
Display: "**Select:** [C] Continue"
[NO HANDLER - CRITICAL ERROR!]

# A/P in Step 1 (doesn't make sense)
Display: "**Select:** [A] Advanced Elicitation [P] Party Mode [C] Continue"

# Forgetting redisplay
- IF A: Execute {advancedElicitationTask}
# Should end with: ", and when finished redisplay the menu"

# Missing halt instruction
#### EXECUTION RULES:
- ONLY proceed to next step when user selects 'C'
# MISSING: "ALWAYS halt and wait for user input after presenting menu"

DO:

  • Handler section immediately follows Display
  • "Halt and wait" in EXECUTION RULES
  • Non-C options specify "redisplay menu"
  • A/P only when appropriate for step type

Validation Checklist

For every menu:

  • Display section present
  • Handler section immediately follows
  • EXECUTION RULES section present
  • "Halt and wait" instruction included
  • A/P options appropriate for step type
  • Non-C options redisplay menu
  • C option: save → update → load next
  • All file references use variables