[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"pack-detail-code-generation-specialized-zh":3,"seo:pack:code-generation-specialized:zh":97},{"code":4,"message":5,"data":6},200,"操作成功",{"pack":7},{"slug":8,"icon":9,"tone":10,"status":11,"status_label":12,"title":13,"description":14,"items":15,"install_cmd":96},"code-generation-specialized","🪄","#0F766E","new","本周新建","专项代码生成全家桶","想让 AI 和确定性生成器一起把那些重复的翻译活包圆的开发者必装：SQL 转类型安全 ORM、GraphQL schema 转 resolver、模板脚手架、OpenAPI 转客户端 SDK、JSON Schema 转 TypeScript 类型、自然语言转正则、新 DSL 的解析器生成器，这十个就是顺序：Cookiecutter + Meta Agentic Project Scaffold + OpenAPI Generator + sqlc + gqlgen + TypeBox + Zod + TypeChat + grex + Tree-sitter — 按推荐安装顺序排列。",[16,28,36,46,53,60,67,74,82,89],{"id":17,"uuid":18,"slug":19,"title":20,"description":21,"author_name":22,"view_count":23,"vote_count":24,"lang_type":25,"type":26,"type_label":27},2617,"369d9a13-4792-11f1-9bc6-00163e2b0d79","cookiecutter-project-templates-command-line-369d9a13","Cookiecutter — Project Templates from the Command Line","A command-line utility that creates projects from cookiecutter templates, supporting Python, JavaScript, Ruby, and any other language or framework with Jinja2 templating.","Script Depot",67,0,"en","skill","Skill",{"id":29,"uuid":30,"slug":31,"title":32,"description":33,"author_name":34,"view_count":35,"vote_count":24,"lang_type":25,"type":26,"type_label":27},4477,"b4946b3b-3f56-405b-9533-ca8e8d4d7d74","claude-code-agent-meta-agentic-project-scaffold-b4946b3b","Claude Code Agent: Meta Agentic Project Scaffold","Meta agentic project creation assistant to help users create and manage project workflows effectively.","TokRepo精选",24,{"id":37,"uuid":38,"slug":39,"title":40,"description":41,"author_name":42,"view_count":43,"vote_count":24,"lang_type":25,"type":44,"type_label":45},2668,"a951911e-4838-11f1-9bc6-00163e2b0d79","openapi-generator-generate-client-sdks-server-stubs-api-a951911e","OpenAPI Generator — Generate Client SDKs and Server Stubs from API Specs","A code generation tool that produces client libraries, server stubs, API documentation, and configuration from OpenAPI 2.0\u002F3.x specifications in over 50 languages.","AI Open Source",84,"config","Config",{"id":47,"uuid":48,"slug":49,"title":50,"description":51,"author_name":42,"view_count":52,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1218,"10d1b389-373d-11f1-9bc6-00163e2b0d79","sqlc-generate-type-safe-go-code-sql-10d1b389","sqlc — Generate Type-Safe Go Code from SQL","sqlc generates fully type-safe Go code from your SQL queries. Write SQL, run sqlc generate, and get Go functions with proper types for parameters and results — no ORM, no reflection, just compile-time safe database access.",131,{"id":54,"uuid":55,"slug":56,"title":57,"description":58,"author_name":42,"view_count":59,"vote_count":24,"lang_type":25,"type":26,"type_label":27},4010,"cb4a0816-5036-11f1-9bc6-00163e2b0d79","gqlgen-code-first-graphql-server-go-cb4a0816","gqlgen — Code-First GraphQL Server for Go","A Go library for building GraphQL servers using a schema-first approach with code generation. Define your schema in SDL, run the generator, and implement resolver methods with full type safety.",35,{"id":61,"uuid":62,"slug":63,"title":64,"description":65,"author_name":42,"view_count":66,"vote_count":24,"lang_type":25,"type":26,"type_label":27},2952,"913ed389-4c8d-11f1-9bc6-00163e2b0d79","typebox-json-schema-type-builder-typescript-913ed389","TypeBox — JSON Schema Type Builder for TypeScript","Build JSON Schema types with static TypeScript inference, giving you runtime validation and compile-time safety from a single definition.",72,{"id":68,"uuid":69,"slug":70,"title":71,"description":72,"author_name":22,"view_count":73,"vote_count":24,"lang_type":25,"type":26,"type_label":27},689,"5328f7ec-37d8-47bc-afb5-034b66d1537d","zod-typescript-first-schema-validation-5328f7ec","Zod — TypeScript-First Schema Validation","TypeScript-first schema declaration and validation library. Define a schema once, get type inference, runtime validation, and serialization. The standard for TypeScript data validation. 35,000+ stars.",135,{"id":75,"uuid":76,"slug":77,"title":78,"description":79,"author_name":80,"view_count":81,"vote_count":24,"lang_type":25,"type":26,"type_label":27},3105,"6722eee5-8afd-4e50-9259-3a3ceb67e74f","typechat-schema-first-natural-language-uis","TypeChat — Schema-First Natural Language UIs","Build typed natural language interfaces by turning intent into validated JSON via TypeScript types. Replace prompt engineering with schema engineering.","Agent Toolkit",58,{"id":83,"uuid":84,"slug":85,"title":86,"description":87,"author_name":42,"view_count":88,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1324,"8f0a62b4-3814-11f1-9bc6-00163e2b0d79","grex-command-line-tool-generates-regular-expressions-8f0a62b4","grex — A Command-Line Tool That Generates Regular Expressions from Examples","grex turns a list of example strings into a matching regex. Paste the patterns you want to match, get back a tested regex — no more staring at a regex cheat sheet for 30 minutes.",106,{"id":90,"uuid":91,"slug":92,"title":93,"description":94,"author_name":42,"view_count":95,"vote_count":24,"lang_type":25,"type":26,"type_label":27},1440,"ffd869e7-3907-11f1-9bc6-00163e2b0d79","tree-sitter-incremental-parser-generator-editors-ffd869e7","Tree-sitter — Incremental Parser Generator for Editors","Tree-sitter is a general parser generator + incremental parsing library that powers fast, robust syntax highlighting, code folding, and structural edits in editors like Neovim, Zed, Helix, and GitHub.",112,"tokrepo install pack\u002Fcode-generation-specialized",{"pageType":98,"pageKey":8,"locale":99,"title":100,"metaDescription":101,"h1":102,"tldr":103,"bodyMarkdown":104,"faq":105,"schema":121,"internalLinks":127,"citations":140,"wordCount":153,"generatedAt":154},"pack","zh","专项代码生成全家桶 — 10 个工具搞定细分代码生成","Cookiecutter \u002F Meta Agentic Scaffold \u002F OpenAPI Generator \u002F sqlc \u002F gqlgen \u002F TypeBox \u002F Zod \u002F TypeChat \u002F grex \u002F Tree-sitter — 把那些没人愿意手写的重复翻译活交给确定性生成器和 AI 助手。含推荐安装顺序和踩坑提醒。","专项代码生成 — 十个生成器搞定你最不想手写的翻译活","十个工具按顺序装：先脚手架，再 API spec 生成器，再 schema 转类型层，最后是长尾工具（自然语言转正则、解析器生成器）。每个都用几小时配置换来好几年不再手写同一段翻译。","## 这个 pack 包含什么\n\nLLM 编辑器做一次性补全很强，但当同一种翻译你要做一千次（每个 PR、每次 API 变更、每个新迁移），它不是合适的工具。这时候你要的是**有 spec 输入的确定性生成器**。这个 pack 就是一线开发者的精选生成器集合，再加两个 AI 助手处理那些边角模糊的事（项目脚手架、自然语言转正则）。\n\n整套覆盖七种细分翻译任务：\n\n- **项目脚手架**：基于模板（Cookiecutter）或者基于 prompt（Meta Agentic Project Scaffold）\n- **OpenAPI spec → 客户端 SDK 和服务端 stub**（OpenAPI Generator）\n- **SQL 查询 → 类型安全代码**（sqlc）\n- **GraphQL schema → 强类型 resolver 和服务端**（gqlgen）\n- **JSON Schema → TypeScript 静态类型**（TypeBox）\n- **TypeScript 优先的校验，顺便当类型**（Zod）\n- **Schema-first 自然语言 → 结构化代码**（TypeChat）\n- **从自然语言示例生成正则**（grex）\n- **新 DSL 或语法的解析器生成器**（Tree-sitter）\n\n这十个都不和你的 coding agent 竞争。它们坐在 agent 下面。Agent 写 spec，这些工具把 spec 翻译成你手写时本来就该写的代码 —— 但不会有 typo。\n\n## 推荐安装顺序\n\n1. **Cookiecutter** — 从项目骨架开始。挑个模板，回答五个问题，得到一个填好的仓库。门槛最低，定下了后续所有工具的目录结构。\n2. **Meta Agentic Project Scaffold** — 没有合适模板的时候，让 AI agent 带你一步步搭一个。Claude Code agent 会问对的问题、写目录树、初始化配置。配 Cookiecutter 用：让 agent 写第一遍，再把结果沉淀成可复用模板。\n3. **OpenAPI Generator** — 装一次，生成 60+ 语言的客户端 SDK 和 40+ 的服务端 stub。CI 里锁版本。`openapi.yaml` 一发布，所有消费方（你的 APP、合作方、内部服务）都拿到可重新生成的 client。\n4. **sqlc** — 在 `.sql` 文件里写普通 SQL 查询，`sqlc generate` 输出包装它们的类型安全 Go（或 Kotlin、Python）函数。你不用再手动把 SELECT 行转成 struct。改列名时编译器比测试更早抓住。\n5. **gqlgen** — Schema-first 的 Go GraphQL。写 `schema.graphql`，跑 codegen，得到强类型的 resolver 接口。你实现业务逻辑，胶水代码由生成器写。在 API 层和 sqlc 对称。\n6. **TypeBox** — 一份 source of truth 同时输出 JSON Schema 和 TypeScript 静态类型。定义一次 schema，得到运行时校验 + `.d.ts` 类型。Fastify 和 Ajv 直接接。\n7. **Zod** — TypeScript-first 的 schema 校验。和 TypeBox 思路一样，但 schema 就是 TypeScript 表达式本身。要同时输出原生 JSON Schema 给 OpenAPI 用，选 TypeBox；纯 TS 里活的话，选 Zod。\n8. **TypeChat** — Microsoft 开源的库，让 LLM 输出符合 schema 的结构化数据。把响应形状定义为 TypeScript 类型，TypeChat 把模型逼到合规。AI 生成代码 → 强类型运行时的桥梁。\n9. **grex** — 贴几个示例，得到正则。归纳法能抓住你手写正则会漏掉的边界。比问 LLM 快，确定性，零 token 消耗。\n10. **Tree-sitter** — 增量解析器生成器。哪天你决定自家配置文件或 DSL 要 first-class IDE 支持，就是这个工具。Neovim、GitHub semantic search、绝大多数现代编辑器的语法智能都靠它。\n\n## 它们怎么协同\n\n```\nCookiecutter \u002F Meta Agentic Scaffold\n   │\n   └── 起一个布局一致的新仓库\n        │\n        ├── openapi.yaml ──── OpenAPI Generator ───► clients\u002F, server-stubs\u002F\n        │\n        ├── queries.sql ───── sqlc ─────────────────► db\u002Ftyped-queries.go\n        │\n        ├── schema.graphql ── gqlgen ──────────────► resolvers.go (强类型)\n        │\n        ├── *.schema.json ─── TypeBox ─────────────► types.d.ts + 校验器\n        │                          │\n        │                          └── 喂给 OpenAPI Generator 和 Ajv\n        │\n        ├── Zod (纯 TS)    ───────────────────────► z.infer\u003Ctypeof X>\n        │\n        └── TypeChat ───────────────────────────────► LLM 输出 → 强类型运行时\n\n独立的长尾工具：\n   grex（示例 → 正则）\n   Tree-sitter（语法 → 增量解析器）\n```\n\n主干是 **脚手架 → spec → 生成**。每个 spec 文件都对应一个 CI 步骤：重新生成、diff、如果生成的代码漂离 commit 就 fail build。这个纪律是 codegen 在团队层面规模化的关键。\n\n## 你会遇到的取舍\n\n- **TypeBox vs Zod** — TypeBox 顺便输出原生 JSON Schema，能直接接 OpenAPI Generator 和 Ajv 无需翻译。Zod 的 TypeScript 工效更顺手，生态更大（tRPC、Hono、Next.js）。多数项目选一个为主；有些团队 API 边界用 TypeBox、应用内部用 Zod。\n- **sqlc vs Prisma\u002FDrizzle** — sqlc 从 SQL 出发生成代码，Prisma 和 Drizzle 从 TypeScript schema 出发生成 SQL。DB 是 source of truth、DBA 写查询的团队选 sqlc。应用层拥有 schema 的团队选 Prisma\u002FDrizzle。它们不是本 pack 的直接竞争对手 —— 本 pack 服务的是 SQL-first 团队。\n- **gqlgen vs code-first GraphQL** — gqlgen 是 schema-first：`.graphql` 文件主导，代码跟随。TS 里 Apollo Server 可以 code-first。Schema-first 在跨语言场景下扩展性更好（前端读同一份文件）。\n- **OpenAPI Generator vs 手写 client** — 生成的 client 可能比手写难看。胜负不在美观，在「spec 一改就重新生成」的循环。Spec 不变就手写，每 sprint 都变就生成。\n- **TypeChat vs 原生 function-calling** — provider 的 function-calling API 在朝同一个方向收敛。TypeChat 是「库不是 API」，能跑在任意模型上，自带 retry 和 repair 循环。在意可移植性、或想白拿 retry 逻辑就选它。\n\n## 常见踩坑\n\n- **不 commit 生成代码** — 争论了很多年。务实做法：commit。Reviewer 能看 diff，CI 能验证「重新生成是干净的」，新人 day 1 不需要装工具链。只有当工具链全员都有、并且 CI 强制时才用 generate-on-build。\n- **spec 和代码漂移** — 每个生成器都需要一个 CI 步：跑生成、diff 失败就 fail。没有这一步，spec 和代码会悄悄不同步。\n- **不锁生成器版本** — OpenAPI Generator 和 sqlc 偶尔在小版本之间换输出。CI 里锁版本，否则你会看到大量和改动无关的噪声 diff。\n- **Tree-sitter 语法调试** — 你写的第一个语法肯定有歧义。从 day 1 就用 `tree-sitter test` 语料库，不要肉眼读 parse tree 调试。\n- **TypeChat 的 retry 吃掉真 bug** — TypeChat 在 LLM 返回畸形输出时重试。如果你的 schema 本身错了，它会永远重试。打日志 + 设最大尝试次数。",[106,109,112,115,118],{"q":107,"a":108},"我的 AI coding agent 已经能写大部分代码，这个 pack 还有意义吗？","更有意义了，不是更少。Agent 在写一次性代码上很强，但同一种翻译要做一千次（每次 API 变更、每次迁移、每个新 client SDK）就不是合适的工具。这些确定性生成器坐在 agent 下面：agent 改 spec，生成器输出 boilerplate。你不用再花 token 把 openapi.yaml 翻译成 fetch client；不用再 review AI 生成的重复代码。Agent 留在真正用得上的地方 —— 业务逻辑。",{"q":110,"a":111},"Cookiecutter 和 Meta Agentic Project Scaffold 有什么区别？","Cookiecutter 套用精心整理过的模板 —— 快、确定、可复现，但上限就是你手头的模板。Meta Agentic Project Scaffold 是 AI agent，会问你问题然后从零搭脚手架，适合没合适模板、或者你在原型化不熟悉的技术栈时用。健康的搭配：让 agent 写第一遍，再把结果沉淀成 Cookiecutter 模板，下一个同事就不用再付 AI 费用。",{"q":113,"a":114},"想要类型安全，为啥选 sqlc 而不是 Prisma 或 Drizzle？","生成方向不同。sqlc 读你的 SQL 生成代码。Prisma 和 Drizzle 读 TypeScript 风格的 schema 生成 SQL。DB 是 source of truth、DBA 写查询、你在 Go 里想要编译期 SQL 检查 —— 选 sqlc。应用团队拥有 schema、偏好 TypeScript-first 工效 —— 选 Prisma\u002FDrizzle。它们从相反两端解同一个问题 —— 本 pack 聚焦的是 SQL-first 那一端。",{"q":116,"a":117},"TypeBox 和 Zod 要都装吗，还是选一个？","选一个为主，必要时另一个用在边界。TypeBox 顺手输出原生 JSON Schema，如果你也发布 OpenAPI 或喂 Ajv 校验器，它是更合适的默认。Zod 的 TypeScript 工效更顺，是 tRPC 和 Hono 生态的事实默认。完全活在 TypeScript app 里，Zod 更丝滑。要走 OpenAPI 跨语言边界，TypeBox 帮你省一次翻译。",{"q":119,"a":120},"Tree-sitter 为什么属于一个代码生成 pack？","因为解析器生成器就是「语言工具层的代码生成」。哪天你团队内部的配置格式、查询 DSL、或模板语言需要 first-class 编辑器支持 —— 语法高亮、结构化搜索、重构 —— 你写一份 Tree-sitter 语法，剩下的都是生成的。Neovim、GitHub semantic search、绝大多数现代编辑器直接消费 Tree-sitter 语法。它属于本 pack 是因为它回答的是同一个问题：spec 进、代码出、别手写。",{"@context":122,"@type":123,"name":13,"description":124,"numberOfItems":125,"inLanguage":126},"https:\u002F\u002Fschema.org","ItemList","十个确定性生成器和 AI 助手，专治细分代码翻译任务：脚手架、OpenAPI 客户端 SDK、SQL 转类型安全代码、GraphQL resolver、JSON Schema 转类型、自然语言示例转正则、解析器生成器。",10,"zh-CN",[128,132,136],{"url":129,"anchor":130,"reason":131},"\u002Fzh\u002Ftopics","浏览其他主题 pack","还有 AI Coding Agent \u002F MCP Server \u002F 多智能体框架等多个主题 pack",{"url":133,"anchor":134,"reason":135},"\u002Fzh\u002Ffeatured","TokRepo 精选资产","这十个生成器属于更大的精选目录",{"url":137,"anchor":138,"reason":139},"\u002Fzh\u002Fai-tools-for\u002Fautomation","AI Agent 自动化工具集","确定性生成器是自动化流水线在 CI 里调用的主力",[141,145,149],{"claim":142,"source_name":143,"source_url":144},"OpenAPI Generator 根据 OpenAPI spec 在多种目标语言下输出客户端 SDK 和服务端 stub","OpenAPI Generator 官网","https:\u002F\u002Fopenapi-generator.tech\u002F",{"claim":146,"source_name":147,"source_url":148},"sqlc 从 SQL 查询生成类型安全代码","sqlc 官网","https:\u002F\u002Fsqlc.dev\u002F",{"claim":150,"source_name":151,"source_url":152},"Tree-sitter 是编辑器用于语法智能的增量解析器生成器","Tree-sitter 官方文档","https:\u002F\u002Ftree-sitter.github.io\u002Ftree-sitter\u002F",1178,"2026-05-22T00:00:00Z"]