[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CX4Z31ADEJACB1XJ4TZ4RX":3,"skill-same:01M6CX4Z31ADEJACB1XJ4TZ4RX":57},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":31,"commitSha":32,"skillDirectory":5,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":36,"install":37,"resources":50},"01M6CX4Z31ADEJACB1XJ4TZ4RX","iaas",null,"Infrastructure as a Service cloud computing","ffsshhttiikk\u002Fopencode-agents-skills","ffsshhttiikk","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F226346827?v=4","01M6CWD9RR3Y7VRQX3MXYC8FYH","01M6CWD9WVPYAZW0J82G1VKGHY",3,"MIT","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fiaas\u002FSKILL.md",[],[5,18,19,20,21,22,23],"infrastructure","cloud","developer","devops","opencode","engineer","2026-11-10 10:12:30",false,"---\nname: iaas\ndescription: Infrastructure as a Service cloud computing\nlicense: MIT\ncompatibility: opencode\nmetadata:\n  audience: developer, devops-engineer\n  category: devops\n---\n\n## What I do\n\n- Provision and manage cloud infrastructure (compute, storage, network)\n- Configure virtual machines and networking\n- Set up managed databases and storage services\n- Implement identity and access management\n- Configure security groups and firewall rules\n- Optimize infrastructure costs and performance\n\n## When to use me\n\n- When you need full control over infrastructure\n- When migrating legacy applications\n- When running custom or unsupported workloads\n- When building lift-and-shift solutions\n- When requiring dedicated hardware\n- When implementing custom security requirements\n\n## Key Concepts\n\n### Virtual Machine Provisioning\n\n```hcl\n# Terraform - AWS EC2\nresource \"aws_instance\" \"web\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t3.micro\"\n  subnet_id     = aws_subnet.public.id\n  \n  vpc_security_group_ids = [aws_security_group.web.id]\n  \n  tags = {\n    Name        = \"WebServer\"\n    Environment = \"production\"\n  }\n  \n  root_block_device {\n    volume_size = 20\n    volume_type = \"gp3\"\n    encrypted   = true\n  }\n}\n\n# GCP Compute Engine\nresource \"google_compute_instance\" \"web\" {\n  name         = \"web-server\"\n  machine_type = \"e2-medium\"\n  zone         = \"us-central1-a\"\n  \n  boot_disk {\n    initialize_params {\n      image = \"debian-11-bullseye-v20220719\"\n      size  = 20\n    }\n  }\n  \n  network_interface {\n    network = \"default\"\n    access_config {\n      \u002F\u002F Ephemeral IP\n    }\n  }\n}\n\n# Azure VM\nresource \"azurerm_virtual_machine\" \"web\" {\n  name                  = \"web-server\"\n  location              = \"eastus\"\n  resource_group_name   = azurerm_resource_group.main.name\n  vm_size               = \"Standard_B1s\"\n  \n  storage_os_disk {\n    name              = \"osdisk\"\n    managed_disk_type = \"Standard_LRS\"\n    disk_size_gb      = 30\n  }\n  \n  os_profile {\n    computer_name  = \"webserver\"\n    admin_username = \"admin\"\n  }\n  \n  os_profile_linux_config {\n    disable_password_authentication = true\n  }\n}\n```\n\n### Networking\n\n```hcl\n# VPC with subnets\nresource \"aws_vpc\" \"main\" {\n  cidr_block           = \"10.0.0.0\u002F16\"\n  enable_dns_hostnames = true\n  enable_dns_support   = true\n}\n\nresource \"aws_subnet\" \"public\" {\n  vpc_id                  = aws_vpc.main.id\n  cidr_block              = \"10.0.1.0\u002F24\"\n  map_public_ip_on_launch = true\n  \n  tags = {\n    Type = \"Public\"\n  }\n}\n\nresource \"aws_subnet\" \"private\" {\n  vpc_id     = aws_vpc.main.id\n  cidr_block = \"10.0.2.0\u002F24\"\n  \n  tags = {\n    Type = \"Private\"\n  }\n}\n\n# Internet Gateway\nresource \"aws_internet_gateway\" \"main\" {\n  vpc_id = aws_vpc.main.id\n  \n  tags = {\n    Name = \"Main IGW\"\n  }\n}\n```\n\n### Managed Databases\n\n```hcl\n# RDS PostgreSQL\nresource \"aws_db_instance\" \"postgres\" {\n  identifier             = \"mydb\"\n  engine                 = \"postgres\"\n  engine_version         = \"15.3\"\n  instance_class         = \"db.t3.micro\"\n  \n  allocated_storage     = 20\n  max_allocated_storage = 100\n  \n  db_name  = \"mydb\"\n  username = \"dbadmin\"\n  password = var.db_password\n  \n  vpc_security_group_ids = [aws_security_group.rds.id]\n  db_subnet_group_name   = aws_db_subnet_group.main.name\n  \n  backup_retention_period = 7\n  skip_final_snapshot     = false\n  final_snapshot_identifier = \"mydb-final\"\n  \n  enabled_cloudwatch_logs_exports = [\"postgresql\", \"upgrade\"]\n}\n```\n\n### IaaS vs PaaS vs SaaS\n\n| Layer | Responsibility | Examples |\n|-------|---------------|----------|\n| IaaS | Compute, storage, networking | EC2, GCE, Azure VMs |\n| IaaS | OS, middleware, runtime | App Service, Cloud Run |\n| SaaS | Complete application | Gmail, Office 365 |\n\n### Scaling Options\n\n```hcl\n# Auto Scaling Group\nresource \"aws_autoscaling_group\" \"web\" {\n  name                = \"web-asg\"\n  vpc_zone_identifier = [aws_subnet.public.id]\n  \n  desired_capacity = 2\n  max_size         = 10\n  min_size         = 2\n  \n  launch_template {\n    id      = aws_launch_template.web.id\n    version = \"$Latest\"\n  }\n  \n  tag {\n    key                 = \"Name\"\n    value               = \"web-asg\"\n    propagate_at_launch = true\n  }\n}\n\nresource \"aws_autoscaling_policy\" \"scale_up\" {\n  name                   = \"scale-up\"\n  scaling_adjustment     = 1\n  adjustment_type        = \"ChangeInCapacity\"\n  cooldown               = 300\n  autoscaling_group_name = aws_autoscaling_group.web.name\n}\n```\n\n### Security Considerations\n\n- Use IAM roles, not access keys\n- Enable encryption at rest\n- Configure network ACLs\n- Implement VPC flow logs\n- Regular patching and updates\n- Use Bastion hosts for access\n","## What I do\n\n- Provision and manage cloud infrastructure (compute, storage, network)\n- Configure virtual machines and networking\n- Set up managed databases and storage services\n- Implement identity and access management\n- Configure security groups and firewall rules\n- Optimize infrastructure costs and performance\n\n## When to use me\n\n- When you need full control over infrastructure\n- When migrating legacy applications\n- When running custom or unsupported workloads\n- When building lift-and-shift solutions\n- When requiring dedicated hardware\n- When implementing custom security requirements\n\n## Key Concepts\n\n### Virtual Machine Provisioning\n\n```hcl\n# Terraform - AWS EC2\nresource \"aws_instance\" \"web\" {\n  ami           = \"ami-0c55b159cbfafe1f0\"\n  instance_type = \"t3.micro\"\n  subnet_id     = aws_subnet.public.id\n  \n  vpc_security_group_ids = [aws_security_group.web.id]\n  \n  tags = {\n    Name        = \"WebServer\"\n    Environment = \"production\"\n  }\n  \n  root_block_device {\n    volume_size = 20\n    volume_type = \"gp3\"\n    encrypted   = true\n  }\n}\n\n# GCP Compute Engine\nresource \"google_compute_instance\" \"web\" {\n  name         = \"web-server\"\n  machine_type = \"e2-medium\"\n  zone         = \"us-central1-a\"\n  \n  boot_disk {\n    initialize_params {\n      image = \"debian-11-bullseye-v20220719\"\n      size  = 20\n    }\n  }\n  \n  network_interface {\n    network = \"default\"\n    access_config {\n      \u002F\u002F Ephemeral IP\n    }\n  }\n}\n\n# Azure VM\nresource \"azurerm_virtual_machine\" \"web\" {\n  name                  = \"web-server\"\n  location              = \"eastus\"\n  resource_group_name   = azurerm_resource_group.main.name\n  vm_size               = \"Standard_B1s\"\n  \n  storage_os_disk {\n    name              = \"osdisk\"\n    managed_disk_type = \"Standard_LRS\"\n    disk_size_gb      = 30\n  }\n  \n  os_profile {\n    computer_name  = \"webserver\"\n    admin_username = \"admin\"\n  }\n  \n  os_profile_linux_config {\n    disable_password_authentication = true\n  }\n}\n```\n\n### Networking\n\n```hcl\n# VPC with subnets\nresource \"aws_vpc\" \"main\" {\n  cidr_block           = \"10.0.0.0\u002F16\"\n  enable_dns_hostnames = true\n  enable_dns_support   = true\n}\n\nresource \"aws_subnet\" \"public\" {\n  vpc_id                  = aws_vpc.main.id\n  cidr_block              = \"10.0.1.0\u002F24\"\n  map_public_ip_on_launch = true\n  \n  tags = {\n    Type = \"Public\"\n  }\n}\n\nresource \"aws_subnet\" \"private\" {\n  vpc_id     = aws_vpc.main.id\n  cidr_block = \"10.0.2.0\u002F24\"\n  \n  tags = {\n    Type = \"Private\"\n  }\n}\n\n# Internet Gateway\nresource \"aws_internet_gateway\" \"main\" {\n  vpc_id = aws_vpc.main.id\n  \n  tags = {\n    Name = \"Main IGW\"\n  }\n}\n```\n\n### Managed Databases\n\n```hcl\n# RDS PostgreSQL\nresource \"aws_db_instance\" \"postgres\" {\n  identifier             = \"mydb\"\n  engine                 = \"postgres\"\n  engine_version         = \"15.3\"\n  instance_class         = \"db.t3.micro\"\n  \n  allocated_storage     = 20\n  max_allocated_storage = 100\n  \n  db_name  = \"mydb\"\n  username = \"dbadmin\"\n  password = var.db_password\n  \n  vpc_security_group_ids = [aws_security_group.rds.id]\n  db_subnet_group_name   = aws_db_subnet_group.main.name\n  \n  backup_retention_period = 7\n  skip_final_snapshot     = false\n  final_snapshot_identifier = \"mydb-final\"\n  \n  enabled_cloudwatch_logs_exports = [\"postgresql\", \"upgrade\"]\n}\n```\n\n### IaaS vs PaaS vs SaaS\n\n| Layer | Responsibility | Examples |\n|-------|---------------|----------|\n| IaaS | Compute, storage, networking | EC2, GCE, Azure VMs |\n| IaaS | OS, middleware, runtime | App Service, Cloud Run |\n| SaaS | Complete application | Gmail, Office 365 |\n\n### Scaling Options\n\n```hcl\n# Auto Scaling Group\nresource \"aws_autoscaling_group\" \"web\" {\n  name                = \"web-asg\"\n  vpc_zone_identifier = [aws_subnet.public.id]\n  \n  desired_capacity = 2\n  max_size         = 10\n  min_size         = 2\n  \n  launch_template {\n    id      = aws_launch_template.web.id\n    version = \"$Latest\"\n  }\n  \n  tag {\n    key                 = \"Name\"\n    value               = \"web-asg\"\n    propagate_at_launch = true\n  }\n}\n\nresource \"aws_autoscaling_policy\" \"scale_up\" {\n  name                   = \"scale-up\"\n  scaling_adjustment     = 1\n  adjustment_type        = \"ChangeInCapacity\"\n  cooldown               = 300\n  autoscaling_group_name = aws_autoscaling_group.web.name\n}\n```\n\n### Security Considerations\n\n- Use IAM roles, not access keys\n- Enable encryption at rest\n- Configure network ACLs\n- Implement VPC flow logs\n- Regular patching and updates\n- Use Bastion hosts for access\n",{"name":5,"license":14,"metadata":29,"description":7,"compatibility":22},{"audience":30,"category":21},"developer, devops-engineer","main","5f7a3e453c98261f93d19a6a7de44ad8f7b72d41",2,"https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk","2026-03-01 06:55:40",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill iaas",{"tool":43,"command":44},"bunx","bunx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill iaas",{"tool":46,"command":47},"pnpm","pnpm dlx skills add ffsshhttiikk\u002Fopencode-agents-skills --skill iaas","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fiaas\u002FSKILL.md",true,[51],{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"references\u002Fprotocol-workflow.md","REFERENCE","参考文档",807,"https:\u002F\u002Fgithub.com\u002Fendman100\u002Fskill-router-nexus\u002Fblob\u002Fmain\u002FSecurity-and-Compliance\u002Freverse-skill-router\u002Fprotocol-reverse\u002Freferences\u002Fprotocol-workflow.md",[58,69,79,88,98,107],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":24},"01M6CXT9TXDF79BWJTMQAPB49G","xamarin","Xamarin cross-platform development","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fxamarin\u002FSKILL.md",[],[60,65,66,67,22,68],"platform","cross-platform","mobile","development",{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":24},"01M6CXT8AD04MFYDA32VW3FKAG","wrangling","Data wrangling fundamentals","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwrangling\u002FSKILL.md",[],[71,76,22,77,78],"data wrangling","science","data",{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":24},"01M6CXT717GCN7SRRNPBDP4508","windows","Windows operating system administration and scripting","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwindows\u002FSKILL.md",[],[81,86,22,87],"system","scripting",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":24},"01M6CXT54K794NMEM3XAPZZDKT","wide-column","Wide-column data model","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column\u002FSKILL.md",[],[95,96,22,97,78],"wide column","databases","model",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":24},"01M6CXT28FMT2P4V9GZE67WA8E","wide-column-stores","Wide-column database stores","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwide-column-stores\u002FSKILL.md",[],[105,96,22,106],"wide column stores","database",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":24},"01M6CXT0D0M0Q4T2N7C2RX7DSN","websockets","WebSocket implementation and best practices","https:\u002F\u002Fgithub.com\u002Fffsshhttiikk\u002Fopencode-agents-skills\u002Fblob\u002Fmain\u002Fwebsockets\u002FSKILL.md",[],[109,114,115,116,22,117,118],"websocket","real-time","time","best practices","implementation"]