Files
PlantAI-dev/.superpowers/sdd/convergence-task-4-report.md
2026-08-03 18:42:47 +08:00

4.7 KiB
Executable File

Convergence Task 4 Report

Status

DONE — the independent review required the binding stop rule to be applied. skills/ppi/run.py was restored byte-for-byte from the archived green snapshot. Task 4 therefore ends as a deliberate no-op convergence result with no active production-code change.

Green archive

  • Path: 项目记录/代码归档/2026-07-10_PPI_ID修订收敛前快照/run.green-before-resolver-convergence.py.txt
  • Archived line count: 1300
  • Archived SHA-256: 7e8d7b6dcddada1d8961562bf164faf2def4a094396ae73b14f7aa57230e77a4
  • Archive was copied before source inspection/editing and matched the active file checksum at creation.

Production caller map

CodeGraph was queried before navigation; rg then confirmed exact occurrences outside the archive.

Symbol Production caller Conclusion
_query_candidates PpiSkill.resolve_query_ids One caller, retained: candidate ordering, normalization, alias provenance, and de-duplication are an independent semantic boundary.
_resolution_row PpiSkill.resolve_query_ids One caller, retained after review: it is the named projection boundary for public row fields and evidence-source precedence.
_exclude_conflicting_orthologs PpiSkill.resolve_query_ids One caller, retained: canonical/reference convergence and ambiguous_ortholog propagation are an independent semantic rule.
_resolution_metrics PpiSkill.resolve_query_ids One caller, retained: it is the direct summary boundary over final rows plus explicit canonical members.
write_string_resolution_report PpiSkill.run One caller, retained: TSV serialization is an independent artifact/output boundary.

Exact active diff scope

  • No active production-code diff remains: cmp -s confirms skills/ppi/run.py is byte-for-byte equal to the archived green snapshot.
  • The attempted _resolution_row fold was fully discarded; no replacement fold was attempted.
  • No changes remain to StringAPI/URL code, deterministic resolver code, gfa_core/string_rate_gate.py, backend, frontend, CLI, Reset, contracts, artifacts, or metrics schemas.

Before/after

  • skills/ppi/run.py: 1300 → 1300 lines (net 0 after restore).
  • Before SHA-256: 7e8d7b6dcddada1d8961562bf164faf2def4a094396ae73b14f7aa57230e77a4
  • After SHA-256: 7e8d7b6dcddada1d8961562bf164faf2def4a094396ae73b14f7aa57230e77a4
  • Equality evidence: cmp -s skills/ppi/run.py <archive> exited 0.

Validation

Fresh verification after exact restoration:

  • test_ppi_id_resolution.py + test_ppi_string_policy.py: 32 passed.
  • Filtered test_pipeline_backend_execution_env.py: 28 passed, 4 deselected.
  • Combined static regression: 70 passed.
  • py_compile for the five specified Python files: exit 0.
  • The retained real-shape regression explicitly asserts 24 canonical members, 24 relationship rows, 12 unique reference queries, 5 raw resolutions, 7 GeneID-only fallback resolutions, 12 selected STRING queries, and 24 resolved members.

The test runs emitted the pre-existing requests dependency compatibility warning for urllib3/chardet/charset_normalizer; there were no test failures.

Stop-rule decision

RESTORE. Independent review found the attempted change lateral: it replaced a four-line named projection phase with a 33-line inline block, reduced the file by only six lines, and made the orchestration method denser. _resolution_row centralizes non-trivial public provenance projection, especially candidate_gene_id, selected_query_id, method, and three-way evidence_source precedence. The archived green file was therefore restored exactly, and no corrective machinery or alternate fold was added.

Concerns

  • Validation is deterministic unit/backend/static regression only; no live STRING request or real-data stage run was required by Task 4.
  • The environment has a requests dependency compatibility warning, unrelated to this change.

Review fix

  • Read .superpowers/sdd/convergence-task-4-review.md and accepted its RESTORE disposition.
  • Copied the archived green snapshot over skills/ppi/run.py without modifying the archive.
  • Confirmed byte equality with cmp -s, matching SHA-256 values, and matching 1300-line counts.
  • Did not attempt another fold.

Self-review

  • No active production-code changed line remains for Task 4.
  • _resolution_row is restored as the explicit public-row/provenance projection boundary.
  • Final PpiResolutionRow fields, evidence-source precedence, candidate order, mapping attribution, ambiguity/convergence, relationship preservation, final STRING-ID de-duplication, and metric denominators are identical to the archived green implementation and covered by the fresh green tests.
  • Frozen layers were not edited.