[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70MKTYTRWS9HBSTVBHR5K95":3,"skill-same:01M70MKTYTRWS9HBSTVBHR5K95":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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M70MKTYTRWS9HBSTVBHR5K95","animejs",null,"Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.","shengdabai\u002FTony-Claude-Code-Skills","shengdabai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F116417419?v=4","01M70F6D2WY5PQV5A92BKYJQEW","Tony Sheng","01M70F6D3GAAAYZ5H4CC1G8VXM",3,"MIT","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-animejs\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"when","driven","html","js","patterns","safe","hyperframes","window","anime","examples","use","writing","adapter","render","compositions","for","animations","deterministic","2026-11-10 10:12:30",false,"---\nname: animejs\ndescription: Anime.js adapter patterns for HyperFrames. Use when writing Anime.js animations or timelines inside HyperFrames compositions, registering animations on window.__hfAnime, making Anime.js seek-driven and deterministic, or translating Anime.js examples into render-safe HyperFrames HTML.\n---\n\n# Anime.js for HyperFrames\n\nHyperFrames can seek Anime.js instances through its `animejs` runtime adapter. The composition owns the animation objects; HyperFrames owns the clock.\n\n## Contract\n\n- Create animations or timelines synchronously during composition initialization.\n- Set `autoplay: false` so Anime.js does not advance on its own clock.\n- Register every returned animation or timeline on `window.__hfAnime`.\n- Use finite durations and loop counts.\n- Avoid callbacks that mutate DOM based on wall-clock time, network state, or unseeded randomness.\n\nThe adapter seeks every registered instance with `instance.seek(timeMs)`, where `timeMs` is HyperFrames time in milliseconds.\n\n## Basic Pattern\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fanimejs@4.0.2\u002Flib\u002Fanime.iife.min.js\">\u003C\u002Fscript>\n\u003Cscript>\n  const anim = anime({\n    targets: \".mark\",\n    translateX: 280,\n    rotate: \"1turn\",\n    opacity: [0, 1],\n    duration: 1200,\n    easing: \"easeOutExpo\",\n    autoplay: false,\n  });\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(anim);\n\u003C\u002Fscript>\n```\n\n## Timeline Pattern\n\n```html\n\u003Cscript>\n  const tl = anime.timeline({\n    autoplay: false,\n    easing: \"easeOutCubic\",\n  });\n\n  tl.add({\n    targets: \".title\",\n    translateY: [40, 0],\n    opacity: [0, 1],\n    duration: 650,\n  }).add(\n    {\n      targets: \".accent\",\n      scaleX: [0, 1],\n      duration: 450,\n    },\n    250,\n  );\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(tl);\n\u003C\u002Fscript>\n```\n\n## Module Builds\n\nIf you use an ES module build, the adapter does not care how the instance was created. It only needs the returned object to expose `seek()`, `pause()`, and preferably `play()`:\n\n```html\n\u003Cscript type=\"module\">\n  import { animate } from \"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fanimejs\u002F+esm\";\n\n  const anim = animate(\".chip\", {\n    x: \"18rem\",\n    duration: 900,\n    autoplay: false,\n  });\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(anim);\n\u003C\u002Fscript>\n```\n\n## Good Uses\n\n- Small SVG and DOM flourishes where Anime.js syntax is compact.\n- Imported Anime.js examples that can be made seek-driven.\n- Multiple independent micro-animations pushed into the same registry.\n\nUse GSAP for complex scene sequencing unless the user specifically asks for Anime.js. GSAP is still the primary HyperFrames authoring path.\n\n## Avoid\n\n- Leaving `autoplay` at the Anime.js default.\n- Depending on `anime.running` auto-discovery instead of explicit `window.__hfAnime.push(...)`.\n- Infinite loops. Compute a finite repeat count from the composition duration.\n- Building animations in timers, promises, event handlers, or after async asset loads.\n\n## Validation\n\nAfter editing a composition that uses Anime.js:\n\n```bash\nnpx hyperframes lint\nnpx hyperframes validate\n```\n\n## Credits And References\n\n- HyperFrames adapter source: `packages\u002Fcore\u002Fsrc\u002Fruntime\u002Fadapters\u002Fanimejs.ts`.\n- Anime.js documentation for `autoplay`, `pause()`, and `seek()`: https:\u002F\u002Fanimejs.com\u002Fdocumentation\u002F\n","# Anime.js for HyperFrames\n\nHyperFrames can seek Anime.js instances through its `animejs` runtime adapter. The composition owns the animation objects; HyperFrames owns the clock.\n\n## Contract\n\n- Create animations or timelines synchronously during composition initialization.\n- Set `autoplay: false` so Anime.js does not advance on its own clock.\n- Register every returned animation or timeline on `window.__hfAnime`.\n- Use finite durations and loop counts.\n- Avoid callbacks that mutate DOM based on wall-clock time, network state, or unseeded randomness.\n\nThe adapter seeks every registered instance with `instance.seek(timeMs)`, where `timeMs` is HyperFrames time in milliseconds.\n\n## Basic Pattern\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fanimejs@4.0.2\u002Flib\u002Fanime.iife.min.js\">\u003C\u002Fscript>\n\u003Cscript>\n  const anim = anime({\n    targets: \".mark\",\n    translateX: 280,\n    rotate: \"1turn\",\n    opacity: [0, 1],\n    duration: 1200,\n    easing: \"easeOutExpo\",\n    autoplay: false,\n  });\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(anim);\n\u003C\u002Fscript>\n```\n\n## Timeline Pattern\n\n```html\n\u003Cscript>\n  const tl = anime.timeline({\n    autoplay: false,\n    easing: \"easeOutCubic\",\n  });\n\n  tl.add({\n    targets: \".title\",\n    translateY: [40, 0],\n    opacity: [0, 1],\n    duration: 650,\n  }).add(\n    {\n      targets: \".accent\",\n      scaleX: [0, 1],\n      duration: 450,\n    },\n    250,\n  );\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(tl);\n\u003C\u002Fscript>\n```\n\n## Module Builds\n\nIf you use an ES module build, the adapter does not care how the instance was created. It only needs the returned object to expose `seek()`, `pause()`, and preferably `play()`:\n\n```html\n\u003Cscript type=\"module\">\n  import { animate } from \"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fanimejs\u002F+esm\";\n\n  const anim = animate(\".chip\", {\n    x: \"18rem\",\n    duration: 900,\n    autoplay: false,\n  });\n\n  window.__hfAnime = window.__hfAnime || [];\n  window.__hfAnime.push(anim);\n\u003C\u002Fscript>\n```\n\n## Good Uses\n\n- Small SVG and DOM flourishes where Anime.js syntax is compact.\n- Imported Anime.js examples that can be made seek-driven.\n- Multiple independent micro-animations pushed into the same registry.\n\nUse GSAP for complex scene sequencing unless the user specifically asks for Anime.js. GSAP is still the primary HyperFrames authoring path.\n\n## Avoid\n\n- Leaving `autoplay` at the Anime.js default.\n- Depending on `anime.running` auto-discovery instead of explicit `window.__hfAnime.push(...)`.\n- Infinite loops. Compute a finite repeat count from the composition duration.\n- Building animations in timers, promises, event handlers, or after async asset loads.\n\n## Validation\n\nAfter editing a composition that uses Anime.js:\n\n```bash\nnpx hyperframes lint\nnpx hyperframes validate\n```\n\n## Credits And References\n\n- HyperFrames adapter source: `packages\u002Fcore\u002Fsrc\u002Fruntime\u002Fadapters\u002Fanimejs.ts`.\n- Anime.js documentation for `autoplay`, `pause()`, and `seek()`: https:\u002F\u002Fanimejs.com\u002Fdocumentation\u002F\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fhyperframes-animejs",1,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills","https:\u002F\u002Fzturnsgo.com","https:\u002F\u002Fgithub.com\u002Fshengdabai","https:\u002F\u002Fzturnsgo.com\u002F","AI × education creator — producer, not consumer. Taught 6,000+ learners; shipping learning tools & daily essays with Claude Code, practicing @xiaolai's way 🥋","2026-11-01 21:28:23",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill animejs",{"tool":58,"command":59},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill animejs",{"tool":61,"command":62},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill animejs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-animejs\u002FSKILL.md",true,[],[67,85,119,144,166,186],{"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":78,"publishedAt":37},"01M70P17DAD4C1C47NPH6A96EM","xiaolai-methodology","以李笑来(Li Xiaolai)的思考方式、方法论与表达风格,为用户做全方位 1-on-1 教练指导,覆盖创业、赚钱、投资、学习、自学、读书写作、用 AI、以及人生心态与自我管理。当用户提到 \"李笑来\"、\"笑来\"、\"笑来老师\"、\"扮演李笑来\"、\"找笑来聊聊\"、\"笑来怎么看\"、\"xiaolai\"、\"把时间当作朋友\"、\"通往财富自由之路\"、\"定投改变命运\"、\"韭菜的自我修养\"、\"自学是门手艺\"、\"让时间陪你慢慢变富\"、\"七年就是一辈子\"、\"元认知\"、\"活在未来\"、\"复利\u002F长期主义\"、\"践行\"、\"痴迷改进\"、\"个人商业模式\u002F出售时间\"、\"睡后收入\"、\"定投\"、\"财富自由\"、\"操作系统升级\"、\"最少必要知识\"、\"北极星提示词\"、\"用 AI 该怎么学\u002F思考\" 等任一触发词,或当用户带着关于创业\u002F赚钱\u002F投资\u002F学习\u002F职业\u002F重大人生决策的困惑、希望被人用笑来式的「逻辑 + 大白话 + 类比 + 重新定义 + 践行导向」来点醒和指导时,自动进入李笑来教练模式。","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fxiaolai-methodology\u002FSKILL.md",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",[79,80,81,82,83,30,84],"methodology","xiaolai","xiaolai methodology","朋友","投资","收入",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":99,"publishedAt":37},"01M70P13NB9YP7ACJR1S861CDS","zread","Produce and consume a wiki-style knowledge base for a code repository via the `zread` CLI and its on-disk output under `.\u002F.zread\u002Fwiki\u002F`. Use this skill whenever the user wants to understand, onboard onto, explore, summarize, map, or get an overview of an unfamiliar codebase; asks for architecture docs, a project wiki, a repo walkthrough, module\u002Fpackage explanations, or \"what does this repo do\"; wants to generate, regenerate, resume, browse, or serve code documentation locally; or mentions zread \u002F zread.ai directly. Also use it proactively before diving into a large unknown repo — if `.\u002F.zread\u002Fwiki\u002Fcurrent` exists, read the generated pages instead of crawling source file-by-file; if it doesn't, consider offering to run `zread generate`. The trigger is the intent (understand a codebase through generated docs), not the literal word \"zread\".","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fzread\u002FSKILL.md",[91,94],{"categoryNo":92,"categoryName":93,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[87,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":129,"publishedAt":37},"01M70P10S4SWMZQ8BJAFBFDRW3","youtube","Launch the YouTube Creator Agent to auto-generate videos.\nUse when: user types \u002Fyoutube, wants to create YouTube videos,\ngenerate video content, or upload to YouTube.\nKeywords: youtube, video, 视频, 创作视频, 发布视频","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube\u002FSKILL.md",[125,126],{"categoryNo":92,"categoryName":93,"taxonomyType":76,"taxonomyTypeDesc":77},{"categoryNo":127,"categoryName":128,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000036","内容创作者",[121,130,131,132,133,134,135,136,108,137,138,139,19,29,140,141,142,143],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","auto","types","Video","创作",{"skillNo":145,"name":146,"nameZh":6,"description":147,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":148,"categories":149,"keywords":151,"publishedAt":37},"01M70P0YE95D8BACZCGV8BK90K","youtube-script-sync","Sync, update, or optimize Tony's GetNote knowledge base `Youtube视频逐字稿` by turning each parent recording or first-person idea note into an idempotent child note containing a directly recordable YouTube long-video or Shorts script. Use when the user says “更新\u002F同步\u002F优化 Youtube视频逐字稿知识库”, or says “更新\u002F同步\u002F优化该知识库” while this knowledge base is the active context.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fyoutube-script-sync\u002FSKILL.md",[150],{"categoryNo":92,"categoryName":93,"taxonomyType":76,"taxonomyTypeDesc":77},[152,153,121,154,155,142,156,157,158,159,160,161,162,163,106,164,19,29,100,165],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":167,"name":168,"nameZh":6,"description":169,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":170,"categories":171,"keywords":176,"publishedAt":37},"01M70P0WMV5XT0EEC0N445PW07","writing-skills","How to write SKILL.md files that trigger reliably and teach effectively. Use when creating, improving, or reviewing Claude Code skills.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-skills\u002FSKILL.md",[172,173,174,175],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},{"categoryNo":92,"categoryName":93,"taxonomyType":76,"taxonomyTypeDesc":77},{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":127,"categoryName":128,"taxonomyType":97,"taxonomyTypeDesc":98},[177,30,178,179,180,181,116,19,29,182,183,184,185],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":187,"name":188,"nameZh":6,"description":189,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":190,"categories":191,"keywords":194,"publishedAt":37},"01M70P0SJFR4YVJQBGMHKGSKXT","writing-rules","How to write .claude\u002Frules\u002F files that Claude actually follows. Use when creating, improving, or reviewing project rules.","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fxiaolai\u002Fnlpm\u002Fskills\u002Fnlpm\u002Fwriting-rules\u002FSKILL.md",[192,193],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},{"categoryNo":127,"categoryName":128,"taxonomyType":97,"taxonomyTypeDesc":98},[195,30,196,104,197,183,19,178,181,29,184],"Rules","writing rules","project rules"]