# 契约目录维护规则 ## 目录边界 - `schema/` 是共享仓库 `git@gitee.com:zzmbac/sip-contracts.git` 的 Git submodule,只保留 SaaS↔Dispatcher 对接所需的业务规范、Schema、MQ 拓扑和正常示例。 - `schema/README.md` 将 Schema 和 Examples 分为两张用途表;业务规范 Markdown 和 `mq-topology.json` 在正文单独链接说明,不列入表格,不列 README 自身,不放本项目维护或验证说明。 - 本项目的验证材料留在当前目录:`manifest.json`、`verify.py`、`test_verify.py`、Go 测试、`examples/invalid/`、`archive/sources/`。不得重新写入共享仓库或嵌入运行契约。 - `archive/sources/` 中两份历史来源保留原字节;不作为当前规范、运行配置或真实签收依据。 - 共享 Schema 是唯一字段定义,不在本地复制或维护另一份 Schema。 ## 同步与检查 - 调研或修改契约前必须在项目根目录执行 `make contracts-update`;失败即停止,保留现存改动。 - 普通构建只使用固定 submodule 提交,不自动联网追新,不回退旧契约。 - 现行合同只由 Git submodule 提交号固定,不维护逐文件或整包 hash。`manifest.json` 仅保存冻结历史归档的来源证据,不是 SaaS 配置;历史证据不可改写。`verify.py` 仍检查离线 Schema 引用和历史来源完整性。 - 共享变更须提交并推送共享仓库,再同步本项目 submodule 指针、实现、测试和文档,并通知 SaaS 开发人员。共享仓库单独提交不算完成。 - 交付前执行 `make contract-check`、`make check` 和 `make release-check-local`;本地模拟验证不代替真实 SaaS、线路或生产签收。 - 不暂存、提交、覆盖或清理使用者无关修改。具体同步流程见 `../docs/contracts.md`。