[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P45MCSV1J77DXA661YXRJ4":3,"skill-same:01M6P45MCSV1J77DXA661YXRJ4":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},"01M6P45MCSV1J77DXA661YXRJ4","epic-commit-progressively",null,"Create atomic commits (one coherent change each, balanced granularity) with emoji messages for the current Epic progress. 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-09\u002F.agents\u002Fskills\u002Fepic-commit-progressively\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"commit","EPIC","epic commit progressively","change","create","messages","commits","atomic commits","implementer","coherent","emoji","progress","with","atomic","for","2026-11-10 10:12:30",false,"---\nname: epic-commit-progressively\ndescription: Create atomic commits (one coherent change each, balanced granularity) with emoji messages for the current Epic progress. Sub-skill of epic-implementer.\n---\n\n# User Input\n\n```text\n$ARGUMENTS\n```\n\nThe input must contain the worktree path, the Issue being worked on and the commit convention from `epic-repository-rules`.\n\n# Objective\n\nCommit the current changes as **atomic commits**: each commit is one coherent unit of change, with balanced granularity.\n\n# 1. Group Changes\n\nOne commit = one change that makes sense on its own: someone reading only that commit understands what changed and why.\n\n* Group by intent, not by file type. A domain's actions, Handle, store and the components using them go together when they deliver one behavior.\n* Tests go in the same commit as the code they cover.\n* Each commit builds and keeps the tests passing.\n\nBalance:\n\n* **Too small** - a commit that cannot be understood or built alone (only types, only an import, one file of a feature split from the rest). Merge it into the change it belongs to.\n* **Too big** - a commit that needs \"and\" to join unrelated changes (a feature and an unrelated refactor, two independent features). Split it.\n* Usually one to a few commits per Issue. Do not create a commit per file or per small step.\n\n# 2. Message\n\nFollow the commit convention from repository rules.\n\nIf none exists, use:\n\n```text\n\u003Cemoji> \u003Ctype>: \u003Cshort description in imperative, lowercase>\n\n- optional bullet explaining a relevant detail or why\n```\n\n* The emoji is free: pick one that represents the intent of this commit (e.g. ✨ new feature, ? fix, ♻️ refactor, ✅ tests, ? style, ? config). The examples are not a fixed list.\n* `\u003Ctype>` is a Conventional Commits type (`feat`, `fix`, `refactor`, `test`, `style`, `chore`, `docs`, `perf`).\n* Reference the Issue number when the convention allows it.\n\n# 3. Rules\n\n* Do not commit unrelated changes.\n* Do not commit generated files, secrets or local config unless the repository tracks them.\n* Do not amend or rewrite commits already pushed.\n\n# 4. Final Output\n\nReturn:\n\n* Commits created (hash + message)\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 worktree path, the Issue being worked on and the commit convention from `epic-repository-rules`.\n\n# Objective\n\nCommit the current changes as **atomic commits**: each commit is one coherent unit of change, with balanced granularity.\n\n# 1. Group Changes\n\nOne commit = one change that makes sense on its own: someone reading only that commit understands what changed and why.\n\n* Group by intent, not by file type. A domain's actions, Handle, store and the components using them go together when they deliver one behavior.\n* Tests go in the same commit as the code they cover.\n* Each commit builds and keeps the tests passing.\n\nBalance:\n\n* **Too small** - a commit that cannot be understood or built alone (only types, only an import, one file of a feature split from the rest). Merge it into the change it belongs to.\n* **Too big** - a commit that needs \"and\" to join unrelated changes (a feature and an unrelated refactor, two independent features). Split it.\n* Usually one to a few commits per Issue. Do not create a commit per file or per small step.\n\n# 2. Message\n\nFollow the commit convention from repository rules.\n\nIf none exists, use:\n\n```text\n\u003Cemoji> \u003Ctype>: \u003Cshort description in imperative, lowercase>\n\n- optional bullet explaining a relevant detail or why\n```\n\n* The emoji is free: pick one that represents the intent of this commit (e.g. ✨ new feature, ? fix, ♻️ refactor, ✅ tests, ? style, ? config). The examples are not a fixed list.\n* `\u003Ctype>` is a Conventional Commits type (`feat`, `fix`, `refactor`, `test`, `style`, `chore`, `docs`, `perf`).\n* Reference the Issue number when the convention allows it.\n\n# 3. Rules\n\n* Do not commit unrelated changes.\n* Do not commit generated files, secrets or local config unless the repository tracks them.\n* Do not amend or rewrite commits already pushed.\n\n# 4. Final Output\n\nReturn:\n\n* Commits created (hash + message)\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-09\u002F.agents\u002Fskills\u002Fepic-commit-progressively",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-commit-progressively",{"tool":53,"command":54},"bunx","bunx skills add maurodesouza\u002Fai-kanban-app-lab --skill epic-commit-progressively",{"tool":56,"command":57},"pnpm","pnpm dlx skills add maurodesouza\u002Fai-kanban-app-lab --skill epic-commit-progressively","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-09\u002F.agents\u002Fskills\u002Fepic-commit-progressively\u002FSKILL.md",true,[],[62,86,103,127,139,150],{"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,33,73,74,75,76,77,78,79,31,80,81,82,83,84,85],"utils implementation","implementation","utils","parsing","object","storage","ids","clear","math","write","filtering","use","organize","domain","mapping","formatting","as",{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":97,"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",[92],{"categoryNo":93,"categoryName":94,"taxonomyType":95,"taxonomyTypeDesc":96},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[98,99,100,101,78,70,102,33],"test","test writer","writer","write tests","tests",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"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",[],[110,111,112,113,114,115,20,116,117,118,119,120,121,122,123,27,80,124,125,126],"tech","tech lead","ready","command bus architecture","implement","github","architecture","planning","issues","ui","start","analyze","Rules","command","goal","stop","project",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"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",[],[134,111,110,135,115,118,136,137,20,138],"tech lead publish","publish","execution","dependency","information",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"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",[],[146,123,147,148,116,149,126],"setup command system","system","setup","install",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"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",[],[152,157,158,159,160,161],"code","review code","feedback","changes","review"]