Files
Agent-System/.doc/test-reports/2026-09-24-cursor-governance-hooks-test-report.md
T
weichen 476e97c993 fix(tooling): strip MCP: prefix in Cursor hook tool_name matching
IDE postToolUse reports tool_name as MCP:pi_subagent_*; without stripping,
guard-pi-dispatch skipped shape checks. Confirmed via live pi_subagent_roles.
2026-09-24 10:35:51 +00:00

4.1 KiB
Raw Blame History

Cursor 治理层扩展(rules / skills / hooks)测试报告

一、 测试背景 (Background)

PI subagent 执行器已合入 local dev(cfc80b34)。本任务补齐 Cursor 客户端治理层:修复 test-reports-standard.mdc 规则漂移、新增派发/阶段记录 skills、新增 advisory hooks、修正 agentctl/jev MCP 相对路径,并将能力分层登记进规范登记表。

二、 测试目标 (Test Objectives)

AC 目标 判定
AC1 规则无硬编码模型/无条件全量 Go/失效 §8 PASS(静态 grep)
AC2–AC3 两 skill 存在且指向权威文档 PASS
AC4 hooks ask + fail-open + probe;单元可测 PASS(29 项)
AC5 mcp.json agentctl/jev 相对路径 PASS(结构);CLI 显示 registered/needs approval(未宣称 Connection 已绿)
AC6 rules 收敛 + policy-registry 修订 PASS
AC7 unittest discover 全绿 PASS(202)

三、 测试方案与环境 (Test Plan & Environment)

  • OS:Linux;Python 3.14;工作区 .worktrees/cursor-governance-hooks-2026-09-24
  • 基线:cfc80b34a40e8de78e77a44839571bb684d405d5
  • 层级:工程脚本单元 + 文档静态;产品 Go/前端/PG/真实产品 Runner:NOT REQUIRED(无产品代码变更)

四、 预期结果 (Expected Results)

  • hook 合法放行;形状错误/裸跑/pkill -f → permission=ask
  • 异形 JSON → allow + UNRECOGNIZED_INPUT
  • 全量 scripts/tests 无回归

五、 实际测试结果与判定 (Actual Results & Evaluation)

5.1 Cursor hooks 专项

命令:python3 -B -m unittest scripts.tests.test_cursor_hooks -v

  • 29 tests OK(结构、guard-git、guard-pi-dispatch、guard-pi-shell、receipt-context、audit-session、skills)
  • 证据:unittest-discover.txt

5.2 全量工程回归

命令:python3 -B -m unittest discover -s scripts/tests -p 'test_*.py' -v

  • Ran 202 tests in 111.351s — OK(原 173 + 新增 29)
  • 判定:PASS

5.3 文档/规则静态

  • grep rules:无 MiniMax-M2.7-highspeed、无 PROJECT.md) §8、无 go test -v ./... → PASS
  • git diff --check:PASS
  • agentctl docs drift:status=ok,regressions=[]

5.4 MCP 路径

  • .cursor/mcp.json 中 agentctl/jev/pi-subagents 均使用 scripts/mcp/... 相对路径
  • CLI agent mcp list:四服务均显示 not loaded (needs approval)(已注册;加载需用户在客户端批准)。不宣称已消除 Connection failed;issue 保持 verifying

5.5 IDE probe(独立验收)

状态:pending_ide_sample — 见 probe-status.json

用户步骤:

  1. 重载项目 MCP / Hooks
  2. export CURSOR_HOOKS_PROBE=1(或在 Cursor 环境中设置)
  3. 触发一次 pi_subagent_roles 与任意 shell
  4. 将 .cursor/hook-probe.jsonl 脱敏片段归档到本 assets,再收紧 matcher

六、 自动化测试套件汇总 (Test Suite Execution)

套件 结果
unittest discover scripts/tests 202 OK
产品 PI / Go 全量 NOT REQUIRED

七、 测试结论与后续优化建议 (Conclusion & Next Steps)

达到授权交付终点(工程治理层合入 local_dev)。后续:IDE probe 采样后关闭/推进 hook 契约 issue;CLI 批准 MCP 后复核 agentctl/jev;lesson 由 candidate → validated。

相关:任务 2026-09-24-cursor-governance-hooks;ISSUE hook 契约 / 规则漂移 / MCP 路径。

八、IDE 实机复测(重启并批准 MCP 后)

项 结果
pi_subagent_roles PASS(11 roles,config_revision=subagent-models-2026-09-24-r1)
postToolUse 注入 PASS(收据 checklist;tool=MCP:pi_subagent_roles)
codegraph_explore PASS(IDE ready)
agentctl / jev IDE 未进入 IDE MCP 缓存(手动 stdio initialize 可通;另跟)
MCP: 前缀门禁漏拦 已发现并修复(见后续 commit)

证据:ide-mcp-probe-2026-09-24.json