{
  "schemaVersion": "1.0",
  "item": {
    "slug": "idea-storm",
    "name": "Idea Storm",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/c4chuan/idea-storm",
    "canonicalUrl": "https://clawhub.ai/c4chuan/idea-storm",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/idea-storm",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=idea-storm",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/notion-setup.md",
      "scripts/compare_images.py",
      "scripts/run-sandbox.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/idea-storm"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/idea-storm",
    "agentPageUrl": "https://openagent3.xyz/skills/idea-storm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/idea-storm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/idea-storm/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Idea Storm",
        "body": "工程问题的自动化 设计→验证→迭代 闭环。后台运行，不阻塞主会话。"
      },
      {
        "title": "运行架构",
        "body": "采用分段 spawn 模式：每个检查点之间的工作在独立子 agent 中运行，状态通过文件传递。\n\n主会话                              子 agent (isolated)\n  │                                    │\n  ├─ 创建 experiment.yaml              │\n  ├─ spawn(\"idea-storm: 调研+设计\") ───→ │\n  │   (继续聊天)                       ├─ Phase 2: 调研\n  │                                    ├─ Phase 3: 方案设计\n  │                                    ├─ 更新 experiment.yaml\n  │  ◄── announce 方案摘要 ────────────┤  ✅ 检查点1\n  │                                    └─ (退出)\n  │\n  ├─ 用户确认方案\n  ├─ spawn(\"idea-storm: 实现+验证\") ───→ │\n  │   (继续聊天)                       ├─ 读 experiment.yaml 恢复状态\n  │                                    ├─ Phase 4: 实现\n  │                                    ├─ Phase 5: 验证\n  │                                    ├─ Phase 6: 评估\n  │                                    ├─ 更新 experiment.yaml\n  │  ◄── announce 迭代结果 ────────────┤  ✅ 检查点2\n  │                                    └─ (退出)\n  │\n  ├─ 用户确认（继续迭代/收敛）\n  ├─ spawn(\"idea-storm: 迭代N\") ───→    ...（重复直到收敛）\n  │\n  ├─ spawn(\"idea-storm: 收敛报告\") ──→  │\n  │  ◄── announce 最终报告 ────────────┤  ✅ 检查点3\n  └─ 完成"
      },
      {
        "title": "spawn 任务模板",
        "body": "每次 spawn 时，task 中必须包含：\n\n实验状态文件路径：experiments/<id>/experiment.yaml\n当前要执行的阶段\n用户的确认/反馈内容（如有）\n\n示例：\n\nsessions_spawn(task=\"执行 idea-storm 实验。\n读取实验状态：experiments/facial-gan-20260213/experiment.yaml\n执行阶段：Phase 4-6（实现→验证→评估）\n用户反馈：方案OK，用 StyleGAN3 路线\n按 idea-storm skill 流程执行，完成后更新 experiment.yaml 并汇报结果。\")\n\n子 agent 启动后：\n\n读 idea-storm SKILL.md 获取流程指引\n读 experiment.yaml 恢复实验状态\n执行指定阶段\n更新 experiment.yaml + Notion\nannounce 结果摘要"
      },
      {
        "title": "记忆管理",
        "body": "三层存储，确保状态不丢失："
      },
      {
        "title": "层级 1：热状态 (SESSION-STATE.md)",
        "body": "主会话的 SESSION-STATE.md 记录当前活跃实验的概要：\n\nidea_lab:\n  active_experiment: \"facial-gan-20260213\"\n  experiment_path: \"experiments/facial-gan-20260213/\"\n  current_phase: \"等待用户确认检查点2\"\n  last_spawn_label: \"idea-storm-facial-gan-iter2\""
      },
      {
        "title": "层级 2：实验工作区",
        "body": "每个实验在 workspace 下有独立目录：\n\nexperiments/<experiment-id>/\n├── experiment.yaml          # 实验完整状态（核心）\n├── research/                # 调研资料\n│   └── findings.md\n├── design/                  # 方案设计\n│   └── plan.md\n├── src/                     # 实现代码\n├── data/                    # 输入数据、参考图等\n├── results/                 # 每轮验证结果\n│   ├── iter-1/\n│   ├── iter-2/\n│   └── ...\n└── report.md                # 最终报告（本地副本）"
      },
      {
        "title": "层级 3：Notion 长期记录",
        "body": "结构化实验报告，按时间和分类组织。详见 Notion 页面结构。"
      },
      {
        "title": "experiment.yaml 规范",
        "body": "实验的完整状态文件，子 agent 靠它恢复上下文：\n\nid: \"facial-gan-20260213\"\ntitle: \"用 GAN 生成面部微表情\"\ncreated: \"2026-02-13T12:00:00+08:00\"\nstatus: \"running\"  # running | paused | completed | abandoned\n\n# 当前进度\nphase: \"Phase 5: 验证\"\niteration: 2\nmax_iterations: 5\n\n# 问题定义\nproblem:\n  description: \"需要生成逼真的面部微表情动画\"\n  constraints: \"实时渲染，延迟<50ms\"\n\n# 验证配置\nvalidation:\n  mode: \"B\"  # A=图片对比 B=指标优化 C=功能验证 D=自定义\n  description: \"优化 FID score\"\n  threshold: 50\n  current_best: 67.3\n\n# 检查点记录\ncheckpoints:\n  - phase: 3\n    time: \"2026-02-13T13:00:00+08:00\"\n    status: \"approved\"\n    user_feedback: \"方案确认，用 StyleGAN3\"\n  - phase: 6\n    iteration: 1\n    time: \"2026-02-13T14:30:00+08:00\"\n    status: \"continue\"\n    user_feedback: \"FID 67.3，继续优化学习率\"\n\n# 迭代历史\niterations:\n  - round: 1\n    changes: \"初始实现，lr=0.001\"\n    result: \"FID 67.3\"\n    decision: \"继续，调整学习率\"\n  - round: 2\n    changes: \"lr=0.0003, 增加数据增强\"\n    result: \"pending\"\n\n# Notion\nnotion_page_id: \"xxx-xxx-xxx\""
      },
      {
        "title": "Phase 1: 问题定义（主会话执行）",
        "body": "用户输入工程问题或 idea。提取并确认：\n\n问题描述：要解决什么\n成功标准：怎样算解决了\n约束条件：技术栈、资源限制\n验证方式：见 验证模式\n\n如果用户没有明确给出以上信息，主动询问（不要一次问太多）。\n\n确认后：\n\n创建实验目录 experiments/<id>/\n写入 experiment.yaml\n创建 Notion 实验页面\n更新 SESSION-STATE.md\nspawn 子 agent 执行 Phase 2-3"
      },
      {
        "title": "Phase 2: 调研（子 agent）",
        "body": "偏向工程化搜索，优先级：\n\nGitHub 开源项目和实现\n技术博客、Stack Overflow、工程实践\n产品文档、API 文档\n论文（仅在工程资料不足时补充）\n\n工具：web_search + web_fetch\n\n输出：\n\nresearch/findings.md：调研结果\n更新 experiment.yaml\n更新 Notion「调研记录」"
      },
      {
        "title": "Phase 3: 方案设计（子 agent）",
        "body": "基于调研设计技术方案：\n\n整体架构\n关键技术选型\n实现步骤\n预期效果\n\n输出：\n\ndesign/plan.md：方案详情\n更新 experiment.yaml（phase → \"等待检查点1\"）\n更新 Notion「方案设计」\nannounce 方案摘要给主会话"
      },
      {
        "title": "✅ 检查点 1：方案确认（主会话）",
        "body": "用户确认后，主会话 spawn 新子 agent 执行 Phase 4-6。"
      },
      {
        "title": "Phase 4: 实现（子 agent）",
        "body": "按方案执行。可能包括：编写代码、配置环境、生成资源、调用 API。\n\n输出：\n\nsrc/ 下的实现代码\n更新 Notion「实验日志」"
      },
      {
        "title": "Phase 5: 验证（子 agent）",
        "body": "按 experiment.yaml 中定义的验证方式执行。详见 验证模式。\n\n输出：\n\nresults/iter-N/：本轮验证数据\n更新 Notion「验证结果」"
      },
      {
        "title": "Phase 6: 评估与迭代决策（子 agent）",
        "body": "根据验证结果判断：\n\n情况动作达标标记收敛，announce 结果接近达标，参数可调自动迭代参数，回到 Phase 4（不超过 max_iterations）方向有问题announce 建议换方案\n\n更新 experiment.yaml 后 announce 结果给主会话。"
      },
      {
        "title": "✅ 检查点 2：迭代确认（主会话）",
        "body": "汇报内容：\n\n本轮做了什么\n效果数据/截图\n下一步建议\n\n用户确认后 spawn 下一轮或进入收敛。"
      },
      {
        "title": "Phase 7: 收敛报告（子 agent）",
        "body": "生成最终报告：\n\nreport.md：本地完整报告\n更新 Notion 最终报告区块\nannounce 报告摘要"
      },
      {
        "title": "验证模式",
        "body": "由用户在 Phase 1 定义。"
      },
      {
        "title": "模式 A：图片对比",
        "body": "用户提供参考图 + 输入集。Agent 生成输出，与参考图对比。\n\n工具：scripts/compare_images.py（SSIM / 像素差异）或 image 工具（视觉分析）\n达标标准由用户定义"
      },
      {
        "title": "模式 B：指标优化",
        "body": "用户定义评测函数或指标，Agent 优化实现以提升指标。\n\n用户提供评测脚本或指标定义\n每轮记录指标变化\n达到阈值即收敛"
      },
      {
        "title": "模式 C：功能验证",
        "body": "用户定义测试用例或验收标准，Agent 逐项验证。"
      },
      {
        "title": "模式 D：自定义",
        "body": "用户描述验证方式，Agent 按描述执行。"
      },
      {
        "title": "Notion 实验页面结构",
        "body": "每次启动实验时创建新页面。配置见 references/notion-setup.md。\n\n📋 [实验标题] - [日期]\n├── 问题定义\n├── 调研记录\n├── 方案设计\n├── 实验日志（按迭代轮次）\n├── 验证结果（按迭代轮次）\n└── 最终报告"
      },
      {
        "title": "工具使用",
        "body": "阶段工具调研web_search, web_fetch实现Claude Code（首选）, exec, write, edit图片验证image, scripts/compare_images.py指标验证exec（运行评测脚本）NotionNotion API via exec后台运行sessions_spawn状态传递experiment.yaml 文件通知用户announce（子 agent 自动）"
      },
      {
        "title": "Claude Code 集成",
        "body": "Phase 4（实现）阶段，优先使用 Claude Code 在 Docker 沙盒中完成编码任务。"
      },
      {
        "title": "Docker 沙盒架构",
        "body": "每个实验在独立的 Docker 容器中运行 Claude Code，与宿主机隔离：\n\n宿主机                              Docker 容器 (idea-storm-sandbox)\n├── openclaw.json ──(env注入)────→  ANTHROPIC_AUTH_TOKEN / BASE_URL\n├── experiments/<id>/ ──(volume)──→ /workspace\n│                                   ├── 非 root 用户 (coder)\n│                                   ├── Claude Code CLI + --dangerously-skip-permissions\n│                                   ├── Python3 / Node.js / Git\n│                                   └── 代码写在 /workspace，自动持久化\n\n优势：\n\n完全隔离，不污染宿主机环境\n非 root 用户可用 --dangerously-skip-permissions 自动跳过权限\nAPI 配置从 openclaw.json 动态注入，换中转改一处即可\n容器用完即删，干净无残留"
      },
      {
        "title": "镜像构建",
        "body": "使用预构建的 idea-storm-sandbox 镜像。Dockerfile 位于 scripts/Dockerfile：\n\nFROM node:22-slim\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    python3 python3-pip python3-venv git curl ca-certificates \\\n    && rm -rf /var/lib/apt/lists/*\nRUN npm install -g @anthropic-ai/claude-code\nRUN useradd -m -s /bin/bash coder\nRUN mkdir -p /home/coder/.openclaw /workspace && chown -R coder:coder /workspace /home/coder\nUSER coder\nWORKDIR /workspace\nCMD [\"bash\"]\n\n构建：docker build -t idea-storm-sandbox -f scripts/Dockerfile ."
      },
      {
        "title": "调用方式",
        "body": "从 openclaw.json 动态提取 API 配置，注入容器环境变量：\n\n# 提取 API 配置\nAPI_KEY=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])\")\nBASE_URL=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])\")\n\n# 运行 Claude Code（单次任务）\ndocker run --rm -t \\\n  -e ANTHROPIC_AUTH_TOKEN=\"$API_KEY\" \\\n  -e ANTHROPIC_BASE_URL=\"$BASE_URL\" \\\n  -v experiments/<id>:/workspace \\\n  idea-storm-sandbox \\\n  bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions \"<prompt>\"'"
      },
      {
        "title": "在子 agent 中使用",
        "body": "子 agent 执行 Phase 4 时，通过 exec + pty:true 调用：\n\nexec(\n  command=\"API_KEY=$(python3 -c \\\"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])\\\") && BASE_URL=$(python3 -c \\\"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])\\\") && docker run --rm -t -e ANTHROPIC_AUTH_TOKEN=$API_KEY -e ANTHROPIC_BASE_URL=$BASE_URL -v /root/.openclaw/workspace/experiments/<id>:/workspace idea-storm-sandbox bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions \\\"<prompt>\\\"'\",\n  pty=true,\n  timeout=300\n)\n\n也可以使用辅助脚本 scripts/run-sandbox.sh 简化调用（见下方）。"
      },
      {
        "title": "Prompt 构造原则",
        "body": "给 Claude Code 的 prompt 应包含：\n\n目标：要实现什么功能\n上下文：当前项目结构、技术栈、已有代码\n约束：文件路径、命名规范、依赖限制\n验证：实现后如何验证（测试命令等）\n\n示例：\n\n基于 design/plan.md 中的方案，在当前目录实现面部微表情生成模块。\n技术栈：Python 3.11 + PyTorch + StyleGAN3\n要求：\n1. 实现 FacialExpressionGenerator 类\n2. 支持 6 种基本表情\n3. 推理延迟 < 50ms\n4. 写好单元测试\n完成后运行 pytest 确认测试通过。"
      },
      {
        "title": "迭代模式（Ralph Loop）",
        "body": "多轮迭代优化时，循环调用容器中的 Claude Code：\n\n将任务写入实验目录的 PROMPT.md\n循环调用 Docker 容器，每轮读取 PROMPT.md\n通过文件（experiment.yaml）传递迭代状态\n检查完成标记决定是否继续\n\n# 单轮实现（在容器中）\nscripts/run-sandbox.sh <experiment-id> \"$(cat experiments/<id>/PROMPT.md)\"\n\n# 宿主机验证结果\ncd experiments/<id> && python3 -m pytest\n\n# 如果失败，更新 PROMPT.md 加入错误信息，再跑一轮"
      },
      {
        "title": "何时用 Docker 沙盒 vs 宿主机直接执行",
        "body": "场景推荐创建项目脚手架、多文件编辑Docker 沙盒 (Claude Code)复杂代码重构Docker 沙盒 (Claude Code)安装未知依赖、运行不信任代码Docker 沙盒简单文件写入、小修改宿主机 OpenClaw write/edit运行已验证的命令宿主机 OpenClaw exec需要读取实验状态做决策宿主机 OpenClaw（子 agent 自身）"
      }
    ],
    "body": "Idea Storm\n\n工程问题的自动化 设计→验证→迭代 闭环。后台运行，不阻塞主会话。\n\n运行架构\n\n采用分段 spawn 模式：每个检查点之间的工作在独立子 agent 中运行，状态通过文件传递。\n\n主会话                              子 agent (isolated)\n  │                                    │\n  ├─ 创建 experiment.yaml              │\n  ├─ spawn(\"idea-storm: 调研+设计\") ───→ │\n  │   (继续聊天)                       ├─ Phase 2: 调研\n  │                                    ├─ Phase 3: 方案设计\n  │                                    ├─ 更新 experiment.yaml\n  │  ◄── announce 方案摘要 ────────────┤  ✅ 检查点1\n  │                                    └─ (退出)\n  │\n  ├─ 用户确认方案\n  ├─ spawn(\"idea-storm: 实现+验证\") ───→ │\n  │   (继续聊天)                       ├─ 读 experiment.yaml 恢复状态\n  │                                    ├─ Phase 4: 实现\n  │                                    ├─ Phase 5: 验证\n  │                                    ├─ Phase 6: 评估\n  │                                    ├─ 更新 experiment.yaml\n  │  ◄── announce 迭代结果 ────────────┤  ✅ 检查点2\n  │                                    └─ (退出)\n  │\n  ├─ 用户确认（继续迭代/收敛）\n  ├─ spawn(\"idea-storm: 迭代N\") ───→    ...（重复直到收敛）\n  │\n  ├─ spawn(\"idea-storm: 收敛报告\") ──→  │\n  │  ◄── announce 最终报告 ────────────┤  ✅ 检查点3\n  └─ 完成\n\nspawn 任务模板\n\n每次 spawn 时，task 中必须包含：\n\n实验状态文件路径：experiments/<id>/experiment.yaml\n当前要执行的阶段\n用户的确认/反馈内容（如有）\n\n示例：\n\nsessions_spawn(task=\"执行 idea-storm 实验。\n读取实验状态：experiments/facial-gan-20260213/experiment.yaml\n执行阶段：Phase 4-6（实现→验证→评估）\n用户反馈：方案OK，用 StyleGAN3 路线\n按 idea-storm skill 流程执行，完成后更新 experiment.yaml 并汇报结果。\")\n\n\n子 agent 启动后：\n\n读 idea-storm SKILL.md 获取流程指引\n读 experiment.yaml 恢复实验状态\n执行指定阶段\n更新 experiment.yaml + Notion\nannounce 结果摘要\n记忆管理\n\n三层存储，确保状态不丢失：\n\n层级 1：热状态 (SESSION-STATE.md)\n\n主会话的 SESSION-STATE.md 记录当前活跃实验的概要：\n\nidea_lab:\n  active_experiment: \"facial-gan-20260213\"\n  experiment_path: \"experiments/facial-gan-20260213/\"\n  current_phase: \"等待用户确认检查点2\"\n  last_spawn_label: \"idea-storm-facial-gan-iter2\"\n\n层级 2：实验工作区\n\n每个实验在 workspace 下有独立目录：\n\nexperiments/<experiment-id>/\n├── experiment.yaml          # 实验完整状态（核心）\n├── research/                # 调研资料\n│   └── findings.md\n├── design/                  # 方案设计\n│   └── plan.md\n├── src/                     # 实现代码\n├── data/                    # 输入数据、参考图等\n├── results/                 # 每轮验证结果\n│   ├── iter-1/\n│   ├── iter-2/\n│   └── ...\n└── report.md                # 最终报告（本地副本）\n\n层级 3：Notion 长期记录\n\n结构化实验报告，按时间和分类组织。详见 Notion 页面结构。\n\nexperiment.yaml 规范\n\n实验的完整状态文件，子 agent 靠它恢复上下文：\n\nid: \"facial-gan-20260213\"\ntitle: \"用 GAN 生成面部微表情\"\ncreated: \"2026-02-13T12:00:00+08:00\"\nstatus: \"running\"  # running | paused | completed | abandoned\n\n# 当前进度\nphase: \"Phase 5: 验证\"\niteration: 2\nmax_iterations: 5\n\n# 问题定义\nproblem:\n  description: \"需要生成逼真的面部微表情动画\"\n  constraints: \"实时渲染，延迟<50ms\"\n\n# 验证配置\nvalidation:\n  mode: \"B\"  # A=图片对比 B=指标优化 C=功能验证 D=自定义\n  description: \"优化 FID score\"\n  threshold: 50\n  current_best: 67.3\n\n# 检查点记录\ncheckpoints:\n  - phase: 3\n    time: \"2026-02-13T13:00:00+08:00\"\n    status: \"approved\"\n    user_feedback: \"方案确认，用 StyleGAN3\"\n  - phase: 6\n    iteration: 1\n    time: \"2026-02-13T14:30:00+08:00\"\n    status: \"continue\"\n    user_feedback: \"FID 67.3，继续优化学习率\"\n\n# 迭代历史\niterations:\n  - round: 1\n    changes: \"初始实现，lr=0.001\"\n    result: \"FID 67.3\"\n    decision: \"继续，调整学习率\"\n  - round: 2\n    changes: \"lr=0.0003, 增加数据增强\"\n    result: \"pending\"\n\n# Notion\nnotion_page_id: \"xxx-xxx-xxx\"\n\n核心流程\nPhase 1: 问题定义（主会话执行）\n\n用户输入工程问题或 idea。提取并确认：\n\n问题描述：要解决什么\n成功标准：怎样算解决了\n约束条件：技术栈、资源限制\n验证方式：见 验证模式\n\n如果用户没有明确给出以上信息，主动询问（不要一次问太多）。\n\n确认后：\n\n创建实验目录 experiments/<id>/\n写入 experiment.yaml\n创建 Notion 实验页面\n更新 SESSION-STATE.md\nspawn 子 agent 执行 Phase 2-3\nPhase 2: 调研（子 agent）\n\n偏向工程化搜索，优先级：\n\nGitHub 开源项目和实现\n技术博客、Stack Overflow、工程实践\n产品文档、API 文档\n论文（仅在工程资料不足时补充）\n\n工具：web_search + web_fetch\n\n输出：\n\nresearch/findings.md：调研结果\n更新 experiment.yaml\n更新 Notion「调研记录」\nPhase 3: 方案设计（子 agent）\n\n基于调研设计技术方案：\n\n整体架构\n关键技术选型\n实现步骤\n预期效果\n\n输出：\n\ndesign/plan.md：方案详情\n更新 experiment.yaml（phase → \"等待检查点1\"）\n更新 Notion「方案设计」\nannounce 方案摘要给主会话\n✅ 检查点 1：方案确认（主会话）\n\n用户确认后，主会话 spawn 新子 agent 执行 Phase 4-6。\n\nPhase 4: 实现（子 agent）\n\n按方案执行。可能包括：编写代码、配置环境、生成资源、调用 API。\n\n输出：\n\nsrc/ 下的实现代码\n更新 Notion「实验日志」\nPhase 5: 验证（子 agent）\n\n按 experiment.yaml 中定义的验证方式执行。详见 验证模式。\n\n输出：\n\nresults/iter-N/：本轮验证数据\n更新 Notion「验证结果」\nPhase 6: 评估与迭代决策（子 agent）\n\n根据验证结果判断：\n\n情况\t动作\n达标\t标记收敛，announce 结果\n接近达标，参数可调\t自动迭代参数，回到 Phase 4（不超过 max_iterations）\n方向有问题\tannounce 建议换方案\n\n更新 experiment.yaml 后 announce 结果给主会话。\n\n✅ 检查点 2：迭代确认（主会话）\n\n汇报内容：\n\n本轮做了什么\n效果数据/截图\n下一步建议\n\n用户确认后 spawn 下一轮或进入收敛。\n\nPhase 7: 收敛报告（子 agent）\n\n生成最终报告：\n\nreport.md：本地完整报告\n更新 Notion 最终报告区块\nannounce 报告摘要\n✅ 检查点 3：最终确认（主会话）\n验证模式\n\n由用户在 Phase 1 定义。\n\n模式 A：图片对比\n\n用户提供参考图 + 输入集。Agent 生成输出，与参考图对比。\n\n工具：scripts/compare_images.py（SSIM / 像素差异）或 image 工具（视觉分析）\n达标标准由用户定义\n模式 B：指标优化\n\n用户定义评测函数或指标，Agent 优化实现以提升指标。\n\n用户提供评测脚本或指标定义\n每轮记录指标变化\n达到阈值即收敛\n模式 C：功能验证\n\n用户定义测试用例或验收标准，Agent 逐项验证。\n\n模式 D：自定义\n\n用户描述验证方式，Agent 按描述执行。\n\nNotion 实验页面结构\n\n每次启动实验时创建新页面。配置见 references/notion-setup.md。\n\n📋 [实验标题] - [日期]\n├── 问题定义\n├── 调研记录\n├── 方案设计\n├── 实验日志（按迭代轮次）\n├── 验证结果（按迭代轮次）\n└── 最终报告\n\n工具使用\n阶段\t工具\n调研\tweb_search, web_fetch\n实现\tClaude Code（首选）, exec, write, edit\n图片验证\timage, scripts/compare_images.py\n指标验证\texec（运行评测脚本）\nNotion\tNotion API via exec\n后台运行\tsessions_spawn\n状态传递\texperiment.yaml 文件\n通知用户\tannounce（子 agent 自动）\nClaude Code 集成\n\nPhase 4（实现）阶段，优先使用 Claude Code 在 Docker 沙盒中完成编码任务。\n\nDocker 沙盒架构\n\n每个实验在独立的 Docker 容器中运行 Claude Code，与宿主机隔离：\n\n宿主机                              Docker 容器 (idea-storm-sandbox)\n├── openclaw.json ──(env注入)────→  ANTHROPIC_AUTH_TOKEN / BASE_URL\n├── experiments/<id>/ ──(volume)──→ /workspace\n│                                   ├── 非 root 用户 (coder)\n│                                   ├── Claude Code CLI + --dangerously-skip-permissions\n│                                   ├── Python3 / Node.js / Git\n│                                   └── 代码写在 /workspace，自动持久化\n\n\n优势：\n\n完全隔离，不污染宿主机环境\n非 root 用户可用 --dangerously-skip-permissions 自动跳过权限\nAPI 配置从 openclaw.json 动态注入，换中转改一处即可\n容器用完即删，干净无残留\n镜像构建\n\n使用预构建的 idea-storm-sandbox 镜像。Dockerfile 位于 scripts/Dockerfile：\n\nFROM node:22-slim\nRUN apt-get update && apt-get install -y --no-install-recommends \\\n    python3 python3-pip python3-venv git curl ca-certificates \\\n    && rm -rf /var/lib/apt/lists/*\nRUN npm install -g @anthropic-ai/claude-code\nRUN useradd -m -s /bin/bash coder\nRUN mkdir -p /home/coder/.openclaw /workspace && chown -R coder:coder /workspace /home/coder\nUSER coder\nWORKDIR /workspace\nCMD [\"bash\"]\n\n\n构建：docker build -t idea-storm-sandbox -f scripts/Dockerfile .\n\n调用方式\n\n从 openclaw.json 动态提取 API 配置，注入容器环境变量：\n\n# 提取 API 配置\nAPI_KEY=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])\")\nBASE_URL=$(python3 -c \"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])\")\n\n# 运行 Claude Code（单次任务）\ndocker run --rm -t \\\n  -e ANTHROPIC_AUTH_TOKEN=\"$API_KEY\" \\\n  -e ANTHROPIC_BASE_URL=\"$BASE_URL\" \\\n  -v experiments/<id>:/workspace \\\n  idea-storm-sandbox \\\n  bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions \"<prompt>\"'\n\n在子 agent 中使用\n\n子 agent 执行 Phase 4 时，通过 exec + pty:true 调用：\n\nexec(\n  command=\"API_KEY=$(python3 -c \\\"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['apiKey'])\\\") && BASE_URL=$(python3 -c \\\"import json; print(json.load(open('/root/.openclaw/openclaw.json'))['models']['providers']['cc']['baseUrl'])\\\") && docker run --rm -t -e ANTHROPIC_AUTH_TOKEN=$API_KEY -e ANTHROPIC_BASE_URL=$BASE_URL -v /root/.openclaw/workspace/experiments/<id>:/workspace idea-storm-sandbox bash -c 'cd /workspace && git init -q 2>/dev/null; claude --print --dangerously-skip-permissions \\\"<prompt>\\\"'\",\n  pty=true,\n  timeout=300\n)\n\n\n也可以使用辅助脚本 scripts/run-sandbox.sh 简化调用（见下方）。\n\nPrompt 构造原则\n\n给 Claude Code 的 prompt 应包含：\n\n目标：要实现什么功能\n上下文：当前项目结构、技术栈、已有代码\n约束：文件路径、命名规范、依赖限制\n验证：实现后如何验证（测试命令等）\n\n示例：\n\n基于 design/plan.md 中的方案，在当前目录实现面部微表情生成模块。\n技术栈：Python 3.11 + PyTorch + StyleGAN3\n要求：\n1. 实现 FacialExpressionGenerator 类\n2. 支持 6 种基本表情\n3. 推理延迟 < 50ms\n4. 写好单元测试\n完成后运行 pytest 确认测试通过。\n\n迭代模式（Ralph Loop）\n\n多轮迭代优化时，循环调用容器中的 Claude Code：\n\n将任务写入实验目录的 PROMPT.md\n循环调用 Docker 容器，每轮读取 PROMPT.md\n通过文件（experiment.yaml）传递迭代状态\n检查完成标记决定是否继续\n# 单轮实现（在容器中）\nscripts/run-sandbox.sh <experiment-id> \"$(cat experiments/<id>/PROMPT.md)\"\n\n# 宿主机验证结果\ncd experiments/<id> && python3 -m pytest\n\n# 如果失败，更新 PROMPT.md 加入错误信息，再跑一轮\n\n何时用 Docker 沙盒 vs 宿主机直接执行\n场景\t推荐\n创建项目脚手架、多文件编辑\tDocker 沙盒 (Claude Code)\n复杂代码重构\tDocker 沙盒 (Claude Code)\n安装未知依赖、运行不信任代码\tDocker 沙盒\n简单文件写入、小修改\t宿主机 OpenClaw write/edit\n运行已验证的命令\t宿主机 OpenClaw exec\n需要读取实验状态做决策\t宿主机 OpenClaw（子 agent 自身）"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/c4chuan/idea-storm",
    "publisherUrl": "https://clawhub.ai/c4chuan/idea-storm",
    "owner": "c4chuan",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/idea-storm",
    "downloadUrl": "https://openagent3.xyz/downloads/idea-storm",
    "agentUrl": "https://openagent3.xyz/skills/idea-storm/agent",
    "manifestUrl": "https://openagent3.xyz/skills/idea-storm/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/idea-storm/agent.md"
  }
}