concept-map — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited concept-map (Agent Skill) and scored it 92/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 2 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 2 flagged
The text {match} tells the agent to skip the normal "ask the user first" gate. Used adversarially it removes the human-in-the-loop check before destructive or sensitive actions, turning a normally-gated agent into a fire-and-forget executor.
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Turn a topic string or source text into a legible graph that shows structure at a glance. Default output is Mermaid syntax (renders in GitHub, Notion, Obsidian, and Claude Code with zero install) plus a PNG/SVG when a renderer is available.
Activate on any phrasing that asks to visualize relationships between ideas. Examples:
tree, concept-map, flow, timeline, mindmap. Inferred if omitted (see table below).mermaid (default), dot, markmap, or all.scripts/render.py to produce PNG/SVG.Pick the graph type from the user's wording — do NOT ask unless both topic and format are absent.
| Phrasing cue | Graph type | Mermaid directive |
|---|---|---|
| "timeline of", "history of", "events leading up to", "chronology" | timeline | timeline |
| "parts of a ___", "anatomy of", "taxonomy of", "types of", "classification" | tree (hierarchical) | graph TD |
| "prerequisite tree", "what do I need before", "dependency graph" | tree (bottom-up DAG) | graph BT or DOT rankdir=BT |
| "causes of ___", "cause and effect", "what led to" | concept map with labeled edges | graph LR with edge labels |
| "how does ___ work", "process of", "steps in", "scientific method" | flow (process) | flowchart LR |
| "mind map of", "brainstorm", "everything about ___", "map my notes" | radial mindmap | mindmap |
| "concept map", "how these ideas relate", "relationships between" | Novak concept map | graph TD with labeled edges + cross-links |
| "markmap", "outline of my notes", "heading tree" | Markmap | Markdown headings |
If both topic AND format are missing, ask ONE clarifying question in this exact shape:
Quick check — what topic, and which flavor? (e.g. mind map of the French Revolution · concept map for photosynthesis · prerequisite tree for calculus · timeline of WWII)
Do not stack questions. Once the user answers, proceed straight to generation.
| Level | Nodes | Structure | Edge labels |
|---|---|---|---|
| K-2 | 3-5 | Simple radial mindmap | None (lines only) |
| 3-5 | 6-10 | Hierarchical tree | Simple ("is a", "has") |
| 6-8 | 10-15 | Tree or concept map | Verbs ("causes", "requires") |
| 9-12 | 15-25 | Concept map with cross-links | Full labeled propositions |
| College | 20-40 | Concept map, multiple clusters | Rich labels |
| Grad | Up to 50 | Concept map + subgraphs / process flows | Precise terminology |
Vocabulary tracks level: K-2 uses common words, grad uses domain-precise terms.
max-nodes.references/novak-concept-maps.md.concept-map.mmd by default).render: true, invoke scripts/render.py --input concept-map.mmd --output concept-map.png. Script falls back to install hints if the CLI is missing; the syntax file is always preserved.| Setting | Default |
|---|---|
| Format | Mermaid (graph TD or per inference table) |
| Render | Auto-invoke scripts/render.py when the user asks for a rendered image; otherwise emit syntax + one-line render instructions |
| Max nodes | 20 (hard cap 50) |
| Cross-links | Enabled for grades 9-12 and above |
| Edge labels | Required for concept maps, optional for trees, off for K-2 mindmaps |
| Output bundle | .mmd + .png + render instructions |
User: "concept map for photosynthesis, 7th grade"
Inferred: grade 7, concept map with labeled edges, Mermaid graph TD, ~10 nodes.
graph TD
P[Photosynthesis] -->|"needs"| L[Light energy]
P -->|"needs"| W[Water]
P -->|"needs"| C[CO₂]
P -->|"happens in"| CH[Chloroplasts]
P -->|"produces"| G[Glucose]
P -->|"produces"| O[Oxygen]
CH -->|"contain"| CL[Chlorophyll]
CL -->|"absorbs"| L6 core nodes + 2 supporting nodes, every edge labeled, root is the central concept. Emit the raw Mermaid above as concept-map.mmd, then run scripts/render.py for a PNG.
Run the bundled script from the skill root:
python3 scripts/render.py --input concept-map.mmd --output concept-map.pngDispatch by file extension:
.mmd / .mermaid → mmdc (Mermaid CLI).dot / .gv → dot (Graphviz).md → markmap-cli (Markmap)If the required CLI is missing, render.py exits 0 (non-fatal), prints platform-specific install commands, and points at https://mermaid.live/edit as a zero-install fallback. The syntax file is always preserved.
references/graph-type-guide.md — decision tree for picking tree / concept-map / flow / timeline / mindmap.references/mermaid-cheatsheet.md — graph TD, flowchart LR, mindmap, timeline, node shapes, edge labels, subgraphs, styling.references/dot-cheatsheet.md — DOT syntax, digraph, rankdir, clusters, dot/neato/fdp layouts.references/markmap-syntax.md — Markdown-heading-driven mind maps, frontmatter options.references/novak-concept-maps.md — Novak & Cañas theory: propositions (concept-link-concept), focus questions, cross-links, hierarchical layout.references/node-labeling.md — label length, noun-nodes / verb-edges, reading-level calibration.Load a reference only when its topic is active — never preload.
Every generated graph must satisfy:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.