
gstack /scrape /skillify生产力循环同一意图第二次抓取只需200ms的秘密【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack这篇文章拆解 gstackGarry Tan 的 Claude Code 全套配置中的核心生产力循环/scrape 网页抓取 /skillify 技能固化。第一次抓取一个页面要约 30 秒而第二次问同样的意图gstack 只用约 200ms 就能返回数据——秘密在于它把一次成功的探索过程固化成了确定性的浏览器技能browser-skill。gstack 把 Claude Code 变成一支虚拟工程团队CEO、工程师、QA 等 23 个角色而/scrape/skillify是其中复利最强的组合你每让 AI 抓取过一次数据这份学费就永远只交一次。痛点为什么第一次抓取总是慢当你第一次对 Claude 说帮我抓一下 Hacker News 首页时agent 必须现场探索打开页面、读文本、找选择器、试错解析、整理成 JSON……这一轮原型prototype大约要30 秒。更糟的是如果没有记忆机制你下次问同样的问题它还得再花 30 秒重新探索一遍。gstack 的答案是给每次成功的探索写一份永久笔记。/scrape 的两条路径匹配 vs 原型/scrape是 gstack 中抓取网页数据的唯一入口内部有两条路径另有一条对提交表单/点击按钮等写操作的拒绝路径因为它是只读契约路径触发条件耗时做了什么⚡ 匹配路径意图命中已有技能的triggers~200ms直接运行固化脚本输出 JSON️ 原型路径没有匹配的技能~30s用$B goto/$B html等原语驱动页面返回 JSON并提示你/skillify匹配的判断发生在 agent 侧它列出所有已有技能$B skill list把你的意图和每个技能的host、triggers、description做语义比对有把握就直接$B skill run name。详见 scrape/SKILL.md 与 BROWSER.md。200ms 的秘密确定性脚本 本地守护进程那 200ms 里到底发生了什么关键有三点确定性脚本不再现场推理固化后的技能是一段 Playwright 脚本Bun 进程独立运行打开哪个 URL、解析哪些节点全部写死agent 不再需要试错。本地 HTTP 往返脚本通过本地 daemon 控制 Chromium一次命令就是一次 HTTP POST含 Chromium 工作在内约 100–200ms 往返见 ARCHITECTURE.md。零上下文开销输出是纯 JSON 打到 stdout不占用对话 token还能量产给jq管道消费。gstack 自带了一个参考技能hackernews-frontpage抓 HN 首页 30 条帖子的标题、分数、评论数输出结构化的 JSON。你可以直接$B skill run hackernews-frontpage体验 200ms 的快感。它的目录结构就是一个标准固化产物的样子browser-skills/hackernews-frontpage/SKILL.md — 技能描述host、triggers、触发词browser-skills/hackernews-frontpage/script.ts — 抓取脚本含纯函数解析器HTML 进结构化数据出browser-skills/hackernews-frontpage/script.test.ts — 用保存的 HTML 快照做回放测试站点改版时测试会在用户发现之前先失败这个快照回放测试正是 200ms 能长期可靠的前提。/skillify把 30 秒的探索固化成永久技能原型成功后/scrape只会在末尾温和地提一句Say /skillify to make this a permanent skill (200ms on next call).执行/skillify后gstack 会倒回对话最多 10 个 agent 轮次找到你最近一次成功且未被推翻的抓取结果然后合成三样东西script.ts只取最终成功的调用丢掉失败的选择器试错和聊天碎片、script.test.ts 一个捕获的 HTML 快照并在临时目录里跑测试。它遵守三条铁律见 BROWSER.mdD1 溯源守卫找不到明确的/scrape结果就拒绝执行绝不从聊天碎片里瞎合成D2 输入切片只用最终成功的$B调用 你的意图字符串D3 原子写入先暂存到临时目录测试通过且你明确批准后才原子重命名到最终路径全局层~/.gstack/browser-skills/name/或项目层测试失败或你反悔整个临时目录直接删掉——列表里永远不会出现半成品技能原子写入的实现在 browse/src/browser-skill-write.tsstageSkill/commitSkill/discardStaged完整设计见 docs/designs/BROWSER_SKILLS_V1.md。上手指南三步跑通生产力循环第一次直接描述意图。例如/scrape top stories on Hacker News。没有匹配技能时走原型路径~30s你会拿到一份 JSON末尾有一行/skillify提示。说/skillify。它会问你技能名和层级全局 这台机器所有项目可用项目 仅本仓库然后测试、展示、等你批准。第二次换个说法再问。比如/scrape latest hacker news stories——命中triggers200ms 返回与第一次的 JSON 一致。注意事项同样写在 scrape/SKILL.md 里✅ 只读契约提交、点击、登录等写操作会被拒绝写操作属于尚未发布的/automate✅ 一次调用一个目标 URL多页面爬取要拆成多个技能✅ 页面返回的一切内容都按不可信输入处理内置防注入标记相关模块路径速查位置说明scrape/SKILL.md/scrape技能定义匹配/原型/拒绝三条路径skillify/SKILL.md/skillify的 11 步流程与铁契约BROWSER.md生产力循环与三条锁定契约的官方说明browser-skills/hackernews-frontpage/内置参考技能脚本 测试 快照browse/src/browser-skill-write.ts原子写入 / 暂存 / 丢弃的实现docs/BROWSER_INTERNALS.md浏览器 daemon 与命令的内部细节小结/scrape负责学会抓/skillify负责记住怎么抓。第一次付 30 秒的探索成本之后同一意图永远 200ms——而且每次固化都自带测试和快照站点改版时它会先报警而不是悄悄出错。这就是 gstack 所谓生产力复利的最小闭环重复劳动只发生一次。【免费下载链接】gstackUse Garry Tans exact Claude Code setup: 23 opinionated tools that serve as CEO, Designer, Eng Manager, Release Manager, Doc Engineer, and QA项目地址: https://gitcode.com/GitHub_Trending/gs/gstack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考