[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BZS4CQZ6KK2KQ26SVB7QCS":3,"skill-same:01M6BZS4CQZ6KK2KQ26SVB7QCS":97},{"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":20,"linkOnly":21,"markdownContent":22,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":32,"install":33,"resources":46},"01M6BZS4CQZ6KK2KQ26SVB7QCS","todo.reorg_headers",null,"Reorganize ai_task_queue.md .md so every H2 topic matches ALL TOPICS and every H3 task sits under the right topic, keeping its H1 stage","causify-ai\u002Fhelpers","causify-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F121828442?v=4","01M6BZFTHW2MQR7FWK8CDW0DRA","Causify.AI","01M6BZFTPJ193AB5N089Z82HQG",155,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_headers\u002FSKILL.md",[],[19],"todo reorg headers","2026-11-10 10:12:30",false,"---\ndescription: Reorganize ai_task_queue.md .md so every H2 topic matches ALL TOPICS and every H3 task sits under the right topic, keeping its H1 stage\n---\n\n# Goal\n\n- Align the H2 topic headers in `ai_task_queue.md` with the canonical list in\n  `ai_task_queue.md`'s `# ALL TOPICS` section\n- Fold in stray H2 topics: either add them to `# ALL TOPICS` in the right place, or\n  merge them into an existing topic\n- Move each H3 task under the correct H2 topic, without moving it out of its current\n  H1 stage\n- Normalize every H3 task header to carry a checkbox marker, without changing markers\n  that already exist\n\n# References\n\n- `.claude\u002Fskills\u002Ftodo.rules.md`: defines the H1 stage \u002F H2 topic \u002F H3 task\n  organization and the `# ALL TOPICS` master list\n\n# Workflow\n\n## Load the Conventions\n\n- Read `.claude\u002Fskills\u002Ftodo.rules.md`\n- Read `ai_task_queue.md`'s `# ALL TOPICS` section; record the ordered list of\n  `## \u003CTopic>` headers, keeping the `\u002F\u002F \u003Cgroup>` comment lines as group boundaries\n  (they mark where a topic belongs, they are not topics themselves)\n\n## Reconcile the Topic Taxonomy\n\n- For every other H1 stage in `ai_task_queue.md` (`IN PROGRESS`, `HIGH PRIORITY`,\n  `BACKLOG`, `ICEBOX`, ...) list its H2 headers\n- For each H2 header, check whether it matches (case-insensitively) an ALL TOPICS\n  entry\n  - Match -> keep it, using the exact ALL TOPICS spelling as the canonical header\n  - No match -> decide:\n    - If it clearly restates or overlaps an existing ALL TOPICS entry (e.g. \"Build &\n      Infrastructure\" vs \"Build is green\"), merge: rename its header to the existing\n      entry and fold its tasks under that topic\n    - If it is a genuinely new topic, add it to `# ALL TOPICS` under the closest\n      matching `\u002F\u002F \u003Cgroup>` comment (or a new group if none fits), then keep it as\n      its own H2\n    - Placeholder headers with no descriptive name (e.g. `## ?`) are never kept:\n      classify every task under them individually by content instead of by header\n  - Do not guess silently on an ambiguous case: list it and ask the user to pick the\n    merge target vs. a new topic before proceeding\n- Apply merges\u002Fadditions to `# ALL TOPICS` first, so the rest of the pass has one\n  final taxonomy to file tasks against\n\n## File Every H3 Task Under the Correct Topic\n\n- Within each H1 stage\u002Fsection, for every H3 task:\n  - Determine its topic from the enclosing (now-canonical) H2 header\n  - If the task's content clearly belongs to a different ALL TOPICS entry than its\n    current header, move the task block there instead\n  - Move only within the same H1 stage: never move a task from `BACKLOG` into\n    `HIGH PRIORITY`, as part of this reorg\n  - Order the H2 headers within each H1 stage\u002Fsection to match `# ALL TOPICS`'s\n    order; drop any header left with zero tasks after moves\n- Keep every moved task block (title, checkbox marker, body) byte-for-byte unchanged\n  except for its position\n\n## Normalize Task Checkboxes\n\n- For every H3 header `### \u003CTitle>` with no `[ ]`, `[x]`, or `[.]` marker, rewrite it\n  to `### [ ] \u003CTitle>`\n- Leave `### [x] ...`, `### [.] ...`, or any other existing marker exactly as it is\n\n## Ask User\n- List any ambiguous case the user and ask them how to resolve it\n- Do not make decisions unless you are certain\n\n## Report\n\n- List every topic merge and every new topic added to `# ALL TOPICS`\n- List every task moved, as `\u003CTitle> (\u003Cfile>, \u003CH1 stage>): \u003Cold H2> -> \u003Cnew H2>`\n- List every checkbox added, as `\u003CTitle> (\u003Cfile>)`\n\n# Verification\n\n- [ ] Every H2 header remaining in `ai_task_queue.md` (outside `# ALL TOPICS`)\n      matches an entry in `# ALL TOPICS`\n- [ ] No H2 header is left with zero H3 tasks under it\n- [ ] Every H3 task still sits under the same H1 stage\u002Fsection it started in\n- [ ] Every H3 task header carries a `[ ]`, `[x]`, or `[.]` marker; markers that\n      existed before the reorg are unchanged\n- [ ] Task content (title, body) is unchanged aside from its position\n- [ ] `# ALL TOPICS` order\u002Fgrouping is preserved except for the additions made during\n      this pass\n","# Goal\n\n- Align the H2 topic headers in `ai_task_queue.md` with the canonical list in\n  `ai_task_queue.md`'s `# ALL TOPICS` section\n- Fold in stray H2 topics: either add them to `# ALL TOPICS` in the right place, or\n  merge them into an existing topic\n- Move each H3 task under the correct H2 topic, without moving it out of its current\n  H1 stage\n- Normalize every H3 task header to carry a checkbox marker, without changing markers\n  that already exist\n\n# References\n\n- `.claude\u002Fskills\u002Ftodo.rules.md`: defines the H1 stage \u002F H2 topic \u002F H3 task\n  organization and the `# ALL TOPICS` master list\n\n# Workflow\n\n## Load the Conventions\n\n- Read `.claude\u002Fskills\u002Ftodo.rules.md`\n- Read `ai_task_queue.md`'s `# ALL TOPICS` section; record the ordered list of\n  `## \u003CTopic>` headers, keeping the `\u002F\u002F \u003Cgroup>` comment lines as group boundaries\n  (they mark where a topic belongs, they are not topics themselves)\n\n## Reconcile the Topic Taxonomy\n\n- For every other H1 stage in `ai_task_queue.md` (`IN PROGRESS`, `HIGH PRIORITY`,\n  `BACKLOG`, `ICEBOX`, ...) list its H2 headers\n- For each H2 header, check whether it matches (case-insensitively) an ALL TOPICS\n  entry\n  - Match -> keep it, using the exact ALL TOPICS spelling as the canonical header\n  - No match -> decide:\n    - If it clearly restates or overlaps an existing ALL TOPICS entry (e.g. \"Build &\n      Infrastructure\" vs \"Build is green\"), merge: rename its header to the existing\n      entry and fold its tasks under that topic\n    - If it is a genuinely new topic, add it to `# ALL TOPICS` under the closest\n      matching `\u002F\u002F \u003Cgroup>` comment (or a new group if none fits), then keep it as\n      its own H2\n    - Placeholder headers with no descriptive name (e.g. `## ?`) are never kept:\n      classify every task under them individually by content instead of by header\n  - Do not guess silently on an ambiguous case: list it and ask the user to pick the\n    merge target vs. a new topic before proceeding\n- Apply merges\u002Fadditions to `# ALL TOPICS` first, so the rest of the pass has one\n  final taxonomy to file tasks against\n\n## File Every H3 Task Under the Correct Topic\n\n- Within each H1 stage\u002Fsection, for every H3 task:\n  - Determine its topic from the enclosing (now-canonical) H2 header\n  - If the task's content clearly belongs to a different ALL TOPICS entry than its\n    current header, move the task block there instead\n  - Move only within the same H1 stage: never move a task from `BACKLOG` into\n    `HIGH PRIORITY`, as part of this reorg\n  - Order the H2 headers within each H1 stage\u002Fsection to match `# ALL TOPICS`'s\n    order; drop any header left with zero tasks after moves\n- Keep every moved task block (title, checkbox marker, body) byte-for-byte unchanged\n  except for its position\n\n## Normalize Task Checkboxes\n\n- For every H3 header `### \u003CTitle>` with no `[ ]`, `[x]`, or `[.]` marker, rewrite it\n  to `### [ ] \u003CTitle>`\n- Leave `### [x] ...`, `### [.] ...`, or any other existing marker exactly as it is\n\n## Ask User\n- List any ambiguous case the user and ask them how to resolve it\n- Do not make decisions unless you are certain\n\n## Report\n\n- List every topic merge and every new topic added to `# ALL TOPICS`\n- List every task moved, as `\u003CTitle> (\u003Cfile>, \u003CH1 stage>): \u003Cold H2> -> \u003Cnew H2>`\n- List every checkbox added, as `\u003CTitle> (\u003Cfile>)`\n\n# Verification\n\n- [ ] Every H2 header remaining in `ai_task_queue.md` (outside `# ALL TOPICS`)\n      matches an entry in `# ALL TOPICS`\n- [ ] No H2 header is left with zero H3 tasks under it\n- [ ] Every H3 task still sits under the same H1 stage\u002Fsection it started in\n- [ ] Every H3 task header carries a `[ ]`, `[x]`, or `[.]` marker; markers that\n      existed before the reorg are unchanged\n- [ ] Task content (title, body) is unchanged aside from its position\n- [ ] `# ALL TOPICS` order\u002Fgrouping is preserved except for the additions made during\n      this pass\n",{"description":7},"master","39143a859859181eff7e774457997b5278fd9e99",".claude\u002Fskills\u002Ftodo.reorg_headers",170,"https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers","https:\u002F\u002Fcausify.ai","https:\u002F\u002Fgithub.com\u002Fcausify-ai","2026-11-02 02:09:15",{"source":8,"skillName":5,"commands":34,"prompt":44,"zipAvailable":45},[35,38,41],{"tool":36,"command":37},"npx","npx skills add causify-ai\u002Fhelpers --skill todo.reorg_headers",{"tool":39,"command":40},"bunx","bunx skills add causify-ai\u002Fhelpers --skill todo.reorg_headers",{"tool":42,"command":43},"pnpm","pnpm dlx skills add causify-ai\u002Fhelpers --skill todo.reorg_headers","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_headers\u002FSKILL.md",true,[47,53,57,63,69,73,77,81,85,89,93],{"path":48,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":51,"sourceHtmlUrl":52},"project\u002Fpackage-lock.json","REFERENCE","参考文档",139078,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fpackage-lock.json",{"path":54,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":55,"sourceHtmlUrl":56},"project\u002Fpackage.json",690,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fpackage.json",{"path":58,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":61,"sourceHtmlUrl":62},"project\u002Fremotion.config.ts","SCRIPT","脚本",414,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fremotion.config.ts",{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"project\u002Fsrc\u002FBackground.tsx","OTHER","其他",3178,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002FBackground.tsx",{"path":70,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":71,"sourceHtmlUrl":72},"project\u002Fsrc\u002Findex.ts",105,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002Findex.ts",{"path":74,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":75,"sourceHtmlUrl":76},"project\u002Fsrc\u002FRoot.tsx",1648,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002FRoot.tsx",{"path":78,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":79,"sourceHtmlUrl":80},"project\u002Fsrc\u002FScenes.tsx",8168,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002FScenes.tsx",{"path":82,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":83,"sourceHtmlUrl":84},"project\u002Fsrc\u002Fschema.ts",4209,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002Fschema.ts",{"path":86,"resourceType":59,"resourceTypeDesc":60,"sizeBytes":87,"sourceHtmlUrl":88},"project\u002Fsrc\u002Ftheme.ts",1173,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002Ftheme.ts",{"path":90,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":91,"sourceHtmlUrl":92},"project\u002Fsrc\u002FVideo.tsx",4747,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Fsrc\u002FVideo.tsx",{"path":94,"resourceType":49,"resourceTypeDesc":50,"sizeBytes":95,"sourceHtmlUrl":96},"project\u002Ftsconfig.json",302,"https:\u002F\u002Fgithub.com\u002Faeonfun\u002Faeon\u002Fblob\u002Fmain\u002Fskills\u002Fremotion\u002Fproject\u002Ftsconfig.json",[98,117,134,145,154,163],{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":109,"publishedAt":20},"01M6C9ZMM0XSXCHHABMJ9XB1JB","tutorial_in_60_mins.propagate_docker_changes","Sync tutorial and class-project Docker files to match project_template","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftutorial_in_60_mins.propagate_docker_changes\u002FSKILL.md",[104],{"categoryNo":105,"categoryName":106,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[110,111,112,113,114,115,116],"tutorial in 60 mins propagate docker changes","tutorial","docker","files","haiku","template","sync",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":126,"publishedAt":20},"01M6C9ZJK8QJ9FNCY39WVF3GMG","tutorial_in_60_mins.merge_markdown","Merge the content of a markdown file into a Jupyter notebook","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftutorial_in_60_mins.merge_markdown\u002FSKILL.md",[123],{"categoryNo":124,"categoryName":125,"taxonomyType":107,"taxonomyTypeDesc":108},"01JBSEEDCAT000000000000002","文档处理",[127,111,128,129,130,114,131,132,133],"tutorial in 60 mins merge markdown","markdown","merge","jupyter","file","content","jupyter notebook",{"skillNo":135,"name":136,"nameZh":6,"description":137,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":138,"categories":139,"keywords":140,"publishedAt":20},"01M6C9ZFYK13ZCT1E8BEEC4NG4","tutorial_in_60_mins.format","Format a directory to follow the \"Learn X in 60 Minutes\" tutorial conventions","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftutorial_in_60_mins.format\u002FSKILL.md",[],[141,111,142,143,144,114],"tutorial in 60 mins format","format","learn","directory",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":151,"publishedAt":20},"01M6C9ZDKXSBKNKX7M3X4W38G5","tutorial_in_60_mins.create","Create a tutorial directory for the Learn X in 60 Minutes conventions","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftutorial_in_60_mins.create\u002FSKILL.md",[],[152,111,153,144,143],"tutorial in 60 mins create","create",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":20},"01M6BZS5Z0QE03WRS1TM3XJEY9","todo.reorg_in_progress","Reorganize ai_task_queue.md so in-progress tasks, not-started tasks, and mislabeled topic headers sit under the right H1 stage","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_in_progress\u002FSKILL.md",[],[161,162],"todo reorg in progress","tasks",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":167,"categories":168,"keywords":169,"publishedAt":20},"01M6BZS2JG504QE169TXVA17KV","todo.move_to_reorg","Move tasks out of ai_task_queue.md's TO REORG section into the right H1 stage and H2 topic, using an optional Priority tag, after user confirmation","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.move_to_reorg\u002FSKILL.md",[],[170,162],"todo move to reorg"]