为什么开这张票
legacy/ 改名(#77)让 PS1 看起来退役了,实际没有:CI 与 release 仍执行 45 个 PS1 调用点,其中 ~28 个是独立脚本。只要这些调用点还在,run-code-intel.ps1(4366 行)和 Invoke-SentruxAgentTool.ps1(2828 行)就删不掉——它们是这些测试的被测对象。
真实依赖链和 #55 的票序是倒的:T7(#52 测试资产迁移)排在最后,实际卡死 T2/T3/T5 的出口。本票不改票序,改推进单位:从「按模块 port」改成「按 CI 调用点切换」。
Rust 侧能力已经够厚(65 个源模块、43 个集成测试),缺的不是实现,是切换。调用点归零那天,#47 / #48 / #50 同时到出口,PS1 可一次性删除。
推进规则
- 每个 PR 切 1–3 个调用点,不批量。
- 每个调用点三选一,PR 描述里明示走哪条:
- A / 已覆盖:Rust 集成测试已覆盖同一契约 → 删 CI 步骤,PR 里逐条列出对应的 Rust 测试名与它断言的内容(不接受「看起来对应」,要指到具体 test fn)。
- B / 要 port:契约真实存在但 Rust 没有 → 先加 Rust 测试,green 后再删 PS1 步骤。
- C / 宣告死亡:无消费者的历史兼容 → 列理由,删脚本与步骤。
- 闸门:
legacy/scripts/tests/test-ps1-rust-parity.ps1(545 行,已有)+ 自扫 green。禁止靠放松 baseline 换绿。
- 每个 PR 更新本票 checklist,勾掉的行注明 A/B/C。
调用点清单
ci.yml · windows-build-test-package
ci.yml · cross-platform-smoke(ubuntu/macos,#53 T8 的前提)
release.yml · release-windows
parity-observe.yml
出口
关系
为什么开这张票
legacy/改名(#77)让 PS1 看起来退役了,实际没有:CI 与 release 仍执行 45 个 PS1 调用点,其中 ~28 个是独立脚本。只要这些调用点还在,run-code-intel.ps1(4366 行)和Invoke-SentruxAgentTool.ps1(2828 行)就删不掉——它们是这些测试的被测对象。真实依赖链和 #55 的票序是倒的:T7(#52 测试资产迁移)排在最后,实际卡死 T2/T3/T5 的出口。本票不改票序,改推进单位:从「按模块 port」改成「按 CI 调用点切换」。
Rust 侧能力已经够厚(65 个源模块、43 个集成测试),缺的不是实现,是切换。调用点归零那天,#47 / #48 / #50 同时到出口,PS1 可一次性删除。
推进规则
legacy/scripts/tests/test-ps1-rust-parity.ps1(545 行,已有)+ 自扫 green。禁止靠放松 baseline 换绿。调用点清单
ci.yml · windows-build-test-package
install-code-intel-pipeline.ps1(安装器,跨三条 workflow 共用 — 建议留到最后,单独一 PR)test-github-solution-research.ps1test-project-discovery.ps1— 候选tests/project_orientation.rstest-project-management-support.ps1test-atomic-capability-contract.ps1— 候选tests/capability_exec.rstest-skill-development-benchmark.ps1— 候选src/tool_effectiveness_benchmark.rstest-hospital-trust-contract.ps1— 候选tests/hospital_diagnosis.rstest-dag-facade.ps1— 候选tests/dag_coordinator.rs+tests/dag_run.rstest-scoped-repowise-security.ps1test-scoped-repowise-worktree.ps1test-regression-fixes.ps1test-retirement-packets.ps1— 候选tests/compatibility_retirement_gate.rstest-python314-pon-compatibility.ps1— 候选tests/pon_multilanguage_mapping.rstest-integration-orchestration.ps1test-code-intel-project-conformance.ps1test-code-intel-pipeline.ps1(pipeline smoke — 这条直接压在run-code-intel.ps1上,是 [ps1-exit] T2 launcher 收编:run-code-intel.ps1 → code-intel run + thin forwarder #47 的核心出口)test-stable-wrapper-e2e.ps1test-model-channel-delegate.ps1([ps1-exit] T4 模型通道执行体 Rust 化(sealed judgment plane 地基) #49 T4 相关)test-model-channel-degraded-pipeline.ps1([ps1-exit] T4 模型通道执行体 Rust 化(sealed judgment plane 地基) #49 T4 相关)test-automatic-pull-request.ps1test-automatic-pull-request-flow.ps1test-follow-up-automation.ps1test-primary-launchers.ps1— 候选tests/primary_entry.rstest-sentrux-failure-normalization.ps1— 候选tests/sentrux_adapter.rs/tests/sentrux_analysis.rstest-codenexus-adapter-contract.ps1— 候选tests/codenexus_adapter.rstest-transactional-publication.ps1test-run-commit-contract.ps1— 候选tests/run_commit.rstools/New-BetaPackage.ps1(打包,非测试 — 需 Rust 侧或明确保留)tools/Test-BetaPackage.ps1(同上)ci.yml · cross-platform-smoke(ubuntu/macos,#53 T8 的前提)
install-code-intel-pipeline.ps1test-hospital-trust-contract.ps1test-atomic-capability-contract.ps1test-python314-pon-compatibility.ps1test-multi-agent-merge-queue.ps1test-code-intel-pipeline.ps1tools/check-hardcoded-paths.ps1release.yml · release-windows
install-code-intel-pipeline.ps1test-github-solution-research.ps1test-project-discovery.ps1test-project-management-support.ps1test-skill-development-benchmark.ps1test-code-intel-pipeline.ps1install-code-intel-pipeline.ps1+code-intel.ps1— 发布物是否还该带 PS1,票内决parity-observe.yml
install-code-intel-pipeline.ps1test-ps1-rust-parity.ps1— 最后一个删:它是本票全程的闸门,调用点归零后才退场出口
paths:过滤器与 PSScriptAnalyzer 文件清单不算执行)run-code-intel.ps1、Invoke-SentruxAgentTool.ps1删除或 ≤50 行 shim关系