[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69AWKJKNBA0SDANXY6B0BMP":3,"skill-same:01M69AWKJKNBA0SDANXY6B0BMP":67},{"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":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":51,"updatedAt":52,"install":53,"resources":66},"01M69AWKJKNBA0SDANXY6B0BMP","azldev-remove-component",null,"Read this before deleting or dropping a component; there is no azldev remove command, so doing it wrong leaves dangling state. Explains the manual removal workflow for deleting component metadata, cleaning references, and validating any related output-affecting changes. Triggers include remove component, delete package, drop component, prune dependency.","microsoft\u002Fazurelinux","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69AVY9Y3D59ZBRVNKRJ851E",5362,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fazldev-remove-component\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"component","remove","azldev","azldev remove component","dependency","Wrong","changes","for","manual","output","triggers","drop","references","workflow","read","command","prune","package","state","delete","2026-11-10 10:12:30",false,"---\nname: azldev-remove-component\ndescription: \"Read this before deleting or dropping a component; there is no azldev remove command, so doing it wrong leaves dangling state. Explains the manual removal workflow for deleting component metadata, cleaning references, and validating any related output-affecting changes. Triggers include remove component, delete package, drop component, prune dependency.\"\n---\n\n# Remove a component\n\nThere is **no `azldev` command to remove a component** — it is a manual edit. A\ndeletion-only change needs no package build, but changes to dependents, package\u002Fimage\nconfiguration, or other built inputs must follow the repository's normal validation\nrequirements. The steps below delete the component's definition, lock, and rendered\nspec, then clean up references.\n\n## Before you start\n\nConfirm the component exists and inspect its resolved configuration:\n\n```sh\nazldev comp list -p \u003Cname> -q -O json\n```\n\nCheck for **reverse dependencies** first: if other components `BuildRequires` or\n`Requires` this one, removing it breaks their builds. Search the tree for the\ncomponent name. Identify its binary subpackage names from the rendered output under\n`specs\u002F\u003Cfirst-char>\u002F\u003Cname>\u002F`, then search for those names too.\n`azldev comp query` currently supports local spec sources only, not the usual upstream\nspec source.\n\n## Steps\n\n1. **Remove the definition.** Delete the component's dedicated\n   `\u003Cname>\u002F\u003Cname>.comp.toml` directory, or remove its inline `[components.\u003Cname>]`\n   entry from whichever included TOML defines it.\n2. **Remove publish \u002F package config references.** If your project configures\n   publish channels or package groups, drop any references to the component or to\n   its binary subpackages. Publishing is component-scoped; per-binary exceptions\n   are binary-RPM-scoped — search for both.\n3. **Remove the lock.** There is no azldev command for this:\n\n   ```sh\n   rm locks\u002F\u003Cname>.lock\n   ```\n\n4. **Remove the rendered spec.** Let azldev prune orphaned spec directories:\n\n   ```sh\n   azldev comp render -a --clean-stale\n   ```\n\n   `--clean-stale` (only valid with `-a`) removes rendered-spec directories that no\n   longer correspond to a configured component. It re-renders everything, so it is\n   slow; for a targeted removal you can instead delete the component's rendered\n   spec under `specs\u002F` by hand.\n5. **Check other references.** Grep for the component (and its binary names) in\n   image definitions and any `*.kiwi` \u002F package-list files, and remove or replace\n   them — an image that installs a now-removed package will not build.\n\n## Verify\n\n```sh\nazldev comp list -p \u003Cname> -q -O json   # should report the component is not found\n```\n\nAlso confirm the lock and rendered spec directory are gone and that no image or\npackage configuration still references the component.\n\nIf the removal required changes to dependents or package\u002Fimage configuration, build\nand test the affected outputs according to the repository's normal validation policy.\n\n## Notes\n\n- **Dependents with manual release.** If removing this component forces a change\n   in a *dependent* (e.g. dropping a `BuildRequires`), and that dependent sets\n  `release.calculation = \"manual\"`, bump its release counter yourself in the same\n  change. Components with automatic release calculation (`auto`, `autorelease`,\n  `static`) are handled by the normal commit\u002Frender\u002Famend cycle.\n- **Remove exclusive dependencies together.** If a package is only needed by the\n  component you are dropping, remove it in the same change to keep the tree\n  consistent.\n\nGenerated by `azldev docs agent`; do not hand-edit.\n","# Remove a component\n\nThere is **no `azldev` command to remove a component** — it is a manual edit. A\ndeletion-only change needs no package build, but changes to dependents, package\u002Fimage\nconfiguration, or other built inputs must follow the repository's normal validation\nrequirements. The steps below delete the component's definition, lock, and rendered\nspec, then clean up references.\n\n## Before you start\n\nConfirm the component exists and inspect its resolved configuration:\n\n```sh\nazldev comp list -p \u003Cname> -q -O json\n```\n\nCheck for **reverse dependencies** first: if other components `BuildRequires` or\n`Requires` this one, removing it breaks their builds. Search the tree for the\ncomponent name. Identify its binary subpackage names from the rendered output under\n`specs\u002F\u003Cfirst-char>\u002F\u003Cname>\u002F`, then search for those names too.\n`azldev comp query` currently supports local spec sources only, not the usual upstream\nspec source.\n\n## Steps\n\n1. **Remove the definition.** Delete the component's dedicated\n   `\u003Cname>\u002F\u003Cname>.comp.toml` directory, or remove its inline `[components.\u003Cname>]`\n   entry from whichever included TOML defines it.\n2. **Remove publish \u002F package config references.** If your project configures\n   publish channels or package groups, drop any references to the component or to\n   its binary subpackages. Publishing is component-scoped; per-binary exceptions\n   are binary-RPM-scoped — search for both.\n3. **Remove the lock.** There is no azldev command for this:\n\n   ```sh\n   rm locks\u002F\u003Cname>.lock\n   ```\n\n4. **Remove the rendered spec.** Let azldev prune orphaned spec directories:\n\n   ```sh\n   azldev comp render -a --clean-stale\n   ```\n\n   `--clean-stale` (only valid with `-a`) removes rendered-spec directories that no\n   longer correspond to a configured component. It re-renders everything, so it is\n   slow; for a targeted removal you can instead delete the component's rendered\n   spec under `specs\u002F` by hand.\n5. **Check other references.** Grep for the component (and its binary names) in\n   image definitions and any `*.kiwi` \u002F package-list files, and remove or replace\n   them — an image that installs a now-removed package will not build.\n\n## Verify\n\n```sh\nazldev comp list -p \u003Cname> -q -O json   # should report the component is not found\n```\n\nAlso confirm the lock and rendered spec directory are gone and that no image or\npackage configuration still references the component.\n\nIf the removal required changes to dependents or package\u002Fimage configuration, build\nand test the affected outputs according to the repository's normal validation policy.\n\n## Notes\n\n- **Dependents with manual release.** If removing this component forces a change\n   in a *dependent* (e.g. dropping a `BuildRequires`), and that dependent sets\n  `release.calculation = \"manual\"`, bump its release counter yourself in the same\n  change. Components with automatic release calculation (`auto`, `autorelease`,\n  `static`) are handled by the normal commit\u002Frender\u002Famend cycle.\n- **Remove exclusive dependencies together.** If a package is only needed by the\n  component you are dropping, remove it in the same change to keep the tree\n  consistent.\n\nGenerated by `azldev docs agent`; do not hand-edit.\n",{"name":5,"description":7},"4.0","431ad36a7a827e8ec414e96ae75517ec1ded115d",".agents\u002Fskills\u002Fazldev-remove-component",714,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 03:13:57",{"source":8,"skillName":5,"commands":54,"prompt":64,"zipAvailable":65},[55,58,61],{"tool":56,"command":57},"npx","npx skills add microsoft\u002Fazurelinux --skill azldev-remove-component",{"tool":59,"command":60},"bunx","bunx skills add microsoft\u002Fazurelinux --skill azldev-remove-component",{"tool":62,"command":63},"pnpm","pnpm dlx skills add microsoft\u002Fazurelinux --skill azldev-remove-component","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fazldev-remove-component\u002FSKILL.md",true,[],[68,96,120,144,165,188],{"skillNo":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":39},"01M69AX4PP9MJPS4TE3XDW93NJ","skill-metrics","[Skill] metrics, azure-monitor, aks - Query Azure Monitor metrics for Koji AKS node CPU, memory, disk usage, and pod readiness.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-metrics\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,26],"skill metrics","metrics","memory","azure","monitor","azure-monitor","aks","disk","node","query","azure monitor","false","readiness","CPU","disk usage","usage",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":103,"publishedAt":39},"01M69AX2WT9YWZTVMMQ6QWHG3Y","skill-mass-triage","[Skill] Batch-triage build failures from a JSON results file — diagnose with parallel sub-agents, bucketize by root cause, and produce a consolidated summary. Use when asked to triage a Koji results file. Triggers: batch triage, mass triage, triage results file, bucketize failures.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-mass-triage\u002FSKILL.md",[102],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[104,105,106,107,108,109,110,111,112,113,114,115,29,116,117,118,119],"triage","skill mass triage","diagnose","produce","batch","file","json","parallel","results","use","build","summary","with","root","root cause","when",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":130,"publishedAt":39},"01M69AX11X7RJS8A0GBJV2X0WD","skill-kql-queries","[Skill] kql, queries, log analytics, container logs - KQL query templates for Koji container logs, pod errors, restarts, Kubernetes events, build job activity, and node resource usage via Log Analytics.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-kql-queries\u002FSKILL.md",[126,129],{"categoryNo":127,"categoryName":128,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[131,132,133,134,135,136,137,88,138,139,114,89,91,140,141,142,143,95,26],"skill kql queries","kql","queries","kubernetes","analytics","logs","templates","container","log","events","via","activity","errors",{"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":151,"publishedAt":39},"01M69AWYRJY05J3N3K9PZ0X38H","skill-koji-triage","[Skill] Examine Koji builds, fetch task info and logs from the Koji Web UI, identify failures, and provide root cause analysis. Use when triaging Koji build failures, investigating failed tasks, downloading build logs, or searching for broken packages. Triggers: koji failure, koji build failed, koji task, koji log, koji triage, build failure analysis.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-koji-triage\u002FSKILL.md",[150],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[104,152,153,154,155,156,157,136,158,159,160,113,139,161,162,29,163,164,26,118,119],"skill koji triage","web","root cause analysis","tasks","packages","ui","analysis","broken","fetch","task","info","failure analysis","web ui",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":172,"publishedAt":39},"01M69AWWNGM4S4DDN6MSXMJ1XY","skill-fedora-mirror-injections","[Skill] Diagnose Azure Linux Stage 1 (bootstrap-mirror) BuildRequires resolution failures and backfill missing RPMs into the prod Fedora updates mirror via the azl-infra injections file. Use when triaging stage-1 \u002F azl4-bootstrap-mirror build failures, finding dependency gaps in the Fedora mirror, deciding whether a failure is a real mirror gap vs a transient timeout or a spec bug, adding entries to azl4-stage1-injections.yaml, or opening a PR with mirror injections. Triggers: bootstrap-mirror, stage 1 build failure, fedora mirror gap, missing BuildRequires, nothing provides crate, no match for argument, injections file, azl4-stage1-injections, mirror injection.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-fedora-mirror-injections\u002FSKILL.md",[171],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[173,174,175,176,177,106,83,178,179,180,113,23,181,182,183,29,184,185,186,26,187,119],"skill fedora mirror injections","fedora","mirror","spec","linux","pr","bootstrap","injection","bug","infra","entries","missing","argument","updates","backfill",{"skillNo":189,"name":190,"nameZh":6,"description":191,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":192,"categories":193,"keywords":195,"publishedAt":39},"01M69AWTVNFMTX4KQVR6EK62C0","skill-deployment-context","[Skill] deployment context, aks, azure, koji - Resolve Koji AKS deployment context -- resource group, cluster name, subscription, Log Analytics workspace, and monitoring resource names from deployment_summary.yaml when available, or discover them dynamically from Azure.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fazurelinux\u002Fblob\u002F4.0\u002F.agents\u002Fskills\u002Fskill-deployment-context\u002FSKILL.md",[194],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[196,197,198,135,83,199,200,86,201,139,115,202,91,203,204,119],"skill deployment context","deployment","context","yaml","monitoring","workspace","discover","name","cluster"]