mcpField
G
genesis

genesis

github.com/lwlee2608开发174 次安装2 周前更新
代码仓库

关于 genesis

使用 genesis CLI 和 `lwlee2608/genesis` 最新模板搭建新仓库的技能,面向开发者提供按需选择和适配项目结构与文件的规则。

主要功能

  1. 01以 flag 模式运行 CLI
  2. 02基于模板构建仓库结构
  3. 03按范围复制模板文件
  4. 04适配项目及数据库名称
  5. 05配置前端 Oxlint

适用场景

  1. 01创建新仓库
  2. 02添加指定服务端组件
  3. 03按项目调整模板文件
  4. 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”)都会限定工作范围。仅复制匹配的文件,不要复制整个模板。
  • 在非空目录中不带参数:询问要搭建哪些部分。

规则

  1. 使用 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 安装。
  2. 克隆最新仓库,切勿凭记忆操作。 使用 --depth=1 将 https://github.com/lwlee2608/genesis 的 main 分支克隆到 /tmp/genesis-template,只需克隆一次。然后读取 reference/project-00 下的文件。单体仓库布局也是模板的一部分,不只是其中的文件。仓库会不断演进,凭记忆操作会导致内容过时。

  3. 适配,不要盲目复制。 将每处 project-00 替换为项目名称。它会出现在目录名、Go 模块 github.com/lwlee2608/project-00、cmd/project-00/ 路径和二进制文件名、Makefile 中的 APP :=,以及 Docker 镜像和容器名称中。Postgres 数据库和用户使用下划线形式(project_00)。保留模板其余的结构和约定。

  4. Web 前端使用 Oxlint。 复制 .oxlintrc.json、oxlint 依赖项和参考模板中的 lint 脚本。保留 React Hooks 和 React Refresh 规则。移除它所替代的 ESLint 配置和依赖项,然后使用 pnpm 重新生成锁文件。

要将结果部署到 Railway,请使用 /genesis-railway。用于搭配 Overwatcher 部署到 VM 的 prod compose 来自 /genesis-cicd overwatcher。

评论

支持 Markdown