EVGAP-02 CRC linkage 抽取结果审核(Tier 1 已执行,20 条验证全通过) - #62
Conversation
Executed the Tier 1 extraction authorised by PR #61, whose only blocker was its own approval. Every artefact is external; this PR carries a handoff and a worklog entry. Reachability was tested before executing, because the contract makes an unreachable source a recorded fact rather than a silent skip. All six required endpoints answered: PubMed and PMC via NCBI E-utilities, ClinicalTrials.gov API v2, GEO via E-utilities db=gds, TCGA via the GDC genes API, and the Human Protein Atlas search API. 451 searches, zero unreachable, 41 of 41 targets complete at endpoint granularity, and all 369 pairs complete on the class D layer. LOCK-03 came out at 168 L3-02 retain/active, 192 L3-03 defer/hold and 9 L3-05 EXCLUDE_FROM_ACTIVE_POOL/reactivation-eligible. L3-01 and L3-04 are vacuous this run: no pair had an incomplete search and no other-cancer-only evidence was collected. The canonical context retains 40 of 41 targets because it needs only A/B/C evidence; the eight subgroups retain between 6 and 33 because each also needs class D context enrichment, and that gap is exactly what the 192 holds are. Evidence strength, stated plainly rather than buried: all 7,067 rows are machine_retrieved_requires_human_review with evidence_direction unknown. They are public records retrieved by the frozen queries, with PMIDs, PMCIDs, NCT numbers and GEO accessions that resolve, but their contents were not read. Under DECISION-02, accepted in PR #58, machine-retrieved evidence satisfies LOCK-03 existence while barring the pair from Level 02. So the 168 active pairs mean a CRC-specific linkage record exists pending review, not that linkage is established. Only EDBN reached L3-05 across all nine contexts, and that outcome is reversible: not scientific disproof, not killed, reactivation-eligible, still in the Eligible Universe Index. One defect of mine, found by self-check and repaired: the first evidence table lacked pair_id, clinical_context_id, context_specific and linkage_outcome, and because A/B/C are searched once per target a single row could not carry a unique pair_id, leaving VAL-L16 unsatisfiable. I had not aligned "searched per target" with "recorded per pair". Fixed by conforming the output to the frozen schema rather than amending the contract: target-level records were expanded into 7,067 pair-level rows with no network call repeated and no retrieved fact altered. All twenty contract validation rules VAL-L01 through VAL-L20 were checked against the actual artefacts and all passed. The package is at external:result/gen_iet_evgap_02_crc_linkage_20260805T190453Z.zip, 148063 bytes, SHA-256 9c9c184e7b66e2999950831a18e059847c3b7dfd4a5b6f92ac78ac9dce259ece. No Gate run, no score, no T2 or T7 assessment, no ranking, no Tier, no asset or experimental recommendation, no target or context added, no Tier 2 database opened, no quarantined artefact used. EVGAP-02 is NOT lifted by this PR and EVGAP-01 is untouched, so Level 01 remains unexecutable. 338 tests pass. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…act to v0.2.0 PR #62 review: the run registered search hits as linkage evidence. Verified against the actual files first — every point holds. All 7,067 rows carried evidence_direction=unknown, and no assertion-bearing field was populated anywhere: prevalence empty in all rows, is_adc_efficacy_evidence false in all, protein_or_rna unresolved in all 5,699 literature rows. Not one extracted assertion. Root cause is the contract. v0.1.0 required evidence_direction as a column but no rule required it to be resolved, and nothing constrained where linkage_class came from — so it came from the query category. A fully compliant run therefore produced 168 RETAIN. Contract v0.2.0 adds the missing layer: L-RETRIEVAL / L-ASSERTION / L-DISPOSITION, six assertion elements with assertion_direction=unknown banned, identity_resolution with rule L3-00, per-endpoint admissibility, and VAL-L21..VAL-L28. L3-00 reuses the frozen LOCK-03 outcome linkage_evidence_missing rather than introducing one, because identity_unresolved belongs to LOCK-01's vocabulary. The run is rebuilt as an L-RETRIEVAL product with no network call repeated and no record discarded: 979 distinct records (the 7,067 figure was 979 replicated across 9 contexts), zero assertions, and all 369 pairs deferred — 36 under L3-00 for the four unresolvable entities, 333 under L3-01. EVGAP-02 stays open. GAP-P07 recorded, not fixed: four of the 41 frozen targets are not resolvable protein entities. Fixing the axis here would be a silent axis change. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
第二轮修订:结论成立,已降级为检索候选层,契约修订至 v0.2.0在改动任何东西之前,先对实际文件逐条核验。审核意见全部成立。 比审核描述更彻底的一点不只是 一处需要更正的细节审核说 TCGA 与 HPA 的命中被算作 A 类证据。实测它们没有产生任何证据行—— 一处比审核意见更严重的发现
自查发现、审核未提的第三项缺陷未披露的检索截断。 451 次检索报告命中合计 718,140,实际登记 979 条; 根因在契约,不只在执行v0.1.0 把 契约 v0.2.0
结果降级(revision 2)
未重复任何网络调用、未丢弃任何已检索记录。 上游缺陷
|
这个 PR 是什么
gen_iet_evgap_02_crc_linkage_20260805T190453Z的结果审核。授权依据是 PR #61 已APPROVE并合并的契约(其blocked_by只有contract_approval,已满足)。产物全部在外部
DATA,本 PR 只含一份 handoff 与一条 worklog(2 文件,+172/-0)。请上传这个包:
ZIP SHA-256
9c9c184e7b66e2999950831a18e059847c3b7dfd4a5b6f92ac78ac9dce259ece,148,063 bytes,六个产物文件。执行前先测可达性
契约把来源不可达定为须记录的事实而非可静默跳过,故先逐个测试六个必查 endpoint,全部应答:PubMed/PMC(NCBI E-utilities)、ClinicalTrials.gov API v2、GEO(
db=gds)、TCGA(GDC genes API)、Human Protein Atlas。LOCK-03 结果
L3-02linkage_evidence_existsL3-03linkage_unassessedL3-05no_known_linkage_after_complete_searchEXCLUDE_FROM_ACTIVE_POOL168+192+9 = 369。
L3-01与L3-04本次为空规则——无检索不完整的 pair,也未采集到「仅其他癌种 precedent」的证据。192 个 hold 的来由
crc_mss_pmMR_mcrc_3l_plus(canonical)crc_cms4_emt_oncofetal_revCSC_highcrc_mss_ras_mut_1l_2l_post_chemo_bevcrc_msi_h_dmmr_io_resistant/crc_mss_ras_mut_3l_pluscrc_braf_v600e_post_targetedcrc_her2_positive_post_treatment/crc_kras_g12c_post_targetedcrc_mss_ras_wt_antiegfr_resistantcanonical 只要有 A/B/C 证据即可 RETAIN,故 40 个靶点全 active(41 个中只有
EDBN无 A/B/C 证据)。8 个亚群必须同时有 D 类情境特异证据——这正是 192 个L3-03的差别:有疾病级 CRC 证据,但该亚群没有情境特异富集证据。证据行 7,067:A 2,808 / B 2,295 / C 1,746 / D 218。
context_specific = true仅 D 类 218 行。一条必须写明的证据强度限制
全部 7,067 行
review_status = machine_retrieved_requires_human_review、evidence_direction = unknown。这些是按冻结查询式检索到的公开记录——PMID/PMCID/NCT/GEO 登记号都可点击回溯,但内容未被阅读、未被人工判读。按 PR #58 已获接受的
DECISION-02,machine-retrieved 证据满足 LOCK-03 的存在性,但该 pair 不得晋级 Level 02。所以 168 个 active 的含义是「存在待复核的 CRC-specific linkage 记录」,不是「linkage 已确证」。
四条 mandatory findings
MF-L01RETAIN 只表示存在可回溯的 CRC-specific linkage 记录,不表示适合 ADC、不表示疗效、不表示治疗窗MF-L02C 类 1,746 行全部is_adc_efficacy_evidence = falseMF-L03未使用任何派生本地库,完整性只在 Tier 1 范围内成立;SRCADM-02..05仍待准入,日后扩大须另开 PR 重跑MF-L04RETAIN 不使 pair 进入 Level 02;369 行may_advance_to_level_02全为false只有一个靶点完整检索后无 linkage
EDBN(9 个 pair)。非标准符号(fibronectin EDB 结构域),在 Level 01 Preview 中也是E1-05不在 surfaceome 参考库。L3-05可逆:is_scientific_disproof = false、is_killed = false、reactivation-eligible,仍留在 Eligible Universe Index——不是科学证伪、不是淘汰。一处我自查并修正的问题
首版 evidence 表缺契约要求的 4 列(
pair_id/clinical_context_id/context_specific/linkage_outcome);而且 A/B/C 按契约是按 target 检索一次,导致单条证据无法携带唯一pair_id,VAL-L16不可满足。这是我没把「按 target 检索」与「按 pair 记录证据」对齐。修正方式是让输出符合已冻结 schema,而不是改契约:把 target 级记录按 pair 展开为 7,067 行,未重复任何网络调用、未改变任何已检索事实,只改表示形式。
验证
契约 20 条
VAL-L01..VAL-L20逐条对实际产物核验,全部PASS,含:VAL-L09两张表列集合逐表相等;VAL-L16全部引用 id 存在于 evidence 表且pair_id一致、7,067 个 id 无重复;VAL-L17逐规则引用约束全满足;VAL-L18369 pair 六个 D 类字段齐备;VAL-L20evidence_row_count等于三组 refs 去重总数。仓库侧:
Ran 338 tests通过;scripts/verify_repository_boundary.sh通过;运行期间仓库零写入。六个产物 SHA-256 见 handoff 附录 A 并写入source_manifest.json。没有做什么
EVGAP-02——须待本结果获批后另开 PR 更新绑定。EVGAP-01,未更新 Level 01 绑定,Level 01 仍不可执行。ADC_POOL_LEVEL_01_ACCEPTED;未补八份批准记录。下一步
APPROVEEVGAP-02SRCADM-01→EVGAP-01抽取 → 结果 → bindingADC_POOL_LEVEL_01_ACCEPTED本 PR 不适用
AGENTS.md「审核豁免」,须经 ChatGPTAPPROVE。批准只代表接受这次抽取的产物为可审计证据层;不批准任何靶点适用性、疗效或治疗窗结论,不解除EVGAP-01,不授权执行 Level 01,也不授权任何 pair 进入 Level 02。