[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BX611BVWA8VRR71FG75JFT":3,"skill-same:01M6BX611BVWA8VRR71FG75JFT":71},{"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":23,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6BX611BVWA8VRR71FG75JFT","sync-sb-deps",null,"Align this repo's npm dependency versions with the latest published SilverBullet release, and bump the deps SilverBullet doesn't use (mcp-bridge, sse.js, yaml, test server). Use when the user asks to sync\u002Falign deps with SilverBullet, update dependencies, or after a new SilverBullet release.","justyns\u002Fsilverbullet-ai","justyns","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F215985?v=4","01M6BX5Z1JQZDMXK0QPDBA8A9M","Justyn Shull","01M6BX5Z69F5FRF9B66YAN383J",109,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002Fjustyns\u002Fsilverbullet-ai\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsync-sb-deps\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36],"sync","deps","sync sb deps","MCP","test","update dependencies","update","release","npm","yaml","server","sse","js","2026-11-10 10:12:30",false,"---\nname: sync-sb-deps\ndescription: Align this repo's npm dependency versions with the latest published SilverBullet release, and bump the deps SilverBullet doesn't use (mcp-bridge, sse.js, yaml, test server). Use when the user asks to sync\u002Falign deps with SilverBullet, update dependencies, or after a new SilverBullet release.\n---\n\n# Sync deps with SilverBullet\n\nPackages: root `package.json` and `e2e-tests\u002F` follow SB. `mcp-bridge\u002F` (published separately, `node >=20`) and `integration-tests\u002Fmcp-test-server\u002F` are independent of SB.\n\n## 1. Compare\n\n```bash\nnode .claude\u002Fskills\u002Fsync-sb-deps\u002Fcheck.mjs            # latest SB release, 10-day minimum age\nnode .claude\u002Fskills\u002Fsync-sb-deps\u002Fcheck.mjs 2.12.0 10  # specific SB version\n```\n\nThe `SB` column comes from the published npm package, not `..\u002Fsilverbullet` main. Upstream main runs ahead of the release, and the plug builds against the npm release. `n\u002Fa` marks packages that don't follow SB.\n\n## 2. Rules\n\n- SB column set: use SB's spec verbatim. If SB pins exactly, pin exactly. Never move past SB's major.\n  - `@lezer\u002Fmarkdown` must equal SB's pin. `src\u002Fmocks\u002Fsyscalls.ts` reimplements SB's markdown parse. Renovate has it disabled for this reason.\n  - Keep root `engines.node` equal to SB's.\n- SB column `-` or `n\u002Fa`: raise the range floor to the \"settled\" version. Settled means published ≥10 days ago, matching `minimumReleaseAge` in `renovate.json`. Ask before taking a row marked `NEW MAJOR`.\n- Bump the `@silverbulletmd\u002Fsilverbullet` minimum (`>=X`) only if the user asks. That is a release-level decision.\n\n## 3. Apply\n\nEdit the specs in each `package.json` by hand. `npm install pkg@^1.0.0` rewrites the range to the resolved version, which breaks \"SB's spec verbatim\". Then, in every package dir, including ones with no spec change:\n\n```bash\ndate -u -d '10 days ago' -Iseconds          # print the cutoff once, paste it below\nnpm install --before=\u003Ccutoff> && npm update --before=\u003Ccutoff>\n```\n\n`--before` keeps transitive deps under the age limit too. Use the full timestamp. A bare date cuts at local midnight and can exclude a version the script counts as settled.\n\n## 4. Verify\n\n```bash\nnpm ls @silverbulletmd\u002Fsilverbullet @lezer\u002Fmarkdown   # lezer must be deduped to one version\nnpm test && npm run build\n(cd mcp-bridge && npm run build)\n(cd integration-tests\u002Fmcp-test-server && timeout 5 npx tsx server.ts)   # should print \"listening\"\n(cd e2e-tests && npx playwright --version)\n```\n\n`npm test` also collects tests from stale `.delta\u002Fworktrees\u002F` copies. Their failures (missing playwright, `SB_TEST_URL not set`) are not caused by the bump. Compare against a run on the old lockfile before reporting them.\n\nCommit package.json and lockfiles in one commit, e.g. `Align deps with SilverBullet 2.11.0 and bump mcp-bridge deps`.\n","# Sync deps with SilverBullet\n\nPackages: root `package.json` and `e2e-tests\u002F` follow SB. `mcp-bridge\u002F` (published separately, `node >=20`) and `integration-tests\u002Fmcp-test-server\u002F` are independent of SB.\n\n## 1. Compare\n\n```bash\nnode .claude\u002Fskills\u002Fsync-sb-deps\u002Fcheck.mjs            # latest SB release, 10-day minimum age\nnode .claude\u002Fskills\u002Fsync-sb-deps\u002Fcheck.mjs 2.12.0 10  # specific SB version\n```\n\nThe `SB` column comes from the published npm package, not `..\u002Fsilverbullet` main. Upstream main runs ahead of the release, and the plug builds against the npm release. `n\u002Fa` marks packages that don't follow SB.\n\n## 2. Rules\n\n- SB column set: use SB's spec verbatim. If SB pins exactly, pin exactly. Never move past SB's major.\n  - `@lezer\u002Fmarkdown` must equal SB's pin. `src\u002Fmocks\u002Fsyscalls.ts` reimplements SB's markdown parse. Renovate has it disabled for this reason.\n  - Keep root `engines.node` equal to SB's.\n- SB column `-` or `n\u002Fa`: raise the range floor to the \"settled\" version. Settled means published ≥10 days ago, matching `minimumReleaseAge` in `renovate.json`. Ask before taking a row marked `NEW MAJOR`.\n- Bump the `@silverbulletmd\u002Fsilverbullet` minimum (`>=X`) only if the user asks. That is a release-level decision.\n\n## 3. Apply\n\nEdit the specs in each `package.json` by hand. `npm install pkg@^1.0.0` rewrites the range to the resolved version, which breaks \"SB's spec verbatim\". Then, in every package dir, including ones with no spec change:\n\n```bash\ndate -u -d '10 days ago' -Iseconds          # print the cutoff once, paste it below\nnpm install --before=\u003Ccutoff> && npm update --before=\u003Ccutoff>\n```\n\n`--before` keeps transitive deps under the age limit too. Use the full timestamp. A bare date cuts at local midnight and can exclude a version the script counts as settled.\n\n## 4. Verify\n\n```bash\nnpm ls @silverbulletmd\u002Fsilverbullet @lezer\u002Fmarkdown   # lezer must be deduped to one version\nnpm test && npm run build\n(cd mcp-bridge && npm run build)\n(cd integration-tests\u002Fmcp-test-server && timeout 5 npx tsx server.ts)   # should print \"listening\"\n(cd e2e-tests && npx playwright --version)\n```\n\n`npm test` also collects tests from stale `.delta\u002Fworktrees\u002F` copies. Their failures (missing playwright, `SB_TEST_URL not set`) are not caused by the bump. Compare against a run on the old lockfile before reporting them.\n\nCommit package.json and lockfiles in one commit, e.g. `Align deps with SilverBullet 2.11.0 and bump mcp-bridge deps`.\n",{"name":5,"description":7},"main","c7431bec4b8a9801fb5b3a1b0cae12f7bfe1ea15",".claude\u002Fskills\u002Fsync-sb-deps",19,"https:\u002F\u002Fgithub.com\u002Fjustyns\u002Fsilverbullet-ai","https:\u002F\u002Fai.silverbullet.md\u002F","https:\u002F\u002Fgithub.com\u002Fjustyns","https:\u002F\u002Fjustyn.io\u002F","2026-11-12 03:41:57",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add justyns\u002Fsilverbullet-ai --skill sync-sb-deps",{"tool":57,"command":58},"bunx","bunx skills add justyns\u002Fsilverbullet-ai --skill sync-sb-deps",{"tool":60,"command":61},"pnpm","pnpm dlx skills add justyns\u002Fsilverbullet-ai --skill sync-sb-deps","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjustyns\u002Fsilverbullet-ai\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsync-sb-deps\u002FSKILL.md",true,[65],{"path":66,"resourceType":67,"resourceTypeDesc":68,"sizeBytes":69,"sourceHtmlUrl":70},"check.mjs","SCRIPT","脚本",2426,"https:\u002F\u002Fgithub.com\u002Fjustyns\u002Fsilverbullet-ai\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fsync-sb-deps\u002Fcheck.mjs",[]]