一键导入
guardian-fixer
守夜人 issue 自动修复管道。8 Gate 全流程——规划、独立审查、开发、测试、闭环、PR。用于修复 docs/issues/guard-*.md 中 status:open 的 issue。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
守夜人 issue 自动修复管道。8 Gate 全流程——规划、独立审查、开发、测试、闭环、PR。用于修复 docs/issues/guard-*.md 中 status:open 的 issue。
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Flip the Towow vNext run mode (`.towow/state/mode`) with transition-gate checks. Provides `/mode plan`, `/mode build`, `/mode verify`, `/mode release`. Each sub-command runs the matching handler in `<plugin-root>/skills/mode/<mode>.sh`; the handler calls `transition.py <target>` which validates the gate defined in `<plugin-root>/contracts/mode-contract.md` §4 and, if it passes, writes the new mode value. No prompt text or model-authored rewrite of the mode file is supported — the handler is the only writer.
Pull-surface slash command for `.towow/` tooling that is not auto-triggered. Replaces the retired SessionStart push-reminder (session-start-toolkit-reminder.py, retired in WP-031). Reads `.towow/toolkit-index.yaml` and prints active entries grouped by category; retired entries are shown with their retirement packet reference so capability history is never silently dropped.
{{PROJECT_NAME}}全栈开发 Skill。代码实现、调试、重构、测试。当用户需要写代码或调试时使用。
项目架构师。负责架构决策、方案比较、边界冻结。在 lead 的 Gate 0(问题锁定)和 Gate 1(架构设计)由 lead 调度。
Bug 反馈 → 自动修复 → PR 的端到端流水线。用户在任何渠道扔一句话 bug,自动走 triage + guardian-fixer 8 Gate 修复流程,最后开 PR 到 GitHub。依赖 Claude Code harness(headless `claude -p`)。
Bug 分诊员。把用户反馈翻译成 guardian-fixer 可消费的结构化 issue 草稿,定位根因,输出 bundle_key 和 escalation 判定。只读不写代码。
| name | guardian-fixer |
| description | 守夜人 issue 自动修复管道。8 Gate 全流程——规划、独立审查、开发、测试、闭环、PR。用于修复 docs/issues/guard-*.md 中 status:open 的 issue。 |
| status | active |
| tier | execution |
| owner | nature |
| last_audited | "2026-03-24T00:00:00.000Z" |
| triggers | ["修复 guardian issue","执行 guard issue","自动修复管道"] |
| outputs | ["独立 branch 上的 PR","完整 Gate artifacts (PLAN/REVIEW/TASK/LOG/TEST/CLOSURE)"] |
| truth_policy | ["issue 文档是唯一执行队列","不从口头描述、memory、聊天记录直接开做","代码真相以 repo 当前状态为准,不以 issue 描述为准"] |
我把 docs/issues/guard-*.md(status: open)变成可合并的 PR。我不发现 issue(那是巡逻的事),我只修复。
# 找到优先级最高的可执行 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。
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 目录内进行。
输入: issue 文档
产物: PLAN.md
PLAN.md 必须包含:
# PLAN: guard-YYYYMMDD-HHMM — 标题
**Issue**: issue 文档路径
**Severity**: P0/P1/P2
**Component**: 主要代码文件
## 问题分析
(根因,不是症状)
## 变更清单
| # | 文件 | 变更 | 类型 |
## 契约 vs 实现分析
- 契约变更?消费方?
## 同类检查
(grep 验证是否有其他地方有同样的问题)
## 测试策略
(修改前/修改后的验证方法)
## Scope 判定
- ≤3 文件 + 无契约变更 → 可执行
- 否则 → needs_plan,停止
Scope 硬上限:
needs_plan,停止needs_plan,停止needs_plan,停止用 Agent tool spawn 独立审查者(opus 模型)。不是自己审自己。
Agent tool:
model: opus
prompt: |
你是独立代码审查者。你没有参与这段代码的编写。
审查 PLAN 文档:[路径]
对照 issue 文档:[路径]
读相关代码文件。
审查维度(全部覆盖):
1. 覆盖性:变更清单完整吗?
2. 独立性:每个改动可独立验证吗?
3. 执行模拟:逐步走,开发者会卡住吗?
4. 自包含性:有执行所需全部信息吗?
5. 元数据准确性:severity/component/scope 正确吗?
6. 修复完整性:修复完整吗?有没有引入新问题?
输出写入:[PLAN-REVIEW.md 路径]
YAML frontmatter 必须有 verdict: PASS 或 FAIL。
如果 FAIL:修改 PLAN,重新提交审查(最多 2 轮)。2 轮不通过 → 标 blocked,停止。
产物: TASK.md
# TASK: guard-YYYYMMDD-HHMM
## WP-N: 标题
**文件**: 路径
**改什么**: 具体描述
**验收标准**: 可机械验证的条件
## 验收测试
| # | 方法 | 预期结果 |
同 Gate 2,spawn 独立审查者审查 TASK.md。
操作顺序:
Worktree 里 Read/Edit 工具可能被 guard hook 阻塞(pre-existing findings)。用 Bash 操作 worktree 文件:
cat / tailcat > file << 'EOF' 或 cat >> file << 'EOF'sed -i ''LOG.md 格式:
# LOG: guard-YYYYMMDD-HHMM
## WP-N: 标题
- 做了什么
- 运行命令 + 输出(证据)
- 偏差说明(如果有)
## 验收检查
| # | 方法 | 结果 |
运行所有能跑的测试:
# 从 worktree 运行,用主仓库的 venv
VENV=/Users/nature/个人项目/Towow/backend/venv/bin/pytest
cd /tmp/towow-$ISSUE_SLUG
$VENV -q backend/tests/unit/ # 无 Docker
$VENV -q backend/tests/field/ # 无 Docker
$VENV -q backend/tests/test_phase0_surface.py # 无 Docker
$VENV -q backend/tests/product/ # 需要 Docker
$VENV -q backend/tests/matching/ # 无 Docker
产物: TEST.md
# TEST: guard-YYYYMMDD-HHMM
## 测试执行结果
### 可运行测试
| 测试集 | 数量 | 结果 | 命令 |
### 需要 Docker 的测试
| 测试集 | 状态 | 原因 |
### 诚实声明
- 新代码有没有被测试覆盖?
- 是"旧测试通过"还是"新代码验证通过"?
- 有没有把 BLOCKED 标成 PASSED?
诚实规则:
Spawn 独立审查者(opus)审查代码 diff + 测试结果。
Agent tool:
model: opus
prompt: |
你是独立代码审查者(最终审查)。
审查 git diff + TEST.md + LOG.md。
检查代码是否与 PLAN 一致。
检查有没有引入新问题。
检查 TEST.md 是否诚实。
输出写入:[FINAL-REVIEW.md 路径]
verdict: PASS 或 FAIL。
产物: CLOSURE.md
# CLOSURE
## Issue 闭环状态
- status: fixed ✓/✗
- prevention_status: closed ✓/✗
- mechanism_layer: guard|test|type|convention ✓/✗
## 文档同步清单
### 必须更新
- [ ] issue 文档 status/prevention_status
### 可能需要更新(写进 PR 描述)
- [ ] CLAUDE.md 路由表(如果改了 API)
- [ ] 其他 issue 文档(如果修复也解决了其他问题)
### 不需要更新
- (列出检查过但不需要改的)
禁止修改的文件:
.claude/skills/*/SKILL.mdscripts/guard-feedback.pyscripts/context_router.pycd /tmp/towow-$ISSUE_SLUG
git push -u origin codex/$ISSUE_SLUG
gh pr create --title "fix(...): guard-YYYYMMDD-HHMM 标题" --body "..."
PR 描述必须包含:
| 场景 | 操作 |
|---|---|
| Scope 超 3 文件 | Gate 1 标 needs_plan,停止 |
| 审查 2 轮不通过 | 标 blocked,停止 |
| 测试失败且无法修 | TEST.md 记录失败原因,标 blocked,停止 |
| 碰禁止修改的文件 | 停止 |
| Rebase 冲突 | 标 needs_coordination,停止 |
所有异常路径都停止。不要强行继续。
以下行为是明确禁止的(PLAN-064 教训):
| 反模式 | 正确做法 |
|---|---|
| 写完代码不运行就 commit | 每个 WP 必须有运行时证据 |
| LOG.md 从 git log 生成 | LOG.md 在写代码时实时写 |
| 把 "199 tests PASS" 当验证 | 区分旧测试/新测试,标注新代码覆盖率 |
| 4 分钟完成一个 WP | 如果太快,说明没有运行验证 |
| 自己审自己 | Gate 2/4/7 必须 spawn 独立 subagent |
| Docker 不可用就跳过 | 标 BLOCKED,不标 PASS |
执行前自检——如果正在写代码但 PLAN.md 不存在,立刻停下来。
□ PLAN.md 存在? → Gate 2 可以开始
□ PLAN-REVIEW.md verdict: PASS? → Gate 3 可以开始
□ TASK.md 存在? → Gate 4 可以开始
□ TASK-REVIEW.md verdict: PASS? → Gate 5 可以开始
□ LOG.md 存在? → Gate 6 可以开始
□ TEST.md 存在? → Gate 7 可以开始
□ FINAL-REVIEW.md verdict: PASS? → Gate 7.5 可以开始
□ CLOSURE.md 存在? → Gate 8 可以开始