mirror of
https://github.com/lllin000/PaperForge.git
synced 2026-07-22 06:50:53 +00:00
docs: create milestone v1.6 roadmap (5 phases)
This commit is contained in:
parent
f7f4b8464d
commit
4071317631
3 changed files with 134 additions and 243 deletions
|
|
@ -82,36 +82,36 @@ Which phases cover which requirements. Updated during roadmap creation.
|
|||
|
||||
| Requirement | Phase | Status |
|
||||
|-------------|-------|--------|
|
||||
| CONF-01 | Phase [N] | Pending |
|
||||
| CONF-02 | Phase [N] | Pending |
|
||||
| CONF-03 | Phase [N] | Pending |
|
||||
| CONF-04 | Phase [N] | Pending |
|
||||
| ASSET-01 | Phase [N] | Pending |
|
||||
| ASSET-02 | Phase [N] | Pending |
|
||||
| ASSET-03 | Phase [N] | Pending |
|
||||
| ASSET-04 | Phase [N] | Pending |
|
||||
| STATE-01 | Phase [N] | Pending |
|
||||
| STATE-02 | Phase [N] | Pending |
|
||||
| STATE-03 | Phase [N] | Pending |
|
||||
| STATE-04 | Phase [N] | Pending |
|
||||
| SURF-01 | Phase [N] | Pending |
|
||||
| SURF-02 | Phase [N] | Pending |
|
||||
| SURF-03 | Phase [N] | Pending |
|
||||
| SURF-04 | Phase [N] | Pending |
|
||||
| AIC-01 | Phase [N] | Pending |
|
||||
| AIC-02 | Phase [N] | Pending |
|
||||
| AIC-03 | Phase [N] | Pending |
|
||||
| AIC-04 | Phase [N] | Pending |
|
||||
| MIG-01 | Phase [N] | Pending |
|
||||
| MIG-02 | Phase [N] | Pending |
|
||||
| MIG-03 | Phase [N] | Pending |
|
||||
| MIG-04 | Phase [N] | Pending |
|
||||
| CONF-01 | Phase 22 | Pending |
|
||||
| CONF-02 | Phase 22 | Pending |
|
||||
| CONF-03 | Phase 22 | Pending |
|
||||
| CONF-04 | Phase 22 | Pending |
|
||||
| ASSET-01 | Phase 23 | Pending |
|
||||
| ASSET-02 | Phase 23 | Pending |
|
||||
| ASSET-03 | Phase 23 | Pending |
|
||||
| ASSET-04 | Phase 23 | Pending |
|
||||
| STATE-01 | Phase 24 | Pending |
|
||||
| STATE-02 | Phase 24 | Pending |
|
||||
| STATE-03 | Phase 24 | Pending |
|
||||
| STATE-04 | Phase 24 | Pending |
|
||||
| SURF-01 | Phase 25 | Pending |
|
||||
| SURF-02 | Phase 25 | Pending |
|
||||
| SURF-03 | Phase 25 | Pending |
|
||||
| SURF-04 | Phase 25 | Pending |
|
||||
| AIC-01 | Phase 24 | Pending |
|
||||
| AIC-02 | Phase 26 | Pending |
|
||||
| AIC-03 | Phase 26 | Pending |
|
||||
| AIC-04 | Phase 26 | Pending |
|
||||
| MIG-01 | Phase 25 | Pending |
|
||||
| MIG-02 | Phase 23 | Pending |
|
||||
| MIG-03 | Phase 25 | Pending |
|
||||
| MIG-04 | Phase 25 | Pending |
|
||||
|
||||
**Coverage:**
|
||||
- v1 requirements: 24 total
|
||||
- Mapped to phases: 0
|
||||
- Unmapped: 24 ⚠️
|
||||
- Mapped to phases: 24
|
||||
- Unmapped: 0 ✓
|
||||
|
||||
---
|
||||
*Requirements defined: 2026-05-03*
|
||||
*Last updated: 2026-05-03 after v1.6 requirements definition*
|
||||
*Last updated: 2026-05-03 after v1.6 roadmap creation*
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
# Roadmap: PaperForge Lite
|
||||
# Roadmap: PaperForge
|
||||
|
||||
**Project kind:** brownfield-release-hardening
|
||||
**Current milestone:** v1.5 — Obsidian Plugin Setup Integration
|
||||
**Phase numbering:** Continuous (never restarts). v1.0 Phases 1-5, v1.1 Phases 6-8, v1.2 Phases 9-10, v1.3 Phases 11-12, v1.4 Phases 13-19, v1.5 Phases 20-21
|
||||
**Current milestone:** v1.6 — AI-Ready Literature Asset Foundation
|
||||
**Phase numbering:** Continuous (never restarts). Previous milestone ended at Phase 21, so v1.6 begins at Phase 22.
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -14,201 +14,100 @@
|
|||
- ✅ **v1.3 Path Normalization & Architecture Hardening** — Phases 11-12 (shipped 2026-04-24)
|
||||
- ✅ **v1.4 Code Health & UX Hardening** — Phases 13-19 (shipped 2026-04-28)
|
||||
- ✅ **v1.5 Obsidian Plugin Setup Integration** — Phases 20-21 (shipped 2026-04-29)
|
||||
- 🚧 **v1.6 AI-Ready Literature Asset Foundation** — Phases 22-26 (planned)
|
||||
|
||||
---
|
||||
|
||||
## Overview
|
||||
|
||||
v1.6 turns PaperForge's existing sync, OCR, deep-reading, status, plugin, and `formal-library.json` outputs into one coherent literature asset foundation. The milestone starts by unifying configuration truth, upgrades `formal-library.json` into the canonical derived asset index, derives lifecycle and health from real source artifacts, converges CLI/plugin/Base surfaces on that shared meaning, and then exposes traceable AI context packs on top of trustworthy assets.
|
||||
|
||||
## Phases
|
||||
|
||||
<details>
|
||||
<summary>✅ v1.0 MVP (Phases 1-5) — SHIPPED 2026-04-23</summary>
|
||||
**Phase Numbering:**
|
||||
- Integer phases (22, 23, 24...): Planned milestone work
|
||||
- Decimal phases (22.1, 22.2...): Urgent insertions after roadmap approval
|
||||
|
||||
### Phase 1: Config And Command Foundation
|
||||
**Goal**: Stable commands and shared path/env resolution
|
||||
**Plans**: 3/3 plans complete
|
||||
|
||||
### Phase 2: PaddleOCR And PDF Path Hardening
|
||||
**Goal**: Diagnosable, retryable OCR
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 3: Config-Aware Obsidian Bases
|
||||
**Goal**: Real workflow Bases without hardcoded paths
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 4: End-To-End Onboarding And Validation
|
||||
**Goal**: User can complete first-paper flow
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 5: Release Verification
|
||||
**Goal**: Tests and docs prove ship readiness
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
_Archived: `.planning/milestones/v1.0.md`_
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>✅ v1.1 Sandbox Onboarding (Phases 6-8) — SHIPPED 2026-04-24</summary>
|
||||
|
||||
### Phase 6: Setup, CLI, And Diagnostics Consistency
|
||||
**Goal**: Field names, env vars, export validation, HTTP 405 handling, vault prefill
|
||||
**Plans**: 3/3 plans complete
|
||||
|
||||
### Phase 7: Zotero PDF, Metadata, And State Repair
|
||||
**Goal**: OCR meta validation, three-way divergence repair, PDF resolver tests
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 8: Deep Helper Deployment And Sandbox Regression Gate
|
||||
**Goal**: Importability, fixtures, smoke tests, rollback
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
_Archived: `.planning/milestones/v1.1.md`_
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>✅ v1.2 Systematization & Cohesion (Phases 9-10) — SHIPPED 2026-04-24</summary>
|
||||
|
||||
### Phase 9: Command Unification & CLI Simplification
|
||||
**Goal**: Unified `/pf-*` namespace, `paperforge sync` combined command
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 10: Documentation & Cohesion
|
||||
**Goal**: Updated AGENTS.md, migration guide, consistency audit
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
_Archived: `.planning/milestones/v1.2-ROADMAP.md`_
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>✅ v1.3 Path Normalization & Architecture Hardening (Phases 11-12) — SHIPPED 2026-04-24</summary>
|
||||
|
||||
### Phase 11: Zotero Path Normalization
|
||||
**Goal**: Parse 3 BBT formats, generate wikilinks, multi-attachment support
|
||||
**Plans**: 1/1 plan complete
|
||||
**Requirements**: ZPATH-01, ZPATH-02, ZPATH-03
|
||||
|
||||
### Phase 12: Architecture Cleanup
|
||||
**Goal**: Eliminate module boundary leaks (pipeline/ → paperforge/worker/), migrate skills
|
||||
**Plans**: 1/1 plan complete
|
||||
**Requirements**: ARCH-01, ARCH-02
|
||||
|
||||
_Archived: `.planning/milestones/v1.3.md`_
|
||||
|
||||
</details>
|
||||
|
||||
<details>
|
||||
<summary>✅ v1.4 Code Health & UX Hardening (Phases 13-19) — SHIPPED 2026-04-28</summary>
|
||||
|
||||
### Phase 13: Logging Foundation
|
||||
**Goal**: Structured logging, `--verbose` flag, zero behavioral change to user-facing output
|
||||
**Requirements**: OBS-01, OBS-02, OBS-03
|
||||
**Plans**: 3/3 plans complete
|
||||
|
||||
### Phase 14: Shared Utilities Extraction
|
||||
**Goal**: Extract `_utils.py`, eliminate ~1,610 lines of duplication across 7 workers
|
||||
**Requirements**: CH-01, CH-02, CH-05, TEST-03
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 15: Deep-Reading Queue Merge
|
||||
**Goal**: Single canonical `scan_library_records()` for both CLI and Agent consumers
|
||||
**Requirements**: CH-03, CH-04
|
||||
**Plans**: 1/1 plan complete
|
||||
|
||||
### Phase 16: Retry + Progress Bars
|
||||
**Goal**: Resilient OCR with exponential backoff and user-visible progress indication
|
||||
**Requirements**: UX-01, UX-02
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 17: Dead Code Removal + Pre-Commit
|
||||
**Goal**: Clean codebase validated by automated git hooks (ruff)
|
||||
**Requirements**: CH-06, CH-07
|
||||
**Plans**: 1/1 plan complete
|
||||
|
||||
### Phase 18: Documentation + CHANGELOG + UX Polish
|
||||
**Goal**: Complete user/maintainer docs, auto_analyze_after_ocr, CHANGELOG, CONTRIBUTING
|
||||
**Requirements**: DOC-01, DOC-02, DOC-03, UX-03
|
||||
**Plans**: 2/2 plans complete
|
||||
|
||||
### Phase 19: Testing
|
||||
**Goal**: E2E pipeline tests, setup wizard tests, `_utils.py` unit tests (317 passed, 2 skipped)
|
||||
**Requirements**: TEST-01, TEST-02, TEST-04
|
||||
**Plans**: 3/3 plans complete
|
||||
|
||||
_Note: Phase 20 (v1.4.2 "Headless Setup & Obsidian Plugin") was a placeholder. v1.5 expands this into a full plugin settings tab with setup integration — see Phases 20-21 below._
|
||||
|
||||
_Archived: `.planning/milestones/v1.4.md`_
|
||||
|
||||
</details>
|
||||
|
||||
### ✅ v1.5 Obsidian Plugin Setup Integration (Complete)
|
||||
|
||||
**Milestone Goal:** Move the entire PaperForge setup/configuration experience from terminal CLI into the Obsidian plugin's settings tab, so a new user downloads one plugin and completes full installation without touching a terminal.
|
||||
|
||||
- [x] **Phase 20: Plugin Settings Shell & Persistence** — Obsidian settings tab with all setup fields, persistence across restarts, debounced saves (completed 2026-04-29)
|
||||
- [x] **Phase 21: One-Click Install & Polished UX** — Install button with field validation, `spawn`-based subprocess orchestration, human-readable Chinese notices (completed 2026-04-29)
|
||||
|
||||
---
|
||||
- [ ] **Phase 22: Configuration Truth & Compatibility** - Make `paperforge.json` the single runtime truth across CLI, workers, setup, and plugin.
|
||||
- [ ] **Phase 23: Canonical Asset Index & Safe Rebuilds** - Upgrade `formal-library.json` into a rebuildable, atomic, per-paper asset index.
|
||||
- [ ] **Phase 24: Derived Lifecycle, Health & Maturity** - Compute readiness, health findings, maturity, and next steps from source artifacts.
|
||||
- [ ] **Phase 25: Surface Convergence, Doctor & Repair** - Make status, plugin dashboard, Base views, doctor, and repair consume the same canonical semantics.
|
||||
- [ ] **Phase 26: Traceable AI Context Packs** - Generate explainable paper and collection context packs from canonical assets.
|
||||
|
||||
## Phase Details
|
||||
|
||||
### Phase 20: Plugin Settings Shell & Persistence
|
||||
**Goal**: Users can access PaperForge configuration in Obsidian's Settings tab, edit all setup wizard fields, and settings survive restarts and tab switches — all without breaking the existing sidebar.
|
||||
**Depends on**: Phase 19 (tested deployment pipeline exists)
|
||||
**Requirements**: SETUP-01, SETUP-02, SETUP-03
|
||||
### Phase 22: Configuration Truth & Compatibility
|
||||
**Goal**: Users can trust one authoritative PaperForge configuration across Python and plugin surfaces, including brownfield vaults with legacy config shapes.
|
||||
**Depends on**: Phase 21
|
||||
**Requirements**: CONF-01, CONF-02, CONF-03, CONF-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User opens Obsidian Settings → Community Plugins → PaperForge (gear icon) and sees a settings tab with all 8 configuration fields grouped in logical sections with Chinese labels and tooltips
|
||||
2. User edits any text field, navigates to a different settings tab and returns — all edited values remain intact (in-memory state survives `display()` re-invocation without data loss)
|
||||
3. User fills in all fields, closes and re-opens Obsidian, and all values restore correctly from `data.json` — no data loss, corruption, or `TypeError` on null data
|
||||
4. First-time install (no prior `data.json`) loads gracefully with `DEFAULT_SETTINGS` values pre-filled — settings tab renders cleanly without JavaScript errors
|
||||
5. After registering the settings tab via `addSettingTab()`, the existing `PaperForgeStatusView` sidebar and command palette actions (`Sync Library`, `Run OCR`) continue functioning without regression
|
||||
1. User can inspect the effective runtime configuration and clearly see which values come from authoritative `paperforge.json` fields versus plugin UI cache fields.
|
||||
2. User can edit settings through the plugin or setup flow, then run `paperforge sync`, `paperforge ocr`, or `paperforge status` and observe the same resolved paths and runtime behavior.
|
||||
3. User can open an older vault with legacy top-level config keys and keep using existing commands successfully while PaperForge writes the normalized config shape going forward.
|
||||
4. User can change plugin settings without creating a second runtime truth that disagrees with Python-owned config resolution.
|
||||
**Plans**: TBD
|
||||
**UI hint**: yes
|
||||
|
||||
### Phase 21: One-Click Install & Polished UX
|
||||
**Goal**: Users trigger full PaperForge setup with one click and receive step-by-step Chinese feedback via Obsidian notices — no terminal interaction required, no raw traceback exposure.
|
||||
**Depends on**: Phase 20 (settings tab shell and persistence must exist before adding install behavior)
|
||||
**Requirements**: INST-01, INST-02, INST-03, INST-04
|
||||
### Phase 23: Canonical Asset Index & Safe Rebuilds
|
||||
**Goal**: Users can rebuild and safely refresh a canonical literature asset index from existing library-records, OCR outputs, formal notes, and repair results.
|
||||
**Depends on**: Phase 22
|
||||
**Requirements**: ASSET-01, ASSET-02, ASSET-03, ASSET-04, MIG-02
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User fills in all required configuration fields and clicks "安装配置" — the full setup pipeline executes: `paperforge.json` is written, directories are created, environment checks pass, and agent configs are generated
|
||||
2. During setup execution, the Install button is visually disabled and displays "正在安装..." — clicking it again produces no duplicate subprocess (double-click prevention with `setDisabled(true)`)
|
||||
3. User sees step-by-step Chinese notice toasts throughout setup progress ("正在创建目录... ✓", "正在写入配置文件... ✓", "正在检查环境... ✓") — raw Python tracebacks or terminal stderr content is never displayed directly in the Notice
|
||||
4. User leaves a required field empty (e.g., Vault path) and clicks Install — receives a specific, friendly Chinese error notice (e.g., "未找到 Vault 路径,请检查设置") before any subprocess is spawned, preventing cryptic mid-install failures
|
||||
5. After setup completes (success or failure), the sidebar `PaperForgeStatusView` panel and command palette actions (`Sync Library`, `Run OCR`) continue working normally — settings tab code is strictly additive with zero coupling to sidebar internals
|
||||
**Plans**: 2 plans (21-01, 21-02)
|
||||
1. User can rebuild `formal-library.json` from existing library-records, OCR outputs, and formal notes without manually repairing the index file itself.
|
||||
2. User can inspect the canonical index and see each paper represented once with stable identifiers, schema version, normalized paths, and provenance.
|
||||
3. After `sync`, `ocr`, `deep-reading`, or `repair`, user can refresh the index incrementally and see affected papers update without unrelated asset records being corrupted.
|
||||
4. If an index write is interrupted, the previous readable index remains intact and user can rerun the rebuild safely on Windows.
|
||||
5. During migration or rebuild, generated artifacts can be regenerated without losing hand-authored notes or user intent fields.
|
||||
**Plans**: TBD
|
||||
|
||||
### Phase 24: Derived Lifecycle, Health & Maturity
|
||||
**Goal**: Users can understand each paper's lifecycle state, health findings, maturity level, and next best action from source-derived evidence instead of hand-edited status flags.
|
||||
**Depends on**: Phase 23
|
||||
**Requirements**: STATE-01, STATE-02, STATE-03, STATE-04, AIC-01
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can see each paper's lifecycle state such as imported, indexed, PDF-ready, fulltext-ready, deep-read, and AI-context-ready, derived from actual source artifacts.
|
||||
2. User can see concrete health findings explaining why a paper is blocked, including PDF, path, OCR, note-link, and generated-asset evidence.
|
||||
3. User can see a recommended next step for a paper or collection, such as `sync`, `ocr`, `repair`, `/pf-deep`, or rebuild index.
|
||||
4. User can trust that readiness states are computed from source artifacts rather than hand-edited status fields.
|
||||
5. User can see a transparent maturity/workflow level with explainable criteria instead of a black-box score.
|
||||
**Plans**: TBD
|
||||
|
||||
### Phase 25: Surface Convergence, Doctor & Repair
|
||||
**Goal**: Users see one consistent library-state model across `paperforge status`, doctor/repair flows, plugin dashboard, and generated Base views, with migration-safe repair paths.
|
||||
**Depends on**: Phase 24
|
||||
**Requirements**: SURF-01, SURF-02, SURF-03, SURF-04, MIG-01, MIG-03, MIG-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User sees the same lifecycle, health, maturity, and next-step meaning in `paperforge status`, plugin dashboard, and generated Base views because they all read the canonical index.
|
||||
2. User can use plugin dashboard actions as thin shells over CLI commands and get the same outcomes without JavaScript re-implementing lifecycle or health rules.
|
||||
3. User can run `paperforge doctor` or `paperforge repair` on an older vault and get explicit findings for stale configs, old index formats, old Base/templates, or partial OCR assets before those issues silently break workflows.
|
||||
4. User can repair source artifacts first and then rebuild derived state, and the repaired result is reflected across CLI, plugin, and Base surfaces without hand-editing the canonical index.
|
||||
5. If migration or rebuild fails, user has a documented and reversible rebuild path that restores working generated surfaces without losing notes or intent fields.
|
||||
**Plans**: TBD
|
||||
**UI hint**: yes
|
||||
|
||||
---
|
||||
### Phase 26: Traceable AI Context Packs
|
||||
**Goal**: Users can generate explainable, reusable AI context packs for one paper or a collection using only canonical, traceable PaperForge assets.
|
||||
**Depends on**: Phase 25
|
||||
**Requirements**: AIC-02, AIC-03, AIC-04
|
||||
**Success Criteria** (what must be TRUE):
|
||||
1. User can generate an ask-this-paper or copy-context-pack bundle for a single paper that clearly lists included metadata, fulltext, note links, and provenance.
|
||||
2. User can generate a collection-level context pack from canonical assets without requiring hardcoded discipline-specific extraction schemas.
|
||||
3. User can only invoke AI context entry points when PaperForge can explain what source assets were included or why pack generation is blocked.
|
||||
4. User can trace every item in a context pack back to the originating PDF, OCR output, and formal note.
|
||||
**Plans**: TBD
|
||||
|
||||
## Progress
|
||||
|
||||
**Execution Order:** Phases 20 → 21 are strictly sequential. Phase 20 provides the settings shell; Phase 21 adds install behavior on top.
|
||||
**Execution Order:** Phases execute sequentially: 22 → 23 → 24 → 25 → 26.
|
||||
|
||||
| Phase | Milestone | Plans Complete | Status | Completed |
|
||||
|-------|-----------|----------------|--------|-----------|
|
||||
| 1. Config & Command Foundation | v1.0 | 3/3 | Complete | 2026-04-23 |
|
||||
| 2. PaddleOCR & PDF Path Hardening | v1.0 | 2/2 | Complete | 2026-04-23 |
|
||||
| 3. Config-Aware Obsidian Bases | v1.0 | 2/2 | Complete | 2026-04-23 |
|
||||
| 4. End-To-End Onboarding | v1.0 | 2/2 | Complete | 2026-04-23 |
|
||||
| 5. Release Verification | v1.0 | 2/2 | Complete | 2026-04-23 |
|
||||
| 6. Setup & CLI Diagnostics | v1.1 | 3/3 | Complete | 2026-04-24 |
|
||||
| 7. Zotero PDF & Metadata Repair | v1.1 | 2/2 | Complete | 2026-04-24 |
|
||||
| 8. Deep Helper & Sandbox Gate | v1.1 | 2/2 | Complete | 2026-04-24 |
|
||||
| 9. Command Unification & CLI | v1.2 | 2/2 | Complete | 2026-04-24 |
|
||||
| 10. Documentation & Cohesion | v1.2 | 2/2 | Complete | 2026-04-24 |
|
||||
| 11. Zotero Path Normalization | v1.3 | 1/1 | Complete | 2026-04-24 |
|
||||
| 12. Architecture Cleanup | v1.3 | 1/1 | Complete | 2026-04-24 |
|
||||
| 13. Logging Foundation | v1.4 | 3/3 | Complete | 2026-04-27 |
|
||||
| 14. Shared Utils Extraction | v1.4 | 2/2 | Complete | 2026-04-27 |
|
||||
| 15. Queue Merge | v1.4 | 1/1 | Complete | 2026-04-27 |
|
||||
| 16. Retry + Progress | v1.4 | 2/2 | Complete | 2026-04-27 |
|
||||
| 17. Dead Code + Pre-Commit | v1.4 | 1/1 | Complete | 2026-04-27 |
|
||||
| 18. Docs + CHANGELOG + UX | v1.4 | 2/2 | Complete | 2026-04-27 |
|
||||
| 19. Testing | v1.4 | 3/3 | Complete | 2026-04-28 |
|
||||
| 20. Plugin Settings Shell & Persistence | v1.5 | 1/1 | Complete | 2026-04-29 |
|
||||
| 21. One-Click Install & Polished UX | v1.5 | 2/2 | Complete | 2026-04-29 |
|
||||
| 22. Install Wizard Modal | v1.5 | 0/0 | Planned | — |
|
||||
| Phase | Plans Complete | Status | Completed |
|
||||
|-------|----------------|--------|-----------|
|
||||
| 22. Configuration Truth & Compatibility | 0/TBD | Not started | - |
|
||||
| 23. Canonical Asset Index & Safe Rebuilds | 0/TBD | Not started | - |
|
||||
| 24. Derived Lifecycle, Health & Maturity | 0/TBD | Not started | - |
|
||||
| 25. Surface Convergence, Doctor & Repair | 0/TBD | Not started | - |
|
||||
| 26. Traceable AI Context Packs | 0/TBD | Not started | - |
|
||||
|
||||
---
|
||||
|
||||
*Roadmap updated: 2026-04-29 — Phase 22 planned (settings/install separation)*
|
||||
*Roadmap updated: 2026-05-03 for milestone v1.6 planning*
|
||||
|
|
|
|||
|
|
@ -2,11 +2,11 @@
|
|||
gsd_state_version: 1.0
|
||||
milestone: v1.6
|
||||
milestone_name: AI-Ready Literature Asset Foundation
|
||||
status: Defining requirements
|
||||
stopped_at: New milestone initialized
|
||||
status: Ready to plan
|
||||
stopped_at: Roadmap created for v1.6
|
||||
last_updated: "2026-05-03"
|
||||
progress:
|
||||
total_phases: 0
|
||||
total_phases: 5
|
||||
completed_phases: 0
|
||||
total_plans: 0
|
||||
completed_plans: 0
|
||||
|
|
@ -19,53 +19,46 @@ progress:
|
|||
See: .planning/PROJECT.md (updated 2026-05-03)
|
||||
|
||||
**Core value:** Researchers always know what papers they have, what state those papers are in, and whether each paper is reliably usable by AI with traceable fulltext, figures, notes, and source links.
|
||||
**Current focus:** Milestone v1.6 definition
|
||||
**Current focus:** Phase 22 — Configuration Truth & Compatibility
|
||||
|
||||
## Current Position
|
||||
|
||||
Phase: Not started (defining requirements)
|
||||
Plan: —
|
||||
Status: Defining requirements
|
||||
Last activity: 2026-05-03 — Milestone v1.6 started
|
||||
Phase: 22 of 26 (Configuration Truth & Compatibility)
|
||||
Plan: 0 of TBD in current phase
|
||||
Status: Ready to plan
|
||||
Last activity: 2026-05-03 — Created v1.6 roadmap and traceability mapping
|
||||
|
||||
Progress: [░░░░░░░░░░] 0%
|
||||
|
||||
## Performance Metrics
|
||||
|
||||
**Velocity:**
|
||||
- Total plans completed: 41
|
||||
- Average duration: Not yet tracked consistently
|
||||
- Total execution time: Not yet tracked consistently
|
||||
|
||||
- Total plans completed: 38 (across Phases 1-19)
|
||||
- Average duration: Not yet tracked
|
||||
- Total execution time: Not yet tracked
|
||||
**By Phase:**
|
||||
|
||||
**By Phase (most recent):**
|
||||
| Phase | Plans | Total | Avg/Plan |
|
||||
|-------|-------|-------|----------|
|
||||
| 20. Plugin Settings Shell & Persistence | 1/1 | Not tracked | Not tracked |
|
||||
| 21. One-Click Install & Polished UX | 2/2 | Not tracked | Not tracked |
|
||||
| 22-26. v1.6 roadmap | 0/TBD | - | - |
|
||||
|
||||
| Phase | Milestone | Plans | Status |
|
||||
|-------|-----------|-------|--------|
|
||||
| 19. Testing | v1.4 | 3/3 | Complete |
|
||||
| 20. Plugin Settings Shell | v1.5 | 3/3 | Complete |
|
||||
| 21. One-Click Install | v1.5 | 2/2 | Planned |
|
||||
|
||||
**Recent Trend:** v1.4 averaged ~1 day per phase. Target for v1.5 should be similar.
|
||||
|
||||
*Updated after each plan completion*
|
||||
| Phase 20 P20 | 2min | 3 tasks | 1 files |
|
||||
| Phase 21 P21-01 | — | 3 tasks | 2 files |
|
||||
| Phase 21 P21-02 | — | 2 tasks | 1 files |
|
||||
| Phase 21-one-click-install-and-polished-ux P01 | 5 min | 3 tasks | 2 files |
|
||||
| Phase 21-one-click-install-and-polished-ux P02 | 5 min | 2 tasks | 1 files |
|
||||
**Recent Trend:**
|
||||
- Last 5 plans: Not normalized in historical records
|
||||
- Trend: Stable
|
||||
|
||||
## Accumulated Context
|
||||
|
||||
### Decisions
|
||||
|
||||
- **v1.5**: Settings tab in Obsidian plugin as setup entry point — eliminates terminal requirement; plugin becomes single download artifact. Zero new npm or Python dependencies. (See PROJECT.md Key Decisions)
|
||||
|
||||
Decisions are logged in PROJECT.md Key Decisions table.
|
||||
Recent decisions affecting current work:
|
||||
|
||||
- **Phase 20**: Plugin settings use Obsidian's `PluginSettingTab` API, `loadData()`/`saveData()` for persistence, `Setting` form builder for UI. No TypeScript, no build system. Plugin is pure JS CommonJS (`paperforge/plugin/main.js`).
|
||||
- **Phase 20-21**: Settings tab is purely additive — zero changes to existing `PaperForgeStatusView` sidebar or `ACTIONS[]` definitions.
|
||||
- **Phase 21**: Subprocess orchestration uses `node:child_process.spawn` (not `exec`) for non-blocking setup execution with stdout/stderr parsing.
|
||||
- [Phase 21-one-click-install-and-polished-ux]: Settings tab is purely additive — zero changes to PaperForgeStatusView sidebar or ACTIONS[] definitions
|
||||
- [Phase 21-one-click-install-and-polished-ux]: Subprocess uses spawn (not exec) for stdout streaming, --headless (not --non-interactive), API key via --paddleocr-key flag
|
||||
- v1.6 stays Python-first: config, lifecycle, health, maturity, and context-pack rules remain Python-owned.
|
||||
- `formal-library.json` evolves into the canonical derived asset index rather than introducing a parallel index.
|
||||
- Plugin remains a thin shell over CLI logic and canonical index outputs.
|
||||
|
||||
### Pending Todos
|
||||
|
||||
|
|
@ -73,12 +66,11 @@ None yet.
|
|||
|
||||
### Blockers/Concerns
|
||||
|
||||
- **Phase 20**: Critical pitfalls from research — debounced saves (500ms) prevent `data.json` corruption; `display()` lifecycle requires immediate in-memory update on change; `loadData()` null merge via `Object.assign({}, DEFAULTS, data || {})`
|
||||
- **Phase 21**: Windows path encoding with spaces/Unicode requires `spawn` with proper quoting; raw stderr must be parsed into friendly Chinese messages before Notice display; button double-click prevention via `setDisabled(true)`
|
||||
- Brownfield rollout must protect existing vaults, old Base templates, partial OCR assets, and legacy config shapes.
|
||||
- AI context entry points should ship only after provenance and readiness are trustworthy.
|
||||
|
||||
## Session Continuity
|
||||
|
||||
Last session: 2026-05-02
|
||||
Last Activity: All 20 phases (01-21) learnings extracted — 355 items total (161 decisions, 75 lessons, 76 patterns, 43 surprises)
|
||||
Stopped at: Completed Phase 21 (One-Click Install & Polished UX) — both plans delivered
|
||||
Last session: 2026-05-03 00:00
|
||||
Stopped at: Roadmap creation complete; next step is `/gsd-plan-phase 22`
|
||||
Resume file: None
|
||||
|
|
|
|||
Loading…
Reference in a new issue