Files
AtomUI/docs/engineering/contributing/reference-project-source-guidelines.md

38 lines
3.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 参考项目源码查找规范
本文是 AtomUI 的全局工程约束。凡是用户要求“参考某个项目源码”,或表达同等意图(例如“对照某项目实现”“借鉴某项目代码”“看看某项目是怎么做的”),都必须先按本文定位参考源码,再进行分析、设计、编码或回答。触发不依赖用户是否使用了完全相同的措辞。
## 强制查找顺序
将当前任务所属的仓库根目录视为“项目目录”,按以下顺序查找用户指定的项目名:
1. 先查项目目录下的隐藏目录 `.referenceprojects`,目标位置为
`<项目目录>/.referenceprojects/<项目名>`。
2. 如果没有找到对应项目,从项目目录本身开始逐级向上查找。每一级只检查该目录下名为 `ReferenceProjects` 的目录,即
`<项目目录>/ReferenceProjects/<项目名>`、`<父目录>/ReferenceProjects/<项目名>`、`<祖父目录>/ReferenceProjects/<项目名>`,持续到文件系统根目录。
3. 只有上述全部本地位置都没有对应项目时,才允许去 GitHub 搜索源码。
目录名 `.referenceprojects` 与 `ReferenceProjects` 必须按本文所写的大小写和拼写处理;不得因为某一级未命中就跳到更高一级,也不得用其他未授权目录、全盘递归搜索或 GitHub 搜索替代规定顺序。
## 项目匹配与来源选择
- `<项目名>` 优先使用用户给出的项目名称做精确路径匹配。遇到名称歧义时,可以列出候选目录核对,但不得凭记忆选择一个“看起来相近”的项目。
- 在本地找到对应项目后,以本地源码为本次参考的唯一默认来源;不得未经用户明确要求再用 GitHub 版本替换或覆盖本地来源。
- 只有本地查找完全结束且没有命中时,才使用 GitHub。GitHub 来源应优先选择项目官方仓库,并记录仓库 URL、分支或 tag,以及能够确定时的 commit;不要把搜索结果摘要当作源码依据。
- 如果本地和 GitHub 都无法找到对应源码,必须明确报告“未找到参考源码”,停止把该项目当作已验证依据,不得编造实现细节或暗示已经参考过。
## 执行与记录要求
开始依赖参考项目的工作前,必须实际执行上述查找流程,而不是只根据已有记忆回答。结果中至少说明:
- 最终采用的来源类型:本地或 GitHub;
- 本地来源的绝对路径,或 GitHub 来源的仓库 URL;
- 若存在多个候选,说明为什么选择该候选;
- GitHub 来源可确定时的分支、tag、commit 或检索日期。
如果用户同时指定了多个参考项目,必须对每个项目独立执行完整顺序;一个项目命中本地目录,不代表其他项目可以跳过本地查找。用户明确要求比较本地源码与 GitHub 上游时,才可以在本地来源命中后继续查 GitHub,并分别标注两类来源。
## 与其他规则的关系
本规范只规定“参考项目源码从哪里找”。参考源码不是 AtomUI 自身公共契约、架构事实或版本来源;长期文档仍必须以 AtomUI 已验证的行为和契约为准。引用外部实现时,应说明哪些内容是外部参考、哪些内容已经在 AtomUI 中重新验证。