FABER Phase 2 - Designs solution approach and generates implementation specification from requirements
Generates detailed implementation specifications from work item requirements. Used when workflow-manager initiates the Architect phase after Frame analysis.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber@fractaryThis skill inherits all available tools. When active, it can use any tool Claude has access to.
workflow/basic.mdYou 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.
</CONTEXT>
<CRITICAL_RULES> NEVER VIOLATE THESE RULES:
Specification Quality
Context Utilization
Version Control
State Management
Error Handling
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. </INPUTS>
<WORKFLOW>šÆ STARTING: Architect Skill
Work ID: {work_id}
Work Type: {work_type}
Domain: {work_domain}
Branch: {frame.branch_name}
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
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
Execute all steps defined in workflow/basic.md:
See workflow/basic.md for detailed implementation.
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
ā
COMPLETED: Architect Skill
Specification: {spec_file}
Commit: {commit_sha}
Spec URL: {spec_url}
āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
Next: Build phase will implement from specification
</WORKFLOW>
<COMPLETION_CRITERIA> Architect skill is complete when:
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"
]
}
</OUTPUTS>
<HANDLERS>
This skill uses the basic workflow implementation:
Domain plugins can override by providing:
The workflow is selected based on configuration or defaults to basic.md.
</HANDLERS>
.faber/specs/{work_id}-{slug}.mdAll documentation is created during execution - no separate step required. </DOCUMENTATION>
<ERROR_HANDLING>
Cause: Missing context or unclear requirements Action: Update session with error, post notification, exit
Cause: Permission issues or invalid file path Action: Update session with error, post notification, exit
Cause: Nothing to commit or merge conflicts Action: Update session with error, post notification, exit
Cause: No upstream branch or remote unavailable Action: Log warning, continue (push is optional)
Cause: Invalid session file or permission issues Action: Log error, attempt retry, exit if persistent
</ERROR_HANDLING>
Invoked By:
Invokes:
Workflow Files:
workflow/basic.md - Default implementationScripts:
scripts/ - Deterministic operations (if needed)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
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"]
}
}
}
}
Good specifications include:
This Architect skill provides the second phase of FABER workflows, ensuring consistent specification generation across all domains.
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.
Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.