mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-27 01:36:30 +02:00
259 lines
8 KiB
Markdown
259 lines
8 KiB
Markdown
|
|
---
|
||
|
|
name: 'step-06-build-module'
|
||
|
|
description: 'Generate Module agent YAML from plan'
|
||
|
|
|
||
|
|
# File References
|
||
|
|
nextStepFile: './step-08-celebrate.md'
|
||
|
|
agentPlan: '{bmb_creations_output_folder}/agent-plan-{agent_name}.md'
|
||
|
|
agentBuildOutput: '{bmb_creations_output_folder}/{agent-name}/'
|
||
|
|
agentYamlOutput: '{bmb_creations_output_folder}/{agent-name}/{agent-name}.agent.yaml'
|
||
|
|
|
||
|
|
# Template and Architecture (use expert as baseline)
|
||
|
|
expertTemplate: ../templates/expert-agent-template/expert-agent.template.md
|
||
|
|
expertArch: ../data/expert-agent-architecture.md
|
||
|
|
agentCompilation: ../data/agent-compilation.md
|
||
|
|
criticalActions: ../data/critical-actions.md
|
||
|
|
|
||
|
|
# Task References
|
||
|
|
advancedElicitationTask: '{project-root}/_bmad/core/workflows/advanced-elicitation/workflow.xml'
|
||
|
|
partyModeWorkflow: '{project-root}/_bmad/core/workflows/party-mode/workflow.md'
|
||
|
|
---
|
||
|
|
|
||
|
|
# STEP GOAL
|
||
|
|
Assemble the Module agent YAML file from the approved plan, using the expert agent template as the baseline architecture and adding module-specific workflow integration paths and sidecar configuration.
|
||
|
|
|
||
|
|
# MANDATORY EXECUTION RULES
|
||
|
|
|
||
|
|
1. **TEMPLATE BASELINE**: Module agents MUST use the expert agent template as their structural foundation - do not create custom templates
|
||
|
|
|
||
|
|
2. **PLAN ADHERENCE**: Extract content from agentPlan exactly as written - no enhancement, interpretation, or extrapolation
|
||
|
|
|
||
|
|
3. **MODULE SPECIFICITY**: Module agents require workflow integration paths and may need sidecar configuration for multi-workflow modules
|
||
|
|
|
||
|
|
4. **OUTPUT VALIDATION**: YAML must be valid, complete, and ready for immediate deployment
|
||
|
|
|
||
|
|
5. **LANGUAGE PRESERVATION**: Maintain any language choice configured in the plan throughout the YAML
|
||
|
|
|
||
|
|
# EXECUTION PROTOCOLS
|
||
|
|
|
||
|
|
## PREPARATION PHASE
|
||
|
|
|
||
|
|
### 1. Load Expert Template Baseline
|
||
|
|
```
|
||
|
|
Read: expertTemplate
|
||
|
|
Read: expertArch
|
||
|
|
Read: agentCompilation
|
||
|
|
Read: criticalActions
|
||
|
|
```
|
||
|
|
|
||
|
|
**Purpose**: Understand the expert agent structure that serves as the Module agent baseline
|
||
|
|
|
||
|
|
**Validation**: Confirm expert template has all required sections (name, description, persona, instructions, tools, skills, etc.)
|
||
|
|
|
||
|
|
### 2. Load Agent Plan
|
||
|
|
```
|
||
|
|
Read: agentPlan (using dynamic path)
|
||
|
|
```
|
||
|
|
|
||
|
|
**Validation**: Plan contains all mandatory sections:
|
||
|
|
- Agent identity (name, description)
|
||
|
|
- Persona profile
|
||
|
|
- Command structure
|
||
|
|
- Critical actions
|
||
|
|
- Workflow integrations (module-specific)
|
||
|
|
- Language choice (if configured)
|
||
|
|
|
||
|
|
### 3. Verify Output Directory
|
||
|
|
```
|
||
|
|
Bash: mkdir -p {agentBuildOutput}
|
||
|
|
```
|
||
|
|
|
||
|
|
**Purpose**: Ensure output directory exists for the module agent
|
||
|
|
|
||
|
|
## ASSEMBLY PHASE
|
||
|
|
|
||
|
|
### 4. Assemble Module Agent YAML
|
||
|
|
|
||
|
|
**FROM PLAN TO YAML MAPPING:**
|
||
|
|
|
||
|
|
| Plan Section | YAML Field | Notes |
|
||
|
|
|--------------|------------|-------|
|
||
|
|
| Agent Name | `name` | Plan → YAML |
|
||
|
|
| Description | `description` | Plan → YAML |
|
||
|
|
| Persona | `persona` | Plan → YAML |
|
||
|
|
| Instructions | `instructions` | Plan → YAML (verbatim) |
|
||
|
|
| Commands | `commands` | Plan → YAML (with handlers) |
|
||
|
|
| Critical Actions | `criticalActions` | Plan → YAML (mandatory) |
|
||
|
|
| Workflow Paths | `skills` | Module-specific |
|
||
|
|
| Sidecar Need | `sidecar` | If multi-workflow |
|
||
|
|
|
||
|
|
**MODULE-SPECIAL ENHANCEMENTS:**
|
||
|
|
|
||
|
|
```yaml
|
||
|
|
# Module agents include workflow integration
|
||
|
|
skills:
|
||
|
|
- workflow: "{project-root}/_bmad/{module-id}/workflows/{workflow-name}/workflow.md"
|
||
|
|
description: "From plan workflow list"
|
||
|
|
- workflow: "{project-root}/_bmad/{module-id}/workflows/{another-workflow}/workflow.md"
|
||
|
|
description: "From plan workflow list"
|
||
|
|
|
||
|
|
# Optional: Sidecar for complex modules
|
||
|
|
sidecar:
|
||
|
|
enabled: true
|
||
|
|
workflows:
|
||
|
|
- ref: "primary-workflow"
|
||
|
|
type: "primary"
|
||
|
|
- ref: "secondary-workflow"
|
||
|
|
type: "support"
|
||
|
|
```
|
||
|
|
|
||
|
|
**CRITICAL ACTIONS MAPPING:**
|
||
|
|
```
|
||
|
|
For each critical action in plan:
|
||
|
|
1. Identify matching command in YAML
|
||
|
|
2. Add `critical: true` flag
|
||
|
|
3. Ensure handler references agent function
|
||
|
|
```
|
||
|
|
|
||
|
|
### 5. Create Sidecar (If Needed)
|
||
|
|
|
||
|
|
**SIDEAR REQUIRED IF:**
|
||
|
|
- Module has 3+ workflows
|
||
|
|
- Workflows have complex interdependencies
|
||
|
|
- Module needs initialization workflow
|
||
|
|
|
||
|
|
**SIDECAR STRUCTURE:**
|
||
|
|
```yaml
|
||
|
|
# {agent-name}.sidecar.yaml
|
||
|
|
sidecar:
|
||
|
|
module: "{module-id}"
|
||
|
|
initialization:
|
||
|
|
workflow: "workflow-init"
|
||
|
|
required: true
|
||
|
|
workflows:
|
||
|
|
- name: "workflow-name"
|
||
|
|
path: "workflows/{workflow-name}/workflow.md"
|
||
|
|
type: "primary|support|utility"
|
||
|
|
dependencies: []
|
||
|
|
agent:
|
||
|
|
path: "{agent-name}.agent.yaml"
|
||
|
|
```
|
||
|
|
|
||
|
|
**IF SIDEAR NOT NEEDED**: Skip this step
|
||
|
|
|
||
|
|
### 6. Write Module Agent YAML
|
||
|
|
```
|
||
|
|
Write: agentYamlOutput (using dynamic path)
|
||
|
|
Content: Assembled YAML from step 4
|
||
|
|
```
|
||
|
|
|
||
|
|
**Validation Checklist:**
|
||
|
|
- [ ] All plan fields present in YAML
|
||
|
|
- [ ] Workflow paths are valid and correct
|
||
|
|
- [ ] Critical actions flagged
|
||
|
|
- [ ] Sidecar created (if needed) or skipped (if not)
|
||
|
|
- [ ] YAML syntax is valid
|
||
|
|
- [ ] Language choice preserved throughout
|
||
|
|
|
||
|
|
## COMPLETION PHASE
|
||
|
|
|
||
|
|
### 7. Present MENU OPTIONS
|
||
|
|
|
||
|
|
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: Write agent YAML to {agentBuildOutput}/{agent-name}/{agent-name}.agent.yaml (or appropriate output path), update frontmatter, then only then load, read entire file, then execute {nextStepFile}
|
||
|
|
- IF Any other comments or queries: help user respond then [Redisplay Menu Options](#7-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
|
||
|
|
- User can chat or ask questions - always respond and then end with display again of the menu options
|
||
|
|
|
||
|
|
**USER RESPONSE HANDLING:**
|
||
|
|
- **Option 1**: Proceed to step-07a-plan-traceability.md with sequential mode
|
||
|
|
- **Option 2**: Proceed to step-07a-plan-traceability.md with yolo mode
|
||
|
|
- **Invalid input**: Re-ask with options
|
||
|
|
|
||
|
|
# CONTEXT BOUNDARIES
|
||
|
|
|
||
|
|
**IN SCOPE:**
|
||
|
|
- Reading expert template and architecture
|
||
|
|
- Loading agent plan
|
||
|
|
- Assembling Module agent YAML
|
||
|
|
- Creating sidecar (if needed)
|
||
|
|
- Writing valid YAML output
|
||
|
|
|
||
|
|
**OUT OF SCOPE:**
|
||
|
|
- Modifying plan content
|
||
|
|
- Creating new template structures
|
||
|
|
- Implementing agent code
|
||
|
|
- Writing workflow files
|
||
|
|
- Testing agent functionality
|
||
|
|
|
||
|
|
**DO NOT:**
|
||
|
|
- Add commands not in plan
|
||
|
|
- Modify persona from plan
|
||
|
|
- Create custom template structures
|
||
|
|
- Skip critical actions mapping
|
||
|
|
- Assume sidecar need - evaluate based on workflow count
|
||
|
|
|
||
|
|
# CRITICAL STEP COMPLETION NOTE
|
||
|
|
|
||
|
|
ONLY WHEN [C continue option] is selected and [complete YAML generated and written to output], will you then load and read fully `{nextStepFile}` to execute and celebrate completion.
|
||
|
|
|
||
|
|
**THIS STEP IS COMPLETE WHEN:**
|
||
|
|
1. Module agent YAML file exists at agentYamlOutput path
|
||
|
|
2. YAML contains all plan content correctly mapped
|
||
|
|
3. Module-specific workflow paths are configured
|
||
|
|
4. Sidecar is created (if needed) or correctly skipped (if not)
|
||
|
|
5. User has chosen review mode (one-at-a-time or YOLO)
|
||
|
|
6. Ready to proceed to step-07a-plan-traceability.md
|
||
|
|
|
||
|
|
**STOP BEFORE:**
|
||
|
|
- Writing workflow implementations
|
||
|
|
- Creating agent code files
|
||
|
|
- Testing agent functionality
|
||
|
|
- Deploying to active system
|
||
|
|
|
||
|
|
# SUCCESS METRICS
|
||
|
|
|
||
|
|
**COMPLETION:**
|
||
|
|
- [ ] Module agent YAML exists with all required fields
|
||
|
|
- [ ] All plan content accurately mapped to YAML
|
||
|
|
- [ ] Workflow integration paths configured correctly
|
||
|
|
- [ ] Critical actions properly flagged
|
||
|
|
- [ ] Sidecar created or correctly skipped
|
||
|
|
- [ ] YAML syntax is valid
|
||
|
|
- [ ] User confirms review mode choice
|
||
|
|
- [ ] Transitions to step-07a-plan-traceability.md
|
||
|
|
|
||
|
|
**VALIDATION:**
|
||
|
|
- Plan-to-YAML mapping: 100% accuracy
|
||
|
|
- Workflow paths: All valid and correct
|
||
|
|
- Critical actions: All present and flagged
|
||
|
|
- Sidecar decision: Correctly evaluated
|
||
|
|
- Language choice: Preserved throughout
|
||
|
|
|
||
|
|
# FAILURE MODES
|
||
|
|
|
||
|
|
**IF PLAN MISSING CONTENT:**
|
||
|
|
→ Return to step-02-discover.md to complete plan
|
||
|
|
|
||
|
|
**IF EXPERT TEMPLATE MISSING:**
|
||
|
|
→ Raise error - template is mandatory baseline
|
||
|
|
|
||
|
|
**IF YAML SYNTAX ERROR:**
|
||
|
|
→ Fix and retry write operation
|
||
|
|
|
||
|
|
**IF WORKFLOW PATHS INVALID:**
|
||
|
|
→ Flag for review in traceability step
|
||
|
|
|
||
|
|
**IF USER ASKS FOR MODIFICATIONS:**
|
||
|
|
→ Return to appropriate planning step (03-persona, 04-commands, or 05-name)
|