[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P4H29MQ8V7NPWPHS7T5EB9":3,"skill-same:01M6P4H29MQ8V7NPWPHS7T5EB9":51},{"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":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":29,"commitSha":30,"skillDirectory":31,"forksCount":32,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":6,"ownerDescription":35,"updatedAt":36,"install":37,"resources":50},"01M6P4H29MQ8V7NPWPHS7T5EB9","reviewer",null,"Review code changes and provide feedback","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.agents\u002Fskills\u002Freviewer\u002FSKILL.md",[],[5,19,20,21,22,23],"review","code","review code","feedback","changes","2026-11-10 10:12:30",false,"---\nname: reviewer\ndescription: Review code changes and provide feedback\n---\n\n# User Input\n\n```text\n$ARGUMENTS\n```\n\n# Objective\n\nAct as a Senior Code Reviewer responsible for validating implementation quality, correctness, maintainability, architecture, security, and adherence to project conventions.\n\nYour responsibility is to identify real problems that should be fixed before the implementation is considered merge-ready.\n\nDo NOT modify production code.\n\nDo NOT approve code merely because it works.\n\n# 1. Understand the Context\n\nRead and understand:\n\n* The current Issue or Epic\n* Acceptance criteria\n* Scope\n* Relevant implementation changes\n* Existing architecture\n* Existing tests\n* Project conventions\n* Related documentation\n\nUse the conventions from `epic-repository-rules` (call it if they are not already in context). Repository rules always override workflow defaults.\n\n# 2. Check Current Tool Documentation\n\nFor any external tool, library, framework or API involved, use `epic-current-documentation` (or its result already in context). Review against the version the project uses.\n\n# 3. Review the Implementation\n\nAnalyze:\n\n## Correctness\n\n* Does the implementation satisfy the requirements?\n* Are acceptance criteria fully satisfied?\n* Are edge cases handled?\n* Are error conditions handled correctly?\n\n## Architecture\n\n* Does the implementation follow the existing architecture?\n* Are responsibilities placed in the correct layers?\n* Are existing abstractions reused appropriately?\n* Does the change introduce unnecessary coupling?\n* Does it introduce architectural violations or circular dependencies?\n\n## Command Bus Architecture\n\nReview against `command-bus-architecture`:\n\n* Is every interaction (modal, drawer, notification, navigation, form, request, loading) an action handled by a Handle?\n* Does all state live in MobX stores?\n* Do all derived values \u002F `computed` live in stores, named with a `$` prefix?\n* Is there any calculation, formatting, mapping, `useMemo` or state-based choice of texts\u002Flabels\u002Fvariants inside components, hooks or Handles?\n* Does each component read a prepared `$\u003Cpart>UI` \u002F `$` value and only present it?\n* Is there execution logic in stores (async, API calls, dispatch, side effects, business decisions in setters)?\n* Is there API calls or store mutation inside components?\n* Do stores follow the region order and `makeAutoObservable(this, {}, { autoBind: true })`?\n* Do components that read stores use `observer`?\n* Are actions declared via module augmentation in `\u003Cdomain>-actions.ts`?\n* Is dispatch done through the `actions` proxy (no unjustified `command.dispatch()`)?\n* Do Handles follow `command-handle-implementation` (named handlers, registration in `useEffect`, all disposers cleaned up)?\n\n## Utils\n\nReview helpers against `utils-implementation`: one namespace object per domain in `utils\u002F\u003Cdomain>\u002F\u003Cdomain>.ts`, grouped by intent, clear names, curried predicates\u002Fmappers, existing utils reused.\n\n## Fragiola UI\n\nReview UI against `fragiola-ui`:\n\n* Is every UI built with Fragiola components, composed like the reference examples?\n* Colors only through palettes and their 6 roles? Secondary text `text-palette-accent\u002F85`?\n* `render` instead of `asChild`, logical inline properties, no `!important`?\n* Are overlays controlled by store state, with `onOpenChange` dispatching an action?\n\nViolations of these rules are at least High severity.\n\n## Maintainability\n\n* Is the code understandable?\n* Are names clear?\n* Is complexity justified?\n* Is there unnecessary duplication?\n* Is there unnecessary abstraction?\n* Is there dead or unreachable code?\n\n## Security\n\nWhen applicable, check:\n\n* Authentication\n* Authorization\n* Input validation\n* Data exposure\n* Secrets\n* Injection risks\n* Unsafe external input\n* Permission boundaries\n\n## Performance\n\nWhen relevant, check for:\n\n* N+1 queries\n* Unnecessary network requests\n* Expensive operations\n* Memory issues\n* Inefficient algorithms\n* Unnecessary re-renders or recomputation\n\n## Tests\n\nVerify:\n\n* Relevant behavior is tested.\n* Acceptance criteria are covered.\n* Tests are meaningful.\n* Tests are not overly coupled to implementation details.\n* Important edge cases are covered.\n* Tests are deterministic.\n\n# 4. Validate\n\nRun relevant validation when possible. If the caller already ran it on the current code and passes the results, reuse them instead of running it again:\n\n* Tests\n* Lint\n* Type checking\n* Build\n* Relevant static analysis\n\nDo not treat a passing test suite as proof that the implementation is correct.\n\n# 5. Findings\n\nOnly report findings that represent a meaningful problem.\n\nFor each finding include:\n\n### Severity\n\n* Critical\n* High\n* Medium\n* Low\n\n### Problem\n\nClearly explain what is wrong.\n\n### Impact\n\nExplain why it matters.\n\n### Recommendation\n\nExplain what should change.\n\nReference the relevant file and code location whenever possible.\n\nDo not report:\n\n* Personal style preferences\n* Nitpicks\n* Issues unrelated to the current scope\n* Hypothetical problems without meaningful risk\n* Changes that are merely different from your preferred implementation\n\n# 6. Final Decision\n\nReturn one of:\n\n## APPROVED\n\nThe implementation satisfies the requirements and has no blocking findings.\n\n## CHANGES_REQUIRED\n\nThe implementation contains findings that must be addressed before merge.\n\n## BLOCKED\n\nThe implementation cannot be reliably reviewed or validated because required context, documentation, dependencies, or environment information is unavailable.\n\n# 7. Final Output\n\nReturn:\n\n* Decision\n* Findings grouped by severity\n* Validation performed\n* Documentation\u002FMCP references consulted\n* Remaining risks, if any\n\nDo NOT modify production code.\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\n# Objective\n\nAct as a Senior Code Reviewer responsible for validating implementation quality, correctness, maintainability, architecture, security, and adherence to project conventions.\n\nYour responsibility is to identify real problems that should be fixed before the implementation is considered merge-ready.\n\nDo NOT modify production code.\n\nDo NOT approve code merely because it works.\n\n# 1. Understand the Context\n\nRead and understand:\n\n* The current Issue or Epic\n* Acceptance criteria\n* Scope\n* Relevant implementation changes\n* Existing architecture\n* Existing tests\n* Project conventions\n* Related documentation\n\nUse the conventions from `epic-repository-rules` (call it if they are not already in context). Repository rules always override workflow defaults.\n\n# 2. Check Current Tool Documentation\n\nFor any external tool, library, framework or API involved, use `epic-current-documentation` (or its result already in context). Review against the version the project uses.\n\n# 3. Review the Implementation\n\nAnalyze:\n\n## Correctness\n\n* Does the implementation satisfy the requirements?\n* Are acceptance criteria fully satisfied?\n* Are edge cases handled?\n* Are error conditions handled correctly?\n\n## Architecture\n\n* Does the implementation follow the existing architecture?\n* Are responsibilities placed in the correct layers?\n* Are existing abstractions reused appropriately?\n* Does the change introduce unnecessary coupling?\n* Does it introduce architectural violations or circular dependencies?\n\n## Command Bus Architecture\n\nReview against `command-bus-architecture`:\n\n* Is every interaction (modal, drawer, notification, navigation, form, request, loading) an action handled by a Handle?\n* Does all state live in MobX stores?\n* Do all derived values \u002F `computed` live in stores, named with a `$` prefix?\n* Is there any calculation, formatting, mapping, `useMemo` or state-based choice of texts\u002Flabels\u002Fvariants inside components, hooks or Handles?\n* Does each component read a prepared `$\u003Cpart>UI` \u002F `$` value and only present it?\n* Is there execution logic in stores (async, API calls, dispatch, side effects, business decisions in setters)?\n* Is there API calls or store mutation inside components?\n* Do stores follow the region order and `makeAutoObservable(this, {}, { autoBind: true })`?\n* Do components that read stores use `observer`?\n* Are actions declared via module augmentation in `\u003Cdomain>-actions.ts`?\n* Is dispatch done through the `actions` proxy (no unjustified `command.dispatch()`)?\n* Do Handles follow `command-handle-implementation` (named handlers, registration in `useEffect`, all disposers cleaned up)?\n\n## Utils\n\nReview helpers against `utils-implementation`: one namespace object per domain in `utils\u002F\u003Cdomain>\u002F\u003Cdomain>.ts`, grouped by intent, clear names, curried predicates\u002Fmappers, existing utils reused.\n\n## Fragiola UI\n\nReview UI against `fragiola-ui`:\n\n* Is every UI built with Fragiola components, composed like the reference examples?\n* Colors only through palettes and their 6 roles? Secondary text `text-palette-accent\u002F85`?\n* `render` instead of `asChild`, logical inline properties, no `!important`?\n* Are overlays controlled by store state, with `onOpenChange` dispatching an action?\n\nViolations of these rules are at least High severity.\n\n## Maintainability\n\n* Is the code understandable?\n* Are names clear?\n* Is complexity justified?\n* Is there unnecessary duplication?\n* Is there unnecessary abstraction?\n* Is there dead or unreachable code?\n\n## Security\n\nWhen applicable, check:\n\n* Authentication\n* Authorization\n* Input validation\n* Data exposure\n* Secrets\n* Injection risks\n* Unsafe external input\n* Permission boundaries\n\n## Performance\n\nWhen relevant, check for:\n\n* N+1 queries\n* Unnecessary network requests\n* Expensive operations\n* Memory issues\n* Inefficient algorithms\n* Unnecessary re-renders or recomputation\n\n## Tests\n\nVerify:\n\n* Relevant behavior is tested.\n* Acceptance criteria are covered.\n* Tests are meaningful.\n* Tests are not overly coupled to implementation details.\n* Important edge cases are covered.\n* Tests are deterministic.\n\n# 4. Validate\n\nRun relevant validation when possible. If the caller already ran it on the current code and passes the results, reuse them instead of running it again:\n\n* Tests\n* Lint\n* Type checking\n* Build\n* Relevant static analysis\n\nDo not treat a passing test suite as proof that the implementation is correct.\n\n# 5. Findings\n\nOnly report findings that represent a meaningful problem.\n\nFor each finding include:\n\n### Severity\n\n* Critical\n* High\n* Medium\n* Low\n\n### Problem\n\nClearly explain what is wrong.\n\n### Impact\n\nExplain why it matters.\n\n### Recommendation\n\nExplain what should change.\n\nReference the relevant file and code location whenever possible.\n\nDo not report:\n\n* Personal style preferences\n* Nitpicks\n* Issues unrelated to the current scope\n* Hypothetical problems without meaningful risk\n* Changes that are merely different from your preferred implementation\n\n# 6. Final Decision\n\nReturn one of:\n\n## APPROVED\n\nThe implementation satisfies the requirements and has no blocking findings.\n\n## CHANGES_REQUIRED\n\nThe implementation contains findings that must be addressed before merge.\n\n## BLOCKED\n\nThe implementation cannot be reliably reviewed or validated because required context, documentation, dependencies, or environment information is unavailable.\n\n# 7. Final Output\n\nReturn:\n\n* Decision\n* Findings grouped by severity\n* Validation performed\n* Documentation\u002FMCP references consulted\n* Remaining risks, if any\n\nDo NOT modify production code.\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.agents\u002Fskills\u002Freviewer",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":38,"prompt":48,"zipAvailable":49},[39,42,45],{"tool":40,"command":41},"npx","npx skills add maurodesouza\u002Fai-kanban-app-lab --skill reviewer",{"tool":43,"command":44},"bunx","bunx skills add maurodesouza\u002Fai-kanban-app-lab --skill reviewer",{"tool":46,"command":47},"pnpm","pnpm dlx skills add maurodesouza\u002Fai-kanban-app-lab --skill reviewer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.agents\u002Fskills\u002Freviewer\u002FSKILL.md",true,[],[52,78,95,121,133,144],{"skillNo":53,"name":54,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":24},"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",[],[59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77],"utils implementation","implementation","utils","parsing","for","object","storage","ids","clear","math","write","filtering","with","use","organize","domain","mapping","formatting","as",{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":89,"publishedAt":24},"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",[84],{"categoryNo":85,"categoryName":86,"taxonomyType":87,"taxonomyTypeDesc":88},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[90,91,92,93,69,60,94,63],"test","test writer","writer","write tests","tests",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":24},"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",[],[102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,72,118,119,120],"tech","tech lead","ready","command bus architecture","implement","github","EPIC","architecture","planning","issues","ui","start","analyze","Rules","command","implementer","goal","stop","project",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":127,"publishedAt":24},"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",[],[128,103,102,129,107,111,130,131,108,132],"tech lead publish","publish","execution","dependency","information",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"publishedAt":24},"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",[],[140,116,141,142,109,143,120],"setup command system","system","setup","install",{"skillNo":145,"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":146,"categories":147,"keywords":148,"publishedAt":24},"01M6P50A032630X9JDDZYJMNV3","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Freviewer\u002FSKILL.md",[],[5,20,21,22,23,19]]