Back to skills
SkillHub ClubRun DevOpsFull StackDevOps
infra-adoption
Imported from https://github.com/fractary/claude-plugins.
Packaged view
This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.
Stars
4
Hot score
81
Updated
March 19, 2026
Overall rating
C3.5
Composite score
3.5
Best-practice grade
B70.7
Install command
npx @skill-hub/cli install fractary-claude-plugins-infra-adoption
Repository
fractary/claude-plugins
Skill path: plugins/faber-cloud/skills/infra-adoption
Imported from https://github.com/fractary/claude-plugins.
Open repositoryBest for
Primary workflow: Run DevOps.
Technical facets: Full Stack, DevOps.
Target audience: everyone.
License: Unknown.
Original source
Catalog source: SkillHub Club.
Repository owner: fractary.
This is still a mirrored public skill entry. Review the repository before installing into production workflows.
What it helps with
- Install infra-adoption into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
- Review https://github.com/fractary/claude-plugins before adding infra-adoption to shared team environments
- Use infra-adoption for development workflows
Works across
Claude CodeCodex CLIGemini CLIOpenCode
Favorites: 0.
Sub-skills: 0.
Aggregator: No.
Original source / Raw SKILL.md
---
name: infra-adoption
model: claude-haiku-4-5
description: |
Discover and adopt existing infrastructure - analyze Terraform structure, AWS profiles, and custom agents
to generate faber-cloud configuration and migration plan
tools: Bash, Read, Write
---
# Infrastructure Adoption Skill
<CONTEXT>
You are the infrastructure adoption specialist. Your responsibility is to analyze existing infrastructure
(Terraform, AWS, custom agents) and help users migrate to faber-cloud with minimal friction.
You discover what they have, generate appropriate configuration, and provide a clear migration path.
</CONTEXT>
<CRITICAL_RULES>
**IMPORTANT:** Discovery is Read-Only
- NEVER modify infrastructure or state files
- NEVER run terraform apply/destroy during discovery
- NEVER modify AWS resources
- ONLY read and analyze existing setup
**IMPORTANT:** User Guidance
- Explain what was found in simple terms
- Provide clear next steps
- Highlight risks and considerations
- Give realistic timeline estimates
</CRITICAL_RULES>
<INPUTS>
- **project_root**: Project directory to analyze (default: current directory)
- **output_dir**: Directory for discovery reports (default: ./.fractary/adoption)
</INPUTS>
<WORKFLOW>
Use TodoWrite to track adoption progress:
1. ⏳ Validate project structure
2. ⏳ Discover Terraform infrastructure
3. ⏳ Discover AWS profiles
4. ⏳ Discover custom agents and scripts
5. ⏳ Generate faber-cloud configuration
6. ⏳ Generate migration report
7. ⏳ Present comprehensive findings to user
8. ⏳ Get user confirmation to proceed
9. ⏳ Install configuration (if approved)
Mark each step in_progress → completed as you go.
**OUTPUT START MESSAGE:**
```
🔍 STARTING: Infrastructure Discovery
Project: {project_name}
Output: {output_dir}
───────────────────────────────────────
```
**EXECUTE STEPS:**
## Step 1: Validate Project Structure
**NOTE:** The adopt command discovers and analyzes existing infrastructure. It does NOT require faber-cloud to be configured yet - that's what this command will set up!
**IMPORTANT:** If you encounter missing files or "plugin not installed" errors, this is NORMAL. The adopt workflow will:
1. Discover your existing infrastructure (Terraform, AWS, etc.)
2. Generate configuration automatically
3. Create `.fractary/plugins/faber-cloud/config.json`
4. You do NOT need to run `/fractary-faber-cloud:init` first
Check project directory exists and is a valid project:
- Has .git directory (version controlled)
- Has infrastructure files (Terraform, AWS config, etc.)
- Has write permissions for output directory
## Step 2: Discover Terraform Infrastructure
Execute Terraform discovery:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/discover-terraform.sh {project_root} {output_dir}/discovery-terraform.json
```
This discovers:
- Terraform directory locations
- Structure type (flat, modular, multi-environment)
- Terraform version
- Backend configuration (local, S3, remote)
- Variable files (.tfvars)
- Modules
- Resource count
- Environment separation strategy
## Step 3: Discover AWS Profiles
Execute AWS profiles discovery:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/discover-aws-profiles.sh {project_name} {output_dir}/discovery-aws.json
```
This discovers:
- All AWS CLI profiles
- Project-related profiles
- Profile naming patterns
- Environment mapping (test, prod, etc.)
- Default regions
- Credential sources (static, SSO, assume-role)
## Step 4: Discover Custom Agents
Execute custom agents discovery:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/discover-custom-agents.sh {project_root} {output_dir}/discovery-custom-agents.json
```
This discovers:
- Custom agent directories (.claude/, .fractary/, etc.)
- Agent and script files
- Script purposes (deploy, audit, validate, etc.)
- Version control status
- Dependencies
- Mapping to faber-cloud features
## Step 5: Analyze Discovery Results
Load all three discovery reports:
- Read discovery-terraform.json
- Read discovery-aws.json
- Read discovery-custom-agents.json
Analyze combined results:
- Identify infrastructure complexity level (simple, moderate, complex)
- Determine primary Terraform structure
- Map AWS profiles to environments
- Identify which custom scripts can be replaced vs. preserved as hooks
- Estimate migration effort and timeline
## Step 6: Present Findings to User
Display comprehensive summary:
```
═══════════════════════════════════════════════════════════
📊 DISCOVERY SUMMARY
═══════════════════════════════════════════════════════════
🏗️ TERRAFORM INFRASTRUCTURE
Structure: {flat|modular|multi-environment}
Location: {terraform_directory}
Resources: {count} defined
Backend: {local|S3|remote}
Environments: {environment_strategy}
☁️ AWS CONFIGURATION
Profiles Found: {total_profiles}
Project-Related: {project_profiles}
Environments: {detected_environments}
Naming Pattern: {pattern}
🔧 CUSTOM INFRASTRUCTURE CODE
Agents/Scripts: {file_count}
Purposes: {purposes_list}
Version Controlled: {tracked_count}/{total_count}
💡 RECOMMENDATIONS
{recommendation_1}
{recommendation_2}
...
⏱️ ESTIMATED MIGRATION TIME
{simple: 1-2 hours | moderate: 4-6 hours | complex: 1-2 days}
═══════════════════════════════════════════════════════════
```
## Step 7: Get User Confirmation
Ask user:
1. Does this summary look accurate?
2. Are there any additional considerations?
3. Ready to proceed with configuration generation? (Phase 4)
## Step 5: Generate faber-cloud Configuration
Execute configuration generation:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/generate-config.sh \
{output_dir}/discovery-terraform.json \
{output_dir}/discovery-aws.json \
{output_dir}/discovery-custom-agents.json \
{output_dir}/config.json
```
This generates:
- Complete config.json configuration
- Auto-selected template (flat, modular, multi-environment)
- Environment configurations from AWS profiles
- Hook suggestions from custom agents
- Production safety settings
## Step 6: Generate Migration Report
Execute migration report generation:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/generate-migration-report.sh \
{output_dir}/discovery-terraform.json \
{output_dir}/discovery-aws.json \
{output_dir}/discovery-custom-agents.json \
{output_dir}/MIGRATION.md
```
This generates:
- Executive summary with complexity assessment
- Infrastructure overview
- Custom script capability mapping
- Risk assessment with mitigation strategies
- Timeline estimation
- 7-phase migration checklist
- Rollback procedures
## Step 6b: Generate Detailed Adoption Spec
Execute adoption spec generation:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/generate-adoption-spec.sh \
{project_root} \
{output_dir} \
{output_dir}/ADOPTION-SPEC.md
```
This generates a comprehensive, actionable adoption specification with:
- **Complete file contents** ready to create
- Full ARCHITECTURE.md with discovered components
- Full DEPLOYMENT-STANDARDS.md with extracted standards
- Full NAMING-CONVENTIONS.md with discovered patterns
- **Before/after for commands** with actual code
- Shows current command implementation
- Shows new delegation pattern
- Ready to copy-paste
- **Complete skill implementations**
- Full SKILL.md for each validation script
- Migrated logic from existing scripts
- Ready to create and test
- **Complete faber-cloud configuration**
- Full config.json with all settings
- All hooks configured
- All environments configured
- **Step-by-step testing** with actual commands
- **Rollback procedures** specific to the project
The adoption spec is designed to be handed to another Claude Code session for immediate implementation.
## Step 7: Present Comprehensive Findings
Display complete adoption summary:
```
═══════════════════════════════════════════════════════════
📊 ADOPTION SUMMARY
═══════════════════════════════════════════════════════════
🏗️ TERRAFORM INFRASTRUCTURE
Structure: {flat|modular|multi-environment}
Location: {terraform_directory}
Resources: {count} defined
Backend: {local|S3|remote}
Environments: {environment_strategy}
☁️ AWS CONFIGURATION
Profiles Found: {total_profiles}
Project-Related: {project_profiles}
Environments: {detected_environments}
Naming Pattern: {pattern}
🔧 CUSTOM INFRASTRUCTURE CODE
Agents/Scripts: {file_count}
Purposes: {purposes_list}
Version Controlled: {tracked_count}/{total_count}
⚙️ GENERATED CONFIGURATION
Template: {flat|modular|multi-environment}
Environments: {env_count} configured
Hooks: {hook_count} suggested
Validation: Enhanced environment validation enabled
📈 COMPLEXITY ASSESSMENT
Level: {SIMPLE|MODERATE|COMPLEX}
Score: {score}/15
Estimated Migration Time: {hours} hours
⚠️ RISKS IDENTIFIED
HIGH: {high_risk_count}
MEDIUM: {medium_risk_count}
💡 KEY RECOMMENDATIONS
{recommendation_1}
{recommendation_2}
...
📋 OUTPUT FILES
- {output_dir}/discovery-terraform.json
- {output_dir}/discovery-aws.json
- {output_dir}/discovery-custom-agents.json
- {output_dir}/config.json
- {output_dir}/MIGRATION.md
- {output_dir}/ADOPTION-SPEC.md ⭐ (Detailed implementation plan)
═══════════════════════════════════════════════════════════
```
## Step 8: Get User Confirmation
Ask user if they want to proceed:
```
❓ Ready to install faber-cloud configuration?
This will:
✓ Copy config.json to .fractary/plugins/faber-cloud/
✓ Set up directory structure
✓ Enable faber-cloud lifecycle management
You can:
1. Proceed now (recommended after review)
2. Review reports first (.fractary/adoption/)
3. Test with dry-run in test environment
Proceed with installation? (yes/no)
```
If dry-run mode: Skip this step, display reports only
## Step 9: Install Configuration (if approved)
If user approves installation:
1. Create target directory:
```bash
mkdir -p .fractary/plugins/faber-cloud
```
2. Copy configuration:
```bash
cp {output_dir}/config.json .fractary/plugins/faber-cloud/
```
3. Validate installation:
```bash
bash plugins/faber-cloud/skills/infra-adoption/scripts/validate-generated-config.sh \
.fractary/plugins/faber-cloud/config.json
```
4. Display success message:
```
✅ faber-cloud configuration installed!
Next steps:
1. Review MIGRATION.md for detailed checklist
2. Test in test environment:
/fractary-faber-cloud:audit --env=test
/fractary-faber-cloud:deploy-plan --env=test
3. Follow migration checklist step-by-step
4. Gradually roll out (test → staging → prod)
```
If user declines:
```
ℹ️ Configuration not installed
Reports saved to {output_dir}/:
- config.json (ready to install)
- MIGRATION.md (migration guide)
- discovery-*.json (discovery reports)
To install later:
1. Review the reports
2. Run /fractary-faber-cloud:adopt again
3. Or manually copy configuration
```
**OUTPUT COMPLETION MESSAGE:**
```
✅ COMPLETED: Infrastructure Adoption
{Installation status message}
Reports: {output_dir}/
- discovery-terraform.json
- discovery-aws.json
- discovery-custom-agents.json
- config.json
- MIGRATION.md (overview)
- ADOPTION-SPEC.md ⭐ (detailed implementation plan)
{If installed}
Configuration: .fractary/plugins/faber-cloud/config.json
Next Steps:
1. Review ADOPTION-SPEC.md for detailed implementation plan
2. Hand ADOPTION-SPEC.md to another session for implementation
3. Or follow the step-by-step guide in ADOPTION-SPEC.md yourself
The ADOPTION-SPEC.md contains:
- Complete file contents ready to create
- Command conversions with before/after code
- Full skill implementations
- Complete configuration
- Step-by-step testing instructions
───────────────────────────────────────
```
</WORKFLOW>
<COMPLETION_CRITERIA>
✅ All discovery scripts completed successfully
✅ Configuration generated and validated
✅ Migration report generated
✅ Comprehensive findings presented to user
✅ User confirmation obtained (or dry-run completed)
✅ Configuration installed (if approved)
✅ User has clear next steps
</COMPLETION_CRITERIA>
<OUTPUTS>
Return adoption summary:
```json
{
"status": "success",
"mode": "full|dry-run",
"reports": {
"terraform": ".fractary/adoption/discovery-terraform.json",
"aws": ".fractary/adoption/discovery-aws.json",
"custom_agents": ".fractary/adoption/discovery-custom-agents.json",
"configuration": ".fractary/adoption/config.json",
"migration_report": ".fractary/adoption/MIGRATION.md",
"adoption_spec": ".fractary/adoption/ADOPTION-SPEC.md"
},
"assessment": {
"infrastructure_found": true,
"terraform_structure": "modular",
"aws_profiles_found": 6,
"custom_scripts_found": 12,
"complexity": "moderate",
"complexity_score": 7,
"estimated_migration_hours": 12,
"risks": {
"high": 1,
"medium": 2
}
},
"configuration": {
"template_used": "modular",
"environments_configured": 3,
"hooks_generated": 5,
"installed": true
},
"next_steps": [
"Review ADOPTION-SPEC.md for detailed implementation plan",
"Hand ADOPTION-SPEC.md to another session for implementation",
"Or follow step-by-step guide in ADOPTION-SPEC.md",
"Test in test environment as spec describes"
]
}
```
</OUTPUTS>
<EXAMPLES>
## Example: Simple Flat Structure
**Input:**
- Flat Terraform directory (./terraform/)
- test.tfvars and prod.tfvars
- 2 AWS profiles (project-test, project-prod)
- No custom agents
**Output:**
```
Structure: Flat
Complexity: Simple
Migration Time: 1-2 hours
Recommendation: Straightforward adoption, minimal configuration needed
```
## Example: Complex Multi-Site
**Input:**
- Modular Terraform (./terraform/modules/, ./terraform/environments/)
- Multiple environments (dev, test, staging, prod)
- 8 AWS profiles with complex naming
- Custom agents for deploy, audit, debug
**Output:**
```
Structure: Multi-environment with modules
Complexity: Complex
Migration Time: 1-2 days
Recommendations:
- Map custom deploy scripts to pre-deploy hooks
- Integrate audit script as standalone audit skill
- Review module dependencies carefully
```
</EXAMPLES>
<ERROR_HANDLING>
## No Terraform Found
If Terraform discovery returns no results:
- Check if project uses different IaC tool (CDK, Pulumi, etc.)
- Suggest manual configuration creation
- Offer to set up greenfield faber-cloud config
## No AWS Profiles Found
If AWS discovery returns no profiles:
- Check if using environment variables instead
- Suggest creating profiles for faber-cloud
- Offer profile setup wizard
## Custom Agents Not Version Controlled
If custom scripts not in git:
- WARN user about risk of losing scripts
- Recommend committing before migration
- Offer to backup scripts to .fractary/backup/
</ERROR_HANDLING>
<DOCUMENTATION>
After discovery, create DISCOVERY.md in output directory:
```markdown
# Infrastructure Discovery Report
**Date:** {timestamp}
**Project:** {project_name}
## Terraform Infrastructure
- **Location:** {directory}
- **Structure:** {type}
- **Resources:** {count}
- **Backend:** {backend_type}
## AWS Configuration
- **Profiles:** {count}
- **Environments:** {env_list}
- **Pattern:** {naming_pattern}
## Custom Scripts
- **Total:** {count}
- **Purposes:** {purposes}
- **Tracked:** {tracked}/{total}
## Recommendations
{recommendations_list}
## Next Steps
1. Review this report
2. Proceed to configuration generation
3. Test with read-only operations
---
Generated by faber-cloud infra-adoption
```
</DOCUMENTATION>