Files
gym-manage/.agents/hooks/pre-agent-check.sh
T
zhangxiang 5c65139fd8 chore(config): 参考 novavis 完善 Agent 配置体系
- 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)
2026-08-04 12:02:12 +08:00

62 lines
2.3 KiB
Bash
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/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 3AGENTS.md §22"
echo ""
exit 0
fi