# 2026-08-20 本地验收自查报告

本报告记录无需登录 GitHub Desktop 即可完成的本地自查结果。自查对象为 `mooncake-auditor-public`，项目包名为 `ZYK-ai-nb/cspkit`。

## 总体判断

项目已具备较完整的本地验收基础：MoonBit 工程可构建、测试可运行、示例可执行、README 和申报材料完整、CI 已配置、许可证清晰、开发记录可追踪，且 MoonBit 非注释源码超过 4k 行。本报告按 8 月黑客松规则整理，不能替代远端仓库和 mooncakes.io 的实际状态核验。

仍需登录后完成的事项：

- 使用 `ZYK-ai-nb` 的 GitHub 账号将本地提交推送到 GitHub；
- 使用 MoonBit/Mooncakes 账号执行 `moon login` 和 `moon publish`；
- 发布成功后确认 mooncakes.io 页面可以访问 `ZYK-ai-nb/cspkit`。

## 本地检查结果

| 检查项 | 结果 |
| --- | --- |
| MoonBit 项目配置 | 通过，根目录包含 `moon.mod` 和 `moon.pkg` |
| 包名 | `ZYK-ai-nb/cspkit` |
| 远端仓库 | `https://github.com/ZYK-ai-nb/mooncake-auditor-public.git` |
| Git 提交数 | 超过 10 次本地提交，均为有效功能、测试或工程文档变更 |
| 当前分支 | `main` |
| 本地相对远端 | 本地领先 `origin/main`，新增提交尚未推送 |
| MoonBit 工具链 | `moon 0.1.20260803`，`moonc 0.10.6` |
| MoonBit 非空源码 | 4390 行 |
| MoonBit 非注释代码 | 4048 行 |
| 格式检查 | `moon fmt --check` 通过 |
| 包元数据检查 | `moon info` 通过 |
| 普通检查 | `moon check` 通过 |
| 无警告检查 | `moon check --deny-warn` 通过 |
| 构建 | `moon build` 通过 |
| 普通测试 | `moon test` 通过，38/38 |
| 无警告测试 | `moon test --deny-warn` 通过，38/38 |
| 示例运行 | `moon run cmd/main` 正常 |
| 敏感信息扫描 | 未发现其他人信息、手机号、QQ 邮箱或旧项目标识 |

本机环境提示：当前 `moonc` 为 0.10.6，低于建议的 0.10.7；建议提交前在实际验收环境使用最新 MoonBit 工具链。尝试全目标测试时，`wasm` 和 `wasm-gc` 均通过，JavaScript 目标因本机未安装 `node.exe` 无法启动；这不影响仓库当前 `preferred_target = "wasm"` 的默认检查，CI 的 Ubuntu 环境会执行项目配置的默认检查。

## 示例输出

```text
directives=3
blocking=1
added=2
changed=1
header=default-src 'self'; script-src 'self' 'nonce-demo'; object-src 'none'; base-uri 'self'; frame-ancestors 'none'
score=100 grade=A penalty=0 bonus=13
templates=23 valid=23 clean=21 risky=2
```

## 有效功能范围

项目不是空代码堆叠，新增代码围绕 CSPKit 的核心边界展开：

- CSP 策略解析；
- 指令查询和 fallback 计算；
- source expression 分类；
- CSP 指令目录；
- 审计规则目录；
- 安全评分；
- 加固建议；
- 文本、Markdown、JSON 风格报告；
- 策略 diff；
- 23 个内置策略模板；
- 38 个可运行测试。

## 不需要登录 GitHub Desktop 也能完成的事项

- 本地代码开发和文档完善；
- 本地 Git 提交；
- 本地构建、测试、示例运行；
- 本地敏感信息扫描；
- 本地代码行数统计；
- 生成源码压缩包和 Git bundle 备份；
- 准备申报书、测试记录、开发记录、发布记录和验收报告。

## 需要登录后完成的事项

这些事项会影响远端账号显示或发布身份，应等 GitHub Desktop 切回 `ZYK-ai-nb` 后再做：

- `Push origin`；
- 创建 GitHub Release；
- 修改 GitHub 仓库 About、Topics、Description；
- 等待 GitHub Actions 在远端跑完；
- 向报名问卷提交最终 GitHub 链接；
- `moon login` 后执行 `moon publish`。

## 当前硬门槛

本地检查已通过，但以下事项必须在账号正确后完成，不能由本地文件代替：

- GitHub Desktop 切换到 `ZYK-ai-nb` 后点击 `Push origin`，使默认分支包含全部本地提交；
- GitHub Actions 远端运行成功，并确认默认分支显示最新代码；
- 使用项目维护者自己的 MoonBit/Mooncakes 账号执行 `moon login`、`moon publish --dry-run` 和 `moon publish`；
- 在 mooncakes.io 上确认 `ZYK-ai-nb/cspkit` 的公开页面和 `0.1.0` 版本。

## 账号安全提醒

不要用其他人的 GitHub Desktop 账号推送本仓库。推送账号、仓库 owner、提交作者和参赛者最好保持一致，均为 `ZYK-ai-nb`，这样评审看到的贡献关系最清楚。当前本地提交未被修改，推送前无需重新登录其他账号。
