refactor: hard-fork GSD -> MSD (Make Software Done)

Mechanical rename produced by scripts/msd-rename.cjs: gsd/Gsd/GSD -> msd/Msd/MSD
across contents and paths, upstream package/repo coordinates -> @golem15/msd-core
and golem15com/msd-core. Deep links into upstream history, sibling upstream
packages, the GSD-2 import feature, CHANGELOG.md and .changeset/ are kept as-is.

Hand edits on top: MSD block-letter banner and logos, LICENSE copyright line,
package/plugin identity, regenerated lockfile, install-tree fixtures, derived
registries and benchmark baseline; migration checksum baseline re-locked
(MSD keeps its own install state, so no install had applied the old sums);
sort-order and regex-escaped expectations in tests adjusted.
This commit is contained in:
Jakub Zych
2026-10-06 01:47:40 +02:00
parent fe069b2a56
commit a9a7a328e6
2763 changed files with 78465 additions and 78434 deletions

View File

@@ -1,12 +1,12 @@
# 将现有代码库纳入工作流
在本教程中,您将把 GSD Core 引入一个已有代码的仓库。您将对代码库进行映射,创建一个描述您所*新增*内容的项目,并针对一个小型聚焦变更运行首次讨论与规划循环。完成后,GSD Core 的规划流水线将了解您的技术栈、规范和关注点——并在每次规划时运用这些知识。
在本教程中,您将把 MSD Core 引入一个已有代码的仓库。您将对代码库进行映射,创建一个描述您所*新增*内容的项目,并针对一个小型聚焦变更运行首次讨论与规划循环。完成后,MSD Core 的规划流水线将了解您的技术栈、规范和关注点——并在每次规划时运用这些知识。
---
## 您将构建的内容
我们将向一个现有的 Express 应用程序添加一个 `GET /health` 端点。该变更足够小,不会分散您对真正核心内容的注意力:GSD Core 在规划任何内容之前如何学习您的代码库。
我们将向一个现有的 Express 应用程序添加一个 `GET /health` 端点。该变更足够小,不会分散您对真正核心内容的注意力:MSD Core 在规划任何内容之前如何学习您的代码库。
---
@@ -18,12 +18,12 @@
---
## 第 1 步 — 安装 GSD Core
## 第 1 步 — 安装 MSD Core
在您的仓库根目录执行:
```bash
npx @opengsd/gsd-core@latest
npx @golem15/msd-core@latest
```
在提示时选择 **Claude Code** 和 **local**。您将看到:
@@ -31,7 +31,7 @@ npx @opengsd/gsd-core@latest
```text
✓ Installed 86 skills to .claude/commands/
✓ Installed agents to .claude/agents/
✓ GSD Core ready — run /gsd-new-project to start
✓ MSD Core ready — run /msd-new-project to start
```
---
@@ -44,7 +44,7 @@ claude --dangerously-skip-permissions
> [!CAUTION]
> **The permissions flag is optional.** It skips per-file confirmation while
> GSD's sub-agents read and write files. Use it only in low-stakes or
> MSD's sub-agents read and write files. Use it only in low-stakes or
> throwaway contexts. To keep confirmations enabled, start with `claude` instead.
> For real work, read the [security model](../explanation/security-model.md) first.
@@ -53,13 +53,13 @@ claude --dangerously-skip-permissions
## 第 3 步 — 开始 brownfield onboarding
在创建项目之前,让 GSD Core 检查仓库状态并告诉您安全的下一个顶层命令。这一步可避免跳过代码库上下文或覆盖现有 planning 文件。
在创建项目之前,让 MSD Core 检查仓库状态并告诉您安全的下一个顶层命令。这一步可避免跳过代码库上下文或覆盖现有 planning 文件。
```text
/gsd-onboard
/msd-onboard
```
如果 onboarding 报告缺少代码库映射,请选择推荐选项并运行打印出的 `/gsd-map-codebase` 交接命令,然后重新运行 `/gsd-onboard`。`/gsd-onboard --fast` 只适合轻量首次通过;在 `/gsd-new-project` 前仍需要完整映射。`/gsd-map-codebase` 会派生四个并行映射子代理(您将看到"Spawning 4 parallel codebase mapper agents…"——这需要 1–5 分钟;请勿中断)。每个代理专注于不同的关注点:
如果 onboarding 报告缺少代码库映射,请选择推荐选项并运行打印出的 `/msd-map-codebase` 交接命令,然后重新运行 `/msd-onboard`。`/msd-onboard --fast` 只适合轻量首次通过;在 `/msd-new-project` 前仍需要完整映射。`/msd-map-codebase` 会派生四个并行映射子代理(您将看到"Spawning 4 parallel codebase mapper agents…"——这需要 1–5 分钟;请勿中断)。每个代理专注于不同的关注点:
| 代理 | 关注点 |
|-------|-------|
@@ -83,9 +83,9 @@ Created .planning/codebase/:
- CONCERNS.md (33 lines) - Technical debt and issues
```
打开 `.planning/codebase/STACK.md`。您将看到 GSD Core 检测到的语言、运行时、框架版本和关键依赖项——这些内容基于实际读取的文件,而非猜测。
打开 `.planning/codebase/STACK.md`。您将看到 MSD Core 检测到的语言、运行时、框架版本和关键依赖项——这些内容基于实际读取的文件,而非猜测。
打开 `.planning/codebase/CONVENTIONS.md`。您将看到它从您的源代码中观察到的命名规范、错误处理模式和代码风格规则。GSD Core 为该仓库生成的每个计划都将自动遵循这些规范。
打开 `.planning/codebase/CONVENTIONS.md`。您将看到它从您的源代码中观察到的命名规范、错误处理模式和代码风格规则。MSD Core 为该仓库生成的每个计划都将自动遵循这些规范。
打开 `.planning/codebase/CONCERNS.md`。在进行任何新功能开发之前,这是最值得阅读的文件——它会展现可能影响您计划的技术债务和脆弱区域。
@@ -99,15 +99,15 @@ Created .planning/codebase/:
/clear
```
现在再次运行 `/gsd-onboard`。如果 GSD Core 检测到 ADR、PRD、spec、RFC 或根级需求文档,请先接受推荐的 `/gsd-ingest-docs` 交接,然后再运行 `/gsd-onboard`。上下文准备好后,onboarding 会打印项目初始化交接命令:
现在再次运行 `/msd-onboard`。如果 MSD Core 检测到 ADR、PRD、spec、RFC 或根级需求文档,请先接受推荐的 `/msd-ingest-docs` 交接,然后再运行 `/msd-onboard`。上下文准备好后,onboarding 会打印项目初始化交接命令:
```text
/gsd-new-project
/msd-new-project
```
由于 GSD Core 在上一步中发现了现有代码,`/gsd-new-project` 知道这是一个棕地项目。问题将聚焦于您所*新增*的内容,而非重新描述已有的内容:
由于 MSD Core 在上一步中发现了现有代码,`/msd-new-project` 知道这是一个棕地项目。问题将聚焦于您所*新增*的内容,而非重新描述已有的内容:
GSD Core 会询问您想构建什么。请用您正在添加的功能来回答,而不是描述整个代码库:
MSD Core 会询问您想构建什么。请用您正在添加的功能来回答,而不是描述整个代码库:
```text
Add a GET /health endpoint to the Express app. It should return
@@ -115,7 +115,7 @@ Add a GET /health endpoint to the Express app. It should return
health checks.
```
GSD Core 会进一步提出少量澄清问题,然后继续创建需求和路线图。由于它已读取 `ARCHITECTURE.md` 和 `STACK.md`,它会自动将现有能力映射到 `PROJECT.md` 的 **Validated** 部分——您无需描述现有的 API 接口。
MSD Core 会进一步提出少量澄清问题,然后继续创建需求和路线图。由于它已读取 `ARCHITECTURE.md` 和 `STACK.md`,它会自动将现有能力映射到 `PROJECT.md` 的 **Validated** 部分——您无需描述现有的 API 接口。
对所有工作流设置选择推荐默认值。
@@ -133,7 +133,7 @@ Proposed Roadmap
批准路线图。
项目设置完成后,再运行一次 `/gsd-onboard`。现在 `PROJECT.md`、`REQUIREMENTS.md`、`ROADMAP.md` 和 `STATE.md` 都已存在,onboarding 会创建或确认 `.planning/onboarding/SUMMARY.md`。
项目设置完成后,再运行一次 `/msd-onboard`。现在 `PROJECT.md`、`REQUIREMENTS.md`、`ROADMAP.md` 和 `STATE.md` 都已存在,onboarding 会创建或确认 `.planning/onboarding/SUMMARY.md`。
**在 `.planning/` 中创建的内容:**
@@ -148,7 +148,7 @@ Proposed Roadmap
codebase/ ← 第 3 步生成的七个映射文件
```
注意 `.planning/codebase/` 已经从第 3 步存在。GSD Core 在编写 `PROJECT.md` 时读取了这些文件,这就是为什么它无需您描述即可填充已验证的需求。
注意 `.planning/codebase/` 已经从第 3 步存在。MSD Core 在编写 `PROJECT.md` 时读取了这些文件,这就是为什么它无需您描述即可填充已验证的需求。
---
@@ -159,10 +159,10 @@ Proposed Roadmap
```
```text
/gsd-discuss-phase 1
/msd-discuss-phase 1
```
由于 GSD Core 已读取您的 `CONVENTIONS.md` 和 `ARCHITECTURE.md`,其问题基于您的实际代码库——而非通用建议。您可能会看到:
由于 MSD Core 已读取您的 `CONVENTIONS.md` 和 `ARCHITECTURE.md`,其问题基于您的实际代码库——而非通用建议。您可能会看到:
```text
> Your routes are registered in src/routes/index.js. Should the health
@@ -177,7 +177,7 @@ Proposed Roadmap
process.uptime() is fine.
```
讨论结束后,GSD Core 将写入:
讨论结束后,MSD Core 将写入:
```text
.planning/phases/01-health-endpoint/CONTEXT.md
@@ -190,7 +190,7 @@ Proposed Roadmap
## 第 6 步 — 规划第 1 阶段
```text
/gsd-plan-phase 1
/msd-plan-phase 1
```
四个研究子代理并行运行(1–5 分钟)。当它们返回后,规划器读取 `CONTEXT.md`、研究结果和您的代码库映射,创建符合您规范的任务计划。
@@ -204,7 +204,7 @@ Proposed Roadmap
01-02-PLAN.md ← Task: register health route in src/routes/index.js
```
打开 `01-01-PLAN.md`。注意 `<files>` 标签引用了 `src/routes/health.js`——正是您在讨论中指定的路径,与 GSD Core 在代码库映射中观察到的路由模式一致。这正是代码库映射发挥作用的体现。
打开 `01-01-PLAN.md`。注意 `<files>` 标签引用了 `src/routes/health.js`——正是您在讨论中指定的路径,与 MSD Core 在代码库映射中观察到的路由模式一致。这正是代码库映射发挥作用的体现。
---
@@ -213,21 +213,21 @@ Proposed Roadmap
您现在拥有一个带有代码库映射、讨论决策记录和经过验证的任务计划的项目——所有内容均基于您的实际代码。从这里开始,工作流与绿地项目完全相同:
```text
/gsd-execute-phase 1
/gsd-verify-work 1
/gsd-ship 1
/msd-execute-phase 1
/msd-verify-work 1
/msd-ship 1
```
对于每个未来的功能,当结构发生重大变化时,再次运行 `/gsd-map-codebase`,以保持代码库映射的时效性。
对于每个未来的功能,当结构发生重大变化时,再次运行 `/msd-map-codebase`,以保持代码库映射的时效性。
---
## 您学到了什么
- `/gsd-onboard` 如何安全编排 brownfield 设置,不嵌套交互式命令,也不覆盖现有 planning 文件。
- `/gsd-map-codebase` 如何运行四个并行代理,在 `.planning/codebase/` 中生成 `STACK.md`、`ARCHITECTURE.md`、`CONVENTIONS.md`、`CONCERNS.md`、`STRUCTURE.md`、`TESTING.md` 和 `INTEGRATIONS.md`。
- 在棕地仓库中运行 `/gsd-new-project` 如何将问题聚焦于您所*新增*的内容,并从现有代码中填充已验证的需求。
- 代码库映射如何塑造 `/gsd-discuss-phase` 中的每个问题——文件路径、模式和规范均来自您的实际代码。
- `/msd-onboard` 如何安全编排 brownfield 设置,不嵌套交互式命令,也不覆盖现有 planning 文件。
- `/msd-map-codebase` 如何运行四个并行代理,在 `.planning/codebase/` 中生成 `STACK.md`、`ARCHITECTURE.md`、`CONVENTIONS.md`、`CONCERNS.md`、`STRUCTURE.md`、`TESTING.md` 和 `INTEGRATIONS.md`。
- 在棕地仓库中运行 `/msd-new-project` 如何将问题聚焦于您所*新增*的内容,并从现有代码中填充已验证的需求。
- 代码库映射如何塑造 `/msd-discuss-phase` 中的每个问题——文件路径、模式和规范均来自您的实际代码。
- 规划器如何读取 `CONTEXT.md` 和 `CONVENTIONS.md` 来生成符合您仓库风格的计划。
---
@@ -235,5 +235,5 @@ Proposed Roadmap
## 相关内容
- [您的第一个项目](your-first-project.md) — 从安装到 PR 的完整绿地循环
- [通过命令使用映射代码库](../COMMANDS.md) — 所有 `/gsd-map-codebase` 标志和子命令
- [通过命令使用映射代码库](../COMMANDS.md) — 所有 `/msd-map-codebase` 标志和子命令
- [文档索引](../README.md)