[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CB3P87JM22MH7RGCVS6FMS":3,"skill-same:01M6CB3P87JM22MH7RGCVS6FMS":94},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":54,"commitSha":55,"skillDirectory":56,"forksCount":57,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":60,"install":61,"resources":74},"01M6CB3P87JM22MH7RGCVS6FMS","pi-pr-finalization-fallbacks",null,"Fallbacks for finishing Aaron's pi coding workflow when commit-plan path matching or GitHub PR creation\u002Fcheck handling behaves unexpectedly.","adnichols\u002Fai-configs","adnichols","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F493746?v=4","01M6C33VRY9WF6XWYPT1AFA7JJ","Aaron Nichols","01M6C33VWTNKGRM92E9G643V4W",5,"MIT","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fproductivity\u002Fpi-pr-finalization-fallbacks\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"pr","pi","pi pr finalization fallbacks","github","tmux","workflow","commit","pull","plan","coding","hermes","hermes agent","check","pi coding workflow","fallback","2026-11-10 10:12:30",false,"---\nname: pi-pr-finalization-fallbacks\ndescription: Fallbacks for finishing Aaron's pi coding workflow when commit-plan path matching or GitHub PR creation\u002Fcheck handling behaves unexpectedly.\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [pi, github, pull-request, workflow, fallback, tmux]\n    related_skills: [pi-coding-workflow, github-pr-workflow, tmux-scoped-pi-control]\n---\n\n# Pi PR Finalization Fallbacks\n\nUse this when running Aaron's `pi-coding-workflow` and the work is done, but plan commit \u002F PR creation \u002F post-PR follow-up hit orchestration quirks.\n\n## 1. `pi_workflow_ctl.py --stage commit-plan` dirty-tree false positive\n\nSymptom:\n- `commit-plan` fails with `refusing commit-plan with unexpected dirty tree`\n- repo status only shows the expected plan file\n\nCause:\n- On Aaron's machine, the controller's allowlist compares against repo-relative `git status` paths.\n- Passing `--plan` as an absolute path can mismatch the dirty-tree allowlist.\n\nFix:\n- Retry `commit-plan` with a repo-relative plan path, e.g.\n\n```bash\npython3 ~\u002F.hermes\u002Fscripts\u002Fpi_workflow_ctl.py \\\n  --pane %PANE \\\n  --repo ~\u002Fcode\u002F\u003Cworktree> \\\n  --plan thoughts\u002Fplans\u002F\u003Cslug>.md \\\n  --stage commit-plan\n```\n\nDo not assume the tree is actually dirty until you confirm with `git status --short`.\n\n## 2. `pm-plan` \u002F controller stage drift after forced commit-plan\n\nSymptom:\n- after a forced or out-of-band `commit-plan`, controller says the next legal stage is wrong\n\nFix:\n- ground truth from the pane tail and state file\n- if the worker already completed PM plan review and is ready for execution, use:\n\n```bash\npython3 ~\u002F.hermes\u002Fscripts\u002Fpi_workflow_ctl.py \\\n  --pane %PANE \\\n  --repo ~\u002Fcode\u002F\u003Cworktree> \\\n  --plan thoughts\u002Fplans\u002F\u003Cslug>.md \\\n  --stage execute --force\n```\n\nOnly do this when the pane clearly shows the preceding stage already happened.\n\n## 3. `gh pr create` timeout fallback\n\nSymptom:\n- `gh pr create` or controller `create-pr` times out even though auth and branch state are fine\n- PR may still not exist afterward\n\nReliable fallback:\n1. Check whether a PR already exists:\n```bash\ngh pr list --head \u003Cbranch> --json number,title,url,state\n```\n2. If none exists, create via direct API with explicit owner-qualified head:\n```bash\nGH_DEBUG=api gh api -X POST repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fpulls \\\n  --field title='...' \\\n  --field head='\u003Cowner>:\u003Cbranch>' \\\n  --field base='main'\n```\n3. If you used a minimal\u002Fdebug body to get creation through, patch the PR afterward:\n```bash\ngh api -X PATCH repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fpulls\u002F\u003Cnumber> --field title='...'\ngh pr edit \u003Cnumber> --body-file \u003Cbody-file>\n```\n\nNotes:\n- In this environment, large body payloads can be the part that hangs.\n- A minimal create followed by `gh pr edit --body-file` is safer than repeatedly retrying timed-out creates.\n\n## 4. Post-PR check failures caused by billing, not code\n\nSymptom:\n- all Actions jobs fail almost instantly\n- `gh pr checks` shows every job failed\n- `gh run view \u003Crun-id>` annotation says jobs were not started because payments failed or spending limit needs to be increased\n\nInterpretation:\n- this is an external GitHub billing blocker, not a code regression\n\nWorkflow:\n1. Confirm with:\n```bash\ngh run view \u003Crun-id>\n```\n2. Leave a PR comment summarizing:\n- checks did not start\n- reason is billing\u002Fspending-limit block\n- local validation for the scoped change is green\n- no code-side CI fix is available until billing is restored\n\n## 5. Keep local-only artifacts out of the commit\n\nBefore final commit\u002FPR, explicitly verify whether these are local-only:\n- `.pi\u002F`\n- ad hoc validation reports under `thoughts\u002Fvalidation\u002F`\n\nIf they are only workflow artifacts for the current run, do not include them unless the repo explicitly wants them.\n\n## Quick checklist\n\n- [ ] Use repo-relative `--plan` for `commit-plan`\n- [ ] If controller stage lags reality, confirm from pane then use `--force` carefully\n- [ ] If `gh pr create` hangs, check for existing PR first, then use `gh api` create + `gh pr edit`\n- [ ] Distinguish billing-blocked Actions from real CI failures\n- [ ] Exclude `.pi\u002F` and ad hoc validation notes unless intentionally tracked\n","# Pi PR Finalization Fallbacks\n\nUse this when running Aaron's `pi-coding-workflow` and the work is done, but plan commit \u002F PR creation \u002F post-PR follow-up hit orchestration quirks.\n\n## 1. `pi_workflow_ctl.py --stage commit-plan` dirty-tree false positive\n\nSymptom:\n- `commit-plan` fails with `refusing commit-plan with unexpected dirty tree`\n- repo status only shows the expected plan file\n\nCause:\n- On Aaron's machine, the controller's allowlist compares against repo-relative `git status` paths.\n- Passing `--plan` as an absolute path can mismatch the dirty-tree allowlist.\n\nFix:\n- Retry `commit-plan` with a repo-relative plan path, e.g.\n\n```bash\npython3 ~\u002F.hermes\u002Fscripts\u002Fpi_workflow_ctl.py \\\n  --pane %PANE \\\n  --repo ~\u002Fcode\u002F\u003Cworktree> \\\n  --plan thoughts\u002Fplans\u002F\u003Cslug>.md \\\n  --stage commit-plan\n```\n\nDo not assume the tree is actually dirty until you confirm with `git status --short`.\n\n## 2. `pm-plan` \u002F controller stage drift after forced commit-plan\n\nSymptom:\n- after a forced or out-of-band `commit-plan`, controller says the next legal stage is wrong\n\nFix:\n- ground truth from the pane tail and state file\n- if the worker already completed PM plan review and is ready for execution, use:\n\n```bash\npython3 ~\u002F.hermes\u002Fscripts\u002Fpi_workflow_ctl.py \\\n  --pane %PANE \\\n  --repo ~\u002Fcode\u002F\u003Cworktree> \\\n  --plan thoughts\u002Fplans\u002F\u003Cslug>.md \\\n  --stage execute --force\n```\n\nOnly do this when the pane clearly shows the preceding stage already happened.\n\n## 3. `gh pr create` timeout fallback\n\nSymptom:\n- `gh pr create` or controller `create-pr` times out even though auth and branch state are fine\n- PR may still not exist afterward\n\nReliable fallback:\n1. Check whether a PR already exists:\n```bash\ngh pr list --head \u003Cbranch> --json number,title,url,state\n```\n2. If none exists, create via direct API with explicit owner-qualified head:\n```bash\nGH_DEBUG=api gh api -X POST repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fpulls \\\n  --field title='...' \\\n  --field head='\u003Cowner>:\u003Cbranch>' \\\n  --field base='main'\n```\n3. If you used a minimal\u002Fdebug body to get creation through, patch the PR afterward:\n```bash\ngh api -X PATCH repos\u002F\u003Cowner>\u002F\u003Crepo>\u002Fpulls\u002F\u003Cnumber> --field title='...'\ngh pr edit \u003Cnumber> --body-file \u003Cbody-file>\n```\n\nNotes:\n- In this environment, large body payloads can be the part that hangs.\n- A minimal create followed by `gh pr edit --body-file` is safer than repeatedly retrying timed-out creates.\n\n## 4. Post-PR check failures caused by billing, not code\n\nSymptom:\n- all Actions jobs fail almost instantly\n- `gh pr checks` shows every job failed\n- `gh run view \u003Crun-id>` annotation says jobs were not started because payments failed or spending limit needs to be increased\n\nInterpretation:\n- this is an external GitHub billing blocker, not a code regression\n\nWorkflow:\n1. Confirm with:\n```bash\ngh run view \u003Crun-id>\n```\n2. Leave a PR comment summarizing:\n- checks did not start\n- reason is billing\u002Fspending-limit block\n- local validation for the scoped change is green\n- no code-side CI fix is available until billing is restored\n\n## 5. Keep local-only artifacts out of the commit\n\nBefore final commit\u002FPR, explicitly verify whether these are local-only:\n- `.pi\u002F`\n- ad hoc validation reports under `thoughts\u002Fvalidation\u002F`\n\nIf they are only workflow artifacts for the current run, do not include them unless the repo explicitly wants them.\n\n## Quick checklist\n\n- [ ] Use repo-relative `--plan` for `commit-plan`\n- [ ] If controller stage lags reality, confirm from pane then use `--force` carefully\n- [ ] If `gh pr create` hangs, check for existing PR first, then use `gh api` create + `gh pr edit`\n- [ ] Distinguish billing-blocked Actions from real CI failures\n- [ ] Exclude `.pi\u002F` and ad hoc validation notes unless intentionally tracked\n",{"name":5,"author":44,"license":15,"version":45,"metadata":46,"description":7},"Hermes Agent","1.0.0",{"hermes":47},{"tags":48,"related_skills":50},[25,27,49,29,38,28],"pull-request",[51,52,53],"pi-coding-workflow","github-pr-workflow","tmux-scoped-pi-control","main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fproductivity\u002Fpi-pr-finalization-fallbacks",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":62,"prompt":72,"zipAvailable":73},[63,66,69],{"tool":64,"command":65},"npx","npx skills add adnichols\u002Fai-configs --skill pi-pr-finalization-fallbacks",{"tool":67,"command":68},"bunx","bunx skills add adnichols\u002Fai-configs --skill pi-pr-finalization-fallbacks",{"tool":70,"command":71},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill pi-pr-finalization-fallbacks","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fproductivity\u002Fpi-pr-finalization-fallbacks\u002FSKILL.md",true,[75,80,86,90],{"path":76,"resourceType":76,"resourceTypeDesc":77,"sizeBytes":78,"sourceHtmlUrl":79},"LICENSE","许可证",10770,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-smtp-gateway\u002FLICENSE",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fchunked-upload.md","REFERENCE","参考文档",10862,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-smtp-gateway\u002Freferences\u002Fchunked-upload.md",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"SOURCE.md",330,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-smtp-gateway\u002FSOURCE.md",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"TRUST.auto.yaml",2197,"https:\u002F\u002Fgithub.com\u002Fjiayaoqijia\u002Fcryptoskill\u002Fblob\u002Fmain\u002Fskills\u002Fchains\u002Fdfinity-official-smtp-gateway\u002FTRUST.auto.yaml",[95,114,142,167,178,194],{"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":39},"01M6CB7RN791P5RRRCJWWC7DAR","blocked-page-recovery","Use when a fetch fails: 403\u002F429, paywall, WAF, bot wall.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fweb\u002Fblocked-page-recovery\u002FSKILL.md",[],[102,103,104,105,38,106,107,35,34,108,109,110,111,112,113],"recovery","page","blocked page recovery","bot","use","fetch","Citations","waf","windows","research","linux","macos",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":129,"publishedAt":39},"01M6CB7NQY2VVYCQJ1QBXACQF4","writing-plans","Use when creating or updating executable software plans. Keep plans as local files unless the user explicitly asks to register them in Doct.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fwriting-plans\u002FSKILL.md",[120,123,124],{"categoryNo":121,"categoryName":122,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":125,"categoryName":126,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[130,131,132,133,29,134,135,136,137,138,139,140,106,141,35,34,32],"writing","writing plans","documentation","test","design","user","development","planning","files","implementation","html","ops",{"skillNo":143,"name":144,"nameZh":6,"description":145,"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":157,"publishedAt":39},"01M6CB7JME246KZQHP73Z2STDF","test-driven-development","TDD: enforce RED-GREEN-REFACTOR, tests before code.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Ftest-driven-development\u002FSKILL.md",[148,151,154],{"categoryNo":149,"categoryName":150,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":155,"categoryName":156,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000037","律师与法务",[133,136,158,159,160,35,34,161,32,162,163,164,113,165,112,166,110],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":39},"01M6CB7FQ407KQTD4Z9VAWKY54","systematic-debugging","4-phase root cause debugging: understand bugs before fixing.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsystematic-debugging\u002FSKILL.md",[173],{"categoryNo":152,"categoryName":153,"taxonomyType":21,"taxonomyTypeDesc":22},[164,175,136,160,35,34,176,32,177,110,133,112,113],"systematic debugging","troubleshooting","investigation",{"skillNo":179,"name":180,"nameZh":6,"description":181,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":182,"categories":183,"keywords":187,"publishedAt":39},"01M6CB7D57MK88HE5YPZHKH68Q","spike","Throwaway experiments to validate an idea before build.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fspike\u002FSKILL.md",[184],{"categoryNo":185,"categoryName":186,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[180,110,188,189,111,190,112,113,191,192,193,35,34,32,137],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":195,"name":196,"nameZh":6,"description":197,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":198,"categories":199,"keywords":204,"publishedAt":39},"01M6CB7APAQ37YE5YE1MAAFT42","simplify-code","Parallel 3-agent cleanup of recent code changes.","https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fsoftware-development\u002Fsimplify-code\u002FSKILL.md",[200,201],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":202,"categoryName":203,"taxonomyType":127,"taxonomyTypeDesc":128},"01JBSEEDCAT000000000000030","开发工程师",[205,206,163,207,35,34,208,32,162,209,210,211,136,110,133,112,212,113],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]