Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "deeppapernote",
"description": "Academic paper reading and Obsidian note generation skills for building a research WIKI.",
"version": "2.2.0",
"version": "2.3.0",
"author": {
"name": "917Dhj"
},
Expand Down
2 changes: 1 addition & 1 deletion .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "deeppapernote",
"version": "2.2.0",
"version": "2.3.0",
"description": "Academic paper reading and Obsidian note generation skills for building a research WIKI.",
"author": {
"name": "917Dhj",
Expand Down
22 changes: 22 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,28 @@ Add an entry here when the project meaningfully changes for users, for example:

## Unreleased

## v2.3.0

### Added

- Added end-to-end English output through User Configuration or `--language en`, including localized note schemas, paper-type planning contracts, figure callouts, grounding, final-note linting, and Formal Save validation.
- Added one device-local `config.json` for language and save preferences, with first-use/repair inspection, confirmed migration, atomic persistence, and run-scoped overrides.
- Added Vault-wide Save Target Admission backed by the original PDF SHA-256 and a hidden paper-directory sidecar, so source-identical language variants share one directory and same-language overwrites require explicit hash-bound confirmation.

### Changed

- Complete valid Run Overrides now satisfy Configuration Readiness without reading `~/.deeppapernote/config.json`; incomplete overrides continue through the existing User Configuration fallback and validation flow.
- Obsidian notes now use language-specific filenames, and Windows sidecars receive the native Hidden file attribute in addition to their dot-prefixed name.
- Successful runs now report the saved note path and domain, validation results, figure and table counts, warning count, and final note integrity check.

### Fixed

- Formal Save now preserves LF line endings on Windows instead of applying platform-specific newline conversion.

### Contributors

- Added configurable English note output from [PR #26](https://github.com/917Dhj/DeepPaperNote/pull/26) by [@basbun](https://github.com/basbun).

## v2.2.0

### Improved
Expand Down
23 changes: 11 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
<em>Read one paper deeply. Add one durable page to your academic wiki.</em>
</p>

**Do you know this situation? You sit down to study an important paper, but the exhausting part is not simply reading it. It is turning what you understood into a note you can still use later.** The time usually disappears into work like this:
**You sit down to study an important paper. The hard part is not reading it—it is turning what you understood into a note you can still use later.** The time usually disappears into work like this:

- switching between the PDF, Zotero, web pages, and your note app
- manually organizing metadata, the abstract, figures, and the method backbone
Expand All @@ -45,9 +45,9 @@ DeepPaperNote is an agent skill for reading **one paper at a time**. The same co

## 📰 News

- **[v2.3.0]** 🌐 Added complete English note support across note structure, figure callouts, validation, and Formal Save. [Release notes](https://github.com/917Dhj/DeepPaperNote/releases/tag/v2.3.0)
- **[2026-07-16]** 🧩 Added [`paper-glossary`](./skills/paper-glossary/README.md), an optional companion skill for building reusable Obsidian terminology notes.
- **[2026-07-16]** 🔌 DeepPaperNote is now distributed as a plugin for multiple agents, with support for selecting multiple skills from the repository. [PR #12](https://github.com/917Dhj/DeepPaperNote/pull/12)
- **[v2.0.0]** 🚀 Released a deeper evidence-first paper-reading workflow with stronger note planning and figure handling. [Release notes](https://github.com/917Dhj/DeepPaperNote/releases/tag/v2.0.0)

News lists only the three most recent user-facing milestones. See the [changelog](./CHANGELOG.md) and [GitHub Releases](https://github.com/917Dhj/DeepPaperNote/releases) for the full history.

Expand Down Expand Up @@ -78,8 +78,6 @@ Generate a deep-reading note for this paper: <title, DOI, URL, arXiv ID, or loca
Turn this paper into an Obsidian note: <paper>
```

DeepPaperNote currently generates Chinese notes by default, and its writing and validation rules are optimized for Chinese output.

## 🎯 Why DeepPaperNote?

![DeepPaperNote usage example](./assets/usage-example.png)
Expand Down Expand Up @@ -110,17 +108,18 @@ You do not need to install every skill. Choose the ones that match your workflow

The canonical execution contract lives in [`skills/deeppapernote/SKILL.md`](./skills/deeppapernote/SKILL.md).

## 🗂️ Obsidian Setup
## 🗂️ First-Run Preferences

To make an Obsidian vault the default save target, set:
The first time you hand a paper to your Agent, DeepPaperNote helps you choose:

```bash
export DEEPPAPERNOTE_OBSIDIAN_VAULT="/absolute/path/to/your/vault"
```
- the default note language: English or Simplified Chinese
- the default save target: the current workspace or your Obsidian Vault

Once confirmed, these preferences are saved on your device and reused for future papers. You can still request a different language or save target for any individual run without changing your defaults.

DeepPaperNote never silently overwrites an existing note or switches save destinations when a save is blocked.

- When a usable vault is configured or provided, DeepPaperNote saves the validated note and its paper-local `images/` directory there.
- When no vault is configured, DeepPaperNote asks first. It writes to the current workspace only after you explicitly choose not to use a vault.
- If a configured vault save fails, DeepPaperNote reports the blocked save instead of silently switching to another destination.
For advanced environment-variable and CLI configuration, see [User Configuration](./skills/deeppapernote/references/user-configuration.md).

## 🔧 Optional Enhancements

Expand Down
21 changes: 10 additions & 11 deletions README.zh-CN.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,9 +45,9 @@ DeepPaperNote 是一个专注于**一次精读一篇论文**的 Agent Skill。

## 📰 最新动态

- **[v2.3.0]** 🌐 新增完整英文笔记支持,从章节结构、图表标注到校验与 Formal Save,全流程保持英文一致。[版本说明](https://github.com/917Dhj/DeepPaperNote/releases/tag/v2.3.0)
- **[2026-07-16]** 🧩 新增可选 companion skill [`paper-glossary`](./skills/paper-glossary/README.md),用于构建可复用的 Obsidian 术语笔记。
- **[2026-07-16]** 🔌 DeepPaperNote 现在以支持多个 Agent 的插件形式分发,并支持从仓库中选择多个 skill。[PR #12](https://github.com/917Dhj/DeepPaperNote/pull/12)
- **[v2.0.0]** 🚀 发布更深入的证据优先论文精读流程,并加强笔记规划与图表处理。[版本说明](https://github.com/917Dhj/DeepPaperNote/releases/tag/v2.0.0)

这里只保留最近三条用户可感知的重要动态。完整历史请查看 [CHANGELOG](./CHANGELOG.md) 与 [GitHub Releases](https://github.com/917Dhj/DeepPaperNote/releases)。

Expand Down Expand Up @@ -78,8 +78,6 @@ DeepPaperNote 需要 Python 3.10 或更高版本。核心 PDF 抽取路径依赖
把这篇论文整理成 Obsidian 笔记:<论文>
```

DeepPaperNote 默认生成中文笔记,当前写作与校验规则也主要针对中文输出优化。

## 🎯 为什么选择 DeepPaperNote?

![DeepPaperNote 使用示例](./assets/usage-example.png)
Expand Down Expand Up @@ -110,17 +108,18 @@ DeepPaperNote 仍然是唯一主产品。仓库同时提供一个可选 companio

规范执行契约以 [`skills/deeppapernote/SKILL.md`](./skills/deeppapernote/SKILL.md) 为准。

## 🗂️ Obsidian 配置
## 🗂️ 首次使用设置

如果希望默认保存到 Obsidian 库,请设置
第一次把论文交给 Agent 时,DeepPaperNote 会引导你选择

```bash
export DEEPPAPERNOTE_OBSIDIAN_VAULT="/你的/Obsidian/库/绝对路径"
```
- 默认使用英文还是简体中文生成笔记
- 默认保存到当前 workspace 还是 Obsidian Vault

确认后,这些偏好会保存在当前设备上,并自动用于后续论文。你仍然可以为某一次任务临时指定不同的语言或保存位置,而不改变默认偏好。

DeepPaperNote 不会静默覆盖已有笔记,也不会在保存受阻时擅自切换保存位置。

- 配置或提供了可用的 Vault 时,DeepPaperNote 会把校验完成的笔记及其论文专属 `images/` 目录保存到该 Vault。
- 没有配置 Vault 时,DeepPaperNote 会先询问;只有你明确选择不使用 Vault 后,才会写入当前 workspace。
- 如果已配置的 Vault 保存失败,DeepPaperNote 会报告保存受阻,而不会静默切换到其他目标。
环境变量与 CLI 等高级配置请查看[用户配置说明](./skills/deeppapernote/references/user-configuration.md)。

## 🔧 可选增强

Expand Down
2 changes: 1 addition & 1 deletion assets/hero-academic.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"

[project]
name = "deeppapernote"
version = "2.2.0"
version = "2.3.0"
description = "An agent-neutral skill for turning one research paper into a high-quality Obsidian note."
readme = "README.md"
requires-python = ">=3.10"
Expand Down
Loading