1:I["e16f57074c8d",[],"ThemeToggle",1] 6:I["6929c83dd538",[],"SearchDialog",1] 7:I["e9b3dd2fb1b7",[],"Router",1] 8:I["91e293e11123",[],"FsRouteSlot",1] a:"MissingRouteFallback" b:I["ef49241e6617",[],"$a",1] :HL["/assets/entries-0qEDkATL.css","style"] 0:{"root":[[["$","link","css:/assets/entries-0qEDkATL.css",{"rel":"stylesheet","precedence":"vite-rsc/importer-resources","href":"/assets/entries-0qEDkATL.css","data-rsc-css-href":"/assets/entries-0qEDkATL.css"}],"$undefined"],["$","html",null,{"lang":"ja","children":[["$","head",null,{"children":[["$","meta",null,{"charSet":"utf-8"}],["$","meta",null,{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","link",null,{"rel":"alternate","type":"application/atom+xml","href":"/atom.xml"}],["$","link",null,{"rel":"alternate","type":"application/rss+xml","href":"/feed.xml"}],["$","link",null,{"rel":"icon","href":"/img/favicon.ico"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"(() => {\n const stored = window.localStorage.getItem(\"theme\");\n const system = window.matchMedia(\"(prefers-color-scheme: dark)\").matches ? \"dark\" : \"light\";\n const theme = stored === \"dark\" || stored === \"light\" ? stored : system;\n document.documentElement.classList.toggle(\"dark\", theme === \"dark\");\n document.documentElement.classList.toggle(\"light\", theme === \"light\");\n })();"}}]]}],["$","body",null,{"className":"bg-background text-foreground antialiased min-h-screen","style":{"fontFamily":"Geist, ui-sans-serif, system-ui, sans-serif"},"children":[["$","nav",null,{"className":"h-[52px] border-b border-border flex items-center justify-between px-6 sticky top-0 z-50 bg-background/90 backdrop-blur-2xl","children":[["$","div",null,{"className":"flex items-center gap-8","children":[["$","a",null,{"href":"/","className":"text-[0.9375rem] font-semibold text-foreground no-underline tracking-[-0.01em]","children":"docs"}],["$","div",null,{"className":"hidden sm:flex gap-6","children":[["$","a",null,{"href":"/","className":"text-[0.8125rem] text-muted-foreground no-underline hover:text-foreground transition-colors duration-200","children":"Blog"}],["$","a",null,{"href":"/docs","className":"text-[0.8125rem] text-muted-foreground no-underline hover:text-foreground transition-colors duration-200","children":"Docs"}]]}]]}],["$","div",null,{"className":"flex items-center gap-2","children":[["$","$L1",null,{}],["$","a",null,{"href":"https://github.com/mkusaka/docs","target":"_blank","rel":"noopener noreferrer","children":["$","svg",null,{"width":"16","height":"16","viewBox":"0 0 24 24","fill":"currentColor","children":["$","path",null,{"d":"M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"}]}],"data-slot":"button","data-variant":"ghost","data-size":"icon-sm","className":"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50 size-8","ref":null}]]}]]}],"$L2","$L3","$L4","$L5"]}]]}]]} 2:["$","$L6",null,{}] 3:["$","$L7",null,{"routes":[{"id":"0 page.tsx","path":"/","component":["$","$L8",null,{"route":{"id":"0 page.tsx"},"paramNames":[],"chunks":{"[]":"fun__rsc-payload/4ef14ef41a550b77"}}]},{"id":"1 404/page.tsx","path":"/404","component":["$","$L8",null,{"route":{"id":"1 404/page.tsx"},"paramNames":[],"chunks":{"[]":"fun__rsc-payload/280f5d4e5f8c16e1"}}]},{"id":"2 docs/page.tsx","path":"/docs","component":["$","$L8",null,{"route":{"id":"2 docs/page.tsx"},"paramNames":[],"chunks":{"[]":"fun__rsc-payload/f3fea693a3a3b10b"}}]},{"id":"3 tags/page.tsx","path":"/tags","component":["$","$L8",null,{"route":{"id":"3 tags/page.tsx"},"paramNames":[],"chunks":{"[]":"fun__rsc-payload/5c3e0c1c79ad328d"}}]},{"id":"4 tags/[tag]/page.tsx","path":"/tags/:tag","component":["$","$L8",null,{"route":{"id":"4 tags/[tag]/page.tsx"},"paramNames":["tag"],"chunks":{"[\"accessibility-support\"]":"fun__rsc-payload/ce828d9b9ac9fb73","[\"adblock\"]":"fun__rsc-payload/7e38357b130282b0","[\"ads\"]":"fun__rsc-payload/49496b675f010262","[\"agents-md\"]":"fun__rsc-payload/b5d3cf12b8734b76","[\"ai\"]":"fun__rsc-payload/4e0307579f1c701a","[\"ai-agent\"]":"fun__rsc-payload/395fae28e6e8d3fb","[\"android\"]":"fun__rsc-payload/0b39f967fbfeace5","[\"automation\"]":"fun__rsc-payload/0d0e57654bbe3a51","[\"blog\"]":"fun__rsc-payload/47a1cdef41bbbb5c","[\"chatgpt\"]":"fun__rsc-payload/218e207c8f9ccfeb","[\"chrome-extension\"]":"fun__rsc-payload/dfe73213ba4ba34c","[\"circleci\"]":"fun__rsc-payload/025d4d41aa9af0ba","[\"claude\"]":"fun__rsc-payload/7af68f4217728413","[\"claude-code\"]":"fun__rsc-payload/cdb99e555c759907","[\"cli\"]":"fun__rsc-payload/82bda0dc06556fee","[\"codex\"]":"fun__rsc-payload/250850c6b51b2cd6","[\"coding-agent\"]":"fun__rsc-payload/dcb82073593cc1dd","[\"configuration\"]":"fun__rsc-payload/a4920d6b7d377c58","[\"debug\"]":"fun__rsc-payload/fddc086940250171","[\"developer-mode\"]":"fun__rsc-payload/4d2a08bf5f5c3021","[\"devin\"]":"fun__rsc-payload/74503922f8f09a31","[\"dns\"]":"fun__rsc-payload/ad169fb32bbf38a0","[\"docker\"]":"fun__rsc-payload/b4f2064ef79fcfce","[\"earth-mark\"]":"fun__rsc-payload/0655d455fe4e38d6","[\"errorlens\"]":"fun__rsc-payload/d958b5acdc1ae46e","[\"gh\"]":"fun__rsc-payload/2cae3d3c0bd8f1bf","[\"ghcr\"]":"fun__rsc-payload/f492c3b29a695081","[\"github\"]":"fun__rsc-payload/303d7b8ef8840a67","[\"github-apps\"]":"fun__rsc-payload/8324be1139c2b872","[\"github-actions\"]":"fun__rsc-payload/c94a47759669f0a6","[\"inspectionlens\"]":"fun__rsc-payload/5a2a6bb959078540","[\"intellij\"]":"fun__rsc-payload/c4ad54c7d4c2b3f4","[\"i-term2\"]":"fun__rsc-payload/bf8099237a83332e","[\"jetbrains\"]":"fun__rsc-payload/b15c4cb6d74c3ca6","[\"keybinding\"]":"fun__rsc-payload/50cbf44b004f680e","[\"keybindings\"]":"fun__rsc-payload/cd91bf08230f5010","[\"keybinds\"]":"fun__rsc-payload/bbefca6f69bed740","[\"keyboard\"]":"fun__rsc-payload/53c3280afe4e7c7a","[\"llm\"]":"fun__rsc-payload/95634008602c3d99","[\"macos\"]":"fun__rsc-payload/1e2f0daca7b9ece0","[\"mcp\"]":"fun__rsc-payload/52893c3017b8718d","[\"memo\"]":"fun__rsc-payload/5b8092b9629799e3","[\"memory\"]":"fun__rsc-payload/619982c17de1bc19","[\"move\"]":"fun__rsc-payload/b96b7c8aaf2bdc19","[\"navigation-bar\"]":"fun__rsc-payload/3da2e1ed028540ed","[\"next-js\"]":"fun__rsc-payload/6be8e462c5b3579f","[\"next-dns\"]":"fun__rsc-payload/220e13e5eb5a63be","[\"node\"]":"fun__rsc-payload/756ab17e6ed26c08","[\"node-js\"]":"fun__rsc-payload/2471ef89a6bff9f5","[\"oh-my-opencode\"]":"fun__rsc-payload/1f9f2fee6fb1d78f","[\"oh-my-pi\"]":"fun__rsc-payload/e703c22b9b6f7969","[\"openai\"]":"fun__rsc-payload/57a660f00a63db37","[\"openapi-generator\"]":"fun__rsc-payload/8b7990f526d9f382","[\"opencode\"]":"fun__rsc-payload/ff4af68189f4279c","[\"opencode-zen\"]":"fun__rsc-payload/7ff5cb2bb3caea06","[\"permission\"]":"fun__rsc-payload/cfe7ab699f21b52f","[\"plugin\"]":"fun__rsc-payload/c334aeb9b89877f3","[\"pycharm\"]":"fun__rsc-payload/b9130d40f7e977cb","[\"python\"]":"fun__rsc-payload/70af21fd3875b5d1","[\"react\"]":"fun__rsc-payload/7282be86f4f8e98c","[\"rust\"]":"fun__rsc-payload/23a5030f15dc6aae","[\"rust-rover\"]":"fun__rsc-payload/5e1c9725c1a44fb1","[\"security\"]":"fun__rsc-payload/3c45d7c86920a9f8","[\"server-actions\"]":"fun__rsc-payload/e0e94dd085dfecfa","[\"slideshare\"]":"fun__rsc-payload/9fd000934d1dd9b3","[\"sound\"]":"fun__rsc-payload/c65fa58127fa0a80","[\"tab\"]":"fun__rsc-payload/146d3522ff1e999a","[\"tab-shifter\"]":"fun__rsc-payload/c82831af138fd752","[\"terminal\"]":"fun__rsc-payload/bf3937fd1cc5bda7","[\"tips\"]":"fun__rsc-payload/81763d6d7ee363c4","[\"tools\"]":"fun__rsc-payload/edda7805a37726f8","[\"tsx\"]":"fun__rsc-payload/3178f3706e67fea3","[\"tui\"]":"fun__rsc-payload/33baacd355a44ee9","[\"tunnel\"]":"fun__rsc-payload/7e5dba7c023905d4","[\"typescript\"]":"fun__rsc-payload/f19f456f42dc4c99","[\"typescript-fetch\"]":"fun__rsc-payload/5e22ab334daca85d","[\"vscode\"]":"fun__rsc-payload/59d9307b227304f0","[\"vs-code\"]":"fun__rsc-payload/8dfcf78186dbeede","[\"yaml\"]":"fun__rsc-payload/e251bf2da11185c7","[\"小ネタ\"]":"fun__rsc-payload/1004fd5b8c9aea9b"}}]},{"id":"5 [year]/[month]/[day]/[slug]/page.tsx","path":"/:year/:month/:day/:slug","component":"$L9"}],"fallback":"static","ssr":{"path":"/2026/08/31/gh-webhook-local-agent-ci-autofix"}}] 4:["$","$Lb",null,{}] 5:["$","button",null,{"data-search-trigger":true,"className":"lg:hidden fixed bottom-6 right-6 z-50 size-12 rounded-full bg-primary text-primary-foreground shadow-lg flex items-center justify-center active:scale-95 transition-transform","aria-label":"Search","children":["$","svg",null,{"width":"20","height":"20","viewBox":"0 0 24 24","fill":"none","stroke":"currentColor","strokeWidth":"2","strokeLinecap":"round","strokeLinejoin":"round","children":[["$","circle",null,{"cx":"11","cy":"11","r":"8"}],["$","path",null,{"d":"m21 21-4.3-4.3"}]]}]}] 9:["$","$L8",null,{"route":{"id":"5 [year]/[month]/[day]/[slug]/page.tsx"},"paramNames":["year","month","day","slug"],"chunks":{"[\"2026\",\"09\",\"26\",\"codex-cli-gpt-reserve\"]":"fun__rsc-payload/859faad030960efd","[\"2026\",\"09\",\"16\",\"devin-cli-multiple-accounts\"]":"fun__rsc-payload/672776fe73fadcf8","[\"2026\",\"08\",\"31\",\"claude-code-statusline-rate-limit-cache\"]":"fun__rsc-payload/77af63c50ef9988a","[\"2026\",\"08\",\"31\",\"gh-webhook-local-agent-ci-autofix\"]":"fun__rsc-payload/35adb5f31b10469d","[\"2026\",\"08\",\"29\",\"oh-my-pi-ctrl-h\"]":"fun__rsc-payload/04fa6b01864c0fdd","[\"2026\",\"08\",\"18\",\"chatgpt-local-mcp-proxy\"]":"fun__rsc-payload/b7b5b7362306aba5","[\"2026\",\"07\",\"24\",\"ai-agent-avoid-overly-defensive-code\"]":"fun__rsc-payload/6f93db46d107a2e0","[\"2026\",\"07\",\"02\",\"claude-code-profile-shared-sessions\"]":"fun__rsc-payload/2496e03fc89bf9ce","[\"2026\",\"06\",\"06\",\"codex-cli-multiple-accounts\"]":"fun__rsc-payload/867469a6da0b1e4a","[\"2026\",\"03\",\"16\",\"iterm2-cycle-tabs-mru\"]":"fun__rsc-payload/90dfa4de04fdab42","[\"2026\",\"02\",\"15\",\"claude-code-opencode-zen\"]":"fun__rsc-payload/22cc96ecdfed7fe6","[\"2026\",\"02\",\"15\",\"codex-cli-opencode-zen\"]":"fun__rsc-payload/889627a6169a012d","[\"2026\",\"02\",\"11\",\"opencode-blog-config\"]":"fun__rsc-payload/2ffffd54e976dee2","[\"2026\",\"02\",\"01\",\"oh-my-opencode-claude-code-compat-only\"]":"fun__rsc-payload/21695648450c8036","[\"2026\",\"01\",\"20\",\"ai-cli-ctrl-z\"]":"fun__rsc-payload/0e806f9a495a2fbe","[\"2026\",\"01\",\"20\",\"opencode-ctrl-h\"]":"fun__rsc-payload/4df062fa513ff561","[\"2026\",\"01\",\"11\",\"chatgpt-developer-mode\"]":"fun__rsc-payload/c18b09e50a797f36","[\"2025\",\"08\",\"18\",\"llm-cli-mcp-difference\"]":"fun__rsc-payload/99b8de884234ce09","[\"2024\",\"11\",\"30\",\"react-debug\"]":"fun__rsc-payload/550cc8739a063b44","[\"2024\",\"11\",\"24\",\"android-earth-mark\"]":"fun__rsc-payload/b69449beed088294","[\"2024\",\"09\",\"23\",\"debug-with-tsx\"]":"fun__rsc-payload/887b62225280286a","[\"2024\",\"05\",\"21\",\"Invalid-Python-interpreter-selected-for-the-project\"]":"fun__rsc-payload/fb0d65060b1fba4a","[\"2024\",\"04\",\"14\",\"docker-pull-from-public-ghcr\"]":"fun__rsc-payload/75a2690a1b716c3d","[\"2024\",\"03\",\"02\",\"vscode-sound\"]":"fun__rsc-payload/572bbeacdc5e7dfc","[\"2024\",\"02\",\"26\",\"--max-old-space-size\"]":"fun__rsc-payload/992ff8d30a2e1a63","[\"2024\",\"01\",\"15\",\"jetbrains-virtual-space\"]":"fun__rsc-payload/0f261ffe13837cd2","[\"2024\",\"01\",\"15\",\"server-actions-getServerSession\"]":"fun__rsc-payload/251cd067ea790a60","[\"2023\",\"11\",\"19\",\"intellijrust-rustrover-external-linters-on-the-fly\"]":"fun__rsc-payload/706be23ea9fb2f79","[\"2023\",\"11\",\"13\",\"intellij-navigation-bar-position\"]":"fun__rsc-payload/552f40cd8b6d14e5","[\"2023\",\"08\",\"06\",\"inspection-lens\"]":"fun__rsc-payload/c88aeecd192348ae","[\"2023\",\"08\",\"14\",\"github-intellij-org\"]":"fun__rsc-payload/33cb4ee83e581c35","[\"2023\",\"07\",\"25\",\"githubapp-permission\"]":"fun__rsc-payload/c0026a33b76c7558","[\"2023\",\"06\",\"18\",\"nextdns\"]":"fun__rsc-payload/78e9fbc5167594e3","[\"2023\",\"04\",\"04\",\"refined-slideshare\"]":"fun__rsc-payload/d7a0b09f815199ae","[\"2023\",\"04\",\"04\",\"intellij-tab-move-renew\"]":"fun__rsc-payload/a2579c625c3a955a","[\"2023\",\"04\",\"04\",\"newtab\"]":"fun__rsc-payload/bd40a6d47a596b1d","[\"2023\",\"04\",\"03\",\"ciconfig\"]":"fun__rsc-payload/85642776ad4d022a","[\"2023\",\"04\",\"03\",\"vscode-tab-shifter\"]":"fun__rsc-payload/76b40d3c0af38cdc","[\"2022\",\"05\",\"03\",\"openapi-generator-typescript-fetch-string-enums\"]":"fun__rsc-payload/44aecebec01c8b96"},"initialKey":"[\"2026\",\"08\",\"31\",\"gh-webhook-local-agent-ci-autofix\"]","initial":"$Lc"}] d:I["5301c633a01b",[],"default",1] c:[["$","title",null,{"children":"GitHub Webhook でローカルエージェントに CI を直してもらう - docs"}],["$","meta",null,{"name":"description","content":"GitHubのwebhookを起点に、agentでCI failureの修正からmergeまでを回す"}],["$","div",null,{"className":"flex max-w-[1320px] mx-auto overflow-x-hidden","children":[["$","aside",null,{"className":"hidden lg:block w-[210px] shrink-0 sticky top-[52px] h-[calc(100vh-52px)]","children":["$","div",null,{"className":"py-8 pl-6 pr-4 h-full flex flex-col","children":[["$","button",null,{"data-slot":"button","data-variant":"outline","data-size":"default","className":"inline-flex items-center whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50 px-4 has-[>svg]:px-3 w-full justify-start gap-2 mb-6 text-muted-foreground h-auto py-[7px] pl-2.5 pr-2","data-search-trigger":true,"children":[["$","$Ld",null,{"ref":"$undefined","icon":{"name":"search","size":24,"node":[["path",{"d":"m21 21-4.34-4.34","key":"14j7rj"}],["circle",{"cx":"11","cy":"11","r":"8","key":"4ej97u"}]]},"className":"size-3.5"}],["$","span",null,{"className":"flex-1 text-left text-xs","children":"Search"}],["$","kbd",null,{"className":"text-[0.6rem] text-muted-foreground/70 border rounded px-1 py-px","children":"⌘ K"}]]}],["$","a",null,{"href":"/","className":"block text-sm rounded-lg px-3 py-2 mb-6 no-underline transition-all text-muted-foreground hover:text-foreground","children":"All posts"}],["$","div",null,{"className":"mb-8","children":[["$","h3",null,{"className":"text-[0.6875rem] font-medium text-muted-foreground uppercase tracking-[0.1em] mb-3","children":"Recent"}],["$","div",null,{"className":"space-y-px","children":[["$","a","codex-cli-gpt-reserve",{"href":"/2026/09/26/codex-cli-gpt-reserve","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline leading-snug transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"Codex CLIでgpt-reserveを使う"}],["$","a","devin-cli-multiple-accounts",{"href":"/2026/09/16/devin-cli-multiple-accounts","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline leading-snug transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"Devin CLIで複数アカウント・orgを切り替える"}],["$","a","claude-code-statusline-rate-limit-cache",{"href":"/2026/08/31/claude-code-statusline-rate-limit-cache","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline leading-snug transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"Claude Code の statusline を使って外部から rate limit を確認する"}],["$","a","gh-webhook-local-agent-ci-autofix",{"href":"/2026/08/31/gh-webhook-local-agent-ci-autofix","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline leading-snug transition-all text-foreground/90 bg-accent","children":"GitHub Webhook でローカルエージェントに CI を直してもらう"}]]}]]}],["$","div",null,{"className":"mb-8","children":[["$","h3",null,{"className":"text-[0.6875rem] font-medium text-muted-foreground uppercase tracking-[0.1em] mb-3","children":"Archive"}],["$","div",null,{"className":"space-y-px","children":[["$","a","2026",{"href":"/#year-2026","className":"block text-[0.8125rem] text-muted-foreground hover:text-foreground hover:bg-accent/50 rounded-lg px-3 py-2 no-underline transition-all","children":"2026"}],["$","a","2025",{"href":"/#year-2025","className":"block text-[0.8125rem] text-muted-foreground hover:text-foreground hover:bg-accent/50 rounded-lg px-3 py-2 no-underline transition-all","children":"2025"}],"$Le","$Lf","$L10"]}]]}],"$L11"]}]}],"$L12","$L13"]}]] 54:I["fa570eec8d8e",[],"PostPageClient",1] 56:I["4601fb863de7",[],"TableOfContents",1] e:["$","a","2024",{"href":"/#year-2024","className":"block text-[0.8125rem] text-muted-foreground hover:text-foreground hover:bg-accent/50 rounded-lg px-3 py-2 no-underline transition-all","children":"2024"}] f:["$","a","2023",{"href":"/#year-2023","className":"block text-[0.8125rem] text-muted-foreground hover:text-foreground hover:bg-accent/50 rounded-lg px-3 py-2 no-underline transition-all","children":"2023"}] 10:["$","a","2022",{"href":"/#year-2022","className":"block text-[0.8125rem] text-muted-foreground hover:text-foreground hover:bg-accent/50 rounded-lg px-3 py-2 no-underline transition-all","children":"2022"}] 11:["$","div",null,{"className":"min-h-0 flex-1 flex flex-col","children":[["$","a",null,{"href":"/tags","className":"text-[0.6875rem] font-medium text-muted-foreground hover:text-foreground uppercase tracking-[0.1em] mb-3 shrink-0 no-underline transition-colors","children":"Tags"}],["$","div",null,{"className":"space-y-px overflow-y-auto sidebar-scroll","children":[["$","a","accessibility-support",{"href":"/tags/accessibility-support","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"accessibilitySupport"}],["$","a","adblock",{"href":"/tags/adblock","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"adblock"}],["$","a","ads",{"href":"/tags/ads","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"ads"}],["$","a","agents-md",{"href":"/tags/agents-md","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"agents-md"}],["$","a","ai",{"href":"/tags/ai","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"ai"}],["$","a","ai-agent",{"href":"/tags/ai-agent","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"ai-agent"}],["$","a","android",{"href":"/tags/android","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"android"}],["$","a","automation",{"href":"/tags/automation","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"automation"}],["$","a","blog",{"href":"/tags/blog","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"blog"}],["$","a","chatgpt",{"href":"/tags/chatgpt","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"chatgpt"}],["$","a","chrome-extension",{"href":"/tags/chrome-extension","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"chrome extension"}],["$","a","circleci",{"href":"/tags/circleci","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"circleci"}],["$","a","claude",{"href":"/tags/claude","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"claude"}],["$","a","claude-code",{"href":"/tags/claude-code","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"claude-code"}],["$","a","cli",{"href":"/tags/cli","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"cli"}],["$","a","codex",{"href":"/tags/codex","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"codex"}],"$L14","$L15","$L16","$L17","$L18","$L19","$L1a","$L1b","$L1c","$L1d","$L1e","$L1f","$L20","$L21","$L22","$L23","$L24","$L25","$L26","$L27","$L28","$L29","$L2a","$L2b","$L2c","$L2d","$L2e","$L2f","$L30","$L31","$L32","$L33","$L34","$L35","$L36","$L37","$L38","$L39","$L3a","$L3b","$L3c","$L3d","$L3e","$L3f","$L40","$L41","$L42","$L43","$L44","$L45","$L46","$L47","$L48","$L49","$L4a","$L4b","$L4c","$L4d","$L4e","$L4f","$L50","$L51","$L52","$L53"]}]]}] 55:T706,`gh webhook` extension を使うと、GitHub の webhook をローカルで受けられる。 ```sh gh extension install cli/gh-webhook gh webhook forward \ --repo OWNER/REPOSITORY \ --events workflow_run \ --url http://127.0.0.1:8765/webhook ``` ```text GitHub event → gh webhook forward → localhost → agentを起動するサーバ ``` たとえば `main` のCIが落ちたら、listener が worktree を作り、LLM agent に修正させる。agent がPRを作り、CIを通れば fast-forward でmergeする。 ```text main のCI failure → worktree → Devin / Codex / Claude → 修正PR → CI → merge ``` ローカルで受けたイベントは、必ずしも直接agentを起動しなくてよい。issueを作って Symphony のような実行基盤へ渡してもよい。 ## 概念コード ```python def on_workflow_run(event): if event["conclusion"] != "failure": return worktree = create_worktree(event["head_sha"]) pr = run_agent( worktree, prompt=f"CIが失敗した。失敗ログを読んで直し、テストしてPRを作って: {event['id']}", ) for _ in range(5): if required_checks_pass(pr): merge_fast_forward(pr) return run_agent(worktree, prompt=f"このPRのCIがまだ落ちている。直してpushして: {pr.url}") ``` PRが増えるほど、個別に拾って直してmergeする作業は重い。webhookを入口にすると、CI failureからmain修正までを自動でつなげられる。 ## refs - [cli/gh-webhook](https://github.com/cli/gh-webhook) - [Using the GitHub CLI to forward webhooks for testing](https://docs.github.com/en/webhooks/testing-and-troubleshooting-webhooks/using-the-github-cli-to-forward-webhooks-for-testing)12:["$","main",null,{"className":"flex-1 min-w-0 border-l border-border lg:border-l-0","children":["$","div",null,{"className":"max-w-[680px] mx-auto px-6 sm:px-8 pt-12 pb-32 relative","data-toc-content":true,"children":[["$","div",null,{"className":"absolute top-[-80px] left-1/2 -translate-x-1/2 w-[500px] h-[300px] bg-[radial-gradient(ellipse,rgba(0,0,0,0.02)_0%,transparent_70%)] dark:bg-[radial-gradient(ellipse,rgba(255,255,255,0.015)_0%,transparent_70%)] pointer-events-none"}],["$","div",null,{"className":"flex items-center gap-3 text-sm text-muted-foreground mb-8","children":[["$","time",null,{"children":"2026-08-31"}],[["$","span",null,{"className":"text-muted-foreground/50","children":"·"}],["$","span",null,{"children":"tools"}]]]}],["$","h1",null,{"className":"text-[2.5rem] sm:text-5xl font-bold leading-[1.1] tracking-[-0.03em] mb-6 text-foreground","children":"GitHub Webhook でローカルエージェントに CI を直してもらう"}],["$","p",null,{"className":"text-lg text-muted-foreground leading-relaxed mb-6 max-w-[560px]","children":"GitHubのwebhookを起点に、agentでCI failureの修正からmergeまでを回す"}],["$","div",null,{"className":"flex gap-2 flex-wrap mb-8","children":[["$","a","github-actions",{"href":"/tags/github-actions","className":"text-[0.75rem] px-2.5 py-1 rounded-md bg-secondary text-muted-foreground hover:text-foreground hover:bg-accent no-underline transition-colors","children":"github-actions"}],["$","a","gh",{"href":"/tags/gh","className":"text-[0.75rem] px-2.5 py-1 rounded-md bg-secondary text-muted-foreground hover:text-foreground hover:bg-accent no-underline transition-colors","children":"gh"}],["$","a","ai-agent",{"href":"/tags/ai-agent","className":"text-[0.75rem] px-2.5 py-1 rounded-md bg-secondary text-muted-foreground hover:text-foreground hover:bg-accent no-underline transition-colors","children":"ai-agent"}],["$","a","automation",{"href":"/tags/automation","className":"text-[0.75rem] px-2.5 py-1 rounded-md bg-secondary text-muted-foreground hover:text-foreground hover:bg-accent no-underline transition-colors","children":"automation"}]]}],["$","$L54",null,{"meta":{"slug":"gh-webhook-local-agent-ci-autofix","path":"2026/08/31/gh-webhook-local-agent-ci-autofix","title":"GitHub Webhook でローカルエージェントに CI を直してもらう","date":"2026-08-31","description":"GitHubのwebhookを起点に、agentでCI failureの修正からmergeまでを回す","categories":["tools"],"tags":["github-actions","gh","ai-agent","automation"]},"rawContent":"$55","initialLanguage":"ja"}]]}]}] 13:["$","$L56",null,{}] 14:["$","a","coding-agent",{"href":"/tags/coding-agent","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"coding-agent"}] 15:["$","a","configuration",{"href":"/tags/configuration","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"configuration"}] 16:["$","a","debug",{"href":"/tags/debug","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"debug"}] 17:["$","a","developer-mode",{"href":"/tags/developer-mode","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"developer-mode"}] 18:["$","a","devin",{"href":"/tags/devin","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"devin"}] 19:["$","a","dns",{"href":"/tags/dns","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"dns"}] 1a:["$","a","docker",{"href":"/tags/docker","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"docker"}] 1b:["$","a","earth-mark",{"href":"/tags/earth-mark","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"earth-mark"}] 1c:["$","a","errorlens",{"href":"/tags/errorlens","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"errorlens"}] 1d:["$","a","gh",{"href":"/tags/gh","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"gh"}] 1e:["$","a","ghcr",{"href":"/tags/ghcr","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"ghcr"}] 1f:["$","a","github",{"href":"/tags/github","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"github"}] 20:["$","a","github-apps",{"href":"/tags/github-apps","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"github apps"}] 21:["$","a","github-actions",{"href":"/tags/github-actions","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"github-actions"}] 22:["$","a","inspectionlens",{"href":"/tags/inspectionlens","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"inspectionlens"}] 23:["$","a","intellij",{"href":"/tags/intellij","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"intellij"}] 24:["$","a","i-term2",{"href":"/tags/i-term2","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"iTerm2"}] 25:["$","a","jetbrains",{"href":"/tags/jetbrains","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"jetbrains"}] 26:["$","a","keybinding",{"href":"/tags/keybinding","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"keybinding"}] 27:["$","a","keybindings",{"href":"/tags/keybindings","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"keybindings"}] 28:["$","a","keybinds",{"href":"/tags/keybinds","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"keybinds"}] 29:["$","a","keyboard",{"href":"/tags/keyboard","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"keyboard"}] 2a:["$","a","llm",{"href":"/tags/llm","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"llm"}] 2b:["$","a","macos",{"href":"/tags/macos","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"macos"}] 2c:["$","a","mcp",{"href":"/tags/mcp","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"mcp"}] 2d:["$","a","memo",{"href":"/tags/memo","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"memo"}] 2e:["$","a","memory",{"href":"/tags/memory","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"memory"}] 2f:["$","a","move",{"href":"/tags/move","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"move"}] 30:["$","a","navigation-bar",{"href":"/tags/navigation-bar","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"Navigation Bar"}] 31:["$","a","next-js",{"href":"/tags/next-js","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"next.js"}] 32:["$","a","next-dns",{"href":"/tags/next-dns","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"NextDNS"}] 33:["$","a","node",{"href":"/tags/node","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"node"}] 34:["$","a","node-js",{"href":"/tags/node-js","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"node.js"}] 35:["$","a","oh-my-opencode",{"href":"/tags/oh-my-opencode","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"oh-my-opencode"}] 36:["$","a","oh-my-pi",{"href":"/tags/oh-my-pi","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"oh-my-pi"}] 37:["$","a","openai",{"href":"/tags/openai","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"openai"}] 38:["$","a","openapi-generator",{"href":"/tags/openapi-generator","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"openapi-generator"}] 39:["$","a","opencode",{"href":"/tags/opencode","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"opencode"}] 3a:["$","a","opencode-zen",{"href":"/tags/opencode-zen","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"opencode-zen"}] 3b:["$","a","permission",{"href":"/tags/permission","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"permission"}] 3c:["$","a","plugin",{"href":"/tags/plugin","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"plugin"}] 3d:["$","a","pycharm",{"href":"/tags/pycharm","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"pycharm"}] 3e:["$","a","python",{"href":"/tags/python","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"python"}] 3f:["$","a","react",{"href":"/tags/react","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"react"}] 40:["$","a","rust",{"href":"/tags/rust","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"Rust"}] 41:["$","a","rust-rover",{"href":"/tags/rust-rover","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"RustRover"}] 42:["$","a","security",{"href":"/tags/security","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"security"}] 43:["$","a","server-actions",{"href":"/tags/server-actions","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"server actions"}] 44:["$","a","slideshare",{"href":"/tags/slideshare","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"slideshare"}] 45:["$","a","sound",{"href":"/tags/sound","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"sound"}] 46:["$","a","tab",{"href":"/tags/tab","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tab"}] 47:["$","a","tab-shifter",{"href":"/tags/tab-shifter","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tab shifter"}] 48:["$","a","terminal",{"href":"/tags/terminal","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"terminal"}] 49:["$","a","tips",{"href":"/tags/tips","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tips"}] 4a:["$","a","tools",{"href":"/tags/tools","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tools"}] 4b:["$","a","tsx",{"href":"/tags/tsx","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tsx"}] 4c:["$","a","tui",{"href":"/tags/tui","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tui"}] 4d:["$","a","tunnel",{"href":"/tags/tunnel","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"tunnel"}] 4e:["$","a","typescript",{"href":"/tags/typescript","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"typescript"}] 4f:["$","a","typescript-fetch",{"href":"/tags/typescript-fetch","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"typescript-fetch"}] 50:["$","a","vscode",{"href":"/tags/vscode","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"vscode"}] 51:["$","a","vs-code",{"href":"/tags/vs-code","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"VSCode"}] 52:["$","a","yaml",{"href":"/tags/yaml","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"yaml"}] 53:["$","a","小ネタ",{"href":"/tags/小ネタ","className":"block text-[0.8125rem] rounded-lg px-3 py-2 no-underline transition-all text-muted-foreground hover:text-foreground hover:bg-accent/50","children":"小ネタ"}]