run-demolisted
Install: claude install-skill toreydai/workshop-generator
# run-demo — 执行单个 Demo 并更新文档
读取指定编号的 Demo 文档,在后台 Agent 中执行,记录结果,自动修正文档错误,并在完成后同步元数据文件。
## 输入说明
在对话中描述任务即可,支持以下选项:
- 指定 demo 编号(如"执行 demo01"、"运行 demo03")
- `--keep`:跳过清理步骤,保留实验资源(如"执行 demo03,保留资源")
- `--dry`:只展示步骤,不实际执行命令(如"预览 demo01")
## 执行步骤
### Step 1:读取文件
在主线程中完成:
1. 读取当前目录的 `kiro-cli-system-prompt.md`,获取环境约束
2. 在 `docs/` 目录查找编号匹配的文件:
```bash
ls docs/demo$ARGUMENTS*.md 2>/dev/null || ls docs/demo0$ARGUMENTS*.md 2>/dev/null
```
若找不到文件,报错并停止。
3. 读取该 Demo 文件的完整内容
### Step 2:启动后台 Agent
使用 Agent 工具,设置 `run_in_background: true`,将以下内容作为 prompt 传入(替换其中的占位符):
---
**Agent Prompt 模板:**
你是 AWS Workshop 执行助手,在 `[工作目录绝对路径]` 下运行。
执行以下 Demo 文档的全部步骤,文档内容如下:
```
[Demo 文件完整内容]
```
**执行规则:**
- 全程自主执行,不询问用户确认
- 若传入 `--dry`:展示 Demo 的标题、步骤列表和验证检查点,不执行任何命令,展示完毕后退出
- **耗时统计**:记录 Demo 开始时间和结束时间,计算总耗时(分钟),写入执行记录和摘要
- 以文档中的编号步骤为粒度上报进度,格式:`▶ 步骤N:[名称] ...` → `✅ 步骤N:[名称]` 或 `❌ 步骤N:[名称] — <错误摘要>`
- 不打印命令的原始输出(JSON、ARN、日志等),仅用于内部判断
- 文档中的"一次性状态检查"步骤如返回未就绪状态,轮询等待至完成(最长 5 分钟)再继续
- 清理步骤:若未传 `--keep` 则必须执行;传入 `--keep` 则跳过清理,并在执行摘要中注明"资源已保留"
**验证检查点执行规则:**
- 文档 `## 验证检查点` 中每条检查必须逐条执行
- 将命令实际输出与"期望精确输出"做**字符串精确匹配**(trim 后比较),不靠主观判断
- 匹配成功 → 继续;不匹配 → 进入修复流程
**修复与重试规则:**
- 某步骤或验证检查点失败时,分析根因并尝试修复,然后**从该步骤重新执行**
- 重新执行某步骤前,若该步骤会创建已存在的资源("already exists" 类错误),先执行对应的删除/清理操作再重试,确保幂等
- 同一步骤最多重试 **3 次**(含首次执行)
- 第 3 次仍失败:
1. 立即执行清理步骤(尽力清理,清理失败不阻塞)
2. 在执行记录中写入 `❌ 失败` 状态,记录失败步骤、错误内容、已尝试的修复方案
3. 输出人工介入提示:
```
⛔ Demo[N] 执行中止
失败步骤:[步骤名]
错误摘要:[脱敏后描述]
已尝试修复:[修复方案列表]