[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P4MHT8YHN2W5CAN9YREB2F":3,"skill-same:01M6P4MHT8YHN2W5CAN9YREB2F":61},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":42,"repositoryHtmlUrl":43,"repositoryHomepageUrl":6,"ownerHtmlUrl":44,"ownerBlogUrl":6,"ownerDescription":45,"updatedAt":46,"install":47,"resources":60},"01M6P4MHT8YHN2W5CAN9YREB2F","epic-cleanup",null,"After an Epic pull request is merged, delete the remote branch, the local branch and the Epic worktree, leaving local and remote clean. Sub-skill of epic-implementer.","maurodesouza\u002Fai-kanban-app-lab","maurodesouza","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54520907?v=4","01M6P3VA3WVQC4XZ0RQWJCDKW6","Mauro de Souza","01M6P3VA7YK770SNWT12GBEGAF",1,"MIT","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.claude\u002Fskills\u002Fepic-cleanup\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"cleanup","EPIC","epic cleanup","pull request","delete","pull","worktree","branch","implementer","clean","local","remote","request","epic pull request","epic worktree","2026-11-10 10:12:30",false,"---\nname: epic-cleanup\ndescription: After an Epic pull request is merged, delete the remote branch, the local branch and the Epic worktree, leaving local and remote clean. Sub-skill of epic-implementer.\n---\n\n# User Input\n\n```text\n$ARGUMENTS\n```\n\nThe input must contain the pull request number, the Epic branch name and the worktree path.\n\n# Objective\n\nRemove every resource created for the Epic once its pull request is merged.\n\n# 1. Precondition\n\nConfirm the pull request state is `MERGED` (`gh pr view \u003Cpr> --json state`).\n\nIf it is not merged, do nothing and return `SKIPPED`. Never clean up an unmerged Epic.\n\n# 2. Leave the Worktree\n\nRun every following command from the main repository checkout, never from inside the Epic worktree.\n\nDo not switch branches or pull in the main checkout: it may hold the user's own work. Only run `git fetch origin`.\n\n# 3. Remove the Worktree\n\n1. Confirm the worktree has no uncommitted or unpushed changes. If it has, stop and report `BLOCKED` instead of discarding work.\n2. `git worktree remove \u003Cworktree-path>`\n3. `git worktree prune`\n\nThe worktree must be removed before the local branch, because a branch checked out in a worktree cannot be deleted.\n\n# 4. Delete the Local Branch\n\n1. `git branch -d \u003Cbranch>`\n2. If it fails because the branch is not merged into the current `HEAD` (the main checkout may be on another branch, or the merge was a squash\u002Frebase) and section 1 confirmed `MERGED`, use `git branch -D \u003Cbranch>`.\n\n# 5. Delete the Remote Branch\n\n1. If the branch still exists on the remote, `git push origin --delete \u003Cbranch>`.\n2. `git fetch --prune`\n\nA remote branch already deleted by GitHub is not an error.\n\n# 6. Verify\n\nConfirm that:\n\n* `git worktree list` no longer shows the Epic worktree.\n* `git branch --list \u003Cbranch>` is empty.\n* `git ls-remote --heads origin \u003Cbranch>` is empty.\n* The worktree directory no longer exists.\n\n# 7. Final Output\n\nReturn:\n\n* Decision: `CLEANED`, `SKIPPED` (not merged) or `BLOCKED`\n* Worktree removed\n* Local branch deleted\n* Remote branch deleted\n\nReturn this output to the calling skill and continue its flow. Do not end the run here unless this skill was invoked directly by the user.\n","# User Input\n\n```text\n$ARGUMENTS\n```\n\nThe input must contain the pull request number, the Epic branch name and the worktree path.\n\n# Objective\n\nRemove every resource created for the Epic once its pull request is merged.\n\n# 1. Precondition\n\nConfirm the pull request state is `MERGED` (`gh pr view \u003Cpr> --json state`).\n\nIf it is not merged, do nothing and return `SKIPPED`. Never clean up an unmerged Epic.\n\n# 2. Leave the Worktree\n\nRun every following command from the main repository checkout, never from inside the Epic worktree.\n\nDo not switch branches or pull in the main checkout: it may hold the user's own work. Only run `git fetch origin`.\n\n# 3. Remove the Worktree\n\n1. Confirm the worktree has no uncommitted or unpushed changes. If it has, stop and report `BLOCKED` instead of discarding work.\n2. `git worktree remove \u003Cworktree-path>`\n3. `git worktree prune`\n\nThe worktree must be removed before the local branch, because a branch checked out in a worktree cannot be deleted.\n\n# 4. Delete the Local Branch\n\n1. `git branch -d \u003Cbranch>`\n2. If it fails because the branch is not merged into the current `HEAD` (the main checkout may be on another branch, or the merge was a squash\u002Frebase) and section 1 confirmed `MERGED`, use `git branch -D \u003Cbranch>`.\n\n# 5. Delete the Remote Branch\n\n1. If the branch still exists on the remote, `git push origin --delete \u003Cbranch>`.\n2. `git fetch --prune`\n\nA remote branch already deleted by GitHub is not an error.\n\n# 6. Verify\n\nConfirm that:\n\n* `git worktree list` no longer shows the Epic worktree.\n* `git branch --list \u003Cbranch>` is empty.\n* `git ls-remote --heads origin \u003Cbranch>` is empty.\n* The worktree directory no longer exists.\n\n# 7. Final Output\n\nReturn:\n\n* Decision: `CLEANED`, `SKIPPED` (not merged) or `BLOCKED`\n* Worktree removed\n* Local branch deleted\n* Remote branch deleted\n\nReturn this output to the calling skill and continue its flow. Do not end the run here unless this skill was invoked directly by the user.\n",{"name":5,"description":7},"main","6f1867f215cf86d20099b6dfb1164c79abfb87ce","lab-10\u002F.claude\u002Fskills\u002Fepic-cleanup",0,"https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab","https:\u002F\u002Fgithub.com\u002Fmaurodesouza","Software Engineer","2026-10-28 02:01:00",{"source":8,"skillName":5,"commands":48,"prompt":58,"zipAvailable":59},[49,52,55],{"tool":50,"command":51},"npx","npx skills add maurodesouza\u002Fai-kanban-app-lab --skill epic-cleanup",{"tool":53,"command":54},"bunx","bunx skills add maurodesouza\u002Fai-kanban-app-lab --skill epic-cleanup",{"tool":56,"command":57},"pnpm","pnpm dlx skills add maurodesouza\u002Fai-kanban-app-lab --skill epic-cleanup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.claude\u002Fskills\u002Fepic-cleanup\u002FSKILL.md",true,[],[62,88,105,129,141,152],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":34},"01M6P519M13JTBZDK3ZJP48P2C","utils-implementation","Write and organize utils (pure helpers for formatting, mapping, filtering, math, parsing, ids, storage) as one namespace object per domain with clear, readable names. Use before creating or changing any util.","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Futils-implementation\u002FSKILL.md",[],[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87],"utils implementation","implementation","utils","parsing","for","object","storage","ids","clear","math","write","filtering","with","use","organize","domain","mapping","formatting","as",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":99,"publishedAt":34},"01M6P516BP8GPRJHPGVFWRF5T8","test-writer","Write tests for the current implementation","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftest-writer\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[100,101,102,103,79,70,104,73],"test","test writer","writer","write tests","tests",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":34},"01M6P50M0Z2AQH32ZTV90D5V32","tech-lead","Analyze a project, turn the user's goal into an implementation-ready GitHub Epic and Issues (following project rules, the Command Bus architecture and Fragiola UI), then start epic-implementer automatically (use the no-implement flag to stop after planning).","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftech-lead\u002FSKILL.md",[],[112,113,114,115,116,117,20,118,119,120,121,122,123,124,125,27,82,126,127,128],"tech","tech lead","ready","command bus architecture","implement","github","architecture","planning","issues","ui","start","analyze","Rules","command","goal","stop","project",{"skillNo":130,"name":131,"nameZh":6,"description":132,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":135,"publishedAt":34},"01M6P50GND99S9QQY6KWPP6NW9","tech-lead-publish","Publish a final Epic and its Issues to GitHub, linked and labeled, keeping dependency and execution information. Sub-skill of tech-lead.","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftech-lead-publish\u002FSKILL.md",[],[136,113,112,137,117,120,138,139,20,140],"tech lead publish","publish","execution","dependency","information",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":34},"01M6P50D4P2SQSYZM7TZMHZA0J","setup-command-system","Install the Command System architecture in the project","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Fsetup-command-system\u002FSKILL.md",[],[148,125,149,150,118,151,128],"setup command system","system","setup","install",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":34},"01M6P50A032630X9JDDZYJMNV3","reviewer","Review code changes and provide feedback","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Freviewer\u002FSKILL.md",[],[154,159,160,161,162,163],"code","review code","feedback","changes","review"]