[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P4J5C3GS9FZ1AQTSSW9P8M":3,"skill-same:01M6P4J5C3GS9FZ1AQTSSW9P8M":59},{"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":23,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":43,"updatedAt":44,"install":45,"resources":58},"01M6P4J5C3GS9FZ1AQTSSW9P8M","test-writer",null,"Write tests for the current implementation","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\u002Ftest-writer\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31],"test","test writer","writer","write tests","write","implementation","tests","for","2026-11-10 10:12:30",false,"---\nname: test-writer\ndescription: Write tests for the current implementation\n---\n\n# User Input\n\n```text\n$ARGUMENTS\n```\n\n# Objective\n\nAct as a Senior Test Engineer responsible for creating and maintaining automated tests for the current implementation.\n\nYour responsibility is to ensure the implemented behavior is correctly covered by reliable, maintainable tests.\n\nDo NOT implement production functionality unless a minimal change is strictly required to make the tests possible.\n\n# 1. Understand the Context\n\nRead and understand:\n\n* The current Issue or Epic\n* Acceptance criteria\n* Relevant implementation changes\n* Existing tests\n* Test conventions\n* Project architecture\n* Testing tools and frameworks\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. Current Tool Documentation\n\nBefore using or installing any testing tool or library, use `epic-current-documentation` (or its result already in context).\n\n# 3. Analyze Test Coverage\n\nBefore writing tests:\n\n1. Identify the behavior introduced or changed.\n2. Identify existing tests covering that behavior.\n3. Identify important untested paths.\n4. Identify edge cases and failure scenarios.\n5. Avoid duplicating existing coverage.\n\nPrioritize tests that protect actual business behavior and acceptance criteria.\n\n# 4. Write Tests\n\nCreate or update tests appropriate to the project.\n\nPrefer:\n\n* Unit tests for isolated business logic.\n* Integration tests for component interactions.\n* API tests for API behavior.\n* E2E tests for critical user flows.\n\nFollow the existing project's testing patterns.\n\nTests should be:\n\n* Deterministic\n* Readable\n* Maintainable\n* Focused\n* Independent\n* Fast when possible\n\nDo not over-mock the system.\n\nPrefer testing observable behavior over implementation details.\n\n## Command Bus\n\nFollow `command-bus-architecture`. Business behavior lives in Handles, so:\n\n* Test stores in `store\u002Fstore.test.ts`: set primitives through setters and assert every `$` derived value, especially `$\u003Cpart>UI` presentation values for each state.\n* Test Handles by mounting them, dispatching through `actions` and asserting the resulting MobX store state and dispatched actions.\n* Test components by asserting they render the values from `$\u003Cpart>UI` and dispatch the expected actions.\n* Always unmount Handles between tests so registrations are disposed.\n\n# 5. Test Scenarios\n\nCover, when applicable:\n\n* Happy paths\n* Validation\n* Error handling\n* Boundary conditions\n* Important edge cases\n* Regression scenarios\n* Authorization or permission behavior\n* Relevant integration behavior\n\nDo not create tests for hypothetical scenarios with no meaningful product or technical value.\n\n# 6. Run Tests\n\nRun the relevant test suite.\n\nIf tests fail:\n\n1. Determine whether the failure is caused by the implementation or the test.\n2. Fix the test when the test is incorrect.\n3. Report implementation defects to the caller instead of modifying production behavior unnecessarily.\n\nDo not weaken or remove a test simply to make the suite pass.\n\n# 7. Validate Test Quality\n\nBefore finishing, verify:\n\n* Tests pass.\n* Tests actually exercise the intended behavior.\n* No important acceptance criterion is left untested when testing is applicable.\n* No unnecessary duplicate tests were created.\n* Tests follow repository conventions.\n* Tests do not depend on execution order.\n* Tests do not rely on unstable external state.\n\n# 8. Final Output\n\nReturn:\n\n* Tests created or modified\n* Behaviors covered\n* Test commands executed\n* Test results\n* Any implementation defects discovered\n\nDo not modify unrelated tests.\n\nDo not implement unrelated 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\n","# User Input\n\n```text\n$ARGUMENTS\n```\n\n# Objective\n\nAct as a Senior Test Engineer responsible for creating and maintaining automated tests for the current implementation.\n\nYour responsibility is to ensure the implemented behavior is correctly covered by reliable, maintainable tests.\n\nDo NOT implement production functionality unless a minimal change is strictly required to make the tests possible.\n\n# 1. Understand the Context\n\nRead and understand:\n\n* The current Issue or Epic\n* Acceptance criteria\n* Relevant implementation changes\n* Existing tests\n* Test conventions\n* Project architecture\n* Testing tools and frameworks\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. Current Tool Documentation\n\nBefore using or installing any testing tool or library, use `epic-current-documentation` (or its result already in context).\n\n# 3. Analyze Test Coverage\n\nBefore writing tests:\n\n1. Identify the behavior introduced or changed.\n2. Identify existing tests covering that behavior.\n3. Identify important untested paths.\n4. Identify edge cases and failure scenarios.\n5. Avoid duplicating existing coverage.\n\nPrioritize tests that protect actual business behavior and acceptance criteria.\n\n# 4. Write Tests\n\nCreate or update tests appropriate to the project.\n\nPrefer:\n\n* Unit tests for isolated business logic.\n* Integration tests for component interactions.\n* API tests for API behavior.\n* E2E tests for critical user flows.\n\nFollow the existing project's testing patterns.\n\nTests should be:\n\n* Deterministic\n* Readable\n* Maintainable\n* Focused\n* Independent\n* Fast when possible\n\nDo not over-mock the system.\n\nPrefer testing observable behavior over implementation details.\n\n## Command Bus\n\nFollow `command-bus-architecture`. Business behavior lives in Handles, so:\n\n* Test stores in `store\u002Fstore.test.ts`: set primitives through setters and assert every `$` derived value, especially `$\u003Cpart>UI` presentation values for each state.\n* Test Handles by mounting them, dispatching through `actions` and asserting the resulting MobX store state and dispatched actions.\n* Test components by asserting they render the values from `$\u003Cpart>UI` and dispatch the expected actions.\n* Always unmount Handles between tests so registrations are disposed.\n\n# 5. Test Scenarios\n\nCover, when applicable:\n\n* Happy paths\n* Validation\n* Error handling\n* Boundary conditions\n* Important edge cases\n* Regression scenarios\n* Authorization or permission behavior\n* Relevant integration behavior\n\nDo not create tests for hypothetical scenarios with no meaningful product or technical value.\n\n# 6. Run Tests\n\nRun the relevant test suite.\n\nIf tests fail:\n\n1. Determine whether the failure is caused by the implementation or the test.\n2. Fix the test when the test is incorrect.\n3. Report implementation defects to the caller instead of modifying production behavior unnecessarily.\n\nDo not weaken or remove a test simply to make the suite pass.\n\n# 7. Validate Test Quality\n\nBefore finishing, verify:\n\n* Tests pass.\n* Tests actually exercise the intended behavior.\n* No important acceptance criterion is left untested when testing is applicable.\n* No unnecessary duplicate tests were created.\n* Tests follow repository conventions.\n* Tests do not depend on execution order.\n* Tests do not rely on unstable external state.\n\n# 8. Final Output\n\nReturn:\n\n* Tests created or modified\n* Behaviors covered\n* Test commands executed\n* Test results\n* Any implementation defects discovered\n\nDo not modify unrelated tests.\n\nDo not implement unrelated 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\n",{"name":5,"description":7},"main","6f1867f215cf86d20099b6dfb1164c79abfb87ce","lab-10\u002F.agents\u002Fskills\u002Ftest-writer",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":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add maurodesouza\u002Fai-kanban-app-lab --skill test-writer",{"tool":51,"command":52},"bunx","bunx skills add maurodesouza\u002Fai-kanban-app-lab --skill test-writer",{"tool":54,"command":55},"pnpm","pnpm dlx skills add maurodesouza\u002Fai-kanban-app-lab --skill test-writer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.agents\u002Fskills\u002Ftest-writer\u002FSKILL.md",true,[],[60,83,89,115,127,138],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":32},"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",[],[67,29,68,69,31,70,71,72,73,74,28,75,76,77,78,79,80,81,82],"utils implementation","utils","parsing","object","storage","ids","clear","math","filtering","with","use","organize","domain","mapping","formatting","as",{"skillNo":84,"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":85,"categories":86,"keywords":88,"publishedAt":32},"01M6P516BP8GPRJHPGVFWRF5T8","https:\u002F\u002Fgithub.com\u002Fmaurodesouza\u002Fai-kanban-app-lab\u002Fblob\u002Fmain\u002Flab-10\u002F.codex\u002Fskills\u002Ftest-writer\u002FSKILL.md",[87],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[24,25,26,27,28,29,30,31],{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":32},"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",[],[96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,77,112,113,114],"tech","tech lead","ready","command bus architecture","implement","github","EPIC","architecture","planning","issues","ui","start","analyze","Rules","command","implementer","goal","stop","project",{"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":32},"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",[],[122,97,96,123,101,105,124,125,102,126],"tech lead publish","publish","execution","dependency","information",{"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":32},"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",[],[134,110,135,136,103,137,114],"setup command system","system","setup","install",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":144,"publishedAt":32},"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",[],[140,145,146,147,148,149],"code","review code","feedback","changes","review"]