[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71RN0JQCC57J689NTGF5ESV":3,"skill-same:01M71RN0JQCC57J689NTGF5ESV":94},{"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":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M71RN0JQCC57J689NTGF5ESV","provider",null,"Defines a reusable procedure. Source: xcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf. Compiled to skills\u002F\u003Cname>\u002FSKILL.md per provider.","saero-ai\u002Fxcaffold","saero-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F241489281?v=4","01M71RMYW2D3N082K45EVG587N","Saero AI","01M71RMYWM3Q1HRJWM7X6K0F7B",8,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fskill.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,24,25,26,27],"reusable","name","kind","source","2026-11-10 13:02:02",false,"---\ntitle: \"kind: skill\"\ndescription: \"Defines a reusable procedure. Source: xcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf. Compiled to skills\u002F\u003Cname>\u002FSKILL.md per provider.\"\n---\n\n# `kind: skill`\n\nDefines a reusable procedure that agents invoke on-demand. Compiled to `skills\u002F\u003Cid>\u002FSKILL.md` with YAML frontmatter for all registered providers.\n\n> **Required:** `kind`, `version`, `name`\n\n## Source Directory\n\n```\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf\n```\n\nPer-provider overrides use a sibling file with a provider suffix:\n\n```\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.claude.xcaf\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.cursor.xcaf\n```\n\n## Example Usage\n\n### Minimal skill\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: conventional-commits\ndescription: >-\n  Structured Git commit workflow using Conventional Commits with pre-commit\n  checks, logical grouping, and anti-jargon enforcement.\n---\n# Conventional Commits\n\nUse `feat`, `fix`, `chore`, `docs`, `refactor`, `test` as commit type.\nFormat: `\u003Ctype>(\u003Cscope>): \u003Cdescription>`\n\nNever include `Co-Authored-By` trailers.\nRun `git diff --staged` before composing the message.\n```\n\n### Simple skill — instructions and rules\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions — file layout, prop types, Tailwind styling,\n  accessibility attributes, and co-located test scaffolding.\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill whenever you are asked to create a new React component\nor refactor an existing one to meet project standards.\n\n## Step 1 — Confirm the component location\nAll new components live under `src\u002Fcomponents\u002F\u003CCategory>\u002F\u003CComponentName>\u002F`.\nIf the category does not exist, create it.\n\n## Step 2 — Create the file structure\nEach component directory contains four files:\n- `index.ts` — re-export barrel\n- `ComponentName.tsx` — implementation\n- `ComponentName.test.tsx` — co-located tests\n- `ComponentName.stories.tsx` — Storybook stories (optional)\n\n## Step 3 — Implement with forwardRef\nUse `forwardRef` for all interactive components. Accept a `className`\nprop and merge it with `cn()` from `@\u002Flib\u002Futils`.\n\n## Step 4 — Write co-located tests\nEvery component ships with at least two tests: renders correctly\nand responds to its primary interaction.\n\n## Step 5 — Export from the barrel\nAppend the public export to `src\u002Fcomponents\u002Findex.ts`.\n\n## Rules\n- One component per directory. No multi-component files.\n- All props must have TypeScript types. No `any`.\n- Accessibility: every interactive element needs an aria label or role.\n```\n\n### Skill with artifacts — single folder\n\nThe `artifacts` field declares subdirectories that are composed alongside the compiled `SKILL.md`. Files within each subdirectory are discovered automatically from the filesystem.\n\n**Source directory layout:**\n\n```\nxcaf\u002Fskills\u002Fcomponent-patterns\u002F\n  skill.xcaf\n  references\u002F\n    design-tokens.md\n    shadcn-primitives.md\n```\n\n**Manifest:**\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions.\nartifacts:\n  - references\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill when creating or refactoring React components.\n\n## Step 1 — Confirm the component location\n…\n\n## Reference Material\nConsult `references\u002Fdesign-tokens.md` for spacing and color values.\nConsult `references\u002Fshadcn-primitives.md` for base component APIs.\n```\n\nThe `references\u002F` directory and all its files are placed alongside `SKILL.md` in the compiled output (e.g., `.claude\u002Fskills\u002Fcomponent-patterns\u002Freferences\u002Fdesign-tokens.md`).\n\n### Skill with artifacts — multiple folders\n\nA skill can declare more than one artifact subdirectory. Each name maps to a sibling directory on disk.\n\n**Source directory layout:**\n\n```\nxcaf\u002Fskills\u002Fdeploy-checklist\u002F\n  skill.xcaf\n  references\u002F\n    pre-deploy-gates.md\n    rollback-playbook.md\n  scripts\u002F\n    smoke-test.sh\n    health-check.sh\n  examples\u002F\n    staging.env.example\n    production.env.example\n```\n\n**Manifest:**\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: deploy-checklist\ndescription: >-\n  Production deployment checklist with automated smoke tests\n  and rollback procedures.\nartifacts:\n  - references\n  - scripts\n  - examples\n---\n# Deploy Checklist\n\n## Step 1 — Run pre-deploy gates\nReview the checklist in `references\u002Fpre-deploy-gates.md`.\n\n## Step 2 — Execute smoke tests\nRun `scripts\u002Fsmoke-test.sh` against the staging environment.\n\n## Step 3 — Verify health\nRun `scripts\u002Fhealth-check.sh` and confirm all endpoints return 200.\n\n## Step 4 — Rollback plan\nIf any check fails, follow `references\u002Frollback-playbook.md`.\n```\n\n**Valid artifact names:**\n\n| Name | Typical contents |\n|------|-----------------|\n| `references` | Lookup tables, checklists, design tokens, specification excerpts |\n| `scripts` | Shell scripts, automation helpers |\n| `assets` | Static files, images, templates |\n| `examples` | Sample configurations, fixture files |\n| *(custom)* | Any kebab-case directory name is accepted |\n\n## Field Reference\n\n### Required Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `kind` | `string` | Resource type. Must be `skill`. |\n| `version` | `string` | File format version. Must be `\"1.0\"`. |\n| `name` | `string` | Unique skill identifier. Must match `[a-z0-9-]+`. |\n\n### Optional Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `description` | `string` | Human-readable purpose of this skill. What it does and when to invoke it. |\n| `when-to-use` | `string` | Guidance for the model on when to invoke this skill. Emitted only for Claude (as `when_to_use` in SKILL.md frontmatter); ignored by other providers. |\n| `license` | `string` | SPDX license identifier (e.g. `\"MIT\"`, `\"Apache-2.0\"`). Emitted for Claude and Copilot; ignored by other providers. |\n| `allowed-tools` | `[]string` | Tools the skill is permitted to use. Claude emits as a space-separated string. Copilot emits as a YAML list. Gemini drops this field with a fidelity warning. Cursor and Antigravity do not emit this field. |\n| `disable-model-invocation` | `bool` | When `true`, prevents the skill from spawning a sub-agent. Supported by Claude and Cursor. |\n| `user-invocable` | `bool` | When `true`, exposes the skill as a slash command the user can invoke directly. Claude-only. |\n| `argument-hint` | `string` | Hint text shown during slash-command invocation. Has effect only when `user-invocable: true`. Claude-only. |\n| `artifacts` | `[]string` | Named subdirectories to compose with the skill. Valid canonical names: `references`, `scripts`, `assets`, `examples`. Custom names also accepted. Files within each subdirectory are discovered automatically from the filesystem. |\n| `targets` | `map[string]TargetOverride` | Per-provider overrides keyed by provider name. |\n\n## Filesystem-as-Schema\n\nWhen a skill `.xcaf` file lives at `xcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf`, the `kind:` and `name:` fields can be omitted from the YAML. The parser infers:\n- `kind: skill` from the parent directory name (`skills\u002F`)\n- `name:` from the grandparent directory name (e.g., `component-patterns` from `skills\u002Fcomponent-patterns\u002Fskill.xcaf`)\n\nWhen `kind:` or `name:` are present in the YAML, they must match the inferred values.\n\n## Compiled Output\n\n### Claude\n\n**Output path**: `.claude\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\n```markdown\n---\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions — file layout, prop types, Tailwind styling,\n  accessibility attributes, and co-located test scaffolding.\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill whenever you are asked to create a new React component\nor refactor an existing one to meet project standards.\n...\n```\n\nWhen `artifacts` are declared, files discovered in each artifact subdirectory are placed alongside `SKILL.md`. For example, a skill declaring `artifacts: [references]` with `references\u002Fdesign-tokens.md` compiles to `.claude\u002Fskills\u002Fcomponent-patterns\u002Freferences\u002Fdesign-tokens.md`.\n\n### Cursor\n\n**Output path**: `.cursor\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nFrontmatter emits `name`, `description`, `disable-model-invocation`, `paths`, and `metadata`. Provider-specific fields (`when-to-use`, `license`, `user-invocable`, `argument-hint`, `allowed-tools`) are omitted with fidelity warnings. Artifact subdirectories are seeded at `.cursor\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are collapsed into `references\u002F` rather than a separate `examples\u002F` subdirectory.\n\n### Copilot\n\n**Output path**: `.github\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nEmits `name`, `description`, and `license` in the frontmatter. Artifact subdirectories are seeded at `.github\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are seeded in an `examples\u002F` subdirectory.\n\n### Gemini\n\n**Output path**: `.gemini\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nFrontmatter is limited to `name` and `description`. Provider-specific fields are omitted. Artifact subdirectories are seeded at `.gemini\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are collapsed into `references\u002F` rather than a separate `examples\u002F` subdirectory.\n\n### Antigravity\n\n**Output path**: `.agents\u002Fskills\u002F\u003Cid>\u002FSKILL.md`\n\nAntigravity follows the agentskills.io format and emits `name`, `description`, `when-to-use`, `argument-hint`, `allowed-tools`, `user-invocable`, and `disable-model-invocation` in the frontmatter. The markdown body is preserved.\n\nWhen `artifacts` are declared, files discovered in each artifact subdirectory are placed alongside `SKILL.md` with artifact directory mapping applied (`references` -> `examples`, `assets` -> `resources`).\n\n### Codex (Preview)\n\n**Output path**: `.agents\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nCodex shares the `.agents\u002Fskills\u002F` output path with the Antigravity family. Xcaffold emits `name` and `description` in the frontmatter; all other frontmatter fields are stripped. The markdown body is preserved. Artifact subdirectories are placed as-is alongside `SKILL.md`.\n\n### Artifact path remapping\n\nSome providers remap artifact directory names during compilation:\n\n| Source directory | Claude | Cursor | Copilot | Gemini | Antigravity | Codex |\n|------------------|--------|--------|---------|--------|-------------|-------|\n| `references\u002F` | `references\u002F` | `references\u002F` | `references\u002F` | `references\u002F` | `examples\u002F` | `references\u002F` |\n| `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` |\n| `assets\u002F` | `assets\u002F` | `assets\u002F` | `assets\u002F` | `assets\u002F` | `resources\u002F` | `assets\u002F` |\n| `examples\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `examples\u002F` |\n\n## Provider Fidelity\n\nSkill output is not uniform across providers. The table below summarises what each provider preserves.\n\n| Field | Claude | Cursor | Copilot | Gemini | Antigravity | Codex (Preview) |\n|-------|--------|--------|---------|--------|-------------|-----------------|\n| `name` | yes | yes | yes | yes | yes | yes |\n| `description` | yes | yes | yes | yes | yes | yes |\n| `when-to-use` | yes (`when_to_use`) | no | no | no | yes (`when-to-use`) | no |\n| `license` | yes | no | yes | no | no | no |\n| `allowed-tools` | yes (space-separated) | no | yes (YAML list) | no (warning) | yes (bracket list) | no |\n| `argument-hint` | yes | no | no | no | yes | no |\n| `disable-model-invocation` | yes | yes | no | no | no | no |\n| `paths` | yes | yes | no | no | no | no |\n| `metadata` | no | yes | no | no | no | no |\n| `user-invocable` | yes | no | no | no | yes | no |\n| Markdown body | yes | yes | yes | yes | yes | yes |\n| `references\u002F` subdirectory | yes | yes | yes | yes | compiled to `examples\u002F` | yes |\n| `examples\u002F` placement | skill root | `references\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `examples\u002F` |\n| `scripts\u002F` subdirectory | yes | yes | yes | yes | yes | yes |\n| `assets\u002F` subdirectory | yes | yes | yes | yes | compiled to `resources\u002F` | yes |\n","# `kind: skill`\n\nDefines a reusable procedure that agents invoke on-demand. Compiled to `skills\u002F\u003Cid>\u002FSKILL.md` with YAML frontmatter for all registered providers.\n\n> **Required:** `kind`, `version`, `name`\n\n## Source Directory\n\n```\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf\n```\n\nPer-provider overrides use a sibling file with a provider suffix:\n\n```\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.claude.xcaf\nxcaf\u002Fskills\u002F\u003Cname>\u002Fskill.cursor.xcaf\n```\n\n## Example Usage\n\n### Minimal skill\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: conventional-commits\ndescription: >-\n  Structured Git commit workflow using Conventional Commits with pre-commit\n  checks, logical grouping, and anti-jargon enforcement.\n---\n# Conventional Commits\n\nUse `feat`, `fix`, `chore`, `docs`, `refactor`, `test` as commit type.\nFormat: `\u003Ctype>(\u003Cscope>): \u003Cdescription>`\n\nNever include `Co-Authored-By` trailers.\nRun `git diff --staged` before composing the message.\n```\n\n### Simple skill — instructions and rules\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions — file layout, prop types, Tailwind styling,\n  accessibility attributes, and co-located test scaffolding.\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill whenever you are asked to create a new React component\nor refactor an existing one to meet project standards.\n\n## Step 1 — Confirm the component location\nAll new components live under `src\u002Fcomponents\u002F\u003CCategory>\u002F\u003CComponentName>\u002F`.\nIf the category does not exist, create it.\n\n## Step 2 — Create the file structure\nEach component directory contains four files:\n- `index.ts` — re-export barrel\n- `ComponentName.tsx` — implementation\n- `ComponentName.test.tsx` — co-located tests\n- `ComponentName.stories.tsx` — Storybook stories (optional)\n\n## Step 3 — Implement with forwardRef\nUse `forwardRef` for all interactive components. Accept a `className`\nprop and merge it with `cn()` from `@\u002Flib\u002Futils`.\n\n## Step 4 — Write co-located tests\nEvery component ships with at least two tests: renders correctly\nand responds to its primary interaction.\n\n## Step 5 — Export from the barrel\nAppend the public export to `src\u002Fcomponents\u002Findex.ts`.\n\n## Rules\n- One component per directory. No multi-component files.\n- All props must have TypeScript types. No `any`.\n- Accessibility: every interactive element needs an aria label or role.\n```\n\n### Skill with artifacts — single folder\n\nThe `artifacts` field declares subdirectories that are composed alongside the compiled `SKILL.md`. Files within each subdirectory are discovered automatically from the filesystem.\n\n**Source directory layout:**\n\n```\nxcaf\u002Fskills\u002Fcomponent-patterns\u002F\n  skill.xcaf\n  references\u002F\n    design-tokens.md\n    shadcn-primitives.md\n```\n\n**Manifest:**\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions.\nartifacts:\n  - references\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill when creating or refactoring React components.\n\n## Step 1 — Confirm the component location\n…\n\n## Reference Material\nConsult `references\u002Fdesign-tokens.md` for spacing and color values.\nConsult `references\u002Fshadcn-primitives.md` for base component APIs.\n```\n\nThe `references\u002F` directory and all its files are placed alongside `SKILL.md` in the compiled output (e.g., `.claude\u002Fskills\u002Fcomponent-patterns\u002Freferences\u002Fdesign-tokens.md`).\n\n### Skill with artifacts — multiple folders\n\nA skill can declare more than one artifact subdirectory. Each name maps to a sibling directory on disk.\n\n**Source directory layout:**\n\n```\nxcaf\u002Fskills\u002Fdeploy-checklist\u002F\n  skill.xcaf\n  references\u002F\n    pre-deploy-gates.md\n    rollback-playbook.md\n  scripts\u002F\n    smoke-test.sh\n    health-check.sh\n  examples\u002F\n    staging.env.example\n    production.env.example\n```\n\n**Manifest:**\n\n```yaml\n---\nkind: skill\nversion: \"1.0\"\nname: deploy-checklist\ndescription: >-\n  Production deployment checklist with automated smoke tests\n  and rollback procedures.\nartifacts:\n  - references\n  - scripts\n  - examples\n---\n# Deploy Checklist\n\n## Step 1 — Run pre-deploy gates\nReview the checklist in `references\u002Fpre-deploy-gates.md`.\n\n## Step 2 — Execute smoke tests\nRun `scripts\u002Fsmoke-test.sh` against the staging environment.\n\n## Step 3 — Verify health\nRun `scripts\u002Fhealth-check.sh` and confirm all endpoints return 200.\n\n## Step 4 — Rollback plan\nIf any check fails, follow `references\u002Frollback-playbook.md`.\n```\n\n**Valid artifact names:**\n\n| Name | Typical contents |\n|------|-----------------|\n| `references` | Lookup tables, checklists, design tokens, specification excerpts |\n| `scripts` | Shell scripts, automation helpers |\n| `assets` | Static files, images, templates |\n| `examples` | Sample configurations, fixture files |\n| *(custom)* | Any kebab-case directory name is accepted |\n\n## Field Reference\n\n### Required Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `kind` | `string` | Resource type. Must be `skill`. |\n| `version` | `string` | File format version. Must be `\"1.0\"`. |\n| `name` | `string` | Unique skill identifier. Must match `[a-z0-9-]+`. |\n\n### Optional Fields\n\n| Field | Type | Description |\n|-------|------|-------------|\n| `description` | `string` | Human-readable purpose of this skill. What it does and when to invoke it. |\n| `when-to-use` | `string` | Guidance for the model on when to invoke this skill. Emitted only for Claude (as `when_to_use` in SKILL.md frontmatter); ignored by other providers. |\n| `license` | `string` | SPDX license identifier (e.g. `\"MIT\"`, `\"Apache-2.0\"`). Emitted for Claude and Copilot; ignored by other providers. |\n| `allowed-tools` | `[]string` | Tools the skill is permitted to use. Claude emits as a space-separated string. Copilot emits as a YAML list. Gemini drops this field with a fidelity warning. Cursor and Antigravity do not emit this field. |\n| `disable-model-invocation` | `bool` | When `true`, prevents the skill from spawning a sub-agent. Supported by Claude and Cursor. |\n| `user-invocable` | `bool` | When `true`, exposes the skill as a slash command the user can invoke directly. Claude-only. |\n| `argument-hint` | `string` | Hint text shown during slash-command invocation. Has effect only when `user-invocable: true`. Claude-only. |\n| `artifacts` | `[]string` | Named subdirectories to compose with the skill. Valid canonical names: `references`, `scripts`, `assets`, `examples`. Custom names also accepted. Files within each subdirectory are discovered automatically from the filesystem. |\n| `targets` | `map[string]TargetOverride` | Per-provider overrides keyed by provider name. |\n\n## Filesystem-as-Schema\n\nWhen a skill `.xcaf` file lives at `xcaf\u002Fskills\u002F\u003Cname>\u002Fskill.xcaf`, the `kind:` and `name:` fields can be omitted from the YAML. The parser infers:\n- `kind: skill` from the parent directory name (`skills\u002F`)\n- `name:` from the grandparent directory name (e.g., `component-patterns` from `skills\u002Fcomponent-patterns\u002Fskill.xcaf`)\n\nWhen `kind:` or `name:` are present in the YAML, they must match the inferred values.\n\n## Compiled Output\n\n### Claude\n\n**Output path**: `.claude\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\n```markdown\n---\nname: component-patterns\ndescription: >-\n  Step-by-step procedure for implementing a new React component following\n  frontend-app conventions — file layout, prop types, Tailwind styling,\n  accessibility attributes, and co-located test scaffolding.\n---\n# Component Patterns\n\n## When to Use\nInvoke this skill whenever you are asked to create a new React component\nor refactor an existing one to meet project standards.\n...\n```\n\nWhen `artifacts` are declared, files discovered in each artifact subdirectory are placed alongside `SKILL.md`. For example, a skill declaring `artifacts: [references]` with `references\u002Fdesign-tokens.md` compiles to `.claude\u002Fskills\u002Fcomponent-patterns\u002Freferences\u002Fdesign-tokens.md`.\n\n### Cursor\n\n**Output path**: `.cursor\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nFrontmatter emits `name`, `description`, `disable-model-invocation`, `paths`, and `metadata`. Provider-specific fields (`when-to-use`, `license`, `user-invocable`, `argument-hint`, `allowed-tools`) are omitted with fidelity warnings. Artifact subdirectories are seeded at `.cursor\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are collapsed into `references\u002F` rather than a separate `examples\u002F` subdirectory.\n\n### Copilot\n\n**Output path**: `.github\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nEmits `name`, `description`, and `license` in the frontmatter. Artifact subdirectories are seeded at `.github\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are seeded in an `examples\u002F` subdirectory.\n\n### Gemini\n\n**Output path**: `.gemini\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nFrontmatter is limited to `name` and `description`. Provider-specific fields are omitted. Artifact subdirectories are seeded at `.gemini\u002Fskills\u002Fcomponent-patterns\u002F\u003Cartifact>\u002F`. Example files are collapsed into `references\u002F` rather than a separate `examples\u002F` subdirectory.\n\n### Antigravity\n\n**Output path**: `.agents\u002Fskills\u002F\u003Cid>\u002FSKILL.md`\n\nAntigravity follows the agentskills.io format and emits `name`, `description`, `when-to-use`, `argument-hint`, `allowed-tools`, `user-invocable`, and `disable-model-invocation` in the frontmatter. The markdown body is preserved.\n\nWhen `artifacts` are declared, files discovered in each artifact subdirectory are placed alongside `SKILL.md` with artifact directory mapping applied (`references` -> `examples`, `assets` -> `resources`).\n\n### Codex (Preview)\n\n**Output path**: `.agents\u002Fskills\u002Fcomponent-patterns\u002FSKILL.md`\n\nCodex shares the `.agents\u002Fskills\u002F` output path with the Antigravity family. Xcaffold emits `name` and `description` in the frontmatter; all other frontmatter fields are stripped. The markdown body is preserved. Artifact subdirectories are placed as-is alongside `SKILL.md`.\n\n### Artifact path remapping\n\nSome providers remap artifact directory names during compilation:\n\n| Source directory | Claude | Cursor | Copilot | Gemini | Antigravity | Codex |\n|------------------|--------|--------|---------|--------|-------------|-------|\n| `references\u002F` | `references\u002F` | `references\u002F` | `references\u002F` | `references\u002F` | `examples\u002F` | `references\u002F` |\n| `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` | `scripts\u002F` |\n| `assets\u002F` | `assets\u002F` | `assets\u002F` | `assets\u002F` | `assets\u002F` | `resources\u002F` | `assets\u002F` |\n| `examples\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `examples\u002F` |\n\n## Provider Fidelity\n\nSkill output is not uniform across providers. The table below summarises what each provider preserves.\n\n| Field | Claude | Cursor | Copilot | Gemini | Antigravity | Codex (Preview) |\n|-------|--------|--------|---------|--------|-------------|-----------------|\n| `name` | yes | yes | yes | yes | yes | yes |\n| `description` | yes | yes | yes | yes | yes | yes |\n| `when-to-use` | yes (`when_to_use`) | no | no | no | yes (`when-to-use`) | no |\n| `license` | yes | no | yes | no | no | no |\n| `allowed-tools` | yes (space-separated) | no | yes (YAML list) | no (warning) | yes (bracket list) | no |\n| `argument-hint` | yes | no | no | no | yes | no |\n| `disable-model-invocation` | yes | yes | no | no | no | no |\n| `paths` | yes | yes | no | no | no | no |\n| `metadata` | no | yes | no | no | no | no |\n| `user-invocable` | yes | no | no | no | yes | no |\n| Markdown body | yes | yes | yes | yes | yes | yes |\n| `references\u002F` subdirectory | yes | yes | yes | yes | compiled to `examples\u002F` | yes |\n| `examples\u002F` placement | skill root | `references\u002F` | `examples\u002F` | `references\u002F` | `examples\u002F` | `examples\u002F` |\n| `scripts\u002F` subdirectory | yes | yes | yes | yes | yes | yes |\n| `assets\u002F` subdirectory | yes | yes | yes | yes | compiled to `resources\u002F` | yes |\n",{"title":33,"description":7},"kind: skill","main","0df0dc742a84eea7155aa004cfcdf95cc68ae5d8","docs\u002Freference\u002Fkinds\u002Fprovider",0,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold","https:\u002F\u002Fwww.xcaffold.com","https:\u002F\u002Fgithub.com\u002Fsaero-ai","2026-10-14 02:35:40",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add saero-ai\u002Fxcaffold --skill provider",{"tool":48,"command":49},"bunx","bunx skills add saero-ai\u002Fxcaffold --skill provider",{"tool":51,"command":52},"pnpm","pnpm dlx skills add saero-ai\u002Fxcaffold --skill provider","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fskill.md",true,[56,62,66,70,74,78,82,86,90],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"agent.md","REFERENCE","参考文档",13847,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fagent.md",{"path":63,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":64,"sourceHtmlUrl":65},"context.md",6358,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fcontext.md",{"path":67,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":68,"sourceHtmlUrl":69},"hooks.md",14404,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fhooks.md",{"path":71,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":72,"sourceHtmlUrl":73},"index.md",1341,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Findex.md",{"path":75,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":76,"sourceHtmlUrl":77},"mcp.md",5715,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fmcp.md",{"path":79,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":80,"sourceHtmlUrl":81},"memory.md",4872,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fmemory.md",{"path":83,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":84,"sourceHtmlUrl":85},"rule.md",9071,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Frule.md",{"path":87,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":88,"sourceHtmlUrl":89},"settings.md",9240,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fsettings.md",{"path":91,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":92,"sourceHtmlUrl":93},"workflow.md",8458,"https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fdocs\u002Freference\u002Fkinds\u002Fprovider\u002Fworkflow.md",[95,116,136,151,157,179],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":104,"publishedAt":28},"01M71RNEYFEN3VQXP7F85YRKQC","tdd","Test-driven development workflow using the Red-Green-Refactor cycle.","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.gemini\u002Fskills\u002Ftdd\u002FSKILL.md",[101],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",[97,105,106,107,108,109,110,111,112,113,114,115],"test-driven","red","workflow","test","development","refactor","red-green-refactor","development workflow","cycle","green","driven",{"skillNo":117,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":124,"publishedAt":28},"01M71RNDC1QQXWBY49FN7QBDHT","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Ftdd\u002FSKILL.md",[120,121],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":122,"categoryName":123,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",[97,125,114,113,112,111,126,127,128,129,130,131,109,108,107,132,133,105,134,135],"read","use","new feature","write","false","Bash","first","feature","implementing","when","new",{"skillNo":137,"name":138,"nameZh":6,"description":139,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":140,"categories":141,"keywords":142,"publishedAt":28},"01M71RNBVSGGXFV2RQPZH2EP6W","debugging","Systematic debugging workflow for isolating root causes before applying fixes.","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.claude\u002Fskills\u002Fdebugging\u002FSKILL.md",[],[138,134,107,108,143,130,144,125,145,126,146,147,129,148,149,150],"systematic debugging","grep","behavior","bug","systematic","root","for","fixes",{"skillNo":152,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":156,"publishedAt":28},"01M71RNAABH3059V7WQFZQ9ND9","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.agents\u002Fskills\u002Ftdd\u002FSKILL.md",[155],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},[97,107,115,114,113,112,111,110,109,108,106,105],{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":169,"publishedAt":28},"01M71RN7YDQ5EAXNR9EJJWTYN9","code-review","Structured code review process covering correctness, security, and performance.","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Ftest\u002Fe2e\u002Ftestdata\u002Fproject\u002F.agents\u002Fskills\u002Fcode-review\u002FSKILL.md",[163,164],{"categoryNo":102,"categoryName":103,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":165,"categoryName":166,"taxonomyType":167,"taxonomyTypeDesc":168},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[170,171,172,173,174,175,176,177,178],"code","review","code review","correctness","structured","review process","process","performance","security",{"skillNo":180,"name":181,"nameZh":6,"description":182,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":183,"categories":184,"keywords":185,"publishedAt":28},"01M71RN70XQ9EH5ZXSPHVNHS3P","web-search","Search the web","https:\u002F\u002Fgithub.com\u002Fsaero-ai\u002Fxcaffold\u002Fblob\u002Fmain\u002Fproviders\u002Fgemini\u002Ftestdata\u002Finput\u002Fskills\u002Fsearch\u002FSKILL.md",[],[186,187,188,189],"search","web search","web","websearch"]