TOKREPO · 主题包
本周新建

专项代码生成全家桶

想让 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 — 按推荐安装顺序排列。

10 个资产

这个 pack 包含什么

LLM 编辑器做一次性补全很强,但当同一种翻译你要做一千次(每个 PR、每次 API 变更、每个新迁移),它不是合适的工具。这时候你要的是有 spec 输入的确定性生成器。这个 pack 就是一线开发者的精选生成器集合,再加两个 AI 助手处理那些边角模糊的事(项目脚手架、自然语言转正则)。

整套覆盖七种细分翻译任务:

  • 项目脚手架:基于模板(Cookiecutter)或者基于 prompt(Meta Agentic Project Scaffold)
  • OpenAPI spec → 客户端 SDK 和服务端 stub(OpenAPI Generator)
  • SQL 查询 → 类型安全代码(sqlc)
  • GraphQL schema → 强类型 resolver 和服务端(gqlgen)
  • JSON Schema → TypeScript 静态类型(TypeBox)
  • TypeScript 优先的校验,顺便当类型(Zod)
  • Schema-first 自然语言 → 结构化代码(TypeChat)
  • 从自然语言示例生成正则(grex)
  • 新 DSL 或语法的解析器生成器(Tree-sitter)

这十个都不和你的 coding agent 竞争。它们坐在 agent 下面。Agent 写 spec,这些工具把 spec 翻译成你手写时本来就该写的代码 —— 但不会有 typo。

推荐安装顺序

  1. Cookiecutter — 从项目骨架开始。挑个模板,回答五个问题,得到一个填好的仓库。门槛最低,定下了后续所有工具的目录结构。
  2. Meta Agentic Project Scaffold — 没有合适模板的时候,让 AI agent 带你一步步搭一个。Claude Code agent 会问对的问题、写目录树、初始化配置。配 Cookiecutter 用:让 agent 写第一遍,再把结果沉淀成可复用模板。
  3. OpenAPI Generator — 装一次,生成 60+ 语言的客户端 SDK 和 40+ 的服务端 stub。CI 里锁版本。openapi.yaml 一发布,所有消费方(你的 APP、合作方、内部服务)都拿到可重新生成的 client。
  4. sqlc — 在 .sql 文件里写普通 SQL 查询,sqlc generate 输出包装它们的类型安全 Go(或 Kotlin、Python)函数。你不用再手动把 SELECT 行转成 struct。改列名时编译器比测试更早抓住。
  5. gqlgen — Schema-first 的 Go GraphQL。写 schema.graphql,跑 codegen,得到强类型的 resolver 接口。你实现业务逻辑,胶水代码由生成器写。在 API 层和 sqlc 对称。
  6. TypeBox — 一份 source of truth 同时输出 JSON Schema 和 TypeScript 静态类型。定义一次 schema,得到运行时校验 + .d.ts 类型。Fastify 和 Ajv 直接接。
  7. Zod — TypeScript-first 的 schema 校验。和 TypeBox 思路一样,但 schema 就是 TypeScript 表达式本身。要同时输出原生 JSON Schema 给 OpenAPI 用,选 TypeBox;纯 TS 里活的话,选 Zod。
  8. TypeChat — Microsoft 开源的库,让 LLM 输出符合 schema 的结构化数据。把响应形状定义为 TypeScript 类型,TypeChat 把模型逼到合规。AI 生成代码 → 强类型运行时的桥梁。
  9. grex — 贴几个示例,得到正则。归纳法能抓住你手写正则会漏掉的边界。比问 LLM 快,确定性,零 token 消耗。
  10. Tree-sitter — 增量解析器生成器。哪天你决定自家配置文件或 DSL 要 first-class IDE 支持,就是这个工具。Neovim、GitHub semantic search、绝大多数现代编辑器的语法智能都靠它。

它们怎么协同

Cookiecutter / Meta Agentic Scaffold
   │
   └── 起一个布局一致的新仓库
        │
        ├── openapi.yaml ──── OpenAPI Generator ───► clients/, server-stubs/
        │
        ├── queries.sql ───── sqlc ─────────────────► db/typed-queries.go
        │
        ├── schema.graphql ── gqlgen ──────────────► resolvers.go (强类型)
        │
        ├── *.schema.json ─── TypeBox ─────────────► types.d.ts + 校验器
        │                          │
        │                          └── 喂给 OpenAPI Generator 和 Ajv
        │
        ├── Zod (纯 TS)    ───────────────────────► z.infer<typeof X>
        │
        └── TypeChat ───────────────────────────────► LLM 输出 → 强类型运行时

独立的长尾工具:
   grex(示例 → 正则)
   Tree-sitter(语法 → 增量解析器)

主干是 脚手架 → spec → 生成。每个 spec 文件都对应一个 CI 步骤:重新生成、diff、如果生成的代码漂离 commit 就 fail build。这个纪律是 codegen 在团队层面规模化的关键。

你会遇到的取舍

  • TypeBox vs Zod — TypeBox 顺便输出原生 JSON Schema,能直接接 OpenAPI Generator 和 Ajv 无需翻译。Zod 的 TypeScript 工效更顺手,生态更大(tRPC、Hono、Next.js)。多数项目选一个为主;有些团队 API 边界用 TypeBox、应用内部用 Zod。
  • sqlc vs Prisma/Drizzle — sqlc 从 SQL 出发生成代码,Prisma 和 Drizzle 从 TypeScript schema 出发生成 SQL。DB 是 source of truth、DBA 写查询的团队选 sqlc。应用层拥有 schema 的团队选 Prisma/Drizzle。它们不是本 pack 的直接竞争对手 —— 本 pack 服务的是 SQL-first 团队。
  • gqlgen vs code-first GraphQL — gqlgen 是 schema-first:.graphql 文件主导,代码跟随。TS 里 Apollo Server 可以 code-first。Schema-first 在跨语言场景下扩展性更好(前端读同一份文件)。
  • OpenAPI Generator vs 手写 client — 生成的 client 可能比手写难看。胜负不在美观,在「spec 一改就重新生成」的循环。Spec 不变就手写,每 sprint 都变就生成。
  • TypeChat vs 原生 function-calling — provider 的 function-calling API 在朝同一个方向收敛。TypeChat 是「库不是 API」,能跑在任意模型上,自带 retry 和 repair 循环。在意可移植性、或想白拿 retry 逻辑就选它。

常见踩坑

  • 不 commit 生成代码 — 争论了很多年。务实做法:commit。Reviewer 能看 diff,CI 能验证「重新生成是干净的」,新人 day 1 不需要装工具链。只有当工具链全员都有、并且 CI 强制时才用 generate-on-build。
  • spec 和代码漂移 — 每个生成器都需要一个 CI 步:跑生成、diff 失败就 fail。没有这一步,spec 和代码会悄悄不同步。
  • 不锁生成器版本 — OpenAPI Generator 和 sqlc 偶尔在小版本之间换输出。CI 里锁版本,否则你会看到大量和改动无关的噪声 diff。
  • Tree-sitter 语法调试 — 你写的第一个语法肯定有歧义。从 day 1 就用 tree-sitter test 语料库,不要肉眼读 parse tree 调试。
  • TypeChat 的 retry 吃掉真 bug — TypeChat 在 LLM 返回畸形输出时重试。如果你的 schema 本身错了,它会永远重试。打日志 + 设最大尝试次数。
安装 · 一行命令
$ tokrepo install pack/code-generation-specialized
丢给 agent,或粘到终端
包内含什么

10 个资产打包就绪

Skill#01
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.

by Script Depot·67 views
$ tokrepo install cookiecutter-project-templates-command-line-369d9a13
Skill#02
Claude Code Agent: Meta Agentic Project Scaffold

Meta agentic project creation assistant to help users create and manage project workflows effectively.

by TokRepo精选·24 views
$ tokrepo install claude-code-agent-meta-agentic-project-scaffold-b4946b3b
Config#03
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/3.x specifications in over 50 languages.

by AI Open Source·84 views
$ tokrepo install openapi-generator-generate-client-sdks-server-stubs-api-a951911e
Skill#04
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.

by AI Open Source·131 views
$ tokrepo install sqlc-generate-type-safe-go-code-sql-10d1b389
Skill#05
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.

by AI Open Source·35 views
$ tokrepo install gqlgen-code-first-graphql-server-go-cb4a0816
Skill#06
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.

by AI Open Source·72 views
$ tokrepo install typebox-json-schema-type-builder-typescript-913ed389
Skill#07
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.

by Script Depot·135 views
$ tokrepo install zod-typescript-first-schema-validation-5328f7ec
Skill#08
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.

by Agent Toolkit·58 views
$ tokrepo install typechat-schema-first-natural-language-uis
Skill#09
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.

by AI Open Source·106 views
$ tokrepo install grex-command-line-tool-generates-regular-expressions-8f0a62b4
Skill#10
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.

by AI Open Source·112 views
$ tokrepo install tree-sitter-incremental-parser-generator-editors-ffd869e7
常见问题

常见问题

我的 AI coding agent 已经能写大部分代码,这个 pack 还有意义吗?

更有意义了,不是更少。Agent 在写一次性代码上很强,但同一种翻译要做一千次(每次 API 变更、每次迁移、每个新 client SDK)就不是合适的工具。这些确定性生成器坐在 agent 下面:agent 改 spec,生成器输出 boilerplate。你不用再花 token 把 openapi.yaml 翻译成 fetch client;不用再 review AI 生成的重复代码。Agent 留在真正用得上的地方 —— 业务逻辑。

Cookiecutter 和 Meta Agentic Project Scaffold 有什么区别?

Cookiecutter 套用精心整理过的模板 —— 快、确定、可复现,但上限就是你手头的模板。Meta Agentic Project Scaffold 是 AI agent,会问你问题然后从零搭脚手架,适合没合适模板、或者你在原型化不熟悉的技术栈时用。健康的搭配:让 agent 写第一遍,再把结果沉淀成 Cookiecutter 模板,下一个同事就不用再付 AI 费用。

想要类型安全,为啥选 sqlc 而不是 Prisma 或 Drizzle?

生成方向不同。sqlc 读你的 SQL 生成代码。Prisma 和 Drizzle 读 TypeScript 风格的 schema 生成 SQL。DB 是 source of truth、DBA 写查询、你在 Go 里想要编译期 SQL 检查 —— 选 sqlc。应用团队拥有 schema、偏好 TypeScript-first 工效 —— 选 Prisma/Drizzle。它们从相反两端解同一个问题 —— 本 pack 聚焦的是 SQL-first 那一端。

TypeBox 和 Zod 要都装吗,还是选一个?

选一个为主,必要时另一个用在边界。TypeBox 顺手输出原生 JSON Schema,如果你也发布 OpenAPI 或喂 Ajv 校验器,它是更合适的默认。Zod 的 TypeScript 工效更顺,是 tRPC 和 Hono 生态的事实默认。完全活在 TypeScript app 里,Zod 更丝滑。要走 OpenAPI 跨语言边界,TypeBox 帮你省一次翻译。

Tree-sitter 为什么属于一个代码生成 pack?

因为解析器生成器就是「语言工具层的代码生成」。哪天你团队内部的配置格式、查询 DSL、或模板语言需要 first-class 编辑器支持 —— 语法高亮、结构化搜索、重构 —— 你写一份 Tree-sitter 语法,剩下的都是生成的。Neovim、GitHub semantic search、绝大多数现代编辑器直接消费 Tree-sitter 语法。它属于本 pack 是因为它回答的是同一个问题:spec 进、代码出、别手写。

更多主题包

12 个主题包 · 80+ 精选资产

回首页浏览全部精选合集

返回主题包总览