Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
18c39ef
Add source corpus loader and validator
917Dhj Jun 19, 2026
c622a27
Document source corpus boundary
917Dhj Jun 19, 2026
0a7e2bd
Migrate evidence extraction to source corpus input
917Dhj Jun 19, 2026
05a861a
Harden source corpus bundle contracts
917Dhj Jun 19, 2026
fd6ddf6
Preserve source corpus caption decisions
917Dhj Jun 19, 2026
8d53b13
Merge source corpus issue 2
917Dhj Jun 20, 2026
f9acb4c
Merge branch 'codex/source-corpus-issue-4' into codex/source-corpus-base
917Dhj Jun 20, 2026
943897c
Merge source corpus issue 5
917Dhj Jun 20, 2026
016837a
Wire pipeline evidence step to source corpus
917Dhj Jun 20, 2026
7cd357d
Add final note reference hygiene gate
917Dhj Jun 20, 2026
f39d39c
Reuse acquisition artifacts in pipeline
917Dhj Jun 20, 2026
d99b812
Add note evaluation regression docs
917Dhj Jun 20, 2026
02bf68f
Add Chinese regression workflow doc
917Dhj Jun 20, 2026
f768af8
Refine regression workflow agent prompts
917Dhj Jun 20, 2026
2183f83
Clarify regression workflow child prompt templates
917Dhj Jun 20, 2026
a5d49af
Add identity vocabulary to Source Corpus context
917Dhj Jun 21, 2026
122a4cd
Add canonical identity pass-through
917Dhj Jun 21, 2026
38c0c21
Implement challengeable identity repair before fetch
917Dhj Jun 21, 2026
7d521b8
Implement manifestation equivalence identity contract
917Dhj Jun 21, 2026
4b9af3c
Merge branch 'codex/acquisition-identity-issue-4-20260621-162705' int…
917Dhj Jun 21, 2026
7f4f138
Implement warning-scoped identity propagation
917Dhj Jun 21, 2026
cdf5c38
Implement repair-exhausted identity fail closed
917Dhj Jun 21, 2026
cd477c1
Merge branch 'codex/acquisition-identity-issue-5-20260621-162705' int…
917Dhj Jun 21, 2026
5f141cb
Document acquisition identity audit reporting
917Dhj Jun 21, 2026
3dc673e
Clarify regression workflow versioning and goal usage
917Dhj Jun 21, 2026
df14269
fix: harden paper fetching and lint feedback
ZebangCheng Jul 1, 2026
c7cffd3
Stop tracking local docs directory
917Dhj Jul 1, 2026
8733d17
fix: normalize obsidian note paths across platforms
KumamuKuma Jul 2, 2026
99bcf68
fix: Windows path-separator & UTF-8 BOM/CRLF robustness across scripts
jiang4wqy Jul 2, 2026
64e067f
Merge PR #3 into develop integration
917Dhj Jul 2, 2026
be7d56b
docs: add contribution guidelines
917Dhj Jul 2, 2026
e11189c
Merge pull request #4 from KumamuKuma/fix/windows-obsidian-path-ci
917Dhj Jul 2, 2026
ca12cb2
docs: credit PR 4 contributor
917Dhj Jul 2, 2026
4884c7c
Merge remote-tracking branch 'origin/pr/5' into integrate/pr-5-window…
917Dhj Jul 2, 2026
813fda2
Merge PR #5 Windows path and encoding integration
917Dhj Jul 2, 2026
1afbfc3
Restructure as dual-stack plugin repository
917Dhj Jul 7, 2026
e023e5a
Remove tracked site artifacts
917Dhj Jul 7, 2026
46f5dd4
Stop tracking local context file
917Dhj Jul 7, 2026
98ac196
add paper glossary companion skill
jiang4wqy Jul 8, 2026
5ff7a97
harden paper glossary edge cases
jiang4wqy Jul 8, 2026
8d89bfa
harden paper glossary persistence
jiang4wqy Jul 8, 2026
c4c74ff
Run CI tests in UTF-8 mode
917Dhj Jul 9, 2026
8f2b445
Merge pull request #8 from jiang4wqy/codex/paper-glossary-companion
917Dhj Jul 9, 2026
265408f
Remove duplicate workflow reference routers
917Dhj Jul 13, 2026
c85a09d
Keep Codex adapter invocation-only
917Dhj Jul 13, 2026
49852e5
Deduplicate note plan grounding contracts
917Dhj Jul 13, 2026
26fbcef
Deduplicate Formal Save policy and contain output paths
917Dhj Jul 13, 2026
efbc513
improve paper glossary selection workflow
jiang4wqy Jul 16, 2026
8d45186
Align figure decision workflow with writing contract
917Dhj Jul 16, 2026
f760e9e
Reject Windows-rooted workspace output paths
917Dhj Jul 16, 2026
69fd9f7
Merge branch 'develop' into codex/paper-glossary-selection-gate
917Dhj Jul 16, 2026
6671951
Harden glossary link stems and confidence validation
917Dhj Jul 16, 2026
eb14e60
Merge pull request #11 from jiang4wqy/codex/paper-glossary-selection-…
917Dhj Jul 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
10 changes: 10 additions & 0 deletions .claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"name": "deeppapernote",
"description": "Academic paper reading and Obsidian note generation skills for building a research WIKI.",
"version": "0.1.0",
"author": {
"name": "917Dhj"
},
"repository": "https://github.com/917Dhj/DeepPaperNote",
"license": "MIT"
}
38 changes: 38 additions & 0 deletions .codex-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
{
"name": "deeppapernote",
"version": "0.1.0",
"description": "Academic paper reading and Obsidian note generation skills for building a research WIKI.",
"author": {
"name": "917Dhj",
"url": "https://github.com/917Dhj"
},
"homepage": "https://github.com/917Dhj/DeepPaperNote",
"repository": "https://github.com/917Dhj/DeepPaperNote",
"license": "MIT",
"keywords": [
"academic-research",
"obsidian",
"paper-reading",
"research-paper",
"deep-reading"
],
"skills": "./skills/",
"interface": {
"displayName": "DeepPaperNote",
"shortDescription": "Generate deep-reading notes for research papers.",
"longDescription": "Turn one paper at a time into an evidence-first, Obsidian-oriented deep-reading note with metadata, figures, tables, formulas, limitations, and final quality checks.",
"developerName": "917Dhj",
"category": "Productivity",
"capabilities": [
"Interactive",
"Write"
],
"websiteURL": "https://github.com/917Dhj/DeepPaperNote",
"defaultPrompt": [
"Generate a deep-reading note for this paper.",
"Turn this DOI or arXiv paper into an Obsidian note.",
"Read this local PDF and write a research note."
],
"brandColor": "#7C3AED"
}
}
12 changes: 10 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,15 @@ permissions:

jobs:
test:
runs-on: macos-latest
name: Tests (${{ matrix.os }})
runs-on: ${{ matrix.os }}
env:
PYTHONUTF8: "1"

strategy:
fail-fast: false
matrix:
os: [macos-latest, windows-latest]

steps:
- name: Checkout repository
Expand All @@ -30,7 +38,7 @@ jobs:

- name: Run syntax check
run: |
python -m py_compile scripts/*.py
python -m compileall -q skills/deeppapernote/scripts

- name: Run tests
run: |
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,11 @@ htmlcov/
venv/
dist/
build/
site/
*.egg-info/
.agent-work/
tmp/
DESIGN.md
CONTEXT.md
.claude/
docs/
25 changes: 14 additions & 11 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

DeepPaperNote is:

- a single-skill repository
- a dual-stack Claude Code and Codex plugin repository
- designed for deep reading of one paper at a time
- intended to support both Claude Code and Codex
- focused on producing a high-quality Obsidian-oriented paper note
Expand All @@ -18,10 +18,11 @@ DeepPaperNote is not:

Use the following source-of-truth hierarchy when working in this repository:

- root `SKILL.md` is the canonical workflow definition
- `scripts/` and `references/` are part of the reusable core
- `skills/deeppapernote/SKILL.md` is the canonical workflow definition
- `skills/deeppapernote/scripts/` and `skills/deeppapernote/references/` are part of the reusable core
- `README.md` and `README.zh-CN.md` are user-facing documentation, not the canonical workflow
- `agents/openai.yaml` is the Codex adapter layer; the root `SKILL.md` is the Claude Code skill entrypoint
- `skills/deeppapernote/agents/openai.yaml` is the Codex adapter layer
- `.claude-plugin/plugin.json` and `.codex-plugin/plugin.json` are host manifests and should stay thin

Adapter layers should stay thin and should not redefine the workflow independently.

Expand All @@ -43,17 +44,19 @@ Future changes should preserve these product invariants:

The repository is layered as follows:

- `SKILL.md` is the canonical workflow definition and the skill entrypoint for both Claude Code and other agents
- `skills/deeppapernote/SKILL.md` is the canonical workflow definition and the skill entrypoint for both Claude Code and other agents
- `CLAUDE.md` provides Claude Code project-level guidance and includes `AGENTS.md` via `@AGENTS.md`
- `references/` stores durable workflow and writing guidance
- `scripts/` implements the deterministic pipeline and support utilities
- `agents/openai.yaml` is the Codex adapter
- `.claude-plugin/plugin.json` identifies the Claude Code plugin
- `.codex-plugin/plugin.json` identifies the Codex plugin
- `skills/deeppapernote/references/` stores durable workflow and writing guidance
- `skills/deeppapernote/scripts/` implements the deterministic pipeline and support utilities
- `skills/deeppapernote/agents/openai.yaml` is the Codex adapter
- `README.md` and `README.zh-CN.md` are user-facing documentation

## Environment and Onboarding Boundary

- user installation, configuration, and onboarding belong primarily in `README.md` and `README.zh-CN.md`
- `scripts/check_environment.py` is a maintenance and troubleshooting utility
- `skills/deeppapernote/scripts/check_environment.py` is a maintenance and troubleshooting utility
- DeepPaperNote should not reintroduce a separate public `doctor`, `setup`, or `start` skill surface

## Working Commands
Expand All @@ -63,14 +66,14 @@ Common commands for local validation and maintenance:
- install the core runtime dependency with `python3 -m pip install PyMuPDF`
- install the local development environment with `python3 -m pip install -e '.[dev]'`
- run the test suite with `python3 -m pytest -q`
- when checking environment-related problems, use `python3 scripts/check_environment.py`
- when checking environment-related problems, use `python3 skills/deeppapernote/scripts/check_environment.py`

## Verification Expectations

When making meaningful changes:

- run `python3 -m pytest -q`
- confirm adapters remain aligned with the root `SKILL.md`
- confirm adapters remain aligned with `skills/deeppapernote/SKILL.md`
- confirm no wrapper introduces a second conflicting workflow
- confirm legacy public pseudo-commands are not reintroduced
- if packaging files are touched, keep them syntactically valid
15 changes: 14 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,20 @@ Add an entry here when the project meaningfully changes for users, for example:

## Unreleased

No unreleased user-facing changes yet.
### Changed

- Converted the repository to a dual-stack Claude Code and Codex plugin layout with the canonical skill under `skills/deeppapernote/`.
- Updated the recommended install command to select the `deeppapernote` skill from the plugin repository.

### Fixed

- Fixed Windows-style Obsidian subdirectories so `Research/Papers` is not duplicated in saved note paths.
- Cross-platform (Windows) path and encoding robustness: read files with `utf-8-sig` so a UTF-8 BOM (as written by PowerShell/Notepad) no longer crashes JSON loading or corrupts saved notes; tolerate CRLF line endings in note linting; and compare/emit paths without assuming `/` so the vault folder and Markdown image links resolve correctly on Windows. No behavior change on Linux/macOS.

### Contributors

- Incorporated the Windows Obsidian path normalization fix from PR #4 by KumamuKuma.
- Incorporated the Windows path/encoding robustness fix from PR #5 by jiang4wqy.

## v2.0.0

Expand Down
6 changes: 3 additions & 3 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,11 @@

## Claude Code Integration

The root `SKILL.md` is both the canonical workflow definition and the Claude Code skill entrypoint.
There is no separate Claude Code wrapper — `SKILL.md` is loaded directly when the skill is invoked.
`skills/deeppapernote/SKILL.md` is both the canonical workflow definition and the Claude Code skill entrypoint.
`.claude-plugin/plugin.json` identifies the plugin, but it must not restate the workflow.

- Do not fork or restate the DeepPaperNote workflow in any Claude-only file.
- All workflow logic stays in the root `SKILL.md`.
- All workflow logic stays in `skills/deeppapernote/SKILL.md`.

### Skill Invocation

Expand Down
Loading