[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CS13SB3Z40578CT6H7X4DP":3,"skill-same:01M6CS13SB3Z40578CT6H7X4DP":59},{"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":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":20,"commitSha":39,"skillDirectory":40,"forksCount":41,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":44,"ownerDescription":6,"updatedAt":45,"install":46,"resources":58},"01M6CS13SB3Z40578CT6H7X4DP","rebase-on-main",null,"Rebase the current feature branch onto local main to pick up recent main changes without merging. Verifies no main content is lost during conflict resolution.","kfet\u002Ffir","kfet","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F14585?v=4","01M6CRZCB8P1V37WM3X0GB2DA6","Kalin Fetvadjiev","01M6CRZCFG1EW1WEN4RK84W1N5",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Frebase-on-main\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32],"rebase","main","rebase on main","content","pick","branch","up","conflict resolution","local","conflict","resolution","feature","true","changes","2026-11-10 10:12:30",false,"---\nbuiltin: true\nname: rebase-on-main\ndescription: Rebase the current feature branch onto local main to pick up recent main changes without merging. Verifies no main content is lost during conflict resolution.\noverride: true\n---\n\n1. `git rebase main`. When conflicts arise, preserve main's content and re-apply only the feature's intended changes on top.\n2. **Verify the diff** — `git diff main..HEAD`. Confirm it contains only the feature's intended changes and nothing that removes or reverts existing main content. If main changes were dropped, abort and fix.\n3. **Update CHANGELOG.md** — ensure all commits being rebased have corresponding entries in the `[Unreleased]` section. Add any missing ones under the appropriate subsection (Added\u002FChanged\u002FFixed\u002FRemoved). **Verify they are under `## [Unreleased]`, not merely present**: rebasing across a release boundary silently relocates them into the just-released section, conflict-free, and step 2's diff still looks clean (pure additions, zero deletions). Read `sed -n '1,40p' CHANGELOG.md` and confirm each entry sits above the first `## [x.y.z]` heading; move any that don't.\n4. **Build** — run `make all` to confirm nothing broke.\n","1. `git rebase main`. When conflicts arise, preserve main's content and re-apply only the feature's intended changes on top.\n2. **Verify the diff** — `git diff main..HEAD`. Confirm it contains only the feature's intended changes and nothing that removes or reverts existing main content. If main changes were dropped, abort and fix.\n3. **Update CHANGELOG.md** — ensure all commits being rebased have corresponding entries in the `[Unreleased]` section. Add any missing ones under the appropriate subsection (Added\u002FChanged\u002FFixed\u002FRemoved). **Verify they are under `## [Unreleased]`, not merely present**: rebasing across a release boundary silently relocates them into the just-released section, conflict-free, and step 2's diff still looks clean (pure additions, zero deletions). Read `sed -n '1,40p' CHANGELOG.md` and confirm each entry sits above the first `## [x.y.z]` heading; move any that don't.\n4. **Build** — run `make all` to confirm nothing broke.\n",{"name":5,"builtin":38,"override":38,"description":7},true,"76b360b35f87ec18e1776cf6feafc7a025bdea64","pkg\u002Fresources\u002Fbuiltin_skills\u002Frebase-on-main",0,"https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir","https:\u002F\u002Fgithub.com\u002Fkfet","https:\u002F\u002Fgithub.com\u002Fkalin-sa","2026-11-13 02:17:59",{"source":8,"skillName":5,"commands":47,"prompt":57,"zipAvailable":38},[48,51,54],{"tool":49,"command":50},"npx","npx skills add kfet\u002Ffir --skill rebase-on-main",{"tool":52,"command":53},"bunx","bunx skills add kfet\u002Ffir --skill rebase-on-main",{"tool":55,"command":56},"pnpm","pnpm dlx skills add kfet\u002Ffir --skill rebase-on-main","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Frebase-on-main\u002FSKILL.md",[],[60,84,102,125,143,174],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":33},"01M6CS290490SZNX8V35TF3N6X","wt","Spawn a fresh fir agent in its own tmux session on its own git worktree. Use whenever the user wants the work — or the conversation about the work — to happen over there, not here. If the user points at this skill, or has directly loaded it in the context, that alone is the cue — spawn, don't inline.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwt\u002FSKILL.md",[],[62,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,31,82,83],"tmux","git","worktree","git worktree","work","context","user","spawn","session","use","conversation","cue","fresh","it","about","at","inline",{"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":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":33},"01M6CS26KAKJ7VYRQ3RJ31SJ6S","wrap-up","Wrap up work on a project branch — review, fix, and simplify in a loop until clean, then ff-merge to main.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fwrap-up\u002FSKILL.md",[],[91,25,92,93,94,95,96,97,71,24,98,99,20,100,101,31],"wrap up","wrap","review","merge","simplify","loop","work on","fix","clean","merge to main","project",{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":33},"01M6CS23P85MSVBX11XMFB29PF","tmux-observer","Attach a tmux window to an already-running fir session — observe its transcript and drive its input via tmux send-keys. Use when you need to watch or steer another fir agent.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-observer\u002FSKILL.md",[],[67,109,110,111,75,76,112,113,114,115,116,117,118,31,119,120,121,122,123,124],"tmux observer","observer","transcript","drive","observe","attach","watch","input","via","you","keys","steer","window","send","when","running",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":33},"01M6CS21ENQ3D7Z08TDKXHJRR6","tmux-driver","Drive interactive CLIs (python, gdb, etc.) via named tmux sessions with multi-window support. Falls back to fir's built-in PTY driver when tmux is unavailable.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftmux-driver\u002FSKILL.md",[],[67,132,133,134,135,136,137,138,112,139,140,117,141,142,31,121,123],"tmux driver","driver","python","support","sessions","interactive","PTY","back","gdb","multi","with",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":154,"publishedAt":33},"01M6CS1YWSAH2TQ7S4VK7VKJT6","telegram-bot-setup","Set up a new Telegram bot channel for a fir project — install the telegram MCP, create a per-project state dir, drop in the bot token, wire .fir\u002Fmcp.json with TELEGRAM_STATE_DIR, pair the user, and verify. Use when the user asks to add, configure, or onboard a Telegram bot for a fir worktree\u002Fproject.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Ftelegram-bot-setup\u002FSKILL.md",[149],{"categoryNo":150,"categoryName":151,"taxonomyType":152,"taxonomyTypeDesc":153},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[155,156,157,158,159,160,161,162,69,163,164,165,166,167,168,169,170,76,25,171,101,142,31,172,123,173],"bot","setup","telegram bot","telegram","telegram bot setup","MCP","create","state","SET","verify","onboard","configure","json","pair","install","channel","drop","for","new",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":180,"publishedAt":33},"01M6CS1VSW4C1W1QED8NDHBHZ9","sync","Sync with an upstream source repo — detect changed files, apply equivalent downstream edits, update the baseline, and report any new features or non-trivial changes picked up.","https:\u002F\u002Fgithub.com\u002Fkfet\u002Ffir\u002Fblob\u002Fmain\u002Fpkg\u002Fresources\u002Fbuiltin_skills\u002Fsync\u002FSKILL.md",[],[176,181,182,183,184,25,185,186,187,142,31,188,32,189,190,173],"update","report","baseline","repo","files","upstream","detect","source","features","apply"]