[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"creator:01M6QPWTJWTSJV1TQTTY8ZPBYJ":3,"creator-list:01M6QPWTJWTSJV1TQTTY8ZPBYJ:stars:3:":20},{"accountNo":4,"login":5,"displayName":6,"avatarUrl":7,"accountType":8,"accountTypeDesc":9,"profileDescription":10,"skillCount":11,"repoCount":12,"professionCount":12,"scenarioCount":13,"totalStars":14,"updatedAt":15,"htmlUrl":16,"blogUrl":17,"company":17,"location":18,"followersCount":14,"publicReposCount":19},"01M6QPWTJWTSJV1TQTTY8ZPBYJ","lfr-ai","Laurits Fromberg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F233346551?v=4","USER","个人作者","Optimizing for elegance",93,1,3,0,"2026-07-20 12:19:48","https:\u002F\u002Fgithub.com\u002Flfr-ai",null,"Denmark, copenhagen",6,{"records":21,"total":11,"current":13,"size":284},[22,35,44,66,87,101,117,132,147,166,176,192,203,215,223,235,251,268],{"skillNo":23,"name":24,"nameZh":17,"description":17,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":28,"categories":29,"keywords":30,"publishedAt":34},"01M6QQBAW5KAXHHK5EK9A59HXK","quality-gate","lfr-ai\u002Fcopier-fullstack-template","01M6QPWTQ47BZGA4TH17H14N80","MIT","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fquality-gate\u002FSKILL.md",[],[31,32,33],"quality gate","quality","gate","2026-11-10 10:12:30",{"skillNo":36,"name":37,"nameZh":17,"description":17,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":38,"categories":39,"keywords":40,"publishedAt":34},"01M6QQB868ZGYWKW1EY7JZ1N03","python-conventions","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fpython-conventions\u002FSKILL.md",[],[41,42,43],"python","conventions","python conventions",{"skillNo":45,"name":46,"nameZh":17,"description":47,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":48,"categories":49,"keywords":55,"publishedAt":34},"01M6QQAYHT28YYDFKWF2D8RZ51","playwright","End-to-end testing with Playwright for user journeys and accessibility","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fplaywright\u002FSKILL.md",[50],{"categoryNo":51,"categoryName":52,"taxonomyType":53,"taxonomyTypeDesc":54},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[46,56,57,58,59,60,61,62,63,64,65],"testing","accessibility","e2e","user","tsx","tests","end","user journeys","with","for",{"skillNo":67,"name":68,"nameZh":17,"description":69,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":34},"01M6QQASPVC2MYCQ86MGPQG6RF","openspec-verify-change","Verify implementation matches change artifacts. Use when the user wants to validate that implementation is complete, correct, and coherent before archiving.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-verify-change\u002FSKILL.md",[],[73,74,75,76,77,78,79,80,81,59,82,83,84,85,86],"change","openspec verify change","verify","verify change","openspec","cli","validate","artifacts","correct","use","implementation","coherent","verify implementation","complete",{"skillNo":88,"name":89,"nameZh":17,"description":90,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":34},"01M6QQAPVGGSX9A1YA2HZ8Y7KP","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\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-sync-specs\u002FSKILL.md",[],[94,95,77,78,96,73,97,59,82,98,99,64,100],"sync","openspec sync specs","spec","update","delta","main","changes",{"skillNo":102,"name":103,"nameZh":17,"description":104,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":34},"01M6QQAGVEFMEFWQ473GZWR63S","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\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-propose\u002FSKILL.md",[],[108,77,109,78,73,110,80,59,111,82,112,83,113,114,86,115,64,65,116],"openspec propose","design","tasks","generated","ready","build","get","proposal","describe",{"skillNo":118,"name":119,"nameZh":17,"description":120,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":34},"01M6QQA2484GA9AQYPFTV0X9CT","openspec-onboard","Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-onboard\u002FSKILL.md",[],[124,125,77,78,126,127,128,129,130,86,64,65,131],"openspec onboard","onboard","workflow","onboarding","work","narration","cycle","codebase",{"skillNo":133,"name":134,"nameZh":17,"description":135,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":34},"01M6QQ9Y80M7R1AJHBHECCH24X","openspec-new-change","Start a new OpenSpec change using the experimental artifact workflow. Use when the user wants to create a new feature, fix, or modification with a structured step-by-step approach.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-new-change\u002FSKILL.md",[],[73,139,77,78,126,140,141,59,142,143,82,144,145,146,64],"openspec new change","create","start","fix","new feature","artifact","structured","feature",{"skillNo":148,"name":149,"nameZh":17,"description":150,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":151,"categories":152,"keywords":153,"publishedAt":34},"01M6QQ9TP11YNS9EJ96A4YX1CW","openspec-guide","Use when the user asks about OpenSpec itself — available commands, workflows, spec structure, domain organization, or workflow reference. Examples: \"What OpenSpec commands are available?\", \"How do I use OpenSpec?\", \"How do specs work?\"","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-guide\u002FSKILL.md",[],[154,77,155,96,126,156,157,158,128,59,82,159,160,161,162,163,164,165],"guide","openspec guide","workflows","examples","how","reference","do","organization","structure","domain","commands","about",{"skillNo":167,"name":168,"nameZh":17,"description":169,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":170,"categories":171,"keywords":172,"publishedAt":34},"01M6QQ9NJJH0KERZZ56B8DKB2G","openspec-ff-change","Fast-forward through OpenSpec artifact creation. Use when the user wants to quickly create all artifacts needed for implementation without stepping through each one individually.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-ff-change\u002FSKILL.md",[],[73,173,77,78,140,80,174,59,82,83,144,175,65],"openspec ff change","fast","creation",{"skillNo":177,"name":178,"nameZh":17,"description":179,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":180,"categories":181,"keywords":182,"publishedAt":34},"01M6QQ95RC0HQNJ8JFPR8BAG38","openspec-explore","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.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-explore\u002FSKILL.md",[],[183,184,77,78,73,59,82,185,186,187,188,189,190,191,65],"openspec explore","explore","think","thinking partner","thinking","ideas","requirements","partner","mode",{"skillNo":193,"name":194,"nameZh":17,"description":195,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":34},"01M6QQ931AXFX68WQB8RA3Y1XC","openspec-continue-change","Continue working on an OpenSpec change by creating the next artifact. Use when the user wants to progress their change, create the next artifact, or continue their workflow.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-continue-change\u002FSKILL.md",[],[73,199,200,77,78,126,140,59,82,201,144,202],"openspec continue change","continue","next","progress",{"skillNo":204,"name":205,"nameZh":17,"description":206,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":207,"categories":208,"keywords":209,"publishedAt":34},"01M6QQ90706N32M8QPQNA991PV","openspec-bulk-archive-change","Archive multiple completed changes at once. Use when archiving several parallel changes.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-bulk-archive-change\u002FSKILL.md",[],[73,210,211,77,212,78,213,82,214,100],"openspec bulk archive change","archive","bulk","parallel","at",{"skillNo":216,"name":217,"nameZh":17,"description":218,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":219,"categories":220,"keywords":221,"publishedAt":34},"01M6QQ8XMR1NNSHD8B53D80VY3","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\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-archive-change\u002FSKILL.md",[],[73,222,211,77,78,126,59,82,83,86],"openspec archive change",{"skillNo":224,"name":225,"nameZh":17,"description":226,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":227,"categories":228,"keywords":229,"publishedAt":34},"01M6QQ8CY6P5V091WME0W2F822","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\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fopenspec\u002Fopenspec-apply-change\u002FSKILL.md",[],[73,230,77,231,232,78,233,110,141,200,128,59,82,83,234],"openspec apply change","openspec apply","apply","implement","implementing",{"skillNo":236,"name":237,"nameZh":17,"description":238,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":239,"categories":240,"keywords":241,"publishedAt":34},"01M6QQ881KZ15Q49M6N6PBA135","jscpd","Run jscpd clone detection and produce actionable duplication findings before dry refactoring.","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fjscpd\u002FSKILL.md",[],[237,242,243,244,245,246,247,248,249,250],"run","produce","detection","refactoring","duplication","dry","actionable","dry refactoring","clone",{"skillNo":252,"name":253,"nameZh":17,"description":254,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":255,"categories":256,"keywords":257,"publishedAt":34},"01M6QQ84F0XXWXP3NHBKCS6AK1","gitnexus-refactoring","Use when the user wants to rename, extract, split, move, or restructure code safely. Examples: \"Rename this function\", \"Extract this into a module\", \"Refactor this class\", \"Move this to a separate file\"","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgitnexus\u002Fgitnexus-refactoring\u002FSKILL.md",[],[245,258,259,260,261,157,262,59,263,82,264,265,266,267],"gitnexus refactoring","gitnexus","code","file","refactor","extract","rename","module","move","split",{"skillNo":269,"name":270,"nameZh":17,"description":271,"descriptionZh":17,"repositoryFullName":25,"ownerLogin":5,"ownerAvatarUrl":7,"ownerAccountNo":4,"ownerDisplayName":6,"repositoryNo":26,"starsCount":14,"licenseSpdxId":27,"licenseFileUrl":17,"sourceHtmlUrl":272,"categories":273,"keywords":274,"publishedAt":34},"01M6QQ7M85TQSRV4HHM7HQZVTF","gitnexus-impact-analysis","Use when the user wants to know what will break if they change something, or needs safety analysis before editing code. Examples: \"Is it safe to change X?\", \"What depends on this?\", \"What will break?\"","https:\u002F\u002Fgithub.com\u002Flfr-ai\u002Fcopier-fullstack-template\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fgitnexus\u002Fgitnexus-impact-analysis\u002FSKILL.md",[],[275,276,277,278,259,279,73,260,157,280,281,59,82,282,283],"analysis","impact analysis","gitnexus impact analysis","impact","safe","Safety","editing","it","break",18]