Files
lix-2026 1882db7681 收口 MNote P0 P1 P2 审查尾项
- 归档 OnlyOffice live bridge、Page AI、mindmap、design governance 与相关 bug 条目
- 补齐 MinerU OCR 后端 runtime 合同与 smoke/test 基线
- 收口 ChatOnly/Doubao、ObjectIdentity、Page Aggregate compat 与 runtime owner 文档口径

验证:
- cargo test --manifest-path rust/Cargo.toml -p mnote-web local_ocr -- --test-threads=1
- cargo test --manifest-path rust/Cargo.toml -p mnote-web onlyoffice_bridge -- --test-threads=1
- git diff --check
- git diff --cached --check
- codegraph index . --force && codegraph status .
- codegraph sync . && codegraph status .
2026-06-01 09:29:12 +08:00

3.6 KiB

MNote mindmap editing

Use this skill only when the user asks to read, summarize, update, or create an MNote mindmap resource.

Typical triggers:

  • The user mentions 思维导图, 脑图, mindmap, KMind, or .mindmap.json.
  • The current Page AI target is a mindmap resource tab.
  • The current page contains a mindmap embed and the task is about that embed.
  • The user asks to turn a PDF, Office document, Markdown page, or pasted material into a mindmap.

Rules:

  • First call mnote.context.snapshot or mnote.context.resolve_target when target metadata is needed.
  • Prefer the current mindmap resource tab over page embeds when both are present.
  • For existing mindmaps, call mnote.mindmap.fetch before proposing or applying changes.
  • For new mindmaps from PDF or document summaries, convert the source material into a concise hierarchical outline, then call mnote.mindmap.create_from_outline.
  • Do not write a naked simple-mind-map tree as the final file. MNote mindmap files use an envelope with data as the root tree and view as runtime view state.
  • Keep the root node uid as root for new maps unless MNote returns a different root.
  • Let MNote generate child node uid values; do not invent duplicate ids.
  • Before writing, confirm the run has read_write permission and the target resource is inside allowedResourceIds.
  • After writing or creating a mindmap, read it back with mnote.mindmap.fetch and report the changed .mindmap.json path.
  • If authorization is missing, ask the user to grant access instead of guessing a path.

Current apply_ops contract:

  • Supported operations are updateText / updateNode, insertChild / addChild, and deleteNode.
  • updateText / updateNode require nodeId (or node_id / id) and text (or title).
  • insertChild / addChild require parentId (or parent_id / nodeId) and a child node payload.
  • deleteNode requires nodeId (or node_id / id) and must never target the root node.
  • Unknown operations are rejected; do not assume extra edit verbs exist.
  • Prefer small, reviewable edits. Keep node text concise and split long prose into child nodes.
  • Long text should be summarized into short phrases or child nodes rather than embedded as a single paragraph.
  • Respect dryRun and revision checks when the caller provides them.

Mindmap outline format:

  • Use one central root topic as the title; it should name the subject, not explain it in a paragraph.
  • Use first-level children for the major categories or sections radiating from the root.
  • Use concise keywords or short phrases for node text. Avoid long paragraphs, full prose summaries, and multiple sentences inside one node.
  • Put one idea in each node. Split causes, decisions, examples, and evidence into child nodes instead of joining them with punctuation.
  • Keep each level scannable: prefer 3-8 sibling branches unless the source structure requires more.
  • Preserve hierarchy with children; do not simulate structure by embedding Markdown lists or newline-separated text in a node.
  • Keep citations, page numbers, and source metadata in sourceRefs or nearby metadata when possible, rather than cramming them into visible node text.

PDF or document to mindmap workflow:

  1. Identify the source resource and target page.
  2. Extract or receive a title plus outline from the source material.
  3. Keep the outline small enough to be useful: preserve chapters, decisions, key concepts, and relationships; remove repeated prose.
  4. Call mnote.mindmap.create_from_outline with title, outline, sourceRefs, and the target resource path when provided.
  5. Verify the created resource by fetching it and checking the root title and first-level branches.