ideate-notes

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Generate Substack Note Ideas

生成Substack Note创意

Overview

概述

This orchestrator scans published content across YouTube and Substack, then delegates ideation to
creator-stack:extract-ideas
with the ideation reference file. It handles source fetching, processed-log management, and output persistence -- all actual idea generation logic is delegated to the foundation skill.
This skill sits upstream of
creator-stack:write-note
-- it produces a curated list of note ideas, while
write-note
writes the full note from a selected idea.
Core Principle: This is a thin orchestrator. Never generate ideas manually. Always delegate to
creator-stack:extract-ideas
via
references/substack-notes-ideation.md
. This skill manages the source-scanning workflow, duplicate prevention, and output files only.
这个编排器会扫描YouTube和Substack上的已发布内容,然后借助创意参考文件将创意生成任务委托给
creator-stack:extract-ideas
。它负责处理源内容获取、已处理日志管理和输出持久化——所有实际的创意生成逻辑都由基础技能处理。
该技能位于
creator-stack:write-note
的上游——它生成经过筛选的笔记创意列表,而
write-note
则根据选定的创意撰写完整的笔记。
核心原则:这是一个轻量编排器。绝不手动生成创意。始终通过
references/substack-notes-ideation.md
委托给
creator-stack:extract-ideas
。此技能仅管理源扫描工作流、重复内容预防和输出文件。

When to Use

使用场景

Use this skill when:
  • Generating a batch of Substack Note ideas from published content
  • Finding new note topics between newsletter issues
  • Maintaining a consistent Notes posting cadence
  • Mining existing content for repurposable note angles
在以下场景使用此技能:
  • 从已发布内容中批量生成Substack Note创意
  • 在新闻通讯刊期之间寻找新的笔记主题
  • 保持稳定的Notes发布节奏
  • 从现有内容中挖掘可复用的笔记角度

Prerequisites

前置条件

Optional: YouTube MCP tools (
search_videos
,
get_video_details
,
get_video_transcript
,
get_video_comments
) for scanning the user's YouTube channel. If unavailable, the workflow falls back to web search.
Optional: An existing
./substack/notes/processed-log.md
file. If it does not exist, the workflow creates it in Step 0.
可选:用于扫描用户YouTube频道的YouTube MCP工具(
search_videos
get_video_details
get_video_transcript
get_video_comments
)。如果不可用,工作流将回退到网页搜索。
可选:已存在的
./substack/notes/processed-log.md
文件。如果不存在,工作流将在步骤0中创建它。

Workflow

工作流

Execute all steps below in order.
按顺序执行以下所有步骤。

Step 0: Load Processed Log and Content Bank

步骤0:加载已处理日志和内容库

Read
./substack/notes/processed-log.md
to determine which sources have already been scanned.
If file exists:
  • Parse the YouTube Videos table to get a list of already-processed video IDs
  • Parse the Newsletter Issues table to get a list of already-processed issue URLs
  • Parse the Substack Notes Scanned table for the last scan date
If file does not exist:
  • Create the
    ./substack/notes/
    directory if it does not exist
  • Create the file with the empty template (see Output Structure below -- headers only, no data rows)
Read
./substack/notes/ideas.md
(the content bank) if it exists:
  • Tally pending ideas per type to identify which types need new ideas
  • Tally high-converter vs high-engagement pending ideas to identify conversion gaps
  • Feed all existing ideas (any status) to Step 4 for duplicate prevention
  • Report the current bank inventory to the user: "Content bank has X pending ideas across Y types. Types needing ideas: [list]."
If content bank does not exist:
  • Create it with the empty template (see Output Structure below -- type headers only, no ideas)
读取
./substack/notes/processed-log.md
以确定哪些源内容已被扫描。
如果文件存在
  • 解析YouTube视频表格,获取已处理的视频ID列表
  • 解析新闻通讯刊期表格,获取已处理的刊期URL列表
  • 解析Substack Notes已扫描部分,获取上次扫描日期
如果文件不存在
  • 如果
    ./substack/notes/
    目录不存在则创建它
  • 使用空模板创建文件(见下文输出结构——仅包含表头,无数据行)
读取已存在的
./substack/notes/ideas.md
(内容库):
  • 统计每种类型的待处理创意数量,确定哪些类型需要新创意
  • 统计高转化与高互动的待处理创意数量,找出转化缺口
  • 将所有现有创意(无论状态)传入步骤4以预防重复
  • 向用户报告当前内容库库存:“内容库共有X个待处理创意,涵盖Y种类型。需要补充创意的类型:[列表]。”
如果内容库不存在
  • 使用空模板创建它(见下文输出结构——仅包含类型表头,无创意)

Step 1: Fetch Published YouTube Content

步骤1:获取已发布的YouTube内容

Use YouTube MCP tools to find recent videos from the user's channel.
  1. Use
    search_videos
    to find the user's recent videos
  2. Compare video IDs against the processed log -- identify new/unprocessed videos
  3. For each new video:
    • Use
      get_video_details
      for title, description, and stats
    • Use
      get_video_transcript
      for the full transcript
    • Use
      get_video_comments
      for top comments (source of audience questions and misconceptions)
  4. Collect all new video material for Step 4
If YouTube MCP tools are unavailable:
  • Fall back to web search for the user's YouTube channel
  • Gather what video titles, descriptions, and topics are available from search results
If no new videos are found:
  • Note this and continue -- Steps 2 and 3 may still produce source material
使用YouTube MCP工具查找用户频道的近期视频。
  1. 使用
    search_videos
    查找用户的近期视频
  2. 将视频ID与已处理日志对比——识别新的/未处理的视频
  3. 对于每个新视频:
    • 使用
      get_video_details
      获取标题、描述和统计数据
    • 使用
      get_video_transcript
      获取完整字幕
    • 使用
      get_video_comments
      获取热门评论(受众问题和误解的来源)
  4. 收集所有新视频素材用于步骤4
如果YouTube MCP工具不可用
  • 回退到网页搜索用户的YouTube频道
  • 从搜索结果中收集可用的视频标题、描述和主题
如果未找到新视频
  • 记录此情况并继续——步骤2和3仍可能生成源素材

Step 2: Fetch Published Substack Content

步骤2:获取已发布的Substack内容

Use web fetch to scan the user's Substack archive and Notes feed.
  1. Web fetch the user's Substack archive page (e.g.,
    https://{subdomain}.substack.com/archive
    )
  2. Compare issue URLs against the processed log -- identify new/unprocessed issues
  3. For each new issue: web fetch the full issue content
  4. Web fetch the user's Substack Notes feed for gap analysis and posted-notes history
  5. Collect all new newsletter and notes material for Step 4
If no new issues are found:
  • Note this and continue -- the Notes feed, web trends, and YouTube content may still produce ideas
使用网页抓取扫描用户的Substack存档和Notes动态。
  1. 网页抓取用户的Substack存档页面(例如:
    https://{subdomain}.substack.com/archive
  2. 将刊期URL与已处理日志对比——识别新的/未处理的刊期
  3. 对于每个新刊期:网页抓取完整的刊期内容
  4. 网页抓取用户的Substack Notes动态用于缺口分析和已发布笔记历史
  5. 收集所有新的新闻通讯和Notes素材用于步骤4
如果未找到新刊期
  • 记录此情况并继续——Notes动态、网络趋势和YouTube内容仍可能生成创意

Step 3: Fetch Web Trends

步骤3:获取网络趋势

Use web search to find trending topics in the user's niche.
  1. Search for trending topics, discussions, and recent developments relevant to the user's content area
  2. Identify timely angles that could inform note ideas
  3. Collect trend findings for Step 4
This step always runs regardless of whether new sources were found in Steps 1-2. Trending topics provide timely note ideas even when no new content has been published.
使用网页搜索查找用户所在领域的热门话题。
  1. 搜索与用户内容领域相关的热门话题、讨论和最新动态
  2. 识别可用于笔记创意的时效性角度
  3. 收集趋势发现用于步骤4
无论步骤1-2是否找到新源,此步骤始终执行。即使没有新内容发布,热门话题也能提供时效性的笔记创意。

Step 4: Invoke
creator-stack:extract-ideas
with Ideation Reference

步骤4:调用
creator-stack:extract-ideas
并传入创意参考

MANDATORY: Invoke
creator-stack:extract-ideas
with
references/substack-notes-ideation.md
to generate structured note ideas.
Provide all source material gathered in Steps 0-3:
  • New YouTube video transcripts, titles, descriptions, and top comments (from Step 1)
  • New newsletter issue content (from Step 2)
  • Past Substack Notes history (from Step 2, for gap analysis)
  • Web trend findings (from Step 3)
  • Previously generated ideas from
    ideas.md
    (from Step 0, for duplicate prevention)
The ideate skill applies the ideation framework and returns structured ideas with topic, note type, source, pitch, and strategic rationale.
NOTE: All ideation logic -- source-to-idea extraction, note-type matching, angle generation, duplicate filtering -- lives in the reference file. Do not implement any of this in the orchestrator.
强制要求:调用
creator-stack:extract-ideas
并传入
references/substack-notes-ideation.md
以生成结构化的笔记创意。
提供步骤0-3中收集的所有源素材:
  • 新YouTube视频的字幕、标题、描述和热门评论(来自步骤1)
  • 新新闻通讯刊期的内容(来自步骤2)
  • 过往Substack Notes历史(来自步骤2,用于缺口分析)
  • 网络趋势发现(来自步骤3)
  • 来自
    ideas.md
    的已生成创意(来自步骤0,用于预防重复)
创意生成技能会应用创意框架,返回包含主题、笔记类型、来源、切入点和战略依据的结构化创意。
注意:所有创意生成逻辑——从源内容到创意的提取、笔记类型匹配、角度生成、重复内容过滤——都在参考文件中。不要在编排器中实现任何此类逻辑。

Step 5: Present Ideas to User

步骤5:向用户展示创意

Present the batch of ideas (5-10) in the structured format from the ideation reference.
Each idea includes:
  • Topic -- what the note is about
  • Type -- suggested note type (from the
    write-note
    type taxonomy)
  • Source -- which source content inspired this idea
  • Pitch -- one-line description of the note angle
  • Rationale -- why this idea is strategically sound
The user can:
  1. Approve the batch -- all ideas are saved
  2. Remove specific ideas -- selected ideas are dropped before saving
  3. Request more ideas -- return to Step 4 with additional guidance
CRITICAL: Do not save any output until the user approves. Present and wait.
以创意参考文件中的结构化格式展示一批创意(5-10个)。
每个创意包含:
  • 主题——笔记的核心内容
  • 类型——建议的笔记类型(来自
    write-note
    的类型分类)
  • 来源——启发此创意的源内容
  • 切入点——笔记角度的单行描述
  • 依据——此创意具备战略价值的原因
用户可以:
  1. 批准整批创意——保存所有创意
  2. 移除特定创意——在保存前删除选定的创意
  3. 请求更多创意——带着额外指导返回步骤4
关键:在用户批准前不要保存任何输出。先展示创意并等待用户操作。

Step 6: Save to Content Bank

步骤6:保存到内容库

After user approval, update two files:
1. File approved ideas into
./substack/notes/ideas.md
by type:
  • For each approved idea, add it under the matching note type section
  • Use the content bank idea format (Topic, Status: pending, Source, Pitch, Rationale, Conversion, Added date)
  • Place new ideas at the bottom of each type section (newest last)
2. Update Quick Stats header:
  • Recalculate total pending/drafted/published counts
  • Update "Last ideation run" date
  • Recalculate "Types needing ideas" (types with 0 pending ideas)
3. Update
./substack/notes/processed-log.md
:
  • Add a row for each new YouTube video scanned (video ID, title, scan date, ideas generated count)
  • Add a row for each new newsletter issue scanned (URL, title, scan date, ideas generated count)
  • Update the Substack Notes Scanned section with the latest scan date and gap analysis summary
用户批准后,更新两个文件:
1. 按类型将已批准的创意存入
./substack/notes/ideas.md
  • 对于每个已批准的创意,将其添加到匹配的笔记类型部分下
  • 使用内容库创意格式(主题、状态:待处理、来源、切入点、依据、转化潜力、添加日期)
  • 将新创意添加到每个类型部分的末尾(最新的在最后)
2. 更新快速统计表头:
  • 重新计算待处理/草稿/已发布的总数
  • 更新“上次创意生成运行日期”
  • 重新计算“需要补充创意的类型”(待处理创意为0的类型)
3. 更新
./substack/notes/processed-log.md
  • 为每个新扫描的YouTube视频添加一行(视频ID、标题、扫描日期、生成创意数量)
  • 为每个新扫描的新闻通讯刊期添加一行(URL、标题、扫描日期、生成创意数量)
  • 在Substack Notes已扫描部分更新最新扫描日期和缺口分析摘要

Step 7: Handoff Suggestion

步骤7:交接建议

Inform the user they can pick any idea and invoke
creator-stack:write-note
to write the full note.
Do NOT automatically invoke
write-note
. This skill generates ideas only -- the user decides when and which idea to execute.
告知用户可以选择任意创意并调用
creator-stack:write-note
来撰写完整的笔记。
不要自动调用
write-note
。此技能仅生成创意——由用户决定何时以及撰写哪个创意。

Output Structure

输出结构

Content Bank (
./substack/notes/ideas.md
)

内容库(
./substack/notes/ideas.md

The content bank organizes ideas by note type for easy retrieval during writing sessions. Ideas flow from ideation runs into type-organized sections with status tracking.
markdown
undefined
内容库按笔记类型组织创意,便于在撰写会话中快速检索。创意从生成流程流入按类型组织的部分,并带有状态跟踪。
markdown
undefined

Substack Notes Content Bank

Substack Notes Content Bank

Quick Stats

Quick Stats

  • Total pending: 0 | Drafted: 0 | Published: 0
  • Last ideation run: YYYY-MM-DD
  • Types needing ideas: [list types with 0 pending ideas]

  • Total pending: 0 | Drafted: 0 | Published: 0
  • Last ideation run: YYYY-MM-DD
  • Types needing ideas: [list types with 0 pending ideas]

Single-Punch Wisdom

Single-Punch Wisdom

Income Proof Story

Income Proof Story

Pattern Observation

Pattern Observation

Contrarian Statement

Contrarian Statement

Problem → Solution

Problem → Solution

Build-in-Public Update

Build-in-Public Update

List-Based Tactical

List-Based Tactical

Vulnerable Personal Story

Vulnerable Personal Story

Newsletter Teaser

Newsletter Teaser

Direct Advice

Direct Advice


Each idea within a type section uses this format:

```markdown

每个类型部分中的创意使用以下格式:

```markdown

[Specific topic in 5-10 words]

[5-10字的具体主题]

Status: pending Source: [YouTube — "Title" (video ID) | Newsletter — "Title" (URL) | Web trend — description] Pitch: [One sentence describing the note's core message] Rationale: [Why this idea is worth posting — engagement potential, gap it fills, timeliness] Conversion: [High Converter | High Engagement | Both | Moderate] Added: YYYY-MM-DD

**Status values:**
- `pending` — idea generated but not yet written
- `drafted` — note has been drafted via `creator-stack:write-note`
- `published` — note has been published to Substack
Status: pending Source: [YouTube — "Title" (video ID) | Newsletter — "Title" (URL) | Web trend — description] Pitch: [描述笔记核心信息的一句话] Rationale: [此创意值得发布的原因——互动潜力、填补的缺口、时效性] Conversion: [High Converter | High Engagement | Both | Moderate] Added: YYYY-MM-DD

**状态值:**
- `pending`——创意已生成但尚未撰写
- `drafted`——笔记已通过`creator-stack:write-note`生成草稿
- `published`——笔记已发布到Substack

Processed Log (
./substack/notes/processed-log.md
)

已处理日志(
./substack/notes/processed-log.md

markdown
undefined
markdown
undefined

Processed Content Log

Processed Content Log

YouTube Videos

YouTube Videos

Video IDTitleScannedIdeas Generated
Video IDTitleScannedIdeas Generated

Newsletter Issues

Newsletter Issues

URLTitleScannedIdeas Generated
URLTitleScannedIdeas Generated

Substack Notes Scanned

Substack Notes Scanned

Last Scan DateNotes ReviewedGap Analysis
undefined
Last Scan DateNotes ReviewedGap Analysis
undefined

Quality Checklist

质量检查清单

Verify completion before finalizing:
  • Processed log loaded or created (Step 0)
  • Content bank loaded and inventory reported (Step 0)
  • YouTube videos scanned via MCP tools or web search fallback (Step 1)
  • Substack newsletter issues scanned via web fetch (Step 2)
  • Web trends gathered (Step 3)
  • creator-stack:extract-ideas
    invoked with
    references/substack-notes-ideation.md
    (Step 4)
  • Ideas presented to user for approval (Step 5)
  • Approved ideas filed by type in content bank
    ./substack/notes/ideas.md
    (Step 6)
  • Quick Stats updated in content bank (Step 6)
  • Processed log updated with newly scanned sources (Step 6)
  • Handoff to
    creator-stack:write-note
    suggested (Step 7)
完成后验证以下项:
  • 已加载或创建已处理日志(步骤0)
  • 已加载内容库并报告库存(步骤0)
  • 已通过MCP工具或网页搜索回退扫描YouTube视频(步骤1)
  • 已通过网页抓取扫描Substack新闻通讯刊期(步骤2)
  • 已收集网络趋势(步骤3)
  • 已传入
    references/substack-notes-ideation.md
    调用
    creator-stack:extract-ideas
    (步骤4)
  • 已向用户展示创意并等待批准(步骤5)
  • 已将已批准的创意按类型存入内容库
    ./substack/notes/ideas.md
    (步骤6)
  • 已更新内容库中的快速统计(步骤6)
  • 已更新已处理日志中的新扫描源(步骤6)
  • 已建议交接给
    creator-stack:write-note
    (步骤7)

Common Pitfalls to Avoid

需避免的常见陷阱

  1. Generating ideas manually: All ideation logic lives in the ideate reference file. Delegate to
    creator-stack:extract-ideas
    -- do not implement idea generation in this orchestrator.
  2. Re-scanning processed sources: Always check the processed log first. Skip sources already scanned.
  3. Ignoring the notes history: Past notes feed gap analysis. Always load them in Step 2.
  4. Skipping web trends: Trending topics provide timely ideas even when no new content exists. Step 3 always runs.
  5. Auto-invoking write-note: This skill generates ideas only. The user decides when to write.
  6. Saving before user approval: Always present ideas and get explicit approval before writing to files.
  1. 手动生成创意:所有创意生成逻辑都在创意参考文件中。委托给
    creator-stack:extract-ideas
    ——不要在编排器中实现创意生成。
  2. 重复扫描已处理的源:始终先检查已处理日志。跳过已扫描的源。
  3. 忽略Notes历史:过往Notes动态用于缺口分析。始终在步骤2中加载它们。
  4. 跳过网络趋势:即使没有新内容发布,热门话题也能提供时效性创意。步骤3始终执行。
  5. 自动调用write-note:此技能仅生成创意。由用户决定何时撰写。
  6. 未获批准就保存:始终先展示创意并获得明确批准后再写入文件。