بنقرة واحدة
harness-validate-output
输出校验技能,对照架构规则校验AI输出,确保符合分层架构、命名规范、文件结构约定
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
输出校验技能,对照架构规则校验AI输出,确保符合分层架构、命名规范、文件结构约定
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
EnjoyHarness 唯一强制入口,初始化全局状态、文件体系、技能注册表
配置文件读取和验证技能,确保用户配置正确且完整
全流程自动执行超级组合技能,编排所有16个基础技能,从用户需求到完整交付的全自动化流程
头脑风暴技能,在实现前探索用户意图、需求和设计,防止返工
实施计划执行技能,逐任务执行实施计划,支持检查点、错误恢复和进度跟踪
10倍产能提效超级组合技能,通过并行执行、智能调度、优化策略实现10倍开发效率提升
| name | harness-validate-output |
| description | 输出校验技能,对照架构规则校验AI输出,确保符合分层架构、命名规范、文件结构约定 |
| trigger_words | ["harness-validate-output","校验输出","validate","架构校验"] |
| priority | HIGH |
| dependencies | ["harness-enforce-architecture-guardrails"] |
| version | v3.0.0 |
使用 Read 工具读取:.EnjoyHarness/SKILL_REGISTRY.md
检查条件:
如果未完成:
❌ 错误: 架构护栏未执行
💡 请先运行: harness-enforce-architecture-guardrails
使用 Read 工具读取:.EnjoyHarness/ARCHITECTURE_GUARDRAILS.md
提取关键规则:
使用 Bash 工具查询:
# 获取最近修改的文件(最近5分钟内)
RECENT_FILES=$(find . -type f \( -name "*.go" -o -name "*.ts" -o -name "*.tsx" -o -name "*.py" \) -mmin -5 | grep -v ".git" | grep -v "node_modules")
echo "待校验文件列表:"
echo "$RECENT_FILES"
对每个待校验文件执行:
# 提取文件路径
FILE_PATH="{文件路径}"
# 判断文件所属层级
LAYER=$(echo "$FILE_PATH" | cut -d'/' -f2)
echo "文件: $FILE_PATH"
echo "层级: $LAYER"
使用 Grep 工具检查导入:
检查是否有违规跨层导入,确保符合架构规则。
FILE_NAME=$(basename "$FILE_PATH")
# Go文件: snake_case
if [[ "$FILE_NAME" =~ \.go$ ]]; then
if [[ ! "$FILE_NAME" =~ ^[a-z][a-z0-9_]*\.go$ ]]; then
echo "❌ Go文件命名违规: $FILE_NAME (应为 snake_case)"
fi
fi
使用 Grep 工具提取函数定义并检查命名规范。
使用 Bash 工具检查:
# 检查是否存在禁止的文件结构
FORBIDDEN_PATTERNS=("src/src/" "test/test/" "internal/internal/")
for pattern in "${FORBIDDEN_PATTERNS[@]}"; do
if find . -type d -path "*$pattern" | grep -q .; then
echo "❌ 禁止的文件结构: $pattern"
fi
done
使用 Write 工具创建文件:.EnjoyHarness/VALIDATION_REPORT.md
内容包括:
使用 Edit 工具追加内容到:.EnjoyHarness/EVENT_LOG.md
{当前时间} | OUTPUT_VALIDATION | harness-validate-output | 校验输出文件: {文件数量}个 | {SUCCESS/FAILURE}
使用 Edit 工具更新:.EnjoyHarness/GLOBAL_STATE.md
last_validation: {当前时间}
validation_status: {PASSED/FAILED}
validation_passed: {通过数量}
validation_failed: {失败数量}
使用 Edit 工具更新:.EnjoyHarness/EVENT_LOG.md
old_string: total_events: N
new_string: total_events: N+1
使用 Edit 工具更新:.EnjoyHarness/SKILL_REGISTRY.md
old_string: - [ ] harness-validate-output - 输出校验技能
new_string: - [x] harness-validate-output - 输出校验技能 ✅
使用 Bash 工具输出:
echo ""
echo "✅ harness-validate-output 完成!"
echo ""
echo "📋 校验结果:"
echo " - 校验文件数: {文件数量}"
echo " - 通过文件数: {通过数量}"
echo " - 失败文件数: {失败数量}"
echo ""
echo "🎯 下一步:"
if [ {失败数量} -gt 0 ]; then
echo " - 修复失败文件或触发 harness-handle-failure"
else
echo " - 继续执行后续技能"
fi
echo ""
本技能执行预计迭代次数: 约 10 次(Read 2次 + Write 1次 + Edit 3次 + Bash 4次)
输入: 在架构护栏未执行时运行 期望输出: 错误提示"架构护栏未执行" 验证方式: 删除 ARCHITECTURE_GUARDRAILS.md 后运行
输入: Service层文件导入UI层 期望输出: 违规导入警告 验证方式: 创建测试文件,在service层导入ui层
输入: Go文件使用kebab-case命名
期望输出: 文件命名违规警告
验证方式: 创建文件 my-test-file.go
输入: 嵌套的src目录结构
期望输出: 禁止的文件结构警告
验证方式: 创建目录 src/src/
输入: 执行校验
期望输出: 生成 VALIDATION_REPORT.md
验证方式: ls .EnjoyHarness/VALIDATION_REPORT.md
输入: 读取 GLOBAL_STATE.md
期望输出: validation_status 为 PASSED 或 FAILED
验证方式: grep "validation_status" .EnjoyHarness/GLOBAL_STATE.md
输入: 读取 EVENT_LOG.md
期望输出: 包含 OUTPUT_VALIDATION 事件
验证方式: grep "OUTPUT_VALIDATION" .EnjoyHarness/EVENT_LOG.md
输入: 所有文件符合规范 期望输出: 输出"所有文件校验通过" 验证方式: 确保所有文件符合架构规则
校验文件: 5个
- types/user.go → ✅ 层级: Types, 命名: snake_case
- config/settings.go → ✅ 层级: Config, 命名: snake_case
- repo/user_repo.go → ✅ 层级: Repo, 命名: snake_case
- service/user_service.go → ✅ 层级: Service, 命名: snake_case
- runtime/server.go → ✅ 层级: Runtime, 命名: snake_case
结果: 所有文件校验通过
输出: "✅ 所有文件校验通过"
校验文件: 2个
- service/auth_service.go → ❌ 导入 UI层 (login_form)
允许的导入: Types, Config, Repo
实际导入: UI (违规)
- ui/login_form.go → ✅ 正常
结果: 1个文件校验失败
输出: "❌ 校验失败"
建议: 修复service层导入UI层的问题