[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N9E4S4S8WT1TJH5WH8WS32":3,"skill-same:01M6N9E4S4S8WT1TJH5WH8WS32":78},{"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":42,"linkOnly":43,"markdownContent":44,"markdownBody":45,"frontMatter":46,"refName":51,"commitSha":52,"skillDirectory":53,"forksCount":14,"repositoryHtmlUrl":54,"repositoryHomepageUrl":55,"ownerHtmlUrl":56,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":57,"install":58,"resources":71},"01M6N9E4S4S8WT1TJH5WH8WS32","skill-with-tests",null,"Example skill demonstrating the test scenario format from the extended specification. Use when learning how to write and evaluate skill test cases.","Pratiyush\u002Fskill-sdk","Pratiyush","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F2181212?v=4","01M6N9DHJ3XZQC6FDCDF9RA381","Pratiyush Kumar Singh","01M6N9DHPM3A42NBZF690FHJ79",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fexamples\u002Fskill-with-tests\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,41],"skill with tests","with","tests","specification","evaluate","test cases","Skill Test","how to","scenario","test","example","use","write","format","learning","how","evaluate skill","example skill","2026-11-10 10:12:30",false,"---\nname: skill-with-tests\ndescription: >\n  Example skill demonstrating the test scenario format from the extended specification.\n  Use when learning how to write and evaluate skill test cases.\nlicense: Apache-2.0\nmetadata:\n  author: skillscraft\n  version: \"1.0\"\n---\n\n# Skill with Tests\n\n## When to use this skill\n\nUse this as a reference when adding test scenarios to your own skills. The `tests\u002F` directory contains structured test cases that follow the `TestScenario` format from `@skillscraft\u002Fspec`.\n\n## Instructions\n\n1. Read `tests\u002Fscenarios.json` to see the test format\n2. Each scenario has a `name`, `description`, and array of `cases`\n3. Each case provides an `input` prompt and `assertions` to check the output\n4. Assertion types: `contains`, `not-contains`, `matches-regex`, `file-created`, `file-modified`, `command-executed`, `custom`\n5. Use this pattern in your own skills to make them testable\n\n## Test scenario structure\n\n```json\n{\n  \"name\": \"scenario-name\",\n  \"description\": \"What this scenario tests\",\n  \"cases\": [\n    {\n      \"name\": \"case-name\",\n      \"input\": \"User prompt to test with\",\n      \"assertions\": [\n        { \"type\": \"contains\", \"value\": \"expected output text\" }\n      ],\n      \"expectedBehavior\": \"Human-readable description\"\n    }\n  ]\n}\n```\n\n## Gotchas\n\n- Assertions check the agent's text output, not internal state\n- The `matches-regex` type uses JavaScript regex syntax\n- `file-created` and `file-modified` assertions check the filesystem after the skill runs\n- Test scenarios are declarative — you need a test runner to execute them\n","# Skill with Tests\n\n## When to use this skill\n\nUse this as a reference when adding test scenarios to your own skills. The `tests\u002F` directory contains structured test cases that follow the `TestScenario` format from `@skillscraft\u002Fspec`.\n\n## Instructions\n\n1. Read `tests\u002Fscenarios.json` to see the test format\n2. Each scenario has a `name`, `description`, and array of `cases`\n3. Each case provides an `input` prompt and `assertions` to check the output\n4. Assertion types: `contains`, `not-contains`, `matches-regex`, `file-created`, `file-modified`, `command-executed`, `custom`\n5. Use this pattern in your own skills to make them testable\n\n## Test scenario structure\n\n```json\n{\n  \"name\": \"scenario-name\",\n  \"description\": \"What this scenario tests\",\n  \"cases\": [\n    {\n      \"name\": \"case-name\",\n      \"input\": \"User prompt to test with\",\n      \"assertions\": [\n        { \"type\": \"contains\", \"value\": \"expected output text\" }\n      ],\n      \"expectedBehavior\": \"Human-readable description\"\n    }\n  ]\n}\n```\n\n## Gotchas\n\n- Assertions check the agent's text output, not internal state\n- The `matches-regex` type uses JavaScript regex syntax\n- `file-created` and `file-modified` assertions check the filesystem after the skill runs\n- Test scenarios are declarative — you need a test runner to execute them\n",{"name":5,"license":15,"metadata":47,"description":50},{"author":48,"version":49},"skillscraft","1.0","Example skill demonstrating the test scenario format from the extended specification. Use when learning how to write and evaluate skill test cases.\n","master","71bb5a058d2fcab2e20c5c5743f1ed679ac0349e","examples\u002Fskill-with-tests","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk","https:\u002F\u002Fpratiyush.github.io\u002Fskill-sdk\u002F","https:\u002F\u002Fgithub.com\u002FPratiyush","2026-08-16 11:52:33",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add Pratiyush\u002Fskill-sdk --skill skill-with-tests",{"tool":64,"command":65},"bunx","bunx skills add Pratiyush\u002Fskill-sdk --skill skill-with-tests",{"tool":67,"command":68},"pnpm","pnpm dlx skills add Pratiyush\u002Fskill-sdk --skill skill-with-tests","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fexamples\u002Fskill-with-tests\u002FSKILL.md",true,[72],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"tests\u002Fscenarios.json","REFERENCE","参考文档",1945,"https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fexamples\u002Fskill-with-tests\u002Ftests\u002Fscenarios.json",[79,100,115,127,135,143],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":83,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":90,"publishedAt":42},"01M6N9GDM3FA3JEK16WH3240P3","valid-skill","A valid test skill for unit testing. Use when running automated tests.","MIT","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Fvalid-skill\u002FSKILL.md",[86,89],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[91,92,93,94,95,26,96,35,97,98,99,33],"valid skill","valid","unit testing","for","unit","Test Skill","testing","node","js",{"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":108,"publishedAt":42},"01M6N9G2WZQTKJZEMX1GSYJ5HE","unicode-name","Unicode test skill ? with Chinese 你好 and Arabic مرحبا characters. Use when testing unicode handling.","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Funicode-name\u002FSKILL.md",[106,107],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[109,110,111,97,33,96,35,112,113,25,114],"unicode name","name","Unicode","chinese","arabic","characters",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":123,"publishedAt":42},"01M6N9FNTZQZRWWYHRAGWZPWDV","skill-with-ignore","A test skill with a .skillignore file. Use when testing filterFiles behavior.","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Fskill-with-ignore\u002FSKILL.md",[121,122],{"categoryNo":87,"categoryName":88,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[25,124,125,35,97,33,96,126],"skill with ignore","file","behavior",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":42},"01M6N9FGPXEM36BZH4EV6H72R7","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","Max length name test.","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Fmax-length-name\u002FSKILL.md",[],[129,33,134,110],"max",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":42},"01M6N9F8KD0NR5M2NCZZ8ET674","max-length-desc","aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Fmax-length-desc\u002FSKILL.md",[],[142,134],"max length desc",{"skillNo":144,"name":145,"nameZh":6,"description":6,"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":149,"publishedAt":42},"01M6N9F26A051VR5QWFRNJ8S0F","INVALID--SKILL","https:\u002F\u002Fgithub.com\u002FPratiyush\u002Fskill-sdk\u002Fblob\u002Fmaster\u002Fpackages\u002Fcore\u002Ftests\u002Ffixtures\u002Finvalid-skill\u002FSKILL.md",[148],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[150,151,152,153,154,27,155,156,157,158,159,160,161,25,162,163,164,114,165],"invalid skill","invalid","limit","push","text","compatibility","character","long","STRING","now","it","make","sure","more","past","go"]