# moon_api_guard 项目申报书

- 项目：`moon_api_guard`（MoonBit API 兼容性守卫）｜参赛者：翟继康
- GitHub：https://github.com/FidollarinLA/moon_api_guard
- GitLink：https://gitlink.org.cn/FidollarinLA/moon_api_guard
- mooncakes：`FidollarinLA/moon_api_guard`（当前 **0.6.1**）｜方向：工程基础设施｜原创｜Apache-2.0

## 简介与场景

基于 `moon info` 的 `.mbti` 快照对比公开 API，输出 breaking/compatible、SemVer 建议与 CI 退出码，用于发布前检查、PR 审查与发布守卫。

## 核心交付（已实现）

- 解析 fn/struct/enum/trait/type/alias/fnalias/const/let/suberror/impl；细分类含 raise、可选/必选标签参数、async/noraise、泛型约束、typealias/fnalias/const/type/let、derive、元组 struct、trait 父约束、impl with、pub(open) 可见性等。
- `CompatPolicy` + CLI `--strict/--allow/--ignore/--policy`，可自动发现 `moon_api_guard.json`；`policy dump`。
- CLI：`check` / `check-dir`（`--ignore-path`）/ `baseline update`；`--format text|markdown|json|html|sarif`、`--output`、`--breaking-only`、`--github-summary`。
- 交互 HTML 报告（筛选/搜索/新旧签名/暗色）与静态答辩页 `web/`；可复用 workflow `.github/workflows/reusable-api-guard.yml`。
- 示例：`examples/basic`、`examples/semantics`、`examples/ci-guard`、`scripts/demo.sh`；规则见 `docs/rules.md`。
- CI：Ubuntu/macOS/Windows check/test/build/example/fmt/info（`--deny-warn`）；一键验收脚本与证据矩阵；已发布 mooncakes.io。

## 原创与参考

原创 MoonBit 项目。概念参考 cargo-semver-checks / japicmp / revapi（许可证与范围见 README），输入与规则围绕 `.mbti` 与 mooncakes 重新设计。
