DIRECTION / DESIGN / FEAT / ROADMAP / HELPThe first AI value layer on the shipped Foundation: ask your library and draft with AI where every citation is a deterministic pointer to Source truth — the same citation nodes manual /cite emits, no fabrication.
| Feature | ☐ Grounded-Assist slice | Status |
|---|---|---|
| dynamic-organization | the context-routing backbone grounded retrieval consumes — facet scope (M1) + associative recall (M5) + stable anchors (M7) | Building · M0–M6 ✓ + M5 consumer-wiring ✓ + M7 W2-live guards + PPR DeepRecall ✓ (#708); rest of M7 bar is throughput/data-gated |
| first-warm-library-ask | after import, see which papers are indexed/preparing and ask the ready subset with honest scope + visible source fragments | Shipped · Slice 1 complete 2026-07-02 — Gates A+B closed; rollup RPC #694 + Source-anchored chat citations #695 + readiness UI/badge/Ask entry/answer disclosure #390–#393; live IT 11/11 #699; help article shipped. Slice 2 chips (Gate C) deferred |
| grounded-write | AI drafting/revision where every citation deterministically grounds to a Library Source — the centerpiece WTP capability | Shipped · G0–G4 core loop built & merged — validator #661 + proto seam #663 → G1 no-fabrication drafter #674 → G2 DraftGroundedWrite RPC + review UI #675/#382 → G3 editor insertion (shared insertCitation) #383 → G4 fail-closed guardrails proven e2e #678 → entry-point /draft #386 → M5 substrate slices 1–6 #681–#693: the full draft → review → insert loop is user-reachable, every accepted citation the same shuboCitation node manual /cite emits, every failure fails closed. PPR DeepRecall ✓ landed (#708); remaining upgrades (later cuts): USER-origin provenance + live e2e |
| visual-rag | visually-rich docs (charts/tables/scanned pages) retrievable by visual content; answers cite the region (bbox+page) | Building · pipeline ✓ default-OFF; next VL-rerank + cite-the-region |
| scholarly-providers | full-text + metadata depth — multi-source cascade (arXiv→Unpaywall→PMC→S2) so more imported papers reach full text instead of ABSTRACT_ONLY; the AI loop can only retrieve what was fetched, so this directly raises Ask/Write quality (also unblocks Create Bibliography via byline 238) | Shipped (2026-07-02) — full-text cascade ✓ earlier; metadata reconcile core MERGED (backend #704: try-each→reconcile engine, ladder + flag-never-overwrite, provenance 000199, byline 238 parse + backfill 000200; console #395) |
/cite emits) → zero invented citations. The non-AI Foundation loops stay fully usable underneath — AI is a lazy gate on top, never a replacement.ai_index_status schema keystone + migration 000195 (#665), and the Scholarly S2 full-text HTTP resolver (#664). Then the full Grounded Write column landed (2026-07-01): RM full-text Part 2 completed (SourceIndexWorkflow #670 + auto-index-on-import #671) → G1 the no-fabrication drafter (#674, retrieve allowed set → constrained prompt → validate → fail-closed) → G2 the DraftGroundedWrite RPC + console GroundedWriteReviewPanel review-before-mutate UI (#675 / #382) → G3 editor insertion, where accepting a draft inserts through the same shared insertCitation path as manual /cite (#383) so the live References section updates with no separate AI path. → G4 fail-closed guardrails proven end-to-end (#678, a negative-integration suite over the real retrieve→generate→parse→validate loop: unsupported prompt / model-invented reference / missing full text each fail closed with a typed reason, inserting nothing). Then the loop was made user-reachable: the in-editor /draft "Draft from sources" command (#386) mounts a compose (scope prefilled with the note's cited sources, refinable) → review → insert panel, and M5 substrate slices 1–3 (#681 → #688 → #689) make SearchFileContent emit the full ratified §4/§9.3 result struct per match — the source_fragment triple (file_id + stable_anchor_id + locator), the citable source_id (a one-query batched join over the RM full-text Part 2 ai_index_file linkage), and the provenance trust triple (origin AUTO on the base path, confidence = the retrieval score, locked reserved for a future Source-pin) — so a consumer gets the whole M4c clickback + no-fabrication identity in one round trip. Then the consumer-wiring completed (slices 4–5, #690/#692): the fail-closed citable gate (only Source-resolving matches reach a grounded consumer; resolution failure ⇒ empty set, never an unverifiable match) and the §9.2 scope M0-tag filter with the §9.5 thin-scope fallback (CFG_GROUNDEDWRITE_THIN_SCOPE_MIN, default 3 — a thin scoped citable set widens to the whole library once and discloses scope_fallback). Finally slice 6 (#693) closed the seam: the "missing M5 walk" turned out to be a consumer-wiring gap, not a missing algorithm — W5's spreading-activation math + the W4 edge fetch already existed in pkg/memory, wired to the memory-palace space — so expand=true now seeds rooms from the scope's collections, walks one hop over backbone∪overlay (β=0.1), retrieves a second pass over the top associated collections, and fuses by RRF, with the thin-scope fallback taking precedence and the expansion pass held to the same citable/no-fabrication bar. The whole G0→G4 loop + entry-point + the complete §9 retrieval seam is built and merged on main. The PPR DeepRecall escalation landed 2026-07-02 (#708 — escalate-by-need over the hop-1 frontier, 2-hop live e2e green); remaining upgrades (later cuts): USER-origin provenance for scoped seeds, live e2e/Playwright./context reveal + tiered compaction + manual /compact (eval +41 pts, async no-stall, gateway + integration #603, SDK #176, console controls #351/#180); the agent-runtime catch-up that keeps long grounded sessions coherent. Agentic Loop (verify phase) shipped — explicit audited verify stage (Slice 1→2a→2b→3 persisted console step, visual-QA'd) + model-agnostic web search (rec #8); stays live only for 2 later items. Tool-surface shrink continues on the same track.Free to validate. A user completes reading, cited writing, and library-judgment with zero AI call. Foundation + Foundation-parallel + Foundation-hardening rows.
DESIGN-reference-source-chain.md D13–D14 (metrics are a volatile provider projection, never csl_json truth) · Gate=2 — nothing depends on it, so parallel within Foundation; must not block Note CitationsDESIGN-reference-source-chain.md D5a/5b (full-text = multi-source cascade + version provenance) + D9a/9b (metadata reconciled + structured-best-effort byline) · generalizes the shipped Scholarly-Metrics S2.5 reconcile pattern · §3 backlog (CORE / OpenAlex best_oa / bioRxiv / ISBNdb) is measured-gated · J7 outbound discovery-search is separate (FEAT-paper-discovery) · design backend/docs/agent/scholarly-providers.md · owner @pinglinAfter Foundation: source-bounded AI writing, then a submission-ready manuscript. Dynamic Organization is the context-routing substrate that feeds grounded write.
DESIGN-faceted-organization:index action #670auto_ai_index import-time auto-trigger #671 — the library indexes itself (import→INDEXED, integration green)readiness rollup + Ask panel (Gate B) nextInward agent-architecture, not Foundation features. Parallel work that must not block Foundation; mostly not user-facing (R7 n/a unless a user-visible slice ships).
backend/docs/adr/agent-tool-surface-shrink/Gated after personal-first is complete. Share verbs unlock these.
Later acquisition / enrichment / reading-axis wedges. Useful, not Foundation blockers; promote when they enter a critical path or a ranked slot.
Operator-only, read-only troubleshooting lenses in admin/doc, gated by guardPlatformOperator. Not user-facing; ranking provisional (owner).
FEAT-doc-dashboard; ranking provisional (owner)Large features compress to a minimal MVP first. Useful subfeatures outside that MVP stay visible here with priority, instead of bloating the active acceptance bar. They do not need full implementation planning until they enter a critical path or a ranked slot.
Scope ☑ facts inside the FEAT, never board states. A finished FEAT closes to archive/ (self-labeled Shipped ✓) with the repo's docs/ + help/ as its living record. The board shows only: what's shipped, what's building, what's next.Two former "layers" were cut to stay simple: archive/ is a state (Retired), not a doc type — see Status above; and inward "how it works" is not a planning prefix — it lives in each repo's docs/ / docs/invariants/ next to the code (the quality gate), so planning owns only the outward help/.
| Layer | Prefix / file | Manages | Time |
|---|---|---|---|
| Vision | DIRECTION- | why we exist / where to go | rarely changes |
| Design | DESIGN- | cross-feature laws a FEAT obeys | revised, never ships |
| Feature | FEAT-<name> | one buildable unit (+ Scope ☑/☐) | ships complete |
| Board | ROADMAP.md | ranking + Now + discipline | always rolling |
| Help (outward) | help/ · MkDocs | what a user can do today · en/zh-Hans/zh-Hant · on ship | tracks shipped |
shubo-planning skill — fires whenever a feature/scope is discussed.