chore: rename PaperForge Lite -> PaperForge across 27 files

This commit is contained in:
Research Assistant 2026-04-28 01:25:51 +08:00
parent ec1587febc
commit ebc4fdeb00
27 changed files with 54 additions and 54 deletions

View file

@ -1,4 +1,4 @@
# PaperForge Lite - Agent Guide
# PaperForge - Agent Guide
> 本文档面向 **安装完成后的新用户****AI Agent**。安装步骤见 [setup-guide.md](docs/setup-guide.md) 或快速版 [INSTALLATION.md](docs/INSTALLATION.md)。
@ -28,7 +28,7 @@
## 1. 核心架构Lite 版)
PaperForge Lite 采用 **两层设计**
PaperForge 采用 **两层设计**
| 层级 | 组件 | 触发方式 | 作用 |
|------|------|----------|------|
@ -565,4 +565,4 @@ cp -r 新下载的代码/* <vault_path>/
---
*PaperForge Lite | 快速开始指南 | 安装后阅读*
*PaperForge | 快速开始指南 | 安装后阅读*

View file

@ -1,6 +1,6 @@
# Changelog
All notable changes to PaperForge Lite are documented in this file.
All notable changes to PaperForge are documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).

View file

@ -1,6 +1,6 @@
# Contributing to PaperForge Lite
# Contributing to PaperForge
Thank you for your interest in contributing to PaperForge Lite! This document provides setup instructions, workflow guidelines, and code conventions to help you get started.
Thank you for your interest in contributing to PaperForge! This document provides setup instructions, workflow guidelines, and code conventions to help you get started.
---
@ -84,7 +84,7 @@ Tests are in `tests/` with a shared `conftest.py` providing fixtures. The `tests
## Architecture Overview
PaperForge Lite uses a **two-layer design**:
PaperForge uses a **two-layer design**:
```
Worker Layer (automated, deterministic, CLI-triggered)
@ -169,4 +169,4 @@ Agent Layer (interactive, reasoning-driven, user-triggered)
---
*Thank you for contributing to PaperForge Lite — Building a better literature workflow, underground!*
*Thank you for contributing to PaperForge — Building a better literature workflow, underground!*

View file

@ -7,7 +7,7 @@
\_| \_| |_/\_| \____/\_| \_\_| \___/\_| \_|\____/\____/
```
# PaperForge Lite
# PaperForge
[![PyPI version](https://img.shields.io/pypi/v/paperforge?style=for-the-badge&logo=pypi&logoColor=white&color=3775A9)](https://pypi.org/project/paperforge/)
[![Python version](https://img.shields.io/pypi/pyversions/paperforge?style=for-the-badge&logo=python&logoColor=white&color=3775A9)](https://python.org)

View file

@ -7,7 +7,7 @@
\_| \_| |_/\_| \____/\_| \_\_| \___/\_| \_|\____/\____/
```
# PaperForge Lite
# PaperForge
[![PyPI version](https://img.shields.io/pypi/v/paperforge?style=for-the-badge&logo=pypi&logoColor=white&color=3775A9)](https://pypi.org/project/paperforge/)
[![Python version](https://img.shields.io/pypi/pyversions/paperforge?style=for-the-badge&logo=python&logoColor=white&color=3775A9)](https://python.org)

View file

@ -1,4 +1,4 @@
# PaperForge Lite Architecture
# PaperForge Architecture
> Maintainer-facing documentation covering the two-layer design, data flow, directory structure, key design decisions, and extension points.
>
@ -19,7 +19,7 @@
## System Overview
PaperForge Lite is a local-first literature workflow that bridges Zotero (reference management) and Obsidian (knowledge management) for medical researchers. The system is intentionally split into two distinct layers: the **Worker layer** and the **Agent layer**. This separation is the defining architectural choice of the project.
PaperForge is a local-first literature workflow that bridges Zotero (reference management) and Obsidian (knowledge management) for medical researchers. The system is intentionally split into two distinct layers: the **Worker layer** and the **Agent layer**. This separation is the defining architectural choice of the project.
The **Worker layer** (`literature_pipeline.py` and the `paperforge/commands/` package) handles all automated, mechanical tasks: detecting new literature from Zotero via Better BibTeX JSON export, generating library records and formal notes, running OCR through the PaddleOCR API, and maintaining state consistency across the system. Workers are deterministic, idempotent where possible, and designed to run without human intervention. They are triggered by CLI commands such as `paperforge sync` or `paperforge ocr`.
@ -113,7 +113,7 @@ Each literature item tracks `ocr_status` through a finite state machine:
## Directory Structure
PaperForge Lite uses **5 core directories** under the Obsidian vault root. All paths are configurable via `paperforge.json` and resolved through the shared config resolver (see [ADR-001](#adr-001-config-precedence)).
PaperForge uses **5 core directories** under the Obsidian vault root. All paths are configurable via `paperforge.json` and resolved through the shared config resolver (see [ADR-001](#adr-001-config-precedence)).
```
{vault_root}/
@ -632,4 +632,4 @@ The current implementation targets **OpenCode Agent** (`.opencode/skills/` and `
---
*PaperForge Lite | Architecture Documentation | For Maintainers and Contributors*
*PaperForge | Architecture Documentation | For Maintainers and Contributors*

View file

@ -7,7 +7,7 @@
## Terminology
- [ ] "PaperForge Lite" used correctly (product name, not "Paperforge" or "Paper Forge")
- [ ] "PaperForge" used correctly (product name, not "Paperforge" or "Paper Forge")
- [ ] "Zotero" capitalized correctly
- [ ] "Obsidian" capitalized correctly
- [ ] "PaddleOCR" capitalized correctly
@ -45,7 +45,7 @@
## Branding
- [ ] README.md uses correct product name "PaperForge Lite"
- [ ] README.md uses correct product name "PaperForge"
- [ ] `AGENTS.md` uses correct product name
- [ ] Command docs use correct product name
- [ ] No references to deprecated package name `paperforge_lite` in user-facing docs
@ -66,4 +66,4 @@
---
*PaperForge Lite | Consistency Checklist | For maintainers and release managers*
*PaperForge | Consistency Checklist | For maintainers and release managers*

View file

@ -1,4 +1,4 @@
# PaperForge Lite 快速安装指南
# PaperForge 快速安装指南
> 详细版教程(含截图和每个步骤的说明)请见 [setup-guide.md](setup-guide.md)。

View file

@ -1,4 +1,4 @@
# PaperForge Lite 安装配置与使用指南
# PaperForge 安装配置与使用指南
> 本文档面向**首次使用 PaperForge 的新用户**,从零开始覆盖安装、配置、使用全流程。

View file

@ -1,3 +1,3 @@
"""paperforge — PaperForge Lite package."""
"""paperforge — PaperForge package."""
__version__ = "1.4.1"

View file

@ -1,4 +1,4 @@
"""paperforge.cli — PaperForge Lite command-line interface.
"""paperforge.cli — PaperForge command-line interface.
Exposes `paperforge paths`, `paperforge status`, `paperforge sync`,
`paperforge ocr`, `paperforge ocr --diagnose`, `paperforge deep-reading`,
@ -118,7 +118,7 @@ def _import_worker_functions() -> None:
def build_parser() -> argparse.ArgumentParser:
parser = argparse.ArgumentParser(
prog="paperforge",
description="PaperForge Lite — Obsidian + Zotero literature pipeline CLI",
description="PaperForge — Obsidian + Zotero literature pipeline CLI",
)
parser.add_argument(
"--vault",
@ -214,10 +214,10 @@ def build_parser() -> argparse.ArgumentParser:
)
# doctor
sub.add_parser("doctor", help="Validate PaperForge Lite setup and configuration")
sub.add_parser("doctor", help="Validate PaperForge setup and configuration")
# update
sub.add_parser("update", help="Update PaperForge Lite to the latest version")
sub.add_parser("update", help="Update PaperForge to the latest version")
# setup wizard
sub.add_parser("setup", help="Run the setup wizard (Textual-based)")

View file

@ -1,4 +1,4 @@
"""PaperForge Lite — shared configuration and path resolver.
"""PaperForge — shared configuration and path resolver.
Configuration precedence (D-Configuration Hierarchy):
1. Explicit overrides (function parameter)
@ -217,7 +217,7 @@ def paperforge_paths(
"""Build the complete PaperForge path inventory for a vault.
Returns absolute Path objects for every user-facing and worker-facing
location used by PaperForge Lite.
location used by PaperForge.
Args:
vault: Path to the vault root.

View file

@ -1,4 +1,4 @@
"""PaperForge Lite — logging configuration single entry point.
"""PaperForge — logging configuration single entry point.
Call ``configure_logging(verbose)`` once at CLI startup before command dispatch.
All worker and command modules use ``logging.getLogger(__name__)`` for

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
PaperForge Lite Setup Wizard (Textual Step-by-Step)
PaperForge Setup Wizard (Textual Step-by-Step)
====================================================
基于 Textual ContentSwitcher + Tree + ProgressBar 的步骤向导
@ -393,7 +393,7 @@ class WelcomeStep(StepScreen):
classes="logo",
)
yield Markdown("""
**PaperForge Lite** 是一个连接 Zotero Obsidian 的文献工作流工具
**PaperForge** 是一个连接 Zotero Obsidian 的文献工作流工具
安装向导将引导你完成以下配置
@ -1199,7 +1199,7 @@ class DoneStep(StepScreen):
yield Markdown(f"""
## 安装完成!
PaperForge Lite 已完成安装和初始化以下是立即开始使用的步骤
PaperForge 已完成安装和初始化以下是立即开始使用的步骤
### 首次使用步骤:
@ -1372,7 +1372,7 @@ class SetupWizardApp(App):
# 左侧:步骤导航树
with Vertical(classes="sidebar"):
yield Static("安装步骤", classes="sidebar-title")
tree = Tree("PaperForge Lite", id="step-tree", classes="step-tree")
tree = Tree("PaperForge", id="step-tree", classes="step-tree")
for i, title in enumerate(STEP_TITLES):
tree.root.add_leaf(f"{i}. {title}")
yield tree
@ -1492,7 +1492,7 @@ def _find_vault() -> Path | None:
def main(argv: list[str] | None = None) -> int:
parser = argparse.ArgumentParser(description="PaperForge Lite 安装向导")
parser = argparse.ArgumentParser(description="PaperForge 安装向导")
parser.add_argument("--vault", type=Path, default=None, help="Vault 路径(可选,默认当前目录)")
args = parser.parse_args(argv)

View file

@ -240,7 +240,7 @@ def check_wikilink_format(vault: Path, paths: dict, add_check) -> None:
def run_doctor(vault: Path, verbose: bool = False) -> int:
"""Validate PaperForge Lite setup and report by category.
"""Validate PaperForge setup and report by category.
Returns:
0 if all checks pass, 1 otherwise.
@ -407,7 +407,7 @@ def run_doctor(vault: Path, verbose: bool = False) -> int:
else:
add_check("Agent 脚本", "warn", "literature-qa skill 目录未找到", "确认 agent_config_dir 配置正确")
print("PaperForge Lite Doctor")
print("PaperForge Doctor")
print("=" * 40)
current_category = ""
fix_map: dict[str, list[str]] = {}
@ -487,7 +487,7 @@ def run_status(vault: Path, verbose: bool = False) -> int:
except Exception:
continue
print("PaperForge Lite status")
print("PaperForge status")
print(f"- vault: {vault}")
print(f"- system_dir: {cfg['system_dir']}")
print(f"- resources_dir: {cfg['resources_dir']}")

View file

@ -276,7 +276,7 @@ def run_update(vault: Path) -> int:
local = "unknown"
remote = _remote_version()
logger.info("%s", "=" * 50)
logger.info("PaperForge Lite 更新")
logger.info("PaperForge 更新")
logger.info("%s", "=" * 50)
logger.info("本地版本: %s", local)
logger.info("远程版本: %s", remote or "unknown")

View file

@ -5,7 +5,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "paperforge"
version = "1.4.1"
description = "PaperForge Lite — Obsidian + Zotero literature pipeline CLI"
description = "PaperForge — Obsidian + Zotero literature pipeline CLI"
readme = "README.md"
requires-python = ">=3.10"
license = {text = "MIT"}

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Compatibility wrapper for the PaperForge Lite setup wizard."""
"""Compatibility wrapper for the PaperForge setup wizard."""
from __future__ import annotations

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Validate a PaperForge Lite installation."""
"""Validate a PaperForge installation."""
from __future__ import annotations
@ -126,7 +126,7 @@ def main() -> int:
passed = sum(1 for ok, _ in all_results if ok)
failed = [msg for ok, msg in all_results if not ok and not msg.startswith("[WARN]")]
warnings = [msg for ok, msg in all_results if not ok and msg.startswith("[WARN]")]
print(f"PaperForge Lite validation: {passed} passed, {len(failed)} failed, {len(warnings)} warnings")
print(f"PaperForge validation: {passed} passed, {len(failed)} failed, {len(warnings)} warnings")
for _, msg in all_results:
print(msg)
return 0 if not failed else 1

View file

@ -1,6 +1,6 @@
#!/usr/bin/env python3
"""
PaperForge Lite Setup Wizard (Textual Step-by-Step)
PaperForge Setup Wizard (Textual Step-by-Step)
====================================================
基于 Textual ContentSwitcher + Tree + ProgressBar 的步骤向导
@ -393,7 +393,7 @@ class WelcomeStep(StepScreen):
classes="logo",
)
yield Markdown("""
**PaperForge Lite** 是一个连接 Zotero Obsidian 的文献工作流工具
**PaperForge** 是一个连接 Zotero Obsidian 的文献工作流工具
安装向导将引导你完成以下配置
@ -1201,7 +1201,7 @@ class DoneStep(StepScreen):
yield Markdown(f"""
## 安装完成!
PaperForge Lite 已完成安装和初始化以下是立即开始使用的步骤
PaperForge 已完成安装和初始化以下是立即开始使用的步骤
### 首次使用步骤:
@ -1382,7 +1382,7 @@ class SetupWizardApp(App):
# 左侧:步骤导航树
with Vertical(classes="sidebar"):
yield Static("安装步骤", classes="sidebar-title")
tree = Tree("PaperForge Lite", id="step-tree", classes="step-tree")
tree = Tree("PaperForge", id="step-tree", classes="step-tree")
for i, title in enumerate(STEP_TITLES):
tree.root.add_leaf(f"{i}. {title}")
yield tree
@ -1502,7 +1502,7 @@ def _find_vault() -> Path | None:
def main(argv: list[str] | None = None) -> int:
parser = argparse.ArgumentParser(description="PaperForge Lite 安装向导")
parser = argparse.ArgumentParser(description="PaperForge 安装向导")
parser.add_argument("--vault", type=Path, default=None, help="Vault 路径(可选,默认当前目录)")
args = parser.parse_args(argv)

View file

@ -1,4 +1,4 @@
"""Test fixtures and helpers for PaperForge Lite smoke tests."""
"""Test fixtures and helpers for PaperForge smoke tests."""
from __future__ import annotations

View file

@ -1,5 +1,5 @@
#!/usr/bin/env python3
"""Generate minimal pre-install sandbox for testing PaperForge Lite setup wizard.
"""Generate minimal pre-install sandbox for testing PaperForge setup wizard.
Run from repo root:
python tests/sandbox/generate_sandbox.py
@ -161,10 +161,10 @@ def build() -> None:
readme = SANDBOX / "README.md"
readme.write_text(
f"""# PaperForge Lite — Test Sandbox
f"""# PaperForge — Test Sandbox
## 用途
测试 PaperForge Lite 安装向导 `setup_wizard.py` 的完整流程
测试 PaperForge 安装向导 `setup_wizard.py` 的完整流程
## 目录结构

View file

@ -1,5 +1,5 @@
"""
Test suite for PaperForge Lite command documentation.
Test suite for PaperForge command documentation.
Ensures user-facing docs use stable `paperforge ...` commands
instead of unresolved <system_dir> token paths.

View file

@ -74,6 +74,6 @@ def test_doctor_on_empty_vault(tmp_path, capsys):
(tmp_path / "paperforge.json").write_text(json.dumps(pf_cfg), encoding="utf-8")
code = run_doctor(tmp_path)
captured = capsys.readouterr().out
assert "PaperForge Lite Doctor" in captured
assert "PaperForge Doctor" in captured
assert "[FAIL]" in captured or "[WARN]" in captured
assert code == 1

View file

@ -1,4 +1,4 @@
"""End-to-end integration tests for the PaperForge Lite literature pipeline.
"""End-to-end integration tests for the PaperForge literature pipeline.
Covers: Zotero JSON export -> selection-sync -> index-refresh -> OCR queue -> formal notes.

View file

@ -1,4 +1,4 @@
"""Unit tests for PaperForge Lite setup wizard standalone functions.
"""Unit tests for PaperForge setup wizard standalone functions.
Covers: AGENT_CONFIGS, EnvChecker (check_python, check_vault, check_dependencies,
get_exports_dir, _find_zotero), CheckResult, and _find_vault.

View file

@ -1,4 +1,4 @@
"""Smoke tests for PaperForge Lite — Phase 8 regression gate.
"""Smoke tests for PaperForge — Phase 8 regression gate.
These tests validate:
- ld_deep.py importability from deployed location