- Add install_name, install_type, dir_category fields to all 62 plugin.json files to resolve name-mapping and skill-vs-command routing issues - Add install-skills.sh: idempotent cross-machine skill sync script - Routes skill→~/.claude/skills/<name>/, command→~/.claude/commands/<name>.md - rsync full skills/ directory (preserves multi-file skills like dev-test, req-deploy) - State file ~/.claude/.installed-skills.json tracks installed versions - Conflict detection: warns before overwriting locally modified files - --dry-run, --category, --force, --cleanup, --list flags - Add 9 new plugins migrated from local ~/.claude (agent-swarm, ai-chat, defect-analysis, executing-plans, finishing-branch, frontend-design, req-audit, req-lookback, req-retro) - Add update-plugin-meta.py helper used to bulk-update plugin.json - Fix siyuan SKILL.md: remove hardcoded server credentials, use env vars Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2.6 KiB
2.6 KiB
name, description
| name | description |
|---|---|
| req-lookback | 回归测试。部署后自动验证变更涉及的功能是否正常。可独立调用或由 /req done 自动触发。 |
回归测试 (lookback)
对本次部署变更的功能执行自动化验证。
执行流程
1. 获取变更文件列表
# 优先从最近合并的 PR 获取(覆盖 merge 多 commit 场景)
gh pr list --state merged --base main --limit 1 --json number,files
# 回退:git diff
git diff HEAD~1..HEAD --name-only
2. 自动发现验证项(动态推断)
读取变更文件,按类型推断需要验证什么:
| 文件类型 | 推断方式 | 验证命令 |
|---|---|---|
*.vue / *.tsx |
grep router 配置,提取对应路由路径 | curl -sf -o /dev/null -w "%{http_code}" ${SERVER}${ROUTE} |
app/api/*.py |
grep 路由装饰器 @router.get/post,提取 API 路径 |
curl -sf -o /dev/null -w "%{http_code}" ${SERVER}/api${PATH} |
app/services/*.py |
找到引用该 service 的 api 文件,提取关联 API | 同上 |
nginx.conf |
提取 location 块 | curl 各路径检查状态码 |
docker-compose.yml |
提取服务列表 | docker ps 检查容器状态 |
alembic/*.py |
提取表名 | psql -c "\d table_name" |
*.md / *.txt / SKILL.md |
纯文档 | N/A(自动通过) |
*.css / *.scss |
纯样式 | 轻量验证:页面可达即可 |
3. 执行验证
远端模式(SSH 可达时):
# 3 秒超时检测
ssh -o ConnectTimeout=3 ${EC2_USER}@${EC2_HOST} "echo ok" 2>/dev/null
# 成功 → 执行完整验证(docker ps + curl + docker logs)
降级模式(SSH 不可达时):
# 检查最近 CI run 是否成功
gh run list --repo ${OWNER}/${REPO} --limit 1 --json conclusion
# conclusion=success → PASS
4. 输出报告
## 回归测试报告
### 变更范围
| 文件 | 类型 | 推断的验证项 |
### 测试结果
| 测试项 | 方式 | 预期 | 实际 | 状态 |
### 结论: ✅ PASS / ❌ FAIL / N/A
5. 失败处理
⚠️ 回归测试失败:{失败项描述}
建议操作:
1. [回滚] git revert HEAD~1 + /req deploy(推荐,影响最小)
2. [修复] 创建 hotfix 分支修复后重新部署
3. [忽略] 标记为已知问题,继续归档
输入 1/2/3:
- 选 1 → 执行
git revert,提示用户运行/req deploy - 选 2 → 创建 hotfix 任务(ai-proj create_task),阻断归档
- 选 3 → 记录到报告,继续
任务关联
- linkRole:
test - 任务标题:
【回归】回归测试: {需求标题} - 报告附加到任务文档