# Agent 工作流遵守测试报告

> 测试日期: 2025-12-29
> 测试版本: invar-tools 1.5.0
> 测试目的: 验证 Agent 工作流强制机制有效性

## 一、测试目标

验证 Invar 框架能否有效强制 AI Agent 遵守:

1. **Check-In/Final 协议** - 会话边界可见性
2. **USBV 工作流** - 阶段可见性和顺序
3. **Skill 路由** - 触发词正确映射
4. **DX-63 合约优先** - 防止跳过 SPECIFY 阶段
5. **自动审查触发** - review_suggested 机制

---

## 二、测试方法

### 2.1 配置验证

检查生成的配置文件是否包含正确的强制语言和规则。

### 2.2 场景模拟

创建违规代码，验证 Guard 是否正确检测并阻止。

### 2.3 响应验证

检查 Guard 输出是否提供可操作的修复建议。

---

## 三、测试结果

### 3.1 Check-In/Final 协议

| 检查项 | 配置位置 | 强制语言 | 结果 |
|--------|----------|----------|------|
| Check-In 格式 | CLAUDE.md | "MUST display" | ✅ |
| Check-In 动作 | CLAUDE.md | 读取 context.md | ✅ |
| Final 格式 | CLAUDE.md | "MUST display" | ✅ |
| Final 动作 | CLAUDE.md | 执行 invar guard | ✅ |

**验证内容:**
```markdown
## Check-In (DX-54)
Your first message MUST display:
✓ Check-In: [project] | [branch] | [clean/dirty]

## Final
Your last message for an implementation task MUST display:
✓ Final: guard PASS | 0 errors, 2 warnings
```

### 3.2 USBV 阶段可见性 (DX-51)

| 阶段 | 格式 | 可见性 | 结果 |
|------|------|--------|------|
| UNDERSTAND | 阶段头 + 分析 | 可见 | ✅ |
| SPECIFY | 阶段头 + 合约 | 可见 | ✅ |
| BUILD | 仅阶段头 | 内部 | ✅ |
| VALIDATE | 阶段头 + Guard | 可见 | ✅ |

**阶段头格式:**
```
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📍 /develop → SPECIFY (2/4)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
```

### 3.3 Skill 路由触发

| 触发词 | 预期 Skill | 配置验证 | 结果 |
|--------|------------|----------|------|
| "add", "implement", "fix", "update" | /develop | ✅ | ✅ |
| "why", "explain", "investigate" | /investigate | ✅ | ✅ |
| "compare", "should we", "design" | /propose | ✅ | ✅ |
| "review", "review and fix" | /review | ✅ | ✅ |

### 3.4 DX-63 合约优先强制

| 场景 | Guard 响应 | 修复建议 | 结果 |
|------|------------|----------|------|
| 无合约函数 | missing_contract 错误 | 提供装饰器代码 | ✅ |
| 批量创建骨架 | batch_warning | 列出文件清单 | ✅ |
| 低覆盖率 | review_suggested | 建议添加合约 | ✅ |

**批量创建检测示例:**
```json
{
  "batch_warning": {
    "file_count": 5,
    "files": [
      ["src/core/formatter.py", 1, 0],
      ["src/core/parser.py", 1, 0],
      ...
    ],
    "message": "Multiple new files with low contract coverage"
  }
}
```

### 3.5 /investigate 只读约束

| 操作类型 | 状态 | 配置验证 |
|----------|------|----------|
| Edit, Write | ❌ 禁止 | ✅ |
| git commit | ❌ 禁止 | ✅ |
| Read, Glob, Grep | ✅ 允许 | ✅ |
| invar sig, map | ✅ 允许 | ✅ |

### 3.6 /review 自动循环

| 配置项 | 值 | 验证 |
|--------|-----|------|
| MAX_ROUNDS | 5 | ✅ |
| AUTO_TRANSITION | true | ✅ |
| 角色分离 | REVIEWER/FIXER | ✅ |

### 3.7 MCP 工具强制

| 任务 | 禁止 | 必须 | 验证 |
|------|------|------|------|
| 代码验证 | Bash("pytest") | invar_guard | ✅ |
| 理解结构 | Read 整个文件 | invar_sig | ✅ |
| 查找入口 | Grep "def " | invar_map | ✅ |

---

## 四、工作流遵守评分

| 维度 | 评分 | 说明 |
|------|------|------|
| Check-In/Final | 10/10 | 强制语言明确 |
| USBV 可见性 | 10/10 | 三层分离清晰 |
| Skill 路由 | 10/10 | 触发词覆盖完整 |
| DX-63 强制 | 10/10 | 多层检测机制 |
| 只读约束 | 10/10 | 操作分类明确 |
| 自动循环 | 10/10 | 角色分离完备 |
| MCP 强制 | 10/10 | 替代规则明确 |
| **总评** | **70/70** | **100%** |

---

## 五、结论

### 5.1 强制机制有效性

**所有工作流强制机制均配置正确且有效。**

### 5.2 多层防护

1. **配置层** (CLAUDE.md) - 协议和规则定义
2. **Skill 层** (SKILL.md) - 具体工作流指导
3. **Guard 层** (invar guard) - 运行时检测和阻止

### 5.3 反馈机制

- Guard 提供具体可操作的修复建议
- review_suggested 自动触发审查流程
- batch_warning 防止批量违规

---

*报告生成时间: 2025-12-29*
