# MoonSmith 0.0.1

首个完整发行版本提供四个 MoonBit 模块，以及 macOS arm64、Linux x86\_64 的 native CLI。 编译器与配套 core 固定为正式版 `0.10.18+6c83a7f62`，async 依赖为正式版 `0.22.6`。

## 能力

- 通过类型和作用域约束生成 MoonBit 程序，比较四后端、五配置的执行结果，保存完整原始记录。
- 可选的等价检查保持稳定成员身份和变换版本。跨程序输出分歧会按原始成员与配置对归约整个程序组， 对最佳组独立确认。每个候选重新缩减原程序并应用相同变换，候选预算默认 16、范围 0–64。
- `replay GROUP_DIR` 执行所有保存成员并重新比较，追加组与执行记录。现有案例和尝试的单程序重放继续可用。
- 构建异常与正常输出分歧分别判定；特定 native release 构造器诊断可进入自动归约，但原始比较仍为未完成。

等价检查默认关闭，通过 `execution.equivalent_variants=true` 开启。退出码保持一致 `0`、操作错误 `1`、 输出分歧 `2`、比较未完成 `3`，保存失败优先返回 `1`。

## 安装与附件

从 Mooncakes 安装精确版本：

```shell
moon install zrr1999/moonsmith/cmd/moonsmith@0.0.1
```

也可下载匹配平台的预编译包，校验 `SHA256SUMS` 后解包并将 `moonsmith` 加入 `PATH`。 程序仍需宿主安装指定 MoonBit/core 和 C 编译器；选择 JS 配置时还需 Node.js。

CD 发布两平台 CLI 和校验和。当前版本的五配置等价验收、三例历史异常复现、自动归约与独立确认， 以及仓库外安装和重放材料由对应 CI 保存。原万例实验与人工调查材料、双平台历史复现与发行安装 证据已附到 [Release](<https://github.com/zrr1999/moonsmith/releases/tag/v0.0.1>)，来源见附件 [`EVIDENCE.md`](<https://github.com/zrr1999/moonsmith/releases/download/v0.0.1/EVIDENCE.md>)， 使用 `SHA256SUMS-EVIDENCE` 校验。文件清单、校验方法与发布步骤见[发行说明](<https://docs.moonsmith.zrr.dev/releasing/index.md>)。

## 验收证据

发行标签对应提交 `70ab5fbe08b4569055e273f4c666aaaee3cdcbae`。以下运行均核对该提交， 可从对应运行页面查看日志和下载 artifacts：

| 范围 | 记录 |
| --- | --- |
| 静态检查与 CodeQL | [CI - Static Checks](<https://github.com/zrr1999/moonsmith/actions/runs/41165572730>) |
| 行为测试与双平台旧编译器复现 | [CI - Tests](<https://github.com/zrr1999/moonsmith/actions/runs/41165572693>) |
| 解包测试、库消费、安装与历史种子检查 | [CI - Acceptance](<https://github.com/zrr1999/moonsmith/actions/runs/41165572698>)，本次主分支运行不含 100 种子扩展任务 |
| 四模块与双平台二进制发布 | [CD - Publish](<https://github.com/zrr1999/moonsmith/actions/runs/41167096291>) |
| 公开二进制与 Mooncakes 安装、五配置执行及搬迁重放 | [CI - Distribution](<https://github.com/zrr1999/moonsmith/actions/runs/41171404514>)，方法与结果见[发行安装验收](<https://docs.moonsmith.zrr.dev/cli-installation-validation/#001-发行安装验收>) |

最小使用方式见[可运行示例](<https://github.com/zrr1999/moonsmith/blob/main/examples/README.md>)。Actions artifacts 有保留期限， 原万例材料的摘要和 SHA-256 仍由[历史材料清单](<https://github.com/zrr1999/moonsmith/blob/main/.github/release-evidence.json>)维护。

## 边界

最终输出协议仍为 Int 或 Bool；归约范围为本工具生成的程序，不保证全局最小。 进程管理回收直接子进程，进程树隔离与后代清理安排在下一版本。 旧万例实验保留原提交及工具链信息，不作为本版本重新执行的万例结果。 189 字节同模式复现属于人工整理，独立于产品自动归约结果。
