Files
2026-08-03 18:42:47 +08:00

3.3 KiB
Executable File

E2E Task 1 Report — PPI same-species ID-map wiring

Status contract

  • Status: COMPLETE
  • Scope: Task 1 only; Task 2 was not run or modified.
  • Contract: the CLI accepts and forwards optional --id-map; the backend resolves only <job.input_dir>/<ppi_species>/<ppi_species>.pep_cds_idmap.tsv; projected mode fails before skill launch when that exact map is absent; direct-target mode remains valid without a map and forwards the exact map when present.
  • Frozen layers preserved: resolver, STRING client, rate gate, Reset, frontend, contracts, and manifest schema were not modified.

RED evidence

  1. CLI forwarding test:
    • Command: test_ppi_id_resolution.py -k cli_forwards_id_map -q
    • Result: 1 failed, 21 deselected.
    • Expected cause: argparse exited with code 2 because --id-map /tmp/soe.pep_cds_idmap.tsv was unrecognized.
  2. Backend command tests before implementation:
    • Result: 3 failed, 1 passed.
    • Expected causes: projected success command lacked --id-map; projected missing-map and other-species-only cases launched run_cmd_logged; direct-target omission already passed.

GREEN evidence

  • Isolated CLI: 1 passed, 21 deselected.
  • Four backend cases: 4 passed.
  • Required focused selection: 50 passed, 6 deselected.
  • Full convergence regression: 75 passed in 7.66 s (the prior 72 plus 3 new test functions; two existing PPI tests were strengthened/repurposed for the other required cases).
  • py_compile skills/ppi/run.py apps/web/pipeline_backend.py: exit code 0, no output.

All validation used deterministic unit fixtures in test4py311; no network call or live backend execution was used.

Active files and exact diff summary

  • skills/ppi/run.py
    • Added the specified --id-map argparse option.
    • Forwarded Path(args.id_map) or None to the existing PpiSkill.run call.
  • apps/web/pipeline_backend.py
    • Added one inline exact-path lookup immediately before PPI command construction.
    • Added projected-mode fail-closed return when the exact same-species map is absent.
    • Added conditional --id-map command extension after --mapping.
  • tests/unit/test_ppi_id_resolution.py
    • Added a no-network fake-PpiSkill CLI forwarding test.
  • tests/unit/test_pipeline_backend_execution_env.py
    • Strengthened direct-target coverage to require omission of both --mapping and --id-map.
    • Converted projected-reference coverage to soe and asserted exact mapping/ID-map paths.
    • Added soe rejection coverage for an ath-only map and for no map.
    • Added the exact ath ID-map fixture to the pre-existing successful projected-ath test.
  • .superpowers/sdd/e2e-task-1-report.md
    • Added this evidence and scope report.

Concerns

  • Pytest consistently emitted the pre-existing RequestsDependencyWarning for the installed urllib3/chardet/charset_normalizer versions; it did not affect test results.
  • Git/diff integration was not available by binding instruction, so scope review used the exact edited regions and active-file list rather than a Git diff.
  • No service/Celery restart or live API/stage run was performed because those belong to the explicitly frozen Task 2 validation. A running backend must be restarted before manually exercising the new command path.
  • Diagnosis records were not updated because diagnosis is outside the four-file Task 1 scope.