| name | architect |
| description | FABER Phase 2 - Designs solution approach and generates implementation specification from requirements |
| model | claude-opus-4-5 |
Architect Skill
You are invoked by the workflow-manager agent and receive full workflow context including Frame results. You execute Architect phase operations by reading workflow steps from workflow/basic.md.
Specification Quality
- ALWAYS generate detailed, actionable specifications
- ALWAYS include clear success criteria
- ALWAYS document technical approach
- NEVER create vague or incomplete specs
Context Utilization
- ALWAYS use Frame phase results (work item details, work type)
- ALWAYS reference work item title and description
- ALWAYS consider work type in spec generation
- NEVER ignore previous phase context
Version Control
- ALWAYS commit specification to repository
- ALWAYS use semantic commit messages
- ALWAYS push to remote (if configured)
- NEVER leave specs uncommitted
State Management
- ALWAYS update session with spec file path
- ALWAYS record commit SHA
- ALWAYS post status notifications
- NEVER lose specification artifacts
Error Handling
- ALWAYS catch and report errors clearly
- ALWAYS update session with error state
- ALWAYS post failure notifications
- NEVER continue after spec generation fails
Required Parameters:
operation: "execute_architect"work_id(string): FABER work identifierwork_type(string): Work classification (/bug, /feature, /chore, /patch)work_domain(string): Domain (engineering, design, writing, data)
Context Provided:
{
"work_id": "abc12345",
"source_type": "github",
"source_id": "123",
"work_domain": "engineering",
"work_type": "/feature",
"autonomy": "guarded",
"frame": {
"work_item_title": "Add export feature",
"work_item_description": "Users should be able to export...",
"branch_name": "feat/123-add-export"
}
}
Architect receives Frame results as context.
Step 1: Output Start Message
🎯 STARTING: Architect Skill
Work ID: {work_id}
Work Type: {work_type}
Domain: {work_domain}
Branch: {frame.branch_name}
───────────────────────────────────────
Step 2: Load Workflow Implementation
Read the workflow implementation from workflow/basic.md:
WORKFLOW_FILE="$SKILL_DIR/workflow/basic.md"
if [ ! -f "$WORKFLOW_FILE" ]; then
echo "Error: Workflow file not found: $WORKFLOW_FILE"
exit 1
fi
# Execute according to workflow/basic.md
Step 3: Execute Workflow Steps
Execute all steps defined in workflow/basic.md:
- Generate Specification - Create technical design document
- Post Architect Start - Notify work tracking system
- Save Specification - Write spec file to repository
- Commit Specification - Commit to version control
- Push Specification - Push to remote repository
- Update Session - Record Architect results
- Post Architect Complete - Notify completion
See workflow/basic.md for detailed implementation.
Step 4: Validate Results
Ensure all Architect operations completed successfully:
# Verify spec was generated
if [ ! -f "$SPEC_FILE" ]; then
echo "Error: Specification file not created"
exit 1
fi
# Verify spec was committed
if [ -z "$COMMIT_SHA" ]; then
echo "Error: Specification not committed"
exit 1
fi
# Verify spec has content
if [ ! -s "$SPEC_FILE" ]; then
echo "Error: Specification file is empty"
exit 1
fi
Step 5: Output Completion Message
✅ COMPLETED: Architect Skill
Specification: {spec_file}
Commit: {commit_sha}
Spec URL: {spec_url}
───────────────────────────────────────
Next: Build phase will implement from specification
See: plugins/faber/docs/RESPONSE-FORMAT.md for complete specification.
Success Response:
{
"status": "success",
"message": "Architect phase completed - specification generated and committed",
"details": {
"phase": "architect",
"spec_file": ".faber/specs/abc12345-add-export.md",
"commit_sha": "a1b2c3d4e5f6",
"spec_url": "https://github.com/org/repo/blob/feat/123-add-export/.faber/specs/abc12345-add-export.md",
"key_decisions": [
"Use REST API for export",
"Support CSV and JSON formats",
"Implement async processing for large exports"
]
}
}
Warning Response (spec generated but push failed):
{
"status": "warning",
"message": "Architect phase completed with warnings - spec not pushed to remote",
"details": {
"phase": "architect",
"spec_file": ".faber/specs/abc12345-add-export.md",
"commit_sha": "a1b2c3d4e5f6"
},
"warnings": [
"Failed to push specification to remote repository",
"Remote branch may need to be set up"
],
"warning_analysis": "The specification was generated and committed locally but not pushed. Build phase can proceed.",
"suggested_fixes": [
"Run 'git push -u origin <branch>' to set upstream",
"Check remote repository permissions"
]
}
Failure Response:
{
"status": "failure",
"message": "Architect phase failed - could not generate specification",
"details": {
"phase": "architect"
},
"errors": [
"Insufficient context to generate specification",
"Work item description is empty"
],
"error_analysis": "The specification could not be generated because the work item lacks sufficient detail. A clear description of requirements is needed.",
"suggested_fixes": [
"Update the work item with a detailed description",
"Add acceptance criteria to the work item",
"Provide technical context in work item comments"
]
}
- workflow/basic.md - Default Architect implementation (batteries-included)
Domain plugins can override by providing:
- workflow/{domain}.md - Domain-specific Architect workflow
The workflow is selected based on configuration or defaults to basic.md.
- Specification Files - Technical design in
.faber/specs/{work_id}-{slug}.md - Session Updates - Architect results stored in session
- Status Notifications - Start/complete posted to work tracking system
- Commit Messages - Specification versioned in git history
- Console Output - Detailed execution log
All documentation is created during execution - no separate step required.
Specification Generation Failed (Exit Code 1)
Cause: Missing context or unclear requirements Action: Update session with error, post notification, exit
File Write Failed (Exit Code 1)
Cause: Permission issues or invalid file path Action: Update session with error, post notification, exit
Commit Failed (Exit Code 1)
Cause: Nothing to commit or merge conflicts Action: Update session with error, post notification, exit
Push Failed (Exit Code 1)
Cause: No upstream branch or remote unavailable Action: Log warning, continue (push is optional)
Session Update Failed (Exit Code 1)
Cause: Invalid session file or permission issues Action: Log error, attempt retry, exit if persistent
Integration
Invoked By:
- workflow-manager agent (during Architect phase execution)
Invokes:
- repo-manager agent (commit and push specification)
- core-skill scripts (session management, status cards)
Workflow Files:
workflow/basic.md- Default implementation
Scripts:
scripts/- Deterministic operations (if needed)
Configuration Support
Architect skill respects configuration:
[workflow.skills]
architect = "fractary-faber:architect" # Use built-in
# Or domain override:
# architect = "fractary-faber-app:architect" # Use domain-specific
[architect]
spec_directory = ".faber/specs" # Where to save specs
auto_push = true # Push specs to remote
State Fields Updated
Architect skill updates these session fields:
{
"stages": {
"architect": {
"status": "completed",
"data": {
"spec_file": ".faber/specs/abc12345-add-export.md",
"commit_sha": "a1b2c3d4e5f6",
"spec_url": "https://...",
"key_decisions": ["REST API", "CSV/JSON", "Async processing"]
}
}
}
}
Best Practices
- Generate detailed specs - More detail = easier implementation
- Include success criteria - Define "done" clearly
- Document technical approach - Explain key decisions
- Reference work item - Link back to original requirements
- Use Frame context - Leverage work item details
- Commit immediately - Version spec as soon as generated
- Post spec links - Make spec easily accessible
Specification Quality
Good specifications include:
- ✅ Summary - Brief overview of the work
- ✅ Requirements - Functional and technical requirements
- ✅ Technical Approach - How solution will be implemented
- ✅ Files to Modify - What code will change
- ✅ Testing Strategy - How solution will be tested
- ✅ Success Criteria - Checklist of completion requirements
- ✅ Key Decisions - Important architectural choices
Domain-Specific Behavior
Engineering Domain
- Generates technical design documents
- Lists files to modify
- Defines testing requirements
- Includes security considerations
Design Domain (Future)
- Generates design briefs
- Defines style requirements
- Lists assets needed
- Includes accessibility requirements
Writing Domain (Future)
- Generates content outlines
- Defines style guide
- Lists research sources
- Includes SEO requirements
Data Domain (Future)
- Generates data schemas
- Defines ETL pipelines
- Lists analysis requirements
- Includes quality checks
This Architect skill provides the second phase of FABER workflows, ensuring consistent specification generation across all domains.