[{"data":1,"prerenderedAt":312},["ShallowReactive",2],{"about:header-avatar":3,"content:\u002F2026\u002Farticle-20260830-020908-86221e67":53,"surround:\u002F2026\u002Farticle-20260830-020908-86221e67":303},{"id":4,"title":5,"author":6,"avatar":7,"body":8,"categories":32,"date":34,"description":14,"draft":35,"extension":36,"image":6,"meta":37,"navigation":39,"path":40,"permalink":6,"published":6,"readingTime":41,"recommend":6,"references":6,"seo":46,"sitemap":6,"stem":47,"summary":48,"tags":49,"type":50,"updated":6,"updatedAt":51,"__hash__":52},"content\u002Fabout\u002Fprofile.md","关于我",null,"https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Fprofile\u002F917a55b1-a628-406b-8bdf-76a0a8ad81fa.gif",{"type":9,"value":10,"toc":28},"minimark",[11,15],[12,13,14],"p",{},"你好，我是 fly，热爱VibeCoding。",[12,16,17,18,21],{},"这里记录技术、学习与生活，也保存那些值得回看的瞬间。比起给自己贴上固定标签，我更愿意把这个页面当作一份持续更新的自述。",[19,20],"br",{},[22,23],"img",{"alt":24,"height":25,"src":26,"width":27},"infj.png",657,"https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Fprofile\u002F3000773f-11b2-4991-9690-5dae22d4295e.png",2394,{"title":29,"searchDepth":30,"depth":30,"links":31},"",4,[],[33],"未分类","2026-08-03",false,"md",{"slots":38},{},true,"\u002Fabout\u002Fprofile",{"text":42,"minutes":43,"time":44,"words":45},"1 min read",0.31,18600,62,{"title":5,"description":14},"about\u002Fprofile","一个持续学习、写代码，也认真生活的人。",[],"tech","2026-08-15T16:30:01.712Z","lh9cPHNRLSqkb9FCNmSSp2fFeGPq6_IT7NaiH-elDUA",{"id":54,"title":55,"author":6,"avatar":6,"body":56,"categories":285,"date":288,"description":289,"draft":35,"extension":36,"image":116,"meta":290,"navigation":39,"path":292,"permalink":6,"published":6,"readingTime":293,"recommend":6,"references":6,"seo":298,"sitemap":299,"stem":300,"summary":6,"tags":301,"type":50,"updated":6,"updatedAt":6,"__hash__":302},"content\u002Fposts\u002F2026\u002Farticle-20260830-020908-86221e67.md","AI 编程工作流：Trellis",{"type":9,"value":57,"toc":276},[58,63,69,74,77,83,86,111,117,120,123,133,136,142,149,155,168,171,203,209,212,215,226,229,237,245,249,255,261,264,267,270,273],[59,60,62],"h2",{"id":61},"trellis是什么","Trellis是什么",[12,64,65],{},[66,67,68],"strong",{},"AI 编程脚手架，把项目规范、任务进度、工作记忆、经验沉淀，从临时对话搬到项目下的文件中。它解决的核心问题不是“AI 会不会写代码”，而是“怎么让 AI 在复杂项目里，长期、稳定、按照项目规范完成开发任务”。",[12,70,71],{},[66,72,73],{},"三大优势：",[12,75,76],{},"显著缓解会话失忆：它可以把任务当前的进展状况记录在日志里，新会话启动，自动从日志中恢复当前的任务记忆",[12,78,79,82],{},[66,80,81],{},"跨平台共享核心","：.cursorrules 只能在 cursor 用，CLAUDE.md 只能在 claude code 用，但.trellis\u002F 核心是跨平台的，支持各种编程工具",[12,84,85],{},"形成完整的项目级闭环：把 spec、task、workflow、journal 组织成完整闭环，比如：",[87,88,89,93,96,99,102],"ul",{},[90,91,92],"li",{},"spec 管长期规范",[90,94,95],{},"task 管当前任务",[90,97,98],{},"workflow 管当前阶段",[90,100,101],{},"journal 管工作记忆",[90,103,104,105,107],{},"任务收尾的时候，ai 会引导我们判断哪些经验值得长期复用，再把稳定规则写回 spec 里面",[19,106],{},[22,108],{"alt":109,"src":110},"trellis三大优势.jpg","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F72d2d88c-7422-416a-9377-506897f000f0.jpg",[12,112,113],{},[22,114],{"alt":115,"src":116},"为什么适合 sc.png","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F8779104c-627a-48c5-9940-6e3524176c35.png",[59,118,119],{"id":119},"核心结构",[12,121,122],{},"Trellis 的核心结构在项目根目录的 .trellis\u002F 文件夹中。它取代了传统的单体规则文件，拆分为三个维度：",[124,125,126],"ol",{},[90,127,128,129,132],{},"trellis\u002Fspec\u002F（",[66,130,131],{},"规范层","）",[12,134,135],{},"用于存放 Markdown 格式的编码标准、目录结构规则、评审习惯等。Trellis 的机制是按需加载，它只会向 AI 注入与当前任务相关的规范，而不是一次性塞入所有内容。",[124,137,139],{"start":138},2,[90,140,141],{},"trellis\u002Ftasks\u002F（任务层）",[12,143,144,145,148],{},"存放结构化的 ",[66,146,147],{},"prd","（需求文档）、design（设计文档）、implement（实现计划）以及当前任务信息。这能确保 AI 的产出始终紧扣业务目标，不偏离任务轨道。",[124,150,152],{"start":151},3,[90,153,154],{},"列表项trellis\u002Fworkspace\u002F（记忆与工作区）",[12,156,157,158,161,162,164],{},"这是解决“",[66,159,160],{},"会话失忆","”的核心。这里存放工作日志（Journals）。它会记录上一次会话执行了什么、发现了什么 Bug、下一步要做什么。每次新会话开始时，AI 会先读取工作区日志，无缝接续上次的思考逻辑。建议上述三部分加入到git，这样整个团队都可以共享。",[19,163],{},[22,165],{"alt":166,"src":167},"image.png","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F9e56e3f3-67c3-4b23-94df-ad946e486666.png",[59,169,170],{"id":170},"工作流程",[172,173,174],"mac-window",{},[124,175,176,179,182,185,188,191,194,197,200],{},[90,177,178],{},"新会话启动时，先恢复项目上下文",[90,180,181],{},"每轮 prompt 注入 workflow-state",[90,183,184],{},"判断当前对话是否需要创建 task",[90,186,187],{},"planning 阶段把需求整理成 task artifact",[90,189,190],{},"execute 阶段按 task artifact + spec 实现",[90,192,193],{},"check 阶段按任务和规范复核",[90,195,196],{},"update-spec 阶段筛选稳定经验",[90,198,199],{},"work commit 先完成",[90,201,202],{},"finish-work 归档 task，写 journal",[12,204,205],{},[22,206],{"alt":207,"src":208},"trellis流程.jpg","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F0ab96f25-6b4b-46e5-b524-063258b07c6a.jpg",[59,210,211],{"id":211},"团队使用建议",[12,213,214],{},"需要进入 git 的有这些：",[87,216,217,220,223],{},[90,218,219],{},"trellis\u002Fspec\u002F：团队规范，和代码一样走 pr review",[90,221,222],{},"trellis\u002Ftasks\u002F：任务目录（prd、design、research），是项目资产",[90,224,225],{},"trellis\u002Fworkspace\u002F{name}\u002F：各开发者的 journal，\u002Ftrellis:finish-work 会追加 journal",[12,227,228],{},"不需要进入 git 的有这些：",[87,230,231,234],{},[90,232,233],{},"trellis\u002F.developer：记录当前开发者名，gitignored",[90,235,236],{},"trellis\u002F.runtime\u002F：会话运行时状态，gitignored",[12,238,239],{},[66,240,241,242,244],{},"重要 spec 改动应该在团队里讨论，spec 库要当成团队代码来维护。",[19,243],{},"这样规范演进是可控的、可追溯的。不会出现某个人私自改了规范，其他人不知道的情况。",[59,246,248],{"id":247},"和其他harness的区别","和其他Harness的区别",[12,250,251],{},[22,252],{"alt":253,"src":254},"harness对比.jpg","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F834e09c8-5059-4ba5-9b9b-1aa3c4ec4738.jpg",[12,256,257],{},[22,258],{"alt":259,"src":260},"harness对比2.jpg","https:\u002F\u002Fflyovo.cc.cd\u002Fmedia\u002Fpublic\u002Farticles\u002F2026\u002F08\u002F5c27ecdc-e286-413e-b948-d05a3238caa5.jpg",[59,262,263],{"id":263},"基础使用",[12,265,266],{},"略",[59,268,269],{"id":269},"其他",[12,271,272],{},"如果感觉Trellis还是很重，可以尝试用 mattpocock\u002Fskills 系列的 skill 组合：",[12,274,275],{},"grill-me\u002Fgrill-with-docs（需求聊透） → prototype（可选，快速输出demo，验证可行性） → to-prd（输出方案） → to-issues（任务拆分） → tdd（测试驱动开发）→ diagnose（可选，改bug）",{"title":29,"searchDepth":30,"depth":30,"links":277},[278,279,280,281,282,283,284],{"id":61,"depth":138,"text":62},{"id":119,"depth":138,"text":119},{"id":170,"depth":138,"text":170},{"id":211,"depth":138,"text":211},{"id":247,"depth":138,"text":248},{"id":263,"depth":138,"text":263},{"id":269,"depth":138,"text":269},[286,287],"开发","技术","2026-08-29","AI 编程脚手架，把项目规范、任务进度、工作记忆、经验沉淀，从临时对话搬到项目下的文件中。它解决的核心问题不是“AI 会不会写代码”，而是“怎么让 AI 在复杂项目里，长期、稳定、按照项目规范完成开发任务”",{"slots":291},{},"\u002F2026\u002Farticle-20260830-020908-86221e67",{"text":294,"minutes":295,"time":296,"words":297},"5 min read",4.18,250800,836,{"title":55,"description":289},{"loc":292},"posts\u002F2026\u002Farticle-20260830-020908-86221e67",[],"gnEb5lJv33xrsKyBL97ZNU9apTy01IKDg1Fs22uuou4",[304,308],{"title":305,"path":306,"stem":307,"date":288,"type":50,"children":-1},"关于国乒和国足坐一桌？","\u002F2026\u002Farticle-20260829-194951-7598b41e","posts\u002F2026\u002Farticle-20260829-194951-7598b41e",{"title":309,"path":310,"stem":311,"date":288,"type":50,"children":-1},"AI中转站科普与揭秘-如何赚钱？","\u002F2026\u002Farticle-20260830-023446-fa104da8","posts\u002F2026\u002Farticle-20260830-023446-fa104da8",1789377375209]