BMAD-METHOD/core/resources/excalidraw
elsahafy fb3c623bae Fix XML/YAML schemas, add security validations, and standardize templates
Messenger System:
- Update YAML examples to use canonical field names (from/to for single-agent, to_agents: "all" for broadcasts)
- Add file locking and atomic writes to receive-message.xml for concurrent safety
- Implement per-agent archiving under archive_dir
- Return structured output {messages, count, status_message} from all code paths

Pipeline Orchestrator:
- Sanitize pipeline names to [a-z0-9-_] with uniqueness token (HHmmss)
- Add path traversal validation for pipeline_id in all commands
- Add deadlock detection for cyclic/unmet dependencies
- Fix error_handling default and conditional completion status

Token Isolation (spawn-agent.xml):
- Add explicit config keys (agent_manifest, output_dir)
- Fix prompt construction flow (base_prompt -> final_prompt)
- Add output_file path validation and allow_overwrite flag

Core Tools:
- code-metrics.xml: Add default include patterns and expanded exclude list
- context-extractor.xml: Add exclude param, focus validation, security redaction
- dependency-check.xml: Add outdated_command to all package managers
- schema-validator.xml: Fix versions format, add deterministic error handling, wrap output in CDATA

Session Manager:
- Add tokens.max field (default 150000) to schema
- Unify token field names (saved instead of saved_by_isolation)
- Add Token Deserialization section with fallback logic

Templates:
- openapi.template.yaml: Add missing Resources tag
- security-audit instructions: Convert to Handlebars {{}} syntax

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-09 14:23:46 +04:00
..
README.md Fix XML/YAML schemas, add security validations, and standardize templates 2026-01-09 14:23:46 +04:00
excalidraw-helpers.md Fix XML/YAML schemas, add security validations, and standardize templates 2026-01-09 14:23:46 +04:00
library-loader.md Fix XML/YAML schemas, add security validations, and standardize templates 2026-01-09 14:23:46 +04:00
validate-json-instructions.md Fix XML/YAML schemas, add security validations, and standardize templates 2026-01-09 14:23:46 +04:00

README.md

Core Excalidraw Resources

Universal knowledge for creating Excalidraw diagrams. All agents that create Excalidraw files should reference these resources.

Purpose

Provides the HOW (universal knowledge) while agents provide the WHAT (domain-specific application).

Core = "How to create Excalidraw elements"

  • How to group shapes with text labels
  • How to calculate text width
  • How to create arrows with proper bindings
  • How to validate JSON syntax
  • Base structure and primitives

Agents = "What diagrams to create"

  • Frame Expert (BMM): Technical flowcharts, architecture diagrams, wireframes
  • Presentation Master (CIS): Pitch decks, creative visuals, Rube Goldberg machines
  • Tech Writer (BMM): Documentation diagrams, concept explanations

Files in This Directory

excalidraw-helpers.md

Universal element creation patterns

  • Text width calculation
  • Element grouping rules (shapes + labels)
  • Grid alignment
  • Arrow creation (straight, elbow)
  • Theme application
  • Validation checklist
  • Optimization rules

Agents reference this to:

  • Create properly grouped shapes
  • Calculate text dimensions
  • Connect elements with arrows
  • Ensure valid structure

validate-json-instructions.md

Universal JSON validation process

  • How to validate Excalidraw JSON
  • Common errors and fixes
  • Workflow integration
  • Error recovery

Agents reference this to:

  • Validate files after creation
  • Fix syntax errors
  • Ensure files can be opened in Excalidraw

library-loader.md (Future)

How to load external .excalidrawlib files

  • Programmatic library loading
  • Community library integration
  • Custom library management

Status: To be developed when implementing external library support.

How Agents Use These Resources

Example: Frame Expert (Technical Diagrams)

# workflows/excalidraw-diagrams/create-flowchart/workflow.yaml
helpers: '{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md'

Domain-specific additions:

# workflows/excalidraw-diagrams/_shared/flowchart-templates.yaml
flowchart:
  start_node:
    type: ellipse
    width: 120
    height: 60
  process_box:
    type: rectangle
    width: 160
    height: 80
  decision_diamond:
    type: diamond
    width: 140
    height: 100

Example: Presentation Master (Creative Visuals)

# workflows/create-visual-metaphor/workflow.yaml
helpers: '{project-root}/_bmad/core/resources/excalidraw/excalidraw-helpers.md'
json_validation: '{project-root}/_bmad/core/resources/excalidraw/validate-json-instructions.md'

Domain-specific additions:

# workflows/_shared/creative-templates.yaml
rube_goldberg:
  whimsical_connector:
    type: arrow
    strokeStyle: dashed
    roughness: 2
  playful_box:
    type: rectangle
    roundness: 12

What Doesn't Belong in Core

Domain-Specific Elements:

  • Flowchart-specific templates (belongs in Frame Expert)
  • Pitch deck layouts (belongs in Presentation Master)
  • Documentation-specific styles (belongs in Tech Writer)

Agent Workflows:

  • How to create a flowchart (Frame Expert workflow)
  • How to create a pitch deck (Presentation Master workflow)
  • Step-by-step diagram creation (agent-specific)

Theming:

  • Currently in agent workflows
  • Future: Will be refactored to core as user-configurable themes

Architecture Principle

Single Source of Truth:

  • Core holds universal knowledge
  • Agents reference core, don't duplicate
  • Updates to core benefit all agents
  • Agents specialize with domain knowledge

DRY (Don't Repeat Yourself):

  • Element creation logic: ONCE in core
  • Text width calculation: ONCE in core
  • Validation process: ONCE in core
  • Arrow binding patterns: ONCE in core

Future Enhancements

  1. External Library Loader - Load .excalidrawlib files from libraries.excalidraw.com
  2. Theme Management - User-configurable color themes saved in core
  3. Component Library - Shared reusable components across agents
  4. Layout Algorithms - Auto-layout helpers for positioning elements