Files
everything-is-suitable/.trae/hooks/pre-agent-check.sh
T
zhangxiang 5445c343b3 chore: 参考 novavis 优化 Agent 配置体系
新增 AGENTS.md 规则(§1-§22)、Hook 脚本和可复用工具脚本:

- 重构 AGENTS.md:新增 16 条规则(任务分解、双轨验证、骨架占位禁止、
  测试命令退出码保留、工具脚本可复用、完成前验证门禁、Flaky 测试门禁等)
- 新增 .trae/hooks/:session-start / pre-agent-check / check-completeness / stop-check
- 新增 .trae/settings.json:关联 4 个 Hook 到 SessionStart/PreToolUse/PostToolUse/Stop
- 新增 scripts/:flaky-scan.sh / check-task-checklist.sh / check-issue-checklist.sh
- 调整 .gitignore:保留 hooks/settings 纳入版本控制,忽略运行时状态文件
2026-08-12 22:07:22 +08:00

73 lines
2.1 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: 写操作前根据文件路径输出 Skill 提示
# 不阻止操作,仅输出提示信息
set -euo pipefail
f="${AGENT_EDITED_FILE:-$AGENT_FILE}"
[ -z "$f" ] && exit 0
[ ! -f "$f" ] && [ ! -e "$f" ] && exit 0
basename=$(basename "$f")
# Skill 提示: 命中时输出,供 agent 决策(AGENTS.md §3 Skill-First
skill_hint() {
local name="$1"; shift
echo " → [SKILL] $name: $*"
}
# 检查 1: 算法文件 → 提示 TDD + 交叉验证
if [[ "$f" == *"/algorithms/"* ]]; then
echo ""
echo "[PRE-CHECK] 算法变更: $basename"
skill_hint "tdd" "RED-GREEN-REFACTOR 测试优先"
skill_hint "systematic-debugging" "算法结果须与传统典籍/已知实现交叉验证"
echo ""
exit 0
fi
# 检查 2: 测试文件 → 提示测试相关 skill
if [[ "$basename" == *.test.* || "$basename" == *.spec.* || "$f" == *"/__tests__/"* ]]; then
echo ""
echo "[PRE-CHECK] 测试文件变更: $basename"
skill_hint "tdd" "RED-GREEN-REFACTOR 测试优先"
skill_hint "systematic-debugging" "测试失败先定位根因再修复"
echo ""
exit 0
fi
# 检查 3: 组件文件 → 提示前端设计 skill
if [[ "$f" == *"/components/"* && "$basename" == *.vue ]]; then
echo ""
echo "[PRE-CHECK] 组件变更: $basename"
skill_hint "frontend-design" "UniApp 组件设计最佳实践"
skill_hint "impeccable" "UI 审查与视觉打磨"
echo ""
exit 0
fi
# 检查 4: 页面文件 → 提示全链路验证
if [[ "$f" == *"/pages/"* && "$basename" == *.vue ]]; then
echo ""
echo "[PRE-CHECK] 页面变更: $basename"
skill_hint "frontend-design" "页面布局与交互设计"
echo ""
exit 0
fi
# 检查 5: 国际化文件 → 提示同步所有语言
if [[ "$f" == *"/locales/"* && "$basename" == *.ts ]]; then
echo ""
echo "[PRE-CHECK] 国际化变更: $basename"
echo " → 确保同步更新所有 locales/*.ts 文件"
echo ""
exit 0
fi
# 检查 6: 文档/注释类 → 中文文档规范
if [[ "$basename" == *.md || "$basename" == *.adoc ]]; then
echo ""
echo "[PRE-CHECK] 文档变更: $basename"
skill_hint "chinese-documentation" "中文排版/术语/结构规范"
echo ""
exit 0
fi