[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77XEC0NKSWRZ6FZAB540AMW":3,"skill-same:01M77XEC0NKSWRZ6FZAB540AMW":64},{"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":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":29,"ownerHtmlUrl":30,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":31,"install":32,"resources":45},"01M77XEC0NKSWRZ6FZAB540AMW","shipit",null,"Release builds with the shipit CLI. Use when releasing or promoting a build to staging or prod, checking a release manifest, or rolling back a shipit deployment.","StartupBros-com\u002Fhov-stack","StartupBros-com","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F262958016?v=4","01M77WY8AH50FY939DTGZYHVE9","StartupBros.com","01M77WY8B5Q2D7VSS0P6Y0JX6E",1,"MIT","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: shipit\ndescription: Release builds with the shipit CLI. Use when releasing or promoting a build to staging or prod, checking a release manifest, or rolling back a shipit deployment.\n---\n\n# shipit\n\nshipit publishes the current build to a target (`staging` or `prod`) and keeps the previous release on each target so it can be rolled back. It reads `shipit.yaml` from the current directory, so run it from the project root.\n\n## Releasing\n\n1. Run `shipit check`. Do this before every `shipit release`, never skip it.\n2. Preview with `shipit release --target \u003Ctarget> --dry-run`, which prints the plan and publishes nothing. Always do this for prod.\n3. Release to staging first, then prod: `shipit release --target staging`, then `shipit release --target prod`.\n\nRelease notes are optional JSON, shaped exactly `{\"items\":[{\"id\":\"\u003Cticket>\",\"text\":\"\u003Csummary>\"}]}`; a bare array, a `notes` key, or extra keys inside an item are rejected:\n\n```\nshipit release --target prod --notes-json '{\"items\":[{\"id\":\"T-1420\",\"text\":\"Fix login redirect\"}]}'\n```\n\n## Checking\n\n`shipit check` validates `shipit.yaml`. If the file is missing it prints `no manifest` on stderr but still exits 0 (verified), so the exit code is not enough: treat `no manifest` as a failure, and make sure you are in the right directory. A March 2026 prod outage came from releasing a manifest that failed validation.\n\n## Rollback\n\n1. `shipit status` shows ACTIVE and PREVIOUS release ids per target.\n2. `shipit rollback --target \u003Ctarget>` returns the target to its previous release.\n3. Run `shipit status` again and confirm the previous id is now active, then `shipit check`.\n4. Tell the human which release is now active and which was rolled back.\n5. If the rollback fails, retry with `--retries 5`, and report the failure.\n6. Put the failed release id in the notes of the next release.\n\n## Purge (irreversible)\n\n`shipit purge \u003Crelease-id> --yes` deletes a release's artifacts from the remote store and cannot be undone. Run it only when the human names the release to purge, and add `--yes` only after they confirm.\n\n## Global options\n\n```\n--verbose             Print each step as it runs\n--quiet               Print only errors\n--no-color            Disable colored output\n--timeout \u003Cseconds>   Give up on a remote call after this long (default 60)\n--retries \u003Cn>         Retry failed remote calls this many times (default 2)\n```\n\nDry runs ignore `--retries`. Read each command's output before choosing the next command.\n","# shipit\n\nshipit publishes the current build to a target (`staging` or `prod`) and keeps the previous release on each target so it can be rolled back. It reads `shipit.yaml` from the current directory, so run it from the project root.\n\n## Releasing\n\n1. Run `shipit check`. Do this before every `shipit release`, never skip it.\n2. Preview with `shipit release --target \u003Ctarget> --dry-run`, which prints the plan and publishes nothing. Always do this for prod.\n3. Release to staging first, then prod: `shipit release --target staging`, then `shipit release --target prod`.\n\nRelease notes are optional JSON, shaped exactly `{\"items\":[{\"id\":\"\u003Cticket>\",\"text\":\"\u003Csummary>\"}]}`; a bare array, a `notes` key, or extra keys inside an item are rejected:\n\n```\nshipit release --target prod --notes-json '{\"items\":[{\"id\":\"T-1420\",\"text\":\"Fix login redirect\"}]}'\n```\n\n## Checking\n\n`shipit check` validates `shipit.yaml`. If the file is missing it prints `no manifest` on stderr but still exits 0 (verified), so the exit code is not enough: treat `no manifest` as a failure, and make sure you are in the right directory. A March 2026 prod outage came from releasing a manifest that failed validation.\n\n## Rollback\n\n1. `shipit status` shows ACTIVE and PREVIOUS release ids per target.\n2. `shipit rollback --target \u003Ctarget>` returns the target to its previous release.\n3. Run `shipit status` again and confirm the previous id is now active, then `shipit check`.\n4. Tell the human which release is now active and which was rolled back.\n5. If the rollback fails, retry with `--retries 5`, and report the failure.\n6. Put the failed release id in the notes of the next release.\n\n## Purge (irreversible)\n\n`shipit purge \u003Crelease-id> --yes` deletes a release's artifacts from the remote store and cannot be undone. Run it only when the human names the release to purge, and add `--yes` only after they confirm.\n\n## Global options\n\n```\n--verbose             Print each step as it runs\n--quiet               Print only errors\n--no-color            Disable colored output\n--timeout \u003Cseconds>   Give up on a remote call after this long (default 60)\n--retries \u003Cn>         Retry failed remote calls this many times (default 2)\n```\n\nDry runs ignore `--retries`. Read each command's output before choosing the next command.\n",{"name":5,"description":7},"main","5889e24531cb4e925523afbc48cbe1f42b5e4cd7","plugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2",0,"https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack","https:\u002F\u002Fhouseofvibe.ai","https:\u002F\u002Fgithub.com\u002FStartupBros-com","2026-11-15 05:18:00",{"source":8,"skillName":5,"commands":33,"prompt":43,"zipAvailable":44},[34,37,40],{"tool":35,"command":36},"npx","npx skills add StartupBros-com\u002Fhov-stack --skill shipit",{"tool":38,"command":39},"bunx","bunx skills add StartupBros-com\u002Fhov-stack --skill shipit",{"tool":41,"command":42},"pnpm","pnpm dlx skills add StartupBros-com\u002Fhov-stack --skill shipit","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002FSKILL.md",true,[46,52,56,60],{"path":47,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":50,"sourceHtmlUrl":51},"init.json","REFERENCE","参考文档",2329,"https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002Finit.json",{"path":53,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":54,"sourceHtmlUrl":55},"reply.txt",998,"https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002Freply.txt",{"path":57,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":58,"sourceHtmlUrl":59},"status.txt",62,"https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002Fstatus.txt",{"path":61,"resourceType":48,"resourceTypeDesc":49,"sizeBytes":62,"sourceHtmlUrl":63},"tools.txt",419,"https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fskill-tuner\u002Fexperiments\u002Ftrigger-improving-2026-10-29\u002Fresults\u002Fruns\u002Flive-cur-imp-2\u002Ftools.txt",[65,73,81,89,94,101],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":69,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M77XGSFPK8Q1XBHYTC1TF2MV","review-adversarial-first","Operator-invoked adversarial review: 3 refute-by-default lenses plus a deterministic judge against a PR, branch, or path, then a decision on whether \u002Fce-code-review's topic fan-out runs. Off the default merge path since the 2026-10-17 merge-and-end ruling; run only when asked for by name.","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-stack\u002Freview-adversarial-first\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-stack\u002Freview-adversarial-first\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":77,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M77XGNSF0ARDTK9P3EF2S4E4","memory-mine","Run one deterministic, budgeted directed-capture batch for an explicit Claude Code project store. Use manual workspace mode only when cross-agent cass sessions are intentionally in scope.","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-stack\u002Fmemory-mine\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-stack\u002Fmemory-mine\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":85,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":19},"01M77XGHB8NDSNVSDWFCN1WJBY","papers","Search preprints from arXiv, bioRxiv, and medRxiv without API keys. Supports search, lookup, extraction, citations, enrichment, and paper downloads that bundle PDFs plus linked GitHub code.","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-patches\u002Fpapers\u002FLICENSE","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-patches\u002Fpapers\u002FSKILL.md",[],[],{"skillNo":90,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":19},"01M77XGBC08DP018FQY16FM0X8","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fskills-patches\u002Fpapers\u002F.base\u002FSKILL.md",[],[],{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":19},"01M77XG4P5EM9PM8NGRZSJV4CB","wsl-cdp","Drive the user's real, logged-in Windows browser (Chrome, Edge, or Brave) from a Claude Code session running inside WSL2, over the Chrome DevTools Protocol - read authenticated dashboards and consoles, take real screenshots, open and read pages with the user's sessions. Use when a task needs the user's existing web logins and the session runs in WSL2, where the Claude in Chrome extension cannot work. Not for native-Windows or macOS Claude Code (use the official Claude in Chrome extension), not for anonymous scraping or CI (use headless Playwright inside WSL), not for getting past login walls (those are handed to the human).","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Fwsl-cdp\u002Fskills\u002Fwsl-cdp\u002FSKILL.md",[],[],{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":107,"publishedAt":19},"01M77XFZE48M4SQ2Y7A3GFY4RD","token-eater","[BETA] Spend a subscription's idle, about-to-expire credits on safe, machine-verified cleanup. You pick the service (Grok \u002F Codex \u002F Claude) and a token-heavy maintenance skill (de-monolithize, de-slop, simplify, dead-code); that service runs the whole skill -> gate -> self-review -> draft-PR loop on its own credits, in an isolated worktree. token-eater verifies the gate and never merges. Manual invocation only during beta.","https:\u002F\u002Fgithub.com\u002FStartupBros-com\u002Fhov-stack\u002Fblob\u002Fmain\u002Fplugins\u002Ftoken-eater\u002Fskills\u002Ftoken-eater\u002FSKILL.md",[],[]]