[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6MWMVRQTPK6W1VRJ3JB326N":3,"skill-same:01M6MWMVRQTPK6W1VRJ3JB326N":68},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":32,"linkOnly":33,"markdownContent":34,"markdownBody":35,"frontMatter":36,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":61},"01M6MWMVRQTPK6W1VRJ3JB326N","unfreeze",null,"Clear the freeze boundary set by \u002Ffreeze, allowing edits to all directories\nagain. Use when you want to widen edit scope without ending the session.\nUse when asked to \"unfreeze\", \"unlock edits\", \"remove freeze\", or\n\"allow all edits\". (gstack)","forbotsake\u002Fforbotsake","forbotsake","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F273708741?v=4","01M6MW9A04DY7WQBA8YF96SVJE","01M6MW9A47HYRVBBQ642740E75",5,"MIT","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgstack\u002Funfreeze\u002FSKILL.md",[],[5,18,19,20,21,22,23,24,25,26,27,28,29,30,31],"SET","boundary","freeze","Bash","read","edit","session","remove","use","gstack","clear","scope","you","directories","2026-11-10 10:12:30",false,"---\nname: unfreeze\nversion: 0.1.0\ndescription: |\n  Clear the freeze boundary set by \u002Ffreeze, allowing edits to all directories\n  again. Use when you want to widen edit scope without ending the session.\n  Use when asked to \"unfreeze\", \"unlock edits\", \"remove freeze\", or\n  \"allow all edits\". (gstack)\nallowed-tools:\n  - Bash\n  - Read\n---\n\u003C!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->\n\u003C!-- Regenerate: bun run gen:skill-docs -->\n\n# \u002Funfreeze — Clear Freeze Boundary\n\nRemove the edit restriction set by `\u002Ffreeze`, allowing edits to all directories.\n\n```bash\nmkdir -p ~\u002F.gstack\u002Fanalytics\necho '{\"skill\":\"unfreeze\",\"ts\":\"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'\",\"repo\":\"'$(basename \"$(git rev-parse --show-toplevel 2>\u002Fdev\u002Fnull)\" 2>\u002Fdev\u002Fnull || echo \"unknown\")'\"}'  >> ~\u002F.gstack\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Clear the boundary\n\n```bash\nSTATE_DIR=\"${CLAUDE_PLUGIN_DATA:-$HOME\u002F.gstack}\"\nif [ -f \"$STATE_DIR\u002Ffreeze-dir.txt\" ]; then\n  PREV=$(cat \"$STATE_DIR\u002Ffreeze-dir.txt\")\n  rm -f \"$STATE_DIR\u002Ffreeze-dir.txt\"\n  echo \"Freeze boundary cleared (was: $PREV). Edits are now allowed everywhere.\"\nelse\n  echo \"No freeze boundary was set.\"\nfi\n```\n\nTell the user the result. Note that `\u002Ffreeze` hooks are still registered for the\nsession — they will just allow everything since no state file exists. To re-freeze,\nrun `\u002Ffreeze` again.\n","\u003C!-- AUTO-GENERATED from SKILL.md.tmpl — do not edit directly -->\n\u003C!-- Regenerate: bun run gen:skill-docs -->\n\n# \u002Funfreeze — Clear Freeze Boundary\n\nRemove the edit restriction set by `\u002Ffreeze`, allowing edits to all directories.\n\n```bash\nmkdir -p ~\u002F.gstack\u002Fanalytics\necho '{\"skill\":\"unfreeze\",\"ts\":\"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'\",\"repo\":\"'$(basename \"$(git rev-parse --show-toplevel 2>\u002Fdev\u002Fnull)\" 2>\u002Fdev\u002Fnull || echo \"unknown\")'\"}'  >> ~\u002F.gstack\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Clear the boundary\n\n```bash\nSTATE_DIR=\"${CLAUDE_PLUGIN_DATA:-$HOME\u002F.gstack}\"\nif [ -f \"$STATE_DIR\u002Ffreeze-dir.txt\" ]; then\n  PREV=$(cat \"$STATE_DIR\u002Ffreeze-dir.txt\")\n  rm -f \"$STATE_DIR\u002Ffreeze-dir.txt\"\n  echo \"Freeze boundary cleared (was: $PREV). Edits are now allowed everywhere.\"\nelse\n  echo \"No freeze boundary was set.\"\nfi\n```\n\nTell the user the result. Note that `\u002Ffreeze` hooks are still registered for the\nsession — they will just allow everything since no state file exists. To re-freeze,\nrun `\u002Ffreeze` again.\n",{"name":5,"version":37,"description":38,"allowed-tools":39},"0.1.0","Clear the freeze boundary set by \u002Ffreeze, allowing edits to all directories\nagain. Use when you want to widen edit scope without ending the session.\nUse when asked to \"unfreeze\", \"unlock edits\", \"remove freeze\", or\n\"allow all edits\". (gstack)\n",[21,40],"Read","main","d91f0c567548c80403f85619693a405ed65d2b60",".claude\u002Fskills\u002Fgstack\u002Funfreeze",1,"https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake","https:\u002F\u002Fgithub.com\u002Fforbotsake","2026-08-17 21:39:59",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":60},[50,53,56],{"tool":51,"command":52},"npx","npx skills add forbotsake\u002Fforbotsake --skill unfreeze",{"tool":54,"command":55},"bunx","bunx skills add forbotsake\u002Fforbotsake --skill unfreeze",{"tool":57,"command":58},"pnpm","pnpm dlx skills add forbotsake\u002Fforbotsake --skill unfreeze","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgstack\u002Funfreeze\u002FSKILL.md",true,[62],{"path":63,"resourceType":64,"resourceTypeDesc":65,"sizeBytes":66,"sourceHtmlUrl":67},"SKILL.md.tmpl","OTHER","其他",1268,"https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgstack\u002Funfreeze\u002FSKILL.md.tmpl",[69,88,113,142,165,199],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":32},"01M6MWS487CZVEME2DWGT48C58","forbotsake-upgrade","Upgrade forbotsake to the latest version. Detects install type (git clone\nvs vendored), runs the upgrade, and shows what's new.\nUse when: \"upgrade forbotsake\", \"update forbotsake\", \"get latest version\",\n\"forbotsake update\".","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-upgrade\u002FSKILL.md",[],[76,77,9,78,79,21,22,80,81,26,82,83,84,85,86,87],"upgrade","forbotsake upgrade","update","git","write","install","version","git clone","get","type","latest","clone",{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":99,"publishedAt":32},"01M6MWRZ7XD9Q73JTRBQ0N8682","forbotsake-spy","Stage 3: RESEARCH (competitors). Analyzes 3-5 competitors to find messaging whitespace\nand positioning gaps. Produces competitor-analysis.md with a messaging matrix showing\nwhat each competitor says, what's missing, and where you can win.\nUse when: \"competitor analysis\", \"competitive research\", \"what are others doing\",\n\"market landscape\", \"who am I competing with\", \"spy on competitors\",\n\"messaging whitespace\", \"differentiation research\".\nProactively invoke when the user mentions competitors or asks how to differentiate.","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-spy\u002FSKILL.md",[94],{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[100,9,101,102,103,21,104,22,80,23,26,105,106,107,108,109,110,30,111,112],"forbotsake spy","messaging","analysis","how","competitors","positioning","landscape","missing","how to","differentiation","competitive","websearch","matrix",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":128,"publishedAt":32},"01M6MWRPHXWYB38V08BZM8SSRE","forbotsake-sharpen","Stage 4.5: SHARPEN. Takes a specific outreach target (person or organization) and\nproduces a deep execution plan with contextual research, relationship mapping,\nangle selection, and a multi-touch sequence. Reads your founder profile and strategy\nto leverage warm paths and unfair advantages.\nUse when: \"refine this plan\", \"go deeper on this\", \"sharpen execution\",\n\"how do I approach [person]\", \"outreach to [person]\", \"target [person\u002Forg]\",\n\"approach [person]\", \"engage [org]\".\nProactively invoke when the user mentions approaching a specific person or\norganization as part of their marketing strategy.\nRequires: strategy.md (from \u002Fforbotsake-marketing-start).","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-sharpen\u002FSKILL.md",[119,122,123],{"categoryNo":120,"categoryName":121,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":95,"categoryName":96,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000035","市场营销","PROFESSION","适用职业",[129,130,9,131,103,21,132,22,80,23,133,134,135,136,137,138,139,140,111,141],"sharpen","forbotsake sharpen","start","plan","selection","relationship","organization","refine","deeper","deep","leverage","paths","sequence",{"skillNo":143,"name":144,"nameZh":6,"description":145,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":146,"categories":147,"keywords":150,"publishedAt":32},"01M6MWRHXHECX1N4WNHBJJQKER","forbotsake-retro","Stage 9: MEASURE. Reviews what you published, analyzes performance data,\nand produces a retro report with evidence-based recommendations.\nTells you what to double down on, what to drop, and what to try next.\nUse when: \"what worked\", \"marketing retro\", \"measure results\", \"review performance\",\n\"which content performed best\", \"should I keep doing this\".\nProactively invoke one week after \u002Fforbotsake-publish was last run.","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-retro\u002FSKILL.md",[148,149],{"categoryNo":120,"categoryName":121,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},[151,152,9,153,154,155,156,157,21,158,22,80,23,159,160,161,30,162,163,164],"retro","forbotsake retro","review","performance","run","publish","data","marketing","next","drop","recommendations","reviews","which","what worked",{"skillNo":166,"name":167,"nameZh":6,"description":168,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":169,"categories":170,"keywords":183,"publishedAt":32},"01M6MWRB8GN0AZTEVTQD1GBA8K","forbotsake-publish","Stage 8: SHIP. Two modes: POST (auto-post via Claude for Chrome) or COPY\n(format for copy-paste). Handles X\u002FTwitter threads, LinkedIn posts, blog posts,\nand more. Logs everything for retrospective analysis.\nFor auto-posting, the user needs the Claude for Chrome extension installed.\nWithout it, the skill falls back to COPY mode automatically.\nUse when: \"publish this\", \"format for twitter\", \"post to X\", \"ship this content\",\n\"format for blog\", \"send this email\", \"ready to publish\", \"auto-post\",\n\"post this to X\", \"publish to LinkedIn\".\nProactively invoke when the user has content in content\u002F and says they want to ship it.","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-publish\u002FSKILL.md",[171,174,177,180],{"categoryNo":172,"categoryName":173,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":175,"categoryName":176,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":178,"categoryName":179,"taxonomyType":97,"taxonomyTypeDesc":98},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":181,"categoryName":182,"taxonomyType":126,"taxonomyTypeDesc":127},"01JBSEEDCAT000000000000036","内容创作者",[156,184,9,185,186,187,188,189,190,22,80,23,191,192,193,194,195,196,197,198],"forbotsake publish","MCP","image","create","logs","ship","text","context","auto","ready","chrome extension","posts","paste","mode","send",{"skillNo":200,"name":201,"nameZh":6,"description":202,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":203,"categories":204,"keywords":207,"publishedAt":32},"01M6MWR5K98QN9BDH4179Y47F0","forbotsake-marketing-start","The starting point for marketing your product. Reads your codebase to understand\nwhat you built, asks 5 hard questions about positioning, audience, and channels,\nthen produces strategy.md with your marketing strategy and first concrete move.\nUse when: \"how should I market this\", \"go-to-market\", \"GTM\", \"positioning\",\n\"I don't know how to sell this\", \"help me market\", \"marketing strategy\".\nProactively invoke when the user asks about marketing, growth, or getting users\nand no strategy.md exists yet.","https:\u002F\u002Fgithub.com\u002Fforbotsake\u002Fforbotsake\u002Fblob\u002Fmain\u002Fforbotsake-marketing-start\u002FSKILL.md",[205,206],{"categoryNo":120,"categoryName":121,"taxonomyType":97,"taxonomyTypeDesc":98},{"categoryNo":124,"categoryName":125,"taxonomyType":126,"taxonomyTypeDesc":127},[131,158,208,9,209,210,103,21,22,80,23,211,105,212,108,213,214,30,111,215],"forbotsake marketing start","go","product","me","gtm","go-to-market","move","for"]