# MoonRobots Gate 项目申报书

**项目类型：**原创 MoonBit 开源库与开发工具  
**参赛者：**石子硕  
**报名邮箱：**`2111950632@qq.com`  
**联系电话：**`18713029718`  
**公开仓库：**`https://github.com/2111950632/moonrobots-gate`  
**Mooncakes：**`2111950632/robots-gate`  
**开源许可证：**Apache-2.0

## 项目简介

MoonRobots Gate 是面向 `robots.txt` 的可解释策略工程工具。它将文本规则转换为可检查的数据模型，为爬虫、搜索索引器、链接检查器、文档工具和 AI 智能体提供确定的访问判断、风险诊断、站点地图校验与抓取规划能力。

## 一、项目现有基础

项目已有可运行的 MoonBit `0.2.0` 本地原型，核心逻辑全部使用 MoonBit 实现。现有功能包括防御式 `robots.txt` 解析、用户代理选择、最长规则匹配、`Allow` 同长优先、通配符与末尾锚点、百分号编码归一化、决策轨迹、语义检查、策略渲染、访问矩阵、策略差异、站点地图校验和预算抓取规划。

当前包含 4,284 行可复用 MoonBit 核心库代码、1,213 行测试代码，MoonBit 源码共 5,745 行、26 个源文件；已有九组 CLI 命令、四个可运行示例和 102 项自动化测试。`moon fmt --check`、`moon check`、`moon build`、`moon test` 和 `moon package --list` 均已通过。

## 二、本次计划开发或新增的内容

1. 增加独立网络获取层，处理 `robots.txt` 重定向、HTTP 状态、正文大小限制、缓存时间和失败回退，同时保持策略核心可纯函数测试。
2. 增加批量站点审计流程，可对多个站点统一生成 Markdown、JSON 和 CSV 报告，并提供适合 CI 的退出码。
3. 扩充 RFC 9309 兼容性夹具、畸形输入、编码边界和资源上限测试，形成可复用的协议回归测试集。
4. 完善 CLI 错误处理、配置输入和报告导出，补充真实工作流示例。
5. 整理公共 API、兼容性说明、维护指南和发布文档，并完成公开仓库及 Mooncakes 发布。

## 三、预期目标与技术路线

项目采用“纯策略核心＋可替换传输层”的分层结构。文本首先经过限额解析和源位置诊断，再进入用户代理选择与路径匹配；上层复用统一决策结果完成语义审计、版本差异、站点地图检查和抓取规划；新增传输层只负责网络状态、缓存和内容获取，不污染协议算法。

本次开发目标是将现有本地原型完善为可公开复用、可在 CI 中稳定运行的 MoonBit 工具包，预计达到约 7,000 至 9,000 行有效 MoonBit 代码。重点保证结果可解释、输入有资源上限、相同输入产生确定输出，并明确不包含页面解析、JavaScript 渲染和完整网络爬虫。

## 四、预计完成的功能、测试与文档

- **功能：**网络获取与缓存、批量审计、结构化报告、完整 CLI、站点地图策略检查和预算抓取规划。
- **测试：**不少于 150 项自动化测试，覆盖协议语义、异常输入、网络状态、缓存、批量任务和回归夹具；所有测试可由 `moon test` 直接运行。
- **示例：**提供策略判断、批量审计、站点地图检查、抓取规划和 CI 集成示例。
- **文档：**提供完整 README、API 使用说明、架构设计、协议兼容性说明、维护指南、更新日志和发布记录。
- **工程：**配置持续集成，确保格式检查、类型检查、构建、测试和发布包检查稳定通过。

## 五、原创性与许可证说明

本项目为原创 MoonBit 实现，不是其他开源库的直接移植，也未复制第三方项目源码。协议行为参考 RFC 9309、RFC 3986 和公开的 Robots 解析文档，参考内容仅用于理解公开标准。项目采用 OSI 认可的 Apache-2.0 许可证，核心运行时依赖仅为 `moonbitlang/core`；新增依赖将在引入前核查许可证并记录来源。
