@xmindltd/xmind-cli 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/cli.mjs +22 -0
- package/package.json +71 -0
- package/skills/decoration/SKILL.md +47 -0
- package/skills/edit/guide.md +160 -0
- package/skills/manifest.json +63 -0
- package/skills/markdown-grammar.md +60 -0
- package/skills/recipe/index.json +30 -0
- package/skills/recipe/quick-map/SKILL.md +85 -0
- package/skills/recipe-contract.md +65 -0
- package/skills/task-overlay/SKILL.md +117 -0
- package/skills/template/index.json +1 -0
- package/skills/visual/SKILL.md +109 -0
- package/skills/visual/layout-style.md +116 -0
- package/skills/visual/node-style.md +181 -0
- package/skills/visual/subtree-layout.md +11 -0
- package/skills/xmind-file/SKILL.md +336 -0
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@xmindltd/xmind-cli",
|
|
3
|
+
"version": "0.2.1",
|
|
4
|
+
"description": "XMind CLI — Create and edit .xmind files for AI Agents",
|
|
5
|
+
"author": "Xmind Ltd.",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20.0.0"
|
|
9
|
+
},
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/xmindltd/xmind-cli",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/xmindltd/xmind-cli.git"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [
|
|
19
|
+
"xmind",
|
|
20
|
+
"mindmap",
|
|
21
|
+
"cli",
|
|
22
|
+
"ai",
|
|
23
|
+
"agent",
|
|
24
|
+
"claude-code",
|
|
25
|
+
"cursor",
|
|
26
|
+
"codex"
|
|
27
|
+
],
|
|
28
|
+
"type": "commonjs",
|
|
29
|
+
"bin": {
|
|
30
|
+
"xmind": "dist/cli.mjs"
|
|
31
|
+
},
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "node build.mjs",
|
|
34
|
+
"build:gated": "XMIND_CLI_GATE_PREMIUM=1 node build.mjs",
|
|
35
|
+
"build:release": "XMIND_CLI_RELEASE=1 node build.mjs && node verify-release-package.mjs",
|
|
36
|
+
"release:prepare": "npm test && npm run pack:release",
|
|
37
|
+
"build:tsup": "tsup",
|
|
38
|
+
"build:tsc": "tsc",
|
|
39
|
+
"dev": "tsc --watch",
|
|
40
|
+
"dev:skill": "node build.mjs && rm -f xmind-file-cli.skill && zip xmind-file-cli.skill SKILL.md && echo '✓ xmind-file-cli.skill rebuilt'",
|
|
41
|
+
"pack:release": "npm run build:release && npm pack",
|
|
42
|
+
"pack:skill:file": "XMIND_CLI_GATE_PREMIUM=1 node build.mjs && rm -rf xmind-cli-*.tgz xmind-file.skill && npm pack && zip -j xmind-file.skill ../../skills/xmind-file/SKILL.md xmind-cli-*.tgz && rm -f xmind-cli-*.tgz && echo '✓ xmind-file.skill packed'",
|
|
43
|
+
"pack:skill": "npm run pack:skill:file",
|
|
44
|
+
"pack:skill:offline": "node pack-offline-skill.mjs",
|
|
45
|
+
"prepublishOnly": "node verify-release-package.mjs",
|
|
46
|
+
"typecheck": "tsc --noEmit",
|
|
47
|
+
"test": "node build.mjs --test-index && node --test"
|
|
48
|
+
},
|
|
49
|
+
"dependencies": {
|
|
50
|
+
"open": "^10.0.0",
|
|
51
|
+
"undici": "^6.27.0"
|
|
52
|
+
},
|
|
53
|
+
"devDependencies": {
|
|
54
|
+
"@types/node": "^20.0.0",
|
|
55
|
+
"@types/uuid": "^9.0.0",
|
|
56
|
+
"@xmindltd/mindmap-tools": "workspace:*",
|
|
57
|
+
"@xmindltd/snowdust": "*",
|
|
58
|
+
"commander": "^12.0.0",
|
|
59
|
+
"esbuild": "^0.27.4",
|
|
60
|
+
"javascript-obfuscator": "^5.4.3",
|
|
61
|
+
"jszip": "^3.10.1",
|
|
62
|
+
"tsup": "^8.5.1",
|
|
63
|
+
"typescript": "^5.3.3",
|
|
64
|
+
"uuid": "^9.0.0"
|
|
65
|
+
},
|
|
66
|
+
"files": [
|
|
67
|
+
"dist",
|
|
68
|
+
"SKILL.md",
|
|
69
|
+
"skills"
|
|
70
|
+
]
|
|
71
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Decoration
|
|
2
|
+
|
|
3
|
+
Optional layer. Non-semantic visual sugar: iconic markers and vibe labels.
|
|
4
|
+
|
|
5
|
+
**Default behavior**: do not decorate. CLI fills in sensible defaults for most decoration concerns. Load this skill only when the user explicitly asks for decorative elements or when the content has a strong visual vibe requirement.
|
|
6
|
+
|
|
7
|
+
## Iconic markers
|
|
8
|
+
|
|
9
|
+
Decorative icons. Categories include:
|
|
10
|
+
|
|
11
|
+
- `smiley-*` (smile, laugh, cry, etc.)
|
|
12
|
+
- `celebration` (party, gift)
|
|
13
|
+
- `people-*` (different roles)
|
|
14
|
+
- `flag-*` (red, green, blue)
|
|
15
|
+
- `star-*` (red, blue)
|
|
16
|
+
- `symbol-*` (plus, minus, question, exclam)
|
|
17
|
+
|
|
18
|
+
```json
|
|
19
|
+
{"op": "marker", "topic": "Launch", "marker": "celebration"}
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### Important
|
|
23
|
+
|
|
24
|
+
Do NOT use `flag-*` or `star-*` for status semantics (e.g., `flag-red` for "blocked"). Use `task-overlay` priority / state markers instead. `flag-*` and `star-*` are vibe only.
|
|
25
|
+
|
|
26
|
+
## Vibe labels
|
|
27
|
+
|
|
28
|
+
Free-text labels for non-structural tagging.
|
|
29
|
+
|
|
30
|
+
```json
|
|
31
|
+
{"op": "label", "topic": "Idea Pool", "labels": ["brainstorm", "v1"]}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Same `label` op as task-overlay assignee, but used for vibe rather than ownership.
|
|
35
|
+
|
|
36
|
+
## What decoration does not own
|
|
37
|
+
|
|
38
|
+
Numbering belongs to `visual`, not decoration. Use numbering when sequence,
|
|
39
|
+
rank, or stable outline references help the reader navigate the map. Do not
|
|
40
|
+
use numbering as visual sugar.
|
|
41
|
+
|
|
42
|
+
## Avoid double decoration
|
|
43
|
+
|
|
44
|
+
- A node already has emphasis (color/font) → don't add iconic marker too
|
|
45
|
+
- A node already has priority/state marker → don't add flag/star too
|
|
46
|
+
|
|
47
|
+
If unsure whether decoration adds value, skip it.
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
# Edit Guide
|
|
2
|
+
|
|
3
|
+
Guide for editing **content and structure** of an existing mindmap. Visual
|
|
4
|
+
restyling (skeleton / color / layout / emphasis) is **not** covered here —
|
|
5
|
+
for that, load `visual/SKILL.md` and walk its pattern catalog on the existing
|
|
6
|
+
content.
|
|
7
|
+
|
|
8
|
+
This guide assumes you have an existing `.xmind` file. To work on a fresh
|
|
9
|
+
generation, use `recipe/<chosen> + visual` instead.
|
|
10
|
+
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
## Two separate concerns
|
|
14
|
+
|
|
15
|
+
| Concern | Scope | Skill |
|
|
16
|
+
|---|---|---|
|
|
17
|
+
| **Content / structure edit** | titles, notes, links, hierarchy, missing branches, depth | this guide |
|
|
18
|
+
| **Visual restyle** | skeleton, color, layout, emphasis, boundary, callout, user-provided local image | `visual/SKILL.md` |
|
|
19
|
+
|
|
20
|
+
These are independent — an edit pass may not need any restyle, and a restyle
|
|
21
|
+
may not need any content change. Load only what the user asked for.
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## Style matching (applies to every dimension)
|
|
26
|
+
|
|
27
|
+
Before changing anything, examine 3-5 existing sibling topics:
|
|
28
|
+
|
|
29
|
+
- Length: short phrases? complete sentences? parenthesized augments?
|
|
30
|
+
- Language: match the user's language; do not switch
|
|
31
|
+
- Format: any examples, data, explanations?
|
|
32
|
+
|
|
33
|
+
**All additions and edits must match existing style.** Do not introduce
|
|
34
|
+
new naming conventions mid-edit.
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## 4 content / structure dimensions
|
|
39
|
+
|
|
40
|
+
### 1. Completeness (Review)
|
|
41
|
+
|
|
42
|
+
Find missing dimensions and shallow branches.
|
|
43
|
+
|
|
44
|
+
**Method:**
|
|
45
|
+
1. Read the whole document; understand the covered domain
|
|
46
|
+
2. Compare against domain common sense: which dimensions are missing? which are shallow? are proportions balanced?
|
|
47
|
+
3. If specialized knowledge helps, optionally load: `xmind skill show recipe/<name>`
|
|
48
|
+
|
|
49
|
+
**Output format:**
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Coverage analysis:
|
|
53
|
+
✓ [dimension] — sufficient
|
|
54
|
+
△ [dimension] — shallow
|
|
55
|
+
✗ [dimension] — missing
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
**Ops:** `add` to fill missing content, `marker` with `flag-green` to mark
|
|
59
|
+
the newly-added nodes for user review.
|
|
60
|
+
|
|
61
|
+
### 2. Depth (Expand)
|
|
62
|
+
|
|
63
|
+
Fill in concrete detail on shallow branches. Depth follows the content
|
|
64
|
+
itself — no artificial cap.
|
|
65
|
+
|
|
66
|
+
**Method:**
|
|
67
|
+
1. Identify branches obviously shallower than their siblings
|
|
68
|
+
2. Expand by the content's natural hierarchy — as many levels as the concept warrants
|
|
69
|
+
3. Use `notes` op to attach blockquote-style detail to an existing node
|
|
70
|
+
(instead of always nesting deeper)
|
|
71
|
+
|
|
72
|
+
**Constraint:** Do not modify existing nodes; preserve all current content.
|
|
73
|
+
|
|
74
|
+
**Ops:** `add` for new children, `notes` for inline elaboration on existing nodes.
|
|
75
|
+
|
|
76
|
+
### 3. Expression (Refine)
|
|
77
|
+
|
|
78
|
+
Unify naming style; improve phrasing.
|
|
79
|
+
|
|
80
|
+
**Method:**
|
|
81
|
+
1. Identify the style used by the **majority** of nodes as the standard
|
|
82
|
+
2. Correct the minority that deviates: shorten over-long titles, expand
|
|
83
|
+
over-short ones, make vague titles concrete
|
|
84
|
+
|
|
85
|
+
**Constraint:** Do not change meaning, do not add or remove nodes; unify
|
|
86
|
+
to the majority style.
|
|
87
|
+
|
|
88
|
+
**Ops:** `update` for title edits, `notes` for refining explanations.
|
|
89
|
+
|
|
90
|
+
### 4. Structure (Restructure)
|
|
91
|
+
|
|
92
|
+
Reorganize the hierarchy.
|
|
93
|
+
|
|
94
|
+
**Method:**
|
|
95
|
+
1. Identify problems:
|
|
96
|
+
- Too flat (8+ siblings under one parent) → group via a wrapper
|
|
97
|
+
- Misplaced node → move to correct parent
|
|
98
|
+
- Duplicate / overlap → merge or delete
|
|
99
|
+
2. **Wrapper insertion** (common pattern):
|
|
100
|
+
- `add` a wrapper node as child of the over-flat parent
|
|
101
|
+
- `move` existing siblings into the wrapper
|
|
102
|
+
3. Single batch ≤ 20 ops; split into multiple batches if larger.
|
|
103
|
+
|
|
104
|
+
**Constraint:** Preserve all content; do not delete or rename unless the
|
|
105
|
+
existing label is clearly wrong.
|
|
106
|
+
|
|
107
|
+
**Ops:** `add`, `move`, `delete` (rare), `update` for rename.
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Analysis template
|
|
112
|
+
|
|
113
|
+
Before editing, output a short analysis (≤ 8 lines):
|
|
114
|
+
|
|
115
|
+
```
|
|
116
|
+
[content] ✓ sufficient / △ missing X / ✗ missing Y
|
|
117
|
+
[depth] ✓ balanced / △ branch X is shallow
|
|
118
|
+
[expression] ✓ unified style / △ partial inconsistency
|
|
119
|
+
[structure] ✓ reasonable / △ branch X too flat / over-deep / misplaced
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Then apply all changes in one batch.
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## Execute
|
|
127
|
+
|
|
128
|
+
```bash
|
|
129
|
+
cat <<'BATCH' | xmind batch <file>
|
|
130
|
+
[
|
|
131
|
+
{"op": "add", "parent": "Old Parent", "topic": "New Wrapper"},
|
|
132
|
+
{"op": "move", "topics": ["Child A", "Child B"], "parent": "New Wrapper"},
|
|
133
|
+
{"op": "update", "topic": "Vague Title", "title": "Concrete Title"},
|
|
134
|
+
{"op": "notes", "topic": "Concept X", "notes": "Explanation paragraph"},
|
|
135
|
+
{"op": "href", "topic": "External Reference", "href": "https://example.com"},
|
|
136
|
+
{"op": "delete", "topic": "Obsolete Node"},
|
|
137
|
+
{"op": "marker", "topic": "Newly Added", "marker": "flag-green"}
|
|
138
|
+
]
|
|
139
|
+
BATCH
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Content / structure ops palette
|
|
143
|
+
|
|
144
|
+
| Op | Effect |
|
|
145
|
+
|---|---|
|
|
146
|
+
| `add` | Add a new child under `parent` |
|
|
147
|
+
| `update` | Rename a topic (change `title`) |
|
|
148
|
+
| `delete` | Remove a topic (and its subtree) |
|
|
149
|
+
| `move` | Reparent a topic; supports `topics: [...]` batch |
|
|
150
|
+
| `notes` | Set / clear blockquote notes (`notes: null` clears) |
|
|
151
|
+
| `href` | Set / clear topic link (`href: null` clears) |
|
|
152
|
+
| `label` | Add labels (tags) on a topic |
|
|
153
|
+
| `todo` | Mark a topic as todo (with optional `due` ISO date) |
|
|
154
|
+
| `marker` | Add a marker (priority / state / iconic icon) |
|
|
155
|
+
|
|
156
|
+
For whole-map theme changes, use the standalone command:
|
|
157
|
+
`xmind theme <file> --skeleton X --color Y`.
|
|
158
|
+
|
|
159
|
+
For visual restyling beyond theme (layout / emphasis / boundary / relation /
|
|
160
|
+
local image attachment / etc.), load `visual/SKILL.md` and follow its planner.
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": "3",
|
|
3
|
+
"recipe": [
|
|
4
|
+
{
|
|
5
|
+
"name": "default",
|
|
6
|
+
"trigger": "General content, no specialized domain. Fallback when no other recipe fits."
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"name": "comparison-decision",
|
|
10
|
+
"trigger": "Option comparison, versus analysis, product/tool selection, buying decisions, vendor evaluation, tradeoff review."
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"name": "lesson-plan",
|
|
14
|
+
"trigger": "Course design, learning path, lesson plan, training program, curriculum."
|
|
15
|
+
},
|
|
16
|
+
{
|
|
17
|
+
"name": "quick-map",
|
|
18
|
+
"trigger": "Fast free-first maps: quick topic overviews, lightweight summaries, checklists, meeting notes, idea inboxes, bug triage, audit lists, quick plans, sorted notes, small resource lists, and short schedules."
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "process-playbook",
|
|
22
|
+
"trigger": "SOPs, workflows, operating manuals, runbooks, troubleshooting flows, onboarding procedures, how-to guidance."
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"name": "swot",
|
|
26
|
+
"trigger": "SWOT analysis, competitive analysis, strategic assessment, four-quadrant framework."
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"name": "timeline-narrative",
|
|
30
|
+
"trigger": "Time-dominant narratives where order explains change: biographies, company histories, product or technology evolution, historical narratives, incident histories, past-to-present timelines."
|
|
31
|
+
}
|
|
32
|
+
],
|
|
33
|
+
"visual": [
|
|
34
|
+
{
|
|
35
|
+
"name": "visual",
|
|
36
|
+
"trigger": "Visual core: route result, structure card, second look, and anchor planning. Always loaded alongside a recipe."
|
|
37
|
+
}
|
|
38
|
+
],
|
|
39
|
+
"task-overlay": [
|
|
40
|
+
{
|
|
41
|
+
"name": "task-overlay",
|
|
42
|
+
"trigger": "Project planning, OKR, task management, scheduling, team work breakdown, roadmap, progress tracking. Load when the map represents work to be executed, not just content."
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
"decoration": [
|
|
46
|
+
{
|
|
47
|
+
"name": "decoration",
|
|
48
|
+
"trigger": "Non-semantic visual sugar: iconic markers and vibe labels. Rarely loaded — CLI defaults handle most cases."
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"edit": [
|
|
52
|
+
{
|
|
53
|
+
"name": "guide",
|
|
54
|
+
"trigger": "Edit, optimize, improve, review, expand, restructure, refine, restyle any existing .xmind."
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"shared": [
|
|
58
|
+
{
|
|
59
|
+
"name": "markdown-grammar",
|
|
60
|
+
"trigger": "Force-loaded by every entry skill before recipe / visual selection. Markdown ↔ XMind mapping reference."
|
|
61
|
+
}
|
|
62
|
+
]
|
|
63
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
# Markdown Grammar Reference
|
|
2
|
+
|
|
3
|
+
This is the shared markdown reference for skills that produce or consume XMind
|
|
4
|
+
content. It is loaded before recipe / visual selection.
|
|
5
|
+
|
|
6
|
+
Recipes write content as markdown. Visual / Task-overlay / Decoration changes
|
|
7
|
+
are emitted separately as ops; never encode those semantics in markdown titles.
|
|
8
|
+
|
|
9
|
+
## Standard CommonMark mapping
|
|
10
|
+
|
|
11
|
+
| Markdown | XMind rendering | Notes |
|
|
12
|
+
|---|---|---|
|
|
13
|
+
| `# Topic` | Root topic | One root per sheet |
|
|
14
|
+
| `## ### ####` | Sub-topic hierarchy | Depth determines tree level |
|
|
15
|
+
| `- leaf` | Leaf topic (no children) | Use sparingly; prefer `####` if it has notes |
|
|
16
|
+
| `> notes` | Topic notes | One or more lines, attached to nearest preceding topic |
|
|
17
|
+
| `**bold**` `*italic*` | Inline strong / emphasis | Renders in notes; in titles may be stripped depending on theme |
|
|
18
|
+
| `[text](url)` | Topic href / link | Whole-title link if title is the link |
|
|
19
|
+
| `` | Inline image | Use only for user-provided local files; different from a Visual `image` op |
|
|
20
|
+
| `- [ ]` `- [x]` | Task list checkbox | CommonMark checkbox; executable task semantics should use `task-overlay` ops |
|
|
21
|
+
| ``` ``` | Code block | Only valid inside notes (not in title) |
|
|
22
|
+
| `$$...$$` | LaTeX math | Only valid inside notes |
|
|
23
|
+
|
|
24
|
+
## Root Notes
|
|
25
|
+
|
|
26
|
+
Root notes are valid CommonMark mapping, but generated maps should avoid them by
|
|
27
|
+
default. The root topic is the visual center, and notes there often reduce scan
|
|
28
|
+
quality. Put scope, assumptions, and sources in first-level branches such as
|
|
29
|
+
`Scope` or `Sources` unless the user explicitly asks for root notes or an
|
|
30
|
+
existing map already has them.
|
|
31
|
+
|
|
32
|
+
## Example
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
# Quantum Mechanics Intro Course
|
|
36
|
+
|
|
37
|
+
## Week 1: Wave-Particle Duality
|
|
38
|
+
### Double-slit experiment
|
|
39
|
+
> Demo + small group discussion.
|
|
40
|
+
> Focus: how observation alters the experimental outcome.
|
|
41
|
+
|
|
42
|
+
### Historical background
|
|
43
|
+
> From Young's experiment to Davisson-Germer.
|
|
44
|
+
|
|
45
|
+
## Week 2: Uncertainty Principle
|
|
46
|
+
### Thought experiment comparison
|
|
47
|
+
- Heisenberg microscope
|
|
48
|
+
- Bohr's response
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
## Boundaries
|
|
52
|
+
|
|
53
|
+
- Recipe emits markdown only: titles, hierarchy, notes, links, and inline
|
|
54
|
+
content.
|
|
55
|
+
- Visual emits ops: skeleton choice, color choice, layout, emphasis, relation,
|
|
56
|
+
boundary, callout, summary, numbering, and image attachment.
|
|
57
|
+
- Task-overlay emits ops: priority, owner, due date, todo state, dependency.
|
|
58
|
+
- Decoration emits ops: non-semantic markers and labels.
|
|
59
|
+
- Entry skills own delivery commands such as `xmind create --stdin` and
|
|
60
|
+
`xmind batch`.
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"name": "default",
|
|
4
|
+
"trigger": "General content, no specialized domain"
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"name": "comparison-decision",
|
|
8
|
+
"trigger": "Option comparison, versus analysis, product/tool selection, decision support"
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"name": "lesson-plan",
|
|
12
|
+
"trigger": "Course design, learning path, lesson plan, training program"
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"name": "quick-map",
|
|
16
|
+
"trigger": "Fast free-first maps: quick topic overviews, lightweight summaries, checklists, meeting notes, idea inboxes, bug triage, audit lists, quick plans, sorted notes, small resource lists, and short schedules"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"name": "process-playbook",
|
|
20
|
+
"trigger": "SOPs, workflows, operating manuals, runbooks, troubleshooting flows, how-to procedures"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"name": "swot",
|
|
24
|
+
"trigger": "SWOT analysis, competitive analysis, strategic assessment"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "timeline-narrative",
|
|
28
|
+
"trigger": "Time-dominant narratives: biographies, histories, product/company/technology evolution, incident histories, past-to-present change"
|
|
29
|
+
}
|
|
30
|
+
]
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
# Recipe: Quick Map
|
|
2
|
+
|
|
3
|
+
Fast, free-first recipe for quick overviews, lightweight summaries, checklists,
|
|
4
|
+
meeting notes, idea inboxes, bug triage, audits, quick plans, sorted notes,
|
|
5
|
+
small resource lists, and short schedules.
|
|
6
|
+
|
|
7
|
+
Do not use for deep analysis, formal visual showcases, decision support,
|
|
8
|
+
SOP/runbook-level procedures, full lesson plans, or chronology-dominant stories.
|
|
9
|
+
|
|
10
|
+
## Profile
|
|
11
|
+
|
|
12
|
+
```json
|
|
13
|
+
{
|
|
14
|
+
"recipe": "quick-map",
|
|
15
|
+
"archetype": "overview|triage|checklist|memo|quick-plan|simple-process|simple-timeline|resource|hierarchy",
|
|
16
|
+
"density": "light|standard",
|
|
17
|
+
"baselinePolicy": "free-first",
|
|
18
|
+
"anchorObligations": {
|
|
19
|
+
"layout": "optional",
|
|
20
|
+
"group": "optional",
|
|
21
|
+
"focus": "optional",
|
|
22
|
+
"image": "none"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Density
|
|
28
|
+
|
|
29
|
+
- `light`: 8-25 nodes, depth 1-2.
|
|
30
|
+
- `standard`: 25-45 nodes, depth 2-3.
|
|
31
|
+
|
|
32
|
+
Preserve user-supplied items. Do not expand to default deep floors.
|
|
33
|
+
|
|
34
|
+
## Modes
|
|
35
|
+
|
|
36
|
+
| Mode | Use When | Structural Type | Free Skeleton |
|
|
37
|
+
|---|---|---|---|
|
|
38
|
+
| overview | quick topic map | radial_overview | MindMap-1 |
|
|
39
|
+
| triage | sort ideas/issues | matrix_board | Matrix-1 |
|
|
40
|
+
| checklist | verify/prepare/audit | matrix_board or radial_overview | Matrix-1 or MindMap-1 |
|
|
41
|
+
| quick-plan | simple action sequence | procedural_flow | LogicChart-1 |
|
|
42
|
+
| simple-process | short how-to | procedural_flow | LogicChart-1 |
|
|
43
|
+
| simple-timeline | short chronology | temporal_axis | Timeline-1 or Timeline-3 |
|
|
44
|
+
| resource | small catalog | radial_overview | MindMap-1 |
|
|
45
|
+
| hierarchy | taxonomy/org outline | hierarchy_tree | OrgChart-1 or TreeChart-1 |
|
|
46
|
+
|
|
47
|
+
For short generic requests, default to overview.
|
|
48
|
+
|
|
49
|
+
## Fast Path
|
|
50
|
+
|
|
51
|
+
- Load only `markdown-grammar` and `recipe/quick-map` by default.
|
|
52
|
+
- Choose the free skeleton from the mode table.
|
|
53
|
+
- Use `Dawn-#ffffff-MULTI_LINE_COLORS` unless the user gives a theme.
|
|
54
|
+
- Create in one pass and run `xmind validate --quiet`.
|
|
55
|
+
- Skip image search, route cards, skeleton cards, and post-create anchors unless
|
|
56
|
+
validation fails or the user asks.
|
|
57
|
+
|
|
58
|
+
## Structure Rules
|
|
59
|
+
|
|
60
|
+
- 3-7 root branches.
|
|
61
|
+
- Usually 2-5 children per branch.
|
|
62
|
+
- Prefer visible nodes and concise titles over notes for short facts.
|
|
63
|
+
- Notes are optional and should carry context, caveats, blocked reasons,
|
|
64
|
+
acceptance criteria, or key synthesis.
|
|
65
|
+
- One node = one item, idea, step, or decision.
|
|
66
|
+
- Do not add wrappers only for visual anchors.
|
|
67
|
+
|
|
68
|
+
## Quick Quality Gate
|
|
69
|
+
|
|
70
|
+
Before create, check that the map is intentionally compact:
|
|
71
|
+
|
|
72
|
+
- It answers the user request without pretending to be a deep analysis.
|
|
73
|
+
- Branches are easy to scan and do not exceed the light/standard density target.
|
|
74
|
+
- User-supplied items are preserved.
|
|
75
|
+
- Any notes are useful context, not hidden structure.
|
|
76
|
+
|
|
77
|
+
## Overlay Handoff
|
|
78
|
+
|
|
79
|
+
No task overlay by default. Load `task-overlay` when the user asks for owner,
|
|
80
|
+
deadline, progress, priority, dependency, status, roadmap tracking, or assignee.
|
|
81
|
+
|
|
82
|
+
## Markdown Contract
|
|
83
|
+
|
|
84
|
+
Pure CommonMark only. Match the user's language. No visual or task metadata in
|
|
85
|
+
markdown.
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
# Recipe Contract
|
|
2
|
+
|
|
3
|
+
Shared frame for every `recipe/<name>`. Force-loaded with `markdown-grammar` and
|
|
4
|
+
the chosen recipe during generation. Each recipe fills in its own archetype,
|
|
5
|
+
density, structure rules, semantic signals, anchor seeds, and self-check items;
|
|
6
|
+
this file owns the parts that are identical across recipes so they stay
|
|
7
|
+
consistent instead of drifting per recipe.
|
|
8
|
+
|
|
9
|
+
## Output Profile
|
|
10
|
+
|
|
11
|
+
Every recipe declares an output profile, kept mentally or in scratch — it is not
|
|
12
|
+
map content. The profile guides drafting and self-checking. Only `structuralType`,
|
|
13
|
+
`toneTag`, and `density` are ever passed to `advise`; the rest is planning state.
|
|
14
|
+
|
|
15
|
+
The chosen recipe defines the profile's values: `recipe`, `archetype` (or
|
|
16
|
+
`rootShape` / `structuralType`), `density`, `semanticSignals`, and, when the
|
|
17
|
+
recipe uses anchors, `anchorObligations`.
|
|
18
|
+
|
|
19
|
+
## Drafting Discipline
|
|
20
|
+
|
|
21
|
+
- Density floors and planning ranges are drafting aids, not caps. Expand real
|
|
22
|
+
facets, not filler.
|
|
23
|
+
- After a draft passes the route quality gate, do not shrink, trim, or re-note it
|
|
24
|
+
only to match a first-pass planning target. Revise only for real filler,
|
|
25
|
+
duplication, missing required anchor seeds, an explicit user brevity request,
|
|
26
|
+
or a content hierarchy that stays broken after trying viable skeleton
|
|
27
|
+
alternatives.
|
|
28
|
+
- If the recipe's self-check fails, revise the markdown before route advise.
|
|
29
|
+
- A local signal is not the root shape: a timeline branch inside a mixed map does
|
|
30
|
+
not make the root `temporal_axis`, and a resource index inside a lesson does
|
|
31
|
+
not make it `mixed_modular`. Root branches decide the root shape.
|
|
32
|
+
|
|
33
|
+
## Anchor Seeds
|
|
34
|
+
|
|
35
|
+
When a recipe declares `anchorObligations`, the draft must contain a real seed for
|
|
36
|
+
every required family before route advise. If a family has no honest target,
|
|
37
|
+
revise the draft — do not add empty wrapper branches just to satisfy the
|
|
38
|
+
contract. Each recipe's seed table names its family-specific targets.
|
|
39
|
+
|
|
40
|
+
## Overlay Handoff Frame
|
|
41
|
+
|
|
42
|
+
Every recipe emits only markdown; task metadata is never written into markdown.
|
|
43
|
+
After the baseline is created, the chosen recipe's Overlay Handoff decides whether
|
|
44
|
+
to load `task-overlay`:
|
|
45
|
+
|
|
46
|
+
- `none`: descriptive or analytical content with no execution tracking.
|
|
47
|
+
- `recommended`: many actionable leaves, or content semantics that imply tracking
|
|
48
|
+
(deadlines, owners, dependencies) even without an explicit request.
|
|
49
|
+
- `required`: the user asks for owners, deadlines, priority, progress, status,
|
|
50
|
+
dependencies, scheduling, roadmap, or task tracking.
|
|
51
|
+
|
|
52
|
+
If `recommended` or `required`, first consider whether a more task-shaped recipe
|
|
53
|
+
fits the request; if the current recipe still fits, create the baseline first,
|
|
54
|
+
then load `task-overlay`. Each recipe's Overlay Handoff adds only its own trigger
|
|
55
|
+
specifics and where to place task metadata.
|
|
56
|
+
|
|
57
|
+
## Markdown Contract
|
|
58
|
+
|
|
59
|
+
- Standard CommonMark only.
|
|
60
|
+
- Output language matches the user.
|
|
61
|
+
- No skeleton, color, layout, emphasis, image, relation, boundary, summary, task
|
|
62
|
+
metadata, or batch ops in the markdown — those are emitted later as ops.
|
|
63
|
+
|
|
64
|
+
A recipe may add structural conventions (which heading level holds items, etc.)
|
|
65
|
+
in its own Structure Rules, but never op semantics.
|