IDE postToolUse reports tool_name as MCP:pi_subagent_*; without stripping, guard-pi-dispatch skipped shape checks. Confirmed via live pi_subagent_roles.
4.1 KiB
4.1 KiB
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 文档/规则静态
greprules:无MiniMax-M2.7-highspeed、无PROJECT.md) §8、无go test -v ./...→ PASSgit diff --check:PASSagentctl 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
用户步骤:
- 重载项目 MCP / Hooks
export CURSOR_HOOKS_PROBE=1(或在 Cursor 环境中设置)- 触发一次
pi_subagent_roles与任意 shell - 将
.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) |