boardx / boardx/workspacex

[harness] doctor ④「issue 已关闭但 feature 未 passing」从 WARN 升 strict-FAIL:先清 ≥5 条存量漂移(#1557 后续)

Open
#2,485 0 comments 0 reactions 0 assignees View on GitHub
area:harness owner:coord-architecture
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 背景

PR #2484(Closes #1557)给 `harness doctor` 补了第 ④ 条反向检查:feature 的投影 issue 已 CLOSED(非 NOT_PLANNED)但 feature_list 里仍非 `passing`。引入当天它**两种模式都只 WARN**,因为实测 main 上已有存量漂移,直接 strict-FAIL 会让 `backend-gates` 的 `doctor --strict` 把每条 PR 当场打红。

WARN 不能永久化(本仓已有先例:advisory 没人看 = 门静默失效,#848 形态)。本 issue 是它的退出机制。

## 已知存量(2026-09-02 用 MCP `list_issues state=CLOSED label=status:in-progress` 对照 feature_list 实测)

| feature | issue | feature_list 状态 |
|---|---|---|
| 01/F34 | #87 | in_progress |
| 01/F50 | #121 | in_progress |
| 01/F195 | #1433 | in_progress |
| 04/F06 | #2447 | in_progress |
| 11/F04 | #1649 | in_progress |

⚠ 这是按 label 抽样的下界,不是全量。全量以 #2484 合入后在带 `gh` 的环境跑一次 `pnpm harness doctor` 的 WARN 清单为准(本地无 `gh` 的会话看不到这条检查)。

## 动作

1. #2484 合入后,跑 `pnpm harness doctor`,把 ④ 的全部 WARN 逐条处置:**要么重开 issue**(实现确实没合入 main / 没 verify),**要么跑 `pnpm harness verify --sprint` 让状态真的转 passing**(实现已在 main 只是没回写)。逐条在对应 issue 留一句处置理由。
2. 清零后,把 `doctor.ts` 的 `checkIssueClosedButNotDone` 级别改成 `strict ? "FAIL" : "WARN"`(与 ②③ 对齐),删掉 `judgeClosedIssueDrift` 头注里「两种模式都是 WARN」那段,改成指回本 issue。
3. 一个 PR 带 `Closes #<本 issue>`。

## 期限

**2026-09-16**(两周)。到期未清零,先升 strict-FAIL 并把剩余存量塞进一个只减不增的棘轮名单(同 `feature-evidence-allowlist.json` 模式),不再延期——延期就是 WARN 永久化。

## 关联

- #1557(根问题)、PR #2484(引入 ④ 的 PR)
- #2483(sync 的 `--limit 500` 截断,同一批发现)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in doctor.ts at checkIssueClosedButNotDone and run pnpm harness doctor in an environment with gh to collect the complete WARN list. Reopen issues or run pnpm harness verify --sprint as appropriate, recording the reason on each issue. Done means the drift list is cleared and this check uses strict ? "FAIL" : "WARN", with one PR closing this issue.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
ci-cd, cli, tooling
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
48/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.