[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BZRA9AS5P3PEN4GPH52K4P":3,"skill-same:01M6BZRA9AS5P3PEN4GPH52K4P":56},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":39,"ownerHtmlUrl":40,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":41,"install":42,"resources":55},"01M6BZRA9AS5P3PEN4GPH52K4P","testing.reach_coverage",null,"Increase unit test coverage toward 100 percent for a function or file","causify-ai\u002Fhelpers","causify-ai","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F121828442?v=4","01M6BZFTHW2MQR7FWK8CDW0DRA","Causify.AI","01M6BZFTPJ193AB5N089Z82HQG",155,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftesting.reach_coverage\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28],"testing","testing reach coverage","test","file","haiku","2026-11-10 10:12:30",false,"---\ndescription: Increase unit test coverage toward 100 percent for a function or file\nmodel: haiku\n---\n\n# Goal\n- Given the passed function, file, or files `\u003CFILES>`, increase unit test\n  coverage from the corresponding files `\u003CTEST_FILES>` to approach 100 percent\n  using a plan-then-implement approach\n\n# Workflow\n\n## Establish Current Coverage\n- Identify the test files corresponding to the target function, file, files\n  `\u003CTEST_FILES>` using the rules\n  - E.g.,\n    ```text\n    helpers\u002Fhllm_cli.py -> helpers\u002Ftest\u002Ftest_hllm_cli.py\n    ```\n- Print the files to test\n  ```text\n  Target files: \u003CFILES>\n  Test files: \u003CTEST_FILES>\n  ```\n- Run the following command and record the results:\n  ```bash\n  # Using invoke (preferred):\n  > i run_coverage --suite fast --generate-html-report\n  # Or directly with pytest inside Docker:\n  > pytest --cov=\u003CPKG> --cov-report=term-missing --cov-report=html \u003CTEST_FILE>\n  ```\n\n- Summarize which lines and branches are not covered\n\n## Design a Testing Plan\n- Analyze uncovered code paths and behaviors\n- Propose a clear testing plan that:\n  - Tests functions modularly before testing interactions\n  - Prioritizes end-to-end and user-visible behavior over incidental\n    implementation details\n  - Avoids testing assertions, defensive checks, or invalid inputs unless they\n    are critical to correctness\n- Explicitly map each uncovered area to one or more proposed tests\n\n## Specify Tests Without Implementation\n- Define test classes and test method names\n- For each proposed test:\n  - Describe the input data\n  - Describe the expected output or observable behavior\n- Do not write executable test code at this stage\n\n## Implement After Approval\n- Wait for user confirmation or feedback on the testing plan\n- After approval:\n  - Implement the tests according to the approved plan\n  - Re-run coverage and verify that coverage for the target function is near\n    100 percent\n  - Report final coverage results and remaining gaps, if any\n\n# Important Rules\n- Do not implement tests before the plan is approved\n- Do not proceed if instructions or requirements are ambiguous\n- Always adhere to the formatting and style guides referenced above\n- Focus on meaningful behavior and correctness rather than superficial coverage\n- All tests and code must strictly follow:\n  - `.claude\u002Fskills\u002Fcoding.rules.md` for any Python code\n  - `.claude\u002Fskills\u002Ftesting.rules.md` for tests\n- If any part of the task is unclear or underspecified, stop and ask for\n  clarification before proceeding\n\n# Verification\n- [ ] Confirm coverage for the target function or file is near 100 percent\n- [ ] Confirm every proposed test was implemented and passes\n- [ ] Confirm no uncovered critical branch remains unexplained\n","# Goal\n- Given the passed function, file, or files `\u003CFILES>`, increase unit test\n  coverage from the corresponding files `\u003CTEST_FILES>` to approach 100 percent\n  using a plan-then-implement approach\n\n# Workflow\n\n## Establish Current Coverage\n- Identify the test files corresponding to the target function, file, files\n  `\u003CTEST_FILES>` using the rules\n  - E.g.,\n    ```text\n    helpers\u002Fhllm_cli.py -> helpers\u002Ftest\u002Ftest_hllm_cli.py\n    ```\n- Print the files to test\n  ```text\n  Target files: \u003CFILES>\n  Test files: \u003CTEST_FILES>\n  ```\n- Run the following command and record the results:\n  ```bash\n  # Using invoke (preferred):\n  > i run_coverage --suite fast --generate-html-report\n  # Or directly with pytest inside Docker:\n  > pytest --cov=\u003CPKG> --cov-report=term-missing --cov-report=html \u003CTEST_FILE>\n  ```\n\n- Summarize which lines and branches are not covered\n\n## Design a Testing Plan\n- Analyze uncovered code paths and behaviors\n- Propose a clear testing plan that:\n  - Tests functions modularly before testing interactions\n  - Prioritizes end-to-end and user-visible behavior over incidental\n    implementation details\n  - Avoids testing assertions, defensive checks, or invalid inputs unless they\n    are critical to correctness\n- Explicitly map each uncovered area to one or more proposed tests\n\n## Specify Tests Without Implementation\n- Define test classes and test method names\n- For each proposed test:\n  - Describe the input data\n  - Describe the expected output or observable behavior\n- Do not write executable test code at this stage\n\n## Implement After Approval\n- Wait for user confirmation or feedback on the testing plan\n- After approval:\n  - Implement the tests according to the approved plan\n  - Re-run coverage and verify that coverage for the target function is near\n    100 percent\n  - Report final coverage results and remaining gaps, if any\n\n# Important Rules\n- Do not implement tests before the plan is approved\n- Do not proceed if instructions or requirements are ambiguous\n- Always adhere to the formatting and style guides referenced above\n- Focus on meaningful behavior and correctness rather than superficial coverage\n- All tests and code must strictly follow:\n  - `.claude\u002Fskills\u002Fcoding.rules.md` for any Python code\n  - `.claude\u002Fskills\u002Ftesting.rules.md` for tests\n- If any part of the task is unclear or underspecified, stop and ask for\n  clarification before proceeding\n\n# Verification\n- [ ] Confirm coverage for the target function or file is near 100 percent\n- [ ] Confirm every proposed test was implemented and passes\n- [ ] Confirm no uncovered critical branch remains unexplained\n",{"model":28,"description":7},"master","39143a859859181eff7e774457997b5278fd9e99",".claude\u002Fskills\u002Ftesting.reach_coverage",170,"https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers","https:\u002F\u002Fcausify.ai","https:\u002F\u002Fgithub.com\u002Fcausify-ai","2026-11-02 02:09:15",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add causify-ai\u002Fhelpers --skill testing.reach_coverage",{"tool":48,"command":49},"bunx","bunx skills add causify-ai\u002Fhelpers --skill testing.reach_coverage",{"tool":51,"command":52},"pnpm","pnpm dlx skills add causify-ai\u002Fhelpers --skill testing.reach_coverage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftesting.reach_coverage\u002FSKILL.md",true,[],[57,73,89,100,109,118],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":66,"publishedAt":29},"01M6C9ZMM0XSXCHHABMJ9XB1JB","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",[63],{"categoryNo":64,"categoryName":65,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000011","运维与部署",[67,68,69,70,28,71,72],"tutorial in 60 mins propagate docker changes","tutorial","docker","files","template","sync",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":82,"publishedAt":29},"01M6C9ZJK8QJ9FNCY39WVF3GMG","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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000002","文档处理",[83,84,68,85,86,28,27,87,88],"merge","tutorial in 60 mins merge markdown","markdown","jupyter","content","jupyter notebook",{"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":29},"01M6C9ZFYK13ZCT1E8BEEC4NG4","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",[],[96,68,97,98,99,28],"tutorial in 60 mins format","format","directory","learn",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":29},"01M6C9ZDKXSBKNKX7M3X4W38G5","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",[],[107,68,108,98,99],"tutorial in 60 mins create","create",{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":29},"01M6BZS5Z0QE03WRS1TM3XJEY9","todo.reorg_in_progress","Reorganize ai_task_queue.md so in-progress tasks, not-started tasks, and mislabeled topic headers sit under the right H1 stage","https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Ftodo.reorg_in_progress\u002FSKILL.md",[],[116,117],"todo reorg in progress","tasks",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":29},"01M6BZS4CQZ6KK2KQ26SVB7QCS","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",[],[125],"todo reorg headers"]