EverOS 社区贡献指南:从 Issue 到合并的完整协作流程
人工智能AI AgentAgent 记忆RAG【免费下载链接】EverOSOne portable memory layer for every AI agent: local-first, Markdown-native, user-owned, and self-evolving across apps, tools, and workflows.项目地址https://gitcode.com/gh_mirrors/ev/EverOS点击查看免费下载EverOS 是一个本地优先、Markdown 原生、用户自有的 AI Agent 记忆层框架其仓库维护着一套贯穿 Issue、Commit、PR、CI 与维护者流程的工程纪律。本文以 CONTRIBUTING.md 为主体结合仓库内的 Makefile、pyproject.toml、.github/workflows/ci.yml、.pre-commit-config.yaml 与scripts/下的校验脚本完整讲解外部贡献者与核心维护者两个角色的协作规范如何提交高质量 Bug 报告与功能建议、如何开出符合规范的 PR、如何用make ci一次性通过所有硬性检查以及维护者侧的分支策略、提交信息规范与测试要求。读完本文你将掌握一条可复现的、从「提 Issue」到「PR 合并」的完整协作路径。一、EverOS 如何接纳贡献EverOS 采用策展式 Pull Request 贡献模式curated pull request contributionsEverMind 核心团队在合并前会对每一个变更进行产品契合度、架构一致性、许可合规与长期可维护性的审查。贡献类型去处 Bug 报告使用bug_report.yml模板开 Issue 功能想法 / 使用场景使用feature_request.yml模板开 Issue 聚焦的修复关联 Bug、设计说明或清晰复现的 Pull Request❓ 提问与讨论GitHub Discussions / Discord 社区大型架构变更应先以 Issue 或 Discussion 开启讨论再动手写代码而小型文档、测试、CI 和 Bug 修复类 PR 可以直接打开。注意CONTRIBUTING.md中的外部链接Issue 模板、Discussions、Discord 等指向项目线上社区仓库内可对照查看的是 .github/ISSUE_TEMPLATE/bug_report.yml 与 .github/ISSUE_TEMPLATE/feature_request.yml 两份真实模板定义。二、报告 Bug用模板写出「可复现」的问题Bug 报告请使用仓库中的bug_report.yml模板包含以下要素清晰的复现步骤reproduction steps期望行为 vs. 实际行为环境信息OS、Python 版本、everos 版本相关日志务必隐去密钥从 .github/ISSUE_TEMPLATE/bug_report.yml 可以看到模板还要求选择问题所属Area如src/everos、use-cases、documentation等、填写「发生了什么 / 期望行为」以及结构化的复现步骤占位。这保证了每个 Bug Issue 一开始就具备可被核心团队复现的最小信息集。三、建议功能先讲场景再谈设计功能请求使用feature_request.yml模板需要提供要解决的使用场景 / 问题use case / problem提议的 API 或行为proposed API or behavior向后兼容性考量backward-compatibility considerations这一要求与 EverOS 的架构取向一致项目以「本地优先、Markdown 原生、用户自有」的记忆层为核心任何新能力都必须能嵌入现有的分层架构entrypoints → service → memory → infra并保持对既有存储与配置的兼容。四、提交 Pull Request六步标准流程从main创建分支保持变更聚焦于单一目的one purpose不要提交图片、视频或资源/媒体目录——使用外部托管、发布产物或经过批准的存储并从文档中链接对应仓库内的scripts/check_repo_assets.py门禁请求评审前在本地运行make ci使用 Conventional Commit 标题例如fix(search): guard empty profile向main打开 PR 并填写 PR 模板。提交 PR 即表示你同意你的贡献遵循项目的 Apache-2.0 许可。4.1 PR 模板的实际结构.github/PULL_REQUEST_TEMPLATE.md 要求填写Summary变更内容与原因、Area架构方法 / Benchmark / Use case / 文档 / 开发者体验 / CI 构建发布、Verification运行过的命令、人工检查、截图并逐项勾选 Checklist变更范围聚焦于相关区域从独立分支打开而非直接推main行为变化时同步更新文档、示例或配置说明行为变化时新增或更新测试未提交密钥、.env文件、依赖目录或生成产物Markdown 中的相对链接可解析。五、安全漏洞绝不公开提交安全漏洞不要开公开 Issue。请遵循 SECURITY.md 中描述的私有流程。这与「Bug 报告」走公开模板的路径严格区分是 EverOS 安全响应边界的一部分。六、行为准则与沟通渠道项目受 CODE_OF_CONDUCT.md 约束Contributor Covenant参与者默认需要遵守不当行为可报告至 evermindshanda.com。常规问题交流渠道GitHub Discussions —— 通用 QADiscord —— 社区聊天邮件evermindshanda.com七、维护者流程核心团队以下工作流面向有写权限的核心团队成员。提 Issue 不需要任何这部分内容它记录的是团队内部开发 EverOS 的方式。7.1 前置条件Python 3.12uv包管理器Git无需 Docker / 数据库服务 —— EverOS 很轻量Markdown SQLite LanceDB 内嵌。这一点在 pyproject.toml 的依赖声明中可以得到印证存储栈为lancedb0.34.0,0.35.0、aiosqlite、sqlmodel与alembic的组合无需外部服务。7.2 开发环境搭建git clone https://github.com/EverMind-AI/EverOS.git cd EverOS make install # deps pre-commit hooks一站式开发环境 everos init # 写 ~/.everos/everos.toml ome.toml make ci # 验证lint unit integration package其中make install实际执行两步见 Makefileuv sync --frozen安装依赖然后分别安装pre-commit与commit-msg两个 hook 阶段后者运行 gitlint。everos init是 CLI 的顶层叶子命令注册于 src/everos/entrypoints/cli/main.py与server、cascade、config等命令组并列。7.3 代码风格规范约定由 Claude Code 从.claude/rules/自动加载。要点Python 3.12Ruff 格式化88 字符行宽对应 pyproject.toml 中的line-length 88、target-version py312仅使用绝对导入absolute imports代码 / 注释 / docstring 仅使用英文无中日韩字符见 .claude/rules/language-policy.md对应scripts/check_cjk.py的咨询性扫描签名必须带类型注解数据模型使用 Pydantic v2每个包都有__init__.py子包通过from .x import Y as Y__all__再导出公共 APIDDD 分层entrypoints → service → memory → infra单向依赖由import-linter强制见 pyproject.toml 的Layered architecture契约。make format # ruff fix format make lint # ruff check import-linter 仓库硬性卫生门禁make lint是理解 EverOS 工程纪律的最佳入口Makefile除ruff check与ruff format --check外还会依次运行uv run lint-imports—— import-linter 分层与子包私有性契约python scripts/check_repo_assets.py—— 阻止提交图片 / 视频 / 资源目录python scripts/check_file_sizes.py—— 阻止超过大小上限的文件硬门禁与.pre-commit-config.yaml中check-added-large-files --maxkb640镜像二者由单元测试钉住一致python scripts/check_deprecated_names.py—— 阻止废弃产品名公开文本应使用 EverOS 或 EverMind Cloudpython scripts/check_github_contributor_docs.py—— 阻止贡献文档中出现遗留/内部分支模型残留python scripts/check_datetime_discipline.py—— 扫描绕过component/utils/datetime的代码裸datetime.now()、time.time()、裸datetime(...)构造等属于硬门禁python scripts/dump_openapi.py --check—— 重新渲染 OpenAPI schema 并与提交的 docs/openapi.json 比对任何漂移都会以 unified diff 形式使构建失败。7.4 分支策略分支职责main默认且受保护的分支feat/scope-desc功能开发fix/scope-descBug 修复docs/scope-desc纯文档变更ci/scope-descCI、构建与开发者体验变更不要直接推送到main不要对共享分支 force-push必须通过 PR 合并且所有必需检查通过。7.5 提交信息Conventional Commits提交信息遵循Conventional Commits格式type[(scope)]: description例如feat: add agentic rerank、fix(search): guard empty profile。该规范在本地由commit-msghook 中的gitlint强制见 .pre-commit-config.yaml在 GitHub Actions 中由Commit lintworkflow 强制。提交信息允许的类型与 EverOS 的策略实现完全一致定义在 scripts/check_commit_messages.py类型用途类型用途feat新功能chore配置 / 构建 / 工具fixBug 修复build构建系统或依赖refactor保持行为不变的重构ciCI 配置test新增 / 更新测试revert回滚之前的提交docs文档style仅格式化perf性能校验实现还约束标题正则^(feat|fix|...)(\([A-Za-z0-9._/-]\))?(!)?: .最大标题长度 72 字符PR 标题校验逻辑由 scripts/check_pr_title.py 复用同一策略TITLE_RE、MAX_TITLE_LENGTH、ALLOWED_TYPES可通过命令行参数或PR_TITLE环境变量传入标题。团队可用/commit命令辅助生成符合规范的提交信息完整类型清单见 .claude/skills/commit/SKILL.md。7.6 测试要求make test # tests/unit make integration # tests/integration make cov # coverage 报告新函数需添加单元测试路径规范为tests/unit/test_module/test_action_expected.py行为变更需添加 integration 或 e2e 覆盖tests/integration/、tests/e2e/。make cov运行pytest tests/unit tests/integration --covsrc/everos --cov-branch --cov-fail-under80Makefile即单元 集成测试合并计算、分支覆盖率低于 80% 即失败。测试配置还定义了slow与live_llm两个 markerCI 默认排除需要真实 LLM / embedder / reranker 凭据的live_llm用例避免烧 token见 pyproject.toml。完整约定见 .claude/rules/testing.md。7.7 Slash 命令Claude Code/new-branch—— 以规范命名创建分支/commit—— 生成 Conventional Commits 提交信息/pr—— 以正确的目标分支打开 GitHub PR八、CI 如何串联这一切.github/workflows/ci.yml 是 Makefile 的薄包装「CI 是 Makefile 的薄包装 —— 命令的唯一事实来源」。CI 包含五个 Joblintfetch-depth: 0全量历史check_file_sizes.py需要解析与基准分支的 merge base运行make lintunitPython 3.12 与 3.13 两个矩阵make testintegrationPython 3.12 与 3.13make integrationpackagemake package—— 用uv build构建 sdist/wheel在隔离 venv 中免依赖安装 wheel 并 smoke-testimport everos。每个 Job 都通过astral-sh/setup-uvv8.2.0启用依赖缓存并使用make install-depsuv sync --frozenlock 文件为唯一事实来源安装依赖。这意味着本地跑过make ci通过的提交在 CI 上会以完全一致的命令被再次验证。九、一张图看懂贡献全流程说明安全漏洞不进入上图公开流程改走 SECURITY.md 的私有报告通道。十、给贡献者的检查清单变更是否聚焦于单一目的且已从main派生分支是否已运行make ci并在本地通过全部检查提交信息是否为type(scope): description格式且不超过 72 字符是否遵守代码风格Python 3.12、绝对导入、全英文、类型注解、__init__.py再导出是否遵守 DDD 分层且未被 import-linter 拦截行为变更是否补充了tests/unit/或tests/integration/、tests/e2e/测试是否提交了图片 / 视频 / 资源目录禁止或超大文件check-added-large-files640KB 上限是否触及 HTTP 路由 / DTO 后同步运行make openapi并提交 docs/openapi.json是否涉及时间处理代码却绕过了component/utils/datetime硬门禁是否在文档中使用了可解析的相对链接掌握这套流程后无论是提交一个聚焦的 Bug 修复、新增一条记忆类型的测试还是推动一次涉及 API 表面的功能演进你都能以最少的来回沟通让变更平滑通过 EverOS 的策展式审查并进入受保护的main分支。赞分享人工智能AI AgentAgent 记忆RAG【免费下载链接】EverOSOne portable memory layer for every AI agent: local-first, Markdown-native, user-owned, and self-evolving across apps, tools, and workflows.项目地址https://gitcode.com/gh_mirrors/ev/EverOS点击查看免费下载相关推荐猫抓网页视频资源嗅探3步下载第一个视频完整免费指南猫抓网页视频资源嗅探3步下载第一个视频完整免费指南 网页上的视频能正常播放右键却只有保存图片有的站点把视频拆成几百个片段逐个下载无从下手。猫抓ca音视频3DGS Render插件开发者指南扩展与定制KIRI Engine功能3DGS Render插件开发者指南扩展与定制KIRI Engine功能 3DGS Render插件是KIRI Engine团队为Blender开发的一款强大图形学3D渲染计算机视觉如何用Netmiko简化多厂商网络设备的自动化管理如何用Netmiko简化多厂商网络设备的自动化管理 引人入胜的开场 你是否曾为管理不同厂商的网络设备而烦恼每个厂商都有自己的CLI语法、连接方式和配置规范网网络通信后端创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

半桥式DCDC变换器设计:原理、参数计算与调试避坑全解析

半桥式DCDC变换器设计:原理、参数计算与调试避坑全解析

简介:半桥式DC-DC变换器设计终审稿是一份完整技术文档,适合电力电子方向的学生、电源工程师以及互联网行业涉及电源转换系统的研发人员参考。文档从绪论出发,系统讲解了半桥式Buck变换器的线路组成与工作原理,并围绕400V转5V的直流…

2026/9/24 19:40:53 阅读更多 →
FURUNO雷达操作全指南:从开机调谐到ARPA避碰与AIS融合

FURUNO雷达操作全指南:从开机调谐到ARPA避碰与AIS融合

简介:这份FURUNO雷达使用说明书面向船舶驾驶员、航海电子设备操作人员及航运院校师生,针对FAR-2817/2827/2837S系列雷达的日常操作与功能理解需求,帮助读者快速掌握ARPA与AIS一体化航海雷达的使用方法。资源包内含1个PDF文件,大小…

2026/9/24 19:42:13 阅读更多 →
爱奇艺家庭成员怎么用踩坑实录:新手避坑指南

爱奇艺家庭成员怎么用踩坑实录:新手避坑指南

爱奇艺家庭成员怎么用踩坑实录:新手避坑指南 看了一堆教程还是不会写项目?别慌,这太正常了。很多新手卡在“看懂了代码”和“能写出代码”的鸿沟里,觉得源码高深莫测。其实,拆解核心实现并没有那么玄乎,关键在于找对切入点,学会 新手避坑…

2026/9/24 19:08:24 阅读更多 →

最新新闻

ARIMA销量预测实战:从数据预处理到置信区间备货

ARIMA销量预测实战:从数据预处理到置信区间备货

简介:这是一份面向Python数据分析与机器学习学习者的“ARIMA时间序列销量预测”完整项目资料,适合毕业设计、期末大作业或课程设计场景。资源以statsmodels为核心,覆盖序列平稳化、AR/MA过程、自动定阶与参数估计、模型检验等完整流程&#x…

2026/9/24 20:28:46 阅读更多 →
DeepSeek Harness实战:用标准模式Coding Agent从零开发贪吃蛇游戏

DeepSeek Harness实战:用标准模式Coding Agent从零开发贪吃蛇游戏

开篇先交代一下背景:上一篇我们聊了 DeepSeek Harness 的环境初始化和基础模型接入,不少人后台私信问能不能直接拿它来写点真正能跑的东西。所以这一篇就干脆来个完整的实战,用 DeepSeek Harness 的标准模式当 Coding Agent,从零做…

2026/9/24 20:28:46 阅读更多 →
构建→测试→修复:AI Agent自主开发闭环的设计与实践

构建→测试→修复:AI Agent自主开发闭环的设计与实践

最近和一些做智能体应用的朋友聊天,发现大家几乎都卡在同一个地方:让 AI Agent 写代码不难,难的是让它“负责任”地把代码写完。生成一段看起来很合理的函数,跑起来全是错;修了一个 bug,又引入三个新问题&a…

2026/9/24 20:28:46 阅读更多 →
数据建模与同步一体化平台:元数据统一与血缘构建实战

数据建模与同步一体化平台:元数据统一与血缘构建实战

1. 数据建模与同步一体化平台的核心命题拆解 1.1 为什么“建模一套、同步一套”成了数据团队的标配痛点 干数据这行的,几乎都经历过这种场景:数据仓库团队用一套建模工具画ER图、定义维度、维护指标口径,另一边数据集成团队用另一套工具写ET…

2026/9/24 20:28:46 阅读更多 →
CTF-Wiki DEX 文件格式深度解析:从 Dalvik 可执行文件到逆向实战

CTF-Wiki DEX 文件格式深度解析:从 Dalvik 可执行文件到逆向实战

CTF-Wiki DEX 文件格式深度解析:从 Dalvik 可执行文件到逆向实战 【免费下载链接】ctf-wiki Come and join us, we need you! 项目地址: https://gitcode.com/gh_mirrors/ct/ctf-wiki 导读 DEX(Dalvik eXecutable File)是 Android 平…

2026/9/24 20:28:46 阅读更多 →
Python基础零基础入门:从环境搭建到实战的完整学习路线

Python基础零基础入门:从环境搭建到实战的完整学习路线

如果你现在拿着“Python基础”这四个字在搜索引擎里翻来翻去,大概率已经被“七天速成”“零基础逆袭”这类标题搞得越来越焦虑了。作为一个用Python写了好几年代码、也带过不少新人入门的从业者,我先给你一颗定心丸:Python基础真的不难&#…

2026/9/24 20:27:45 阅读更多 →

日新闻

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为…

2026/9/24 0:00:19 阅读更多 →
单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

单细胞注释实战:基于Scanpy的标记基因与参考映射流程解析

简介:一份基于单细胞RNA测序数据的细胞类型注释算法研究Python毕业设计源码,针对计算机相关专业正在做毕设或需要项目实战的学习者,可用于课程设计与期末大作业。项目代码完整、经导师指导评审通过,可直接运行,覆盖数据…

2026/9/24 0:00:19 阅读更多 →
C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

C#源生成器实战:用增量生成器替代反射,告别AOT崩溃

第一次在项目里被反射卡住,是在一个老旧的WinForms模块里:几十个类依赖PropertyChanged通知,运行时反射读属性、发通知,每次启动慢半拍不说,一上.NET Native/AOT裁剪模式几乎全面崩盘。后来我把这段逻辑全部改成C#源生…

2026/9/24 0:00:19 阅读更多 →

周新闻

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

Flutter for OpenHarmony游戏卡片渐变背景实战:从原理到性能优化

直接铺开项目本身吧。这几个月我一直在折腾一件事:用Flutter给OpenHarmony做一款游戏集合类的App,说白了就是把若干小游戏塞进一个壳里,用统一入口分发。这个方向本身不算新鲜,真正让我花了不少心思的,是首页那堆游戏卡…

2026/9/24 14:34:13 阅读更多 →
Word表格编号全攻略:从列表编号到题注交叉引用

Word表格编号全攻略:从列表编号到题注交叉引用

写Word文档,最让人头疼的往往是那些“看起来不起眼”的小问题。比如表格编号这事:今天在表后面多加了两个空白行,明天给客户交稿前发现整个章节的编号全部错位,光是挨个改序号就能耗掉大半个下午。我前阵子帮人整理一份上百页的技…

2026/9/24 9:10:42 阅读更多 →
从第一个站到第二个站:独立开发者的静态网站选型与落地实践

从第一个站到第二个站:独立开发者的静态网站选型与落地实践

1. 项目概述1.1 核心需求解析做独立开发者这几年,说实话,第一个网站上线的那天晚上我兴奋得没睡着。但等它跑了半年,流量惨淡、功能臃肿、代码自己都懒得看第二遍之后,我才慢慢琢磨明白一个道理:第一个网站是练手&…

2026/9/24 14:33:56 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/24 12:50:34 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/24 14:33:48 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/24 12:49:17 阅读更多 →