⏰ 触发层
每周三 8:00 (UTC+8) ──▶ cron: "0 8 * * 3"
每周日 8:00 (UTC+8) ──▶ cron: "0 8 * * 0"
~/.claude/scheduled-tasks/gumloop-competitive-intel/SKILL.md
│
▼
┌──────────────────────────┐
│ 加载 competitive-intel │
│ skill 定义 + 评分框架 │
└────────────┬─────────────┘
│
Step 1 · 发现新版本
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ 🌐 外部数据源 │
│ │
│ ┌──────────────────────┐ ┌──────────────────────────────┐ │
│ │ Gumloop Changelog │ │ 帮助文档 docs.gumloop.com │ │
│ │ gumloop.com/ │ │ /llms.txt │ │
│ │ changelog │ │ /core-concepts/ │ │
│ │ │ │ /features/ │ │
│ └──────────┬────────────┘ └─────────────┬────────────────┘ │
│ │ │ │
│ │ WebSearch + WebFetch │ WebFetch │
│ │ │ │
│ ▼ │ │
│ ┌──────────────────────────────────────────┼──┐ │
│ │ 去重检查 │ │ │
│ │ │ │ │
│ │ 对比 gumloop/INDEX.md 中已追踪的版本 │ │ │
│ │ │ │ │
│ │ 已追踪 29 个版本 (v7.0.0 ~ v9.10.0) │ │ │
│ │ │ │ │
│ └──────────────┬───────────────────────────┴──┘ │
│ │ │
│ ┌───────┴────────┐ │
│ │ │ │
│ 有新版本 无新版本 │
│ │ │ │
│ ▼ ▼ │
│ 继续 Step 2 创建 "无更新" 记录 │
│ 2026-06-01_无更新.md │
│ 更新 INDEX.md → 结束 │
│ │
└─────────────────────────────────────────────────────────────────────┘
Step 2 · 深度调研 + 文档存档 🔴
核心原则:每个功能必须尝试 ≥2 种搜索方式,搜不到才允许标注「暂无文档」
对每个新功能,三轮搜索 (至少执行前两轮):
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ 功能: "Reflections" ──▶ 开始三路搜索 │
│ │
│ ┌───────────────────────┐ │
│ │ 方式 A │ │
│ │ WebFetch │ │
│ │ docs.gumloop.com/ │ 直接抓文档索引, │
│ │ llms.txt │ 匹配功能名 → 找到 │
│ │ │ /core-concepts/ │
│ │ ✓ 找到映射 │ reflections.md │
│ └──────────┬────────────┘ │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────┐ │
│ │ WebFetch 抓取完整文档正文 │ │
│ │ docs.gumloop.com/core-concepts/ │ │
│ │ reflections.md │ │
│ │ │ │
│ │ 获得:概述、五步流程、四种改进类型、 │ │
│ │ 配置选项、FAQ、最佳实践 (133行英文原文) │ │
│ └──────────┬────────────────────────────┘ │
│ │ │
│ ┌──────────┴────────────────────────────┐ │
│ │ 如果 A 无结果 → 方式 B │ │
│ │ │ │
│ │ WebFetch docs.gumloop.com/ │ │
│ │ 抓导航结构 → 定位可能包含文档的页面 │ │
│ │ │ │
│ │ 如果 B 也无结果 → 方式 C │ │
│ │ │ │
│ │ WebSearch × 2: │ │
│ │ "gumloop reflections documentation" │ │
│ │ "reflections agent self-improve docs" │ │
│ └───────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
🔴 存档动作(Step 2 同步完成)
搜到的文档 → 保存到 spec_resource/ gumloop/spec/spec_resource/ ├── gumloop-docs_reflections-full.md ← 133行,来源URL+日期 ├── gumloop-docs_apify-mcp.md ← 标注 ⚠️ 内容不完整 ├── gumloop-docs_team-secrets.md └── ... gumloop/spec/spec_resource/INDEX.md ← 同步添加映射条目
文档溯源标记
| 标记 | 含义 |
|---|---|
[文档已验证] | 已抓取到完整官方文档,可逐字引用 |
[推断] | 有部分片段,逻辑推导补充 |
⚠️ 基于Changelog推断 | 无官方文档,仅根据一句话推测 |
Step 3 · 版本汇总 MD + 功能评分
输入材料 产出文件 ┌──────────────────┐ ┌────────────────────────────────────┐ │ Changelog 原文 │ │ changelog_md/ │ │ 官方描述 │ │ 2026-05-22_v9.7.0_Port-Hope.md │ │ │ │ │ │ spec_resource/ │──────▶│ 四部分结构: │ │ 存档的官方文档 │ │ 一、功能详情(每个含评分+解析) │ │ │ │ 二、竞品分析(战略/对比/点评) │ │ 评分框架 │ │ 三、统计数据 │ │ scoring-framework │ │ 四、页脚声明 │ │ .md │ └────────────────────────────────────┘ └──────────────────┘
评分环节 — 五维度框架 (仅对「新功能」评分)
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ 功能名称 战略 护城河 用户 复杂度 创新 │ 总分 判定 │
│ ───────── ── ──── ── ──── ── │ ──── ──── │
│ │
│ Reflections 3 3 3 2 2 │ 13 ✅ SPEC │
│ Queue & Steer 2 2 2 2 2 │ 10 ✅ SPEC │
│ MCP Artifacts 2 2 2 1 1 │ 8 ✅ SPEC │
│ Longer Subagents 2 2 2 1 1 │ 8 ✅ SPEC │
│ Speech-to-Text 1 1 2 1 0 │ 5 ❌ 跳过 │
│ GitLab MCP — (集成, 不评分) │ — ❌ 跳过 │
│ │
│ 阈值: 总分 ≥ 7 = [SPEC候选] → 触发 Step 6 │
│ │
└──────────────────────────────────────────────────────────────────────┘
各维度含义
| 维度 | 0 分 | 1 分 | 2 分 | 3 分 |
|---|---|---|---|---|
| 战略意义 | 例行迭代 | 补齐重要短板 | 开辟新能力维度 | 改定位/商业模式 |
| 护城河深度 | 通用功能 | 追赶竞品 | 显著差异化 | 学习飞轮/数据飞轮 |
| 用户影响面 | 极少使用 | 边缘场景 | 重度用户刚需 | 所有用户核心workflow |
| 复杂度 | — | 简单 | 中等/多交互状态 | 多子系统/新架构 |
| 范式创新度 | — | 已知模式实现 | 显著创新 | 新品类/新交互范式 |
Step 4 · 更新 index.html(竞品监控主面板)
gumloop/index.html — 双标签页结构:
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 🔍 Gumloop 竞品监控中心 最后更新: 06-01 │ │
│ │ │ │
│ │ ┌────────────┐ ┌────────────┐ ┌─────────────────┐ │ │
│ │ │ 29 个版本 │ │ 220+ 功能 │ │ 18 个深度Spec │ │ │
│ │ └────────────┘ └────────────┘ └─────────────────┘ │ │
│ │ │ │
│ │ [版本更新日志] [功能评分总览] ←── JavaScript 双标签 │ │
│ │ ═══════════ ═══════════ │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ Tab 1: 版本更新日志 (按日期倒序) │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ v9.10.0 "Atlin" 2026-05-29 │ │ │
│ │ │ 新功能 2 改进 2 ⭐⭐⭐⭐ │ │ │
│ │ │ ▸ 核心观点: 通知中心补齐协作体验... │ │ │
│ │ │ 查看完整分析 → changelog_html/v9.10.0_Atlin.html │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ ... │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
│ Tab 2: 功能评分总览 (分级排列) │
│ ┌─────────────────────────────────────────────────────────────┐ │
│ │ Tier A — 高价值 SPEC 候选 (≥9分) │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Reflections 13/13 [已有Spec] → .html │ │ │
│ │ │ Hosted Pages 11/13 [已有Spec] → .html │ │ │
│ │ │ Subagents 10/13 [已有Spec] → .html │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ Tier B — 值得关注 (7-8分) │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ Incognito Mode 8/13 [已有Spec] → .html │ │ │
│ │ │ Team Level Secrets 7/13 [已有Spec] → .html │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ └─────────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
✎ Step 4 更新动作
在 Tab 1 中插入新版本卡片(含星级、标签、链接指向 changelog_html)·
在 Tab 2 中插入新 SPEC 候选卡片(含评分、badge、spec_html 链接)·
更新三个统计数字:版本数、功能数、SPEC 候选数 ·
更新「最后更新」时间戳 ·
Badge 状态机:badge-todo "待生成 Spec" → badge-done "已有 Spec"
Step 5 · 生成版本详情 HTML
输入: changelog_md/2026-05-22_v9.7.0_Port-Hope.md 输出: changelog_html/v9.7.0_Port-Hope.html
功能→规格链接匹配
┌─────────────────────┐ ┌───────────────────────────────┐
│ 扫描 spec_md/ 目录 │ │ 匹配逻辑 │
│ │ │ │
│ spec_reflections.md │ │ "Reflections" 包含 "reflections"│
│ spec_queue-steer.md │ │ → 匹配到 reflections.html │
│ spec_subagents.md │ │ │
│ ... (18 个 spec) │ │ "Lazy Tool Loading" 无匹配 │
└─────────────────────┘ │ → 不生成链接 │
└───────────────────────────────┘
HTML 页面结构
┌──────────────────────────────────────────────────────────────────────┐
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ ██ 深色页头 ██ │ │
│ │ v9.7.0 "Port Hope" ★★★★★ │ │
│ │ 2026-05-22 · 7 项功能 · 4 个 SPEC 候选 │ │
│ │ [新功能 5] [改进 1] [集成 1] │ │
│ │ 里程碑版本——开启 Agent 学习飞轮,改变竞争格局 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 📋 功能详情卡片区 │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ #1 Introducing Reflections [新功能] │ │ │
│ │ │ 评分: 13/13 [SPEC候选] │ │ │
│ │ │ │ │ │
│ │ │ "Agents now automatically learn from past │ │ │
│ │ │ interactions..." │ │ │
│ │ │ │ │ │
│ │ │ 📖 帮助中心详解 │ │ │
│ │ │ ... (详细说明, ≥2段) │ │ │
│ │ │ │ │ │
│ │ │ 🔗 已有深度分析 → spec_html/reflections.html │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────────┐ │ │
│ │ │ #2 Queue and Steer Agent Messages [新功能] │ │ │
│ │ │ 评分: 10/13 [SPEC候选] │ │ │
│ │ │ ... │ │ │
│ │ │ 🔗 已有深度分析 → spec_html/queue-steer.html │ │ │
│ │ └──────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ... (7 个功能卡片) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 📊 竞品分析 │ │
│ │ 战略方向判断 · 与我方对比 · 深度点评 │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
└──────────────────────────────────────────────────────────────────────┘
Step 6 🔴 · 自动生成产品规格
触发条件:Step 3 中任何功能标注了 [SPEC候选](总分 ≥ 7)
原为独立定时任务,现已合并为 built-in 步骤。同一运行内顺序执行,上下文不丢。
对每个 SPEC 候选功能,执行 5 个子步骤:
6.1 生成 spec MD
输入材料: ┌────────────────────────────────────────────────────┐ │ ① 版本汇总 MD 中已有的官方描述 + 帮助中心解析 │ │ ② spec_resource/ 中存档的官方文档全文 │ │ ③ spec-generate skill 的工作流框架 │ └────────────────────────────────────────────────────┘ 输出: spec_md/spec_reflections.md ┌────────────────────────────────────────────────────┐ │ # Gumloop 功能规格 - Reflections │ │ │ │ ## 初始上下文 │ │ 产品/Gumloop · 版本/v9.7.0 · 评分/13/13 │ │ │ │ ## 1. 概览(背景 + 目标 + 3层学习系统ASCII图) │ │ ## 2. 核心机制(5步流程 + 4类改进 + Apply行为) │ │ ## 3. 功能需求(5模块 26条 FR,含优先级 P0-P2) │ │ ## 4. 用户场景(3个场景,含画像+故事+验收标准) │ │ ## 5. 竞品分析(5竞品对比表 + 4关键洞察) │ │ ## 6. 遥测(12个事件,5漏斗阶段) │ │ ## 7. 路线图(5阶段演进) │ │ ## 8. 来源参考(Changelog + 官方文档 + 抓取日期) │ └────────────────────────────────────────────────────┘
💡 关键设计决策
不是完整走 spec-generate 11步问答流程——用已抓取的官方文档作为事实输入,跳问直达完整规格。
6.2 生成 spec HTML
输入: spec_md/spec_reflections.md 输出: spec_html/reflections.html
渲染规则
| 元素 | 样式 |
|---|---|
| DOCTYPE | <!DOCTYPE html> 无反斜杠 |
| 页头 | 深色 #141413,Georgia 衬线标题 |
| 正文 | #f5f4ed 背景,#faf9f5 卡片,#c96442 accent |
| ASCII 图 | <pre class="ascii-diagram"> 深色终端背景 |
| 表格 | 深色表头 + 交替行色 + 横向滚动 |
| 场景卡片 | .scenario-card accent 色左边框 |
| CSS | 全部内联,单文件自包含 |
6.3 回写 index.html
在 Tab 2 功能评分总览中找到对应条目:
变更前: ┌──────────────────────────────────────────────────────────┐ │ <div class="score-card"> │ │ Reflections │ │ <span class="badge badge-todo">待生成 Spec</span> │ │ </div> │ └──────────────────────────────────────────────────────────┘ 变更后: ┌──────────────────────────────────────────────────────────┐ │ <div class="score-card has-spec"> │ │ <a href="spec/spec_html/reflections.html">Reflections</a>│ │ <span class="badge badge-done">已有 Spec</span> │ │ </div> │ └──────────────────────────────────────────────────────────┘
同时更新统计数字。
6.4 回写版本详情 HTML
在对应版本的功能卡片中:
变更前: ┌──────────────────────────────────────────────────────────┐ │ <h3>Introducing Reflections</h3> │ └──────────────────────────────────────────────────────────┘ 变更后: ┌──────────────────────────────────────────────────────────┐ │ <h3> │ │ <a href="../../spec/spec_html/reflections.html"> │ │ Introducing Reflections │ │ </a> │ │ </h3> │ │ <span class="spec-badge">已有深度分析 →</span> │ └──────────────────────────────────────────────────────────┘
6.5 更新 spec_resource/INDEX.md
添加映射: ┌──────────────────────────────────────────────────────────┐ │ spec_reflections.md │ │ → gumloop-docs_reflections-full.md │ │ → 2026-05-22_v9.7.0_Port-Hope.md (版本汇总) │ └──────────────────────────────────────────────────────────┘
校验清单
每次运行结束自检:
- 新版本全部发现,无遗漏
- 每个功能 ≥2 种搜索方式尝试
- 文档已存档到 spec_resource/ + INDEX.md 已更新
- 版本汇总 MD 四部分完整(详情+分析+数据+声明)
- 竞品分析有明确核心观点(不泛泛而谈)
- 推荐关注度星级 + 依据
- index.html 版本卡片完整 + 统计数据更新
- INDEX.md 同步更新
- 每个新版本生成了版本详情 HTML
- 每个 [SPEC候选] 生成了 spec MD + HTML
- index.html Tab2 对应 badge 改为「已有 Spec」
- 版本详情 HTML 对应功能添加了 spec 链接
- 文件命名符合规范
<!DOCTYPE html>无反斜杠
数据流全景 · 端到端
cron 触发
│
▼
┌──────────┐ WebSearch ┌─────────────────┐
│ Step 1 │ ───────────────▶ │ gumloop.com/ │
│ 发现 │ WebFetch │ changelog │
└────┬─────┘ └─────────────────┘
│
│ 新版本列表
▼
┌──────────┐ WebSearch×2 ┌─────────────────┐
│ Step 2 │ ───────────────▶ │ docs.gumloop.com │
│ 调研存档 │ WebFetch×2 │ │
└────┬─────┘ └────────┬────────┘
│ │
│ 官方描述+详解 │ 原始文档
│ ▼
│ ┌─────────────────┐
│ │ spec_resource/ │
│ │ 官方文档存档 │
│ └────────┬────────┘
│ │
▼ │
┌──────────┐ 评分框架 │
│ Step 3 │ ◀── scoring-framework │
│ 版本汇总 │ ◀────────────────────────┘
│ + 评分 │
└────┬─────┘
│
│ 汇总 MD
▼
┌──────────┐ ┌─────────────────┐
│ Step 4 │ ───────────────▶ │ index.html │
│ 更新主面板│ │ (主入口) │
└────┬─────┘ └─────────────────┘
│
│ 汇总 MD
▼
┌──────────┐ ┌─────────────────┐
│ Step 5 │ ───────────────▶ │ changelog_html/ │
│ 版本详情 │ │ vX.Y.Z_Code.html │
│ HTML │ └─────────────────┘
└────┬─────┘
│
│ [SPEC候选] 列表
▼
┌──────────┐
│ Step 6 🔴│
│ 自动生成 │ ──────▶ spec_md/spec_*.md
│ 产品规格 │ ──────▶ spec_html/*.html
│ │ ──────▶ index.html (回写 badge+链接)
│ │ ──────▶ changelog_html (回写 spec-badge)
└──────────┘
以 v9.7.0 为例的最终产出物
changelog_md/2026-05-22_v9.7.0_Port-Hope.md ← 版本汇总 MD changelog_html/v9.7.0_Port-Hope.html ← 版本详情 HTML spec_resource/gumloop-docs_reflections-full.md ← 官方文档存档 spec_resource/gumloop-docs_queue-steer.md ← 官方文档存档 spec_md/spec_reflections.md ← 产品规格 MD spec_md/spec_queue-steer.md ← 产品规格 MD spec_md/spec_mcp-artifacts.md ← 产品规格 MD spec_md/spec_longer-subagents.md ← 产品规格 MD spec_html/reflections.html ← 产品规格 HTML spec_html/queue-steer.html ← 产品规格 HTML spec_html/mcp-artifacts.html ← 产品规格 HTML spec_html/longer-subagents.html ← 产品规格 HTML index.html (更新: +1版本卡片, +4 SPEC卡片, stats修正) INDEX.md (更新) spec_resource/INDEX.md (更新)
文件结构总览
gumloop/
├── readme.md # 架构文档 (源)
├── readme.html # 架构文档 (HTML,本文件)
├── index.html # HTML 主页(主入口)
├── INDEX.md # Markdown 索引(备用)
├── skills/ # 技能定义
│ ├── competitive-intel.md # 竞品抓取 skill
│ ├── scoring-framework.md # 功能评分框架
│ ├── spec-generate.md # 产品规格生成 skill
│ └── scheduled-tasks/ # 定时任务定义
│ ├── gumloop-competitive-intel.md
│ └── gumloop-spec-generate.md # (已废弃,保留用于手动触发)
├── changelog/ # 竞品抓取
│ ├── changelog_md/ # 源 MD 文件
│ │ ├── 2026-03-19_v7.8.0_Moose-Jaw.md
│ │ ├── ...
│ │ └── 2026-XX-XX_无更新.md
│ └── changelog_html/ # 渲染 HTML 页面
│ ├── v9.0.0_Garibaldi.html
│ └── ...
└── spec/ # 产品规格
├── spec_md/ # 源 MD 文件
│ ├── spec_subagents.md
│ └── ...
├── spec_html/ # 渲染 HTML 页面
│ ├── subagents.html
│ └── ...
└── spec_resource/ # 官方文档存档
├── INDEX.md # 映射索引
├── gumloop-docs_agents.md
└── ...
架构决策 · 为什么 Step 6 内置而不是独立任务
之前(有问题)
cron: 三/日 8:00 cron: 三/日 9:00 ← 独立的, 无依赖
┌──────────────────┐ ┌──────────────────┐
│competitive-intel │ │ spec-generate │
│ Step 1-5 │ │ (已废弃) │
│ │ │ │
│ 产出: 汇总MD │ │ 需要: 汇总MD │ ← 但第1个任务
│ +HTML +存档 │ │ 可能还没跑完 │ 可能提前完成
└──────────────────┘ └──────────────────┘ 也可能超时
❌ 两个任务不知道对方状态, 可能错位
现在(已修复)
cron: 三/日 8:00 (唯一触发点)
┌──────────────────────────────────────────────────────────┐
│ gumloop-competitive-intel (单次运行, 顺序执行) │
│ │
│ Step 1 ──▶ Step 2 ──▶ Step 3 ──▶ Step 4 ──▶ Step 5 │
│ │ │
│ ▼ │
│ Step 6 🔴 │
│ 自动 Spec 生成 │
│ (内置, 不是独立任务) │
│ │
│ ✅ 同一上下文, 同一状态, 不会错位 │
└──────────────────────────────────────────────────────────┘
关键设计点总结
| 设计点 | 说明 |
|---|---|
| 三道防线查文档 | 方式 A (llms.txt 索引) → 方式 B (抓导航) → 方式 C (两组关键词搜索),三道都无结果才标注「暂无」,防止偷懒跳步 |
| 文档即存档 | Step 2 抓到的官方文档立即存为 spec_resource/gumloop-docs_{slug}.md,英文原文不动,带来源 URL+日期。后续 spec 中的每句话都能追溯到这份存档 |
| 评分 = 分流阀 | 五维度 13 分制,7 分线一划——≥7 自动进 Spec 流水线,<7 只保留在版本汇总里。不是每个功能都值得写 300 行规格 |
| Step 6 内置不是独立 | 独立 cron 任务之间没有状态传递,Step 1-5 万一超时或报错,Step 6 拿到的是过时数据。现在同一次运行内顺序执行,上下文不丢 |
| 回写是双向的 | Spec 生成后不只是多两个文件——index.html 的 badge 从「待生成」变「已有 Spec」、版本详情 HTML 加「已有深度分析 →」链接、统计数据全量修正。页面自愈 |
| 单文件自包含 | 所有 HTML 内联 CSS,不依赖外部样式表。copy 到任何地方都能直接打开看 |