[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6P6VZBTHH8A42VA7CM6CEXY":3,"skill-same:01M6P6VZBTHH8A42VA7CM6CEXY":70},{"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":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":47,"commitSha":48,"skillDirectory":49,"forksCount":50,"repositoryHtmlUrl":51,"repositoryHomepageUrl":6,"ownerHtmlUrl":52,"ownerBlogUrl":53,"ownerDescription":54,"updatedAt":55,"install":56,"resources":69},"01M6P6VZBTHH8A42VA7CM6CEXY","update-pr-description",null,"Updates the GitHub PR description for the current branch based on the work done in the current Claude session. Use after any meaningful change to a PR (feature, fix, refactor, docs). Invoked automatically when Claude stops if an open PR exists for the current branch. Also works inside Vibe Kanban worktrees (vk\u002F* branches) by resolving the PR via the VK issue context.","ippontech\u002Fterraform-provider-anthropic","ippontech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F503415?v=4","01M6P6SZRB0W85F9JQ867Q61WQ","Ippon Technologies","01M6P6SZWCQBBDYPAECGFWSBTF",19,"MPL-2.0","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupdate-pr-description\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"update pr","pr","update","pr description","update pr description","session","when","for","updates","vk","feature","done","branches","github pr","use","github","fix","branch","work","open","change","2026-11-10 10:12:30",false,"---\nname: update-pr-description\ndescription: >\n  Updates the GitHub PR description for the current branch based on the work\n  done in the current Claude session. Use after any meaningful change to a PR\n  (feature, fix, refactor, docs). Invoked automatically when Claude stops if\n  an open PR exists for the current branch. Also works inside Vibe Kanban\n  worktrees (vk\u002F* branches) by resolving the PR via the VK issue context.\nmodel: sonnet\n---\n\n# update-pr-description\n\nUse this skill to rewrite the PR description so it accurately reflects what\nwas implemented during this session.\n\n## Trigger\n\n- Automatically at the end of any session where an open PR exists for the\n  current branch\n- Explicitly when the user says \"update the PR description\" or similar\n\n## Workflow\n\n### Step 1 — Gather context\n\nRun in a **single parallel message**:\n\n```bash\ngit rev-parse --abbrev-ref HEAD      # current branch\ngit log main..HEAD --oneline         # commits on this branch\ngit diff main...HEAD --stat          # files changed vs main\n```\n\n### Step 2 — Find the open PR\n\n#### Normal branch\n\n```bash\ngh pr list --head \"$(git rev-parse --abbrev-ref HEAD)\" --state open --json number,url \\\n  --jq 'if length > 0 then \"number=\\(.[0].number) url=\\(.[0].url)\" else \"\" end'\n```\n\nIf an open PR exists, proceed to Step 3.\n\n#### Vibe Kanban worktree (branch starts with `vk\u002F`)\n\nVibe Kanban sessions run in worktrees on `vk\u002F\u003Cid>-\u003Cname>` branches that have\nno direct PR. In this case:\n\n1. Call `mcp__vibe_kanban__get_context` to get the current workspace\u002Fissue.\n2. From the returned issue body, extract all branch names referenced (look for\n   lines matching `feat\u002F...`, `fix\u002F...`, `chore\u002F...`, or a `## Branch` section).\n3. For each extracted branch, call `mcp__github__pull_request_read` (method:\n   `get`) to check for an open PR.\n4. Collect all open PRs found and run Steps 3–4 for **each one** — write a\n   separate description per PR reflecting what changed in that PR specifically.\n\nIf `get_context` is unavailable or returns no useful issue, stop silently.\n\n#### Fallback\n\nIf no open PR is found by any method above, stop silently.\n\n### Step 3 — Write the updated description\n\nSynthesise the new body from two sources:\n1. **Session context** — what was actually discussed and changed during this\n   Claude session (the primary source of truth)\n2. **Git context** — commit messages and changed files for completeness\n\nUse this structure:\n\n```markdown\n## Summary\n\n\u003C1-3 bullet points: what changed and why — lead with the why>\n\n## What changed\n\n\u003COptional: additional detail if the summary bullets are not sufficient.\n Omit this section if the summary covers everything.>\n\n? Generated with [Claude Code](https:\u002F\u002Fclaude.com\u002Fclaude-code)\n```\n\nGuidelines:\n- Preserve any existing \"Closes #N\" or issue references from the old description\n- One bullet per logical change — do not list individual files\n- Do not invent claims about behaviour you have not observed in this session\n- Keep it concise: a reviewer should understand the PR in under 30 seconds\n- **Write each bullet as a single unbroken line — do not hard-wrap at 80 chars**, as continuation lines render as visible line breaks on GitHub\n\n### Step 4 — Update the PR\n\nUse the GitHub API to update the PR (`gh pr edit` can fail with a Projects\nclassic deprecation error):\n\n```bash\ncat > \u002Ftmp\u002Fpr_body.txt \u003C\u003C 'ENDBODY'\n\u003Cnew body>\nENDBODY\ngh api repos\u002F{owner}\u002F{repo}\u002Fpulls\u002F\u003Cnumber> \\\n  --method PATCH \\\n  --raw-field body=\"$(cat \u002Ftmp\u002Fpr_body.txt)\" \\\n  --jq '.html_url'\n```\n\nReport the PR URL back to the user.\n\nThen write the sentinel file to suppress the Stop hook for 5 minutes:\n\n```bash\nbranch=$(git rev-parse --abbrev-ref HEAD 2>\u002Fdev\u002Fnull)\ntouch \"\u002Ftmp\u002Fclaude-pr-desc-done-$(echo \"$branch\" | tr '\u002F' '-')\"\n```\n","# update-pr-description\n\nUse this skill to rewrite the PR description so it accurately reflects what\nwas implemented during this session.\n\n## Trigger\n\n- Automatically at the end of any session where an open PR exists for the\n  current branch\n- Explicitly when the user says \"update the PR description\" or similar\n\n## Workflow\n\n### Step 1 — Gather context\n\nRun in a **single parallel message**:\n\n```bash\ngit rev-parse --abbrev-ref HEAD      # current branch\ngit log main..HEAD --oneline         # commits on this branch\ngit diff main...HEAD --stat          # files changed vs main\n```\n\n### Step 2 — Find the open PR\n\n#### Normal branch\n\n```bash\ngh pr list --head \"$(git rev-parse --abbrev-ref HEAD)\" --state open --json number,url \\\n  --jq 'if length > 0 then \"number=\\(.[0].number) url=\\(.[0].url)\" else \"\" end'\n```\n\nIf an open PR exists, proceed to Step 3.\n\n#### Vibe Kanban worktree (branch starts with `vk\u002F`)\n\nVibe Kanban sessions run in worktrees on `vk\u002F\u003Cid>-\u003Cname>` branches that have\nno direct PR. In this case:\n\n1. Call `mcp__vibe_kanban__get_context` to get the current workspace\u002Fissue.\n2. From the returned issue body, extract all branch names referenced (look for\n   lines matching `feat\u002F...`, `fix\u002F...`, `chore\u002F...`, or a `## Branch` section).\n3. For each extracted branch, call `mcp__github__pull_request_read` (method:\n   `get`) to check for an open PR.\n4. Collect all open PRs found and run Steps 3–4 for **each one** — write a\n   separate description per PR reflecting what changed in that PR specifically.\n\nIf `get_context` is unavailable or returns no useful issue, stop silently.\n\n#### Fallback\n\nIf no open PR is found by any method above, stop silently.\n\n### Step 3 — Write the updated description\n\nSynthesise the new body from two sources:\n1. **Session context** — what was actually discussed and changed during this\n   Claude session (the primary source of truth)\n2. **Git context** — commit messages and changed files for completeness\n\nUse this structure:\n\n```markdown\n## Summary\n\n\u003C1-3 bullet points: what changed and why — lead with the why>\n\n## What changed\n\n\u003COptional: additional detail if the summary bullets are not sufficient.\n Omit this section if the summary covers everything.>\n\n? Generated with [Claude Code](https:\u002F\u002Fclaude.com\u002Fclaude-code)\n```\n\nGuidelines:\n- Preserve any existing \"Closes #N\" or issue references from the old description\n- One bullet per logical change — do not list individual files\n- Do not invent claims about behaviour you have not observed in this session\n- Keep it concise: a reviewer should understand the PR in under 30 seconds\n- **Write each bullet as a single unbroken line — do not hard-wrap at 80 chars**, as continuation lines render as visible line breaks on GitHub\n\n### Step 4 — Update the PR\n\nUse the GitHub API to update the PR (`gh pr edit` can fail with a Projects\nclassic deprecation error):\n\n```bash\ncat > \u002Ftmp\u002Fpr_body.txt \u003C\u003C 'ENDBODY'\n\u003Cnew body>\nENDBODY\ngh api repos\u002F{owner}\u002F{repo}\u002Fpulls\u002F\u003Cnumber> \\\n  --method PATCH \\\n  --raw-field body=\"$(cat \u002Ftmp\u002Fpr_body.txt)\" \\\n  --jq '.html_url'\n```\n\nReport the PR URL back to the user.\n\nThen write the sentinel file to suppress the Stop hook for 5 minutes:\n\n```bash\nbranch=$(git rev-parse --abbrev-ref HEAD 2>\u002Fdev\u002Fnull)\ntouch \"\u002Ftmp\u002Fclaude-pr-desc-done-$(echo \"$branch\" | tr '\u002F' '-')\"\n```\n",{"name":5,"model":45,"description":46},"sonnet","Updates the GitHub PR description for the current branch based on the work done in the current Claude session. Use after any meaningful change to a PR (feature, fix, refactor, docs). Invoked automatically when Claude stops if an open PR exists for the current branch. Also works inside Vibe Kanban worktrees (vk\u002F* branches) by resolving the PR via the VK issue context.\n","main","e053094eceb18d0c37409d1899811a24b339b95d",".claude\u002Fskills\u002Fupdate-pr-description",11,"https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic","https:\u002F\u002Fgithub.com\u002Fippontech","blog.ippon.fr","We help orgs modernize their systems and scale with deep expertise across Cloud, DevOps, Data, AI, Software Engineering and Mobile.","2026-11-15 02:17:56",{"source":8,"skillName":5,"commands":57,"prompt":67,"zipAvailable":68},[58,61,64],{"tool":59,"command":60},"npx","npx skills add ippontech\u002Fterraform-provider-anthropic --skill update-pr-description",{"tool":62,"command":63},"bunx","bunx skills add ippontech\u002Fterraform-provider-anthropic --skill update-pr-description",{"tool":65,"command":66},"pnpm","pnpm dlx skills add ippontech\u002Fterraform-provider-anthropic --skill update-pr-description","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupdate-pr-description\u002FSKILL.md",true,[],[71,88,96,110,116,122],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":82,"publishedAt":40},"01M6P6YNS89ESB3FGRKBNZPNWV","skill_version","An example custom skill version for demonstration.","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fresources\u002Fskill_version\u002FSKILL.md",[77],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[83,84,85,26,86,87],"skill version","version","custom","custom skill","example",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":95,"publishedAt":40},"01M6P6YM857X93M8MPMTZ2PKBT","skill","An example custom skill.","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fresources\u002Fskill\u002FSKILL.md",[94],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},[85,86,87],{"skillNo":97,"name":98,"nameZh":6,"description":99,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":100,"categories":101,"keywords":105,"publishedAt":40},"01M6P6YJCA570MSPXRD108XK8Y","account-research","Researches a customer account before a call.","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fresources\u002Fplugin_version\u002Fsales-toolkit\u002Fskills\u002Faccount-research\u002FSKILL.md",[102],{"categoryNo":103,"categoryName":104,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000021","资料检索与研究",[106,107,108,109],"account research","research","call","customer",{"skillNo":111,"name":98,"nameZh":6,"description":99,"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":115,"publishedAt":40},"01M6P6YGXTT15BQRPNBDT760TY","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fresources\u002Fplugin\u002Fsales-toolkit\u002Fskills\u002Faccount-research\u002FSKILL.md",[114],{"categoryNo":103,"categoryName":104,"taxonomyType":80,"taxonomyTypeDesc":81},[106,107,108,109],{"skillNo":117,"name":118,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":40},"01M6P6YCC35DT5YRM8FXWXW4RD","skills","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fdata-sources\u002Fskills\u002FSKILL.md",[],[85,86,87],{"skillNo":123,"name":124,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":128,"publishedAt":40},"01M6P6XT6P3P8CYK7D3ECM08QK","skill_versions","https:\u002F\u002Fgithub.com\u002Fippontech\u002Fterraform-provider-anthropic\u002Fblob\u002Fmain\u002Fexamples\u002Fdata-sources\u002Fskill_versions\u002FSKILL.md",[127],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},[129,87,86,26,85,84,83],"skill versions"]