From da46dafac5dd78e22357b5e029c0a801147a08fa Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 23 Oct 2026 06:59:19 +0000 Subject: [PATCH] =?UTF-8?q?docs(os-dev):=20name=20the=20harness=20attribut?= =?UTF-8?q?ion-line=20exemption=20in=20=E3=80=88=E5=B9=B2=E5=87=80?= =?UTF-8?q?=E6=94=B6=E5=B0=BE=E3=80=89;=20Check=20Changeset=20reads=20the?= =?UTF-8?q?=20PR=20body?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit One exemption line under the HTML-comment ban: the harness-written attribution comment on PR body line 1 stays as given and is reported; `Fixes #` follows it; every HTML comment the dev writes itself stays banned. Paid by dropping the cdn.playwright.dev 403 line (moot under the no-`playwright install` rule above it). The changeset-line rule now says `Check Changeset` reads the two declaration lines off the PR body (check-changeset-no-major.mjs declarationFromPullRequest); the changeset-body copy is AGENTS.md Post-Task Checklist ③'s publishing rule. Net zero lines; ceiling 404 untouched. Co-authored-by: Claude Claude-Session: https://claude.ai/code/session_01REMuzhz6MWRjg8uohedMnM --- .claude/agents/os-dev.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.claude/agents/os-dev.md b/.claude/agents/os-dev.md index ff89da5314c..0c31ba1f0d2 100644 --- a/.claude/agents/os-dev.md +++ b/.claude/agents/os-dev.md @@ -125,7 +125,6 @@ model: opus - objectui 把 typecheck 拼作 `type-check`(连字符);核对输出里确实回显了脚本名。 - 浏览器验证:Chromium 已预装,`PLAYWRIGHT_BROWSERS_PATH` 指向 `/opt/pw-browsers`。 - launch 传 `executablePath: '/opt/pw-browsers/chromium'`;⛔ 永不跑 `playwright install`。 -- `cdn.playwright.dev` 的 403 不是没有浏览器的证据:下载被拦不证明产物缺席,先找产物。 ## 本地验证范围 —— 本地只跑定向门禁,全农场归 CI @@ -278,7 +277,7 @@ model: opus - 命令同 CI:按 ① 建闭包,锁下 `pnpm --filter @objectstack/dogfood test`;⛔ 无 `OS_TEST_SHARD`、无路径。 - 红 = 本改动的后果(陈旧 fixture)同 PR 修,余照报;⛔ 永不跳过或收窄;计数记 `dogfood_battery`。 - 认领的 `Clause-②:`、`Metadata-protocol:` 两行照抄进 PR 正文行首;无则零写,⛔ 不自造。 -- 两行同抄进每个 changeset 正文行首,`Check Changeset` 读:有 kind 即 `minor`,`none` 即 `patch`。 +- 两行同抄进 changeset 正文行首;`Check Changeset` 读 PR 正文:kind 即 `minor`,`none` 即 `patch`。 - ⛔ 永不 `Fixes` 一张还在决策箱的卡:合并会静默关掉它,而收件箱过滤只读 open。 - ⛔ 不写否定式的关单句,它照样关掉点名的卡:解析器无视否定,只匹配关键词 + `#`。 - 关键词是 `fix/fixes/fixed/close/closes/closed` 与 `resolve/resolves/resolved`;让它们远离其它卡号。 @@ -321,6 +320,7 @@ model: opus - 全文 ⛔ 不出现 HTML 注释:sanitizer 落库后吃短尖括号片段,连反引号里的也吃。 - 被吃掉标记的评论对 PM 扫描不可见;HTML 注释形不是等价写法,是坏写法。 +- 例外:harness 自写的 PR 正文首行归属注释原样留、只报;`Fixes #` 紧随其后;dev 自写仍禁。 - 凡要上 GitHub 的文本,尖括号形状片段一律改占位词拼写(`FIELD`、`IDENT.MEMBER` 一类)。 - 各派发模式(`mode:subagent`、`mode:cloud`、`mode:thread`)下 GitHub 都是报告的权威源。 - 写完读回那条评论到尾部:只认首行标记保不住正文,sanitizer 可从首个 tag 形片段吃到尾。