Skip to content

[DEPLOY] 核对 plan-review 1.4.1 安装缓存含 lib/engines 与 assets 子目录 #150

Description

@WooDragon

部署概述

项目 内容
目标 核对 plan-review 1.4.1 落到安装缓存后,新增的 scripts/lib/scripts/lib/engines/scripts/assets/ 三级子目录确实被带过去
范围 本机 ~/.claude/plugins/cache/cc-plugins/plan-review/1.4.1/
预计影响 纯核对,无变更

为什么需要这一步

#112 的拆分(#145 + #146)把单文件脚本变成了带两级子目录的结构:

scripts/plan-review.sh
scripts/lib/{common,plan-source,verdict,manifest}.sh
scripts/lib/engines/{agy,claude,codex,rest}.sh
scripts/assets/review-system-prompt.md

如果安装机制没把这些子目录带过去,bootstrap 会 fail-open 静默跳过审阅——216 个单测一个都抓不到,因为它们跑的是仓库工作区,路径永远存在。

这是这次重构唯一一个「单测结构性覆盖不到」的风险面。

已有证据(推断,非实测)

  • git archive HEAD 解出的树含全部 9 个新文件(已验,说明它们确实进了 git,不是被 .gitignore 漏掉)
  • git archive 解出的部署副本跑三引擎真实 e2e 全通(已验,说明 BASH_SOURCE 路径解析在部署布局下正确)
  • 缓存里 1.3.1 版本含 tests/test_helper/common-setup.bash(旁证:安装是递归拷贝子目录的,不是文件白名单)

三条加起来推断风险很低。但 claude plugin update 实际抓取那一步没有实测——核对时缓存最新只到 1.3.1,1.4.x 尚未同步。

核对步骤

阶段 1: 等 1.4.1 进缓存

  1. 触发 marketplace 同步(正常使用中会自动发生,或显式 claude plugin update
  2. 确认缓存目录出现:
    ls ~/.claude/plugins/cache/cc-plugins/plan-review/

阶段 2: 核对文件树

  1. 期望 9 个新文件全部存在:
    P=~/.claude/plugins/cache/cc-plugins/plan-review/1.4.1
    find $P/scripts -type f | sed "s|$P/||" | sort
    # 期望含:
    #   scripts/assets/review-system-prompt.md
    #   scripts/lib/common.sh
    #   scripts/lib/manifest.sh
    #   scripts/lib/plan-source.sh
    #   scripts/lib/verdict.sh
    #   scripts/lib/engines/agy.sh
    #   scripts/lib/engines/claude.sh
    #   scripts/lib/engines/codex.sh
    #   scripts/lib/engines/rest.sh
  2. 计数核对:find $P/scripts/lib $P/scripts/assets -type f | wc -l 应为 9

阶段 3: 从缓存路径实跑

  1. 直接用缓存里的脚本跑一次真实审阅(隔离状态目录,勿污染生产):
    REVIEW_COUNTER_DIR=/tmp/verify-state REVIEW_LOG_DIR=/tmp/verify-logs \
      bash $P/scripts/plan-review.sh < <payload>
  2. 断言日志里出现 verdict=,而不是 [WARNING] lib file missing or empty

判定:若出现 lib file missing or empty,说明安装机制确实漏了子目录——那是需要立刻处理的分发缺陷(改打包方式,或退回单文件)。

风险评估

风险 可能性 影响 缓解措施
安装漏子目录 → 审阅静默失效 低(1.3.1 已证递归拷贝) 高(质量门禁静默关闭且无告警) 本 issue 的阶段 3 实跑;fail-open 至少留了 [WARNING] 日志痕迹

部署后任务

  • 核对通过则关闭本 issue,并在 plan-review 私有 internals 文档记一句「安装递归拷贝子目录,已实测」
  • 核对失败则开 BUG issue,按分发缺陷处理

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions