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 ✓; next M5 consumer-wiring + M7 W2-live |
| first-warm-library-ask | after import, see which papers are indexed/preparing and ask the ready subset with honest scope + visible source fragments | Next · Owner @pinglin · Gate A CLOSED (Reference AI-index contract) — RM full-text Part 2 now buildable; Gate B before the Ask UI |
| grounded-write | AI drafting/revision where every citation deterministically grounds to a Library Source — the centerpiece WTP capability | Building · Owner @pinglin · G0–G4 CORE LOOP BUILT & MERGED — validator #661 + proto seam #663 → G1 drafter #674 → G2 RPC + review UI #675/#382 → G3 editor insertion (shared insertCitation) #383 → G4 fail-closed guardrails proven e2e #678 → entry-point the in-editor /draft "Draft from sources" command #386 (scope prefilled with cited sources, refinable, compose→review→insert) → M5 substrate slices 1–6 #681/#688/#689/#690/#692/#693 (SearchFileContent emits the full ratified §4/§9.3 result struct and consumes the whole #663 retrieval seam: the fail-closed citable gate, the §9.2 scope M0-tag filter + §9.5 thin-scope scope_fallback, and the M5 associative expand — W5's existing spreading-activation walk consumer-wired, collection-seeded → one-hop over backbone∪overlay → second pass → RRF fuse). The full loop is user-reachable end-to-end. Remaining upgrades (later cuts): PPR DeepRecall + 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) | Next · plan-ready (framework + cascade + reconcile; PMC/S2 new; not gated on a design gate) |
/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. Remaining upgrades (later cuts): the PPR DeepRecall escalation, 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.