[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DK0A63TY611T7G30913VT6":3,"skill-same:01M6DK0A63TY611T7G30913VT6":69},{"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":29,"linkOnly":30,"markdownContent":31,"markdownBody":32,"frontMatter":33,"refName":41,"commitSha":42,"skillDirectory":5,"forksCount":43,"repositoryHtmlUrl":44,"repositoryHomepageUrl":6,"ownerHtmlUrl":45,"ownerBlogUrl":46,"ownerDescription":47,"updatedAt":48,"install":49,"resources":62},"01M6DK0A63TY611T7G30913VT6","unfreeze",null,"Clear the freeze boundary set by \u002Ffreeze, allowing edits to all directories again. (gstack)","garrytan\u002Fgstack","garrytan","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F19957?v=4","01M6DJCCDDG53MTYYRTXAXFG17","Garry Tan","01M6DJCCKGZB08AY82GDQXVJ8G",141364,"MIT","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Funfreeze\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28],"SET","boundary","freeze","Bash","read","edit","remove","gstack","clear","directories","2026-11-10 10:12:30",false,"---\nname: unfreeze\nversion: 0.1.0\ndescription: Clear the freeze boundary set by \u002Ffreeze, allowing edits to all directories again. (gstack)\ntriggers:\n  - unfreeze edits\n  - unlock all directories\n  - remove edit restrictions\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\nGSTACK_STATE_ROOT=$(~\u002F.claude\u002Fskills\u002Fgstack\u002Fbin\u002Fgstack-paths --get GSTACK_STATE_ROOT); : \"${GSTACK_STATE_ROOT:?gstack-paths failed; reinstall with .\u002Fsetup or \u002Fgstack-upgrade}\"\nmkdir -p \"$GSTACK_STATE_ROOT\"\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\")'\"}'  >> \"$GSTACK_STATE_ROOT\"\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Clear the boundary\n\n```bash\nbash \"$HOME\u002F.claude\u002Fskills\u002Fgstack\u002Ffreeze\u002Fbin\u002Ffreeze-state.sh\" clear\n```\n\nThis is explicit user-requested removal, not investigation cleanup. The shared writer serializes it with acquisition, replacement and owner-checked release. On `FREEZE_BUSY` or unexpected state, leave everything untouched and report recovery; never delete state or a possibly active mutation lock directly.\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\nGSTACK_STATE_ROOT=$(~\u002F.claude\u002Fskills\u002Fgstack\u002Fbin\u002Fgstack-paths --get GSTACK_STATE_ROOT); : \"${GSTACK_STATE_ROOT:?gstack-paths failed; reinstall with .\u002Fsetup or \u002Fgstack-upgrade}\"\nmkdir -p \"$GSTACK_STATE_ROOT\"\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\")'\"}'  >> \"$GSTACK_STATE_ROOT\"\u002Fanalytics\u002Fskill-usage.jsonl 2>\u002Fdev\u002Fnull || true\n```\n\n## Clear the boundary\n\n```bash\nbash \"$HOME\u002F.claude\u002Fskills\u002Fgstack\u002Ffreeze\u002Fbin\u002Ffreeze-state.sh\" clear\n```\n\nThis is explicit user-requested removal, not investigation cleanup. The shared writer serializes it with acquisition, replacement and owner-checked release. On `FREEZE_BUSY` or unexpected state, leave everything untouched and report recovery; never delete state or a possibly active mutation lock directly.\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":34,"triggers":35,"description":7,"allowed-tools":39},"0.1.0",[36,37,38],"unfreeze edits","unlock all directories","remove edit restrictions",[22,40],"Read","main","dd9834d44d2650818cb6d8e17c57f795cb56bf98",20873,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack","https:\u002F\u002Fgithub.com\u002Fgarrytan","https:\u002F\u002Fblog.garrytan.com","Writes software, dreams. ","2026-11-13 03:23:36",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add garrytan\u002Fgstack --skill unfreeze",{"tool":55,"command":56},"bunx","bunx skills add garrytan\u002Fgstack --skill unfreeze",{"tool":58,"command":59},"pnpm","pnpm dlx skills add garrytan\u002Fgstack --skill unfreeze","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Funfreeze\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"SKILL.md.tmpl","OTHER","其他",1619,"https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Funfreeze\u002FSKILL.md.tmpl",[70,98,118,137,151,162],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":81,"publishedAt":29},"01M6DK0K9VCQMFF4BKGT2S57V9","write-skill","Write a new agent skill or improve one without bloat: the edit ladder, levels, drift and size checks, full diets. (gstack)","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Fwrite-skill\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[82,83,84,85,86,87,88,89,90,91,92,93,24,23,26,94,22,95,96,97],"write","write skill","new","write a skill","bloat","ladder","add","size","diet","full","agent skill","grep","drift","improve","new agent","lesson",{"skillNo":99,"name":100,"nameZh":6,"description":101,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":29},"01M6DK0DMV3K47JV0KXTYGZ0F7","verify","Use when coding: run the checks and tests \u002Fship picks until green. (gstack)","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Fverify\u002FSKILL.md",[],[100,105,106,107,93,24,23,108,109,110,26,22,111,112,113,114,115,116,117],"change","coding","ship","run","work","check","tests","green","use","when","make","it","my",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":29},"01M6DK00ACSHDP8X0JE90FNQQJ","ubicloud","Run a heavy suite, build or eval on an ephemeral 16-vCPU Ubicloud VM: TTL-named VMs, a reaper, quota preflight and a hang watchdog. (gstack)","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Fubicloud\u002FSKILL.md",[],[120,125,126,127,128,129,130,131,132,23,108,133,134,26,22,135,136,91],"preflight","vms","remote","ttl","suite","eval","watchdog","test run","build","test","vm","quota",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":29},"01M6DJZXTBG6SAZKY1RX8BJG55","beta","Clean fixture tool skill with no forced reads and no mode table.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fcontext-bill\u002Ftree-a\u002Fbeta\u002FSKILL.md",[],[139,144,145,146,147,148,149,150],"mode","fixture tool","with","table","tool","fixture","clean",{"skillNo":152,"name":153,"nameZh":6,"description":154,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":155,"categories":156,"keywords":157,"publishedAt":29},"01M6DJZTJ0A0D31G2GH9FD3SE1","alpha","Fixture dispatcher with a mode table and forced-read references.","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Ftest\u002Ffixtures\u002Fcontext-bill\u002Ftree-a\u002Falpha\u002FSKILL.md",[],[153,23,158,159,149,160,161,144,146,147],"dispatcher","references","router","upstream",{"skillNo":163,"name":164,"nameZh":6,"description":165,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":166,"categories":167,"keywords":171,"publishedAt":29},"01M6DJZMK73SG3FZKDRY14MPM5","test-audit","Find low-value or duplicate tests and the test-only code they keep alive. (gstack)","https:\u002F\u002Fgithub.com\u002Fgarrytan\u002Fgstack\u002Fblob\u002Fmain\u002Ftest-audit\u002FSKILL.md",[168],{"categoryNo":169,"categoryName":170,"taxonomyType":79,"taxonomyTypeDesc":80},"01JBSEEDCAT000000000000008","测试与质量",[134,172,173,24,129,174,175,176,93,82,23,177,178,26,179,22,180,111,181],"audit","test audit","value","keep","prune","find","duplicate","code","only","test suite"]