[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0JS8QJ10QSBDM2PHVWE5J":3,"skill-same:01M6C0JS8QJ10QSBDM2PHVWE5J":53},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":25,"linkOnly":26,"markdownContent":27,"markdownBody":28,"frontMatter":29,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":36,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":9,"updatedAt":39,"install":40,"resources":52},"01M6C0JS8QJ10QSBDM2PHVWE5J","submit-pr",null,"Creates a pull request with a well-structured description after verifying CI passes. Use when the user asks to submit, create, or open a pull request.","Nimblesite\u002FDataProvider","Nimblesite","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F178527684?v=4","01M6C0JCTZP0TRD8TD5ASTA0HY","01M6C0JD0KFR7H2S3JVJ0D031N",68,"MIT","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsubmit-pr\u002FSKILL.md",[],[18,19,20,21,22,23,24],"pr","submit pr","pull request","create","pull","ci","open","2026-11-10 10:12:30",false,"---\nname: submit-pr\ndescription: Creates a pull request with a well-structured description after verifying CI passes. Use when the user asks to submit, create, or open a pull request.\ndisable-model-invocation: true\n---\n\u003C!-- agent-pmo:795a9c2 -->\n\n# Submit PR\n\nCreate a pull request for the current branch with a well-structured description.\n\n## Steps\n\n### Step 1 — Run `make ci` (BLOCKING — DO NOT SKIP)\n\nYou MUST invoke the Bash tool with the literal command `make ci` in THIS session before calling `gh pr create`. No exceptions.\n\n**Skip allowed ONLY if** there is a Bash tool call in the visible transcript of THIS session whose `command` was exactly `make ci` (or `make check` — which is `lint + test`, a strict subset that does not satisfy `make ci`'s `lint + test + build`) and which exited 0 AFTER the most recent code change. If you are unsure, run it. The cost of re-running is low; the cost of a broken PR is high.\n\n**Skip NOT allowed when:**\n- You ran `dotnet test`, `make test`, `make lint`, partial test filters, or any subset — these are NOT `make ci`. Run `make ci` anyway.\n- You ran `make ci` earlier but have edited code or skill files since — re-run.\n- The user asked you to skip — refuse and ask them to invoke `make ci` themselves if they want to bypass. Tell them which step they're bypassing.\n- You \"reasoned\" the change is small\u002Fsafe\u002Ftest-only — irrelevant. Run it.\n\nIf `make ci` fails: STOP. Do not create the PR. Fix the failures or report them to the user and wait for direction.\n\n### Step 2 — Generate the diff against main\n\nRun `git diff main...HEAD > \u002Ftmp\u002Fpr-diff.txt` to capture the full diff between the current branch and the head of main. This is the ONLY source of truth for what the PR contains. **Warning:** the diff can be very large. If the diff file exceeds context limits, process it in chunks (e.g., read sections with `head`\u002F`tail` or split by file) rather than trying to load it all at once.\n\n### Step 3 — Derive the PR title and description SOLELY from the diff\n\nRead the diff output and summarize what changed. Ignore commit messages, branch names, and any other metadata — only the actual code\u002Fcontent diff matters.\n\n### Step 4 — Write the PR body\n\nUse the template in `.github\u002FPULL_REQUEST_TEMPLATE.md`. Fill in (based on the diff analysis from step 3):\n- TLDR: one sentence\n- What Was Added: new files, features, deps\n- What Was Changed\u002FDeleted: modified behaviour\n- How Tests Prove It Works: specific test names or output\n- Spec\u002FDoc Changes: if any\n- Breaking Changes: yes\u002Fno + description\n\n### Step 5 — Create the PR\n\nUse `gh pr create` with the filled template.\n\n## Rules\n\n- **Never call `gh pr create` without first verifying `make ci` passed in this session.** Step 1 is the gate, not a suggestion.\n- PR description must be specific and tight — no vague placeholders.\n- Link to the relevant GitHub issue if one exists.\n\n## Success criteria\n\n- `make ci` was invoked in this session and exited 0 after the most recent code change\n- PR created with `gh pr create`\n- PR URL returned to user\n","\u003C!-- agent-pmo:795a9c2 -->\n\n# Submit PR\n\nCreate a pull request for the current branch with a well-structured description.\n\n## Steps\n\n### Step 1 — Run `make ci` (BLOCKING — DO NOT SKIP)\n\nYou MUST invoke the Bash tool with the literal command `make ci` in THIS session before calling `gh pr create`. No exceptions.\n\n**Skip allowed ONLY if** there is a Bash tool call in the visible transcript of THIS session whose `command` was exactly `make ci` (or `make check` — which is `lint + test`, a strict subset that does not satisfy `make ci`'s `lint + test + build`) and which exited 0 AFTER the most recent code change. If you are unsure, run it. The cost of re-running is low; the cost of a broken PR is high.\n\n**Skip NOT allowed when:**\n- You ran `dotnet test`, `make test`, `make lint`, partial test filters, or any subset — these are NOT `make ci`. Run `make ci` anyway.\n- You ran `make ci` earlier but have edited code or skill files since — re-run.\n- The user asked you to skip — refuse and ask them to invoke `make ci` themselves if they want to bypass. Tell them which step they're bypassing.\n- You \"reasoned\" the change is small\u002Fsafe\u002Ftest-only — irrelevant. Run it.\n\nIf `make ci` fails: STOP. Do not create the PR. Fix the failures or report them to the user and wait for direction.\n\n### Step 2 — Generate the diff against main\n\nRun `git diff main...HEAD > \u002Ftmp\u002Fpr-diff.txt` to capture the full diff between the current branch and the head of main. This is the ONLY source of truth for what the PR contains. **Warning:** the diff can be very large. If the diff file exceeds context limits, process it in chunks (e.g., read sections with `head`\u002F`tail` or split by file) rather than trying to load it all at once.\n\n### Step 3 — Derive the PR title and description SOLELY from the diff\n\nRead the diff output and summarize what changed. Ignore commit messages, branch names, and any other metadata — only the actual code\u002Fcontent diff matters.\n\n### Step 4 — Write the PR body\n\nUse the template in `.github\u002FPULL_REQUEST_TEMPLATE.md`. Fill in (based on the diff analysis from step 3):\n- TLDR: one sentence\n- What Was Added: new files, features, deps\n- What Was Changed\u002FDeleted: modified behaviour\n- How Tests Prove It Works: specific test names or output\n- Spec\u002FDoc Changes: if any\n- Breaking Changes: yes\u002Fno + description\n\n### Step 5 — Create the PR\n\nUse `gh pr create` with the filled template.\n\n## Rules\n\n- **Never call `gh pr create` without first verifying `make ci` passed in this session.** Step 1 is the gate, not a suggestion.\n- PR description must be specific and tight — no vague placeholders.\n- Link to the relevant GitHub issue if one exists.\n\n## Success criteria\n\n- `make ci` was invoked in this session and exited 0 after the most recent code change\n- PR created with `gh pr create`\n- PR URL returned to user\n",{"name":5,"description":7,"disable-model-invocation":30},true,"main","52a3bb1b0b693dd04699b77cbfb8dfbe4befdec0",".agents\u002Fskills\u002Fsubmit-pr",4,"https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider","https:\u002F\u002Flql.dev\u002F","https:\u002F\u002Fgithub.com\u002FNimblesite","https:\u002F\u002Fwww.nimblesite.co\u002F","2026-11-03 10:27:35",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":30},[42,45,48],{"tool":43,"command":44},"npx","npx skills add Nimblesite\u002FDataProvider --skill submit-pr",{"tool":46,"command":47},"bunx","bunx skills add Nimblesite\u002FDataProvider --skill submit-pr",{"tool":49,"command":50},"pnpm","pnpm dlx skills add Nimblesite\u002FDataProvider --skill submit-pr","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsubmit-pr\u002FSKILL.md",[],[54,83,97,102,116,130],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":70,"publishedAt":25},"01M6C0KDKYAKZ8W4KCZZCGW4YN","website-audit","Audits a website for SEO, AI search performance, structured data, mobile usability, broken links, and social media cards. Fixes issues found. Use when the user mentions \"audit website\", \"SEO\", \"fix search ranking\", \"AI search\", \"structured data\", \"social media cards\", or \"website performance\".","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fwebsite-audit\u002FSKILL.md",[60,65],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[71,72,73,74,75,76,77,78,79,80,81,82],"website audit","audit","website","search","structured data","performance","issues","data","seo","Media","social media","broken",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":25},"01M6C0KBQHTHM3Q8FTDZHVHHPQ","upgrade-packages","Upgrade all dependencies\u002Fpackages to their latest versions for the detected language(s). Use when the user says \"upgrade packages\", \"update dependencies\", \"bump versions\", \"update packages\", or \"upgrade deps\".","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupgrade-packages\u002FSKILL.md",[],[90,91,92,93,94,95,96],"upgrade packages","packages","update","package","deps","check","update dependencies",{"skillNo":98,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":25},"01M6C0K9V6V43P869Q52DGDECN","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsubmit-pr\u002FSKILL.md",[],[19,18,20,21,22,23,24],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":25},"01M6C0K7RTZMBVC01CZ6HKBP1C","spec-check","Audit spec\u002Fplan documents against the codebase. Ensures every spec section has implementing code, tests, and matching logic. Use when the user says \"check specs\", \"spec audit\", or \"verify specs\".","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fspec-check\u002FSKILL.md",[],[109,95,110,111,112,113,72,114,115],"spec check","spec","documents","implementing code","code","verify","plan",{"skillNo":117,"name":118,"nameZh":6,"description":119,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":120,"categories":121,"keywords":122,"publishedAt":25},"01M6C0K5HF3W1KN1J6K4PAQZ8V","fix-bug","Fix a bug using test-driven development. Use when the user reports a bug, describes unexpected behavior, wants to fix a defect, or says something is broken. Enforces a strict test-first workflow where a failing test must be written and verified before any fix is attempted.","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffix-bug\u002FSKILL.md",[],[123,124,125,126,82,127,128,129],"fix bug","first","grep","Bash","development","test","workflow",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":139,"publishedAt":25},"01M6C0K3SD41A9H3E3NEYFXK9P","code-dedup","Searches for duplicate code, duplicate tests, and dead code, then safely merges or removes them. Use when the user says \"deduplicate\", \"find duplicates\", \"remove dead code\", \"DRY up\", or \"code dedup\". Requires test coverage — refuses to touch untested code.","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcode-dedup\u002FSKILL.md",[136],{"categoryNo":137,"categoryName":138,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000030","开发工程师",[113,140,141,142,143,128],"code dedup","find","dead code","deduplicate"]