[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BZKXCD94QB956XR74ZAS5S":3,"skill-same:01M6BZKXCD94QB956XR74ZAS5S":72},{"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":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":35,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":37,"install":38,"resources":51},"01M6BZKXCD94QB956XR74ZAS5S","github.get_pr_to_pass_ci_tests",null,"Monitor GitHub CI checks for the current PR and fix any failures until they pass","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\u002Fgithub.get_pr_to_pass_ci_tests\u002FSKILL.md",[],[19,20,21,22,23,24],"github","pr","ci","github get pr to pass ci tests","monitor","haiku","2026-11-10 10:12:30",false,"---\ndescription: Monitor GitHub CI checks for the current PR and fix any failures until they pass\nmodel: haiku\n---\n\n# Goal\n- Monitor GitHub CI checks for the current PR, fix any failures found, and report\n  status back on the PR\n\n# Workflow\n\n## Get the PR Number and Branch Name\n- Get the PR number\n  ```bash\n  > GH_PR_NUM=$(gh pr view --json number -q .number)\n  ```\n\n- Get the branch name\n  ```bash\n  > BRANCH_NAME=$(git branch --show-current)\n  ```\n\n## Make Sure the PR Is Ready\n\n- Run\n\n  ```bash\n  > gh pr view $GH_PR_NUM\n  ```\n\n- If the PR is a draft and not ready\n\n  ```bash\n  > gh pr view $GH_PR_NUM\n  gp_5 causify-ai\u002Fhelpers#1353\n  Draft • gpsaggese (GP Saggese) wants to merge 2 commits into master from gp_5 • about 10 minutes ago\n  +1499 -240 • ✓ Checks passing\n  ```\n\n  run\n\n  ```bash\n  > gh pr ready\n  ```\n\n## Make Sure Local Tests Pass\n\n- Use `\u002Fgithub.get_pr_to_pass_local_tests` to run and fix the local unit tests for\n  the branch\n\n## Run and Monitor GitHub CI\n\n- Start monitoring GitHub CI checks:\n\n  ```bash\n  > gh pr checks --watch $GH_PR_NUM\n  All checks were successful\n  0 cancelled, 0 failing, 5 successful, 2 skipped, and 0 pending checks\n\n     NAME                                                  DESCRIPTION  ELAPSED  URL\n  ✓  CodeQL\u002FAnalyze (actions) (dynamic)                                 37s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052614245\u002Fjob\u002F101538799648\n  ✓  CodeQL                                                             3s       https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fruns\u002F101538870379\n  ✓  Gitleaks Scan\u002FRun gitleaks (pull_request)                          11s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615814\u002Fjob\u002F101538802083\n  ✓  Claude Code Review\u002Fclaude-review (pull_request)                    56s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615817\u002Fjob\u002F101538802077\n  -  Fast tests\u002Frun_fast_tests \u002F run_tests (pull_request)                        https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615896\u002Fjob\u002F101538803046\n  -  Slow tests\u002Frun_slow_tests \u002F run_tests (pull_request)                        https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615907\u002Fjob\u002F101538803253\n  ✓  CodeQL\u002FAnalyze (python) (dynamic)                                  1m0s     https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052614245\u002Fjob\u002F101538799529\n  ```\n\n- Monitor for any failures\n- Make sure that all the checks run and complete successfully\n\n## Report Status on the PR\n- If GitHub CI is passing:\n  ```bash\n  > gh pr comment $GH_PR_NUM --body \"GitHub CI checks passing\"\n  ```\n- If there are failures, document them and post:\n  ```bash\n  > gh pr comment $GH_PR_NUM --body \"GitHub CI failures found: [error summary]. Investigating...\"\n  ```\n\n## Fix the Failures\n- If failures were found, use `\u002Fpytest.fix_ci_tests` to analyze and fix them\n- Commit and push the fix, then repeat \"Run and Monitor GitHub CI\" until it is green\n\n## Loop\n- Keep repeating until all GitHub CI checks pass\n\n# Constraints\n- This skill runs both when executed locally on a dev computer and remotely when\n  executed on cloud (e.g., on GitHub or Anthropic infrastructure)\n\n# Verification\n\n- [ ] `gh pr checks --watch $GH_PR_NUM` reports all checks successful\n- [ ] A PR comment reports the final CI status\n","# Goal\n- Monitor GitHub CI checks for the current PR, fix any failures found, and report\n  status back on the PR\n\n# Workflow\n\n## Get the PR Number and Branch Name\n- Get the PR number\n  ```bash\n  > GH_PR_NUM=$(gh pr view --json number -q .number)\n  ```\n\n- Get the branch name\n  ```bash\n  > BRANCH_NAME=$(git branch --show-current)\n  ```\n\n## Make Sure the PR Is Ready\n\n- Run\n\n  ```bash\n  > gh pr view $GH_PR_NUM\n  ```\n\n- If the PR is a draft and not ready\n\n  ```bash\n  > gh pr view $GH_PR_NUM\n  gp_5 causify-ai\u002Fhelpers#1353\n  Draft • gpsaggese (GP Saggese) wants to merge 2 commits into master from gp_5 • about 10 minutes ago\n  +1499 -240 • ✓ Checks passing\n  ```\n\n  run\n\n  ```bash\n  > gh pr ready\n  ```\n\n## Make Sure Local Tests Pass\n\n- Use `\u002Fgithub.get_pr_to_pass_local_tests` to run and fix the local unit tests for\n  the branch\n\n## Run and Monitor GitHub CI\n\n- Start monitoring GitHub CI checks:\n\n  ```bash\n  > gh pr checks --watch $GH_PR_NUM\n  All checks were successful\n  0 cancelled, 0 failing, 5 successful, 2 skipped, and 0 pending checks\n\n     NAME                                                  DESCRIPTION  ELAPSED  URL\n  ✓  CodeQL\u002FAnalyze (actions) (dynamic)                                 37s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052614245\u002Fjob\u002F101538799648\n  ✓  CodeQL                                                             3s       https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fruns\u002F101538870379\n  ✓  Gitleaks Scan\u002FRun gitleaks (pull_request)                          11s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615814\u002Fjob\u002F101538802083\n  ✓  Claude Code Review\u002Fclaude-review (pull_request)                    56s      https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615817\u002Fjob\u002F101538802077\n  -  Fast tests\u002Frun_fast_tests \u002F run_tests (pull_request)                        https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615896\u002Fjob\u002F101538803046\n  -  Slow tests\u002Frun_slow_tests \u002F run_tests (pull_request)                        https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052615907\u002Fjob\u002F101538803253\n  ✓  CodeQL\u002FAnalyze (python) (dynamic)                                  1m0s     https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Factions\u002Fruns\u002F34052614245\u002Fjob\u002F101538799529\n  ```\n\n- Monitor for any failures\n- Make sure that all the checks run and complete successfully\n\n## Report Status on the PR\n- If GitHub CI is passing:\n  ```bash\n  > gh pr comment $GH_PR_NUM --body \"GitHub CI checks passing\"\n  ```\n- If there are failures, document them and post:\n  ```bash\n  > gh pr comment $GH_PR_NUM --body \"GitHub CI failures found: [error summary]. Investigating...\"\n  ```\n\n## Fix the Failures\n- If failures were found, use `\u002Fpytest.fix_ci_tests` to analyze and fix them\n- Commit and push the fix, then repeat \"Run and Monitor GitHub CI\" until it is green\n\n## Loop\n- Keep repeating until all GitHub CI checks pass\n\n# Constraints\n- This skill runs both when executed locally on a dev computer and remotely when\n  executed on cloud (e.g., on GitHub or Anthropic infrastructure)\n\n# Verification\n\n- [ ] `gh pr checks --watch $GH_PR_NUM` reports all checks successful\n- [ ] A PR comment reports the final CI status\n",{"model":24,"description":7},"master","39143a859859181eff7e774457997b5278fd9e99",".claude\u002Fskills\u002Fgithub.get_pr_to_pass_ci_tests",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":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add causify-ai\u002Fhelpers --skill github.get_pr_to_pass_ci_tests",{"tool":44,"command":45},"bunx","bunx skills add causify-ai\u002Fhelpers --skill github.get_pr_to_pass_ci_tests",{"tool":47,"command":48},"pnpm","pnpm dlx skills add causify-ai\u002Fhelpers --skill github.get_pr_to_pass_ci_tests","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcausify-ai\u002Fhelpers\u002Fblob\u002Fmaster\u002F.claude\u002Fskills\u002Fgithub.get_pr_to_pass_ci_tests\u002FSKILL.md",true,[52,58,64,68],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},".gitignore","OTHER","其他",44,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fmobile-app-ui-design\u002F.gitignore",{"path":59,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":62,"sourceHtmlUrl":63},"INDEX.md","REFERENCE","参考文档",4751,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fmobile-app-ui-design\u002FINDEX.md",{"path":65,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":66,"sourceHtmlUrl":67},"README.md",4094,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fmobile-app-ui-design\u002FREADME.md",{"path":69,"resourceType":60,"resourceTypeDesc":61,"sizeBytes":70,"sourceHtmlUrl":71},"references\u002Findustry-conventions.md",6887,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fmobile-app-ui-design\u002Freferences\u002Findustry-conventions.md",[73,91,108,119,128,137],{"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":84,"publishedAt":25},"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",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[85,86,87,88,24,89,90],"tutorial in 60 mins propagate docker changes","tutorial","docker","files","template","sync",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":100,"publishedAt":25},"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",[97],{"categoryNo":98,"categoryName":99,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000002","文档处理",[101,102,86,103,104,24,105,106,107],"merge","tutorial in 60 mins merge markdown","markdown","jupyter","file","content","jupyter notebook",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":25},"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",[],[115,86,116,117,118,24],"tutorial in 60 mins format","format","directory","learn",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":25},"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",[],[126,86,127,117,118],"tutorial in 60 mins create","create",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":25},"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",[],[135,136],"todo reorg in progress","tasks",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":25},"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",[],[144],"todo reorg headers"]