Shared utilities for faber-cloud plugin - configuration loading, pattern resolution, auto-discovery
Provides shared configuration loading and pattern substitution utilities for all faber-cloud skills. Automatically loads config from `.fractary/plugins/faber-cloud/config.json` in the project directory and migrates legacy files, enabling other skills to resolve AWS profiles, resource names, and environment-specific settings.
/plugin marketplace add fractary/claude-plugins/plugin install fractary-faber-cloud@fractaryThis skill is limited to using the following tools:
docs/issue-log-schema.mdscripts/config-loader.shscripts/execute-hooks.shscripts/generate-deployed-doc.shscripts/invoke-skill-hook.shscripts/log-resolution.shscripts/production-safety-confirm.shscripts/update-registry.shtemplates/faber-cloud-config.json.templatetemplates/faber-cloud.json.templatetemplates/issue-log.json.templateShared utilities used across all faber-cloud skills.
This skill provides:
.fractary/plugins/faber-cloud/config.json (in project working directory)faber-cloud.json and devops.json (deprecated){project}, {environment}, etc.)CRITICAL: Always load config from the project working directory, NOT the plugin installation directory.
Primary config file: .fractary/plugins/faber-cloud/config.json (relative to project root / current working directory)
Common Mistake: Do NOT look in ~/.claude/plugins/marketplaces/fractary/plugins/faber-cloud/ - that's the plugin installation directory, not the project config location.
Automatic migration (seamless upgrade):
config.json exists: use it (current standard)faber-cloud.json exists: automatically rename to config.jsondevops.json exists: show warning to migrate manuallyMigration is automatic and preserves all configuration settings.
Core configuration management:
Main Functions:
load_faber_cloud_config() - Load configuration from file or auto-discover (with backward compatibility)resolve_pattern(pattern, environment) - Substitute placeholders in patternsget_aws_profile(environment) - Get AWS profile for environmentget_config_value(key) - Get specific config valueshow_config() - Display current configurationUsage:
# Source the loader
source "${SKILL_DIR}/../cloud-common/scripts/config-loader.sh"
# Load configuration (checks config.json, auto-migrates from faber-cloud.json if needed)
load_faber_cloud_config
# Use configuration variables
echo "Project: $PROJECT_NAME"
echo "Provider: $PROVIDER"
echo "IaC Tool: $IAC_TOOL"
# Resolve patterns
USER_NAME=$(resolve_pattern "$USER_NAME_PATTERN" "test")
# Result: corthuxa-core-test-deploy
# Get AWS profile
AWS_PROFILE=$(get_aws_profile "test")
# Result: corthuxa-core-test-deploy
Exported Variables:
PROJECT_NAME - Project nameNAMESPACE - Project namespaceORGANIZATION - Organization namePROVIDER - Cloud provider (aws, gcp, azure)IAC_TOOL - IaC tool (terraform, pulumi, cdk)AWS_REGION - AWS regionTERRAFORM_DIR - Terraform directory pathIAM_POLICIES_DIR - IAM policies directory pathPROFILE_DISCOVER, PROFILE_TEST, PROFILE_PROD - AWS profilesUSER_NAME_PATTERN, POLICY_NAME_PATTERN - IAM naming patternsRESOURCE_PREFIX - Resource naming prefixTemplate for generating .fractary/plugins/faber-cloud/config.json:
{{PROJECT_NAME}}, {{NAMESPACE}}, etc./fractary-faber-cloud:init commandfaber-cloud.json.template for compatibility, generates config.jsonWhen configuration file doesn't exist, auto-discovers:
Supported placeholders:
{project} - Project name{namespace} - Project namespace{organization} - Organization name{environment} - Current environment (test, prod, etc.){prefix} - Resource prefixExample:
Pattern: "{prefix}-{environment}-bucket"
Result: "corthuxa-test-bucket"
See /docs/specs/fractary-faber-cloud-plugin-spec.md for complete schema.
Infrastructure Skills:
Operations Skills:
Handler Skills:
Note: Previously used by deprecated agents (devops-deployer, devops-debugger, devops-permissions) - now superseded by Phase 1-4 architecture. See .archive/pre-phase-architecture/ for historical reference.
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.