|
|
||
|---|---|---|
| .. | ||
| README.md | ||
| commit-poet.agent.yaml | ||
README.md
Simple Agent Reference: Commit Poet (Inkwell Von Comitizen)
This folder contains a complete reference implementation of a BMAD Simple Agent - a self-contained agent with all logic embedded within a single YAML file.
Overview
Agent Name: Inkwell Von Comitizen Type: Simple Agent (Standalone) Purpose: Transform commit messages into art with multiple writing styles
This reference demonstrates:
- Pure self-contained architecture (no external dependencies)
- Embedded prompts using
action="#prompt-id"pattern - Multiple sophisticated output modes from single input
- Strong personality-driven design
- Complete YAML schema for Simple Agents
File Structure
stand-alone/
├── README.md # This file - architecture overview
└── commit-poet.agent.yaml # Complete agent definition (single file!)
That's it! Simple Agents are self-contained - everything lives in one YAML file.
Key Architecture Patterns
1. Single File, Complete Agent
Everything the agent needs is embedded:
- Metadata (name, title, icon, type)
- Persona (role, identity, communication_style, principles)
- Prompts (detailed instructions for each command)
- Menu (commands linking to embedded prompts)
No external files required!
2. Embedded Prompts with ID References
Instead of inline action text, complex prompts are defined separately and referenced by ID:
prompts:
- id: conventional-commit
content: |
OH! Let's craft a BEAUTIFUL conventional commit message!
First, I need to understand your changes...
[Detailed instructions]
menu:
- trigger: conventional
action: '#conventional-commit' # References the prompt above
description: 'Craft a structured conventional commit'
Benefits:
- Clean separation of menu structure from prompt content
- Prompts can be as detailed as needed
- Easy to update individual prompts
- Commands stay concise in the menu
3. The # Reference Pattern
When you see action="#prompt-id":
- The
#signals: "This is an internal reference" - LLM looks for
<prompt id="prompt-id">in the same agent - Executes that prompt's content as the instruction
This is different from:
action="inline text"- Execute this text directlyexec="{path}"- Load external file
4. Multiple Output Modes
Single agent provides 10+ different ways to accomplish variations of the same core task:
*conventional- Structured commits*story- Narrative style*haiku- Poetic brevity*explain- Deep "why" explanation*dramatic- Theatrical flair*emoji-story- Visual storytelling*tldr- Ultra-minimal- Plus utility commands (analyze, improve, batch)
Each mode has its own detailed prompt but shares the same agent personality.
5. Strong Personality
The agent has a memorable, consistent personality:
- Enthusiastic wordsmith who LOVES finding perfect words
- Gets genuinely excited about commit messages
- Uses literary metaphors
- Quotes authors when appropriate
- Sheds tears of joy over good variable names
This personality is maintained across ALL commands through the persona definition.
When to Use Simple Agents
Perfect for:
- Single-purpose tools (calculators, converters, analyzers)
- Tasks that don't need external data
- Utilities that can be completely self-contained
- Quick operations with embedded logic
- Personality-driven assistants with focused domains
Not ideal for:
- Agents needing persistent memory across sessions
- Domain-specific experts with knowledge bases
- Agents that need to access specific folders/files
- Complex multi-workflow orchestration
YAML Schema Deep Dive
agent:
metadata:
id: .bmad/agents/{agent-name}/{agent-name}.md # Build path
name: "Display Name"
title: "Professional Title"
icon: "🎭"
type: simple # CRITICAL: Identifies as Simple Agent
persona:
role: |
First-person description of what the agent does
identity: |
Background, experience, specializations (use "I" voice)
communication_style: |
HOW the agent communicates (tone, quirks, patterns)
principles:
- "I believe..." statements
- Core values that guide behavior
prompts:
- id: unique-identifier
content: |
Detailed instructions for this command
Can be as long and detailed as needed
Include examples, steps, formats
menu:
- trigger: command-name
action: "#prompt-id"
description: "What shows in the menu"
Why This Pattern is Powerful
- Zero Dependencies - Works anywhere, no setup required
- Portable - Single file can be moved/shared easily
- Maintainable - All logic in one place
- Flexible - Multiple modes/commands from one personality
- Memorable - Strong personality creates engagement
- Sophisticated - Complex prompts despite simple architecture
Comparison: Simple vs Expert Agent
| Aspect | Simple Agent | Expert Agent |
|---|---|---|
| Files | Single YAML | YAML + sidecar folder |
| Dependencies | None | External resources |
| Memory | Session only | Persistent across sessions |
| Prompts | Embedded | Can be external files |
| Data Access | None | Domain-restricted |
| Use Case | Self-contained tasks | Domain expertise with context |
Using This Reference
For Building Simple Agents
- Study the YAML structure - especially
promptssection - Note how personality permeates every prompt
- See how
#prompt-idreferences work - Understand menu → prompt connection
For Understanding Embedded Prompts
- Each prompt is a complete instruction set
- Prompts maintain personality voice
- Structured enough to be useful, flexible enough to adapt
- Can include examples, formats, step-by-step guidance
For Designing Agent Personalities
- Persona defines WHO the agent is
- Communication style defines HOW they interact
- Principles define WHAT guides their decisions
- Consistency across all prompts creates believability
Files Worth Studying
The entire commit-poet.agent.yaml file is worth studying, particularly:
- Persona section - How to create a memorable character
- Prompts with varying complexity - From simple (tldr) to complex (batch)
- Menu structure - Clean command organization
- Prompt references - The
#prompt-idpattern
Key Takeaways
- Simple Agents are powerful despite being single-file
- Embedded prompts allow sophisticated behavior
- Strong personality makes agents memorable and engaging
- Multiple modes from single agent provides versatility
- Self-contained = portable and dependency-free
- The
#prompt-idpattern enables clean prompt organization
This reference demonstrates how BMAD Simple Agents can be surprisingly powerful while maintaining architectural simplicity.