[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6F2004BW13GQ59N3RGSAYVN":3,"skill-same:01M6F2004BW13GQ59N3RGSAYVN":53},{"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":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":36,"ownerHtmlUrl":37,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":38,"install":39,"resources":52},"01M6F2004BW13GQ59N3RGSAYVN","todo.reorg_in_progress",null,"Reorganize ai_task_queue.md so in-progress tasks, not-started tasks, and mislabeled topic headers sit under the right H1 stage","causify-ai\u002Fhelpers","causify-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F121828442?v=4","01M6BZFTHW2MQR7FWK8CDW0DRA","Causify.AI","01M6F1K6CCKKF8YKTBN4ZV509G",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_in_progress\u002FSKILL.md",[],[19,20,21,22,23,24,25],"todo reorg in progress","todo","progress","tasks","queue","task","stage","2026-11-10 10:12:30",false,"---\ndescription: Reorganize ai_task_queue.md so in-progress tasks, not-started tasks, and mislabeled topic headers sit under the right H1 stage\n---\n\n# Goal\n\n- Move every `### [.] \u003CTitle>` task (in progress) into the `# IN PROGRESS` section,\n  under its topic's `(IN PROGRESS)` H2\n- Move every `### [ ] \u003CTitle>` task (not started) that sits under `# IN PROGRESS` into\n  `# BACKLOG`, under its topic's `(BACKLOG)` H2\n- Move any H2 topic header whose `(\u003CStage>)` suffix doesn't match its enclosing H1\n  stage to the H1 stage the suffix names, together with all its tasks\n- Leave `### [x] ...` tasks and nested checklist items (`- [ ]`, `- [x]`, `- [.]`)\n  untouched\n\n# References\n\n- `.claude\u002Fskills\u002Ftodo.rules.md`: defines the H1 stage \u002F H2 topic \u002F H3 task\n  organization and the `## \u003CTopic> (\u003CStage>)` header convention\n\n# Workflow\n\n## Load the Conventions\n\n- Read `.claude\u002Fskills\u002Ftodo.rules.md`\n- Identify the H1 stage headers present in `ai_task_queue.md` (e.g. `# IN PROGRESS`,\n  `# BACKLOG - HIGH PRIORITY`, `# BACKLOG`, `# ICEBOX`, `# ALL TOPICS`)\n- Never touch the `# ALL TOPICS` section in this skill\n\n## Phase 1: Refile Mislabeled H2 Topics\n\n- Do this phase first: fixing a misfiled topic before the task-marker rules run keeps\n  the topic's tasks together instead of letting Phase 2\u002F3 split them across stages\n- For every H2 header `## \u003CTopic> (\u003CStage>)` found outside `# ALL TOPICS`:\n  - Compare `\u003CStage>` to the name of its enclosing H1\n  - Mismatch -> cut the entire H2 block (the header line through everything up to the\n    next H2 or H1) and move it under the H1 that matches `\u003CStage>`\n    - If an H2 with the same bare `\u003CTopic>` already exists under that H1, append the\n      moved block's task content there and drop the duplicate header line, instead of\n      creating a second header for the same topic\n    - Otherwise, insert the moved H2 block at the end of that H1's section (right\n      before the next H1 header)\n    - If `\u003CStage>` names an H1 that does not exist anywhere in the file, do not create\n      it silently: list the header and ask the user whether to create that stage or\n      use a different one\n  - Keep the moved block's content (task titles, markers, bodies) byte-for-byte\n    unchanged aside from its position\n  - Example: `## Noesis (BACKLOG - HIGH PRIORITY)` sitting under `# IN PROGRESS` is cut\n    and moved, with all its `### ...` tasks, under `# BACKLOG - HIGH PRIORITY`\n\n## Phase 2: Consolidate In-Progress Tasks\n\n- For every `### [.] \u003CTitle>` task anywhere in the file that is not already under\n  `# IN PROGRESS` (including one exposed by a Phase 1 move):\n  - Find its enclosing H2's bare topic name\n  - Move the task block (the header line through the next H2, H3, or H1) under\n    `## \u003CTopic> (IN PROGRESS)` in the `# IN PROGRESS` section\n    - If that H2 doesn't exist yet under `# IN PROGRESS`, create it at the end of the\n      section\n  - If the task's original H2 is left with no task content, remove the now-empty H2\n    header\n\n## Phase 3: Demote Not-Started Tasks Out of In Progress\n\n- For every `### [ ] \u003CTitle>` task that sits under `# IN PROGRESS` after Phase 1 and 2\n  have run:\n  - Find its enclosing H2's bare topic name\n  - Move the task block under `## \u003CTopic> (BACKLOG)` in the `# BACKLOG` section\n    - If that H2 doesn't exist yet under `# BACKLOG`, create it at the end of the\n      section\n  - If the task's original H2 under `# IN PROGRESS` is left with no task content,\n    remove the now-empty H2 header\n\n## Leave Untouched\n\n- `### [x] ...` tasks (handled by `todo.move_done`, not this skill)\n- Nested checklist items (`- [ ]`, `- [x]`, `- [.]`) inside a task body: these are\n  subtask progress, not task headers\n- Any H3 header with no `[ ]`, `[x]`, or `[.]` marker: flag it to the user instead of\n  guessing a marker for it\n- The `# ALL TOPICS` section\n\n## Ask User\n\n- Any H2 whose `(\u003CStage>)` suffix names a stage with no matching H1 in the file\n- Any H3 task header carrying a marker other than `[ ]`, `[x]`, or `[.]`\n- Any case where a task's bare topic name doesn't clearly match an existing H2 and it's\n  unclear whether to create a new topic H2 or reuse a close match\n- Do not guess: list the ambiguous item and ask before moving it\n\n## Report\n\n- List every H2 topic block moved as `\u003CTopic>: \u003Cold H1> -> \u003Cnew H1>`\n- List every `[.]` task moved into IN PROGRESS as\n  `\u003CTitle> (\u003Cold H2>) -> IN PROGRESS \u002F \u003CTopic>`\n- List every `[ ]` task demoted out of IN PROGRESS as `\u003CTitle> -> BACKLOG \u002F \u003CTopic>`\n- List every empty H2 header removed as a result of these moves\n\n# Verification\n\n- [ ] No `### [.] ...` task remains outside the `# IN PROGRESS` section\n- [ ] No `### [ ] ...` task remains under the `# IN PROGRESS` section\n- [ ] No H2 header outside `# ALL TOPICS` has a `(\u003CStage>)` suffix that mismatches its\n      enclosing H1\n- [ ] No H2 header is left empty (zero task content) after the moves\n- [ ] `### [x] ...` tasks and nested checklist items are unchanged and in their\n      original location\n- [ ] Task content (title, body) is unchanged aside from its position\n- [ ] `# ALL TOPICS` section is unchanged\n","# Goal\n\n- Move every `### [.] \u003CTitle>` task (in progress) into the `# IN PROGRESS` section,\n  under its topic's `(IN PROGRESS)` H2\n- Move every `### [ ] \u003CTitle>` task (not started) that sits under `# IN PROGRESS` into\n  `# BACKLOG`, under its topic's `(BACKLOG)` H2\n- Move any H2 topic header whose `(\u003CStage>)` suffix doesn't match its enclosing H1\n  stage to the H1 stage the suffix names, together with all its tasks\n- Leave `### [x] ...` tasks and nested checklist items (`- [ ]`, `- [x]`, `- [.]`)\n  untouched\n\n# References\n\n- `.claude\u002Fskills\u002Ftodo.rules.md`: defines the H1 stage \u002F H2 topic \u002F H3 task\n  organization and the `## \u003CTopic> (\u003CStage>)` header convention\n\n# Workflow\n\n## Load the Conventions\n\n- Read `.claude\u002Fskills\u002Ftodo.rules.md`\n- Identify the H1 stage headers present in `ai_task_queue.md` (e.g. `# IN PROGRESS`,\n  `# BACKLOG - HIGH PRIORITY`, `# BACKLOG`, `# ICEBOX`, `# ALL TOPICS`)\n- Never touch the `# ALL TOPICS` section in this skill\n\n## Phase 1: Refile Mislabeled H2 Topics\n\n- Do this phase first: fixing a misfiled topic before the task-marker rules run keeps\n  the topic's tasks together instead of letting Phase 2\u002F3 split them across stages\n- For every H2 header `## \u003CTopic> (\u003CStage>)` found outside `# ALL TOPICS`:\n  - Compare `\u003CStage>` to the name of its enclosing H1\n  - Mismatch -> cut the entire H2 block (the header line through everything up to the\n    next H2 or H1) and move it under the H1 that matches `\u003CStage>`\n    - If an H2 with the same bare `\u003CTopic>` already exists under that H1, append the\n      moved block's task content there and drop the duplicate header line, instead of\n      creating a second header for the same topic\n    - Otherwise, insert the moved H2 block at the end of that H1's section (right\n      before the next H1 header)\n    - If `\u003CStage>` names an H1 that does not exist anywhere in the file, do not create\n      it silently: list the header and ask the user whether to create that stage or\n      use a different one\n  - Keep the moved block's content (task titles, markers, bodies) byte-for-byte\n    unchanged aside from its position\n  - Example: `## Noesis (BACKLOG - HIGH PRIORITY)` sitting under `# IN PROGRESS` is cut\n    and moved, with all its `### ...` tasks, under `# BACKLOG - HIGH PRIORITY`\n\n## Phase 2: Consolidate In-Progress Tasks\n\n- For every `### [.] \u003CTitle>` task anywhere in the file that is not already under\n  `# IN PROGRESS` (including one exposed by a Phase 1 move):\n  - Find its enclosing H2's bare topic name\n  - Move the task block (the header line through the next H2, H3, or H1) under\n    `## \u003CTopic> (IN PROGRESS)` in the `# IN PROGRESS` section\n    - If that H2 doesn't exist yet under `# IN PROGRESS`, create it at the end of the\n      section\n  - If the task's original H2 is left with no task content, remove the now-empty H2\n    header\n\n## Phase 3: Demote Not-Started Tasks Out of In Progress\n\n- For every `### [ ] \u003CTitle>` task that sits under `# IN PROGRESS` after Phase 1 and 2\n  have run:\n  - Find its enclosing H2's bare topic name\n  - Move the task block under `## \u003CTopic> (BACKLOG)` in the `# BACKLOG` section\n    - If that H2 doesn't exist yet under `# BACKLOG`, create it at the end of the\n      section\n  - If the task's original H2 under `# IN PROGRESS` is left with no task content,\n    remove the now-empty H2 header\n\n## Leave Untouched\n\n- `### [x] ...` tasks (handled by `todo.move_done`, not this skill)\n- Nested checklist items (`- [ ]`, `- [x]`, `- [.]`) inside a task body: these are\n  subtask progress, not task headers\n- Any H3 header with no `[ ]`, `[x]`, or `[.]` marker: flag it to the user instead of\n  guessing a marker for it\n- The `# ALL TOPICS` section\n\n## Ask User\n\n- Any H2 whose `(\u003CStage>)` suffix names a stage with no matching H1 in the file\n- Any H3 task header carrying a marker other than `[ ]`, `[x]`, or `[.]`\n- Any case where a task's bare topic name doesn't clearly match an existing H2 and it's\n  unclear whether to create a new topic H2 or reuse a close match\n- Do not guess: list the ambiguous item and ask before moving it\n\n## Report\n\n- List every H2 topic block moved as `\u003CTopic>: \u003Cold H1> -> \u003Cnew H1>`\n- List every `[.]` task moved into IN PROGRESS as\n  `\u003CTitle> (\u003Cold H2>) -> IN PROGRESS \u002F \u003CTopic>`\n- List every `[ ]` task demoted out of IN PROGRESS as `\u003CTitle> -> BACKLOG \u002F \u003CTopic>`\n- List every empty H2 header removed as a result of these moves\n\n# Verification\n\n- [ ] No `### [.] ...` task remains outside the `# IN PROGRESS` section\n- [ ] No `### [ ] ...` task remains under the `# IN PROGRESS` section\n- [ ] No H2 header outside `# ALL TOPICS` has a `(\u003CStage>)` suffix that mismatches its\n      enclosing H1\n- [ ] No H2 header is left empty (zero task content) after the moves\n- [ ] `### [x] ...` tasks and nested checklist items are unchanged and in their\n      original location\n- [ ] Task content (title, body) is unchanged aside from its position\n- [ ] `# ALL TOPICS` section is unchanged\n",{"description":7},"master","804ae3e928c04740cec553be0eb28c8d06ff420e",".claude\u002Fskills\u002Ftodo.reorg_in_progress",1,"https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers","https:\u002F\u002Fcausify-ai.github.io\u002Fhelpers\u002F","https:\u002F\u002Fgithub.com\u002Fcausify-ai","2026-11-02 21:54:29",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":51},[41,44,47],{"tool":42,"command":43},"npx","npx skills add causify-ai\u002Fhelpers --skill todo.reorg_in_progress",{"tool":45,"command":46},"bunx","bunx skills add causify-ai\u002Fhelpers --skill todo.reorg_in_progress",{"tool":48,"command":49},"pnpm","pnpm dlx skills add causify-ai\u002Fhelpers --skill todo.reorg_in_progress","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_in_progress\u002FSKILL.md",true,[],[54,76,94,106,115,123],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":65,"publishedAt":26},"01M6F209RASRBEK7GBNG5M00K0","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",[60],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[66,67,68,69,70,71,72,73,74,75],"docker","tutorial","propagate","tutorial in 60 mins propagate docker changes","match","project","files","haiku","sync","template",{"skillNo":77,"name":78,"nameZh":6,"description":79,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":85,"publishedAt":26},"01M6F207XZ5YDAJ0KNDRE6EN0R","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",[82],{"categoryNo":83,"categoryName":84,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000002","文档处理",[86,87,67,88,89,73,90,91,92,93],"merge","markdown","tutorial in 60 mins merge markdown","file","jupyter","notebook","content","jupyter notebook",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":26},"01M6F2059X95Q1A13HD67E9JRF","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",[],[101,67,102,103,104,73,105],"tutorial in 60 mins format","format","directory","learn","conventions",{"skillNo":107,"name":108,"nameZh":6,"description":109,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":110,"categories":111,"keywords":112,"publishedAt":26},"01M6F202MDHMNYD5S1YHG2PKZD","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",[],[113,67,114,103,104,105],"tutorial in 60 mins create","create",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":26},"01M6F1ZXN0G6HBD08GT8HE5FYA","todo.reorg_headers","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","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_headers\u002FSKILL.md",[],[20,122,23,24,25],"todo reorg headers",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":26},"01M6F1ZV3QA9HE633FSASB7CJB","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",[],[130,131,20,22,132,133,23,24,25],"todo move to reorg","move","confirmation","user"]