- AGENTS.md: 新增 §20 工具脚本复用 / §21 分析结论复用 / §22 Flaky 门禁,更新文档配置表
- .pi/: 新增 settings.json、rules/guardrails.md、prompts/{debug,review,ship}-gym-manage.md
- .agents/: 新增 Hook 配置与 4 个 Hook 脚本(session-start/pre-agent-check/check-completeness/stop-check)
及 protocols/systematic-debugging.md(check-completeness 含接口链缺口检测)
- scripts/flaky-scan.sh: vitest shuffle 稳定性扫描(gym-manage-web)
- .gitignore: 追踪 AGENTS.md 与 .pi 配置,忽略运行时缓存(todos/taskflows-runs/tokenomy/sessions)
62 lines
2.3 KiB
Bash
62 lines
2.3 KiB
Bash
#!/usr/bin/env bash
|
||
# PreToolUse hook: 写操作前根据文件路径输出集成提醒
|
||
# 不阻止操作,仅输出提示信息
|
||
set -euo pipefail
|
||
|
||
f="${AGENT_EDITED_FILE:-$AGENT_FILE}"
|
||
[ -z "$f" ] && exit 0
|
||
[ ! -e "$f" ] && exit 0
|
||
|
||
basename=$(basename "$f")
|
||
|
||
# 检查 1: 新建/修改 Java Controller → 提醒全链路(API → Service → Web/UniApp)
|
||
if [[ "$f" == *"gym-manage-api/"*.java ]]; then
|
||
if grep -q '@RestController\|@Controller' "$f" 2>/dev/null; then
|
||
echo ""
|
||
echo "[PRE-CHECK] 修改 Java Controller: $basename"
|
||
echo " → 全链路要求(AGENTS.md §13/§14):"
|
||
echo " 1) Service 层实现业务逻辑(Controller 不直连 Repository)"
|
||
echo " 2) 同步 gym-manage-web/src/api/*.api.ts(请求路径/参数/类型)"
|
||
echo " 3) 同步 gym-manage-uniapp/api/*.js 与 coach-uniapp/api/*.js"
|
||
echo " 4) Swagger 注解齐全(@ApiOperation/@ApiModelProperty)"
|
||
echo ""
|
||
exit 0
|
||
fi
|
||
# 仅 Service/其它 Java 文件:提醒写单测
|
||
echo ""
|
||
echo "[PRE-CHECK] 修改后端 Java: $basename"
|
||
echo " → 业务逻辑改动需配套 JUnit 测试(cd gym-manage-api && mvn test -pl <模块> -am)"
|
||
echo ""
|
||
exit 0
|
||
fi
|
||
|
||
# 检查 2: 修改 Web 请求层 → 提醒同步类型与页面
|
||
if [[ "$f" == *"gym-manage-web/src/api/"*".api.ts" ]]; then
|
||
echo ""
|
||
echo "[PRE-CHECK] Web API 接口变更: $basename"
|
||
echo " → 同步更新:"
|
||
echo " 1) 接口路径/参数与后端 Controller 注解一致"
|
||
echo " 2) 类型定义与后端 DTO/VO 字段对齐(camelCase)"
|
||
echo " 3) 页面调用方(src/views、src/stores)使用新签名"
|
||
echo ""
|
||
exit 0
|
||
fi
|
||
|
||
# 检查 3: 修改 UniApp 请求层 → 提醒同步
|
||
if [[ "$f" == *"gym-manage-uniapp/api/"*.js ]] || [[ "$f" == *"gym-manage-coach-uniapp/api/"*.js ]]; then
|
||
echo ""
|
||
echo "[PRE-CHECK] UniApp API 变更: $basename"
|
||
echo " → 同步更新: 页面调用方(pages/*)+ 后端接口契约 + Web 端同名接口"
|
||
echo ""
|
||
exit 0
|
||
fi
|
||
|
||
# 检查 4: 新建/修改测试文件 → 提醒 flaky 门禁
|
||
if [[ "$f" == *".test."* ]] || [[ "$f" == *".spec."* ]] || [[ "$f" == *"Test.java" ]]; then
|
||
echo ""
|
||
echo "[PRE-CHECK] 测试文件: $basename"
|
||
echo " → Web 测试(vitest)需通过 bash scripts/flaky-scan.sh --spec <文件> --runs 3(AGENTS.md §22)"
|
||
echo ""
|
||
exit 0
|
||
fi
|