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 纳入版本控制,忽略运行时状态文件
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#!/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
|
||||
Reference in New Issue
Block a user