plant-seed

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Plant Seed Skill

Plant Seed Skill

Purpose

用途

Capture forward-looking ideas with trigger conditions so they resurface at the right time. Seeds carry WHY (rationale) and WHEN (trigger), making them far more valuable than bare TODO comments. Seeds are stored locally in
.seeds/
and automatically surfaced during feature-design when their trigger conditions match.
捕获带有触发条件的前瞻性想法,使其在合适的时机重新浮现。「种子」包含「原因(WHY)」和「时机(WHEN)」,这使其比单纯的TODO注释更具价值。种子会存储在本地的
.seeds/
目录中,当触发条件匹配时,会在功能设计(feature-design)过程中自动浮现。

Operator Context

操作上下文

Hardcoded Behaviors (Always Apply)

硬编码行为(始终适用)

  • CLAUDE.md Compliance: Read and follow repository CLAUDE.md before execution
  • Local Storage Only: Seeds go in
    .seeds/
    which is gitignored -- seeds are personal, not shared via version control. WHY: Different developers have different ideas and different trigger conditions; committing seeds pollutes the shared repo with personal notes.
  • No Immediate Work: Seeds are for deferred ideas. If the user describes something that should happen now, suggest creating a task or issue instead. WHY: Planting a seed for current-session work means it never gets surfaced -- it just gets forgotten in a different way.
  • Breadcrumb Discovery: Always grep for related files at capture time. WHY: Breadcrumbs preserve code references from capture time. Even if the codebase evolves, these paths help the user re-orient when the seed surfaces months later.
  • Unique IDs: Seed IDs follow the format
    seed-YYYY-MM-DD-slug
    to ensure uniqueness and chronological sorting.
  • 遵循CLAUDE.md规范:执行前请阅读并遵循仓库中的CLAUDE.md文件
  • 仅本地存储:种子会保存在
    .seeds/
    目录中,该目录已被git忽略——种子属于个人内容,不会通过版本控制共享。原因:不同开发者有不同的想法和触发条件,提交种子会将个人笔记混入共享仓库。
  • 不支持即时工作:种子用于延迟的想法。如果用户描述的是当前就应完成的工作,请建议创建任务或Issue替代。原因:为当前会话的工作种下种子意味着它永远不会被触发——只是换了一种方式被遗忘。
  • 追踪线索(Breadcrumb)发现:在捕获种子时,始终要搜索相关文件。原因:追踪线索保留了捕获时的代码引用。即使代码库演进,这些路径也能帮助用户在数月后种子浮现时重新定位。
  • 唯一ID:种子ID遵循
    seed-YYYY-MM-DD-slug
    格式,以确保唯一性并支持按时间排序。

Default Behaviors (ON unless disabled)

默认行为(启用状态,除非手动禁用)

  • Interactive Capture: Ask clarifying questions about trigger condition and scope if not provided
  • Breadcrumb Grep: Search the codebase for files related to the seed's topic
  • Confirmation Before Write: Show the complete seed to the user before saving
  • 交互式捕获:如果未提供触发条件和范围,会询问澄清问题
  • 追踪线索搜索:搜索代码库中与种子主题相关的文件
  • 写入前确认:在保存前向用户展示完整的种子内容

Optional Behaviors (OFF unless enabled)

可选行为(禁用状态,除非手动启用)

  • Batch Planting: Capture multiple seeds in one session (enable with "plant several seeds")
  • Seed Review: List and manage existing seeds (enable with "review seeds" or "list seeds")
  • 批量种植:在一个会话中捕获多个种子(通过"plant several seeds"启用)
  • 种子回顾:列出并管理现有种子(通过"review seeds"或"list seeds"启用)

What This Skill CAN Do

该技能可实现的功能

  • Capture a deferred idea with structured metadata (trigger, scope, rationale, action, breadcrumbs)
  • Search the codebase for related files to attach as breadcrumbs
  • Store seeds in
    .seeds/index.json
    with consistent structure
  • List existing seeds and their status
  • Archive seeds that have been harvested or dismissed
  • 捕获带有结构化元数据(触发条件、范围、理由、操作、追踪线索)的延迟想法
  • 搜索代码库中的相关文件并作为追踪线索附加
  • 将种子以一致的结构存储在
    .seeds/index.json
  • 列出现有种子及其状态
  • 归档已处理或已取消的种子

What This Skill CANNOT Do

该技能不可实现的功能

  • Execute the deferred work (that happens during feature-design when the seed is surfaced)
  • Automatically detect when a trigger condition is met (feature-design does fuzzy matching)
  • Share seeds across machines or developers (seeds are local by design)
  • Create TODOs, issues, or tasks (use appropriate tools for immediate work)

  • 执行延迟的工作(这会在种子浮现后的功能设计阶段进行)
  • 自动检测触发条件是否满足(功能设计阶段会进行模糊匹配)
  • 在多台机器或开发者之间共享种子(种子设计为仅本地存储)
  • 创建TODO、Issue或任务(使用合适的工具处理即时工作)

Instructions

操作步骤

Phase 1: CAPTURE

阶段1:捕获

Goal: Gather the idea, trigger condition, scope, and rationale from the user.
Step 1: Understand the idea
Extract from the user's description:
  • What (action): The specific thing to do when the time is right
  • Why (rationale): The insight or observation that motivates this idea
  • When (trigger): A human-readable string describing when this becomes relevant
If the user provides all three, proceed. If any are missing, ask:
For missing trigger condition:
When should this idea resurface? Describe the condition, e.g.:
  • "when we add user accounts"
  • "when performance optimization is needed"
  • "when the API exceeds 10 endpoints"
For missing scope:
How big is this work? Small (< 1 hour), Medium (1-4 hours), or Large (4+ hours)?
For missing rationale:
Why does this matter? What's the insight behind this idea? (e.g., "Response times degrade linearly with DB calls per request -- at 10+ endpoints the shared query pattern becomes the bottleneck")
Step 2: Generate seed ID
Format:
seed-YYYY-MM-DD-slug
  • Date is today's date
  • Slug is a short kebab-case summary of the action (3-5 words max)
Example:
seed-2026-03-22-cache-layer
Step 3: Discover breadcrumbs
Search the codebase for files related to the seed's topic. Use the Grep tool with 2-3 key terms from the seed's action and rationale. Collect up to 10 file paths as breadcrumbs.
If no files match, breadcrumbs can be empty -- the seed is still valuable without them.
Gate: Idea captured with all required fields (action, trigger, scope, rationale). Breadcrumbs discovered. Proceed to Confirm.
目标:从用户处收集想法、触发条件、范围和理由。
步骤1:理解想法
从用户描述中提取:
  • 内容(What):时机成熟时要执行的具体操作
  • 原因(Why):推动该想法的洞见或观察结果
  • 时机(When):描述该想法何时相关的自然语言字符串
如果用户提供了全部三项,则继续。如果有缺失,询问:
如果缺失触发条件
该想法应在何时浮现?请描述条件,例如:
  • "when we add user accounts"
  • "when performance optimization is needed"
  • "when the API exceeds 10 endpoints"
如果缺失范围
这项工作的规模有多大?小型(<1小时)、中型(1-4小时)还是大型(4小时以上)?
如果缺失理由
这为什么重要?该想法背后的洞见是什么?(例如:"Response times degrade linearly with DB calls per request -- at 10+ endpoints the shared query pattern becomes the bottleneck")
检查点:已捕获包含所有必填字段(操作、触发条件、范围、理由)的想法,已发现追踪线索。进入确认阶段。

Phase 2: CONFIRM

阶段2:确认

Goal: Show the complete seed to the user and get approval before writing.
Present the seed:
undefined
目标:向用户展示完整的种子内容并在保存前获得批准。
展示种子内容:
undefined

Seed: seed-YYYY-MM-DD-slug [Scope]

Seed: seed-YYYY-MM-DD-slug [Scope]

Trigger: "human-readable trigger condition" Rationale: Why this matters... Action: What to do when triggered... Breadcrumbs: file1.go, file2.py, ...
Plant this seed? [yes/no/edit]

Handle response:
- **yes**: Proceed to Write
- **no**: Discard and confirm the seed was not saved
- **edit**: Ask what to change, update fields, re-confirm

**Gate**: User approved the seed. Proceed to Write.
Trigger: "human-readable trigger condition" Rationale: Why this matters... Action: What to do when triggered... Breadcrumbs: file1.go, file2.py, ...
Plant this seed? [yes/no/edit]

处理用户响应:
- **yes**:进入写入阶段
- **no**:丢弃种子并确认未保存
- **edit**:询问需要修改的内容,更新字段后重新确认

**检查点**:用户已批准种子。进入写入阶段。

Phase 3: WRITE

阶段3:写入

Goal: Persist the seed to
.seeds/index.json
.
Step 1: Ensure directory exists
bash
mkdir -p .seeds/archived
Step 2: Read or initialize index.json
If
.seeds/index.json
exists, read it. Otherwise, initialize:
json
{
  "seeds": []
}
Step 3: Append seed
Add the new seed to the
seeds
array:
json
{
  "id": "seed-YYYY-MM-DD-slug",
  "status": "dormant",
  "planted": "YYYY-MM-DD",
  "trigger": "human-readable trigger condition",
  "scope": "Small|Medium|Large",
  "rationale": "Why this matters...",
  "action": "What to do when triggered...",
  "breadcrumbs": ["path/to/file1.go", "path/to/file2.py"]
}
Step 4: Write updated index.json
Write the complete updated index back to
.seeds/index.json
.
Step 5: Confirm to user
Seed planted: seed-YYYY-MM-DD-slug [Scope]
Trigger: "condition"
Status: dormant

This seed will surface automatically during /feature-design when the
trigger condition matches. Review all seeds with: /plant-seed "list seeds"
Gate: Seed persisted to
.seeds/index.json
. Workflow complete.

目标:将种子持久化到
.seeds/index.json
中。
步骤1:确保目录存在
bash
mkdir -p .seeds/archived
步骤2:读取或初始化index.json
如果
.seeds/index.json
存在,则读取该文件。否则,初始化:
json
{
  "seeds": []
}
步骤3:追加种子
将新种子添加到
seeds
数组中:
json
{
  "id": "seed-YYYY-MM-DD-slug",
  "status": "dormant",
  "planted": "YYYY-MM-DD",
  "trigger": "human-readable trigger condition",
  "scope": "Small|Medium|Large",
  "rationale": "Why this matters...",
  "action": "What to do when triggered...",
  "breadcrumbs": ["path/to/file1.go", "path/to/file2.py"]
}
步骤4:写入更新后的index.json
将完整的更新内容写回
.seeds/index.json
步骤5:向用户确认
Seed planted: seed-YYYY-MM-DD-slug [Scope]
Trigger: "condition"
Status: dormant

This seed will surface automatically during /feature-design when the
trigger condition matches. Review all seeds with: /plant-seed "list seeds"
检查点:种子已持久化到
.seeds/index.json
中。工作流完成。

Seed Review Mode

种子回顾模式

When the user asks to "list seeds", "review seeds", or "show my seeds":
  1. Read
    .seeds/index.json
  2. Display all dormant seeds:
undefined
当用户要求"list seeds"、"review seeds"或"show my seeds"时:
  1. 读取
    .seeds/index.json
  2. 显示所有休眠状态的种子:
undefined

Dormant Seeds (N total)

Dormant Seeds (N total)

IDScopeTriggerPlanted
seed-2026-03-22-cache-layerMediumwhen the API exceeds 10 endpoints2026-03-22
seed-2026-03-20-user-authLargewhen we add user accounts2026-03-20

3. Offer actions: "Want to activate, dismiss, or edit any seed?"
IDScopeTriggerPlanted
seed-2026-03-22-cache-layerMediumwhen the API exceeds 10 endpoints2026-03-22
seed-2026-03-20-user-authLargewhen we add user accounts2026-03-20

3. 提供操作选项:"Want to activate, dismiss, or edit any seed?"

Seed Lifecycle Actions

种子生命周期操作

Harvest: Move seed to
.seeds/archived/{seed-id}.json
, set status to
harvested
. Use when the seed's work has been incorporated into a feature.
Dismiss: Move seed to
.seeds/archived/{seed-id}.json
, set status to
dismissed
. Use when the seed is no longer relevant.
Activate: Change status from
dormant
to
active
in index.json. Use when the trigger condition has been met but work hasn't started yet.
To archive: remove the seed from
index.json
and write it as a standalone file to
.seeds/archived/{seed-id}.json
.

收获(Harvest):将种子移动到
.seeds/archived/{seed-id}.json
,设置状态为
harvested
。当种子对应的工作已整合到功能中时使用。
取消(Dismiss):将种子移动到
.seeds/archived/{seed-id}.json
,设置状态为
dismissed
。当种子不再相关时使用。
激活(Activate):在index.json中将状态从
dormant
改为
active
。当触发条件已满足但工作尚未开始时使用。
归档操作:将种子从
index.json
中移除,并作为独立文件写入
.seeds/archived/{seed-id}.json

Error Handling

错误处理

ErrorCauseSolution
.seeds/
directory doesn't exist
First seed being plantedCreate directory with
mkdir -p .seeds/archived
index.json
is malformed
Manual edit or corruptionBack up to
index.json.bak
, reinitialize with empty seeds array, warn user
Duplicate seed IDTwo seeds planted same day with same slugAppend
-2
,
-3
to slug
No breadcrumbs foundIdea is forward-looking, no related code yetPlant with empty breadcrumbs -- still valuable
User describes immediate workSeed system is for deferred workSuggest creating a task or doing the work now
错误原因解决方案
.seeds/
目录不存在
首次种植种子使用
mkdir -p .seeds/archived
创建目录
index.json
格式错误
手动编辑或损坏备份到
index.json.bak
,使用空种子数组重新初始化,并警告用户
重复种子ID同一天种植了两个slug相同的种子在slug后追加
-2
-3
未找到追踪线索想法具有前瞻性,尚无相关代码种植空追踪线索的种子——仍然有价值
用户描述即时工作种子系统用于延迟工作建议创建任务或立即处理该工作

Anti-Patterns

反模式

Anti-PatternWhy WrongDo Instead
Planting seeds for current-session workSeeds are for deferred ideas, not TODOsCreate a task or do the work now
Vague trigger like "someday" or "eventually"Cannot be matched during feature-designAsk for a specific, observable condition
Missing rationale ("it would be nice")Without WHY, the seed loses value when surfaced months laterCapture the specific insight or observation
Planting too many seeds at onceSeed fatigue -- too many dormant seeds become noiseKeep seeds focused and high-signal
Storing seeds in version controlSeeds are personal/local; committing pollutes shared repoKeep in gitignored
.seeds/
directory
反模式错误原因正确做法
为当前会话的工作种植种子种子用于延迟想法,而非TODO创建任务或立即处理该工作
模糊的触发条件如"someday"或"eventually"无法在功能设计阶段匹配要求提供具体的、可观察的条件
缺失理由(如"这样会更好")没有原因的话,种子在数月后浮现时会失去价值捕获具体的洞见或观察结果
一次性种植过多种子种子疲劳——过多休眠种子会成为噪音保持种子聚焦且高价值
将种子存储在版本控制中种子是个人/本地内容;提交会污染共享仓库保存在被git忽略的
.seeds/
目录中

Anti-Rationalization

反合理化

See core patterns.
Domain-specific for plant-seed:
RationalizationWhy WrongAction
"I'll remember this idea"You won't -- context is ephemeralPlant the seed now
"A TODO comment is enough"TODOs lack trigger conditions and rationaleUse seed for deferred work, TODO for next-session work
"The trigger is obvious"Obvious to you now, opaque in 3 monthsWrite an explicit, human-readable trigger condition
"Breadcrumbs aren't important"Code references ground the seed in the codebaseAlways grep, even if results are sparse
"This seed is too small to bother"Small seeds with good triggers have the best signal-to-noisePlant it -- small seeds are low cost, high value
参见核心模式
Plant-seed专属的反合理化:
合理化借口错误原因行动
"我会记住这个想法"你不会——上下文是短暂的立即种下种子
"一个TODO注释就足够了"TODO缺少触发条件和理由对延迟工作使用种子,对下一会话的工作使用TODO
"触发条件很明显"现在对你来说明显,3个月后就不清晰了编写明确的、自然语言描述的触发条件
"追踪线索不重要"代码引用将种子与代码库关联起来始终进行搜索,即使结果很少
"这个种子太小,不值得麻烦"带有明确触发条件的小种子具有最佳的信噪比种下它——小种子成本低、价值高

References

参考资料

  • Feature Design - Seeds are surfaced during feature-design Phase 0
  • Anti-Rationalization - Core rationalization prevention
  • Feature Design - 种子会在Feature Design的第0阶段浮现
  • Anti-Rationalization - 核心反合理化规范