Files
BlueArchiveToolkit/AGENTS.md
T
nyaKazuha b4b4f25cb3 refactor(ffi): 降级 FFI 为可选兼容层并整理文档
将 bat-ffi 明确收敛为无状态 C ABI 兼容层,默认集成路径改为 bat --json 进程边界或未来稳定 SDK。

同步 README、当前状态、项目计划、架构文档、开发指南和缺口清单,移除 FFI 作为主集成边界的表述。

新增 AGENTS.md 和 CONTRIBUTING.md,压缩 CLAUDE.md 为兼容入口,并归档阶段性报告、同步 .gitignore 规则。
2026-07-15 21:12:17 +08:00

4.9 KiB
Raw Permalink Blame History

Agent 开发规则

本文件是 BlueArchive Toolkit 中 AI agent、自动化开发助手和长期维护脚本的权威入口。它替代旧 CLAUDE.md 中真正长期有效的工程规则。

语言和表达

  1. 默认使用简体中文交流、写文档、写提交说明、写开发日志和写 API 说明。
  2. 代码中的包名、类型名、函数名、变量名、数据库字段、协议字段和命令参数保持英文命名规范。
  3. 代码注释只在能降低理解成本时添加;不要写复述代码行为的空泛注释。
  4. 如果任务、上游规范或第三方 API 明确要求英文,可以在对应位置使用英文。

项目定位

BlueArchive Toolkit 是长期维护的开源工具链,不是 demo、一次性脚本或临时试验项目。

长期目标包括但不限于:

  1. 官方资源同步、版本管理、增量同步、断点续传、重试、限速、缓存和校验。
  2. Content Addressable StorageCAS)、引用计数、垃圾回收、多版本共享和完整性校验。
  3. UnityFS / AssetBundle / Addressables / Manifest 解析框架,并保持解析器与业务逻辑解耦。
  4. 文本提取、翻译记忆、术语库、AI Provider 抽象、Patch、CLI、Web、API、SDK 和插件系统。
  5. 支持未来扩展到其他区域、语言或 Unity 游戏;不要把架构写死到单一版本。

工程边界

  1. 默认工作于用户本地环境。不要把生产环境当作开发环境。
  2. 真实资源下载、smoke run 和手动验证必须写入隔离目录,例如 /tmp 或显式指定的测试目录。
  3. 不要默认读取、修改或污染现有客户端目录、生产资源目录或 /home/wanye/D/BlueArchive 这类本地资源目录。
  4. 不要要求安装官方启动器作为生产运行前提。可以分析启动器资源或官方公开数据,但生产链路必须能在 Linux 环境中独立运行。
  5. 涉及官方资源时,优先使用官方 .hash、catalog、manifest 和可复现 fixture 做校验依据。

架构原则

  1. 仓库采用 monorepo;模块必须边界清晰、高内聚、低耦合。
  2. 公共接口应稳定、可测试、可维护,并为未来扩展保留合理空间。
  3. Rust 侧优先承担二进制解析、AssetBundle、Patch、CAS 和官方资源后端能力;Go 侧优先承担 CLI、运维入口和面向用户的命令编排。边界调整必须先说明理由。
  4. Rust/Go 默认集成路径优先进程边界(当前为 bat --json)或未来稳定 SDKbat-ffi 仅作为可选无状态 C ABI 兼容层,不能扩展成 daemon、下载器、CAS handle 或主控制面。
  5. SDK 不得与 CLI 耦合;解析器不得与业务流程耦合;Provider、存储后端、Patch 算法和解析器应保留插件化扩展点。
  6. 不引入 God Object、God Class、超长函数、超长文件、硬编码、魔法数字、重复代码、临时实现或只为当前测试通过的伪实现。
  7. 不使用 TODOFIXME 掩盖未完成设计。确实无法完成时,应在当前缺口文档中说明边界、风险和后续工作。

开发流程

  1. 动手前先读相关文档和代码,确认当前真实状态。
  2. 对跨模块、架构、数据格式或用户工作流有影响的改动,先给出设计判断或简短计划。
  3. 实现后必须同步验证。验证范围要覆盖改动实际影响面,而不是只跑最窄的命令。
  4. 涉及用户可见行为、运行方式、架构边界或缺口状态时,必须同步更新文档。
  5. 保持改动范围和任务目标一致;不要顺手做无关重构或格式化 churn。
  6. 如果需求、技术路线或设计存在明显风险,应直接指出并给出可执行替代方案。
  7. 不确定的事实必须查证或询问;不要凭空调用不存在的接口、命令、路径或线上资源。

质量要求

  1. 所有错误必须显式处理,并给出可诊断信息。
  2. 日志应结构化或至少足够定位阶段、路径、版本、URL、重试、校验和失败原因。
  3. 下载、写文件、状态切换和发布操作必须考虑原子性、断点续传、并发锁、失败恢复和清理策略。
  4. 本地状态文件和索引必须有版本字段或兼容策略。
  5. 新增 fixture、golden 或回归样本时,应说明它覆盖的真实风险。
  6. 默认验证命令见 docs/guides/development.md;稳定工程基线见 docs/guides/baseline.md

文档职责

长期规则的权威位置如下:

  1. AGENTS.md:agent 行为、工程边界、架构原则和质量要求。
  2. CONTRIBUTING.md:贡献者工作流、提交规范、验证和 PR 要求。
  3. docs/guides/development.md:环境准备、开发命令、测试、调试和真实资源验证方式。
  4. PROJECT_PLAN.md:产品目标、阶段路线图和长期能力规划。
  5. CURRENT_STATUS.md:当前实现状态。
  6. docs/reports/CURRENT_GAPS.md:当前缺口、优先级和关闭顺序。

CLAUDE.md 只保留兼容入口,不应继续新增长期规则。