Shubo · Roadmap

Snapshot of ROADMAP.md · 2026-06-29 · the markdown is canonical (regenerate after edits)
file-based Linear · DIRECTION / DESIGN / FEAT / ROADMAP / HELP
To decide what's next, read this board — the Now cycle + the ranked backlog — and open a single FEAT- only when it's the in-flight one. Never read every FEAT to choose (that's how focus is lost). Closed FEATs archive, so the board stays a short list of in-flight work — a focused board, not a pile of stale tickets.
Now — current cycle
▶ GROUNDED ASSIST · source-bounded AI

Light up source-bounded AI over your personal library

The 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.

✓ Foundation (the prior wave) is shipped read + cite + judge · zero AI — Reference Library, Import Door, Note Editor, Note Citations, Paper Reader, Source Curation, and Scholarly Metrics (Cited-by N + author h-index) all shipped end-to-end. Grounded Assist layers AI on top; it never replaces the non-AI bicycle underneath.
Feature☐ Grounded-Assist sliceStatus
dynamic-organizationthe 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-askafter import, see which papers are indexed/preparing and ask the ready subset with honest scope + visible source fragmentsNext · design gate A (Reference AI-index contract)
grounded-writeAI drafting/revision where every citation deterministically grounds to a Library Source — the centerpiece WTP capabilityNext · design gate G0 (AI citation-operation contract)
visual-ragvisually-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
Ask loop: import a library → papers auto-index (readiness visible) → ask a question scoped to the ready subset → answer grounded in retrieved source fragments, with honest "what isn't indexed yet" disclosure.
Grounded-write loop: in a note → invoke an AI draft/revise command → generated text lands with citation nodes that resolve to real Library Sources (the same nodes manual /cite emits) → zero invented citations. The non-AI Foundation loops stay fully usable underneath — AI is a lazy gate on top, never a replacement.
Critical path: Dynamic-Organization M5 (associative recall) + M7 (stable anchors) are the load-bearing dependency (ratified @xiaofei 2026-06-15) — grounded AI needs scope-narrowing, fine-grained recall, and trustworthy anchors, or it cites things a researcher can't trust and burns tokens on irrelevant context. Two design gates close before build: Grounded Write G0 + First Warm Ask Gate A. First Warm Library Ask can ship first as the RAG-activation proof that de-risks Grounded Write's retrieval.
‖ Parallel platform tracks (@pinglin · not blocking) Context Management Stages 1–3 shipped — the user-visible /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) and Tool-surface shrink continue on the same track.
Not in Grounded Assist acceptance: Manuscript Finish (Submission Export → Manuscript Review) · all Share Era (collaboration/comment/notification) · Citation Discovery (post-RAG growth leaf) · deep Zotero/Mendeley connectors · billing. These stay next-stage; pull them into a §Now roll only when Grounded Assist is green.
Backlog — ranked, foundation before leaves

FOUNDATION personal library · read + cited writing + judgment

Free to validate. A user completes reading, cited writing, and library-judgment with zero AI call. Foundation + Foundation-parallel + Foundation-hardening rows.

1Reference Library
Shipped · foundation substrate
now, the root — Library list/search/filter, full-text availability, My work, import/export, and arXiv enrich all landed; R3 AI-index bridge boundary is plan-ready but post-Foundation (Grounded Assist), not Foundation
Import/export shipped#127 / #203 mergedLater · AI-index bridge
Pull 5Gate 5Effort 3Rev 5
2Note Editor
Shipped ✓ · + Wave 2
foundation + Wave 2 writing essentials all shipped — production notes, CRUD, location/move, TipTap editor, slash commands, word/char count, find/replace, markdown interop, image paste, sub/superscript, footnotes, table-of-contents; no sharing UX; editor FEAT stays live for a future Wave 3
Backend CRUD/body/move/revision/ACL ✓ #361FE editor ✓ #240Wave 2 ✓ #281/#282-284/#287-288/#296/#301
Pull 4Gate 4Effort 4Rev 5
blocks Note Citations, Grounded AI Write, Submission Export, Manuscript Review
3Import Door
Shipped · .bib door
narrow onboarding slice — DOI paste + .bib Foundation door shipped; RIS/CSL-JSON + DOI/arXiv input ride the same parser/import path; PDF upload/import and route ①/③/add-your-work later
Route ② shipped#127 / #203 merged
Pull 5Gate 4Effort 4Rev 5
depends on reference-manager Source truth; does not block Note Editor
4Note Citations
Shipped · #438/#349
the non-AI writing bicycle — /cite a Library paper or @-mention → Source-backed citation nodes → live References list → full CSL style picker/search + style persistence; citation/reference hover cards; note-scope Copy + Export BibTeX. Manual cited-writing loop landed end-to-end 2026-06-29 (backend #438 body/style/source-resolution contract + frontend-shubo #349; backend #598 hardened source search/export keys)
backend #438 / #598frontend-shubo #349Note Editor prereq ✓ #240
Pull 5Gate 5Effort 3Rev 4
now feeds Grounded AI Write, Submission Export, Manuscript Review — they consume its citation-node truth. Follow-ups: Source-aware CMD+K, locator/rebind depth, full CSL XML same-origin corpus
27Scholarly Metrics
Shipped · S1+S2 built & k6-green
core-MVP library judgment (@pinglin 2026-06-28) — S1 "Cited by N"/counts-by-year on Source via the shipped OpenAlex enrich + Source Curation rail; S2 the Author entity (zero-migration from x-openalex-author-ids) + h-index. Deterministic OpenAlex projection, no AI. Honest: S2 adds a new entity → expands Foundation, must not block Note Citations
S1 "Cited by N" — k6 13/13 (#586 + #341)S2 Author entity + h-index — k6 16/16 (#587 + #342)S3 post-MVP (impact-sort, follow-feed)
Pull 4Gate 2Effort 3Rev 5
rides the shipped Source enrich (#116) + Source Curation rail (#276/#299) · obeys 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 Citations
5Paper Reader
Shipped · Read v1 + Mark v2 (M0–M3)
Foundation parallel — Read v1 opens a Library PDF in a large branded reader; Mark v2 highlight → note → jumpback + usr private / org workspace layers + creator attribution shipped (frontend #137/#138 + backend #322 on merged Source access gate #271). M4 clickback is a 2D matrix: M4a Source-level from note citations ✓ (#349) and M4b file page/highlight from chat ✓ (inherited RAG infra, file-centric) both ship; M4c Source-anchored page-level (cite → Source → page) is the remaining slice
Read v1 shippedMark v2 M0–M3 shippedM4a Source-clickback ✓M4b file page-clickback ✓M4c Source-anchored page later
Pull 5Gate 4Effort 3Rev 4
does not block non-AI cited writing
6Source Access Foundation
Shipped · #271/#322
Foundation hardening — the one reusable can_read / can_update / can_delete_source boundary every Source consumer calls; personal-ns + org/library semantics (verified 2026-06-24)
Shipped · #271 per-object source: FGA boundary + #322 annotation consumption
Pull 4Gate 5Effort 4Rev 5
live gate for Paper Reader Mark v2 endpoints · Source-backed citations · grounded fragments — they call it instead of inventing Source ACLs
22Source Curation
Shipped · #420/#480
Foundation hardening — Source completion escape hatch + Note Citations' incomplete-repair path: shared Source details rail in Library + Paper Reader, inline metadata edit (title/abstract/authors/year/venue/DOI), re-verify/refresh, attach/replace PDF
Backend #420 / #480frontend-shubo #276 / #299title rename ✓ inline #276
Pull 4Gate 4Effort 4Rev 5
precursor to the deep Zotero/PDF connector work

GROUNDED ASSIST → FINISH the AI value layer

After Foundation: source-bounded AI writing, then a submission-ready manuscript. Dynamic Organization is the context-routing substrate that feeds grounded write.

10Dynamic Organization
Building · context routing
context-routing system for agents: consolidates unstructured content + long-term memory into metadata scopes, associative recall, and evidence anchors so agents find relevant context with fewer tokens; folders stay user-owned. M0 substrate runs parallel with Foundation
M0–M5 builtM3 autonomy completeM4 scope + RM facetsM6 ChatTopic ✓M7 anchor path proven · W2 remainderM8 laterGrounded Write dep ratified
Pull 4Gate 4Effort 2Rev 4
depends on reference-manager + Import Door (a populated library) · provides the Grounded AI Write context-routing substrate · obeys DESIGN-faceted-organization
11First Warm Library Ask
Next · activation
Grounded Assist activation/RAG proof after Import Door + RM full-text Part 2/R3 — readiness rollup, manual Library Ask, source fragments, and scope disclosure
Plan ready · Slice 1Slice 2 chips later
Pull 3Gate 2Effort 3Rev 5
good-to-have for onboarding activation; not the writing spine
7Grounded AI Write
Grounded Assist · needs design pass
Grounded Assist — after Note Editor + Note Citations + RM AI-index/RAG + Dynamic Organization context routing; AI suggestions emit citation nodes; first AI command contract is not plan-ready
Not plan ready
Pull 5Gate 5Effort 2Rev 4
depends on Note Editor + Note Citations + RM AI-index/RAG + Dynamic Organization context-routing consumer contract
8Submission Export
Manuscript Finish · design pinned
Manuscript Finish — after Note Citations; cited note/draft → docx/LaTeX/venue handoff
Pull 4Gate 3Effort 2Rev 3
depends on Note Editor + Note Citations (cited note/draft model)
9Manuscript Review
Manuscript Finish · design pinned
Manuscript Finish — after Grounded AI Write; claim/citation audit (unsupported claims, weak evidence, misattribution)
Pull 4Gate 3Effort 2Rev 4
depends on Note Citations + Grounded AI Write (a cited note/draft + source provenance)

PLATFORM agent infra · parallel @pinglin

Inward 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).

12Credit Metering (pipeline)
Shipped
pipeline-backend meters document-parsing LLM/VLM/embedding via the centralized mgmt credit sink (record-at-0 for self-hosted, tagged document/pipeline), replacing the legacy Instill-Credit pre-check; + admin console document badge
#357/#358/#359 + FE #87meter moved to artifact worker #512
Pull 3Gate 3Effort 3Rev 4
inward platform — not on the Foundation critical path
23Tool-surface shrink
Shipped · default on
inward agent architecture — the chat agent's read/exec surface is now one generic URI-addressed verb set (query/ls/grep/read/exec over collection://·workspace://·memory://·note://·kb://); the 14 bespoke per-entity tools + flag retired; the row write (create/update/delete) + column write surface is complete and integration-tested
Default on · #471/#486/#489exec write surface complete☐ exec column type-alter
Pull 2Gate 2Effort 4Rev 5
not user-facing → no help article (R7 n/a); obeys backend/docs/adr/agent-tool-surface-shrink/
24Context Management
Shipped · Stages 1–3
accurate token accounting + SOTA tiered compaction + the /context reveal; replaces the len/4 heuristic; exploits Shubo's deep memory for loss-resistant compaction. The console /context view is the user-visible slice
Stage-1 /context (user-facing)Stage-2 compaction + warm-summaryStage-3 /compact + eval +41pts · #596/#603/#176/#351/#180
Pull 3Gate 2Effort 3Rev 4
inward platform — console /context view triggers R7 on ship
25Agentic Loop (verify phase)
Building
surface the knowledge-agent loop as named phases (retrieve→answer→verify) like Claude Code; verify leans into Shubo's grounding strength — citation resolution + mention validation become an observable, audited stage
Verify Slice 1 shipped #546Slice 2 self-correctionSlice 3 FE verify stage
Pull 3Gate 2Effort 2Rev 4
inward platform — R7 fires on the frontend verify stage

SHARE ERA collaboration layer

Gated after personal-first is complete. Share verbs unlock these.

14Real-time Collaboration
Next · designed
when share lands — the collaboration base (Hocuspocus + Yjs)
Pull 3Gate 5Effort 3Rev 5
depends on personal-first complete
15Comments
Next · designed
right after collab — "share to comment", anchors free from Yjs
Pull 4Gate 3Effort 4Rev 5
depends on collaboration (Yjs anchor layer)
16Notification Center
Next · designed
with comment — mention/reply triggers; self-built center + Sonner toast
Pull 3Gate 3Effort 4Rev 5
depends on collaboration (event source)

GROWTH · later enrichment & activation

Later acquisition / enrichment / reading-axis wedges. Useful, not Foundation blockers; promote when they enter a critical path or a ranked slot.

13Full Onboarding
Building · later acquisition
route ① OpenAlex/ORCID claim → My work shipped; route ③ topic and add-your-work later
Pull 3Gate 2Effort 3Rev 5
not a Foundation blocker; the narrow Import Door owns cited-writing entry
17Citation Discovery
Later enrichment · needs design pass
later enrichment — after Foundation and/or the Library Ask path is green + GROBID parse in pipeline; Cap A per-import library snowball leads, Cap B in-text [n] resolution follows Library Ask
Needs design pass
Pull 3Gate 2Effort 3Rev 5
a leaf — nothing depends on it; user-facing/RAG-bound sibling of Cross-reference graph (#26), same GROBID parse
18Multi-valued cells (Collections)
Next · designed
user-made-Collections array-of-typed-values per cell (the autofill agent's homogeneous-extraction output; user/RM/tagger also fill); a NEW cardinality axis ⟂ SELECTION option-multiplicity, all types incl SELECTION; off the dynamic-org M0–M8 path, reuses M7/ADR-0018 per-element anchors
ADR-0011/0017/0018 ratified · not built
Pull 3Gate 3Effort 3Rev 4
later enrichment; off the dynamic-org M0–M8 critical path
21Visual-modality RAG
Building · retrieval quality
route by chunk modality — visual leaves → Qwen3-VL-Embedding, dual-index text+visual + VL rerank + cite-the-region, each behind CFG_DYNORG_VISUAL_*; extends dynamic-org M7
Stage-1 page-image persistence ✓ #402/#408ADR-0024 unified-embedder shipped gated-OFFVL rerank + default-on rollout remaining
Pull 3Gate 3Effort 2Rev 4
extends dynamic-org M7; ranking provisional (owner)
20Interactive Podcast
Next · POC'd, not built
a paper → engaging two-host audio that, on playback, auto-scrolls + highlights the discussed source span (anchors emitted at script-generation + forced-align timestamps). v1 = forward sync on a user-picked paper; fast-follow = reverse-sync + transcript toggle + doc-order outline. Includes a grounded chapter-nav/outline (one structure, narrative + document orderings) that subsumes a separate paper-AI-outline — do not open one; UIUX inherits the Scholar PDF Reader lessons (toggleable; substance-not-meta titles)
paper→script→audio POC'dproduct surface not builtobeys DESIGN-grounded-generation-sync
Pull 3Gate 2Effort 2Rev 4
depends on Paper Reader (clickback render) + fine-grained citation (the anchor) · does NOT depend on the Feed (a later which-paper layer) · does not block Foundation
Effort = 2 (not light): the product surface is ~80% assembly, but the TTS/MOSS generation needs model serving — new infra (Ray Serve / async), the real cost driver

OPERATOR · internal dynamic-org ops

Operator-only, read-only troubleshooting lenses in admin/doc, gated by guardPlatformOperator. Not user-facing; ranking provisional (owner).

19Document Dashboard (admin/doc)
Building
operator-only troubleshooting lens for one document across the dynamic-org pipeline (parse/DoclingDocument+bboxes/DocTags → facet-tags + node↔tag → RAG index/retrieve → embedding projection → real-time M5 tunnel graph → doc↔memory assoc) + per-dataset M0–M8 benchmark surface; read-only, ~80% new backend read-APIs, relocates Memory → admin/memory
W1–W6 + W8 cut-1 built · W1–W4 + tags e2e liveW7 + cut-2s + landing remain
Pull 2Gate 2Effort 2Rev 4
internal troubleshooting leaf on FEAT-doc-dashboard; ranking provisional (owner)
26Cross-reference graph (observability)
Building
operator-only bidirectional cross-reference lens in admin/doc — forward inline-anchor→target popover (citations [13]→bib entry + figure/table/eq cross-refs "see Figure 3") + backward reference/element→anchors back-ref list + PDF bbox-hover anchor popover; observability-only — RAG-free by construction (evidence-tree overlay, never Milvus) + an enforced invariant; reuses the GROBID marker capture + the ADR-0023 matcher
Slices 1+2 built · e2e 41/41 (#586)slice 3 viewer/popovers later
Pull 2Gate 2Effort 3Rev 5
operator/RAG-free sibling of Citation Discovery (#17), same GROBID parse (parse-once, many consumers); ranking provisional (owner)
Deferred candidates — good subfeatures, not Foundation blockers

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.

High · Folder Home / Folder Overview
After Note Editor, give each Folder exactly one singleton overview document that reuses the Note editor/body/save model but is not listed, moved, or deleted as a normal Note.
High · Quick Search must be Source-aware
Quick Search indexes files/folders/chats, but the shubo unit is the Source (a Source layers over a File; a not-yet-RAG'd Source has no File). So Sources without full text never surface, and the bento open-mapping opens a file result as a source panel by file id → useGetSource 404s. Search/return Sources keyed by source_id (title/author/venue), opening the Library row + Paper Reader. Shubo-only — not in instill. Surfaced by the bento navigation audit (frontend-shubo #240).
Medium · AI assistance disclosure statement
Jenni-parity after AI writing/editing exists: Note editor command that inserts a short editable paragraph naming Shubo, the broad assistance type, and author review/responsibility; no separate surface, provenance ledger, AI detection, or journal-policy engine in v1.
Medium · Note Editor follow-ons (Wave 2 shipped)
Wave 2 writing essentials are all shipped (word/char count, find/replace, markdown interop, image paste, sub/superscript, footnotes, table-of-contents). Remaining follow-ons: word/char targets (Ulysses/Scrivener-style goals + the research spike that feeds them); version-history + restore UI (backend revisions already stored); AI "Ask" escalation in the find bar (waits on the chat-context layer). Block-handle menu/+ insert stays deliberately LOW — redundant with slash/drag/bubble, and Notion's always-on block chrome is a documented friction source; flow-first, unobtrusive chrome is the Shubo stance.
Medium · Bento Box workspace shell
Define one scene model for left rail, middle work panel, right context/Ask panel, expanded scenes, resize handles, collapse/hover/pin behavior, URL/state preservation, surface/elevation tokens, and shared panel top bars.
Medium · PDF upload/import
After Foundation, accept user PDFs. First design metadata/cite-truth extraction, duplicate handling, attachment pairing, and failure UX.
Medium · Paid workspace-creation flow
Build the real org/workspace creation flow (plan select + Stripe, per DESIGN-billing-subscription) — successor to the disabled "Add Workspace" entry and the retired onboarding org questionnaire. Onboarding ships the silent personal workspace (no /create-workspace, no org UI), so org creation is a separate user-initiated team/billing action. Subsumes retiring the stranded ChatOnboardingNew + dead CreateOrganizationView; don't delete them standalone before the replacement exists.
Low · Node.js Active LTS upgrade
Move frontend from node 20.x to the current Active LTS line, currently 24.x; do not target 26.x while it is still Current. Update engines, CI/dev images, setup docs, and verify build/tests/storybook/token generation.
Low · bioRxiv / medRxiv URLs
Parse canonical preprint URLs into DOI form; keep DOI/arXiv as the Foundation path.
Low · metadata refresh action
Add an explicit refresh path for verified-but-stale rows; preserve source id, user edits, full text, indexing, highlights, and notes.
Low · parser module hardening
After shared import lands, keep parser logic isolated and deepen malformed, partial, BibTeX/RIS/CSL-JSON, CJK, LaTeX, and large-file fixtures.
Low · arXiv subject projection
Capture arXiv category/subjects for future filters or discovery without adding user-facing tags or expanding the Foundation bar.
Dependency map — blockers and parallel work (no time scale)
Grounded Assist path — follow the arrows
Already cleared: the entire Foundation wave (Reference Library + Import Door + Note Editor + Note Citations + Paper Reader + Scholarly Metrics) is shipped. It stays in the lanes below as context; the next blocker is the context-routing backbone.
Dynamic Org · M5 + M7
recall + stable anchors
Grounded AI Write
design gate G0
+
First Warm Library Ask
design gate A · RAG proof
Dynamic-Org M5 (associative recall) + M7 (stable anchors) feed grounded retrieval — a flat/coarse RAG yields citations a researcher can't trust. Two design gates close before build: Grounded Write G0 + First Warm Ask Gate A. First Warm Library Ask can ship first as the RAG-activation proof. Visual-RAG extends M7 in parallel (cite-the-region), not a blocker.
Reference Libraryshipped · root
library substrateshipped
Import Doorshipped
.bib importshipped
Note Editorshipped
notes + slashshipped
Note Citationsshipped
/cite + refs ✓shipped
Paper Readershipped
Read + Mark ✓shipped
Scholarly Metricsshipped · core MVP
Cited-by N + h-index ✓shipped
Dynamic Organizationcontext-routing backbone
M5 recall + M7 anchorscurrent blocker
First Warm Library AskRAG-activation proof
warm Library Askgate A
Grounded AI Writecenterpiece
AI draft + citesgate G0
Visual RAG‖ parallel · extends M7
visual RAG · cite regionparallel
Submission ExportManuscript Finish
docx / LaTeX
Manuscript Reviewneeds grounded write
claim / citation audit
Interactive Podcast‖ later · reading-axis
synced grounded podcastlater · parallel
personal-first complete · share verbs unlock
Collaborationafter personal-first
Collaboration
Commentsneeds collab
Comments
Notificationneeds collab
Notification
 Cleared prerequisite  Current Grounded-Assist blocker  Writing payoff target  Parallel · not blocking Foundation  Later planned personal feature  Needs design pass · not plan-ready  Share Era ← left = dependency depth, not time
Status — just three (keep PM simple)
Next Building Shipped archive/ · closed
Next = queued (raw idea → fully-designed; readiness shows in the FEAT's own filled sections). Building = being built now (the active named stage). Shipped = a user can actually do the thing — that, not a green backend, is the bar; only Shipped triggers a help article (R7). Design-done and code-green (e.g. RM's R0) are 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.
System map — five concepts (frame → work → outward truth)

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/.

LayerPrefix / fileManagesTime
VisionDIRECTION-why we exist / where to gorarely changes
DesignDESIGN-cross-feature laws a FEAT obeysrevised, never ships
FeatureFEAT-<name>one buildable unit (+ Scope ☑/☐)ships complete
BoardROADMAP.mdranking + Now + disciplinealways rolling
Help (outward)help/ · MkDocswhat a user can do today · en/zh-Hans/zh-Hant · on shiptracks shipped
Discipline — R1–R7 (the system stays alive)
R1 · discovery before creation
Discuss a feature → first check it's in a FEAT; if not, create one + register in ROADMAP. A conclusion that stays in chat didn't happen.
R2 · single source of truth
A decision/scope lives in one doc (its FEAT/DESIGN); ROADMAP only references.
R3 · status freshness
Code lands → mark the FEAT ☑→✓, update status, roll Now. A board that lies is worse than none.
R4 · stage rolling
Active stage end-to-end green → check the next ☐ batch → roll Now to the next named stage. One cycle at a time.
MVP compression
Big feature → name the smallest useful MVP in Now; move good-but-not-now subfeatures to backlog with high / medium / low priority.
Critical-path planning
Only MVP slices blocking the active loop must be plan-ready. Other subfeatures stay backlog, parallel, or later-stage until they compete for a ranked slot.
Next FEAT planning
For planning-only work, scope + acceptance/QA + dependencies are enough. Backend/frontend implementation sections may stay deferred until Building.
R5 · prefix / extract-DESIGN + archive-on-close
Hit a decision bigger than the feature (constrains others) → extract a DESIGN the FEAT references. Two things archive: dropped/superseded (✗) and fully-closed FEATs (✓, once the repo docs/ + help/ exist). The bloat valve — the live board shows only in-flight work.
R6 · no BUG-/IMPROVEMENT-
Improvement = a ☐ item or a new FEAT; a bug worth fixing is just fixed.
R7 · HELP on ship
When a user-facing feature ships: confirm the repo's docs/invariants reflect it (inward — already required by the quality gate) + write the help-center article (outward, en/zh-Hans/zh-Hant) from the user's POV. Tracks shipped reality — never pre-written from the roadmap.
⚙ enforced by
the shubo-planning skill — fires whenever a feature/scope is discussed.