- 归档 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 .
3.6 KiB
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.snapshotormnote.context.resolve_targetwhen target metadata is needed. - Prefer the current mindmap resource tab over page embeds when both are present.
- For existing mindmaps, call
mnote.mindmap.fetchbefore 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
dataas the root tree andviewas runtime view state. - Keep the root node uid as
rootfor 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_writepermission and the target resource is insideallowedResourceIds. - After writing or creating a mindmap, read it back with
mnote.mindmap.fetchand report the changed.mindmap.jsonpath. - 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, anddeleteNode. updateText/updateNoderequirenodeId(ornode_id/id) andtext(ortitle).insertChild/addChildrequireparentId(orparent_id/nodeId) and a child node payload.deleteNoderequiresnodeId(ornode_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
dryRunand 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
sourceRefsor nearby metadata when possible, rather than cramming them into visible node text.
PDF or document to mindmap workflow:
- Identify the source resource and target page.
- Extract or receive a title plus outline from the source material.
- Keep the outline small enough to be useful: preserve chapters, decisions, key concepts, and relationships; remove repeated prose.
- Call
mnote.mindmap.create_from_outlinewithtitle,outline,sourceRefs, and the target resource path when provided. - Verify the created resource by fetching it and checking the root title and first-level branches.