关于 genesis
使用 genesis CLI 和 `lwlee2608/genesis` 最新模板搭建新仓库的技能,面向开发者提供按需选择和适配项目结构与文件的规则。
主要功能
- 01以 flag 模式运行 CLI
- 02基于模板构建仓库结构
- 03按范围复制模板文件
- 04适配项目及数据库名称
- 05配置前端 Oxlint
适用场景
- 01创建新仓库
- 02添加指定服务端组件
- 03按项目调整模板文件
- 04配置前端代码检查
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ lwlee2608/ genesis --skill genesis安装后在 Claude Code 中输入/genesis确认已加载。
详细介绍
Genesis 脚手架
使用 genesis CLI 启动新仓库。其余内容均从 lwlee2608/genesis 中的 reference/project-00 模板添加。切勿从头编写或凭记忆创建这些文件。
结构
reference/project-00/
├── docker-compose.yml # dev stack: Postgres only
└── services/
├── project-00-server/ # Go API
│ ├── cmd/project-00/ # main, config, logger
│ ├── internal/
│ │ ├── api/http/ # router, handlers, dto, middleware
│ │ └── db/ # migrations, queries, sqlc (generated)
│ ├── Dockerfile
│ ├── Makefile
│ └── sqlc.yaml
└── project-00-web/ # React/Vite/TS app
├── src/ # main.tsx, App.tsx
├── Dockerfile # build + nginx serve
├── nginx.conf
└── entrypoint.sh
参数
new,或在除.git外为空的目录中不带参数:遵循规则 1。- 其他任何参数(例如“添加服务”“设置 sqlc”)都会限定工作范围。仅复制匹配的文件,不要复制整个模板。
- 在非空目录中不带参数:询问要搭建哪些部分。
规则
-
使用
genesis的标志模式启动新仓库。 在目标目录中运行genesis -name <app> -module <module>,然后从模板中添加 CLI 不会生成的部分。- 切勿直接运行
genesis。它会打开 TUI,并在没有 TTY 时以状态码 1 退出。 -name默认为目录名,-module默认为origin远程地址。如果其中任一值缺失或不正确,请同时传入这两个参数。-fullstack和-http默认为true。使用=false将其关闭。- 仅当用户要求生成 AI README 时,才添加
-readme -desc "<one line>"。这需要OPENROUTER_API_KEY。 - CLI 不接受非空目录。只有在用户确认覆盖后才添加
-force,因为它会静默替换文件。 - 如果缺少
genesis,或运行失败并提示flag provided but not defined(说明版本早于标志模式),请先询问用户,再使用curl -fsSL https://raw.githubusercontent.com/lwlee2608/genesis/main/scripts/install.sh | bash安装。
- 切勿直接运行
-
克隆最新仓库,切勿凭记忆操作。 使用
--depth=1将https://github.com/lwlee2608/genesis的main分支克隆到/tmp/genesis-template,只需克隆一次。然后读取reference/project-00下的文件。单体仓库布局也是模板的一部分,不只是其中的文件。仓库会不断演进,凭记忆操作会导致内容过时。 -
适配,不要盲目复制。 将每处
project-00替换为项目名称。它会出现在目录名、Go 模块github.com/lwlee2608/project-00、cmd/project-00/路径和二进制文件名、Makefile 中的APP :=,以及 Docker 镜像和容器名称中。Postgres 数据库和用户使用下划线形式(project_00)。保留模板其余的结构和约定。 -
Web 前端使用 Oxlint。 复制
.oxlintrc.json、oxlint依赖项和参考模板中的 lint 脚本。保留 React Hooks 和 React Refresh 规则。移除它所替代的 ESLint 配置和依赖项,然后使用 pnpm 重新生成锁文件。
要将结果部署到 Railway,请使用 /genesis-railway。用于搭配 Overwatcher 部署到 VM 的 prod compose 来自 /genesis-cicd overwatcher。