ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

从 Issue 到合入:Warp 仓库的 Agent 驱动型开源贡献全流程指南

从 Issue 到合入:Warp 仓库的 Agent 驱动型开源贡献全流程指南 桌面应用开发者工具人工智能AI 应用AI Agent代码智能体【免费下载链接】warpWarp is an agentic development environment, born out of the terminal.项目地址https://gitcode.com/GitHub_Trending/wa/warp点击查看免费下载导读Warp 是一个以终端为起点的 agentic 开发环境其开源仓库README.md采用了一套由 AI 智能体Oz深度参与的贡献模型自动分诊triage、规格驱动开发spec-driven development、自动代码评审与 SME 复审。这篇指南以仓库根目录的CONTRIBUTING.md为骨架完整梳理「提交 Issue → 获得就绪标签 → 编写 Spec PR / 代码 PR → 通过两阶段评审 → 合入 master」的每一步规则并结合仓库内真实的 Spec 目录如specs/GH408/、skills-lock.json技能清单、.agents/skills/智能体上下文与script/下的工程脚本说明这套流程背后的实现细节与验证手段。读完你不仅知道「怎么贡献」更能理解「为什么贡献要先写 Spec、为什么评审由 Agent 自动触发」。Warp 贡献模型与常见开源项目的差异Warp 的贡献流程由 Oz 自动接管了分诊、Spec 编写辅助、实现与评审的一部分工作因此与常规开源仓库相比有以下几点显著不同一切从 Issue 开始讨论、范围界定与设计都发生在 Issue 上PR 打开之前必须先有 Issue 作为锚点仓库甚至要求 PR 必须关联 Issue详见下文「无关联 Issue 的 PR」。功能请求与缺陷修复走不同通道功能请求被ready-to-spec、ready-to-implement等就绪标签门禁设计未定稿前不允许直接写代码缺陷修复在报告可复现或可操作后可以直接提交代码 PR除非范围或设计尚不清晰。评审高度自动化PR 一打开Oz 就被自动指派并产出初审Oz 批准后会自动向 Warp 团队相关领域的主题专家SME请求复审无需贡献者手动指定人类 reviewer。规格Spec先行较大的功能必须在写代码前先提交一个包含product spec与tech spec的 Spec PR两个文档以specs/GHissue号/下的product.md与tech.md形式入库。TL;DR五条快速记住的规则缺陷修复只要报告能从已有细节或维护者分诊中获得可操作性信息就欢迎提交。功能请求必须先被标记为ready-to-spec或ready-to-implementPR 才会被接受。标记为warp:reserved-internal的 Issue 由 Warp 团队内部处理不开放贡献者 PR。Spec 是较大型问题开展技术与设计讨论的场所代码写在前Spec 必须先落库。Oz 自动分诊新 Issue 并评审公开 PR实现类 PR 必须附带手工测试证据。就绪标签什么时候可以动手Warp 团队在 Issue 就绪后施加以下标签之一贡献者据此决定下一步动作标签含义贡献者动作ready-to-spec问题已被理解但设计尚未定稿在specs/下提交包含product.md与tech.md的 Spec PR。该标签仅用于功能请求ready-to-implement可以直接提交代码 PR对缺陷而言意味着报告足够可复现/可操作且修复无需 Spec、mocks 或更深调研needs-mocks设计稿mock先于实现等待 Warp 团队落地 mocks之后才能开始实现warp:reserved-internalWarp 团队保留该工作内部实施不要开 Spec 或代码 PROz 会以解释性评论拒绝关联该 Issue 的贡献者 PR任何人都可以认领带就绪标签的 Issue——就绪标签不是指派assignment最终通过正常评审流程择优合入。如果某个 Issue 长期未分诊或需要重新评估就绪状态可以在评论中提及oss-maintainers让团队介入。贡献流程图CONTRIBUTING.md用 Mermaid 流程图完整描述了从 Issue 到合入的闭环贡献者负责的步骤为黄色Warp 团队或 Oz 负责的步骤为蓝色整个流程只有一条主路径先有 Issue → 团队分诊打标签 → 按标签走 Spec PR 或代码 PR → Oz 初审 → SME 复审 → CI → 合入。自动分诊还可能在 Issue 上附加信息性标签area:*、repro:*等这些标签不影响就绪状态。提交一个好的 Issue提交前先在仓库的 Issue 列表搜索避免重复优先使用 Issue 模板。如果你已经在运行 Warp最快的方式是输入/feedback命令——它会自动附带相关上下文日志、环境信息并打开一个公开 GitHub Issue。缺陷报告清单一个好的缺陷报告应包含清晰的标题 一段式问题总结复现步骤尽量给出最小示例期望行为 vs. 实际行为Warp 版本与操作系统可在Settings → About查看相关日志、截图或屏幕录制。缺陷经 Oz 的分诊 agent 或维护者确认为可操作后可能被标记为ready-to-implement随后即可认领并提交代码 PR。功能请求清单一个好的功能请求应先描述用户侧问题再谈实现包含用户需求或痛点以及谁在经历它当前行为及其为何不足期望行为或工作流的草图简短的示例或 mock 有帮助但不是必须相关约束兼容性、相关功能、已有先例等。功能请求是走 Spec 流程的通道维护者在问题被理解、设计开放时施加ready-to-spec下一步就是 Spec PR 而非代码 PR。打开 Spec PRproduct.mdtech.md标记为ready-to-spec的 Issue 在写代码前必须先有 Spec。一个 Spec 由提交在specs/GHissue-number/下的两份短文档构成仓库specs/目录下的真实例子可见specs/GH408/、specs/GH1063/、specs/GH1066/。product.md产品规格从消费者视角用户、API 调用者、CLI 用户等定义期望行为不涉及实现细节。核心是一份编号的**可测试行为不变量testable behavior invariants**列表覆盖主路径happy path用户可见状态输入与响应边界情况空 / 错误 / 加载、取消、离线、权限拒绝、竞态、无障碍accessibility。可选章节问题陈述、目标 / 非目标goals / non-goals、Figma 链接、开放问题open questions。以仓库中的specs/GH408/product.md为例它针对「/open-file斜杠命令支持~展开」定义了现状问题/open-file ~/foo.txt会被错误拼成/当前目录/~/foo.txt永远报「File not found」目标~展开到用户主目录行为与 Cmd-O 打开文件面板一致非目标不支持$HOME环境变量展开、不支持~otheruser语法、不改变自动补全路径逻辑边界情况~单独出现应报「only works for files, not directories」错误~/foo.txt:10:5行/列后缀需保留带转义符的\~应先反转义再展开。tech.md技术规格这是落地到当前代码库的实现计划必选章节包括Context背景当前系统状态与相关文件带行号引用Proposed changes拟议改动涉及的模块、新增类型 / API / 状态、数据流、权衡取舍Testing and validation测试与验证product spec 中的每条不变量如何被验证。可选端到端流程、Mermaid 图、风险、并行化、后续事项。同样以specs/GH408/tech.md为例它给出的实现非常收敛——只在app/src/terminal/input/slash_commands/mod.rs的路径解析链中加入一行shellexpand::tilde()并逐个解释了PathBuf::join对绝对路径会整体替换 base 的行为从而同时覆盖~路径、相对路径、绝对路径三种情况风险部分还分析了$HOME未设置时shellexpand::tilde会原样返回输入的降级行为。常用技能与版本锁定Spec 写作技能来自warpdotdev/common-skills仓库而不是直接写在本仓库内。本 checkout 通过根目录的skills-lock.json固定期望版本其中记录了write-product-spec、write-tech-spec、implement-specs、review-pr、spec-driven-implementation等 30 技能及各自computedHashbootstrap 脚本可以为你恢复它们./script/bootstrap # 默认安装或更新 common skills需要时提示选择安装位置 ./script/bootstrap --install-common-skills-in-repo # 安装到本 checkout 的 .agents/skills/ ./script/bootstrap --install-common-skills-globally # 安装到 ~/.agents/skills/ WARP_COMMON_SKILLS_INSTALL_TARGETproject ./script/bootstrap # 非交互式选择 project 目标 WARP_COMMON_SKILLS_INSTALL_TARGETglobal ./script/bootstrap # 非交互式选择 global 目标 ./script/bootstrap --skip-common-skills # 如果你自行管理 common skills则跳过安装完成后/write-product-spec与/write-tech-spec技能可用于为你搭建 Spec 骨架。打开 Spec PR 的步骤新增specs/GHissue-number/product.md和specs/GHissue-number/tech.md示例见specs/GH408/更多可浏览整个specs/目录把该 PR 作为产品与技术讨论的主阵地Spec 获批后实现一般继续在同一 PR 上推进个别情况例如大 Spec 单独合入以便拆分实现可迁移到链接的后续 PR。打开代码 PR就绪后的实操清单对标记为ready-to-implement的 Issue从master切分支实现改动并添加测试见下文「测试」一节推送前先运行./script/presubmit并修复所有失败使用 PR 模板打开 PR.github/pull_request_template.md并添加 changelog 条目CHANGELOG-NEW-FEATURE、CHANGELOG-IMPROVEMENT或CHANGELOG-BUG-FIX仅文档或重构类改动可省略PR 保持聚焦单个逻辑改动并在进入评审前合并master。不需要手动请求 reviewerOz 自动指派给指向就绪 Issue 的 PR 并产出初审Oz 批准后自动向合适的 Warp 团队 SME 请求复审。推送处理 Oz 反馈的改动后在 PR 上评论/warp-agent-review请求重新评审——每个 PR 最多三次若流程卡住或需要更多评审在 PR 上提及oss-maintainers升级给团队。维护者请求改动的 PR需要再次请求/warp-agent-review并通过后Oz 才会自动发起 re-review。必须包含手工测试证据小型、孤立、可视化的改动应附before/after 截图较大、广泛或交互式改动还应附带解说的屏幕录制。无关联 Issue 的 PR仓库要求 PR 关联 Issue因为 Issue 是范围界定、就绪标签与 Spec 阶段的落点。若你提前打开了 PR先搜索关联 Issue——由于 Issue 量大功能或缺陷通常已有对应 Issue。找到后在 PR 描述中链接它理想情况下该 Issue 已由维护者施加就绪标签若未找到则新建 Issue 描述你的 PR 解决了什么等待维护者审阅 Issue 与关联 PR 后施加就绪标签以解锁最终检查确保 PR 通过代码评审并包含相关测试这能提高被优先审阅的信号。使用 Coding Agent允许但要求「以人对话」你可以用任何编码 AgentWarp 内置 Agent、Claude Code、Codex、Gemini CLI 等实现贡献也可以完全不用。本仓库为 Agent 提供了可读上下文.agents/skills/下的技能支持这些格式的 harness 都能读取specs/下的规格根目录的AGENTS.md。如果你希望由Oz 云端 Agent代为实现一个就绪 Issue在 Issue 上提及oss-maintainers请求即可。获批的请求使用免费的 Oz 积分运行——你无需自建 Oz 账户或为算力付费。同时要注意虽然实现可以交给编码 Agent但仓库期望贡献者以个人身份与团队协作——不要用 OpenClaw 之类的 Agent 代替你与团队对话。维护者始终以人类身份与你交流请同样以人类身份回应。两阶段评审机制所有 PR 都经过两阶段评审Oz 评审PR 打开时 Oz 自动被指派并产出第一份评审检查正确性、风格、测试覆盖以及与关联 Issue 和 Spec 的一致性Warp 团队评审仅在 Oz批准之后PR 才会被路由给 Warp 团队主题专家做最终人工评审。尚未被 Oz 批准的 PR 不会被分配给团队成员。任何阶段都无需手动请求 reviewer。处理完 Oz 反馈后评论/warp-agent-review每 PR 最多三次请求 re-review卡住或需更多评审时提及oss-maintainers。陈旧 PR 的自动关闭机制若评审Oz 或维护者给 PR 留下changes requested后长期无动静自动化会在 7 天与 10 天时发布提醒第 10 天的提醒即最终警告约14 天无活动后自动关闭且一定先发过最终警告。该机制仅针对处于活跃 requested-changes 评审状态的外部贡献者 PR。只有你自己的活动能重置计时器推送分支包括 force-push或评论 PR维护者评论不会重置因为球在你这边想保持 PR 开放就推送更新或回复已关闭的 PR 可在你准备好后重新打开reopen 并推送或请维护者 reopen维护者可施加no-autoclose标签豁免例如 PR 被团队阻塞时。开发环境搭建与快速上手完整工程指南见README.md与AGENTS.md。快速开始./script/bootstrap # 平台相关的环境搭建 cargo run # 构建并运行 Warp ./script/presubmit # fmt、clippy 与测试本地直接运行应用可用./script/run详见AGENTS.md。测试要求大多数代码改动都需要测试手工测试凡是能手工测试的改动都必须手工测试几乎所有改动都能。小型、孤立、可视化的改动附before/after 截图较大、广泛或交互式改动还应附带解说的屏幕录制。自动化测试缺陷修复应包含能在修复前捕获该 bug 的回归测试算法或非平凡逻辑需要单元测试用户可见流程在可被端到端方式驱动时应尽可能在crates/integration/下覆盖。标准是高质量覆盖你交付的改动——在 Agent 驱动的开发模式下期望的是更多的集成测试而不仅仅是 P0 路径的覆盖率。值得上线的流程通常也值得写一个集成测试。运行单元测试cargo nextest run。以~展开功能为例仓库在app/src/terminal/input_tests.rs中实现了test_open_slash_command_expands_tilde它在$HOME下创建一个真实临时文件把会话工作目录模拟到系统临时目录故意与主目录不同然后设置输入/open-file ~/warp_tilde_test_file.txt并触发input_enter最后断言输入缓冲被清空表示文件成功找到并打开——这正是 tech spec 中「Unit test 应验证~展开优先于 cwd 拼接」的落地证据。对应的实现位于app/src/terminal/input/slash_commands/mod.rs的open_file_command_path其解析链路依次是CleanPathResult::with_line_and_column_number剥离:line:col后缀 →session.shell_family().unescape反转义 →shellexpand::tilde展开~→ 与current_dirjoin 并 normalize。Cmd-O 打开文件面板app/src/search/command_palette/files/data_source.rs同样调用shellexpand::tilde这正是两条路径行为一致性的实现基础。代码风格规范./script/format --check与cargo clippy --workspace --all-targets --all-features --tests -- -D warnings必须通过优先使用 import 而非路径限定符、内联格式化参数println!({x})、穷尽式match而非_通配符完整风格指南包括 WarpUI 模式与终端模型加锁规则见AGENTS.md。分支与提交约定分支名以你的句柄为前缀例如alice/fix-parser提交信息要说明what 与 why而不仅是 what。行为准则、安全与帮助项目采用 Contributor Covenant违规可发送至 warp-coc at warp.dev安全漏洞披露策略与私密报告渠道见SECURITY.md不要在公开 Issue 中提交安全漏洞与其他贡献者和 Warp 团队在#oss-contributors频道交流新用户需先加入 Warp Slack 社区可浏览 Warp 文档或直接打开 GitHub Issue 报告 bug 与功能请求。小结Warp 的贡献流程本质上是一条「规格驱动的 Agent 协作流水线」Issue 承担范围界定标签承担就绪门禁Spec 承担设计共识Oz 承担分诊与初审SME 承担最终人工把关skills-lock.json与script/脚本把规格写作、验证与 CI 固化到可重复执行的工程基础设施中。对贡献者而言最关键的三个动作是在 Issue 上对齐问题 → 等待正确的就绪标签 → 带着规格与手工测试证据提交 PR。理解这套模型比照搬通用开源贡献套路更能在 Warp 仓库中高效落地你的改动。赞分享桌面应用开发者工具人工智能AI 应用AI Agent代码智能体【免费下载链接】warpWarp is an agentic development environment, born out of the terminal.项目地址https://gitcode.com/GitHub_Trending/wa/warp点击查看免费下载相关推荐Crystal 语言仓库贡献指南从 Issue 提报到 PR 合并的全流程实战Crystal 语言仓库贡献指南从 Issue 提报到 PR 合并的全流程实战 Crystal 是一门以性能与类型安全著称的系统编程语言其标准库与编译器全部编程语言编译器标准库语言运行时agent-orchestrator 贡献指南从认领 Issue 到合入 PR 的完整协作流程agent orchestrator 贡献指南从认领 Issue 到合入 PR 的完整协作流程 本指南以仓库根目录 CONTRIBUTING.md https微信视频号下载助手常见问题解决证书安装与权限问题排查微信视频号下载助手常见问题解决证书安装与权限问题排查 微信视频号下载助手是一款便捷的微信视频号下载工具帮助用户轻松保存喜爱的视频内容。在使用过程中部分用户音视频桌面应用上一篇终极指南Plane开源许可证全面解析与合规实践方案下一篇如何在5分钟内快速上手Respect\Validation验证库创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表