[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0JVAMATEWT7YE0583H4ZF":3,"skill-same:01M6C0JVAMATEWT7YE0583H4ZF":70},{"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":53},"01M6C0JVAMATEWT7YE0583H4ZF","upgrade-packages",null,"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\".","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\u002Fupgrade-packages\u002FSKILL.md",[],[18,19,20,21,22,23,24],"packages","upgrade packages","update dependencies","update","package","deps","check","2026-11-10 10:12:30",false,"---\nname: upgrade-packages\ndescription: 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\".\nargument-hint: \"[--check-only] [--major] [package-name]\"\n---\n\u003C!-- agent-pmo:795a9c2 -->\n\n# Upgrade Packages\n\nUpgrade all project dependencies to their latest compatible (or latest major, if `--major`) versions.\nThis repo has C#\u002F.NET (NuGet), Rust (cargo), and TypeScript\u002FNode (npm) — process all three when running without a package-name argument.\n\n## Arguments\n\n- `--check-only` — List outdated packages without upgrading. Stop after Step 2.\n- `--major` — Include major version bumps (breaking changes). Without this flag, stay within semver-compatible ranges.\n- Any other argument is treated as a specific package name to upgrade (instead of all packages).\n\n## Step 1 — Detect language and package manager\n\nInspect manifest files. For this repo, the relevant manifests are:\n\n| Manifest file | Language | Package manager |\n|---|---|---|\n| `Cargo.toml` (workspace at `Lql\u002Flql-lsp-rust\u002FCargo.toml`) | Rust | cargo |\n| `Lql\u002FLqlExtension\u002Fpackage.json` | TypeScript | npm |\n| `Website\u002Fpackage.json` | TypeScript \u002F static site | npm |\n| `Directory.Build.props` + `**\u002F*.csproj`, `**\u002F*.fsproj`, `DataProvider.sln` | C# \u002F F# | NuGet (dotnet) |\n\nProcess each in order: NuGet → cargo → npm.\n\n## Step 2 — List outdated packages\n\nRun the listing command for each manager BEFORE upgrading. Show the user what will change.\n\n### C# \u002F F# (NuGet)\n```bash\ndotnet list package --outdated\ndotnet list package --outdated --include-transitive\n```\n**Read the docs:** https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fcore\u002Ftools\u002Fdotnet-list-package\n\n### Rust\n```bash\ncd Lql\u002Flql-lsp-rust && cargo outdated        # install: cargo install cargo-outdated\ncd Lql\u002Flql-lsp-rust && cargo update --dry-run\n```\n**Read the docs:** https:\u002F\u002Fdoc.rust-lang.org\u002Fcargo\u002Fcommands\u002Fcargo-update.html\n\n### Node.js (npm) — LqlExtension\n```bash\ncd Lql\u002FLqlExtension && npm outdated\n```\n### Node.js (npm) — Website\n```bash\ncd Website && npm outdated\n```\n**Read the docs:** https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fcommands\u002Fnpm-update\n\nIf `--check-only` was passed, **stop here** and report the outdated lists.\n\n## Step 3 — Read the official upgrade docs\n\n**Before running any upgrade command, you MUST fetch and read the official documentation URL listed above for the detected package manager.** Use WebFetch to retrieve the page. This ensures you use the correct flags and understand the behavior. Do not guess at flags or options from memory.\n\n## Step 4 — Upgrade packages\n\nRun the upgrade. If a specific package name was given as an argument, upgrade only that package (in the manager that owns it).\n\n### C# \u002F F# (NuGet)\nThere is NO single `dotnet upgrade-all` command. Choose one:\n\nOption A — manual per package (most controlled):\n```bash\ndotnet add \u003Cproject.csproj> package \u003CPackageName>                     # upgrades to latest\ndotnet add \u003Cproject.csproj> package \u003CPackageName> --version \u003Cversion> # specific version\n```\nFor `Directory.Build.props`, edit the version numbers directly in the XML — that's where shared package versions live in this repo.\n\nOption B — global tool:\n```bash\ndotnet tool install --global dotnet-outdated-tool\ndotnet outdated --upgrade\n```\n**Read the docs:** https:\u002F\u002Fgithub.com\u002Fdotnet-outdated\u002Fdotnet-outdated and https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fcore\u002Ftools\u002Fdotnet-add-package\n\n### Rust\n```bash\ncd Lql\u002Flql-lsp-rust && cargo update                          # semver-compatible updates\n# --major flag:\ncd Lql\u002Flql-lsp-rust && cargo update --breaking               # major version bumps (cargo 1.84+)\n```\nThe lints workspace (`[workspace.lints]`) and pinned ANTLR-runtime version may require special handling — check `Cargo.toml` before bumping the antlr crate; the parser is regenerated against a specific ANTLR runtime per CLAUDE.md.\n\n### Node.js (npm)\n```bash\ncd Lql\u002FLqlExtension && npm update                            # semver-compatible\ncd Website && npm update\n# --major flag:\ncd Lql\u002FLqlExtension && npx npm-check-updates -u && npm install\ncd Website && npx npm-check-updates -u && npm install\n```\n**Read the docs:** https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fcommands\u002Fnpm-update\n\n## Step 5 — Verify the upgrade\n\nAfter upgrading, run the project's build and test suite to confirm nothing broke:\n\n```bash\nmake ci\n```\n\nIf `make ci` is unavailable for some reason, fall back to running each affected target manually:\n\n```bash\nmake _build_dotnet && make _test_dotnet\nmake _build_rust && make _test_rust\nmake _build_ts && make _test_ts\n```\n\nIf tests fail:\n1. Read the failure output carefully.\n2. Check the changelog \u002F migration guide for the upgraded packages (fetch the release notes URL if available).\n3. Fix breaking changes in the code.\n4. Re-run tests.\n5. If stuck after 3 attempts on the same failure, report it to the user with the error details and the package that caused it.\n\n## Step 6 — Report\n\nProvide a summary:\n\n- Packages upgraded (old version → new version), grouped by NuGet \u002F cargo \u002F npm.\n- Packages skipped (and why, e.g., major version bump without `--major`).\n- Build\u002Ftest result after upgrade.\n- Any breaking changes that were fixed.\n- Any packages that could not be upgraded (with error details).\n\n## Rules\n\n- **Always list outdated packages first** before upgrading anything.\n- **Always read the official docs** for the package manager before running upgrade commands.\n- **Always run `make ci` after upgrading** to catch breakage immediately.\n- **Never remove packages** unless they were explicitly deprecated and replaced.\n- **Never downgrade packages** unless rolling back a broken upgrade.\n- **Never modify lockfiles manually** (`package-lock.json`, `Cargo.lock`, `packages.lock.json`) — let the package manager regenerate them.\n- **Never bump the ANTLR runtime crate without regenerating** the parser from `*.g4` per CLAUDE.md (\"Always upgrade to the latest version of ANTLR to make sure the parser is correct\"). Mismatched runtime ⇄ generated code = silent breakage.\n- **Commit nothing** — leave changes in the working tree for the user to review.\n\n## Success criteria\n\n- All outdated packages upgraded to latest compatible (or latest major if `--major`)\n- `make ci` passes\n- User has a clear summary of what changed\n","\u003C!-- agent-pmo:795a9c2 -->\n\n# Upgrade Packages\n\nUpgrade all project dependencies to their latest compatible (or latest major, if `--major`) versions.\nThis repo has C#\u002F.NET (NuGet), Rust (cargo), and TypeScript\u002FNode (npm) — process all three when running without a package-name argument.\n\n## Arguments\n\n- `--check-only` — List outdated packages without upgrading. Stop after Step 2.\n- `--major` — Include major version bumps (breaking changes). Without this flag, stay within semver-compatible ranges.\n- Any other argument is treated as a specific package name to upgrade (instead of all packages).\n\n## Step 1 — Detect language and package manager\n\nInspect manifest files. For this repo, the relevant manifests are:\n\n| Manifest file | Language | Package manager |\n|---|---|---|\n| `Cargo.toml` (workspace at `Lql\u002Flql-lsp-rust\u002FCargo.toml`) | Rust | cargo |\n| `Lql\u002FLqlExtension\u002Fpackage.json` | TypeScript | npm |\n| `Website\u002Fpackage.json` | TypeScript \u002F static site | npm |\n| `Directory.Build.props` + `**\u002F*.csproj`, `**\u002F*.fsproj`, `DataProvider.sln` | C# \u002F F# | NuGet (dotnet) |\n\nProcess each in order: NuGet → cargo → npm.\n\n## Step 2 — List outdated packages\n\nRun the listing command for each manager BEFORE upgrading. Show the user what will change.\n\n### C# \u002F F# (NuGet)\n```bash\ndotnet list package --outdated\ndotnet list package --outdated --include-transitive\n```\n**Read the docs:** https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fcore\u002Ftools\u002Fdotnet-list-package\n\n### Rust\n```bash\ncd Lql\u002Flql-lsp-rust && cargo outdated        # install: cargo install cargo-outdated\ncd Lql\u002Flql-lsp-rust && cargo update --dry-run\n```\n**Read the docs:** https:\u002F\u002Fdoc.rust-lang.org\u002Fcargo\u002Fcommands\u002Fcargo-update.html\n\n### Node.js (npm) — LqlExtension\n```bash\ncd Lql\u002FLqlExtension && npm outdated\n```\n### Node.js (npm) — Website\n```bash\ncd Website && npm outdated\n```\n**Read the docs:** https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fcommands\u002Fnpm-update\n\nIf `--check-only` was passed, **stop here** and report the outdated lists.\n\n## Step 3 — Read the official upgrade docs\n\n**Before running any upgrade command, you MUST fetch and read the official documentation URL listed above for the detected package manager.** Use WebFetch to retrieve the page. This ensures you use the correct flags and understand the behavior. Do not guess at flags or options from memory.\n\n## Step 4 — Upgrade packages\n\nRun the upgrade. If a specific package name was given as an argument, upgrade only that package (in the manager that owns it).\n\n### C# \u002F F# (NuGet)\nThere is NO single `dotnet upgrade-all` command. Choose one:\n\nOption A — manual per package (most controlled):\n```bash\ndotnet add \u003Cproject.csproj> package \u003CPackageName>                     # upgrades to latest\ndotnet add \u003Cproject.csproj> package \u003CPackageName> --version \u003Cversion> # specific version\n```\nFor `Directory.Build.props`, edit the version numbers directly in the XML — that's where shared package versions live in this repo.\n\nOption B — global tool:\n```bash\ndotnet tool install --global dotnet-outdated-tool\ndotnet outdated --upgrade\n```\n**Read the docs:** https:\u002F\u002Fgithub.com\u002Fdotnet-outdated\u002Fdotnet-outdated and https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fcore\u002Ftools\u002Fdotnet-add-package\n\n### Rust\n```bash\ncd Lql\u002Flql-lsp-rust && cargo update                          # semver-compatible updates\n# --major flag:\ncd Lql\u002Flql-lsp-rust && cargo update --breaking               # major version bumps (cargo 1.84+)\n```\nThe lints workspace (`[workspace.lints]`) and pinned ANTLR-runtime version may require special handling — check `Cargo.toml` before bumping the antlr crate; the parser is regenerated against a specific ANTLR runtime per CLAUDE.md.\n\n### Node.js (npm)\n```bash\ncd Lql\u002FLqlExtension && npm update                            # semver-compatible\ncd Website && npm update\n# --major flag:\ncd Lql\u002FLqlExtension && npx npm-check-updates -u && npm install\ncd Website && npx npm-check-updates -u && npm install\n```\n**Read the docs:** https:\u002F\u002Fdocs.npmjs.com\u002Fcli\u002Fv10\u002Fcommands\u002Fnpm-update\n\n## Step 5 — Verify the upgrade\n\nAfter upgrading, run the project's build and test suite to confirm nothing broke:\n\n```bash\nmake ci\n```\n\nIf `make ci` is unavailable for some reason, fall back to running each affected target manually:\n\n```bash\nmake _build_dotnet && make _test_dotnet\nmake _build_rust && make _test_rust\nmake _build_ts && make _test_ts\n```\n\nIf tests fail:\n1. Read the failure output carefully.\n2. Check the changelog \u002F migration guide for the upgraded packages (fetch the release notes URL if available).\n3. Fix breaking changes in the code.\n4. Re-run tests.\n5. If stuck after 3 attempts on the same failure, report it to the user with the error details and the package that caused it.\n\n## Step 6 — Report\n\nProvide a summary:\n\n- Packages upgraded (old version → new version), grouped by NuGet \u002F cargo \u002F npm.\n- Packages skipped (and why, e.g., major version bump without `--major`).\n- Build\u002Ftest result after upgrade.\n- Any breaking changes that were fixed.\n- Any packages that could not be upgraded (with error details).\n\n## Rules\n\n- **Always list outdated packages first** before upgrading anything.\n- **Always read the official docs** for the package manager before running upgrade commands.\n- **Always run `make ci` after upgrading** to catch breakage immediately.\n- **Never remove packages** unless they were explicitly deprecated and replaced.\n- **Never downgrade packages** unless rolling back a broken upgrade.\n- **Never modify lockfiles manually** (`package-lock.json`, `Cargo.lock`, `packages.lock.json`) — let the package manager regenerate them.\n- **Never bump the ANTLR runtime crate without regenerating** the parser from `*.g4` per CLAUDE.md (\"Always upgrade to the latest version of ANTLR to make sure the parser is correct\"). Mismatched runtime ⇄ generated code = silent breakage.\n- **Commit nothing** — leave changes in the working tree for the user to review.\n\n## Success criteria\n\n- All outdated packages upgraded to latest compatible (or latest major if `--major`)\n- `make ci` passes\n- User has a clear summary of what changed\n",{"name":5,"description":7,"argument-hint":30},"[--check-only] [--major] [package-name]","main","52a3bb1b0b693dd04699b77cbfb8dfbe4befdec0",".agents\u002Fskills\u002Fupgrade-packages",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":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add Nimblesite\u002FDataProvider --skill upgrade-packages",{"tool":46,"command":47},"bunx","bunx skills add Nimblesite\u002FDataProvider --skill upgrade-packages",{"tool":49,"command":50},"pnpm","pnpm dlx skills add Nimblesite\u002FDataProvider --skill upgrade-packages","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fupgrade-packages\u002FSKILL.md",true,[54,60,66],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"assets\u002Ffeedback-issue-template.md","ASSET","资产文件",459,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsupabase\u002Fassets\u002Ffeedback-issue-template.md",{"path":61,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":64,"sourceHtmlUrl":65},"CHANGELOG.md","REFERENCE","参考文档",7013,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsupabase\u002FCHANGELOG.md",{"path":67,"resourceType":62,"resourceTypeDesc":63,"sizeBytes":68,"sourceHtmlUrl":69},"references\u002Fskill-feedback.md",1035,"https:\u002F\u002Fgithub.com\u002FBigdrops\u002Fbigdrops-app\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsupabase\u002Freferences\u002Fskill-feedback.md",[71,100,105,119,133,147],{"skillNo":72,"name":73,"nameZh":6,"description":74,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":87,"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",[77,82],{"categoryNo":78,"categoryName":79,"taxonomyType":80,"taxonomyTypeDesc":81},"01JBSEEDCAT000000000000019","营销推广","SCENARIO","使用场景",{"categoryNo":83,"categoryName":84,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[88,89,90,91,92,93,94,95,96,97,98,99],"website audit","audit","website","search","structured data","performance","issues","data","seo","Media","social media","broken",{"skillNo":101,"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":102,"categories":103,"keywords":104,"publishedAt":25},"01M6C0KBQHTHM3Q8FTDZHVHHPQ","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fupgrade-packages\u002FSKILL.md",[],[19,18,21,22,23,24,20],{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":111,"publishedAt":25},"01M6C0K9V6V43P869Q52DGDECN","submit-pr","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.","https:\u002F\u002Fgithub.com\u002FNimblesite\u002FDataProvider\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsubmit-pr\u002FSKILL.md",[],[112,113,114,115,116,117,118],"submit pr","pr","pull request","create","pull","ci","open",{"skillNo":120,"name":121,"nameZh":6,"description":122,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":123,"categories":124,"keywords":125,"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",[],[126,24,127,128,129,130,89,131,132],"spec check","spec","documents","implementing code","code","verify","plan",{"skillNo":134,"name":135,"nameZh":6,"description":136,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":137,"categories":138,"keywords":139,"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",[],[140,141,142,143,99,144,145,146],"fix bug","first","grep","Bash","development","test","workflow",{"skillNo":148,"name":149,"nameZh":6,"description":150,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":9,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":156,"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",[153],{"categoryNo":154,"categoryName":155,"taxonomyType":85,"taxonomyTypeDesc":86},"01JBSEEDCAT000000000000030","开发工程师",[130,157,158,159,160,145],"code dedup","find","dead code","deduplicate"]