[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C5Q1VYC2PXP55ERFT90DD7":3,"skill-same:01M6C5Q1VYC2PXP55ERFT90DD7":60},{"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":34,"linkOnly":35,"markdownContent":36,"markdownBody":37,"frontMatter":38,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":14,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":6,"updatedAt":45,"install":46,"resources":59},"01M6C5Q1VYC2PXP55ERFT90DD7","create-pr",null,"ALWAYS use this skill when creating pull requests — never create a PR directly without it. Follows Sentry conventions for PR titles, descriptions, and issue references. Trigger on any create PR, open PR, submit PR, make PR, push and create PR, or prepare changes for review task.","CoralShades\u002Facm-ai","CoralShades","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F220297585?v=4","01M6C5211QSJHZ8HXSDDWCR507","Coral Shades AI Agency","01M6C52161FNQDRQ0FRR8DAA9D",0,"MIT","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fcreate-pr\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33],"create pr","pr","create","review","pull requests","prepare","pull","push","sentry","open pr","open","submit pr","creating pull requests","use","never","2026-11-10 10:12:30",false,"---\nname: create-pr\ndescription: ALWAYS use this skill when creating pull requests — never create a PR directly without it. Follows Sentry conventions for PR titles, descriptions, and issue references. Trigger on any create PR, open PR, submit PR, make PR, push and create PR, or prepare changes for review task.\n---\n\n# Create Pull Request\n\nCreate pull requests following Sentry's engineering practices.\n\n**Requires**: GitHub CLI (`gh`) authenticated and available.\n\n## Prerequisites\n\nBefore creating a PR, ensure all changes are committed. If there are uncommitted changes, run the `sentry-skills:commit` skill first to commit them properly.\n\n```bash\n# Check for uncommitted changes\ngit status --porcelain\n```\n\nIf the output shows any uncommitted changes (modified, added, or untracked files that should be included), invoke the `sentry-skills:commit` skill before proceeding.\n\n## Process\n\n### Step 1: Verify Branch State\n\n```bash\n# Detect the default branch — note the output for use in subsequent commands\ngh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'\n```\n\n```bash\n# Check current branch and status (substitute the detected branch name above for BASE)\ngit status\ngit log BASE..HEAD --oneline\n```\n\nEnsure:\n- All changes are committed\n- Branch is up to date with remote\n- Changes are rebased on the base branch if needed\n\n### Step 2: Analyze Changes\n\nReview what will be included in the PR:\n\n```bash\n# See all commits that will be in the PR (substitute detected branch name for BASE)\ngit log BASE..HEAD\n\n# See the full diff\ngit diff BASE...HEAD\n```\n\nUnderstand the scope and purpose of all changes before writing the description.\n\n### Step 3: Write the PR Description\n\nUse this structure for PR descriptions (ignoring any repository PR templates):\n\n```markdown\n\u003Cbrief description of what the PR does>\n\n\u003Cwhy these changes are being made - the motivation>\n\n\u003Calternative approaches considered, if any>\n\n\u003Cany additional context reviewers need>\n```\n\n**Do NOT include:**\n- \"Test plan\" sections\n- Checkbox lists of testing steps\n- Redundant summaries of the diff\n\n**Do include:**\n- Clear explanation of what and why\n- Links to relevant issues or tickets\n- Context that isn't obvious from the code\n- Notes on specific areas that need careful review\n\n### Step 4: Create the PR\n\n```bash\ngh pr create --draft --title \"\u003Ctype>(\u003Cscope>): \u003Cdescription>\" --body \"$(cat \u003C\u003C'EOF'\n\u003Cdescription body here>\nEOF\n)\"\n```\n\n**Title format** follows commit conventions:\n- `feat(scope): Add new feature`\n- `fix(scope): Fix the bug`\n- `ref: Refactor something`\n\n## PR Description Examples\n\n### Feature PR\n\n```markdown\nAdd Slack thread replies for alert notifications\n\nWhen an alert is updated or resolved, we now post a reply to the original\nSlack thread instead of creating a new message. This keeps related\nnotifications grouped and reduces channel noise.\n\nPreviously considered posting edits to the original message, but threading\nbetter preserves the timeline of events and works when the original message\nis older than Slack's edit window.\n\nRefs SENTRY-1234\n```\n\n### Bug Fix PR\n\n```markdown\nHandle null response in user API endpoint\n\nThe user endpoint could return null for soft-deleted accounts, causing\ndashboard crashes when accessing user properties. This adds a null check\nand returns a proper 404 response.\n\nFound while investigating SENTRY-5678.\n\nFixes SENTRY-5678\n```\n\n### Refactor PR\n\n```markdown\nExtract validation logic to shared module\n\nMoves duplicate validation code from the alerts, issues, and projects\nendpoints into a shared validator class. No behavior change.\n\nThis prepares for adding new validation rules in SENTRY-9999 without\nduplicating logic across endpoints.\n```\n\n## Issue References\n\nReference issues in the PR body:\n\n| Syntax | Effect |\n|--------|--------|\n| `Fixes #1234` | Closes GitHub issue on merge |\n| `Fixes SENTRY-1234` | Closes Sentry issue |\n| `Refs GH-1234` | Links without closing |\n| `Refs LINEAR-ABC-123` | Links Linear issue |\n\n## Guidelines\n\n- **One PR per feature\u002Ffix** - Don't bundle unrelated changes\n- **Keep PRs reviewable** - Smaller PRs get faster, better reviews\n- **Explain the why** - Code shows what; description explains why\n- **Mark WIP early** - Use draft PRs for early feedback\n\n## Editing Existing PRs\n\nIf you need to update a PR after creation, use `gh api` instead of `gh pr edit`:\n\n```bash\n# Update PR description\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER -f body=\"$(cat \u003C\u003C'EOF'\nUpdated description here\nEOF\n)\"\n\n# Update PR title\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER -f title='new: Title here'\n\n# Update both\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER \\\n  -f title='new: Title' \\\n  -f body='New description'\n```\n\nNote: `gh pr edit` is currently broken due to GitHub's Projects (classic) deprecation.\n\n## References\n\n- [Sentry Code Review Guidelines](https:\u002F\u002Fdevelop.sentry.dev\u002Fengineering-practices\u002Fcode-review\u002F)\n- [Sentry Commit Messages](https:\u002F\u002Fdevelop.sentry.dev\u002Fengineering-practices\u002Fcommit-messages\u002F)\n","# Create Pull Request\n\nCreate pull requests following Sentry's engineering practices.\n\n**Requires**: GitHub CLI (`gh`) authenticated and available.\n\n## Prerequisites\n\nBefore creating a PR, ensure all changes are committed. If there are uncommitted changes, run the `sentry-skills:commit` skill first to commit them properly.\n\n```bash\n# Check for uncommitted changes\ngit status --porcelain\n```\n\nIf the output shows any uncommitted changes (modified, added, or untracked files that should be included), invoke the `sentry-skills:commit` skill before proceeding.\n\n## Process\n\n### Step 1: Verify Branch State\n\n```bash\n# Detect the default branch — note the output for use in subsequent commands\ngh repo view --json defaultBranchRef --jq '.defaultBranchRef.name'\n```\n\n```bash\n# Check current branch and status (substitute the detected branch name above for BASE)\ngit status\ngit log BASE..HEAD --oneline\n```\n\nEnsure:\n- All changes are committed\n- Branch is up to date with remote\n- Changes are rebased on the base branch if needed\n\n### Step 2: Analyze Changes\n\nReview what will be included in the PR:\n\n```bash\n# See all commits that will be in the PR (substitute detected branch name for BASE)\ngit log BASE..HEAD\n\n# See the full diff\ngit diff BASE...HEAD\n```\n\nUnderstand the scope and purpose of all changes before writing the description.\n\n### Step 3: Write the PR Description\n\nUse this structure for PR descriptions (ignoring any repository PR templates):\n\n```markdown\n\u003Cbrief description of what the PR does>\n\n\u003Cwhy these changes are being made - the motivation>\n\n\u003Calternative approaches considered, if any>\n\n\u003Cany additional context reviewers need>\n```\n\n**Do NOT include:**\n- \"Test plan\" sections\n- Checkbox lists of testing steps\n- Redundant summaries of the diff\n\n**Do include:**\n- Clear explanation of what and why\n- Links to relevant issues or tickets\n- Context that isn't obvious from the code\n- Notes on specific areas that need careful review\n\n### Step 4: Create the PR\n\n```bash\ngh pr create --draft --title \"\u003Ctype>(\u003Cscope>): \u003Cdescription>\" --body \"$(cat \u003C\u003C'EOF'\n\u003Cdescription body here>\nEOF\n)\"\n```\n\n**Title format** follows commit conventions:\n- `feat(scope): Add new feature`\n- `fix(scope): Fix the bug`\n- `ref: Refactor something`\n\n## PR Description Examples\n\n### Feature PR\n\n```markdown\nAdd Slack thread replies for alert notifications\n\nWhen an alert is updated or resolved, we now post a reply to the original\nSlack thread instead of creating a new message. This keeps related\nnotifications grouped and reduces channel noise.\n\nPreviously considered posting edits to the original message, but threading\nbetter preserves the timeline of events and works when the original message\nis older than Slack's edit window.\n\nRefs SENTRY-1234\n```\n\n### Bug Fix PR\n\n```markdown\nHandle null response in user API endpoint\n\nThe user endpoint could return null for soft-deleted accounts, causing\ndashboard crashes when accessing user properties. This adds a null check\nand returns a proper 404 response.\n\nFound while investigating SENTRY-5678.\n\nFixes SENTRY-5678\n```\n\n### Refactor PR\n\n```markdown\nExtract validation logic to shared module\n\nMoves duplicate validation code from the alerts, issues, and projects\nendpoints into a shared validator class. No behavior change.\n\nThis prepares for adding new validation rules in SENTRY-9999 without\nduplicating logic across endpoints.\n```\n\n## Issue References\n\nReference issues in the PR body:\n\n| Syntax | Effect |\n|--------|--------|\n| `Fixes #1234` | Closes GitHub issue on merge |\n| `Fixes SENTRY-1234` | Closes Sentry issue |\n| `Refs GH-1234` | Links without closing |\n| `Refs LINEAR-ABC-123` | Links Linear issue |\n\n## Guidelines\n\n- **One PR per feature\u002Ffix** - Don't bundle unrelated changes\n- **Keep PRs reviewable** - Smaller PRs get faster, better reviews\n- **Explain the why** - Code shows what; description explains why\n- **Mark WIP early** - Use draft PRs for early feedback\n\n## Editing Existing PRs\n\nIf you need to update a PR after creation, use `gh api` instead of `gh pr edit`:\n\n```bash\n# Update PR description\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER -f body=\"$(cat \u003C\u003C'EOF'\nUpdated description here\nEOF\n)\"\n\n# Update PR title\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER -f title='new: Title here'\n\n# Update both\ngh api -X PATCH repos\u002F{owner}\u002F{repo}\u002Fpulls\u002FPR_NUMBER \\\n  -f title='new: Title' \\\n  -f body='New description'\n```\n\nNote: `gh pr edit` is currently broken due to GitHub's Projects (classic) deprecation.\n\n## References\n\n- [Sentry Code Review Guidelines](https:\u002F\u002Fdevelop.sentry.dev\u002Fengineering-practices\u002Fcode-review\u002F)\n- [Sentry Commit Messages](https:\u002F\u002Fdevelop.sentry.dev\u002Fengineering-practices\u002Fcommit-messages\u002F)\n",{"name":5,"description":7},"main","1ca81b0a7de199942400f965edd4d7544077ac5d",".codex\u002Fskills\u002Fcreate-pr","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai","https:\u002F\u002Fgithub.com\u002FCoralShades","coralshades.com.au","2026-04-18 00:45:07",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":58},[48,51,54],{"tool":49,"command":50},"npx","npx skills add CoralShades\u002Facm-ai --skill create-pr",{"tool":52,"command":53},"bunx","bunx skills add CoralShades\u002Facm-ai --skill create-pr",{"tool":55,"command":56},"pnpm","pnpm dlx skills add CoralShades\u002Facm-ai --skill create-pr","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fcreate-pr\u002FSKILL.md",true,[],[61,84,97,113,135,145],{"skillNo":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":72,"publishedAt":34},"01M6C63HKXA890HHV47WBAX0TB","uncodixfy","Prevents generic AI\u002FCodex UI patterns when generating frontend code. Use this skill whenever generating HTML, CSS, React, Vue, Svelte, or any frontend UI code to enforce clean, human-designed aesthetics inspired by Linear, Raycast, Stripe, and GitHub instead of typical AI-generated UI.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Funcodixfy\u002FSKILL.md",[67],{"categoryNo":68,"categoryName":69,"taxonomyType":70,"taxonomyTypeDesc":71},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[63,73,74,75,76,77,78,79,80,81,82,32,83],"github","frontend","css","codex","react","code","linear","ui","vue","generated","html",{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":88,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":91,"publishedAt":34},"01M6C63FJ2GEBBGZ5XSMV40KXB","runpodctl","Runpod CLI to manage your GPU workloads.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Frunpodctl\u002FSKILL.md",[],[86,92,93,94,95,96],"macos","cli","linux","gpu","Bash",{"skillNo":98,"name":99,"nameZh":6,"description":100,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":101,"categories":102,"keywords":103,"publishedAt":34},"01M6C63DPAV46TFVQ01SFYPJ7X","langgraph-persistence","INVOKE THIS SKILL when your LangGraph needs to persist state, remember conversations, travel through history, or configure subgraph checkpointer scoping. Covers checkpointers, thread_id, time travel, Store, and subgraph persistence modes.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-persistence\u002FSKILL.md",[],[104,105,106,107,108,109,110,111,112],"langgraph persistence","langgraph","persistence","travel","history","scoping","remember","state","configure",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":124,"publishedAt":34},"01M6C63BNS9CQEBTB8RNSSBFPA","langgraph-human-in-the-loop","INVOKE THIS SKILL when implementing human-in-the-loop patterns, pausing for approval, or handling errors in LangGraph. Covers interrupt(), Command(resume=...), approval\u002Fvalidation workflows, and the 4-tier error handling strategy.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-human-in-the-loop\u002FSKILL.md",[119],{"categoryNo":120,"categoryName":121,"taxonomyType":122,"taxonomyTypeDesc":123},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[125,126,105,127,128,129,130,131,132,133,134],"langgraph human in the loop","loop","workflows","error handling","validation","human-in-the-loop","command","strategy","approval","resume",{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":34},"01M6C639GVYZFX3NFPV5FBDR4F","langgraph-fundamentals","INVOKE THIS SKILL when writing ANY LangGraph code. Covers StateGraph, state schemas, nodes, edges, Command, Send, invoke, streaming, and error handling.","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flanggraph-fundamentals\u002FSKILL.md",[],[142,105,128,111,143,144,131,78],"langgraph fundamentals","streaming","writing",{"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":151,"publishedAt":34},"01M6C6375N34YX2GZ3SD3R7XR2","langchain-rag","INVOKE THIS SKILL when building ANY retrieval-augmented generation (RAG) system. Covers document loaders, RecursiveCharacterTextSplitter, embeddings (OpenAI), and vector stores (Chroma, FAISS, Pinecone).","https:\u002F\u002Fgithub.com\u002FCoralShades\u002Facm-ai\u002Fblob\u002Fmain\u002F.qwen\u002Fskills\u002Flangchain-rag\u002FSKILL.md",[],[152,153,154,155,156,157,158,159,160,161],"rag","langchain rag","langchain","embeddings","vector","openai","chroma","faiss","vector stores","system"]