[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CB1XDF7SJKSFGY65TNP34Z":3,"skill-same:01M6CB1XDF7SJKSFGY65TNP34Z":90},{"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":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":53,"install":54,"resources":67},"01M6CB1XDF7SJKSFGY65TNP34Z","autobuild-pr-nudge-monitor",null,"Reusable Hermes cron fixture for monitoring GitHub PRs linked to autobuild Linear issues, moving them to Rework on Codex feedback\u002Fconflicts, and merging after Codex approval.","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\u002Fautobuild-pr-nudge-monitor\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35],"autobuild pr nudge monitor","pr","monitor","nudge","monitoring","approval","hermes cron","hermes agent","hermes","feedback","cron","github","pull","linear","pull-requests","issues","codex","2026-11-10 10:12:30",false,"---\nname: autobuild-pr-nudge-monitor\ndescription: Reusable Hermes cron fixture for monitoring GitHub PRs linked to autobuild Linear issues, moving them to Rework on Codex feedback\u002Fconflicts, and merging after Codex approval.\nversion: 1.0.0\nauthor: Hermes Agent\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [github, linear, cron, autobuild, codex, pull-requests]\n---\n\n# Autobuild PR nudge monitor\n\nUse when Aaron asks to monitor GitHub PRs and nudge only PRs attached to `autobuild` Linear issues.\n\n## Installed fixture\n\n- Script: `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py`\n- Primary live config: `~\u002F.hermes\u002Fpr-nudge-monitors.json`\n- Bundled fallback config for ai-configs installs: `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.config.json`\n- State: `~\u002F.hermes\u002Fstate\u002Fautobuild_pr_nudge_monitor.json`\n- Log: `~\u002F.hermes\u002Flogs\u002Fautobuild_pr_nudge_monitor.log`\n- Docs: `~\u002F.hermes\u002Fdocs\u002Fautobuild-pr-nudge-monitor.md`\n- Reference: `references\u002Frework-fingerprint-regression.md` captures the stalled-but-running fingerprint regression pattern and durable fix.\n- Cron job in default profile: `Autobuild PR nudge monitor` (`8ae87f95f2e3` as of creation), every 10 minutes, script-only\u002Fno-agent, delivered to origin thread.\n\n## Behavior\n\nThe monitor:\n1. Lists GitHub open PRs for configured repos.\n2. Extracts linked Linear issues from PR title, branch, explicit `Closes\u002FFixes\u002FResolves KEY-123` body text, and the first Linear linkback URL.\n3. Loads Linear issues with the configured required label, default `autobuild`, in one batch via `ltui --format json --limit 250 issues list --label autobuild`.\n4. Checks Codex\u002Fmerge-readiness for every open PR in the configured repo, whether or not it is linked to an autobuild Linear issue.\n5. Maintains the GitHub PR label `merge-ready` as a visible PR-list indicator on any open PR whose current head is clean and has a real current-head Codex ready\u002Fno-issues signal. Codex readiness includes PR-level ? reactions from the Codex bot when the reaction is newer than the current head commit.\n6. Restricts nudging to matching required-label Linear issues: moves those issues to `Rework` and comments when there is current-head Codex feedback or a merge conflict.\n7. If `merge_on_codex_ready` is true, merges\u002Fauto-merges only matching required-label Linear PRs after a real Codex thumbs-up\u002Fready signal.\n8. Prints only actionable output; empty stdout means no-op. Linear rate limits are logged and retried later quietly; they skip Linear nudges\u002Fauto-merge for that tick but do not block repo-wide `merge-ready` label maintenance.\n\n## Add another repo\n\nEdit `~\u002F.hermes\u002Fpr-nudge-monitors.json` and add a monitor object. If the monitor should travel with the ai-configs-managed Hermes bundle, mirror the same object into `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.config.json`:\n\n```json\n{\n  \"name\": \"repo-name-autobuild-prs\",\n  \"repo\": \"Org\u002Frepo\",\n  \"repo_dir\": \"\u002Fabsolute\u002Fpath\u002Fto\u002Flocal\u002Frepo-if-ltui-config-needed\",\n  \"linear_team\": \"NOD\",\n  \"linear_project\": \"optional-linear-project-id\",\n  \"issue_key_prefix\": \"NOD\",\n  \"required_label\": \"autobuild\",\n  \"rework_state\": \"Rework\",\n  \"merge_on_codex_ready\": true,\n  \"enabled\": true\n}\n```\n\n`repo_dir` is optional for GitHub but useful when repo-local `ltui` auth\u002Fconfig is required.\n\n## Verify\n\n```bash\n~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py --list-config\nDRY_RUN=1 ~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py\nhermes cron list\n```\n\n## Pitfalls\n\n- If `ltui` disappears from PATH, set `LTUI_CMD` to the full command, e.g. `LTUI_CMD=\u002FUsers\u002Fanichols\u002Fcode\u002Fltui-linear-rate-limit-reduction\u002Fbin\u002Fltui`. The watcher also has fallback resolution for known local `ltui` checkouts; do not let missing ambient PATH silently disable Linear nudges.\n- Do not use a broad regex over full Linear linkback markdown; it can include related issues. Use the fixture's extraction order instead.\n- Event fingerprints prevent duplicate nudges only while the linked Linear issue is already in the configured rework state. If a human\u002Fagent moves the same head back to review without a fresh Codex ready signal, the monitor must re-nudge and move it back to Rework; otherwise active PRs can appear stalled.\n","# Autobuild PR nudge monitor\n\nUse when Aaron asks to monitor GitHub PRs and nudge only PRs attached to `autobuild` Linear issues.\n\n## Installed fixture\n\n- Script: `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py`\n- Primary live config: `~\u002F.hermes\u002Fpr-nudge-monitors.json`\n- Bundled fallback config for ai-configs installs: `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.config.json`\n- State: `~\u002F.hermes\u002Fstate\u002Fautobuild_pr_nudge_monitor.json`\n- Log: `~\u002F.hermes\u002Flogs\u002Fautobuild_pr_nudge_monitor.log`\n- Docs: `~\u002F.hermes\u002Fdocs\u002Fautobuild-pr-nudge-monitor.md`\n- Reference: `references\u002Frework-fingerprint-regression.md` captures the stalled-but-running fingerprint regression pattern and durable fix.\n- Cron job in default profile: `Autobuild PR nudge monitor` (`8ae87f95f2e3` as of creation), every 10 minutes, script-only\u002Fno-agent, delivered to origin thread.\n\n## Behavior\n\nThe monitor:\n1. Lists GitHub open PRs for configured repos.\n2. Extracts linked Linear issues from PR title, branch, explicit `Closes\u002FFixes\u002FResolves KEY-123` body text, and the first Linear linkback URL.\n3. Loads Linear issues with the configured required label, default `autobuild`, in one batch via `ltui --format json --limit 250 issues list --label autobuild`.\n4. Checks Codex\u002Fmerge-readiness for every open PR in the configured repo, whether or not it is linked to an autobuild Linear issue.\n5. Maintains the GitHub PR label `merge-ready` as a visible PR-list indicator on any open PR whose current head is clean and has a real current-head Codex ready\u002Fno-issues signal. Codex readiness includes PR-level ? reactions from the Codex bot when the reaction is newer than the current head commit.\n6. Restricts nudging to matching required-label Linear issues: moves those issues to `Rework` and comments when there is current-head Codex feedback or a merge conflict.\n7. If `merge_on_codex_ready` is true, merges\u002Fauto-merges only matching required-label Linear PRs after a real Codex thumbs-up\u002Fready signal.\n8. Prints only actionable output; empty stdout means no-op. Linear rate limits are logged and retried later quietly; they skip Linear nudges\u002Fauto-merge for that tick but do not block repo-wide `merge-ready` label maintenance.\n\n## Add another repo\n\nEdit `~\u002F.hermes\u002Fpr-nudge-monitors.json` and add a monitor object. If the monitor should travel with the ai-configs-managed Hermes bundle, mirror the same object into `~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.config.json`:\n\n```json\n{\n  \"name\": \"repo-name-autobuild-prs\",\n  \"repo\": \"Org\u002Frepo\",\n  \"repo_dir\": \"\u002Fabsolute\u002Fpath\u002Fto\u002Flocal\u002Frepo-if-ltui-config-needed\",\n  \"linear_team\": \"NOD\",\n  \"linear_project\": \"optional-linear-project-id\",\n  \"issue_key_prefix\": \"NOD\",\n  \"required_label\": \"autobuild\",\n  \"rework_state\": \"Rework\",\n  \"merge_on_codex_ready\": true,\n  \"enabled\": true\n}\n```\n\n`repo_dir` is optional for GitHub but useful when repo-local `ltui` auth\u002Fconfig is required.\n\n## Verify\n\n```bash\n~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py --list-config\nDRY_RUN=1 ~\u002F.hermes\u002Fscripts\u002Fautobuild_pr_nudge_monitor.py\nhermes cron list\n```\n\n## Pitfalls\n\n- If `ltui` disappears from PATH, set `LTUI_CMD` to the full command, e.g. `LTUI_CMD=\u002FUsers\u002Fanichols\u002Fcode\u002Fltui-linear-rate-limit-reduction\u002Fbin\u002Fltui`. The watcher also has fallback resolution for known local `ltui` checkouts; do not let missing ambient PATH silently disable Linear nudges.\n- Do not use a broad regex over full Linear linkback markdown; it can include related issues. Use the fixture's extraction order instead.\n- Event fingerprints prevent duplicate nudges only while the linked Linear issue is already in the configured rework state. If a human\u002Fagent moves the same head back to review without a fresh Codex ready signal, the monitor must re-nudge and move it back to Rework; otherwise active PRs can appear stalled.\n",{"name":5,"author":41,"license":15,"version":42,"metadata":43,"description":7},"Hermes Agent","1.0.0",{"hermes":44},{"tags":45},[30,32,29,46,35,33],"autobuild","main","64e2fc9afa7bb3da1138eb73399144d0e7e73e9d","_hermes\u002Fdefault\u002Fskills\u002Fproductivity\u002Fautobuild-pr-nudge-monitor",4,"https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs","https:\u002F\u002Fgithub.com\u002Fadnichols","2026-11-06 00:28:38",{"source":8,"skillName":5,"commands":55,"prompt":65,"zipAvailable":66},[56,59,62],{"tool":57,"command":58},"npx","npx skills add adnichols\u002Fai-configs --skill autobuild-pr-nudge-monitor",{"tool":60,"command":61},"bunx","bunx skills add adnichols\u002Fai-configs --skill autobuild-pr-nudge-monitor",{"tool":63,"command":64},"pnpm","pnpm dlx skills add adnichols\u002Fai-configs --skill autobuild-pr-nudge-monitor","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fadnichols\u002Fai-configs\u002Fblob\u002Fmain\u002F_hermes\u002Fdefault\u002Fskills\u002Fproductivity\u002Fautobuild-pr-nudge-monitor\u002FSKILL.md",true,[68,74,78,82,86],{"path":69,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":72,"sourceHtmlUrl":73},"references\u002Fadvanced-topics.md","REFERENCE","参考文档",13132,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fsympy\u002Freferences\u002Fadvanced-topics.md",{"path":75,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":76,"sourceHtmlUrl":77},"references\u002Fcode-generation-printing.md",12427,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fsympy\u002Freferences\u002Fcode-generation-printing.md",{"path":79,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":80,"sourceHtmlUrl":81},"references\u002Fcore-capabilities.md",7754,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fsympy\u002Freferences\u002Fcore-capabilities.md",{"path":83,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":84,"sourceHtmlUrl":85},"references\u002Fmatrices-linear-algebra.md",9639,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fsympy\u002Freferences\u002Fmatrices-linear-algebra.md",{"path":87,"resourceType":70,"resourceTypeDesc":71,"sizeBytes":88,"sourceHtmlUrl":89},"references\u002Fphysics-mechanics.md",12053,"https:\u002F\u002Fgithub.com\u002FDicklesworthstone\u002Fpi_agent_rust\u002Fblob\u002Fmain\u002Ftests\u002Fext_conformance\u002Fartifacts\u002Ftemplates-davila7\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fscientific\u002Fsympy\u002Freferences\u002Fphysics-mechanics.md",[91,111,145,170,181,197],{"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":97,"publishedAt":36},"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",[],[98,99,100,101,102,103,104,26,27,105,106,107,108,109,110],"recovery","page","blocked page recovery","bot","fallback","use","fetch","Citations","waf","windows","research","linux","macos",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":130,"publishedAt":36},"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",[117,122,125],{"categoryNo":118,"categoryName":119,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":123,"categoryName":124,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":126,"categoryName":127,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[131,132,133,134,135,136,137,138,139,140,141,142,103,143,26,27,144],"writing","writing plans","documentation","test","workflow","design","user","development","planning","files","implementation","html","ops","plan",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":149,"categories":150,"keywords":160,"publishedAt":36},"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",[151,154,157],{"categoryNo":152,"categoryName":153,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000007","代码审查",{"categoryNo":155,"categoryName":156,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":158,"categoryName":159,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000037","律师与法务",[134,138,161,162,163,26,27,164,144,165,166,167,110,168,109,169,107],"test driven development","red-green-refactor","superpowers","quality","refactor","code","debugging","tdd","testing",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":177,"publishedAt":36},"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",[176],{"categoryNo":155,"categoryName":156,"taxonomyType":120,"taxonomyTypeDesc":121},[167,178,138,163,26,27,179,144,180,107,134,109,110],"systematic debugging","troubleshooting","investigation",{"skillNo":182,"name":183,"nameZh":6,"description":184,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":185,"categories":186,"keywords":190,"publishedAt":36},"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",[187],{"categoryNo":188,"categoryName":189,"taxonomyType":120,"taxonomyTypeDesc":121},"01JBSEEDCAT000000000000021","资料检索与研究",[183,107,191,192,108,193,109,110,194,195,196,26,27,144,139],"validate","experiments","prototype","feasibility","sketch","experiment",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":201,"categories":202,"keywords":207,"publishedAt":36},"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",[203,204],{"categoryNo":123,"categoryName":124,"taxonomyType":120,"taxonomyTypeDesc":121},{"categoryNo":205,"categoryName":206,"taxonomyType":128,"taxonomyTypeDesc":129},"01JBSEEDCAT000000000000030","开发工程师",[208,209,166,210,26,27,211,144,165,212,213,214,138,107,134,109,215,110],"simplify code","simplify","subagent","parallel","code-review","delegation","cleanup","review"]