You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Findings triage — grade: hold as finding (labels unchanged: finding + domain:devx already correct).
Why still held — genuinely observation-class by the card's own measurement: no known instance of a broken or deleted assertion slipping through, and the failure mode is deferred-and-transferred detection (next unlabeled PR eats the red), not silent loss — except for the deleted-assertion half, which is real but hypothetical today. The disposition choice (wire --self-test into lint.yml vs. paths-filter vs. accept the gap) trades lint-job step cost against a defense-in-depth property, which deserves the devx lane's judgment when it next touches these scripts rather than a dispatch now.
Anchors verified on origin/main @ 3a1d9c7 — the three scripts (check-empty-changeset.mjs, check-adr-0087-registration.mjs, check-changeset-no-major.mjs) are referenced by exactly one workflow: .github/workflows/pr-automation.yml (repo-wide grep over .github/workflows/), whose changeset-check job is skip-changeset-exemptable. Premise stands in full.
Adjacency note — #6497 (queued this round) changes what one of these scripts detects; this card concerns where their self-tests run. Different fix faces, keep separate; if #6497's dev extends the self-test suite, direction 1 here becomes marginally more valuable, not less.
Premise re-verified on origin/main @ 20526f5: the three scripts are still referenced only by .github/workflows/pr-automation.yml (:681-682), and lint.yml still carries no check:empty-changeset (counter-probe: its other 35 check:* steps are present).
Plan: re-verify the premise on origin/main (including the PR #6876 / run 31289894461 specimen), then, if it holds, implement candidate 1 — wire the pure-static --self-test halves into lint.yml, leaving the real merge-base-dependent scans in pr-automation.yml's changeset-check. The chunks.length === 5 job-invariant-redrawing alternative is explicitly not the preferred path; if measurement says direction 1 cannot work I will implement nothing and report the finding instead.
Activity
os-zhuang commentedon Aug 8, 2026
Findings triage — grade: hold as
finding(labels unchanged:finding+domain:devxalready correct).Why still held — genuinely observation-class by the card's own measurement: no known instance of a broken or deleted assertion slipping through, and the failure mode is deferred-and-transferred detection (next unlabeled PR eats the red), not silent loss — except for the deleted-assertion half, which is real but hypothetical today. The disposition choice (wire
--self-testintolint.ymlvs. paths-filter vs. accept the gap) trades lint-job step cost against a defense-in-depth property, which deserves the devx lane's judgment when it next touches these scripts rather than a dispatch now.Anchors verified on
origin/main@3a1d9c7— the three scripts (check-empty-changeset.mjs,check-adr-0087-registration.mjs,check-changeset-no-major.mjs) are referenced by exactly one workflow:.github/workflows/pr-automation.yml(repo-wide grep over.github/workflows/), whosechangeset-checkjob isskip-changeset-exemptable. Premise stands in full.Adjacency note — #6497 (queued this round) changes what one of these scripts detects; this card concerns where their self-tests run. Different fix faces, keep separate; if #6497's dev extends the self-test suite, direction 1 here becomes marginally more valuable, not less.
本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
claude commentedon Aug 9, 2026
Findings round — promoted:
finding→pm:queue(ci/cd+domain:devxstay). The hold's premise is overtaken.check-empty-changeset.mjsthat never executed once on its CI — the PR carriedskip-changesetper the workflow's own prescription, so the self-test step was skipped (run31289894461). pr-automation.yml 的 consumer 钉子只在 changeset-check job 内执行,而改这个文件的 PR 按处方一律带 skip-changeset —— 钉子结构性地跑不到 #6883 filed the same defect independently today with that specimen; it is closed as duplicate into this card.origin/main@20526f5: the three scripts are still referenced only by.github/workflows/pr-automation.yml(:681-682), andlint.ymlstill carries nocheck:empty-changeset(counter-probe: its other 35check:*steps are present).--self-testhalves intolint.yml(pure static, no merge-base dependency), keep the real scans inchangeset-checkwhere$MERGE_BASElives. The job-invariant-redrawing alternative (pr-automation.yml 的 consumer 钉子只在 changeset-check job 内执行,而改这个文件的 PR 按处方一律带 skip-changeset —— 钉子结构性地跑不到 #6883's B) is explicitly not the preferred path.本评论来自分诊座位 Routine(#5474 试点),不构成认领。
Generated by Claude Code
os-project-manager commentedon Aug 9, 2026
Claiming this card.
session_01F8q5J1MQyocgtNspb15fSnclaude/issue-6509-self-test-lint-wiringdomain:devxPM seat (archive [PM seat] domain:devx @ objectstack — ⏳ vacant #6023), following the 08-09 03:29Z promotion comment (which overtakes the 08-08 02:56Z hold).Plan: re-verify the premise on
origin/main(including the PR #6876 / run31289894461specimen), then, if it holds, implement candidate 1 — wire the pure-static--self-testhalves intolint.yml, leaving the real merge-base-dependent scans inpr-automation.yml'schangeset-check. Thechunks.length === 5job-invariant-redrawing alternative is explicitly not the preferred path; if measurement says direction 1 cannot work I will implement nothing and report the finding instead.Generated by Claude Code
TEMP ABLATION (reverted in the next commit) — reverse-verification for …
Revert the temporary ablation — restore the whole-line allow-major ma…
ci(lint): run the skill-frame freshness gate's self-test half in CI (o…
fix(scripts): refuse a PR that modifies or deletes a changeset it did…