[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M70MMMZPAN4KD34S36WQRPTW":3,"skill-same:01M70MMMZPAN4KD34S36WQRPTW":355},{"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":31,"publishedAt":52,"linkOnly":53,"markdownContent":54,"markdownBody":55,"frontMatter":56,"refName":57,"commitSha":58,"skillDirectory":59,"forksCount":60,"repositoryHtmlUrl":61,"repositoryHomepageUrl":62,"ownerHtmlUrl":63,"ownerBlogUrl":64,"ownerDescription":65,"updatedAt":66,"install":67,"resources":80},"01M70MMMZPAN4KD34S36WQRPTW","remotion-to-hyperframes",null,"Translate an existing Remotion (React-based) video composition into a HyperFrames HTML composition. Use ONLY when the user explicitly asks to port, convert, migrate, translate, or rewrite a Remotion composition as HyperFrames (e.g. \"port my Remotion project to HyperFrames\"). Do NOT use when (a) authoring a NEW HyperFrames composition (even if A\u002FB-testing a Remotion video); (b) Remotion is mentioned in passing; (c) Remotion code is shared as reference, not for translation; (d) the user wants \"the same video as my Remotion one\" without explicitly asking to migrate the source — treat as a fresh HyperFrames build. When in doubt, default to the `hyperframes` skill. Detects unsupported patterns (useState, useEffect side effects, async calculateMetadata, third-party React component libraries, `@remotion\u002Flambda`) and recommends the runtime interop escape hatch instead of a lossy translation.","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-remotion-to-hyperframes\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],"remotion to hyperframes","hyperframes","Remotion","fresh","react","code","migrate","when","effects","new","only","remotion video","testing","default","translate","project","Composition","translation","Video","shared","2026-11-10 10:12:30",false,"---\nname: remotion-to-hyperframes\ndescription: Translate an existing Remotion (React-based) video composition into a HyperFrames HTML composition. Use ONLY when the user explicitly asks to port, convert, migrate, translate, or rewrite a Remotion composition as HyperFrames (e.g. \"port my Remotion project to HyperFrames\"). Do NOT use when (a) authoring a NEW HyperFrames composition (even if A\u002FB-testing a Remotion video); (b) Remotion is mentioned in passing; (c) Remotion code is shared as reference, not for translation; (d) the user wants \"the same video as my Remotion one\" without explicitly asking to migrate the source — treat as a fresh HyperFrames build. When in doubt, default to the `hyperframes` skill. Detects unsupported patterns (useState, useEffect side effects, async calculateMetadata, third-party React component libraries, `@remotion\u002Flambda`) and recommends the runtime interop escape hatch instead of a lossy translation.\n---\n\n# Remotion to HyperFrames\n\n## Overview\n\nTranslate Remotion (React-based) video compositions into HyperFrames (HTML + GSAP) compositions. Most Remotion idioms have direct HyperFrames equivalents — the translation is mechanical for ~80% of typical compositions. This skill encodes the mapping and guards against the lossy 20% by refusing to translate patterns that don't fit HF's seek-driven model and recommending the runtime interop pattern from [PR #214](https:\u002F\u002Fgithub.com\u002Fheygen-com\u002Fhyperframes\u002Fpull\u002F214) instead.\n\nThe skill ships with a **tiered test corpus** (T1–T4, 4 fixtures total) that grades translations against measured SSIM thresholds. Don't translate without running the eval — a translation that \"looks right\" but renders 0.05 SSIM lower than the validated baseline is silently wrong.\n\n## When to use\n\n**Use this skill ONLY when the user explicitly asks to migrate from Remotion.** Example trigger phrases:\n\n- \"port my Remotion project to HyperFrames\"\n- \"convert this Remotion code to HyperFrames\"\n- \"migrate from Remotion\"\n- \"translate this Remotion comp\"\n- \"rewrite this as HyperFrames HTML\"\n\n**Do NOT use this skill when:**\n\n- (a) The user is authoring a **new** HyperFrames composition, even if they have or are A\u002FB-testing a similar Remotion video.\n- (b) The user mentions Remotion in passing without asking for migration.\n- (c) The user shares Remotion code as reference material rather than asking for a translation.\n- (d) The user asks for \"the same video as my Remotion one\" without explicitly asking to migrate the source — treat that as a fresh HyperFrames build.\n\nWhen in doubt, default to authoring a native HyperFrames composition with the `hyperframes` skill instead.\n\n## Workflow\n\n### Step 1: Lint the source\n\nRun [`scripts\u002Flint_source.py`](scripts\u002Flint_source.py) over the Remotion source directory. The lint detects patterns that can't translate cleanly:\n\n- **Blockers** (refuse + recommend interop): `useState`, `useReducer`, `useEffect`\u002F`useLayoutEffect` with non-empty deps, async `calculateMetadata`, third-party React UI libraries (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).\n- **Warnings** (translate after dropping the construct): `@remotion\u002Flambda` config, `delayRender`, `useCallback`, `useMemo`, custom hooks.\n- **Info** (translate with note): `staticFile`, `interpolateColors`.\n\nIf any blocker fires, **stop**. Read [`references\u002Fescape-hatch.md`](references\u002Fescape-hatch.md) and surface the recommendation message. Warnings don't stop translation — drop the offending construct in step 3 and note the gap in `TRANSLATION_NOTES.md`. `@remotion\u002Flambda` config is the canonical warning case: the skill drops the import + `renderMediaOnLambda(...)` calls but translates the rest of the composition.\n\n### Step 2: Plan the translation\n\nRead [`references\u002Fapi-map.md`](references\u002Fapi-map.md) — the index of every Remotion API and its HF equivalent or per-topic reference. Identify which topic references you'll need based on what the source uses:\n\n| Source contains                                                           | Load reference                                |\n| ------------------------------------------------------------------------- | --------------------------------------------- |\n| `Composition`, `defaultProps`, `schema`, `calculateMetadata`              | [`parameters.md`](references\u002Fparameters.md)   |\n| `Sequence`, `Series`, `Loop`, `AbsoluteFill`, `Freeze`                    | [`sequencing.md`](references\u002Fsequencing.md)   |\n| `useCurrentFrame`, `interpolate`, `spring`, `Easing`, `interpolateColors` | [`timing.md`](references\u002Ftiming.md)           |\n| `Audio`, `Video`, `Img`, `IFrame`, `staticFile`, `delayRender`            | [`media.md`](references\u002Fmedia.md)             |\n| `TransitionSeries`, `@remotion\u002Ftransitions`                               | [`transitions.md`](references\u002Ftransitions.md) |\n| `@remotion\u002Flottie`                                                        | [`lottie.md`](references\u002Flottie.md)           |\n| `@remotion\u002Fgoogle-fonts\u002F\u003CFamily>`, `Font.loadFont`, `@font-face`          | [`fonts.md`](references\u002Ffonts.md)             |\n\nDon't load all of them — load only what the specific source needs.\n\n### Step 3: Generate the HF composition\n\nEmit `index.html` with:\n\n- Root `\u003Cdiv id=\"stage\">` carrying the composition's `data-composition-id`, `data-start=\"0\"`, `data-duration` (in seconds), `data-fps`, `data-width`, `data-height`, plus one `data-*` per scalar prop.\n- A flat list of scene divs with `data-start` \u002F `data-duration` \u002F `data-track-index`.\n- Inline `\u003Cstyle>` for layout; CSS sets the `from` state of every animated property.\n- A single `\u003Cscript>` tag at the bottom containing one paused `gsap.timeline({paused: true})`. Every Remotion `useCurrentFrame()` derivation becomes a tween on this timeline at the right offset.\n- `window.__timelines[\"\u003Ccomposition-id>\"] = tl;` registers the timeline with HF's runtime.\n\nCustom React subcomponents inline as repeated HTML using the prop interface as the template (see [`parameters.md`](references\u002Fparameters.md) for the per-instance `data-*` pattern).\n\n### Step 4: Validate\n\nRun the eval harness — [`references\u002Feval.md`](references\u002Feval.md) for the full guide. Quick path:\n\n```bash\n# Render Remotion baseline (after npm install in the fixture)\ncd remotion-src && npx remotion render \u003CCompositionId> out\u002Fbaseline.mp4\n\n# Render HF translation\ncd ..\u002Fhf-src && npx hyperframes render --output ..\u002Fhf.mp4\n\n# SSIM diff\n..\u002F..\u002Fscripts\u002Frender_diff.sh .\u002Fremotion-src\u002Fout\u002Fbaseline.mp4 .\u002Fhf.mp4 .\u002Fdiff\n```\n\nThreshold: ~0.02 below `p05` of the source's complexity tier (see `eval.md`'s validated thresholds table). If the diff fails, run [`scripts\u002Fframe_strip.sh`](scripts\u002Fframe_strip.sh) to see _which_ frames diverged, then re-read the relevant timing\u002Fsequencing\u002Fmedia reference.\n\n**Critical**: both renders must use matching pixel format. Set `Config.setVideoImageFormat(\"png\")` + `Config.setColorSpace(\"bt709\")` in the Remotion source's `remotion.config.ts` — otherwise the diff measures encoder differences (~0.05 SSIM hit), not translation fidelity.\n\n### Step 5: Document gaps\n\nAnything that didn't translate cleanly (volume ramps dropped, custom presentations approximated, fonts substituted) gets a `TRANSLATION_NOTES.md` written next to the HF output. See [`references\u002Flimitations.md`](references\u002Flimitations.md) for the format.\n\n## What this skill explicitly does NOT do\n\n- **Translate React state machines.** Compositions that drive animation via `useState` + `useEffect` are not deterministic frame-capture targets in HyperFrames' seek-driven model. Recommend the runtime interop pattern.\n- **Run Remotion's render pipeline alongside HyperFrames.** That's the runtime interop pattern from [PR #214](https:\u002F\u002Fgithub.com\u002Fheygen-com\u002Fhyperframes\u002Fpull\u002F214) — a separate solution for compositions that fail this skill's lint.\n\n(`@remotion\u002Flambda` is _not_ a blocker — Lambda config is deployment, not animation. The skill drops it as a warning and translates the rest. See [`references\u002Fescape-hatch.md`](references\u002Fescape-hatch.md).)\n\n## How to grade your own translation\n\nRun the test corpus orchestrator:\n\n```bash\n.\u002Fassets\u002Ftest-corpus\u002Frun.sh\n```\n\nIt runs T1, T2, T3 (render + diff) and T4 (lint validation), prints a per-tier pass\u002Ffail table, and emits an aggregate JSON report. Use this to verify the skill is working end-to-end on a clean checkout — and as a regression check after editing any reference.\n\nValidated baseline (as of 2026-04-27):\n\n| Tier | Composition shape                           | Mean SSIM | Threshold |\n| ---- | ------------------------------------------- | --------- | --------- |\n| T1   | single-element fade-in                      | 0.974     | 0.95      |\n| T2   | multi-scene + spring + audio + image        | 0.985     | 0.95      |\n| T3   | data-driven, custom subcomponents, count-up | 0.953     | 0.90      |\n| T4   | escape-hatch (8 lint cases)                 | 8\u002F8 pass  | n\u002Fa       |\n","# Remotion to HyperFrames\n\n## Overview\n\nTranslate Remotion (React-based) video compositions into HyperFrames (HTML + GSAP) compositions. Most Remotion idioms have direct HyperFrames equivalents — the translation is mechanical for ~80% of typical compositions. This skill encodes the mapping and guards against the lossy 20% by refusing to translate patterns that don't fit HF's seek-driven model and recommending the runtime interop pattern from [PR #214](https:\u002F\u002Fgithub.com\u002Fheygen-com\u002Fhyperframes\u002Fpull\u002F214) instead.\n\nThe skill ships with a **tiered test corpus** (T1–T4, 4 fixtures total) that grades translations against measured SSIM thresholds. Don't translate without running the eval — a translation that \"looks right\" but renders 0.05 SSIM lower than the validated baseline is silently wrong.\n\n## When to use\n\n**Use this skill ONLY when the user explicitly asks to migrate from Remotion.** Example trigger phrases:\n\n- \"port my Remotion project to HyperFrames\"\n- \"convert this Remotion code to HyperFrames\"\n- \"migrate from Remotion\"\n- \"translate this Remotion comp\"\n- \"rewrite this as HyperFrames HTML\"\n\n**Do NOT use this skill when:**\n\n- (a) The user is authoring a **new** HyperFrames composition, even if they have or are A\u002FB-testing a similar Remotion video.\n- (b) The user mentions Remotion in passing without asking for migration.\n- (c) The user shares Remotion code as reference material rather than asking for a translation.\n- (d) The user asks for \"the same video as my Remotion one\" without explicitly asking to migrate the source — treat that as a fresh HyperFrames build.\n\nWhen in doubt, default to authoring a native HyperFrames composition with the `hyperframes` skill instead.\n\n## Workflow\n\n### Step 1: Lint the source\n\nRun [`scripts\u002Flint_source.py`](scripts\u002Flint_source.py) over the Remotion source directory. The lint detects patterns that can't translate cleanly:\n\n- **Blockers** (refuse + recommend interop): `useState`, `useReducer`, `useEffect`\u002F`useLayoutEffect` with non-empty deps, async `calculateMetadata`, third-party React UI libraries (MUI, Chakra, Mantine, antd, shadcn, Radix, NextUI).\n- **Warnings** (translate after dropping the construct): `@remotion\u002Flambda` config, `delayRender`, `useCallback`, `useMemo`, custom hooks.\n- **Info** (translate with note): `staticFile`, `interpolateColors`.\n\nIf any blocker fires, **stop**. Read [`references\u002Fescape-hatch.md`](references\u002Fescape-hatch.md) and surface the recommendation message. Warnings don't stop translation — drop the offending construct in step 3 and note the gap in `TRANSLATION_NOTES.md`. `@remotion\u002Flambda` config is the canonical warning case: the skill drops the import + `renderMediaOnLambda(...)` calls but translates the rest of the composition.\n\n### Step 2: Plan the translation\n\nRead [`references\u002Fapi-map.md`](references\u002Fapi-map.md) — the index of every Remotion API and its HF equivalent or per-topic reference. Identify which topic references you'll need based on what the source uses:\n\n| Source contains                                                           | Load reference                                |\n| ------------------------------------------------------------------------- | --------------------------------------------- |\n| `Composition`, `defaultProps`, `schema`, `calculateMetadata`              | [`parameters.md`](references\u002Fparameters.md)   |\n| `Sequence`, `Series`, `Loop`, `AbsoluteFill`, `Freeze`                    | [`sequencing.md`](references\u002Fsequencing.md)   |\n| `useCurrentFrame`, `interpolate`, `spring`, `Easing`, `interpolateColors` | [`timing.md`](references\u002Ftiming.md)           |\n| `Audio`, `Video`, `Img`, `IFrame`, `staticFile`, `delayRender`            | [`media.md`](references\u002Fmedia.md)             |\n| `TransitionSeries`, `@remotion\u002Ftransitions`                               | [`transitions.md`](references\u002Ftransitions.md) |\n| `@remotion\u002Flottie`                                                        | [`lottie.md`](references\u002Flottie.md)           |\n| `@remotion\u002Fgoogle-fonts\u002F\u003CFamily>`, `Font.loadFont`, `@font-face`          | [`fonts.md`](references\u002Ffonts.md)             |\n\nDon't load all of them — load only what the specific source needs.\n\n### Step 3: Generate the HF composition\n\nEmit `index.html` with:\n\n- Root `\u003Cdiv id=\"stage\">` carrying the composition's `data-composition-id`, `data-start=\"0\"`, `data-duration` (in seconds), `data-fps`, `data-width`, `data-height`, plus one `data-*` per scalar prop.\n- A flat list of scene divs with `data-start` \u002F `data-duration` \u002F `data-track-index`.\n- Inline `\u003Cstyle>` for layout; CSS sets the `from` state of every animated property.\n- A single `\u003Cscript>` tag at the bottom containing one paused `gsap.timeline({paused: true})`. Every Remotion `useCurrentFrame()` derivation becomes a tween on this timeline at the right offset.\n- `window.__timelines[\"\u003Ccomposition-id>\"] = tl;` registers the timeline with HF's runtime.\n\nCustom React subcomponents inline as repeated HTML using the prop interface as the template (see [`parameters.md`](references\u002Fparameters.md) for the per-instance `data-*` pattern).\n\n### Step 4: Validate\n\nRun the eval harness — [`references\u002Feval.md`](references\u002Feval.md) for the full guide. Quick path:\n\n```bash\n# Render Remotion baseline (after npm install in the fixture)\ncd remotion-src && npx remotion render \u003CCompositionId> out\u002Fbaseline.mp4\n\n# Render HF translation\ncd ..\u002Fhf-src && npx hyperframes render --output ..\u002Fhf.mp4\n\n# SSIM diff\n..\u002F..\u002Fscripts\u002Frender_diff.sh .\u002Fremotion-src\u002Fout\u002Fbaseline.mp4 .\u002Fhf.mp4 .\u002Fdiff\n```\n\nThreshold: ~0.02 below `p05` of the source's complexity tier (see `eval.md`'s validated thresholds table). If the diff fails, run [`scripts\u002Fframe_strip.sh`](scripts\u002Fframe_strip.sh) to see _which_ frames diverged, then re-read the relevant timing\u002Fsequencing\u002Fmedia reference.\n\n**Critical**: both renders must use matching pixel format. Set `Config.setVideoImageFormat(\"png\")` + `Config.setColorSpace(\"bt709\")` in the Remotion source's `remotion.config.ts` — otherwise the diff measures encoder differences (~0.05 SSIM hit), not translation fidelity.\n\n### Step 5: Document gaps\n\nAnything that didn't translate cleanly (volume ramps dropped, custom presentations approximated, fonts substituted) gets a `TRANSLATION_NOTES.md` written next to the HF output. See [`references\u002Flimitations.md`](references\u002Flimitations.md) for the format.\n\n## What this skill explicitly does NOT do\n\n- **Translate React state machines.** Compositions that drive animation via `useState` + `useEffect` are not deterministic frame-capture targets in HyperFrames' seek-driven model. Recommend the runtime interop pattern.\n- **Run Remotion's render pipeline alongside HyperFrames.** That's the runtime interop pattern from [PR #214](https:\u002F\u002Fgithub.com\u002Fheygen-com\u002Fhyperframes\u002Fpull\u002F214) — a separate solution for compositions that fail this skill's lint.\n\n(`@remotion\u002Flambda` is _not_ a blocker — Lambda config is deployment, not animation. The skill drops it as a warning and translates the rest. See [`references\u002Fescape-hatch.md`](references\u002Fescape-hatch.md).)\n\n## How to grade your own translation\n\nRun the test corpus orchestrator:\n\n```bash\n.\u002Fassets\u002Ftest-corpus\u002Frun.sh\n```\n\nIt runs T1, T2, T3 (render + diff) and T4 (lint validation), prints a per-tier pass\u002Ffail table, and emits an aggregate JSON report. Use this to verify the skill is working end-to-end on a clean checkout — and as a regression check after editing any reference.\n\nValidated baseline (as of 2026-04-27):\n\n| Tier | Composition shape                           | Mean SSIM | Threshold |\n| ---- | ------------------------------------------- | --------- | --------- |\n| T1   | single-element fade-in                      | 0.974     | 0.95      |\n| T2   | multi-scene + spring + audio + image        | 0.985     | 0.95      |\n| T3   | data-driven, custom subcomponents, count-up | 0.953     | 0.90      |\n| T4   | escape-hatch (8 lint cases)                 | 8\u002F8 pass  | n\u002Fa       |\n",{"name":5,"description":7},"main","7850740bd837adb32f0a109ab2af82482196c6f2","skills\u002Fhyperframes-remotion-to-hyperframes",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":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add shengdabai\u002FTony-Claude-Code-Skills --skill remotion-to-hyperframes",{"tool":73,"command":74},"bunx","bunx skills add shengdabai\u002FTony-Claude-Code-Skills --skill remotion-to-hyperframes",{"tool":76,"command":77},"pnpm","pnpm dlx skills add shengdabai\u002FTony-Claude-Code-Skills --skill remotion-to-hyperframes","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002FSKILL.md",true,[81,87,91,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,160,163,167,171,174,178,181,185,189,193,197,200,204,208,212,215,219,223,227,231,235,238,242,246,250,254,258,262,266,270,274,278,282,288,292,296,300,304,308,312,316,320,324,328,331,335,339,343,347,351],{"path":82,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":85,"sourceHtmlUrl":86},"assets\u002F.gitkeep","ASSET","资产文件",0,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002F.gitkeep",{"path":88,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":89,"sourceHtmlUrl":90},"assets\u002Ftest-corpus\u002F.gitignore",16,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002F.gitignore",{"path":92,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":95,"sourceHtmlUrl":96},"assets\u002Ftest-corpus\u002Frun.sh","SCRIPT","脚本",8421,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Frun.sh",{"path":98,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":99,"sourceHtmlUrl":100},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002F.gitignore",128,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002F.gitignore",{"path":102,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":103,"sourceHtmlUrl":104},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fexpected.json",1772,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fexpected.json",{"path":106,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":107,"sourceHtmlUrl":108},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fhf-src\u002Findex.html",1837,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fhf-src\u002Findex.html",{"path":110,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":111,"sourceHtmlUrl":112},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002FREADME.md",2221,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002FREADME.md",{"path":114,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":115,"sourceHtmlUrl":116},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fpackage.json",296,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fpackage.json",{"path":118,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":119,"sourceHtmlUrl":120},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fremotion.config.ts",497,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fremotion.config.ts",{"path":122,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":123,"sourceHtmlUrl":124},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002Findex.ts",109,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002Findex.ts",{"path":126,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":127,"sourceHtmlUrl":128},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",259,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",{"path":130,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":131,"sourceHtmlUrl":132},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002FTitleCard.tsx",773,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Fsrc\u002FTitleCard.tsx",{"path":134,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":135,"sourceHtmlUrl":136},"assets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Ftsconfig.json",337,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-1-title-card\u002Fremotion-src\u002Ftsconfig.json",{"path":138,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":139,"sourceHtmlUrl":140},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002F.gitignore",215,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002F.gitignore",{"path":142,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":143,"sourceHtmlUrl":144},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fexpected.json",2002,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fexpected.json",{"path":146,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":147,"sourceHtmlUrl":148},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fhf-src\u002Findex.html",3782,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fhf-src\u002Findex.html",{"path":150,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":151,"sourceHtmlUrl":152},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002FREADME.md",3152,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002FREADME.md",{"path":154,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":155,"sourceHtmlUrl":156},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fpackage.json",298,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fpackage.json",{"path":158,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":119,"sourceHtmlUrl":159},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fremotion.config.ts","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fremotion.config.ts",{"path":161,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":123,"sourceHtmlUrl":162},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002Findex.ts","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002Findex.ts",{"path":164,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":165,"sourceHtmlUrl":166},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002FMultiScene.tsx",2367,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002FMultiScene.tsx",{"path":168,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":169,"sourceHtmlUrl":170},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",264,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",{"path":172,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":135,"sourceHtmlUrl":173},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Ftsconfig.json","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fremotion-src\u002Ftsconfig.json",{"path":175,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":176,"sourceHtmlUrl":177},"assets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fsetup.sh",1244,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-2-multi-scene\u002Fsetup.sh",{"path":179,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":99,"sourceHtmlUrl":180},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002F.gitignore","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002F.gitignore",{"path":182,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":183,"sourceHtmlUrl":184},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fexpected.json",3448,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fexpected.json",{"path":186,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":187,"sourceHtmlUrl":188},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fhf-src\u002Findex.html",9102,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fhf-src\u002Findex.html",{"path":190,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":191,"sourceHtmlUrl":192},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002FREADME.md",5026,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002FREADME.md",{"path":194,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":195,"sourceHtmlUrl":196},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fpackage.json",318,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fpackage.json",{"path":198,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":119,"sourceHtmlUrl":199},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fremotion.config.ts","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fremotion.config.ts",{"path":201,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":202,"sourceHtmlUrl":203},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FAnimatedNumber.tsx",740,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FAnimatedNumber.tsx",{"path":205,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":206,"sourceHtmlUrl":207},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FStatCard.tsx",1474,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FStatCard.tsx",{"path":209,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":210,"sourceHtmlUrl":211},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FUnderlinedText.tsx",1154,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fcomponents\u002FUnderlinedText.tsx",{"path":213,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":123,"sourceHtmlUrl":214},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Findex.ts","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Findex.ts",{"path":216,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":217,"sourceHtmlUrl":218},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",681,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002FRoot.tsx",{"path":220,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":221,"sourceHtmlUrl":222},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FOutroScene.tsx",423,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FOutroScene.tsx",{"path":224,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":225,"sourceHtmlUrl":226},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FStatsScene.tsx",676,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FStatsScene.tsx",{"path":228,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":229,"sourceHtmlUrl":230},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FTitleScene.tsx",1230,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002Fscenes\u002FTitleScene.tsx",{"path":232,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":233,"sourceHtmlUrl":234},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002FStargazed.tsx",970,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Fsrc\u002FStargazed.tsx",{"path":236,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":135,"sourceHtmlUrl":237},"assets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Ftsconfig.json","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-3-data-driven\u002Fremotion-src\u002Ftsconfig.json",{"path":239,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":240,"sourceHtmlUrl":241},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F01-use-state.tsx",1000,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F01-use-state.tsx",{"path":243,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":244,"sourceHtmlUrl":245},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F02-use-effect-deps.tsx",954,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F02-use-effect-deps.tsx",{"path":247,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":248,"sourceHtmlUrl":249},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F03-async-metadata.tsx",1128,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F03-async-metadata.tsx",{"path":251,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":252,"sourceHtmlUrl":253},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F04-third-party-react.tsx",1183,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F04-third-party-react.tsx",{"path":255,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":256,"sourceHtmlUrl":257},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F05-lambda-config.tsx",1425,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F05-lambda-config.tsx",{"path":259,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":260,"sourceHtmlUrl":261},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F06-warnings-only.tsx",1387,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F06-warnings-only.tsx",{"path":263,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":264,"sourceHtmlUrl":265},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F07-custom-hook.tsx",1094,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F07-custom-hook.tsx",{"path":267,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":268,"sourceHtmlUrl":269},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F08-mixed.tsx",1166,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fcases\u002F08-mixed.tsx",{"path":271,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":272,"sourceHtmlUrl":273},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fexpected.json",2784,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fexpected.json",{"path":275,"resourceType":83,"resourceTypeDesc":84,"sizeBytes":276,"sourceHtmlUrl":277},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002FREADME.md",2825,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002FREADME.md",{"path":279,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":280,"sourceHtmlUrl":281},"assets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fvalidate.sh",3534,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fassets\u002Ftest-corpus\u002Ftier-4-escape-hatch\u002Fvalidate.sh",{"path":283,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":286,"sourceHtmlUrl":287},"references\u002Fapi-map.md","REFERENCE","参考文档",12391,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Fapi-map.md",{"path":289,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":290,"sourceHtmlUrl":291},"references\u002Fescape-hatch.md",5403,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Fescape-hatch.md",{"path":293,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":294,"sourceHtmlUrl":295},"references\u002Feval.md",5589,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Feval.md",{"path":297,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":298,"sourceHtmlUrl":299},"references\u002Ffonts.md",3246,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Ffonts.md",{"path":301,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":302,"sourceHtmlUrl":303},"references\u002Flimitations.md",4857,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Flimitations.md",{"path":305,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":306,"sourceHtmlUrl":307},"references\u002Flottie.md",4177,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Flottie.md",{"path":309,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":310,"sourceHtmlUrl":311},"references\u002Fmedia.md",3872,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Fmedia.md",{"path":313,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":314,"sourceHtmlUrl":315},"references\u002Fparameters.md",4620,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Fparameters.md",{"path":317,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":318,"sourceHtmlUrl":319},"references\u002Fsequencing.md",5146,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Fsequencing.md",{"path":321,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":322,"sourceHtmlUrl":323},"references\u002Ftiming.md",6201,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Ftiming.md",{"path":325,"resourceType":284,"resourceTypeDesc":285,"sizeBytes":326,"sourceHtmlUrl":327},"references\u002Ftransitions.md",4500,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Freferences\u002Ftransitions.md",{"path":329,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":85,"sourceHtmlUrl":330},"scripts\u002F.gitkeep","https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002F.gitkeep",{"path":332,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":333,"sourceHtmlUrl":334},"scripts\u002Fframe_strip.sh",3731,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Fframe_strip.sh",{"path":336,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":337,"sourceHtmlUrl":338},"scripts\u002Flint_source.py",12162,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Flint_source.py",{"path":340,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":341,"sourceHtmlUrl":342},"scripts\u002Frender_diff.sh",3066,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Frender_diff.sh",{"path":344,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":345,"sourceHtmlUrl":346},"scripts\u002Ftests\u002Ffixtures\u002Fblocker.tsx",1853,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Ftests\u002Ffixtures\u002Fblocker.tsx",{"path":348,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":349,"sourceHtmlUrl":350},"scripts\u002Ftests\u002Ffixtures\u002Fclean.tsx",1379,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Ftests\u002Ffixtures\u002Fclean.tsx",{"path":352,"resourceType":93,"resourceTypeDesc":94,"sizeBytes":353,"sourceHtmlUrl":354},"scripts\u002Ftests\u002Fsmoke.sh",3635,"https:\u002F\u002Fgithub.com\u002Fshengdabai\u002FTony-Claude-Code-Skills\u002Fblob\u002Fmain\u002Fskills\u002Fhyperframes-remotion-to-hyperframes\u002Fscripts\u002Ftests\u002Fsmoke.sh",[356,373,399,424,446,466],{"skillNo":357,"name":358,"nameZh":6,"description":359,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":360,"categories":361,"keywords":365,"publishedAt":52},"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",[362],{"categoryNo":363,"categoryName":364,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",[366,367,368,369,370,371,372],"methodology","xiaolai","xiaolai methodology","朋友","投资","writing","收入",{"skillNo":374,"name":375,"nameZh":6,"description":376,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":377,"categories":378,"keywords":381,"publishedAt":52},"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",[379,380],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},[375,382,383,384,385,47,386,387,388,389,390,391,392,393,394,395,396,37,397,398],"knowledge","wiki","explore","walkthrough","get","knowledge base","run","generate","intent","cli","map","documentation","project wiki","disk","architecture","unknown","generated",{"skillNo":400,"name":401,"nameZh":6,"description":402,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":403,"categories":404,"keywords":409,"publishedAt":52},"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",[405,406],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":407,"categoryName":408,"taxonomyType":29,"taxonomyTypeDesc":30},"01JBSEEDCAT000000000000036","内容创作者",[401,410,411,412,413,414,415,416,389,417,418,419,39,420,421,422,50,423],"user","content","视频","creator","generate video","videos","launch","video content","create","upload","use","auto","types","创作",{"skillNo":425,"name":426,"nameZh":6,"description":427,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":428,"categories":429,"keywords":431,"publishedAt":52},"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",[430],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[432,433,401,434,435,50,436,437,438,439,440,441,442,443,387,444,39,420,382,445],"sync","script","youtube script sync","recording","shorts","first","base","person","update","active","child","optimize","idempotent","long",{"skillNo":447,"name":448,"nameZh":6,"description":449,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":450,"categories":451,"keywords":456,"publishedAt":52},"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",[452,453,454,455],{"categoryNo":363,"categoryName":364,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":27,"categoryName":28,"taxonomyType":29,"taxonomyTypeDesc":30},{"categoryNo":407,"categoryName":408,"taxonomyType":29,"taxonomyTypeDesc":30},[457,371,458,459,460,461,37,39,420,462,463,464,465],"writing skills","how","teach","write skill","write","claude code skills","files","how to","trigger",{"skillNo":467,"name":468,"nameZh":6,"description":469,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":470,"categories":471,"keywords":474,"publishedAt":52},"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",[472,473],{"categoryNo":363,"categoryName":364,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":407,"categoryName":408,"taxonomyType":29,"taxonomyTypeDesc":30},[475,371,476,47,477,463,39,458,461,420,464],"Rules","writing rules","project rules"]