Skip to content

cluster: chain follow-ups (#49 docs cross-link + #53 jq regex anchor) - #58

Merged
kiki830621 merged 2 commits into
mainfrom
idd/cluster-chain-followups
May 10, 2026
Merged

kiki830621 merged 2 commits into
mainfrom
idd/cluster-chain-followups

Conversation

@kiki830621

Copy link
Copy Markdown
Member

Refs #49 #53

Summary

Cluster of 2 chain follow-up issues from #47 verify cycle:

Per-issue checklist

#53

  • SKILL.md Step 0.4 jq filter regex anchor
  • Smoke test 4/4 PASS (canonical / quoted / mid-text / real-comment-body)

#49

Verification

Checklist

  • Diagnose ✓ (both issues, batch diagnosed 2026-05-10)
  • Implement (2 commits, sister)
  • Verify (run /idd-verify --pr <N>)
  • Pending: human review of cluster PR + /idd-close #49 #53 after merge

🤖 Generated by /idd-implement cluster-PR mode. Do NOT add 'Closes #N' trailers — IDD discipline requires manual /idd-close per issue after merge for checklist gate + per-issue closing summary。

@kiki830621

Copy link
Copy Markdown
Member Author

Verify Report — PR #58

Engine

Agent Team (5 Claude reviewers: requirements / logic / security / regression / devils-advocate) + Codex CLI (gpt-5.5 xhigh)

Aggregate

PASS — 0 blocking, 7 follow-up advisories (file as P3 issues)

Scope coverage

PR refs: #49, #53
Verified scope: #49, #53
Cluster integrity: ✓ (2 commits, single-file each, Refs #N discipline preserved)


#53 — chain-shell diagnosis-readiness false-positive on quoted comments

Requirements coverage: 5/5 FULLY met

# Severity Finding Source Action
1 P3 Leading whitespace narrowing — ## Diagnosis (CommonMark legitimate 1-3 space indent) 從 substring true → 新 anchored regex false。Canonical IDD diagnosis comments 為 col-0,實務上不會踩到;但若 user 手動 paste 帶 indent 會 false-negative team:devils-advocate (HIGH self-rated) + codex (ACCEPTED RISK) Follow-up
2 P3 Fenced code block 內 col-0 ## Diagnosis 仍 match true(documentation-style example commit body)。修法需 markdown-aware parser,屬 over-engineering team:devils-advocate + codex Follow-up
3 P3 Sister substring scans 仍存在 — idd-all/SKILL.md:441,524 (Python substring), idd-list/SKILL.md:115, idd-update/SKILL.md:120 用 ## Diagnosis 做 phase 推斷,同樣 false-positive 風險 team:regression + codex Follow-up (out-of-scope per Implementation Plan)
4 P3 Repo 缺 test infra(tests/ / *.bats zero hit)— 4/4 smoke test 是 self-reported, 半年後無法 reproduce。建議加 shell test fixture team:devils-advocate (HIGH structural debt) Follow-up

Backward-compat verification:

  • gh issue view 44/46/48 既有 canonical diagnosis comments — old contains 與新 test() 結果完全一致 ✓
  • jq 1.8.1 本機驗證 (?m)^ multiline mode 行為正確 ✓
  • 4 條 smoke test PASS(line-start true / quoted false / mid-text false / canonical with sub-headings true)✓

#49 — chain-solve vs bulk-solve disambiguation in usecase-routing.md

Requirements coverage: 5/6 FULLY + 1 PARTIAL

# Severity Finding Source Action
5 P3 Decision tree section (line 11-26) 未補 chain vs bulk note。Implementation Plan 提及但實作 narrow 到 row 27 + blockquote。Acceptance 已透過 row 27 達成,但與 plan letter 有微小落差 team:requirements (49.5) + team:regression + codex Follow-up (or accept as plan-internal scope narrowing)
6 P3 Row 61 plain text #44 chain-solve 沒給 issue URL。GitHub auto-linker 在 web UI 會 render,raw markdown viewer 不會。建議補 [#44](url) 達 cross-link 一致性 team:regression + codex Follow-up (cosmetic)
7 P3 Cluster-PR relatedness criterion 弱:#49 (docs) + #53 (jq fix) 是 unrelated #47 follow-ups,non-overlap file/skill。建議在 references/batch-and-cluster.md formalize "cluster-PR eligibility = same-file OR same-skill OR same-root-issue (chain only)" team:devils-advocate (MEDIUM) Follow-up (convention-level)

Cross-cutting verifications:


Devil's Advocate adversarial review summary

DA 對 7 個 challenge 實際嘗試 break design,結論:

  • 1 confirmed regression (Challenge 2 leading whitespace) — Codex 獨立判定為 ACCEPTED RISK,canonical 未踩到,降為 P3 follow-up
  • 1 structural debt (Challenge 6 — no test infra) — P3 follow-up
  • 1 partial gap (Challenge 7 — fenced-code false-positive) — P3 follow-up,markdown-aware 屬 over-engineering
  • 4 challenges 嘗試但 break 不掉(jq compat / row 27 redundancy / blockquote 位置 / cluster-PR — 都是 architectural trade-offs)

DA verdict: "FAIL with concerns";aggregate 上方 PASS — 因 5/6 sources 不認為 leading whitespace 阻擋(canonical 不踩到,narrowing 是設計意圖)。

Security & Regression

Security: PASS (6/6 checks)

  • jq regex pattern hardcoded、anchored、無 backtracking 風險
  • Cross-link URLs verified,non-typosquat
  • Shell quoting 正確(既有,本 PR 未動)
  • Numeric guard 保留 ([[ "$HAS_DIAGNOSIS" =~ ^[0-9]+$ ]])

Regression: PASS (7/7 checks)

Scope Compliance

無 scope creep。兩 commits 完全 follow Implementation Plan,改動 31 lines / 2 files。

Next: Merge → /idd-close #49 #53

Per cluster-PR mode discipline:

  1. gh pr merge 58 --squash --repo PsychQuant/issue-driven-development
  2. /idd-close #49 #53 — 各自獨立 closing summary(per references/batch-and-cluster.md)
  3. Step 5b triage 上述 7 個 follow-up advisories 是否 file 為新 issue

@kiki830621
kiki830621 merged commit b696850 into main May 10, 2026
@kiki830621
kiki830621 deleted the idd/cluster-chain-followups branch May 10, 2026 07:50
kiki830621 added a commit that referenced this pull request May 20, 2026
…n sweep from #53 verify (#114)

chain (multi-root): 3 issues — Phase 0.4 diagnosis-detection precision sweep from #53 verify (#114)

3 sister fixes from #53's verify follow-up family:

* #59 (refactor) — idd-all Python substring → line-anchored regex.
  2 sites in skills/idd-all/SKILL.md (line 450 complexity readback +
  line 533 Spectra context capture) swapped from
  `'## Diagnosis' in c['body']` to
  `re.search(r'(?m)^## Diagnosis', c['body'])`, matching the
  check-diagnosis-readiness.sh canonical convention shipped in #53 /
  PR #58. Scope narrowed: cited idd-list:115 / idd-update:120 sites
  are narrative prose; idd-close:416 startswith() already line-1
  anchored. Only idd-all had actual substring code.

* #64 (enhancement) — CommonMark indent tolerance.
  scripts/check-diagnosis-readiness.sh regex widened from
  `^## Diagnosis` to `^[ ]{0,3}## Diagnosis`. CommonMark spec allows
  1-3 space leading indent for ATX headings. 0 false-positive for
  canonical IDD col-0 comments; 4+ space stays excluded (code block);
  tab stays excluded.

* #65 (documentation, Approach A) — fenced-code limitation doc.
  NEW comment block in helper script documenting line-based detection's
  fenced-code false-positive limitation. Approach A (docs-only) chosen
  per diagnosis decision point. Mitigation: chain Phase 0.4
  AskUserQuestion lets user override the auto-detect verdict. Simpler
  heuristic + user-override safety net preferred over full markdown
  state-machine parser.

Plus: CHANGELOG v2.68.0 + plugin.json 2.67.0 → 2.68.0 (minor).

NOT in scope: #61 (shell test fixture infra) — Plan-tier with
framework-choice surface (bats-core vs plain shell), deferred per
feedback_lead_minimal discipline. Stays diagnosed for separate
iteration.

3-AI verify ensemble PASS (Codex process gap recorded — 3rd
consecutive cluster verify in this session where Codex hung). 0
blocking findings; 3 non-blocking observations all FYI.

Refs #59 #64 #65
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant