关于 Science
Science 是一项将科学方法用于问题解决的 Claude 技能,适用于快速调试和产品验证。它通过明确目标、多种假设和可检验实验,提供结构化工作流。
主要功能
- 01定义目标与成功标准
- 02生成多个竞争假设
- 03设计可证伪实验
- 04测量并分析结果
- 05快速诊断与系统调查
适用场景
- 01排查软件问题
- 02测试不同提示词设计
- 03验证产品功能
- 04开展有测量的开发周期
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ danielmiessler/ lifeos --skill science安装后在 Claude Code 中输入/science确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
Templates.mdMethodology.mdExamples.mdProtocol.mdWorkflows/AnalyzeResults.mdDesignExperiment.mdDefineGoal.mdGenerateHypotheses.mdFullCycle.mdIterate.mdStructuredInvestigation.mdQuickDiagnosis.mdMeasureResults.md详细介绍
自定义
执行前,请检查用户自定义设置:
~/.claude/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Science/
如果此目录存在,请加载并应用其中的任何 PREFERENCES.md、配置或资源。这些内容会覆盖默认行为。如果目录不存在,则使用技能默认设置。
🚨 强制要求:语音通知(任何操作前必须执行)
调用此技能时,必须先发送此通知,再进行任何其他操作。
-
发送语音通知:
curl -s -X POST http://localhost:31337/notify \ -H "Content-Type: application/json" \ -d '{"message": "Running the WORKFLOWNAME workflow in the Science skill to ACTION"}' \ > /dev/null 2>&1 & -
输出文本通知:
Running the **WorkflowName** workflow in the **Science** skill to ACTION...
此步骤不可省略。调用技能后,立即执行此 curl 命令。
Science - 通用算法
功能
将科学方法作为通用问题解决算法:先定义目标,生成多个假设,设计可能失败的实验,诚实地进行测量,根据目标分析,并不断迭代。包含七种核心工作流,以及两个诊断捷径(快速的 15 分钟调试和结构化多因素调查)。适用范围从微观(TDD)到中观(功能验证),再到宏观(MVP 发布)。
问题
大多数问题解决只是把猜测包装成工作。你选择脑海中第一个想到的点子,做出一些改变,然后在“感觉更好”时就宣布完成——这其实是确认偏误,而非进步。没有明确的成功标准,你就无法判断某项改变是否有效,于是要么永远调整下去,要么过早停止。单一假设思维意味着你只会测试自己已经相信的想法。这项技能强制执行一套纪律,解决上述所有问题:明确的目标、至少三个相互竞争的假设、可证伪的测试,以及与目标而非期望进行比较的测量。
工作原理
整个过程是一个不断重复的循环,目标是其锚点——没有明确的成功标准,你就无法评判结果:
GOAL -----> What does success look like?
|
OBSERVE --> What is the current state?
|
HYPOTHESIZE -> What might work? (Generate MULTIPLE)
|
EXPERIMENT -> Design and run the test
|
MEASURE --> What happened? (Data collection)
|
ANALYZE --> How does it compare to the goal?
|
ITERATE --> Adjust hypothesis and repeat
|
+------> Back to HYPOTHESIZE
答案来自循环,而非猜测。
工作流路由
执行时输出: Running the **WorkflowName** workflow in the **Science** skill to ACTION...
核心工作流
| 工作流 | 触发条件 | 文件 |
|---|---|---|
| DefineGoal | “定义目标”“我们想要实现什么” | Workflows/DefineGoal.md |
| GenerateHypotheses | “什么可能有效”“点子”“假设” | Workflows/GenerateHypotheses.md |
| DesignExperiment | “如何测试”“实验设计” | Workflows/DesignExperiment.md |
| MeasureResults | “发生了什么”“测量”“结果” | Workflows/MeasureResults.md |
| AnalyzeResults | “分析”“与目标比较” | Workflows/AnalyzeResults.md |
| Iterate | “迭代”“再试一次”“下一个周期” | Workflows/Iterate.md |
| FullCycle | 完整的结构化周期 | Workflows/FullCycle.md |
诊断工作流
| 工作流 | 触发条件 | 文件 |
|---|---|---|
| QuickDiagnosis | 快速调试(15 分钟规则) | Workflows/QuickDiagnosis.md |
| StructuredInvestigation | 复杂调查 | Workflows/StructuredInvestigation.md |
资源索引
| 资源 | 说明 |
|---|---|
Methodology.md | 深入了解各个阶段 |
Protocol.md | 技能如何实现 Science |
Templates.md | 目标、假设、实验、结果模板 |
Examples.md | 不同规模的实例 |
领域应用
| 领域 | 具体体现 | 相关技能 |
|---|---|---|
| Coding | TDD(Red-Green-Refactor) | Development |
| Products | MVP -> Measure -> Iterate | Development |
| Research | Question -> Study -> Analyze | Research |
| Prompts | Prompt -> Eval -> Iterate | Evals |
| Decisions | Options -> Council -> Choose | Council |
应用规模
| 级别 | 周期时间 | 示例 |
|---|---|---|
| 微观 | 分钟 | TDD:测试、编码、重构 |
| 中观 | 小时至数天 | 功能:编写规范、实现、验证 |
| 宏观 | 数周至数月 | 产品:MVP、发布、衡量 PMF |
集成点
| 阶段 | 调用的技能 |
|---|---|
| 目标 | Council 用于验证 |
| 观察 | Research 用于了解背景 |
| 假设 | Council 用于提出想法,RedTeam 用于压力测试 |
| 实验 | Development(Worktrees)用于并行测试 |
| 衡量 | Evals 用于结构化衡量 |
| 分析 | Council 用于多角度分析 |
反模式
| 不佳做法 | 良好做法 |
|---|---|
| “让它变得更好” | “将加载时间从 3s 缩短到 1s” |
| “我觉得 X 会奏效” | “这里有 3 种方案:X、Y、Z” |
| “证明我是对的” | “设计一个可能证伪的测试” |
| “假装失败没有发生” | “我们学到了什么?” |
| “永远不停地做实验” | “发布并从生产环境中学习” |
注意事项
- 测试前至少提出 3 个假设。 单一假设测试会产生确认偏差——直接进行单一测试属于试错,而非科学。
- 测量必须具体且可复现。 “感觉更好了”不算测量。
- 完整周期适用于系统性调查。 快速调试请使用快速诊断模式。
示例
示例 1:快速诊断
User: "figure out why Surface time filters show stale items"
→ Quick diagnosis mode
→ Hypothesis: timestamp format mismatch in D1
→ Test: query D1 for actual stored format
→ Analyze: compare stored vs expected format
→ Result: ISO string vs Unix timestamp mismatch
示例 2:完整系统性调查
User: "experiment with different prompt structures for better output"
→ Full cycle mode
→ 3+ hypotheses generated
→ Controlled experiments with measurements
→ Analysis identifies winning approach
→ Iterates until convergence
执行日志
完成任何工作流后,追加一条 JSONL 记录:
echo '{"ts":"'$(date -u +%Y-%m-%dT%H:%M:%SZ)'","skill":"Science","workflow":"WORKFLOW_USED","input":"8_WORD_SUMMARY","status":"ok|error","duration_s":SECONDS}' >> ~/.claude/LIFEOS/MEMORY/SKILLS/execution.jsonl
将 WORKFLOW_USED 替换为已执行的工作流,将 8_WORD_SUMMARY 替换为简要的输入描述,并将 SECONDS 替换为大致的实际耗时。如果工作流失败,则记录 status: "error"。