boardx / boardx/workspacex

harness: 无关契约束的结构问题不应阻塞其它束/delta 的 claim/new-sprint

Open
#2,211 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
0
Forks
0
Avg merge
1h 7m
Merged PRs (30d)
969

Description

## 问题

\`auditSignoff\`(\`.harness/scripts/lib/design-signoff.ts\`)的规则①(束内结构完整性:缺文件 / 空 covers / 时间戳 / 正文自称不可签核)对 \`bundles\` 数组做**无条件全量扫描**,与本次 \`new-sprint\`/\`claim\` 请求的 featureIds 无关。

实例:phase-01 的 \`plan-control\` 束当前 \`status: confirmed\` 但 \`covers: []\`(TW-P0-3 对应 feature 尚未生成,属预期过渡态),触发「空 covers 的束不成立」FAIL。这条 FAIL 对 phase-01 下**任何** feature 的 \`new-sprint\`/\`claim\` 都生效——包括与 \`plan-control\` 毫无依赖关系的 \`skill-office-docs-node-runtime\`(design-delta,自身已签核,F972 已生成)。

## 根因

契约束切分的判据是「不变量互相依赖的才同束」(见 \`.harness/instructions/contract-design.md\` 第一节)——独立能力域本该互不阻塞。但门控实现把「束内结构完整性」这条本该局部生效的检查,和「跨束一致性复核覆盖度」这条天然该全量生效的检查,混进了同一个无差别循环,导致一个束的过渡态问题变成 phase 级单点故障。

## 修复方向

仅在 \`mode === "gate"\` 且 \`featureIds\` 非空时(即 \`new-sprint\`/\`claim\` 的真实调用场景),把规则①的检查范围收窄到「覆盖了本次请求的至少一个 featureId 的束」。\`featureIds.length === 0\`(\`verify-uc-coverage\` 的结构性全量扫描)与 \`mode === "audit"\`(\`doctor\` 的全阶段健康报告)维持现状不变。规则③(一致性复核覆盖度)不动——它是天然的跨束检查。

Closes 需求见本 issue;实现 + 反证测试见对应 PR。

Contributor guide

No contributing guide indexed for this repository

Research direction

Start in .harness/scripts/lib/design-signoff.ts and read the first section of .harness/instructions/contract-design.md. Trace auditSignoff in gate and audit modes, then exercise new-sprint/claim with featureIds and verify-uc-coverage without them. Done means unrelated bundles no longer block targeted requests, while full scans and cross-bundle coverage checks remain unchanged.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
tooling
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
68/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.