What this PR fixes

发布时间:2026/9/18 15:54:58
What this PR fixes What this PR fixes【免费下载链接】open-design Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. ️ Local-first desktop app. ️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images video — real files, HTML/PDF/PPTX/MP4 export. Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode 20 CLIs via BYOK.项目地址: https://gitcode.com/gh_mirrors/opend/open-design{{ONE_LINE_SUMMARY}}模板的第一部分要求用**一句话**概括这个 PR 修复了什么。从 [SKILL.md](https://link.gitcode.com/i/3769f229e5e6bae580cb8735a2901bde) 的 Step 3c.7 可以看到渲染该模板时需要注入 {{ONE_LINE_SUMMARY}}、{{DETAILS}}、{{FILES_LIST}}、{{DISCORD_INVITE}} 四个变量。其中 ONE_LINE_SUMMARY 的写法建议遵循 [newcomer-tone.md](https://link.gitcode.com/i/aa94a167bcf6158dcea6fb30069e8b4c) 中给出的标题约定例如 Fix typo in README.md、Clarify daemon setup in QUICKSTART——动词开头、指出对象、不夸张。 ### 2. 细节说明{{DETAILS}}与内嵌注释 markdown ## Details {{DETAILS}} !-- Use this for the body when theres nuance: - which file/section - the exact sentence/typo/dead link - what you replaced it with and why --模板用 HTML 注释的形式给出了何时需要写 Details的指导当改动存在细微差别nuance时才需要补充细节具体包括涉及哪个文件/哪个小节出问题的确切句子、错别字或死链你替换成了什么、为什么这样替换。注意这是一个可选的小节——模板作者刻意避免让贡献者为了凑篇幅而堆砌解释。如果只是一处显而易见的错别字DETAILS可以留空。3. 改动文件清单{{FILES_LIST}}## Files touched {{FILES_LIST}}FILES_LIST由 Agent 在渲染时自动填充为本次改动涉及的文件列表。文档类 PR 通常只有一个文件但在写博客/用例文章场景下可能包含docs/slug.md加若干截图资源此时清单能帮助维护者快速确认改动范围。4. 自检清单Checklist## Checklist - [x] Markdown still parses cleanly (no broken fences or structure) - [x] All links and image paths still resolve - [ ] Maintainer reviewChecklist 的三个条目并非仪式性摆设而是与仓库中实际的校验脚本一一对应Checklist 条目对应脚本校验脚本中的实现Markdown 解析干净代码围栏数量必须为偶数 | [validate-markdown.sh](https://link.gitcode.com/i/3abf488ebde97b8388160d7c91a565a2) 中 grep -cE ^ 检查链接与图片路径可解析相对引用必须能在磁盘上解析同脚本的 relative-refs 分层检查维护者评审人工环节不由脚本保证—其中All links and image paths still resolve的检查逻辑值得展开validate-markdown.sh对相对引用做了分层校验——图片引用alt和以./、../开头的显式相对路径无条件校验而形如skills/blog-post/的网站路由 slug 式引用只有在传入--reference时才校验因为 OpenDesign 的文档经常引用网站路由而非磁盘文件这些引用在源码里本来就不存在。这意味着模板中打勾的 links resolve 是脚本真正执行过的检查而不是自欺欺人的口头承诺。5. 首贡献者署名与社区邀请--- This is my first OD contribution. Hi! Small fix, but I figured every typo / dead link costs the next reader 30 seconds, and this saves that. If you want to chat or theres something youd love help getting fixed, come find us in the OD Discord: {{DISCORD_INVITE}} _Generated with the od-contribute skill._结尾段落承载了两个硬性要求来自 newcomer-tone.md 的 Hard rules一是必须以一句温暖的开场白结尾向维护者传递这是首次贡献的信号二是必须附带 Discord 邀请该值从OD_DISCORD_INVITE环境变量读取默认值为 config.sh 中定义的https://discord.gg/qhbcCH8Am4禁止硬编码。同时every typo / dead link costs the next reader 30 seconds 这句文案巧妙地把小修复的价值讲清楚遵循了不要为小修复过度包装的规则。模板在实际工作流中的渲染位置模板不是给人手动填写的表单而是由 Agent 在 SKILL.md 的Step 3cDocs / blog / typo 分支结束时自动渲染的。Step 3c 的完整流程如下Step 3c.1调用 setup-workspace.sh 创建隔离工作区slug 为docs例如bash $SKILL_DIR/scripts/setup-workspace.sh docs slug。Step 3c.2通过AskUserQuestion询问用户走哪条子路径——自动发现小修复 / 已有明确修复目标 / 想写博客或用例文章。Step 3c.3自动发现运行 discover-doc-gaps.sh 扫描文档缺口输出 NDJSON按kind分为三类todo文档中的TODO/FIXME/XXX标记typo常见拼写错误内置 14 组词对如teh→the、recieve→receive、occured→occurred整词匹配、区分大小写以避免误报deadlink外部链接健康检查HEAD 请求、8 秒超时、只报告 4xx/5xx不惩罚网络抖动。注意 od-repo-map.md 明确指出discover-i18n-gaps.sh不信任静态表格、运行时扫描工作区——discover-doc-gaps.sh同理每次运行都会基于当前仓库实际内容生成候选清单。Step 3c.4指定修复Agent 读取目标文件、应用用户的修改并 diff 确认。Step 3c.5博客分支先检查docs/下是否存在blog/子目录有则放入无则默认写入docs/slug.md。Step 3c.6校验对每个改动文件运行validate-markdown.sh。对已存在文件的修改通过git show HEAD:path取出原版作为--reference这样只有用户新引入的相对引用错误才会导致失败而预存在的网站路由 slug 不会阻塞提交对全新文件如新博客则省略--reference跳过相对引用检查。Step 3c.7渲染模板注入{{ONE_LINE_SUMMARY}}、{{DETAILS}}、{{FILES_LIST}}、{{DISCORD_INVITE}}四个占位符写入$WORKDIR/.od-contrib/PR-BODY.md随后进入共享的 Step 7预览确认和 Step 8推送与开 PR。从渲染到合并提交、推送与标签渲染完成的 PR 描述文件最终由 create-pr.sh 消费。该脚本的行为与模板内容存在多处呼应提交信息即 PR 标题git commit -m $TITLE直接使用 PR 标题作为提交信息因此 newcomer-tone.md 中的标题约定如Fix typo in README.md同时约束了 commit message 与 PR title。自动打标签docs类型会自动附加documentation标签i18n类型附加i18ndocumentationskill/design-system 附加good first issueenhancement与模板中这是首次贡献的定位形成配合——good first issue标签确保新手贡献能被维护者优先关注。安全护栏脚本拒绝在main/master/develop基线上推送od::die refusing to push base branch绝不--force所有工作区活动被od::assert_in_workroot限制在$OD_WORK_ROOT默认$HOME/od-contrib-work之内防止脚本失控操作仓库外部路径。工作区隔离setup-workspace.sh会把.od-contrib/加入.git/info/exclude仓库本地、不提交create-pr.sh再用:!.od-contribpathspec 双保险确保 PR-BODY.md 这类内部草稿永远不会混入贡献者提交。od-contribute技能还内置了沙箱化 Agent 的 GitHub 认证降级方案config.sh 会在GH_TOKEN未设置时尝试从技能目录下的.gh-token文件读取 token——这是为 Codex.app、Cursor 等无法访问系统钥匙串的 macOS App Sandbox 运行时准备的兜底路径该文件必须由用户在非沙箱 shell 中手动写入技能本身不会自动创建。模板背后的设计哲学让小贡献真正被接纳通读整个od-contribute技能PR-BODY-docs.md的每一处设计都能在 newcomer-tone.md 中找到依据不夸大ONE_LINE_SUMMARY是一句话Checklist 只勾选校验脚本真实执行过的项目禁止把 typo 修复包装成文档质量提升。不说教没有TL;DR、没有请抽时间 review、没有道歉PR 本身就是请求。信息前置what changed在最前why最多 2~3 句。唯一的表情符号纪律只允许开头的 和标题/首行中可选的一个 ///。这套模板的实际效果是把PR 描述写作这件对新手最有心理门槛的事情压缩成四个占位符 一个固定格式的 checklist配合校验脚本和自动标签让首次贡献者的 PR 达到与资深维护者一致的信息质量下限。如果你在自己的开源项目中引入类似的贡献技能PR-BODY-docs.md是一个值得直接借鉴的范本——它的核心理念是模板越克制贡献门槛越低而 PR 质量反而越稳定。附一次文档 PR 的端到端速查# 1. 环境准备技能 Step 1必须最先执行 bash $SKILL_DIR/scripts/check-prereqs.sh # 退出码 0 则捕获 GH_USER退出码 2 则原样展示安装/认证提示并停止 # 2. 创建工作区Step 3c.1docs 类型 bash $SKILL_DIR/scripts/setup-workspace.sh docs fix-typo-quickstart # 输出WORKDIR绝对路径 / BRANCHod-contrib/docs/fix-typo-quickstart-时间戳 # 3. 发现文档缺口Step 3c.3可选 bash $SKILL_DIR/scripts/discover-doc-gaps.sh $WORKDIR /tmp/od-doc-gaps.json # 输出 NDJSON{kind:typo,file:README.md,line:17,word:recieve,suggested:receive} # 4. 校验改动Step 3c.6修改既有文件时传入 --reference git -C $WORKDIR show HEAD:path /tmp/od-contrib-orig-basename bash $SKILL_DIR/scripts/validate-markdown.sh $WORKDIR/changed-path --reference /tmp/od-contrib-orig-basename # 输出 RESULTpass / RESULTfailFAIL 行需原样呈现给用户修复后重试 # 5. 渲染 PR-BODY-docs.mdStep 3c.7→ 写入 $WORKDIR/.od-contrib/PR-BODY.md # 6. 推送并开 PRStep 8 bash $SKILL_DIR/scripts/create-pr.sh --workdir $WORKDIR --type docs --title Fix typo in README.md --body-file $WORKDIR/.od-contrib/PR-BODY.md # 末尾单独一行输出 PR URL【免费下载链接】open-design Best DeepSeek Harness Design Plugin. The open-source Claude Design alternative. ️ Local-first desktop app. ️ Your coding agent becomes the design engine: prototypes, landing pages, dashboards, slides, images video — real files, HTML/PDF/PPTX/MP4 export. Claude Code / Codex / Cursor / DeepSeek Harness / OpenCode 20 CLIs via BYOK.项目地址: https://gitcode.com/gh_mirrors/opend/open-design创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考