[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6ACKE3GGEV3TMM2THTQW8EB":3,"skill-same:01M6ACKE3GGEV3TMM2THTQW8EB":66},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":43,"commitSha":44,"skillDirectory":45,"forksCount":46,"repositoryHtmlUrl":47,"repositoryHomepageUrl":48,"ownerHtmlUrl":49,"ownerBlogUrl":50,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6ACKE3GGEV3TMM2THTQW8EB","openspec-explore",null,"Enter explore mode - a thinking partner for exploring ideas, investigating problems, and clarifying requirements. Use when the user wants to think through something before or during a change.","apache\u002Fcauseway","apache","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F47359?v=4","01M6AC83E6K4FDKK7HZ8WNMQKE","The Apache Software Foundation","01M6ACK5FDA6VVQG8EXM21X4XJ",908,"MIT","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"openspec explore","explore","openspec","thinking partner","when","for","mode","partner","requirements","ideas","thinking","cli","think","use","user","Bash","change","2026-11-10 10:12:30",false,"---\nname: twoslash-validator\ndescription: Validate and fix two-slash TypeScript examples for aspire.dev. Use when adding or editing `twoslash` code fences, TypeScript AppHost samples, generated TypeScript API data, or failures from `bun run test:unit:twoslash-blocks`.\n---\n\n# Two-slash Validator Skill\n\nUse this skill to keep aspire.dev from shipping rendered two-slash error UI. Any TypeScript diagnostic in a `twoslash` code block renders an error box on the site, so diagnostics must be fixed rather than suppressed.\n\n## When to use this skill\n\n- Adding or editing a TypeScript code fence with the `twoslash` meta flag\n- Updating TypeScript AppHost examples that import `'.\u002F.aspire\u002Fmodules\u002Faspire.mjs'`\n- Refreshing `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Fts-modules\u002F` or `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Ftwoslash\u002Faspire.d.ts`\n- Investigating failures from `bun run test:unit:twoslash-blocks`\n- Reviewing docs changes that affect TypeScript sample rendering\n\n## Core rule\n\nDo not add diagnostic allowlists or suppressions. A two-slash diagnostic is user-visible output on aspire.dev. Fix the docs sample, fix\u002Fregenerate the generated type surface, or remove the `twoslash` meta until the sample compiles cleanly.\n\n## Validation workflow\n\nRun commands from the repository root unless noted.\n\n1. Ensure dependencies are installed:\n\n   ```powershell\n   Set-Location -Path .\\src\\frontend\n   bun install --frozen-lockfile\n   ```\n\n2. If TypeScript API JSON changed, regenerate the two-slash declaration bundle:\n\n   ```powershell\n   bun run twoslash-types\n   ```\n\n3. Run the two-slash block gate:\n\n   ```powershell\n   bun run test:unit:twoslash-blocks\n   ```\n\n4. If the test fails, read every reported file, line, block number, and `ts(...)` code. Fix every diagnostic before considering the work complete.\n\n## Fix strategy\n\nUse this order when deciding what to change:\n\n1. **Docs sample bug:** If the TypeScript snippet calls the wrong API, uses the wrong argument shape, has a stale model name, or chains incompatible resources, fix the MDX sample.\n2. **Generated type data stale:** If the sample matches the product API but `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Ftwoslash\u002Faspire.d.ts` is stale, run `bun run twoslash-types` and commit the regenerated bundle.\n3. **Generator type-shape gap:** If regeneration is not enough because `scripts\u002Fgenerate-twoslash-types.ts` loses valid SDK shape, fix the generator and regenerate `aspire.d.ts`.\n4. **Feature not representable yet:** If a correct sample cannot be represented by the current two-slash type data, remove the `twoslash` meta from that block and leave the code sample visible without two-slash rendering. Do not leave a rendered diagnostic.\n\n## What not to do\n\n- Do not reintroduce `KNOWN_TYPE_BUGS`, per-page diagnostic budgets, or equivalent allowlists.\n- Do not disable `TWOSLASH_ENABLED` to make the test pass.\n- Do not change `noErrorValidation` as a substitute for fixing diagnostics; it exists so the audit can collect all failures at once.\n- Do not hide failures by changing the fence language away from TypeScript unless the sample is not TypeScript.\n- Do not edit generated `aspire.d.ts` by hand; update the generator or source JSON and regenerate.\n\n## Expected final checks\n\nBefore finishing a two-slash-related change, run:\n\n```powershell\nSet-Location -Path .\\src\\frontend\nbun run test:unit:twoslash-blocks\n```\n\nIf you changed the generator, also run:\n\n```powershell\nbun run test:unit:twoslash-types\n```\n","# Two-slash Validator Skill\n\nUse this skill to keep aspire.dev from shipping rendered two-slash error UI. Any TypeScript diagnostic in a `twoslash` code block renders an error box on the site, so diagnostics must be fixed rather than suppressed.\n\n## When to use this skill\n\n- Adding or editing a TypeScript code fence with the `twoslash` meta flag\n- Updating TypeScript AppHost examples that import `'.\u002F.aspire\u002Fmodules\u002Faspire.mjs'`\n- Refreshing `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Fts-modules\u002F` or `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Ftwoslash\u002Faspire.d.ts`\n- Investigating failures from `bun run test:unit:twoslash-blocks`\n- Reviewing docs changes that affect TypeScript sample rendering\n\n## Core rule\n\nDo not add diagnostic allowlists or suppressions. A two-slash diagnostic is user-visible output on aspire.dev. Fix the docs sample, fix\u002Fregenerate the generated type surface, or remove the `twoslash` meta until the sample compiles cleanly.\n\n## Validation workflow\n\nRun commands from the repository root unless noted.\n\n1. Ensure dependencies are installed:\n\n   ```powershell\n   Set-Location -Path .\\src\\frontend\n   bun install --frozen-lockfile\n   ```\n\n2. If TypeScript API JSON changed, regenerate the two-slash declaration bundle:\n\n   ```powershell\n   bun run twoslash-types\n   ```\n\n3. Run the two-slash block gate:\n\n   ```powershell\n   bun run test:unit:twoslash-blocks\n   ```\n\n4. If the test fails, read every reported file, line, block number, and `ts(...)` code. Fix every diagnostic before considering the work complete.\n\n## Fix strategy\n\nUse this order when deciding what to change:\n\n1. **Docs sample bug:** If the TypeScript snippet calls the wrong API, uses the wrong argument shape, has a stale model name, or chains incompatible resources, fix the MDX sample.\n2. **Generated type data stale:** If the sample matches the product API but `src\u002Ffrontend\u002Fsrc\u002Fdata\u002Ftwoslash\u002Faspire.d.ts` is stale, run `bun run twoslash-types` and commit the regenerated bundle.\n3. **Generator type-shape gap:** If regeneration is not enough because `scripts\u002Fgenerate-twoslash-types.ts` loses valid SDK shape, fix the generator and regenerate `aspire.d.ts`.\n4. **Feature not representable yet:** If a correct sample cannot be represented by the current two-slash type data, remove the `twoslash` meta from that block and leave the code sample visible without two-slash rendering. Do not leave a rendered diagnostic.\n\n## What not to do\n\n- Do not reintroduce `KNOWN_TYPE_BUGS`, per-page diagnostic budgets, or equivalent allowlists.\n- Do not disable `TWOSLASH_ENABLED` to make the test pass.\n- Do not change `noErrorValidation` as a substitute for fixing diagnostics; it exists so the audit can collect all failures at once.\n- Do not hide failures by changing the fence language away from TypeScript unless the sample is not TypeScript.\n- Do not edit generated `aspire.d.ts` by hand; update the generator or source JSON and regenerate.\n\n## Expected final checks\n\nBefore finishing a two-slash-related change, run:\n\n```powershell\nSet-Location -Path .\\src\\frontend\nbun run test:unit:twoslash-blocks\n```\n\nIf you changed the generator, also run:\n\n```powershell\nbun run test:unit:twoslash-types\n```\n",{"name":41,"description":42},"twoslash-validator","Validate and fix two-slash TypeScript examples for aspire.dev. Use when adding or editing `twoslash` code fences, TypeScript AppHost samples, generated TypeScript API data, or failures from `bun run test:unit:twoslash-blocks`.","main","f05f5561b1b858344124cd848ff06469627d7e6e",".agents\u002Fskills\u002Fopenspec-explore",315,"https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway","https:\u002F\u002Fcauseway.apache.org\u002F","https:\u002F\u002Fgithub.com\u002Fapache","https:\u002F\u002Fwww.apache.org\u002F","2026-11-11 19:59:18",{"source":8,"skillName":41,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add apache\u002Fcauseway --skill twoslash-validator",{"tool":58,"command":59},"bunx","bunx skills add apache\u002Fcauseway --skill twoslash-validator",{"tool":61,"command":62},"pnpm","pnpm dlx skills add apache\u002Fcauseway --skill twoslash-validator","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-explore\u002FSKILL.md",true,[],[67,88,100,122,142,150],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":36},"01M6ACKQK07AJ62E010HJHGKZK","openspec-update-change","Update an OpenSpec change by revising its existing planning artifacts and keeping them coherent with one another. Use when the user wants to revise a change's plan, fold new decisions into it, or reconcile its artifacts after an edit. Never edits code.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-update-change\u002FSKILL.md",[],[35,74,75,21,30,76,77,78,34,79,80,81,32,82,83,84,85,86,23,87],"update","openspec update change","code","planning","artifacts","plan","decisions","edit","never","Fold","coherent","with","Existing","new",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":36},"01M6ACKND59G6M6XBHZ6KCBDY1","openspec-sync-specs","Sync delta specs from a change to main specs. Use when the user wants to update main specs with changes from a delta spec, without archiving the change.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-sync-specs\u002FSKILL.md",[],[95,96,21,30,97,35,74,34,33,32,98,43,85,99,23],"sync","openspec sync specs","spec","delta","changes",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":111,"publishedAt":36},"01M6ACKJMA9K21YE9K5T1P6NRD","openspec-propose","Propose a new change with all artifacts generated in one step. Use when the user wants to quickly describe what they want to build and get a complete proposal with design, specs, and tasks ready for implementation.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-propose\u002FSKILL.md",[106],{"categoryNo":107,"categoryName":108,"taxonomyType":109,"taxonomyTypeDesc":110},"01JBSEEDCAT000000000000015","视觉设计","SCENARIO","使用场景",[112,21,113,30,35,114,78,34,115,32,116,117,118,119,120,121,85,24,23,87],"openspec propose","design","tasks","generated","ready","implementation","build","get","complete","proposal",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":36},"01M6ACKG78GSZJ2EM7Q3H9A3RB","openspec-oneshot","Run a full OpenSpec workflow from one request. Use when the user wants proposal, implementation, commits, spec sync, and archive handled as one resumable flow.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-oneshot\u002FSKILL.md",[],[129,21,130,30,97,131,95,132,133,134,34,135,32,136,137,138,139,121,140,141,23],"openspec oneshot","oneshot","workflow","run","flow","commits","archive","local","full","as","spec sync","true","request",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":148,"publishedAt":36},"01M6ACKBVG2GT4C6KEV08TT8FH","openspec-archive-change","Archive a completed change in the experimental workflow. Use when the user wants to finalize and archive a change after implementation is complete.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-archive-change\u002FSKILL.md",[],[35,149,135,21,30,131,34,33,32,117,120,23],"openspec archive change",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":36},"01M6ACK92XEZ17W30MKC1RPP8T","openspec-apply-change","Implement tasks from an OpenSpec change. Use when the user wants to start implementing, continue implementation, or work through tasks.","https:\u002F\u002Fgithub.com\u002Fapache\u002Fcauseway\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fopenspec-apply-change\u002FSKILL.md",[],[35,157,21,158,159,30,160,114,161,34,162,163,33,32,117,164,23],"openspec apply change","openspec apply","apply","implement","start","continue","work","implementing"]