[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BTB3NVYQQQWPF45BCRKQZH":3,"skill-same:01M6BTB3NVYQQQWPF45BCRKQZH":192},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":6,"ownerHtmlUrl":30,"ownerBlogUrl":31,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6BTB3NVYQQQWPF45BCRKQZH","encoding-audit",null,"spbu-se\u002Fspbu_se_site","spbu-se","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1835160?v=4","01M6BT9CD2P1T8S3C6WZ3011PW","Chair of Software Engineering, Saint Petersburg State University, Russia","01M6BT9CHXKJA1WHSBD62SQWTQ",4,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Fencoding-audit\u002FSKILL.md",[],[18,19,20],"audit","encoding","encoding audit","2026-11-10 10:12:30",false,"______________________________________________________________________\n\nSKILL: encoding-audit\n\n______________________________________________________________________\n\ndescription: Detect and fix non-UTF-8 encoding in source files on Windows. PowerShell encoding trap, detection scripts, git recovery workflow.\n\nCanonical source: .skills\u002Fencoding-audit\u002FREADME.md\n\nSee: `.skills\u002Fencoding-audit\u002FREADME.md`\n",{},"current","74ac37de6c062213a6f25c647221c9f317f54681",".opencode\u002Fskills\u002Fencoding-audit",17,"https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site","https:\u002F\u002Fgithub.com\u002Fspbu-se","http:\u002F\u002Fse.math.spbu.ru\u002F","Unofficial Software Engineering chair profile","2026-11-13 23:18:58",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add spbu-se\u002Fspbu_se_site --skill encoding-audit",{"tool":40,"command":41},"bunx","bunx skills add spbu-se\u002Fspbu_se_site --skill encoding-audit",{"tool":43,"command":44},"pnpm","pnpm dlx skills add spbu-se\u002Fspbu_se_site --skill encoding-audit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Fencoding-audit\u002FSKILL.md",true,[48,54,60,64,68,72,76,80,84,88,92,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184,188],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"fixtures\u002Fsample.sh","SCRIPT","脚本",1129,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Ffixtures\u002Fsample.sh",{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"REFERENCE-degradation.md","REFERENCE","参考文档",6659,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-degradation.md",{"path":61,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":62,"sourceHtmlUrl":63},"REFERENCE-go.md",3682,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-go.md",{"path":65,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":66,"sourceHtmlUrl":67},"REFERENCE-js.md",4913,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-js.md",{"path":69,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":70,"sourceHtmlUrl":71},"REFERENCE-python.md",4241,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-python.md",{"path":73,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":74,"sourceHtmlUrl":75},"REFERENCE-rust.md",4172,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-rust.md",{"path":77,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":78,"sourceHtmlUrl":79},"REFERENCE-shell.md",3741,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-shell.md",{"path":81,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":82,"sourceHtmlUrl":83},"REFERENCE-surfacing.md",5868,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002FREFERENCE-surfacing.md",{"path":85,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fhistory.md",280,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Freferences\u002Fhistory.md",{"path":89,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":90,"sourceHtmlUrl":91},"references\u002Finvocations.md",484,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Freferences\u002Finvocations.md",{"path":93,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":94,"sourceHtmlUrl":95},"references\u002Fno-ast-grep-fallback.md",539,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Freferences\u002Fno-ast-grep-fallback.md",{"path":97,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":98,"sourceHtmlUrl":99},"references\u002Frelated.md",809,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Freferences\u002Frelated.md",{"path":101,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":102,"sourceHtmlUrl":103},"references\u002Freport-format.md",803,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Freferences\u002Freport-format.md",{"path":105,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":106,"sourceHtmlUrl":107},"rules\u002Flib\u002Fgo-defer-close-unchecked.yml",197,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fgo-defer-close-unchecked.yml",{"path":109,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":110,"sourceHtmlUrl":111},"rules\u002Flib\u002Fgo-ignore-underscore.yml",237,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fgo-ignore-underscore.yml",{"path":113,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":114,"sourceHtmlUrl":115},"rules\u002Flib\u002Fjs-empty-catch.yml",152,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fjs-empty-catch.yml",{"path":117,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":118,"sourceHtmlUrl":119},"rules\u002Flib\u002Fjs-promise-catch-empty.yml",242,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fjs-promise-catch-empty.yml",{"path":121,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":122,"sourceHtmlUrl":123},"rules\u002Flib\u002Fjs-void-ignore.yml",184,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fjs-void-ignore.yml",{"path":125,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":126,"sourceHtmlUrl":127},"rules\u002Flib\u002Fpy-bare-except-pass.yml",259,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fpy-bare-except-pass.yml",{"path":129,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":130,"sourceHtmlUrl":131},"rules\u002Flib\u002Fpy-broad-except-pass.yml",282,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Fpy-broad-except-pass.yml",{"path":133,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":134,"sourceHtmlUrl":135},"rules\u002Flib\u002Frs-let-underscore-result.yml",181,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Frs-let-underscore-result.yml",{"path":137,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":138,"sourceHtmlUrl":139},"rules\u002Flib\u002Frs-ok-discard.yml",153,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Flib\u002Frs-ok-discard.yml",{"path":141,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":142,"sourceHtmlUrl":143},"rules\u002Fsgconfig.yml",852,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Fsgconfig.yml",{"path":145,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":146,"sourceHtmlUrl":147},"rules\u002Ftests\u002Fgo-defer-close-unchecked-test.yml",284,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fgo-defer-close-unchecked-test.yml",{"path":149,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":150,"sourceHtmlUrl":151},"rules\u002Ftests\u002Fgo-ignore-underscore-test.yml",222,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fgo-ignore-underscore-test.yml",{"path":153,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":154,"sourceHtmlUrl":155},"rules\u002Ftests\u002Fjs-empty-catch-test.yml",135,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fjs-empty-catch-test.yml",{"path":157,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":158,"sourceHtmlUrl":159},"rules\u002Ftests\u002Fjs-promise-catch-empty-test.yml",232,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fjs-promise-catch-empty-test.yml",{"path":161,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":162,"sourceHtmlUrl":163},"rules\u002Ftests\u002Fjs-void-ignore-test.yml",74,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fjs-void-ignore-test.yml",{"path":165,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":166,"sourceHtmlUrl":167},"rules\u002Ftests\u002Fpy-bare-except-pass-test.yml",173,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fpy-bare-except-pass-test.yml",{"path":169,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":170,"sourceHtmlUrl":171},"rules\u002Ftests\u002Fpy-broad-except-pass-test.yml",215,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Fpy-broad-except-pass-test.yml",{"path":173,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":174,"sourceHtmlUrl":175},"rules\u002Ftests\u002Frs-let-underscore-result-test.yml",180,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Frs-let-underscore-result-test.yml",{"path":177,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":178,"sourceHtmlUrl":179},"rules\u002Ftests\u002Frs-ok-discard-test.yml",206,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Frules\u002Ftests\u002Frs-ok-discard-test.yml",{"path":181,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":182,"sourceHtmlUrl":183},"scripts\u002Fscan-shell.sh",5984,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Fscripts\u002Fscan-shell.sh",{"path":185,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":186,"sourceHtmlUrl":187},"scripts\u002Ftest-fixture.sh",1995,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Fscripts\u002Ftest-fixture.sh",{"path":189,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":190,"sourceHtmlUrl":191},"scripts\u002Ftests\u002Ftest-rules-project.sh",4225,"https:\u002F\u002Fgithub.com\u002Flaurigates\u002Fclaude-plugins\u002Fblob\u002Fmain\u002Fcode-quality-plugin\u002Fskills\u002Fcode-hidden-failures\u002Fscripts\u002Ftests\u002Ftest-rules-project.sh",[193,200,213,223,231,240],{"skillNo":194,"name":195,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":21},"01M6BTBMVCVSYNGNNBQR3GAZ05","unattended-mode","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Funattended-mode\u002FSKILL.md",[],[199],"unattended mode",{"skillNo":201,"name":202,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":210,"publishedAt":21},"01M6BTBKMSYA6BYGF9KVEMM0XC","test-writer","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Ftest-writer\u002FSKILL.md",[205],{"categoryNo":206,"categoryName":207,"taxonomyType":208,"taxonomyTypeDesc":209},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[211,212],"test","test writer",{"skillNo":214,"name":215,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":216,"categories":217,"keywords":221,"publishedAt":21},"01M6BTBJC2FP9DVJCF4D3H8SS2","skill-for-skills","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Fskill-for-skills\u002FSKILL.md",[218],{"categoryNo":219,"categoryName":220,"taxonomyType":208,"taxonomyTypeDesc":209},"01JBSEEDCAT000000000000023","Skill与智能体开发",[222],"skill for skills",{"skillNo":224,"name":225,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":226,"categories":227,"keywords":228,"publishedAt":21},"01M6BTBH81YDDXQRZ9N1Z2M3H3","security-audit","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Fsecurity-audit\u002FSKILL.md",[],[229,18,230],"security","security audit",{"skillNo":232,"name":233,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":234,"categories":235,"keywords":236,"publishedAt":21},"01M6BTBFRWD7JCSTQ9B6FA4262","retrospective-analysis","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Fretrospective-analysis\u002FSKILL.md",[],[237,238,239],"retrospective","analysis","retrospective analysis",{"skillNo":241,"name":242,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":243,"categories":244,"keywords":245,"publishedAt":21},"01M6BTBE9ZPE8M1XH9D37J0SX8","repo-review","https:\u002F\u002Fgithub.com\u002Fspbu-se\u002Fspbu_se_site\u002Fblob\u002Fcurrent\u002F.opencode\u002Fskills\u002Frepo-review\u002FSKILL.md",[],[246,247],"review","repo review"]