[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M69BAPD445SPSYN1MCBZZ18T":3,"skill-same:01M69BAPD445SPSYN1MCBZZ18T":142},{"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":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":37,"ownerHtmlUrl":38,"ownerBlogUrl":39,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M69BAPD445SPSYN1MCBZZ18T","lint",null,"Run the full lint workflow: format, typecheck, CSS lint, JS lint. USE WHEN: the user asks to \"lint\", \"fix lint\", \"run the linters\", \"check types\", or after making code changes that need verification.","microsoft\u002Fcoreai-design-system","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69B9ED3TGFRHF93Y8JF1Y18",2,"CC-BY-4.0","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Flint\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",[5,24,25,26],"css","workflow","run","2026-11-10 10:12:30",false,"---\nname: lint\ndescription: 'Run the full lint workflow: format, typecheck, CSS lint, JS lint. USE WHEN: the user asks to \"lint\", \"fix lint\", \"run the linters\", \"check types\", or after making code changes that need verification.'\n---\n\n# Lint the Codebase\n\nRun each step below in order from the repository root, fixing errors caused by or directly related to the current task before moving to the next step. Report unrelated pre-existing errors rather than changing unrelated code; do not claim a step passed while errors remain.\n\n1. `npx prettier apps\u002Fprototype --write` — Auto-format prototype code with Prettier. For focused changes, pass explicit changed-file paths instead of the entire app directory. Run this first so formatting noise doesn't obscure real errors in later steps. Run periodically after editing TypeScript files. Do not use root `npm run format` for prototype-only work; it formats the entire repository.\n2. `npm --workspace apps\u002Fprototype run type-check` — Generate React Router types and fix relevant TypeScript \u002F JavaScript type errors.\n3. `npm --workspace apps\u002Fprototype run lint` — Fix relevant ESLint issues in `.ts` and `.tsx` files. If editing components, invoke the `prototype-app-react-components` skill for guidance.\n\n**Verification rule**: After fixing errors in a command-based step, re-run that step's command **standalone** (not chained with other commands or piped through `tail`). Read the **full output** and confirm the exact error\u002Fwarning count before moving to the next step. Never trust truncated or chained output as proof of zero errors. For the manual CSS review step, recheck the affected CSS against the skill's checklist and retain the explicit automated-lint limitation.\n\nRun `npx prettier apps\u002Fprototype --write` again when finished, or use the same explicit changed-file paths selected in step 1.\n\n## Related skills\n\n- `prototype-app-css-styling` — required reading when fixing CSS warnings.\n- `prototype-app-react-components` — required reading when fixing TSX warnings.\n","# Lint the Codebase\n\nRun each step below in order from the repository root, fixing errors caused by or directly related to the current task before moving to the next step. Report unrelated pre-existing errors rather than changing unrelated code; do not claim a step passed while errors remain.\n\n1. `npx prettier apps\u002Fprototype --write` — Auto-format prototype code with Prettier. For focused changes, pass explicit changed-file paths instead of the entire app directory. Run this first so formatting noise doesn't obscure real errors in later steps. Run periodically after editing TypeScript files. Do not use root `npm run format` for prototype-only work; it formats the entire repository.\n2. `npm --workspace apps\u002Fprototype run type-check` — Generate React Router types and fix relevant TypeScript \u002F JavaScript type errors.\n3. `npm --workspace apps\u002Fprototype run lint` — Fix relevant ESLint issues in `.ts` and `.tsx` files. If editing components, invoke the `prototype-app-react-components` skill for guidance.\n\n**Verification rule**: After fixing errors in a command-based step, re-run that step's command **standalone** (not chained with other commands or piped through `tail`). Read the **full output** and confirm the exact error\u002Fwarning count before moving to the next step. Never trust truncated or chained output as proof of zero errors. For the manual CSS review step, recheck the affected CSS against the skill's checklist and retain the explicit automated-lint limitation.\n\nRun `npx prettier apps\u002Fprototype --write` again when finished, or use the same explicit changed-file paths selected in step 1.\n\n## Related skills\n\n- `prototype-app-css-styling` — required reading when fixing CSS warnings.\n- `prototype-app-react-components` — required reading when fixing TSX warnings.\n",{"name":5,"description":7},"main","9e7876c47c30a6c44ca79915991bd5541d58764c","apps\u002Fprototype\u002F.github\u002Fskills\u002Flint",1,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system","https:\u002F\u002Fcoreai-ds.azurewebsites.net","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-12 07:43:24",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add microsoft\u002Fcoreai-design-system --skill lint",{"tool":48,"command":49},"bunx","bunx skills add microsoft\u002Fcoreai-design-system --skill lint",{"tool":51,"command":52},"pnpm","pnpm dlx skills add microsoft\u002Fcoreai-design-system --skill lint","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Flint\u002FSKILL.md",true,[56,62,66,70,74,78,82,86,90,94,98,102,106,110,114,118,122,126,130,134,138],{"path":57,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":60,"sourceHtmlUrl":61},"guides\u002Fbiztalk-component-mapping.md","REFERENCE","参考文档",13248,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-component-mapping.md",{"path":63,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":64,"sourceHtmlUrl":65},"guides\u002Fbiztalk-expression-mapping.md",11525,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-expression-mapping.md",{"path":67,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":68,"sourceHtmlUrl":69},"guides\u002Fbiztalk-map-conversion.md",13556,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-map-conversion.md",{"path":71,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":72,"sourceHtmlUrl":73},"guides\u002Fbiztalk-phase1.md",10552,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-phase1.md",{"path":75,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":76,"sourceHtmlUrl":77},"guides\u002Fbiztalk-phase2.md",23248,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-phase2.md",{"path":79,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":80,"sourceHtmlUrl":81},"guides\u002Fbiztalk-pipeline-mapping.md",14644,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fbiztalk-pipeline-mapping.md",{"path":83,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":84,"sourceHtmlUrl":85},"guides\u002Fcamel-version-phase1.md",12931,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel-version-phase1.md",{"path":87,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":88,"sourceHtmlUrl":89},"guides\u002Fcamel-version-phase2.md",22600,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel-version-phase2.md",{"path":91,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":92,"sourceHtmlUrl":93},"guides\u002Fcamel2-component-mapping.md",6840,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel2-component-mapping.md",{"path":95,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":96,"sourceHtmlUrl":97},"guides\u002Fcamel2-dataformat-mapping.md",3070,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel2-dataformat-mapping.md",{"path":99,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":100,"sourceHtmlUrl":101},"guides\u002Fcamel2-eip-mapping.md",3670,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel2-eip-mapping.md",{"path":103,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":104,"sourceHtmlUrl":105},"guides\u002Fcamel2-language-mapping.md",2919,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel2-language-mapping.md",{"path":107,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":108,"sourceHtmlUrl":109},"guides\u002Fcamel2-platform-changes.md",7450,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fcamel2-platform-changes.md",{"path":111,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":112,"sourceHtmlUrl":113},"guides\u002Fdatamapper-migrate.md",10177,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fdatamapper-migrate.md",{"path":115,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":116,"sourceHtmlUrl":117},"guides\u002Fmigration-analysis.md",17337,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmigration-analysis.md",{"path":119,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":120,"sourceHtmlUrl":121},"guides\u002Fmigration-runbook.md",17105,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmigration-runbook.md",{"path":123,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":124,"sourceHtmlUrl":125},"guides\u002Fmule-component-mapping.md",14304,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmule-component-mapping.md",{"path":127,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":128,"sourceHtmlUrl":129},"guides\u002Fmule-dataweave-conversion.md",11576,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmule-dataweave-conversion.md",{"path":131,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":132,"sourceHtmlUrl":133},"guides\u002Fmulesoft-phase1.md",7473,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmulesoft-phase1.md",{"path":135,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":136,"sourceHtmlUrl":137},"guides\u002Fmulesoft-phase2.md",20192,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fmulesoft-phase2.md",{"path":139,"resourceType":58,"resourceTypeDesc":59,"sizeBytes":140,"sourceHtmlUrl":141},"guides\u002Fsource-retirement-audit.md",7945,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcamel-kit\u002Fblob\u002Fmain\u002Fkit\u002Fcamel-kit-core\u002Fsrc\u002Fmain\u002Fresources\u002Fskills\u002Fcamel-migrate\u002Fguides\u002Fsource-retirement-audit.md",[143,162,172,181,188,199],{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":155,"publishedAt":27},"01M69BB0EA71EEW0TWV6DDMF5S","coreai-ds-fluentui-react","MANDATORY for @coreai-ds\u002Freact-components work. Use the CoreAI documentation MCP to discover components, props, stories, templates, and implementation patterns. If the MCP is unavailable, stop and ask the user to enable or troubleshoot it with you.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fpackages\u002Freact-components\u002Fagent\u002FSKILL.md",[149,152],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[156,157,158,159,160,161],"coreai ds fluentui react","react","documentation","components","troubleshoot","MCP",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":168,"publishedAt":27},"01M69BAYVCBBZE7HY5RF871G5J","state-management","CoreAI Sandbox's simplified TanStack Query + mock-JSON data layer. USE WHEN: editing data-fetching hooks (`app\u002Fhooks\u002Fuse*.ts`), adding mock data in `app\u002Fdata\u002F`, or wiring a component to query state.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Fstate-management\u002FSKILL.md",[],[169,170,171],"state management","component","sandbox",{"skillNo":173,"name":174,"nameZh":6,"description":175,"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":178,"publishedAt":27},"01M69BAX7PT3JC7V84DVTSRWN4","start-app","Start the CoreAI Sandbox dev server and open it using available browser tools. USE WHEN: the user asks you to \"start the app\", \"run the dev server\", \"open the app\", or \"launch CoreAI Sandbox\".","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Fstart-app\u002FSKILL.md",[],[179,171,26,180],"start app","launch",{"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":187,"publishedAt":27},"01M69BAVXDBYFNKF45DQ1FPN40","routing","React Router v7 routing conventions for this SPA. USE WHEN: editing `app\u002Froutes.ts`, adding\u002Fremoving a route, or changing navigation.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Frouting\u002FSKILL.md",[],[183,157],{"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":196,"publishedAt":27},"01M69BASXQZQTQB2GH2V79FZ6Y","react-components","CoreAI Sandbox component usage: import boundaries, CoreAI MCP documentation, and local adapter inspection. USE WHEN: editing any `*.tsx` file, picking a component, or writing component imports.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Freact-components\u002FSKILL.md",[194,195],{"categoryNo":150,"categoryName":151,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":153,"categoryName":154,"taxonomyType":21,"taxonomyTypeDesc":22},[159,157,197,158,170,171,198,161],"react components","writing",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":208,"publishedAt":27},"01M69BAR4147BKNY7H41DYMPGP","new-variant","Create a new design variant or alternative for a page using the built-in feature\u002Fvariant system. USE WHEN: a designer wants to try a different layout, create an \"option B\" or \"version 2\", compare designs side by side, add an A\u002FB alternative, or explore an alternate version. Do NOT build a custom toggle solution.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fcoreai-design-system\u002Fblob\u002Fmain\u002Fapps\u002Fprototype\u002F.github\u002Fskills\u002Fnew-variant\u002FSKILL.md",[205],{"categoryNo":206,"categoryName":207,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[209,210,211],"new variant","design","create"]