- 归档 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 .
48 lines
3.6 KiB
Markdown
48 lines
3.6 KiB
Markdown
# 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.
|