MOONLAND
Contact联系
Case 06 · HappySeeds (BetterYeah) · Agent harness · 2026案例 06 · HappySeeds(BetterYeah)· Agent 工程 · 2026

Batch scale: from one app
to a pipeline.

批量规模化:从做一个应用
到造一条管线

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。本页只讲到概览层,细节欢迎当面交流。

Role角色

Pipeline design, skill authoring, design routing, evaluation loop管线设计、skill 撰写、设计路由、评估循环

Runs on运行方式

Coding agents (Claude Code, Codex) driven by skills I wrote由我写的 skill 驱动 coding agent(Claude Code、Codex)

Status状态

Both in production at HappySeeds两条都在 HappySeeds 生产中

Depth深度

Overview only · request more information in person仅概览 · 细节可当面交流

A sheet of batch-generated HappySeeds apps
One batch, nine apps: a mouth muncher, a warp voyager, an air canvas, a breakfast bowl, a pixel cliff, a world cup, an avatar studio, an interstellar map, a pixel oracle. Same brief format, different answers.一个批次,九个应用:吃豆游戏、曲速旅行、空气画布、早餐碗、像素悬崖、世界杯、头像工作室、星际地图、像素神谕。同一种 brief 格式,不同的答案。
Phase 1 · H5 apps · spring 2026第一阶段 · H5 应用 · 2026 春

App Variant Studio: agents create better when you constrain less.

App Variant Studio:少约束,agent 反而做得更好

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。第一版管线是工程师的直觉:规定每一步、逐项检查、事后打分。结果又慢又千篇一律。我把它改写成了一个工作室。

Factory → Studio工厂 → 工作室

Identity in, checklists out注入身份,撤掉清单

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 从八大段压缩到约三十行。

  • Category × theme × audience × design direction as the only inputs只以「品类 × 主题 × 受众 × 设计方向」为输入
  • Several agents take the same brief in parallel; differences expose the judgement多个 agent 并行接同一份 brief,差异暴露判断
  • A lightweight design pass (brainstorm + design consultancy + visual contract) before dispatch派发前先过一道轻量设计环节(brainstorm + 设计顾问 + 视觉契约)
Scoring model, batch numbers, brief format · request more information in person打分模型、批次数据、brief 格式 · 细节可当面交流
Outcome结果

Adopted as the team's production pipeline被采纳为团队正式生产管线

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,而不是构建之后。

Phase 2 · web apps · summer 2026第二阶段 · 网页应用 · 2026 夏

Seed Builder: give the factory a design router and a feedback loop.

Seed Builder:给工厂装上设计路由和回路

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 把「丑」变成了可测量的东西。

Design设计

One design entry became four tracks设计入口从一条变四条

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 的字体栈、间距、动效清单。编码照契约实现,不得发挥。

Quality质量

From "someone looks at it" to gates and a score从「有人看一眼」到门禁和评分

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 finding that mattered: the rules raise the floor of a mid-tier model, not the ceiling of a strong one最重要的发现:规则拉的是业务档模型的下限,不是强模型的上限
  • The control plane (CLI, schema, human confirmation gates, publish discipline) stayed untouched控制面(CLI、schema、人工确认门、发布纪律)一行未动
Gate list, scoring model, test results · request more information in person门禁清单、评分模型、实测结果 · 细节可当面交流
Meta方法

This site is built the same way这个站点也是同一种做法

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,配一个构建器和一层浏览器内编辑。品味没法外包,但可以写下来;写下来,就能跑起来。

Back to start回到开头 Yuque — an editor that takes the pressure off writing →语雀——一个把写作压力分时卸下的编辑器 →