# Nature Experiment Log

标准化实验日志记录, , 直接上传或读取本地图片、语音和文字，产出带 YAML frontmatter 的 Markdown；可选集成飞书 CLI 与 Obsidian。

- Repository: https://github.com/Yuan1z0825/nature-skills (51695 stars)
- Category: Engineering
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add Yuan1z0825/nature-skills --skill nature-experiment-log -g -a claude-code -y`
Codex: `npx skills add Yuan1z0825/nature-skills --skill nature-experiment-log -g -a codex -y`
Cursor: `npx skills add Yuan1z0825/nature-skills --skill nature-experiment-log -g -a cursor -y`
Gemini CLI: `npx skills add Yuan1z0825/nature-skills --skill nature-experiment-log -g -a gemini-cli -y`

## Description

标准化实验日志记录, , 直接上传或读取本地图片、语音和文字，产出带 YAML frontmatter 的 Markdown；可选集成飞书 CLI 与 Obsidian。

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# experiment-log, 实验日志标准化

## 输入方式

用户通过以下任一方式提交实验原始材料时自动加载：

- **直接上传**, 在当前会话提交图片、音频、语音转录或文字。
- **本地材料**, 提供本地文件或文件夹路径，由 agent 读取并整理。
- **飞书群**, 通过可选的 `feishu-cli-integration` 读取群消息和附件。

## 输出方式

- **本地 Markdown**, 将日志和原始附件保存到用户指定的普通本地文件夹；未指定目录时，先返回可保存的 Markdown，不擅自选择路径。
- **Obsidian vault**, 通过可选的 `obsidian` skill 写入 vault，并使用附带模板建立索引、异常记录和设备追踪。

核心流程不要求安装飞书或 Obsidian。使用飞书群输入时，才需要 bot 已加入目标群并具备 `im:message`、`im:message.group_msg` 和 `im:resource` 权限。

## 处理流程

1. 接收上传材料、读取本地文件，或从已配置的飞书群获取材料。
2. 通过 vision_analyze 和文本解析提取结构化信息。
3. 对缺失或模糊字段向用户确认，不猜测实验条件或结果。
4. 确认输出方式和目标目录，生成实验 ID 与样品批次 ID。
5. 写出 `{OUTPUT_ROOT}/实验日志/{体系}/{类型}/{exp_id}.md`。
6. 将原始附件归档到 `{OUTPUT_ROOT}/raw/experiments/YYYY.MM.DD_描述_EXPID/`，并在日志中建立引用。
7. 如启用索引模板，更新实验索引；发现异常时追加异常记录。
8. 告知用户生成文件及原始材料的具体位置。

模糊信息（温度记不清、样品编号不明）主动询问，不猜测写入。

## 目录结构

```
/vault/
├── raw/experiments/                       ← 原始层（归档）
│   └── YYYY.MM.DD_描述_EXPID/
│       ├── 笔记.md
│       ├── 图片/
│       └── 语音/
│
wiki/实验日志/                              ← 标准层（产出）
├── 实验索引.md
├── 异常记录.md
├── {体系A}/
│   ├── 实验类型1/
│   ├── 实验类型2/
│   └── ...
├── {体系B}/
│   └── ...
└── 公共/
    └── 设备与试剂追踪.md
```

## 实验 ID 规则

```
{体系代码}-{设备代码}-YYMMDD-{序号}
  │        │       │       └─ 当日序号（001 起）
  │        │       └─ 日期
  │        └─ 设备代码（M=马弗炉, T=管式炉, E=电化学, G=手套箱, F=可控气氛炉, B=通用）
  └─ 体系代码（自定义，如 CL / NO / OX / HY 等）
```

## 样品批次 ID 规则

```
{体系代码}-{候选编号}-B{序号}
  │        │         └─ 配盐批次序号
  │        └─ 候选配方编号
  └─ 体系代码
```

同一批样品跨多个实验时 `sample_batch` 保持一致，便于 dataview 追踪。

## 设备代码

| 代码 | 设备 | 场景 |
|------|------|------|
| M | 马弗炉 | 热处理、浸泡腐蚀 |
| T | 管式炉 | 气氛控制、脱水、热稳定性 |
| E | 电化学工作站 | CV/SWV/EIS |
| G | 手套箱 | 配盐、称量、取样 |
| F | 可控气氛炉 | 精密气氛控制 |
| B | 通用 | 干燥、清洗、制样 |

按实际设备扩展。

## 可选的 Obsidian 集成

本 skill 可以只向普通本地文件夹输出 Markdown，也可以与 [Obsidian](https://obsidian.md) vault 配合使用。Obsidian 是一个基于本地 Markdown 文件的笔记系统，配合 [Dataview](https://github.com/blacksmithgu/obsidian-dataview) 插件可实现实验数据的动态查询和仪表盘。

The rest: https://github.com/Yuan1z0825/nature-skills/blob/HEAD/skills/nature-experiment-log/SKILL.md
