# 来源与 AI 使用说明

赛事允许使用 AI 辅助，但要求参赛者理解并负责最终成果。这份文档说明哪些部分是 AI 辅助完成的、如何验证、哪些判断必须由本人做出。

## 项目性质

- 全新项目，2026 年 10 月创建，与此前提交的 `AgentCanary` 没有代码复用。
- 没有移植任何第三方项目；没有复制其他仓库的实现。
- 依赖只有 MoonBit 核心库（Apache-2.0）与 Node 内置模块。`interop/` 在开发时通过 npm 安装官方 MCP 包，不进入发布产物。

## AI 参与范围

AI 参与了以下工作，全部经过本地编译、测试和实际运行校验：

- 协议状态机、策略解析、血缘提取、哈希链账本的初稿；
- 单元测试与集成测试的用例设计；
- README、策略语法、威胁模型等文档的初稿；
- 演示脚本与报告模板。

## 本人负责的判断

以下内容不能由 AI 代替，需本人在提交前确认：

1. **问题选择**：为什么做“执行前拦截”而不是继续做回放；
2. **边界声明**：哪些攻击面明确不覆盖（见 `SEMANTICS.md`），以及为什么这样取舍；
3. **策略默认值**：默认拒绝、血缘阈值、审批时长是否符合实际使用场景；
4. **对外表述**：驳回意见的回应是否准确，不夸大能力；
5. **申报材料**：报名表中的项目说明由本人撰写，AI 材料仅作技术参考。

## 验证方式

- `moon test --deny-warn`：47 个单元测试，覆盖策略求值顺序、血缘误报、路径规范化、密钥替身、会话配额、两点判定一致性、审批一次性、账本篡改检测等；
- `node --test test/*.test.mjs`：21 个 Node 测试（10 个真实进程级 + 2 个 HTTP 传输 + 2 个 MoonPod 兼容层 + 6 个材料校验 + 1 个版本一致性），验证真实副作用（文件、HTTP 计数）；
- `node demo/run.mjs`：端到端演示，任一断言失败即退出码非 0；
- `interop/client.mjs`：与官方 SDK 客户端、官方文件服务端互操作；
- 关键实现均可在 `*.mbt` 中逐行阅读，无生成代码或混淆。

## 参考来源

- MCP 规范（stdio 传输、JSON-RPC 消息形状、工具调用语义）：<https://modelcontextprotocol.io/>
- SHA-256：FIPS 180-4，测试向量取自标准文档；
- 信息流控制与能力模型的一般思想（非代码来源）：least privilege、taint tracking、capability leasing。

以上参考仅用于理解协议与算法，没有复制代码。

## 已知不足

- 血缘只覆盖原样携带的敏感值，变形外泄不覆盖；
- 不是沙箱，不限制上游服务端的系统权限；
- 审批台没有身份认证，只适合单机单用户；
- 没有做性能优化，账本逐条落盘。

这些不足在 `docs/SEMANTICS.md` 与 README 的“边界”一节中同步说明，不在申报材料中隐去。
