[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70MM3VEZWAPTWYP1R4DF7G6":3,"skill-same:01M70MM3VEZWAPTWYP1R4DF7G6":77},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":46,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":49,"updatedAt":50,"install":51,"resources":64},"01M70MM3VEZWAPTWYP1R4DF7G6","gsap",null,"GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.","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-gsap\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"use","position","timeline","reference","hyperframes","transforms","change","gsap animation","when","writing","labels","compositions","performance","for","animations","gsap animations","Animation","2026-11-10 10:12:30",false,"---\nname: gsap\ndescription: GSAP animation reference for HyperFrames. Covers gsap.to(), from(), fromTo(), easing, stagger, defaults, timelines (gsap.timeline(), position parameter, labels, nesting, playback), and performance (transforms, will-change, quickTo). Use when writing GSAP animations in HyperFrames compositions.\n---\n\n# GSAP\n\n## HyperFrames Contract\n\nHyperFrames controls GSAP through its `gsap` runtime adapter. Create a paused timeline synchronously, register it on `window.__timelines` with the exact `data-composition-id`, and let HyperFrames seek it.\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fgsap@3.14.2\u002Fdist\u002Fgsap.min.js\">\u003C\u002Fscript>\n\u003Cscript>\n  window.__timelines = window.__timelines || {};\n  const tl = gsap.timeline({ paused: true });\n\n  tl.from(\".title\", { y: 48, opacity: 0, duration: 0.6, ease: \"power3.out\" }, 0);\n  tl.to(\".accent\", { scaleX: 1, duration: 0.5, ease: \"power2.out\" }, 0.25);\n\n  window.__timelines[\"main\"] = tl; \u002F\u002F key must equal data-composition-id on the composition root\n\u003C\u002Fscript>\n```\n\n- The registry key must match the composition root's `data-composition-id`.\n- Do not call `tl.play()` for render-critical motion.\n- Do not build timelines inside async code, timers, or event handlers.\n- Keep loops finite. HyperFrames renders finite video durations.\n\n## Core Tween Methods\n\n- **gsap.to(targets, vars)** — animate from current state to `vars`. Most common.\n- **gsap.from(targets, vars)** — animate from `vars` to current state (entrances).\n- **gsap.fromTo(targets, fromVars, toVars)** — explicit start and end.\n- **gsap.set(targets, vars)** — apply immediately (duration 0).\n\nAlways use **camelCase** property names (e.g. `backgroundColor`, `rotationX`).\n\n## Common vars\n\n- **duration** — seconds (default 0.5).\n- **delay** — seconds before start.\n- **ease** — `\"power1.out\"` (default), `\"power3.inOut\"`, `\"back.out(1.7)\"`, `\"elastic.out(1, 0.3)\"`, `\"none\"`.\n- **stagger** — number `0.1` or object: `{ amount: 0.3, from: \"center\" }`, `{ each: 0.1, from: \"random\" }`.\n- **overwrite** — `false` (default), `true`, or `\"auto\"`.\n- **repeat** — finite number; never `-1` in HyperFrames. Compute repeats from the visible duration. **yoyo** — alternates direction with repeat.\n- **onComplete**, **onStart**, **onUpdate** — callbacks.\n- **immediateRender** — default `true` for from()\u002FfromTo(). Set `false` on later tweens targeting the same property+element to avoid overwrite.\n\n## Transforms and CSS\n\nPrefer GSAP's **transform aliases** over raw `transform` string:\n\n| GSAP property               | Equivalent          |\n| --------------------------- | ------------------- |\n| `x`, `y`, `z`               | translateX\u002FY\u002FZ (px) |\n| `xPercent`, `yPercent`      | translateX\u002FY in %   |\n| `scale`, `scaleX`, `scaleY` | scale               |\n| `rotation`                  | rotate (deg)        |\n| `rotationX`, `rotationY`    | 3D rotate           |\n| `skewX`, `skewY`            | skew                |\n| `transformOrigin`           | transform-origin    |\n\n- **autoAlpha** — prefer over `opacity`. At 0: also sets `visibility: hidden`.\n- **CSS variables** — `\"--hue\": 180`.\n- **svgOrigin** _(SVG only)_ — global SVG coordinate space origin. Don't combine with `transformOrigin`.\n- **Directional rotation** — `\"360_cw\"`, `\"-170_short\"`, `\"90_ccw\"`.\n- **clearProps** — `\"all\"` or comma-separated; removes inline styles on complete.\n- **Relative values** — `\"+=20\"`, `\"-=10\"`, `\"*=2\"`.\n\n## Function-Based Values\n\n```javascript\ngsap.to(\".item\", {\n  x: (i, target, targets) => i * 50,\n  stagger: 0.1,\n});\n```\n\n## Easing\n\nBuilt-in eases: `power1`–`power4`, `back`, `bounce`, `circ`, `elastic`, `expo`, `sine`. Each has `.in`, `.out`, `.inOut`.\n\n## Defaults\n\n```javascript\ngsap.defaults({ duration: 0.6, ease: \"power2.out\" });\n```\n\n## Controlling Tweens\n\n```javascript\nconst tween = gsap.to(\".box\", { x: 100 });\ntween.pause();\ntween.play();\ntween.reverse();\ntween.kill();\ntween.progress(0.5);\ntween.time(0.2);\n```\n\n## gsap.matchMedia() (Responsive + Accessibility)\n\nRuns setup only when a media query matches; auto-reverts when it stops matching.\n\n```javascript\nlet mm = gsap.matchMedia();\nmm.add(\n  {\n    isDesktop: \"(min-width: 800px)\",\n    reduceMotion: \"(prefers-reduced-motion: reduce)\",\n  },\n  (context) => {\n    const { isDesktop, reduceMotion } = context.conditions;\n    gsap.to(\".box\", {\n      rotation: isDesktop ? 360 : 180,\n      duration: reduceMotion ? 0 : 2,\n    });\n  },\n);\n```\n\n---\n\n## Timelines\n\n### Creating a Timeline\n\n```javascript\nconst tl = gsap.timeline({ defaults: { duration: 0.5, ease: \"power2.out\" } });\ntl.to(\".a\", { x: 100 }).to(\".b\", { y: 50 }).to(\".c\", { opacity: 0 });\n```\n\n### Position Parameter\n\nThird argument controls placement:\n\n- **Absolute**: `1` — at 1s\n- **Relative**: `\"+=0.5\"` — after end; `\"-=0.2\"` — before end\n- **Label**: `\"intro\"`, `\"intro+=0.3\"`\n- **Alignment**: `\"\u003C\"` — same start as previous; `\">\"` — after previous ends; `\"\u003C0.2\"` — 0.2s after previous starts\n\n```javascript\ntl.to(\".a\", { x: 100 }, 0);\ntl.to(\".b\", { y: 50 }, \"\u003C\"); \u002F\u002F same start as .a\ntl.to(\".c\", { opacity: 0 }, \"\u003C0.2\"); \u002F\u002F 0.2s after .b starts\n```\n\n### Labels\n\n```javascript\ntl.addLabel(\"intro\", 0);\ntl.to(\".a\", { x: 100 }, \"intro\");\ntl.addLabel(\"outro\", \"+=0.5\");\ntl.play(\"outro\");\ntl.tweenFromTo(\"intro\", \"outro\");\n```\n\n### Timeline Options\n\n- **paused: true** — create paused; call `.play()` to start.\n- **repeat**, **yoyo** — apply to whole timeline.\n- **defaults** — vars merged into every child tween.\n\n### Nesting Timelines\n\n```javascript\nconst master = gsap.timeline();\nconst child = gsap.timeline();\nchild.to(\".a\", { x: 100 }).to(\".b\", { y: 50 });\nmaster.add(child, 0);\n```\n\n### Playback Control\n\n`tl.play()`, `tl.pause()`, `tl.reverse()`, `tl.restart()`, `tl.time(2)`, `tl.progress(0.5)`, `tl.kill()`.\n\n---\n\n## Performance\n\n### Prefer Transform and Opacity\n\nAnimating `x`, `y`, `scale`, `rotation`, `opacity` stays on the compositor. Avoid `width`, `height`, `top`, `left` when transforms achieve the same effect.\n\n### will-change\n\n```css\nwill-change: transform;\n```\n\nOnly on elements that actually animate.\n\n### gsap.quickTo() for Frequent Updates\n\n```javascript\nlet xTo = gsap.quickTo(\"#id\", \"x\", { duration: 0.4, ease: \"power3\" }),\n  yTo = gsap.quickTo(\"#id\", \"y\", { duration: 0.4, ease: \"power3\" });\ncontainer.addEventListener(\"mousemove\", (e) => {\n  xTo(e.pageX);\n  yTo(e.pageY);\n});\n```\n\n### Stagger > Many Tweens\n\nUse `stagger` instead of separate tweens with manual delays.\n\n### Cleanup\n\nPause or kill off-screen animations.\n\n---\n\n## References (loaded on demand)\n\n- **[references\u002Feffects.md](references\u002Feffects.md)** — Drop-in effects: typewriter text, audio visualizer. Read when needing ready-made effect patterns for HyperFrames.\n\n## Best Practices\n\n- Use camelCase property names; prefer transform aliases and autoAlpha.\n- Prefer timelines over chaining with delay; use the position parameter.\n- Add labels with `addLabel()` for readable sequencing.\n- Pass defaults into timeline constructor.\n- Store tween\u002Ftimeline return value when controlling playback.\n\n## Do Not\n\n- Animate layout properties (width\u002Fheight\u002Ftop\u002Fleft) when transforms suffice.\n- Use both svgOrigin and transformOrigin on the same SVG element.\n- Chain animations with delay when a timeline can sequence them.\n- Create tweens before the DOM exists.\n- Skip cleanup — always kill tweens when no longer needed.\n- Use infinite repeat values in HyperFrames compositions. Use finite repeat counts computed from the visible duration.\n\n## Credits And References\n\n- HyperFrames adapter source: `packages\u002Fcore\u002Fsrc\u002Fruntime\u002Fadapters\u002Fgsap.ts`.\n- GSAP documentation: https:\u002F\u002Fgsap.com\u002Fdocs\u002Fv3\u002F\n- GSAP timeline pause and seek behavior: https:\u002F\u002Fgsap.com\u002Fdocs\u002Fv3\u002FGSAP\u002FTimeline\u002Fpause%28%29\u002F\n","# GSAP\n\n## HyperFrames Contract\n\nHyperFrames controls GSAP through its `gsap` runtime adapter. Create a paused timeline synchronously, register it on `window.__timelines` with the exact `data-composition-id`, and let HyperFrames seek it.\n\n```html\n\u003Cscript src=\"https:\u002F\u002Fcdn.jsdelivr.net\u002Fnpm\u002Fgsap@3.14.2\u002Fdist\u002Fgsap.min.js\">\u003C\u002Fscript>\n\u003Cscript>\n  window.__timelines = window.__timelines || {};\n  const tl = gsap.timeline({ paused: true });\n\n  tl.from(\".title\", { y: 48, opacity: 0, duration: 0.6, ease: \"power3.out\" }, 0);\n  tl.to(\".accent\", { scaleX: 1, duration: 0.5, ease: \"power2.out\" }, 0.25);\n\n  window.__timelines[\"main\"] = tl; \u002F\u002F key must equal data-composition-id on the composition root\n\u003C\u002Fscript>\n```\n\n- The registry key must match the composition root's `data-composition-id`.\n- Do not call `tl.play()` for render-critical motion.\n- Do not build timelines inside async code, timers, or event handlers.\n- Keep loops finite. HyperFrames renders finite video durations.\n\n## Core Tween Methods\n\n- **gsap.to(targets, vars)** — animate from current state to `vars`. Most common.\n- **gsap.from(targets, vars)** — animate from `vars` to current state (entrances).\n- **gsap.fromTo(targets, fromVars, toVars)** — explicit start and end.\n- **gsap.set(targets, vars)** — apply immediately (duration 0).\n\nAlways use **camelCase** property names (e.g. `backgroundColor`, `rotationX`).\n\n## Common vars\n\n- **duration** — seconds (default 0.5).\n- **delay** — seconds before start.\n- **ease** — `\"power1.out\"` (default), `\"power3.inOut\"`, `\"back.out(1.7)\"`, `\"elastic.out(1, 0.3)\"`, `\"none\"`.\n- **stagger** — number `0.1` or object: `{ amount: 0.3, from: \"center\" }`, `{ each: 0.1, from: \"random\" }`.\n- **overwrite** — `false` (default), `true`, or `\"auto\"`.\n- **repeat** — finite number; never `-1` in HyperFrames. Compute repeats from the visible duration. **yoyo** — alternates direction with repeat.\n- **onComplete**, **onStart**, **onUpdate** — callbacks.\n- **immediateRender** — default `true` for from()\u002FfromTo(). Set `false` on later tweens targeting the same property+element to avoid overwrite.\n\n## Transforms and CSS\n\nPrefer GSAP's **transform aliases** over raw `transform` string:\n\n| GSAP property               | Equivalent          |\n| --------------------------- | ------------------- |\n| `x`, `y`, `z`               | translateX\u002FY\u002FZ (px) |\n| `xPercent`, `yPercent`      | translateX\u002FY in %   |\n| `scale`, `scaleX`, `scaleY` | scale               |\n| `rotation`                  | rotate (deg)        |\n| `rotationX`, `rotationY`    | 3D rotate           |\n| `skewX`, `skewY`            | skew                |\n| `transformOrigin`           | transform-origin    |\n\n- **autoAlpha** — prefer over `opacity`. At 0: also sets `visibility: hidden`.\n- **CSS variables** — `\"--hue\": 180`.\n- **svgOrigin** _(SVG only)_ — global SVG coordinate space origin. Don't combine with `transformOrigin`.\n- **Directional rotation** — `\"360_cw\"`, `\"-170_short\"`, `\"90_ccw\"`.\n- **clearProps** — `\"all\"` or comma-separated; removes inline styles on complete.\n- **Relative values** — `\"+=20\"`, `\"-=10\"`, `\"*=2\"`.\n\n## Function-Based Values\n\n```javascript\ngsap.to(\".item\", {\n  x: (i, target, targets) => i * 50,\n  stagger: 0.1,\n});\n```\n\n## Easing\n\nBuilt-in eases: `power1`–`power4`, `back`, `bounce`, `circ`, `elastic`, `expo`, `sine`. Each has `.in`, `.out`, `.inOut`.\n\n## Defaults\n\n```javascript\ngsap.defaults({ duration: 0.6, ease: \"power2.out\" });\n```\n\n## Controlling Tweens\n\n```javascript\nconst tween = gsap.to(\".box\", { x: 100 });\ntween.pause();\ntween.play();\ntween.reverse();\ntween.kill();\ntween.progress(0.5);\ntween.time(0.2);\n```\n\n## gsap.matchMedia() (Responsive + Accessibility)\n\nRuns setup only when a media query matches; auto-reverts when it stops matching.\n\n```javascript\nlet mm = gsap.matchMedia();\nmm.add(\n  {\n    isDesktop: \"(min-width: 800px)\",\n    reduceMotion: \"(prefers-reduced-motion: reduce)\",\n  },\n  (context) => {\n    const { isDesktop, reduceMotion } = context.conditions;\n    gsap.to(\".box\", {\n      rotation: isDesktop ? 360 : 180,\n      duration: reduceMotion ? 0 : 2,\n    });\n  },\n);\n```\n\n---\n\n## Timelines\n\n### Creating a Timeline\n\n```javascript\nconst tl = gsap.timeline({ defaults: { duration: 0.5, ease: \"power2.out\" } });\ntl.to(\".a\", { x: 100 }).to(\".b\", { y: 50 }).to(\".c\", { opacity: 0 });\n```\n\n### Position Parameter\n\nThird argument controls placement:\n\n- **Absolute**: `1` — at 1s\n- **Relative**: `\"+=0.5\"` — after end; `\"-=0.2\"` — before end\n- **Label**: `\"intro\"`, `\"intro+=0.3\"`\n- **Alignment**: `\"\u003C\"` — same start as previous; `\">\"` — after previous ends; `\"\u003C0.2\"` — 0.2s after previous starts\n\n```javascript\ntl.to(\".a\", { x: 100 }, 0);\ntl.to(\".b\", { y: 50 }, \"\u003C\"); \u002F\u002F same start as .a\ntl.to(\".c\", { opacity: 0 }, \"\u003C0.2\"); \u002F\u002F 0.2s after .b starts\n```\n\n### Labels\n\n```javascript\ntl.addLabel(\"intro\", 0);\ntl.to(\".a\", { x: 100 }, \"intro\");\ntl.addLabel(\"outro\", \"+=0.5\");\ntl.play(\"outro\");\ntl.tweenFromTo(\"intro\", \"outro\");\n```\n\n### Timeline Options\n\n- **paused: true** — create paused; call `.play()` to start.\n- **repeat**, **yoyo** — apply to whole timeline.\n- **defaults** — vars merged into every child tween.\n\n### Nesting Timelines\n\n```javascript\nconst master = gsap.timeline();\nconst child = gsap.timeline();\nchild.to(\".a\", { x: 100 }).to(\".b\", { y: 50 });\nmaster.add(child, 0);\n```\n\n### Playback Control\n\n`tl.play()`, `tl.pause()`, `tl.reverse()`, `tl.restart()`, `tl.time(2)`, `tl.progress(0.5)`, `tl.kill()`.\n\n---\n\n## Performance\n\n### Prefer Transform and Opacity\n\nAnimating `x`, `y`, `scale`, `rotation`, `opacity` stays on the compositor. Avoid `width`, `height`, `top`, `left` when transforms achieve the same effect.\n\n### will-change\n\n```css\nwill-change: transform;\n```\n\nOnly on elements that actually animate.\n\n### gsap.quickTo() for Frequent Updates\n\n```javascript\nlet xTo = gsap.quickTo(\"#id\", \"x\", { duration: 0.4, ease: \"power3\" }),\n  yTo = gsap.quickTo(\"#id\", \"y\", { duration: 0.4, ease: \"power3\" });\ncontainer.addEventListener(\"mousemove\", (e) => {\n  xTo(e.pageX);\n  yTo(e.pageY);\n});\n```\n\n### Stagger > Many Tweens\n\nUse `stagger` instead of separate tweens with manual delays.\n\n### Cleanup\n\nPause or kill off-screen animations.\n\n---\n\n## References (loaded on demand)\n\n- **[references\u002Feffects.md](references\u002Feffects.md)** — Drop-in effects: typewriter text, audio visualizer. Read when needing ready-made effect patterns for HyperFrames.\n\n## Best Practices\n\n- Use camelCase property names; prefer transform aliases and autoAlpha.\n- Prefer timelines over chaining with delay; use the position parameter.\n- Add labels with `addLabel()` for readable sequencing.\n- Pass defaults into timeline constructor.\n- Store tween\u002Ftimeline return value when controlling playback.\n\n## Do Not\n\n- Animate layout properties (width\u002Fheight\u002Ftop\u002Fleft) when transforms suffice.\n- Use both svgOrigin and transformOrigin on the same SVG element.\n- Chain animations with delay when a timeline can sequence them.\n- Create tweens before the DOM exists.\n- Skip cleanup — always kill tweens when no longer needed.\n- Use infinite repeat values in HyperFrames compositions. Use finite repeat counts computed from the visible duration.\n\n## Credits And References\n\n- HyperFrames adapter source: `packages\u002Fcore\u002Fsrc\u002Fruntime\u002Fadapters\u002Fgsap.ts`.\n- GSAP documentation: https:\u002F\u002Fgsap.com\u002Fdocs\u002Fv3\u002F\n- GSAP timeline pause and seek behavior: https:\u002F\u002Fgsap.com\u002Fdocs\u002Fv3\u002FGSAP\u002FTimeline\u002Fpause%28%29\u002F\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fhyperframes-gsap",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":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill gsap",{"tool":57,"command":58},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill gsap",{"tool":60,"command":61},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill gsap","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-gsap\u002FSKILL.md",true,[65,71],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"references\u002Feffects.md","REFERENCE","参考文档",8761,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-gsap\u002Freferences\u002Feffects.md",{"path":72,"resourceType":73,"resourceTypeDesc":74,"sizeBytes":75,"sourceHtmlUrl":76},"scripts\u002Fextract-audio-data.py","SCRIPT","脚本",6463,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-gsap\u002Fscripts\u002Fextract-audio-data.py",[78,96,130,155,177,197],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":89,"publishedAt":36},"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",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",[90,91,92,93,94,28,95],"methodology","xiaolai","xiaolai methodology","朋友","投资","收入",{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":110,"publishedAt":36},"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",[102,105],{"categoryNo":103,"categoryName":104,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[98,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129],"knowledge","wiki","explore","walkthrough","project","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","code","unknown","generated",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":140,"publishedAt":36},"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",[136,137],{"categoryNo":103,"categoryName":104,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":138,"categoryName":139,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000036","内容创作者",[132,141,142,143,144,145,146,147,119,148,149,150,27,19,151,152,153,154],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","auto","types","Video","创作",{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":162,"publishedAt":36},"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",[161],{"categoryNo":103,"categoryName":104,"taxonomyType":87,"taxonomyTypeDesc":88},[163,164,132,165,166,153,167,168,169,170,171,172,173,174,117,175,27,19,111,176],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":187,"publishedAt":36},"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",[183,184,185,186],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":103,"categoryName":104,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":138,"categoryName":139,"taxonomyType":108,"taxonomyTypeDesc":109},[188,28,189,190,191,192,127,27,19,193,194,195,196],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":205,"publishedAt":36},"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",[203,204],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},{"categoryNo":138,"categoryName":139,"taxonomyType":108,"taxonomyTypeDesc":109},[206,28,207,115,208,194,27,189,192,19,195],"Rules","writing rules","project rules"]