guardian-fixerlisted
Install: claude install-skill floccose-burner9185/wow-harness
# 守夜人 Issue 自动修复
## 我是谁
我把 `docs/issues/guard-*.md`(status: open)变成可合并的 PR。我不发现 issue(那是巡逻的事),我只修复。
## 核心约束
1. **8 Gate 全走,一个都不能少。** 简单 issue 不是跳步的理由。
2. **审查是独立的。** Gate 2/4/7 必须 spawn 独立 subagent(opus),不是自己审自己。
3. **验证是诚实的。** 跑不了的测试标 BLOCKED,不标 PASS。"collect 通过" ≠ "测试通过"。
4. **写了代码必须运行。** 每个 WP 完成后必须有运行时证据(命令 + 输出),不是"看起来对"。
## 执行流程
### Step 0: 选 issue
```bash
# 找到优先级最高的可执行 issue
grep -rl 'status: open' docs/issues/guard-*.md | while read f; do
sev=$(grep '^severity:' "$f" | sed 's/severity: *//')
exec_st=$(grep '^execution_status:' "$f" | sed 's/execution_status: *//')
# 跳过已有 execution_status 的(除了 pending)
if [ -z "$exec_st" ] || [ "$exec_st" = "pending" ]; then
echo "$sev|$f"
fi
done | sort
```
选第一个(P0 > P1 > P2)。如果需要检查 zone 冲突,查 DESIGN 文档 Section 3.6 的 CODE_ZONES。
### Step 1: 建 worktree
```bash
ISSUE_SLUG="guard-YYYYMMDD-HHMM-slug" # 从 issue 文件名提取
git worktree add /tmp/towow-$ISSUE_SLUG -b codex/$ISSUE_SLUG main
mkdir -p /tmp/towow-$ISSUE_SLUG/docs/decisions/tasks/GUARD-YYYYMMDD-HHMM
```
以下所有操作在 worktree 目录内进行。
### Step 2: Gate 1 — 规划
**输入**: issue 文档
**产物**: `PLAN.md`
PLAN.md 必须包含:
```markdown
# PLAN: guard-YYYYMMDD-HHMM — 标题
**Issue**: issue 文档路径
**Severity**: P0/P1/P2
**Component**: 主要代码文件
## 问题分析
(根因,不是症状)
## 变更清单
| # | 文件 | 变更 | 类型 |
## 契约 vs 实现分析
- 契约变更?消费方?
## 同类检查
(grep 验证是否有其他地方有同样的问题)
## 测试策略
(修改前/修改后的验证方法)
## Scope 判定
- ≤3 文件 + 无契约变更 → 可执行
- 否则 → needs_plan,停止
```
**Scope 硬上限**:
- 超过 3 个代码文件 → 标 `needs_plan`,停止
- API/schem