docs(cr-checklist): sediment Lesson #15 — file-move 3-step verify#1922
Merged
Conversation
Fold task #33 P1 PR #1917 own-up into Lesson #15. Pure file-move PRs need three independent verifications, not one: 1. ``pytest --collect-only`` diff = 0 (import-time) 2. ``pytest <subdir>/`` actually run (fixture / __file__ resolution) 3. ``grep -n "Path(__file__)" <moved>`` for hardcoded relative paths PR #1917 baseline used only step 1 — collect-only matched 1434 → 1434 both pre- and post-move and three reviewers (chenyexuan, 冬柏, huangzhangshu) all LGTM'd. CI then surfaced 15 failures because ``Path(__file__).resolve().parents[2]`` in three of the moved files now pointed at ``tests/`` instead of the repo root. Fix-forward bumped ``parents[2]`` → ``parents[3]``; CI rerun went 10/10 green. 冬柏 own-up msg=cd428dc1 + chenyexuan own-up msg=18acb5e7 jointly established that collect-only cannot detect this class of break, so the lesson becomes a hard rule for future file-move CR. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Collaborator
Author
|
@chenyexuan PR #1922 testing lane verify ✅ 同意通过。 我核了 diff:只改 三步 mandatory verify 写得准:
CR 应用规则也对:file-move PR 的 LGTM 必须 cite Step B + Step C 实证,不能只 cite Step A。0 NIT,CI lint 绿后可 squash merge。 |
Merged
4 tasks
earayu
added a commit
that referenced
this pull request
Apr 29, 2026
….2/v7.3/v8 + #13 v3 (#1924) * docs(cr-checklist): fold task #30 A2/B1 sediment — Lesson #12 v6.4/v7.2/v7.3/v8 + #13 v3 application task #30 Phase A 全闭环后 follow-up 子 PR 2 (per PM msg=5debfb74 leverage B2 等 OpenRouter key wait window). fold 4 lesson sediment 进 § 四 (task #30 A2 + B1 + cross-PR cross-reviewer 独立 forensics 实证累计): - Lesson #12 v6.4 (function-self-verify ≠ aggregation-chain-verify) — helper 函数自身正确不等于 caller 在 aggregation/批处理/loop scope 应用正确. first-application: task #36 PR #1899 fix-forward² L148 endpoint scope. second-application: task #30 B1 PR #1923 commit `163b77c1` source_chunk_ids window-scoped fix. - Lesson #12 v7 second-application demos 累计 3 类 sub-form: - v7.1 composite key invariant (already sedimented PR #1916) - v7.2 Pydantic schema layer mandatory exposure — task #30 A2 PR #1921 KnowledgeGraphConfig 漏 2 字段 first-application - v7.3 cross-PR default value alignment — task #30 B1 PR #1923 response_format default 漂移 first-application - Lesson #12 v8 (fake guardrail anti-pattern) — guardrail 函数 signature 必须接 actual runtime data 不能仅 synthetic placeholder. task #30 A2 PR #1921 first iteration `_estimate_window_prompt_tokens` 硬编码 base_chunk_size=400 first-application + fix-forward `6d2db64`. - Lesson #13 v3 application demo (未实证 invariant 不预先锁) — type narrowing / value space cap pre-locking 反过来应用 v3. task #30 A2 PR #1921 NIT defer Literal vs Optional[str] first-application. § 六 sediment 引用追加 PR #1921 / PR #1923 / PR #1922 三 commit cross-link. § 八 修订记录追加本次 commit timeline + 4 lesson sediment 类别. 来源: PM msg=5debfb74 (B2 等 key wait window 推进) + ziang msg=f7dc20ef + Weston msg=9f356fe9 + ziang msg=c170ad75 + 黄章书 msg=cda4dc75 多 reviewer cross-check 独立 surface forensics trail. * fix(cr-checklist): NIT '3 周内' → '数小时内' (PR #1916 + A2/B1 同日 timeline)
5 tasks
earayu
added a commit
that referenced
this pull request
Apr 30, 2026
…audit (#1928) * docs(task-61): DB adapter compat spec v1 — vector + graph cross-impl audit Architect spec v1 起草 per earayu2 directive (msg=8b989470 / msg=2bad8e75 / msg=f26b703e) + PM 不穷 task #72 dispatch. Streaming evidence integration from 8 lanes: - huangheng msg=ed2f2973: 3 vector P0 candidates (cross-tenant / filter silent / collection init) - Bryce msg=8e895471 task #69: 11 vector findings (4 P0 + 3 P1 + 4 P2, including upgraded score normalization P0-V3/V4) - 冬柏 msg=3e93bb64 task #67: 3 missing Protocol method tests (bulk_upsert_entity_with_lineage_parts P0 + remove_relation_lineage P1 + list_entities P1) - chenyexuan msg=f298011e + PR #1926: workflow paths filter dead reference P0-W1 (in flight) - cuiwenbo msg=dfebf706 task #70: FE/UX 3 candidates (score, viz error vs empty, confidence_score) - Planetegg msg=db7fb085 + msg=41906f4 + msg=41665d7e task #65: alias resolution gather P2-S1 + Singapore QDRANT_MULTITENANT=True (no hot-fix needed) + env shape verify - ziang task #64 graph store audit (in_progress, will fold-in) - dongdong task #71 deploy/typed schema (in_progress, will fold-in) Spec structure: - §1 inventory by lane with file:line evidence - §2 缺口 by severity (P0 CRITICAL hot-fix candidate / P0 必修 / P1 允许差异 declare / P2 性能优化 / YAGNI) - §3 三层 design direction per Weston msg=85e527e3 framework - §4 sub-task dispatch (Phase A 8 lane parallel + Phase B per-P0 three-PR-pattern + Phase C P2 + Phase D PR #1926 unblock) - §5 acceptance: P0/P1 standards + boundary test gate + e2e + sample limitation免责 - §6 CR mandatory checklist citing Lesson #11-#16 family from PR #1916/#1924/#1922 sediment + new Lesson #16 candidate (workflow paths dead reference) Sample limitation: spec evidence from streaming surface, not huangzhangshu collected gap list — fix-forward amend after huangzhangshu lane completes + Bryce/ziang audit slice输出. Not blocking: PR #1925 task #30 B3 default=2, PR #1926 compat-test paths filter, Singapore 2pm release (env fix separate lane), task #31 graph node merge / task #33 P3 workflow gate. * docs(task-61): fix-forward Weston BLOCKER + 5 streaming integration Weston msg=13dd5e91 BLOCKER (score normalization severity drift): 保持 P0-V3+V4 P0 across §1.1 / §2.2 / §5.3 — score 方向是 caller 语义硬契约,不能在 PGVector/Qdrant 间显示反向。§2.2 加 P0-V3+V4 显式行 + §5.3 加 test_score_normalization_in_vector.py boundary test (跨 metric × 跨 adapter 全 6 cell parametrize). Streaming integrations (5 lane): 1. Bryce msg=23a2f514 P0-V1 first-principles 重新定性 — Qdrant legacy mode tenant isolation 是 collection name level 不是 query filter level (verify qdrant_connector.py:442-446),下沉 P1-V4 defense-in-depth (legacy mode deprecation follow-up 候选). 2. Bryce msg=8e895471 11 vector findings — 4 P0 (cross-tenant 下沉 / filter silent / score V3+V4) + 3 P1 (collection init / batch atomicity / filter Or 语义) + 4 P2. 3. dongdong msg=4201465a + PR #1929 + cuiwenbo msg=bcec38ad — P0-D1 Helm worker Neo4j env missing (Singapore graph viz root-cause); P1-D1 e2e shape matrix gap; P1-D2 Nebula no Helm first-class; P1-D3 typed schema 缺 vector backend exposure. 4. chenyexuan NIT — Lesson #16 candidate cite added §6. 5. Planetegg msg=eb9de4b0 NIT — P2-S1 量化 max_nodes*2 default 1000→2000 / hybrid default 1000 max 5000; msg ID corrections §7 (msg=41665d7e Singapore multitenant verify, msg=eb9de4b0 P2-S1 quantification, dropped invalid msg=ec358a3e). 冬柏 PR #1927 commit b2234ae fold-in §5.3 (38 cases incl zero-side-effect + replay idempotency post-NIT). P0 list final: P0-V2 (filter silent, Bryce P0-A) + P0-V3+V4 (score normalization, Bryce P0-B) + P0-G1 (bulk_upsert, 冬柏 PR #1927) + P0-W1 (compat-test paths, chenyexuan PR #1926) + P0-D1 (Helm Neo4j env, dongdong PR #1929). * docs(task-61): § 3.1.1 historical residue cleanup per Weston msg=fdf04a69 NIT — strike old P0 hot-fix path (P0-V1 已下沉 P1-V4 per Bryce first-principles verify) * docs(task-61): final consistency cleanup per Weston msg=e414d3cf — line 14 count 4+3+4 to 3 P0 + 4 P1 + 4 P2; § 5.1 P0-V1 line removed; § 5.2 P1-V4 defense-in-depth boundary test added
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add Lesson #15 to `docs/zh-CN/architecture/task-17-cr-review-checklist.md` § 四 — fold task #33 P1 PR #1917 own-up. Pure file-move PRs need three independent verifications, not one.
This is the file-move 3-step verify lesson sediment from PR #1917 own-up trail (冬柏 msg=cd428dc1 + chenyexuan msg=18acb5e7).
What
Mandatory 三步 verify for file-move / git mv PRs:
CR application rule: reviewer LGTM on file-move PR must cite Step B + Step C evidence, not just Step A.
Why
PR #1917 (task #33 P1 unit_test subdir-ize) baseline used only Step A. Collect-only matched 1434 → 1434 both pre/post move, three reviewers (chenyexuan / 冬柏 / huangzhangshu) all LGTM'd. CI then surfaced 15 test failures because `Path(file).resolve().parents[2]` in three of the moved files now pointed at `tests/` instead of the repo root.
Fix-forward bumped `parents[2]` → `parents[3]`; CI rerun went 10/10 green.
冬柏 + chenyexuan jointly established collect-only cannot detect this class of break.
Test plan
CR
🤖 Generated with Claude Code