A feed of playable apps needs a supply of playable apps. This is the overview of the two pipelines I designed and co-built for HappySeeds: App Variant Studio, which batch-generates H5 apps, and Seed Builder, which does the same for full web apps. The mechanics are shown at overview level here; I am happy to walk through the details in person.一个全是可玩应用的 Feed,需要可玩应用的供给。这里概览我为 HappySeeds 设计并参与构建的两条管线:批量生成 H5 应用的 App Variant Studio,以及把同样的事做到完整网页应用的 Seed Builder。本页只讲到概览层,细节欢迎当面交流。
HappySeeds needed hundreds of small, differentiated, playable H5 apps to seed its feed. The first pipeline was an engineer's instinct: prescribe every step, check every box, score afterwards. It was slow and the output all looked alike. I rewrote it as a studio.HappySeeds 需要数百个小巧、有差异、可玩的 H5 应用来填满 Feed。第一版管线是工程师的直觉:规定每一步、逐项检查、事后打分。结果又慢又千篇一律。我把它改写成了一个工作室。
Treat the agent as a smart creator, not a line worker. A system prompt gives it an identity; only the hard scoring gates stay, and they move before the build; step-by-step rules become soft constraints in the form of document dependencies and suggested tool calls. The brief shrank from eight sections to about thirty lines.把 agent 当聪明的创作者,而不是流水线工人。系统提示词给它一个身份;只保留打分硬指标,并且前移到构建之前;逐步规定变成文档依赖与建议调用这类软约束。brief 从八大段压缩到约三十行。
My version replaced the original and became the pipeline the content team runs. Batches got faster, apps got more playful and more different from each other, and the feed had something worth scrolling. The lesson I keep: quality gates belong at the brief, not after the build.我的版本取代了原方案,成为内容团队实际运行的管线。批次更快,应用更好玩、彼此更不一样,Feed 里有了值得刷下去的东西。我留下的结论:质量闸门应该设在 brief,而不是构建之后。
The second generation builds complete Next.js web apps from a role, a topic and a design direction, then verifies and packages them for deployment. Version 1 could turn an idea into a running app, but nobody could say why a page looked good or bad. Version 2 made "ugly" measurable.第二代从角色、选题和设计方向出发,构建完整的 Next.js 网页应用,再验证并打包部署。V1 能把想法变成能跑的应用,但没人说得清页面为什么好看或不好看。V2 把「丑」变成了可测量的东西。
A router reads the input signals and sends each project down one track: reconstruct a reference, learn from a reference, apply a named style, or fall back to a methodology with 21 macro-structures and 21 themes. Every track must end in a design contract with concrete values: hex palette, font stacks with Chinese fallbacks, spacing, a motion list. Coding follows the contract and may not improvise.路由器读取输入信号,把每个项目分到一条轨道:临摹参考站、借鉴参考站、套用点名风格,或回落到含 21 个宏观结构与 21 套主题的方法论轨。每条轨道都必须落成带具体值的设计契约:hex 色板、带中文 fallback 的字体栈、间距、动效清单。编码照契约实现,不得发挥。
Evidence gates before design: real-browser sweeps at two viewports, pointer and scroll passes, or no design file gets written. An exit review after coding: anti-slop gates and a Chinese mobile baseline. A scoring model and four rounds of controlled tests across models and versions, each on a fresh reference and genre. Rule changes have to pass a canary before they ship.设计前的证据门禁:双视口真实浏览器扫掠、指针与滚动扫掠,缺一不写设计文件。编码后的出口审查:反 slop 门与中文移动端基线。一套评分模型,以及跨模型、跨版本的四轮受控实测,每轮换新参考站和题材。改规则必须先过 canary。
The visual language you are reading is a written style DNA with a builder and an in-browser editing layer. Taste cannot be outsourced, but it can be written down, and once written it can be run.你正在读的这套视觉语言,是一份写成文的风格 DNA,配一个构建器和一层浏览器内编辑。品味没法外包,但可以写下来;写下来,就能跑起来。