[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CB0475KCJGATVRMXQ4H0MR":3,"skill-same:01M6CB0475KCJGATVRMXQ4H0MR":115},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":58,"repositoryHtmlUrl":59,"repositoryHomepageUrl":60,"ownerHtmlUrl":61,"ownerBlogUrl":62,"ownerDescription":63,"updatedAt":64,"install":65,"resources":78},"01M6CB0475KCJGATVRMXQ4H0MR","scaffold-extension",null,"Create a new extension package inside an existing framework's extensions\u002F directory. Use when authoring an expansion (extension) for AIWG.","jmagly\u002Faiwg","jmagly","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1159087?v=4","01M6C10AK8N2WCSQN11FYGTJWN","Joseph Magly","01M6C10AQ8A2RMED1Y1BSVY7NF",229,"MIT","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fscaffold-extension\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"scaffold","scaffold extension","extension","new","directory","when","author","Existing","for","expansion","extensions","authoring","build","use","package","framework","create","2026-11-10 10:12:30",false,"---\nnamespace: aiwg\nname: scaffold-extension\nplatforms: [all]\ndescription: Create a new extension package inside an existing framework's extensions\u002F directory. Use when authoring an expansion (extension) for AIWG.\ntriggers:\n  - author an expansion\n  - build an extension\n  - create an extension package\n  - expansion authoring\n  - scaffold extension\n  - new expansion\n---\n\n# Scaffold Extension\n\nCreate a new extension package inside an existing framework's `extensions\u002F` directory.\n\n## Triggers\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"I need a new extension\" → scaffold extension in specified framework\n- \"create an extension package\" → prompt for name and parent framework\n- \"add Python support to sdlc-complete\" → derive name=`python`, scaffold in sdlc-complete\n- \"new language extension\" → clarify name and framework, scaffold\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| Named scaffold | \"scaffold extension python --to sdlc-complete\" | Scaffold directly |\n| Language extension | \"add Go support to sdlc-complete\" | Derive name=`go`, confirm |\n| Interactive | \"scaffold extension --interactive --to sdlc-complete\" | Guided design mode |\n| Target omitted | \"scaffold extension typescript\" | Ask which framework |\n\n## Understanding Extensions\n\nExtensions are language- or ecosystem-specific capability packages nested inside a framework. They augment framework agents and rules with toolchain-specific knowledge. Examples:\n\n| Extension | Framework | Provides |\n|-----------|-----------|---------|\n| `python\u002F` | `sdlc-complete` | Python testing patterns, type hint rules, pip\u002Fpoetry guidance |\n| `javascript\u002F` | `sdlc-complete` | npm\u002Fpnpm workflows, ESLint integration, Jest patterns |\n| `github\u002F` | `sdlc-complete` | GitHub Actions, PR review workflows, release automation |\n| `terraform\u002F` | `sdlc-complete` | IaC patterns, state management, plan review agents |\n\nExtensions differ from addons:\n- **Extensions**: Nested within a specific framework, language\u002Fecosystem-scoped\n- **Addons**: Standalone, cross-cutting, installed alongside any framework\n\nExtensions cannot contain skills (skills require standalone functionality). They contain agents, rules, and templates scoped to their ecosystem.\n\n## Process\n\n### 1. Parse Arguments\n\nExtract from `$ARGUMENTS`:\n- `\u003Cname>` — kebab-case extension name (required; often a language or ecosystem name)\n- `--to \u003Cframework>` — parent framework directory name (required)\n- `--description \"\u003Ctext>\"` — short description (optional)\n- `--interactive` — enable guided design questions\n\nIf either `\u003Cname>` or `--to` is missing, ask before proceeding.\n\n### 2. Validate Parent Framework\n\nConfirm the parent framework exists:\n\n```bash\nls agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002F\n```\n\nCheck if an `extensions\u002F` directory exists; if not, it will be created.\n\nCheck for name conflicts:\n\n```bash\nls agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F 2>\u002Fdev\u002Fnull\n```\n\n### 3. Interactive Design (if --interactive)\n\nAsk before generating:\n\n1. **Ecosystem**: What language, platform, or ecosystem does this extension target?\n2. **Capabilities**: What ecosystem-specific capabilities does it add? (linting rules, test patterns, deployment agents)\n3. **Agents**: What specialist agents should be scaffolded? (e.g., `python-test-engineer`, `go-module-auditor`)\n4. **Rules**: What ecosystem-specific rules should be defined? (e.g., type safety, package management)\n5. **Templates**: What ecosystem-specific document templates are needed?\n\n### 4. Run Scaffolding\n\n```bash\naiwg scaffold-extension \u003Cname> --to \u003Cframework> [--description \"...\"]\n```\n\n### 5. Customize Generated Files\n\n**manifest.json** — The extension's registry entry:\n\n```json\n{\n  \"name\": \"\u003Cname>\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\u003Cecosystem-specific capabilities>\",\n  \"parentFramework\": \"\u003Cframework>\",\n  \"agents\": [],\n  \"rules\": [],\n  \"templates\": []\n}\n```\n\n**README.md** — Document the ecosystem targeted, capabilities provided, and activation conditions.\n\n### 6. Add Ecosystem-Specific Components\n\nAfter scaffold:\n\n```bash\n# Add ecosystem-specific agent\naiwg add-agent \u003Cname>-specialist --to \u003Cframework>\u002Fextensions\u002F\u003Cname>\n# Note: --to path traversal not yet supported; create agent file directly\n\n# Create agent file\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Fagents\u002F\u003Crole>.md\n\n# Create rules\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Frules\u002F\u003Crule-id>.md\n\n# Create templates\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Ftemplates\u002F\u003Ctemplate>-template.md\n```\n\n### 7. Register with Parent Framework\n\nEnsure the parent framework's manifest references the extension:\n\n```json\n{\n  \"extensions\": [\"existing-extension\", \"\u003Cname>\"]\n}\n```\n\nThe CLI tool handles this automatically.\n\n## Generated Structure\n\n```\nagentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F\u003Cname>\u002F\n├── README.md          # Extension documentation\n├── manifest.json      # Extension configuration\n├── agents\u002F            # Ecosystem-specific agent definitions\n├── rules\u002F             # Ecosystem-specific rule files\n└── templates\u002F         # Ecosystem-specific document templates\n```\n\nParent framework manifest updated: `agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fmanifest.json`\n\n## Output Format\n\n```\nExtension Created: \u003Cname>\n─────────────────────────\nLocation: agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F\u003Cname>\u002F\nParent:    \u003Cframework>\n\nCreated:\n  ✓ README.md\n  ✓ manifest.json\n  ✓ agents\u002F\n  ✓ rules\u002F\n  ✓ templates\u002F\n\nParent manifest updated: \u003Cframework>\u002Fmanifest.json\n\nNext Steps:\n  1. Edit README.md with ecosystem description\n  2. Add ecosystem agents: create agents\u002F\u003Crole>.md\n  3. Add ecosystem rules:  create rules\u002F\u003Crule-id>.md\n  4. Add templates:        create templates\u002F\u003Cname>-template.md\n  5. Deploy parent:        aiwg use \u003Cframework>\n```\n\n## Examples\n\n### Example 1: Language extension\n\n**User**: \"scaffold extension python --to sdlc-complete\"\n\n**Action**:\n```bash\naiwg scaffold-extension python --to sdlc-complete\n```\n\n**Result**: `agentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fextensions\u002Fpython\u002F` created with full structure. Parent manifest updated with `\"extensions\": [\"python\"]`.\n\n### Example 2: Platform extension with description\n\n**User**: \"create a GitHub Actions extension for sdlc-complete\"\n\n**Extraction**: name=`github-actions`, target=`sdlc-complete`\n\n**Action**:\n```bash\naiwg scaffold-extension github-actions --to sdlc-complete \\\n  --description \"GitHub Actions workflow generation and PR automation\"\n```\n\n### Example 3: Interactive extension design\n\n**User**: \"scaffold extension --interactive --to sdlc-complete\"\n\n**Process**: Guided questions identify ecosystem (e.g., Terraform), capabilities, agents (infrastructure-reviewer, plan-analyzer), and rules (state-management, variable-validation).\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fdevkit-create-extension\u002FSKILL.md — Devkit equivalent (interactive design)\n- @$AIWG_ROOT\u002Fsrc\u002Fcli\u002Fhandlers\u002Fscaffolding.ts — CLI handler implementation\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — Full CLI reference\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fextensions\u002F — Existing extension examples\n","# Scaffold Extension\n\nCreate a new extension package inside an existing framework's `extensions\u002F` directory.\n\n## Triggers\n\nAlternate expressions and non-obvious activations (primary phrases are matched automatically from the skill description):\n\n- \"I need a new extension\" → scaffold extension in specified framework\n- \"create an extension package\" → prompt for name and parent framework\n- \"add Python support to sdlc-complete\" → derive name=`python`, scaffold in sdlc-complete\n- \"new language extension\" → clarify name and framework, scaffold\n\n## Trigger Patterns Reference\n\n| Pattern | Example | Action |\n|---------|---------|--------|\n| Named scaffold | \"scaffold extension python --to sdlc-complete\" | Scaffold directly |\n| Language extension | \"add Go support to sdlc-complete\" | Derive name=`go`, confirm |\n| Interactive | \"scaffold extension --interactive --to sdlc-complete\" | Guided design mode |\n| Target omitted | \"scaffold extension typescript\" | Ask which framework |\n\n## Understanding Extensions\n\nExtensions are language- or ecosystem-specific capability packages nested inside a framework. They augment framework agents and rules with toolchain-specific knowledge. Examples:\n\n| Extension | Framework | Provides |\n|-----------|-----------|---------|\n| `python\u002F` | `sdlc-complete` | Python testing patterns, type hint rules, pip\u002Fpoetry guidance |\n| `javascript\u002F` | `sdlc-complete` | npm\u002Fpnpm workflows, ESLint integration, Jest patterns |\n| `github\u002F` | `sdlc-complete` | GitHub Actions, PR review workflows, release automation |\n| `terraform\u002F` | `sdlc-complete` | IaC patterns, state management, plan review agents |\n\nExtensions differ from addons:\n- **Extensions**: Nested within a specific framework, language\u002Fecosystem-scoped\n- **Addons**: Standalone, cross-cutting, installed alongside any framework\n\nExtensions cannot contain skills (skills require standalone functionality). They contain agents, rules, and templates scoped to their ecosystem.\n\n## Process\n\n### 1. Parse Arguments\n\nExtract from `$ARGUMENTS`:\n- `\u003Cname>` — kebab-case extension name (required; often a language or ecosystem name)\n- `--to \u003Cframework>` — parent framework directory name (required)\n- `--description \"\u003Ctext>\"` — short description (optional)\n- `--interactive` — enable guided design questions\n\nIf either `\u003Cname>` or `--to` is missing, ask before proceeding.\n\n### 2. Validate Parent Framework\n\nConfirm the parent framework exists:\n\n```bash\nls agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002F\n```\n\nCheck if an `extensions\u002F` directory exists; if not, it will be created.\n\nCheck for name conflicts:\n\n```bash\nls agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F 2>\u002Fdev\u002Fnull\n```\n\n### 3. Interactive Design (if --interactive)\n\nAsk before generating:\n\n1. **Ecosystem**: What language, platform, or ecosystem does this extension target?\n2. **Capabilities**: What ecosystem-specific capabilities does it add? (linting rules, test patterns, deployment agents)\n3. **Agents**: What specialist agents should be scaffolded? (e.g., `python-test-engineer`, `go-module-auditor`)\n4. **Rules**: What ecosystem-specific rules should be defined? (e.g., type safety, package management)\n5. **Templates**: What ecosystem-specific document templates are needed?\n\n### 4. Run Scaffolding\n\n```bash\naiwg scaffold-extension \u003Cname> --to \u003Cframework> [--description \"...\"]\n```\n\n### 5. Customize Generated Files\n\n**manifest.json** — The extension's registry entry:\n\n```json\n{\n  \"name\": \"\u003Cname>\",\n  \"version\": \"1.0.0\",\n  \"description\": \"\u003Cecosystem-specific capabilities>\",\n  \"parentFramework\": \"\u003Cframework>\",\n  \"agents\": [],\n  \"rules\": [],\n  \"templates\": []\n}\n```\n\n**README.md** — Document the ecosystem targeted, capabilities provided, and activation conditions.\n\n### 6. Add Ecosystem-Specific Components\n\nAfter scaffold:\n\n```bash\n# Add ecosystem-specific agent\naiwg add-agent \u003Cname>-specialist --to \u003Cframework>\u002Fextensions\u002F\u003Cname>\n# Note: --to path traversal not yet supported; create agent file directly\n\n# Create agent file\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Fagents\u002F\u003Crole>.md\n\n# Create rules\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Frules\u002F\u003Crule-id>.md\n\n# Create templates\n# \u003Cframework>\u002Fextensions\u002F\u003Cname>\u002Ftemplates\u002F\u003Ctemplate>-template.md\n```\n\n### 7. Register with Parent Framework\n\nEnsure the parent framework's manifest references the extension:\n\n```json\n{\n  \"extensions\": [\"existing-extension\", \"\u003Cname>\"]\n}\n```\n\nThe CLI tool handles this automatically.\n\n## Generated Structure\n\n```\nagentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F\u003Cname>\u002F\n├── README.md          # Extension documentation\n├── manifest.json      # Extension configuration\n├── agents\u002F            # Ecosystem-specific agent definitions\n├── rules\u002F             # Ecosystem-specific rule files\n└── templates\u002F         # Ecosystem-specific document templates\n```\n\nParent framework manifest updated: `agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fmanifest.json`\n\n## Output Format\n\n```\nExtension Created: \u003Cname>\n─────────────────────────\nLocation: agentic\u002Fcode\u002Fframeworks\u002F\u003Cframework>\u002Fextensions\u002F\u003Cname>\u002F\nParent:    \u003Cframework>\n\nCreated:\n  ✓ README.md\n  ✓ manifest.json\n  ✓ agents\u002F\n  ✓ rules\u002F\n  ✓ templates\u002F\n\nParent manifest updated: \u003Cframework>\u002Fmanifest.json\n\nNext Steps:\n  1. Edit README.md with ecosystem description\n  2. Add ecosystem agents: create agents\u002F\u003Crole>.md\n  3. Add ecosystem rules:  create rules\u002F\u003Crule-id>.md\n  4. Add templates:        create templates\u002F\u003Cname>-template.md\n  5. Deploy parent:        aiwg use \u003Cframework>\n```\n\n## Examples\n\n### Example 1: Language extension\n\n**User**: \"scaffold extension python --to sdlc-complete\"\n\n**Action**:\n```bash\naiwg scaffold-extension python --to sdlc-complete\n```\n\n**Result**: `agentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fextensions\u002Fpython\u002F` created with full structure. Parent manifest updated with `\"extensions\": [\"python\"]`.\n\n### Example 2: Platform extension with description\n\n**User**: \"create a GitHub Actions extension for sdlc-complete\"\n\n**Extraction**: name=`github-actions`, target=`sdlc-complete`\n\n**Action**:\n```bash\naiwg scaffold-extension github-actions --to sdlc-complete \\\n  --description \"GitHub Actions workflow generation and PR automation\"\n```\n\n### Example 3: Interactive extension design\n\n**User**: \"scaffold extension --interactive --to sdlc-complete\"\n\n**Process**: Guided questions identify ecosystem (e.g., Terraform), capabilities, agents (infrastructure-reviewer, plan-analyzer), and rules (state-management, variable-validation).\n\n## References\n\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Faddons\u002Faiwg-utils\u002Fskills\u002Fdevkit-create-extension\u002FSKILL.md — Devkit equivalent (interactive design)\n- @$AIWG_ROOT\u002Fsrc\u002Fcli\u002Fhandlers\u002Fscaffolding.ts — CLI handler implementation\n- @$AIWG_ROOT\u002Fdocs\u002Fcli-reference.md — Full CLI reference\n- @$AIWG_ROOT\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsdlc-complete\u002Fextensions\u002F — Existing extension examples\n",{"name":5,"triggers":46,"namespace":52,"platforms":53,"description":7},[47,48,49,50,25,51],"author an expansion","build an extension","create an extension package","expansion authoring","new expansion","aiwg",[54],"all","main","6754967c344ccb087a8de06972f55a41067b291b","agentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fscaffold-extension",36,"https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg","https:\u002F\u002Faiwg.io","https:\u002F\u002Fgithub.com\u002Fjmagly","https:\u002F\u002Fintegrolabs.io","ml\u002Fai, industrial automation, safety\u002Fsecurity, ssi\r\n\r\nmagly.net\r\nintegrolabs.io\r\naiwg.io\r\nfortemi.com\r\npagenary.com\r\nbytecask.com","2026-11-14 10:46:34",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add jmagly\u002Faiwg --skill scaffold-extension",{"tool":71,"command":72},"bunx","bunx skills add jmagly\u002Faiwg --skill scaffold-extension",{"tool":74,"command":75},"pnpm","pnpm dlx skills add jmagly\u002Faiwg --skill scaffold-extension","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Futils\u002Fskills\u002Fscaffold-extension\u002FSKILL.md",true,[79,85,89,93,97,101,105,109],{"path":80,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":83,"sourceHtmlUrl":84},"references\u002Fautoscaling.md","REFERENCE","参考文档",5226,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fautoscaling.md",{"path":86,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":87,"sourceHtmlUrl":88},"references\u002Fbaseline-defaults.md",5389,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fbaseline-defaults.md",{"path":90,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":91,"sourceHtmlUrl":92},"references\u002Fcapacity-provider-guide.md",15045,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fcapacity-provider-guide.md",{"path":94,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":95,"sourceHtmlUrl":96},"references\u002Fnetworking-security.md",7900,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fnetworking-security.md",{"path":98,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":99,"sourceHtmlUrl":100},"references\u002Fservice-and-deployment.md",12861,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fservice-and-deployment.md",{"path":102,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":103,"sourceHtmlUrl":104},"references\u002Ftask-definition-guide.md",12694,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Ftask-definition-guide.md",{"path":106,"resourceType":81,"resourceTypeDesc":82,"sizeBytes":107,"sourceHtmlUrl":108},"references\u002Fversion-matrix.md",4040,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Freferences\u002Fversion-matrix.md",{"path":110,"resourceType":111,"resourceTypeDesc":112,"sizeBytes":113,"sourceHtmlUrl":114},"scripts\u002Fvalidate_project.sh","SCRIPT","脚本",24391,"https:\u002F\u002Fgithub.com\u002Faws-samples\u002Fsample-apex-skills\u002Fblob\u002Fmain\u002Fskills\u002Fecs-build\u002Fscripts\u002Fvalidate_project.sh",[116,144,168,174,181,195],{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":123,"publishedAt":41},"01M70QA0BSYJ49EES9V4RE8QH1","host-hardening","Read-only system hardening baseline and plan-first host hardening recommendations for SSH, Docker bind addresses, firewall persistence, datastores, exporters and audit retention.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[122],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143],"host","host hardening","hardening","read","re","recommendations","remediation","plan","port","verification","Bash","access","only","retention","audit","never","firewall","bind","secrets","request",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":154,"publishedAt":41},"01M70PNT2Z4HMZPRBTAF6073NN","exposure-analysis","Read-only firewall analysis and effective host exposure reconstruction for Docker published ports, UFW bypass, stale rules, CDN scope, IPv6 asymmetry and external probe allowlists.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fplugins\u002Fforensics\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[150,153],{"categoryNo":151,"categoryName":152,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[155,156,157,127,158,132,159,160,134,161,124,162,136,163,164,139,140,165,166,167],"exposure analysis","analysis","unknown","credentials","collection","ufw","ports","internet","local","scope","reconstruction","operator","write",{"skillNo":169,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":173,"publishedAt":41},"01M70P8QATMPKA78E4FT5D2TNA","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fsecurity-engineering\u002Fskills\u002Fhost-hardening\u002FSKILL.md",[172],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[126,124,125,135,127,143,130,129,138,131,132,133,134,142,136,137,128,139,140,141],{"skillNo":175,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":180,"publishedAt":41},"01M70NMPVJ5H0JH131P60FW4R8","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Fagentic\u002Fcode\u002Fframeworks\u002Fforensics-complete\u002Fskills\u002Fexposure-analysis\u002FSKILL.md",[178,179],{"categoryNo":151,"categoryName":152,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[156,155,139,158,132,159,134,157,124,162,136,163,164,127,140,161,160,165,166,167],{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":188,"publishedAt":41},"01M6CB4DDR0B4NNCFK7ZK7449H","fixture-skill","Exercise rule delivery.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Frule-delivery\u002Fskills\u002Ffixture-skill\u002FSKILL.md",[187],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[189,190,191,192,193,194],"fixture skill","fixture","rule","delivery","true","exercise",{"skillNo":196,"name":197,"nameZh":6,"description":198,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":199,"categories":200,"keywords":202,"publishedAt":41},"01M6CB4AVK1W76MFMPP0JP32CJ","pi-local","Pi-local duplicate-precedence fixture.","https:\u002F\u002Fgithub.com\u002Fjmagly\u002Faiwg\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fproviders\u002Fpi\u002Fproject\u002F.pi\u002Fskills\u002Fpi-local\u002FSKILL.md",[201],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[203,204,163,205,190],"pi","pi local","duplicate"]