[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6PJFHF9C2GSFK8DFW6D5RF7":3,"skill-same:01M6PJFHF9C2GSFK8DFW6D5RF7":247},{"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":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":36,"commitSha":37,"skillDirectory":38,"forksCount":39,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":42,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6PJFHF9C2GSFK8DFW6D5RF7","token-estimator-mvp",null,"Estimate AI planning ranges from a work description or explicitly authorized safe project context. Provides coarse class ranges or conditional planning bases without requiring token guesses.","microsoft\u002Fdiscovery","microsoft","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F6154722?v=4","01M698VYDXZ6JW5WH3CRV650R8","Microsoft","01M69BDVENS7NFPQQV19R5KA3B",287,"MIT","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"token","mvp","token estimator mvp","safe","planning","work","context","bases","project context","project","estimate","conditional","2026-11-10 10:12:30",false,"---\nname: token-estimator-mvp\ndescription: \"Estimate AI planning ranges from a work description or explicitly authorized safe project context. Provides coarse class ranges or conditional planning bases without requiring token guesses.\"\nlicense: MIT\n---\n# Token estimator MVP\n\nUse this skill for first-pass AI planning guidance. It is not a scientific\nexecution service.\n\nUse only the bundled [CLI](scripts\u002Festimate.js) or [API](scripts\u002Fmodel.js)\nwith [calibration](resources\u002Fcalibration.json) and\n[profiles](resources\u002Fwork-profiles.json). Never invent formulas or ask users\nfor token budgets.\n\n## Procedure\n\n1. Identify the deliverable from the request. Context is optional.\n2. Map to the [input guide](references\u002Finput-guide.md) and\n   [contract](resources\u002Fcontract.schema.json), version 1.2.0.\n3. Leave unknown facts unknown. Provide conditional bases when supported.\n4. For \"run an existing workflow,\" use `existing-workflow-operation`.\n5. Count shared setup\u002Fchecks once. Separate independent review as its own task.\n6. Run the estimator with sanitized JSON:\n\n   ```sh\n   node scripts\u002Festimate.js --input examples\u002Fcoarse-prediction.json\n   ```\n\n7. Report status, mapping, assumptions, uncertainty and exclusions.\n\n## Package notes\n\nCopy this entire directory to `skills\u002Ftoken-estimator-mvp\u002F` in the target\nrepository. Keep files relative and project-local. No installs, credentials,\nnetwork access, or external authoring workspace are required.\n\nSee [examples](examples\u002FREADME.md) for supported scenarios.\n\nRun tests:\n\n```sh\nnode --test tests\u002Fmodel.test.js tests\u002Fphases.test.js tests\u002Foperations.test.js tests\u002Fbehavior.test.js tests\u002Fpackaging.test.js tests\u002Fskill-guidance.test.js\n```\n\nThis package ships provisional community reference ranges. They are planning\nheuristics requiring broader community validation and are not statistical bounds\nor evidence of customer outcomes.\n","# Token estimator MVP\n\nUse this skill for first-pass AI planning guidance. It is not a scientific\nexecution service.\n\nUse only the bundled [CLI](scripts\u002Festimate.js) or [API](scripts\u002Fmodel.js)\nwith [calibration](resources\u002Fcalibration.json) and\n[profiles](resources\u002Fwork-profiles.json). Never invent formulas or ask users\nfor token budgets.\n\n## Procedure\n\n1. Identify the deliverable from the request. Context is optional.\n2. Map to the [input guide](references\u002Finput-guide.md) and\n   [contract](resources\u002Fcontract.schema.json), version 1.2.0.\n3. Leave unknown facts unknown. Provide conditional bases when supported.\n4. For \"run an existing workflow,\" use `existing-workflow-operation`.\n5. Count shared setup\u002Fchecks once. Separate independent review as its own task.\n6. Run the estimator with sanitized JSON:\n\n   ```sh\n   node scripts\u002Festimate.js --input examples\u002Fcoarse-prediction.json\n   ```\n\n7. Report status, mapping, assumptions, uncertainty and exclusions.\n\n## Package notes\n\nCopy this entire directory to `skills\u002Ftoken-estimator-mvp\u002F` in the target\nrepository. Keep files relative and project-local. No installs, credentials,\nnetwork access, or external authoring workspace are required.\n\nSee [examples](examples\u002FREADME.md) for supported scenarios.\n\nRun tests:\n\n```sh\nnode --test tests\u002Fmodel.test.js tests\u002Fphases.test.js tests\u002Foperations.test.js tests\u002Fbehavior.test.js tests\u002Fpackaging.test.js tests\u002Fskill-guidance.test.js\n```\n\nThis package ships provisional community reference ranges. They are planning\nheuristics requiring broader community validation and are not statistical bounds\nor evidence of customer outcomes.\n",{"name":5,"license":15,"description":7},"main","3590234e4bfd67585f58ab52d662ba5bcbbe51fe","skills\u002Ftoken-estimator-mvp",97,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery","https:\u002F\u002Fgithub.com\u002Fmicrosoft","https:\u002F\u002Fopensource.microsoft.com","Open source projects and samples from Microsoft","2026-11-11 16:09:29",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add microsoft\u002Fdiscovery --skill token-estimator-mvp",{"tool":51,"command":52},"bunx","bunx skills add microsoft\u002Fdiscovery --skill token-estimator-mvp",{"tool":54,"command":55},"pnpm","pnpm dlx skills add microsoft\u002Fdiscovery --skill token-estimator-mvp","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002FSKILL.md",true,[59,65,69,73,77,81,85,89,95,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179,183,187,191,195,199,203,207,211,215,219,223,227,231,235,239,243],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"examples\u002Fambiguous-prediction.json","REFERENCE","参考文档",305,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fambiguous-prediction.json",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"examples\u002Fcoarse-prediction.json",140,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcoarse-prediction.json",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"examples\u002Fcomputational-context.json",508,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcomputational-context.json",{"path":74,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":75,"sourceHtmlUrl":76},"examples\u002Fcontext.json",416,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcontext.json",{"path":78,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":79,"sourceHtmlUrl":80},"examples\u002Fcontext\u002Fcomputational.md",1907,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcontext\u002Fcomputational.md",{"path":82,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":83,"sourceHtmlUrl":84},"examples\u002Fcontext\u002Foperation.md",1391,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcontext\u002Foperation.md",{"path":86,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":87,"sourceHtmlUrl":88},"examples\u002Fcontext\u002FREADME.md",632,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcontext\u002FREADME.md",{"path":90,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":93,"sourceHtmlUrl":94},"examples\u002Fcontext\u002Fscientific-pipeline.sh","SCRIPT","脚本",35,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fcontext\u002Fscientific-pipeline.sh",{"path":96,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":97,"sourceHtmlUrl":98},"examples\u002Fdescription.json",427,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fdescription.json",{"path":100,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":101,"sourceHtmlUrl":102},"examples\u002Fdisjoint-tasks.json",770,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fdisjoint-tasks.json",{"path":104,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":105,"sourceHtmlUrl":106},"examples\u002Fintegration.json",286,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fintegration.json",{"path":108,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":109,"sourceHtmlUrl":110},"examples\u002Fmissing-context.json",288,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fmissing-context.json",{"path":112,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":113,"sourceHtmlUrl":114},"examples\u002Foperation-bounded-monitoring.json",354,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-bounded-monitoring.json",{"path":116,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":117,"sourceHtmlUrl":118},"examples\u002Foperation-context.json",442,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-context.json",{"path":120,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":121,"sourceHtmlUrl":122},"examples\u002Foperation-failed-setup.json",356,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-failed-setup.json",{"path":124,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":125,"sourceHtmlUrl":126},"examples\u002Foperation-ongoing.json",272,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-ongoing.json",{"path":128,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":129,"sourceHtmlUrl":130},"examples\u002Foperation-review.json",639,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-review.json",{"path":132,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":133,"sourceHtmlUrl":134},"examples\u002Foperation-shared-checks.json",255,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-shared-checks.json",{"path":136,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":137,"sourceHtmlUrl":138},"examples\u002Foperation-unresolved.json",257,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation-unresolved.json",{"path":140,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":141,"sourceHtmlUrl":142},"examples\u002Foperation.json",307,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Foperation.json",{"path":144,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":145,"sourceHtmlUrl":146},"examples\u002Fpartial.json",522,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fpartial.json",{"path":148,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":149,"sourceHtmlUrl":150},"examples\u002Fprototype.json",244,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fprototype.json",{"path":152,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":153,"sourceHtmlUrl":154},"examples\u002FREADME.md",761,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002FREADME.md",{"path":156,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":157,"sourceHtmlUrl":158},"examples\u002Freal-data.json",274,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Freal-data.json",{"path":160,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":161,"sourceHtmlUrl":162},"examples\u002Fsimulation.json",262,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Fsimulation.json",{"path":164,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":165,"sourceHtmlUrl":166},"examples\u002Funsupported.json",299,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fexamples\u002Funsupported.json",{"path":168,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":169,"sourceHtmlUrl":170},"package.json",386,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fpackage.json",{"path":172,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":173,"sourceHtmlUrl":174},"README.md",755,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002FREADME.md",{"path":176,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":177,"sourceHtmlUrl":178},"references\u002Fcontext-policy.md",3996,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Freferences\u002Fcontext-policy.md",{"path":180,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":181,"sourceHtmlUrl":182},"references\u002Finput-guide.md",2936,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Freferences\u002Finput-guide.md",{"path":184,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":185,"sourceHtmlUrl":186},"references\u002Foperational-evidence.md",1037,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Freferences\u002Foperational-evidence.md",{"path":188,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":189,"sourceHtmlUrl":190},"resources\u002Fcalibration.json",7763,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fresources\u002Fcalibration.json",{"path":192,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":193,"sourceHtmlUrl":194},"resources\u002Fcontract.schema.json",13284,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fresources\u002Fcontract.schema.json",{"path":196,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":197,"sourceHtmlUrl":198},"resources\u002Fwork-profiles.json",28007,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fresources\u002Fwork-profiles.json",{"path":200,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":201,"sourceHtmlUrl":202},"scripts\u002Festimate.js",1036,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fscripts\u002Festimate.js",{"path":204,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":205,"sourceHtmlUrl":206},"scripts\u002Fmodel.js",38009,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Fscripts\u002Fmodel.js",{"path":208,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":209,"sourceHtmlUrl":210},"tests\u002Faccepted-hashes.json",863,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Faccepted-hashes.json",{"path":212,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":213,"sourceHtmlUrl":214},"tests\u002Fbehavior.test.js",2598,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fbehavior.test.js",{"path":216,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":217,"sourceHtmlUrl":218},"tests\u002Fmodel.test.js",3450,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fmodel.test.js",{"path":220,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":221,"sourceHtmlUrl":222},"tests\u002Foperations.test.js",2870,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Foperations.test.js",{"path":224,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":225,"sourceHtmlUrl":226},"tests\u002Fpackaging.test.js",2318,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fpackaging.test.js",{"path":228,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":229,"sourceHtmlUrl":230},"tests\u002Fphases.test.js",3287,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fphases.test.js",{"path":232,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":233,"sourceHtmlUrl":234},"tests\u002Fportable-guard.cjs",2349,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fportable-guard.cjs",{"path":236,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":237,"sourceHtmlUrl":238},"tests\u002Fprivacy-guard.cjs",2117,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fprivacy-guard.cjs",{"path":240,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":241,"sourceHtmlUrl":242},"tests\u002Fruntime-read-guard.cjs",543,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fruntime-read-guard.cjs",{"path":244,"resourceType":91,"resourceTypeDesc":92,"sizeBytes":245,"sourceHtmlUrl":246},"tests\u002Fskill-guidance.test.js",987,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Ftoken-estimator-mvp\u002Ftests\u002Fskill-guidance.test.js",[248,290,328,339,352,365],{"skillNo":249,"name":250,"nameZh":6,"description":251,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":252,"categories":253,"keywords":270,"publishedAt":31},"01M6M0MTE9BST8PT7ECHCC5KJK","build-research-paper","Cross-domain \u002F Scientific writing and publication — Build\nbeautifully-formatted, arxiv-ready research paper PDFs from a mix of\nhand-authored LaTeX and\u002For markdown + PNG figures, using `tectonic`\n(default) or `pandoc` (escape hatch). Captures the reusable pattern that\nresearch projects keep re-discovering: `report\u002Fmain.tex` + `references.bib`\n+ `generate_figures.py` + iterative feedback\u002Fresponse scaffolding, all\nbuildable with a single command. WHEN: write a research paper, arxiv\nsubmission, prepub, generate PDF from markdown, LaTeX paper, build main.tex,\njournal manuscript, referee revision, response to referee, resubmission\npackage, publication-quality figures, matplotlib publication style, tectonic\nbuild, pandoc build, generate arxiv-ready PDF, bibliography from BibTeX.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Fbuild-research-paper\u002FSKILL.md",[254,259,262,265],{"categoryNo":255,"categoryName":256,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000002","文档处理","SCENARIO","使用场景",{"categoryNo":260,"categoryName":261,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":263,"categoryName":264,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000021","资料检索与研究",{"categoryNo":266,"categoryName":267,"taxonomyType":268,"taxonomyTypeDesc":269},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[271,272,273,274,275,276,277,278,279,280,281,282,36,283,284,285,286,287,288,289],"build research paper","paper","build","research","ready","PDF","writing","projects","command","tectonic","default","references","scaffolding","hand","journal","scientific","generate pdf","re","mix",{"skillNo":291,"name":292,"nameZh":6,"description":293,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":294,"categories":295,"keywords":308,"publishedAt":31},"01M69BE9GW375EBM6ETNWD84E3","add-example-agents","Add agents from the public microsoft\u002Fdiscovery GitHub repository to this workspace, either (a) locally for the Copilot app by emitting a `.agent.md` companion per agent (so each is invocable via `runSubagent`), (b) into a Microsoft Discovery project via `UpsertAgent` sourced fresh from upstream (binding pre-existing tool ARM resources when present, or building + pushing + registering them in Azure first when missing), or (c) promoting an agent already added to the local Copilot app (sourced from its `.github\u002Fagents\u002F\u003Cname>.agent.md` companion; tool-bearing agents also carry a `discovery_catalog\u002F\u003Cname>\u002F` folder plus a locally-built tool container, while toolless agents have only the companion) up to a specific Microsoft Discovery project + Azure without re-fetching or refreshing from upstream. The user picks exactly one of the three targets per run. USE FOR: 'add the discovery agents', 'download discovery agents', 'install all Microsoft discovery agents', 'add agents from microsoft\u002Fdiscovery', 'create copilot agents from microsoft\u002Fdiscovery', 'deploy discovery agents to Foundry', 'deploy discovery agents to Azure', 'promote a local agent to Microsoft Discovery', 'push my local agent and container to a Discovery project', 'copy a local app agent to Azure'. Always refreshes every selected subfolder under `agents\u002F\u003Cname>\u002F` of the upstream repo into `discovery_catalog\u002F\u003Cname>\u002F` so the local catalog stays current (new agents appear, removed agents are surfaced, updated content is applied). The presence check for what is 'already locally added' uses `.github\u002Fagents\u002F\u003Cname>.agent.md` (the Copilot companion), not the `discovery_catalog\u002F` folder. For local deployment, each generated `.agent.md` carries a lazy Docker-bootstrap preamble so the agent builds its tool image on first use only if absent. For Discovery + Azure deployment, pre-flights every declared tool via `GetDiscoveryTool` against the workspace's RG and **skips Docker build \u002F ACR push \u002F AcrPull RBAC entirely when the tool already exists** (common for shared catalog images on registries like `mdqacr`); only builds + registers tools that are actually missing. Always creates the agent in the chosen Discovery project via `UpsertAgent` and polls **`GetAgent` for `provisioningState=Succeeded`** (the MCP `GetAgentOperation` tool returns an opaque error in practice; never rely on it). All MCP calls flow through PowerShell scripts embedded in this SKILL.md and materialized into `.vscode\u002F` during Step 4d — the skill does not depend on sibling helper files or on the VS Code MCP runtime surfacing `mcp_microsoft-dis_*` tools mid-session. Local Discovery runtime registration via `agents action=create` is optional and skipped by default. DO NOT USE FOR: running an already-deployed agent (use runSubagent), or editing a single agent's prompt (edit `agent.yaml` directly).","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002Fskills\u002Fadd-example-agents\u002FSKILL.md",[296,299,302,305],{"categoryNo":297,"categoryName":298,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":300,"categoryName":301,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000016","图像与多媒体",{"categoryNo":303,"categoryName":304,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":306,"categoryName":307,"taxonomyType":268,"taxonomyTypeDesc":269},"01JBSEEDCAT000000000000030","开发工程师",[309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,9,324,325,326,327],"add example agents","podman","bootstrap","deployment","create","run","code","azure","MCP","image","python","github","docker","valid","editor","vscode","windows","copilot","distributed",{"skillNo":329,"name":330,"nameZh":6,"description":331,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":332,"categories":333,"keywords":334,"publishedAt":31},"01M69BE703VQGX4F9Z5J4MTJV2","migrate-podman-containerfile","Migrate a Podman Containerfile to the canonical Dockerfile required by the Discovery catalog. Use when a PR fails POL-022, a tool contains Containerfile or Dockerfile.in, or a contributor asks to convert Podman build files for Docker. Creates the Dockerfile directly only when the migration is mechanically safe and refuses ambiguous preprocessing or multi-file builds.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fmigrate-podman-containerfile\u002FSKILL.md",[],[335,310,22,321,336,337,338],"migrate podman containerfile","dockerfile","pr","discovery catalog",{"skillNo":340,"name":341,"nameZh":6,"description":342,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":343,"categories":344,"keywords":346,"publishedAt":31},"01M69BE4KN4J5R2RY3927C8PM6","discovery-services-starter-kit-deployer","Deploy Discovery catalog starter-kits end-to-end: validate kit.json agentRefs, build and deploy every referenced agent tool, deploy each referenced agent individually, and summarize deployed agents\u002Ftools plus customer-ready sample prompts. Use this skill whenever the user asks to deploy a Discovery starter-kit or deploy all agents listed in starter-kits\u002F*\u002Fkit.json.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdiscovery-services-starter-kit-deployer\u002FSKILL.md",[345],{"categoryNo":303,"categoryName":304,"taxonomyType":257,"taxonomyTypeDesc":258},[347,348,349,350,351,338],"discovery services starter kit deployer","summarize","customer","validate","deploy",{"skillNo":353,"name":354,"nameZh":6,"description":355,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":356,"categories":357,"keywords":363,"publishedAt":31},"01M69BE20F244MGDJC74AFXGZ2","discovery-services-agent-deployer","Deploy Discovery catalog agents end-to-end with one command: discover the agent, build and bind its tool when present, skip tool stages for agents without tools, deploy the agent, and optionally run validation. Use this skill whenever the user asks to deploy a Discovery agent, publish or rebuild an agent tool image, register a Discovery tool from a repo Dockerfile\u002Ftool.yaml, resume a failed deployment, or produce a dry-run deployment plan for an agent in this catalog.","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdiscovery-services-agent-deployer\u002FSKILL.md",[358,359,360],{"categoryNo":297,"categoryName":298,"taxonomyType":257,"taxonomyTypeDesc":258},{"categoryNo":303,"categoryName":304,"taxonomyType":257,"taxonomyTypeDesc":258},{"categoryNo":361,"categoryName":362,"taxonomyType":268,"taxonomyTypeDesc":269},"01JBSEEDCAT000000000000038","人力资源",[364,336,351,318,312,338,314],"discovery services agent deployer",{"skillNo":366,"name":367,"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":368,"categories":369,"keywords":377,"publishedAt":31},"01M69BDZZS2J28VZFZX97G33WC","discovery-design-tasks","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fdiscovery\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fdiscovery-design-tasks\u002FSKILL.md",[370,373,374],{"categoryNo":371,"categoryName":372,"taxonomyType":257,"taxonomyTypeDesc":258},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":303,"categoryName":304,"taxonomyType":257,"taxonomyTypeDesc":258},{"categoryNo":375,"categoryName":376,"taxonomyType":268,"taxonomyTypeDesc":269},"01JBSEEDCAT000000000000032","设计师",[378,379,380],"tasks","design","discovery design tasks"]