{"id":33345688,"url":"https://github.com/silentbalanceyh/r2mo-lain","last_synced_at":"2026-06-11T08:31:27.447Z","repository":{"id":325191811,"uuid":"1100196745","full_name":"silentbalanceyh/r2mo-lain","owner":"silentbalanceyh","description":"Momo SDD - Spec Driven Development","archived":false,"fork":false,"pushed_at":"2026-05-26T07:40:12.000Z","size":50513,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-05-26T08:30:56.991Z","etag":null,"topics":["agent","openspec","rag","spec-kit","trae"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/silentbalanceyh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2025-11-20T00:58:54.000Z","updated_at":"2026-05-26T07:40:16.000Z","dependencies_parsed_at":null,"dependency_job_id":"4fb63162-3aa6-48e0-99f5-dd7266801dbb","html_url":"https://github.com/silentbalanceyh/r2mo-lain","commit_stats":null,"previous_names":["silentbalanceyh/r2mo-lain"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/silentbalanceyh/r2mo-lain","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fr2mo-lain","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fr2mo-lain/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fr2mo-lain/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fr2mo-lain/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/silentbalanceyh","download_url":"https://codeload.github.com/silentbalanceyh/r2mo-lain/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/silentbalanceyh%2Fr2mo-lain/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34190583,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agent","openspec","rag","spec-kit","trae"],"created_at":"2025-11-22T05:00:22.185Z","updated_at":"2026-06-11T08:31:27.438Z","avatar_url":"https://github.com/silentbalanceyh.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SDD - Spec Driven Development 工具（命令名：`mxt`）\n\n![npm version](https://img.shields.io/npm/v/r2mo-ai.svg) | [![Downloads](https://img.shields.io/npm/dm/r2mo-ai.svg)](https://www.npmjs.com/package/r2mo-ai)\n\u003e For [Rachel Momo](https://www.weibo.com/maoxiaotong0216) / Serial Experiments Lain\n\n![R2MO](docs/images/logo.jpeg)\n\n## 引导\n\n- 文档：\u003chttps://www.yuque.com/jiezizhu/r2mo\u003e\n    - [\u003e\u003e 快速开始](https://www.yuque.com/jiezizhu/r2mo/ssl9rl5klogu7cp0)\n- 示例：\u003chttps://gitee.com/zero-ws/zero-rachel-mxt\u003e\n\n## 1. 介绍\n\n### 1.1. 功能说明\n\n`r2mo-ai` 是 `SDD - Spec Driven Development` 命令行工具，提供项目初始化、规范与 OpenAPI 辅助、任务提示词生成，以及 Claude Code / Codex / OpenCode 的 `mxt` AI 命令安装与刷新。\n\n---\n\n## 2. 工具使用\n\n### 2.1. 安装\n\n**前置条件**：Node.js 18+（推荐 LTS 版本）\n\n**macOS / Linux**\n\n```bash\nnpm install -g r2mo-ai\n# 验证\nmxt help\n```\n\n若遇到权限问题：\n\n```bash\nsudo npm install -g r2mo-ai\n# 或使用 nvm 管理 Node 版本，避免 sudo\n```\n\n**Windows**\n\n```bash\nnpm install -g r2mo-ai\n# 验证\nmxt help\n```\n\n若遇到执行策略限制（PowerShell）：\n\n```powershell\nSet-ExecutionPolicy -Scope CurrentUser RemoteSigned\nnpm install -g r2mo-ai\n```\n\n**卸载**\n\n```bash\nnpm uninstall -g r2mo-ai\n```\n\n\u003e **Windows 提示**：安装或卸载 `mxt ai-cmd` 时，请先关闭 Claude Code / Codex / OpenCode，否则文件可能被锁定导致操作失败。若仍遇到 `EPERM` 或 `EBUSY` 错误，关闭应用后重试即可。\n\n### 2.2. 常用命令\n\n#### 🛠️ 环境初始化（工程初始化）\n\n| 命令 | 说明 | 选项 | 示例 |\n|:---|:---|:---|:---|\n| `mxt app` | 创建 R2MO/Spring 或 ZERO/Vertx 应用 | `-n` 指定名称 | `mxt app -n my-app` |\n| `mxt apply` | 从远程仓库安装技能到当前项目 | `-i` 反馈到仓库 | `mxt apply` |\n| `mxt env` | 环境信息检查 | | `mxt env` |\n| `mxt focus` | 维护 DPA focus 配置与任务绑定 | `-d` 完成备份；`-c` 同步配置 | `mxt focus` |\n| `mxt help` | 显示帮助的详细信息 | | `mxt help` |\n| `mxt init` | 初始化 `.r2mo` 规范目录结构 | | `mxt init` |\n| `mxt mcp` | 配置 MCP Skills Server | | `mxt mcp` |\n| `mxt open` | 使用指定 AI 工具打开项目 | | `mxt open` |\n| `mxt team` | 写入 `.r2mo/mxt.yaml` 角色配置 | | `mxt team` |\n| `mxt ui` | 创建/更新 UI 子项目 | | `mxt ui` |\n\n#### 📋 需求分析\n\n| 命令 | 说明 | 示例 |\n|:---|:---|:---|\n| `mxt docs` | 使用 Obsidian 打开文档目录 | `mxt docs` |\n| `mxt menu` | 扫描 `src/pages` 下 `menu.yaml` 打印树型菜单 | `mxt menu` |\n| `mxt mod` | 拉取 r2mo-spec，拷贝 OpenAPI 到 `.r2mo/api/` | `mxt mod` |\n| `mxt openapi` | 提取子项目 OpenAPI 文档到 `-ui/.r2mo/api/` | `mxt openapi` |\n\n#### 🚀 开发实施\n\n| 命令 | 说明 | 选项 | 示例 |\n|:---|:---|:---|:---|\n| `mxt admin` | 根据需求文档生成前端页面结构 | | `mxt admin` |\n| `mxt dict` | 读取 schemas 导出字典 | `-r` 逆向生成 SQL | `mxt dict` |\n| `mxt domain` | 执行 r2mo_proto 生成 Protobuf | | `mxt domain` |\n| `mxt mmr0` | 下载并生成 Flyway SQL 文件 | | `mxt mmr0` |\n| `mxt mmr2` | 下载并生成 Entity 类 | | `mxt mmr2` |\n\n#### 🤖 SDD 开发\n\n| 命令 | 说明 | 示例 |\n|:---|:---|:---|\n| `mxt ai-cmd` | 安装 AI 命令到 Claude Code / Codex / OpenCode | `mxt ai-cmd` |\n| `mxt ask` | 从模板选择提示词复制到剪贴板 | `mxt ask` |\n| `mxt plan` | 选择任务生成 Plan 提示词到剪贴板 | `mxt plan` |\n| `mxt run` | 选择任务生成提示词到剪贴板 | `mxt run` |\n| `mxt task` | 按 `task/thread` 配置对齐任务槽位 | `mxt task` |\n\n### 2.3. AI 平台命令安装\n\n`mxt ai-cmd` 将命令安装到 Claude Code、Codex、OpenCode 的可用位置。安装时菜单中会展示各平台的命令用法说明。命令源随 npm 包发布，位于 `agent/commands/`。\n\n```bash\n# 交互式选择安装平台（菜单中显示各平台用法）\nmxt ai-cmd\n```\n\n每次安装会先清理该命令在所选平台上的旧记录，再写入最新命令并重新注册。重复执行可用于刷新索引。\n\n---\n\n#### 闭环流程\n\n六个命令形成一个 `plan → run → end → goon` 闭环，`sync` 和 `start` 为辅助命令：\n\n```mermaid\nflowchart TD\n    A[“`task-xxx.md`”] --\u003e B[“mxt:plan\u003cbr/\u003e可选”]\n    A --\u003e C[“mxt:run”]\n    B --\u003e C\n    C --\u003e D[“mxt:end”]\n    D --\u003e E{“有待整改？”}\n    E -- 有 --\u003e F[“mxt:goon”]\n    F --\u003e G[“追加 Changes”]\n    G --\u003e D\n    E -- 无 --\u003e H[“Done ✅”]\n\n    classDef requirement fill:#e8f1ff,stroke:#4a7bd1,color:#12325b\n    classDef optional fill:#fff4d6,stroke:#d4a72c,color:#5b4300\n    classDef execute fill:#e8f7e8,stroke:#43a047,color:#123d1b\n    classDef verify fill:#f3e8ff,stroke:#8e5ad7,color:#41215f\n    classDef remediate fill:#ffe8e8,stroke:#d45a5a,color:#5d1f1f\n    classDef done fill:#e6fffb,stroke:#1aa39a,color:#0f4f4a\n\n    class A requirement\n    class B optional\n    class C execute\n    class D,E verify\n    class F,G remediate\n    class H done\n```\n\n各步骤行为：\n\n- **plan**（可选）— 只写回 `task-xxx.md` 的 `## Plan`，不执行实现\n- **run** — 优先按已有 `## Plan` 执行，无 Plan 时按任务正文执行，追加 `Changes`\n- **end** — 清空 `goon-xxx.md` 原始内容，写入当前待整改项\n- **goon** — 按整改项执行，闭环记录追加回 `task-xxx.md` 的 `Changes`，再执行 `end` 验证\n\n当 `end` 验证后 `goon-xxx.md` 无待整改项时，该编号任务闭环完成。\n\n\u003e `goon-xxx.md` 的 frontmatter `title` 必须与对应 `task-xxx.md` 标题一致，并追加 `整改-` 前缀。\n\n---\n\n#### 前置校验\n\n`plan`、`run`、`end` 要求对应 `task-xxx.md` 在 frontmatter 之后必须存在非空正文。正文为空时命令立即返回，不执行后续提示词。`sync` 和 `start` 无前置校验，直接执行。\n\n---\n\n#### 各平台调用方式\n\n**Claude Code / OpenCode** — slash command\n\n| 命令 | 前置 | 写回 | 说明 |\n|:---|:---|:---|:---|\n| `/mxt:plan 001` | 正文非空 | `## Plan` | 不执行、不追加 Changes |\n| `/mxt:run 001` | 正文非空 | `Changes` | 优先按 Plan 执行 |\n| `/mxt:end 001` | 正文非空 | `goon-001.md` | 标题为 `整改-` + task 标题 |\n| `/mxt:goon 001` | goon 存在 | `Changes` | 整改后再 end 验证 |\n| `/mxt:debug` | 无 | 无 | BUG 排查 |\n| `/mxt:sync` | 无 | 无 | Git 同步：提交、拉取、合并、推送 |\n| `/mxt:start` | 无 | 无 | 拉起开发环境 |\n\n**Codex** — plugin skill\n\n| 命令 | 等价 | 说明 |\n|:---|:---|:---|\n| `$mxt-plan 001` | `/mxt:plan` | 写 Plan |\n| `$mxt-run 001` | `/mxt:run` | 执行开发 |\n| `$mxt-end 001` | `/mxt:end` | 验证整改 |\n| `$mxt-goon 001` | `/mxt:goon` | 整改后验证 |\n| `$mxt-debug` | `/mxt:debug` | BUG 排查 |\n| `$mxt-sync` | `/mxt:sync` | Git 同步 |\n| `$mxt-start` | `/mxt:start` | 拉起环境 |\n\n参数 `001` 为三位数字任务编号，对应 `.r2mo/task/task-001.md`。格式不对时命令停止并提示正确用法。\n\n不同命令的 `001` 含义：\n\n| 命令 | `001` 对应文件 |\n|:---|:---|\n| `plan` / `run` / `end` | `.r2mo/task/task-001.md` |\n| `goon` | `.r2mo/task/task-001.md` + `.r2mo/task/goon-001.md` |\n\n文件不存在时命令直接询问最新任务号。\n\n四个命令发送给 AI Agent 的提示词统一使用”任务派发单”短列表格式，包含输入范围、前置校验、调度策略和写回规则。\n\n---\n\n#### 卸载\n\n```bash\nmxt ai-cmd --uninstall\n```\n\n全量清理：已安装的平台会被删除，未安装的跳过。\n\n---\n\n#### 平台安装细节\n\n**Claude Code**\n\n- 写入 `~/.claude/commands/mxt:*.md`，按 Claude Code 官方 user commands 目录暴露 `/mxt:*`\n- 写入 `~/.claude/plugins/marketplaces/mxt-skills`\n- 写入 `~/.claude/plugins/cache/mxt-skills/mxt/1.0.0`\n- 更新 `~/.claude/settings.json`（启用插件、注册 marketplace）\n- 若 `claude` CLI 可用：自动执行 `plugin marketplace add/update` 和 `plugin install`\n- 验证：`claude -p \"/mxt:plan 001\"` 不应返回 `Unknown command: /mxt:plan`；也可检查 `~/.claude/commands/mxt:plan.md`\n\n**Codex**\n\n- 写入 `~/.codex/plugins/mxt` 及 `~/.codex/marketplaces/mxt-skills`\n- 写入 `~/.codex/prompts/mxt-*.md` 兼容 prompts\n- 更新 `~/.codex/config.toml`（注册 marketplace 和 plugin）\n- 若 `codex` CLI 可用：自动执行 `plugin marketplace add` 和 `plugin add`\n- 验证：`codex plugin list`；`codex debug prompt-input` 中应出现 `mxt:mxt-plan` 等\n\n**OpenCode**\n\n- macOS / Linux：写入 `~/.config/opencode/opencode.json`\n- Windows：写入 `%APPDATA%\\opencode\\opencode.json`\n- 清理旧 `opencode.jsonc` 中该命令残留\n- 验证：检查 `command[“mxt:plan”]` 等是否存在\n\n安装后请重启应用或开启新会话，让命令或 skill 索引重新加载。\n\n### 2.4. 发布\n\n可直接通过 `./publish.sh \"commit message\"` 完成发布，脚本会依次执行：\n\n1. `npm version patch --no-git-tag-version` — 自动升级补丁版本号\n2. `npm publish --registry=https://registry.npmjs.org/` — 发布到 npm 官方源\n3. `git add . \u0026\u0026 git commit -m \"commit message\" \u0026\u0026 git push` — 提交并推送代码\n\n执行前需确认：\n\n- 已执行 `npm login` 且拥有 `r2mo-ai` 包的发布权限\n- 当前网络可访问 `registry.npmjs.org`\n- git remote 和目标分支正确，工作区只包含本次要发布的文件\n\n\u003chr/\u003e\n\n## 3. 参考链接\n\n### 3.1. 旧版\n\n- （后端）Zero Ecotope：\u003chttps://www.zerows.io\u003e\n- （前端）Zero UI：\u003chttps://www.vertxui.cn\u003e\n- （工具）Zero AI：\u003chttps://www.vertxai.cn\u003e\n- （标准）Zero Schema：\u003chttps://www.vertx-cloud.cn\u003e\n\n### 3.2. 新增\n\n- Maven 统一版本管理：\u003chttps://gitee.com/silentbalanceyh/rachel-mxt\u003e\n- Rapid快速开发框架：\u003chttps://gitee.com/silentbalanceyh/r2mo-rapid\u003e\n- Zero Epoch：\u003chttps://www.zerows.io\u003e\n- Zero Demo：\u003chttps://gitee.com/zero-ws/zero-rachel-mxt\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentbalanceyh%2Fr2mo-lain","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsilentbalanceyh%2Fr2mo-lain","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsilentbalanceyh%2Fr2mo-lain/lists"}