Obsidian Canvas Boards
AgriciDaniel/claude-obsidian
Creates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits.
Recursively builds a knowledge graph of mathematical concepts and ML algorithms.
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graph --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .claude/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .claude/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graphType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graph --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .agents/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .agents/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graph --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .cursor/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .cursor/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/the-palindrome/ml-knowledge-graph.git --path .claude/skills/build-knowledge-graph--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graph --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .gemini/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .gemini/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graphInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .github/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .github/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install the-palindrome/ml-knowledge-graph build-knowledge-graph --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/the-palindrome/ml-knowledge-graph.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/build-knowledge-graph .opencode/skills/build-knowledge-graph && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "build-knowledge-graph" agent skill from https://github.com/the-palindrome/ml-knowledge-graph/tree/main/.claude/skills/build-knowledge-graph into .opencode/skills/build-knowledge-graph/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "build-knowledge-graph", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
build-knowledge-graphRecursively builds a knowledge graph of mathematical concepts and ML algorithms.
Build Knowledge Graph is an agent skill from the-palindrome/ml-knowledge-graph. Recursively builds a knowledge graph of mathematical concepts and ML algorithms. Use when the user asks to "build a knowledge graph", "decompose concepts", "map dependencies between algorithms", or provides seed concepts for graph expansion. Each node is a precisely definable concept (algorithm, theorem, mathematical object) with prerequisite edges.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/graph.py`).
It sits in Knowledge Management, covering Knowledge graphs. The repository describes itself as: Knowledge graph explorer for machine learning. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit c7e20bf. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
python3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Build Knowledge Graph loads about 3.3k tokens when it runs. Until then it costs about 93 tokens; SKILL.md has 1,166 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from the-palindrome/ml-knowledge-graph at commit c7e20bf, republished under its MIT licence (© the-palindrome). 1,166 words, ~3,312 tokens.
.claude/skills/build-knowledge-graph/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Recursively decompose ML algorithms and mathematical concepts into a directed knowledge graph. Each node is a precisely definable concept -- an algorithm, theorem, mathematical object, or operation (e.g. "eigenvalue", "transformer layer", "decision tree", "directed acyclic graph"). Nodes are never fields, disciplines, or vague terms.
The final graph must be a DAG (no directed cycles).
{
"id": "a0237bba",
"label": "singular value decomposition",
"to": ["9f9d6c30", "d2155e0e"],
"from": ["bf594ee2", "1c77c3c7"],
"category": "Linear and multilinear algebra; matrix theory",
"definition": "A factorization M = U S V^T where U, V are orthogonal and S is diagonal with non-negative entries...",
"long_description": "The singular value decomposition (SVD) expresses any m × n real (or complex) matrix A as A = UΣV^T ...",
"_depth": 3,
"_pagerank": 0.00024,
"_degree_centrality": 0.00120,
"_betweenness_centrality": 0.0,
"_descendant_ratio": 0.99759,
"_prerequisite_ratio": 0.0,
"_reachability_ratio": 0.99519
}| Field | Description |
|---|---|
id | Deterministic 8-char hex SHA-256 of the lowercase label |
label | Canonical lowercase name |
to | IDs of nodes that depend on this concept (this node is a prerequisite OF those) |
from | IDs of nodes this concept depends on (prerequisites OF this node) |
category | MSC 2020 category (math) or CS task taxonomy (ML/CS) |
definition | Precise mathematical definition (1-3 sentences) |
long_description | Extended mathematical description (200-300 words) covering formal definition, key properties, theorems, relationships, and intuition |
_depth | Internal structural depth (0 for nodes with no prerequisites; otherwise 1 + max(prereq depth)) |
_pagerank | PageRank score on directed prerequisite graph |
_degree_centrality | Normalized directed degree centrality |
_betweenness_centrality | Directed betweenness centrality |
_descendant_ratio | Descendant count divided by number of nodes at strictly higher depth |
_prerequisite_ratio | Prerequisite count divided by number of nodes at strictly lower depth |
_reachability_ratio | (descendant count + prerequisite count) / total nodes |
python3 .claude/skills/build-knowledge-graph/scripts/graph.py <subcommand> [args]| Subcommand | Purpose |
|---|---|
init <path> | Create empty graph file |
add-seeds <path> <s1> <s2> ... | Add seed concepts at depth 0 |
pending <path> [--limit N] [--max-depth D] | Show next N unvisited concepts |
ingest <path> [--max-depth D] | Read JSON decompositions from stdin, update graph |
finalize <path> | Post-process and enforce DAG: eliminate cycles, compute metrics on complete DAG, transitive-reduce, remove orphans, deduplicate, sort |
stats <path> | Print graph statistics |
GRAPH="knowledge_graph.json"
GR="python3 .claude/skills/build-knowledge-graph/scripts/graph.py"
$GR init "$GRAPH"
$GR add-seeds "$GRAPH" "concept 1" "concept 2" "concept 3"If a graph file already exists and the user wants to resume/extend, skip init and just run pending to see what remains.
Repeat until pending prints NO_PENDING:
Step A -- Get the next batch:
$GR pending "$GRAPH" --limit 10Step B -- For every concept in the batch, produce a decomposition. Analyze them all at once. For each concept determine:
Format as a JSON array:
[
{
"label": "concept name",
"definition": "...",
"long_description": "...",
"prerequisites": ["prereq a", "prereq b"],
"category": "Category Name"
}
]Step C -- Pipe the JSON into ingest:
cat <<'BATCH' | $GR ingest "$GRAPH"
[ ... JSON array ... ]
BATCHStep D -- Read the ingest output to see how many nodes are pending. Go back to Step A.
$GR finalize "$GRAPH"
$GR stats "$GRAPH"Always run finalize before delivering results. finalize enforces that the resulting graph is a DAG (cycles removed + transitive reduction applied).
finalize also computes and saves node metrics on the complete DAG (after cycle elimination and before transitive reduction), then writes the reduced DAG.
The final saved graph must include _pagerank, _degree_centrality, _betweenness_centrality, _descendant_ratio, _prerequisite_ratio, and _reachability_ratio on every node.
Report the final node count, edge count, top categories, and confirm that node metrics were computed and saved from the complete graph.
These rules are critical for graph quality:
Nodes must be precise concepts, not fields.
Prerequisites must appear in the definition. Only list concepts that someone must understand to parse the definition. Do not list tangentially related concepts.
Use canonical lowercase names: "rectified linear unit", "batch normalization", "bayes theorem", "singular value decomposition".
Terminal concepts (do not decompose further -- the bare logical and set-theoretic bedrock): set, element, natural numbers, logical conjunction, logical disjunction, logical negation, logical implication, universal quantifier, existential quantifier, equality.
Everything above this level must be decomposed. For example:
The goal is a graph that bottoms out at foundational mathematics (set theory, logic, basic algebraic structures) rather than stopping at calculus-level concepts.
No self-references: a concept cannot list itself as a prerequisite.
Prefer specificity: "convolutional layer" decomposes into "convolution", "activation function", "bias vector" -- not into "neural network" or "deep learning".
Result must be acyclic: the final delivered graph must be a DAG. Always run finalize to enforce cycle elimination and transitive reduction.
Both definition and long_description are Markdown strings with LaTeX math. Follow these rules strictly:
$...$ for inline math and $$...$$ for display math.$f(x) = \sum_{i=1}^{n} w_i x_i$f(x) = sum_i w_i x_i or f(x) = Σ wᵢxᵢ$\alpha$, $\beta$, $\Sigma$, $\epsilon$, $\theta$, $\lambda$$\sum$, $\prod$, $\int$, $\nabla$, $\partial$, $\max$, $\min$, $\arg\max$, $\arg\min$$\leq$, $\geq$, $\neq$, $\in$, $\subset$, $\subseteq$, $\forall$, $\exists$, $\implies$, $\iff$$\hat{y}$, $\bar{x}$, $\tilde{w}$, $\mathbf{x}$ (bold vectors), $\mathbb{R}$ (number sets), $\mathcal{L}$ (loss/Lagrangian)$\left( ... \right)$, $\| \mathbf{x} \|$ for norms$\text{softmax}$, $\operatorname{ReLU}$\text{} or \operatorname{} for multi-letter function names inside math mode — never bare words.\lVert \cdot \rVert or \| \cdot \| for norms, not || ||.long_description)#, ##) inside descriptions — the description is a single node's content.definition (short):
"The **sigmoid function** is defined as $\\sigma(x) = \\frac{1}{1 + e^{-x}}$, mapping $\\mathbb{R} \\to (0, 1)$."long_description (extended):
"The **sigmoid function** (also called the logistic function) is the smooth, monotonically increasing map $\\sigma : \\mathbb{R} \\to (0, 1)$ defined by\n\n$$\\sigma(x) = \\frac{1}{1 + e^{-x}}.$$\n\nIt arises naturally as the canonical link function for Bernoulli-distributed responses in generalized linear models, converting log-odds to probabilities.\n\n**Key properties:**\n\n- **Symmetry:** $\\sigma(-x) = 1 - \\sigma(x)$.\n- **Derivative:** $\\sigma'(x) = \\sigma(x)(1 - \\sigma(x))$, which is maximal at $x = 0$ (value $\\frac{1}{4}$) and vanishes as $|x| \\to \\infty$.\n- **Inverse:** The logit function $\\sigma^{-1}(p) = \\ln\\frac{p}{1-p}$.\n- **Limits:** $\\lim_{x \\to -\\infty} \\sigma(x) = 0$ and $\\lim_{x \\to +\\infty} \\sigma(x) = 1$.\n\nIn neural networks, the sigmoid was historically the default activation function but has been largely replaced by ReLU and its variants in hidden layers due to the **vanishing gradient problem**: for large $|x|$, $\\sigma'(x) \\approx 0$, causing gradients to shrink exponentially through deep layers during backpropagation.\n\nThe sigmoid remains standard in **output layers for binary classification**, where the output $\\sigma(\\mathbf{w}^\\top \\mathbf{x} + b)$ is interpreted as $P(y = 1 \\mid \\mathbf{x})$, and in **gating mechanisms** (LSTM, GRU, mixture of experts) where a value in $(0, 1)$ controls information flow.\n\nComputationally, care must be taken to evaluate $\\sigma$ in a numerically stable way, using $\\sigma(x) = e^x / (1 + e^x)$ for $x < 0$ and the standard form for $x \\geq 0$ to avoid overflow."Mathematics -- use MSC 2020 top-level category names:
CS/ML -- use the narrowest applicable discipline:
| Parameter | Default | Description |
|---|---|---|
--max-depth | 100 | Max structural depth used when selecting pending nodes and ingest expansion |
--limit | 10-20 | Batch size per iteration (adjust for speed vs. thoroughness) |
| Output path | knowledge_graph.json | Default graph file |
The graph file is the checkpoint. If a build is interrupted, simply run pending on the existing file to pick up where you left off. New seeds can be added to an existing graph with add-seeds.
© the-palindrome, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file (scripts) in .claude/skills/build-knowledge-graph of the-palindrome/ml-knowledge-graph.
Open the folder on GitHubat commit c7e20bf
Build Knowledge Graph next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Build Knowledge Graph this skillthe-palindrome/ml-knowledge-graph | 151 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Obsidian Canvas BoardsAgriciDaniel/claude-obsidian | 15k | — | ~1.4k | Automated safety check: Pass | MIT | |
| Ontology1mancompany/OneManCompany | 441 | 2 repos | ~1.5k | Automated safety check: Pass | Apache-2.0 | |
| Knowledge Graphgnomeria/usbtree | 691 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Graphagenticnotetaking/arscontexta | 3.5k | — | ~4.9k | Automated safety check: Notes | MIT | |
| LLM Wiki Knowledge GraphEgonex-AI/Understand-Anything | 86k | — | ~1.5k | Automated safety check: Pass | MIT |
AgriciDaniel/claude-obsidian
Creates, inspects and updates Obsidian JSON Canvas boards in a vault, with text, file, link, group and edge nodes, using safe recoverable edits.
1mancompany/OneManCompany
Typed knowledge graph for structured agent memory and composable skills.
gnomeria/usbtree
Set up and maintain a lightweight, file-based knowledge graph of the repo — entities, typed relations, decisions, gotchas — so agents load context fast instead of re-exploring the codebase every…
agenticnotetaking/arscontexta
Interactive knowledge graph analysis. An agent skill from agenticnotetaking/arscontexta.
Egonex-AI/Understand-Anything
Detects a Karpathy-pattern LLM wiki and builds an interactive knowledge graph with entities, implicit relationships and topic clusters.
aws-samples/sample-kolya-br-proxy
A skill your agent uses when the user asks about GitNexus itself — available tools, how to query the knowledge graph, MCP resources, graph schema, or workflow reference.
Categories
Recursively builds a knowledge graph of mathematical concepts and ML algorithms. Build Knowledge Graph is an agent skill from the-palindrome/ml-knowledge-graph. Recursively builds a knowledge graph of mathematical concepts and ML algorithms.
Build Knowledge Graph fits situations like: the user asks to build a knowledge graph; decompose concepts; map dependencies between algorithms; provides seed concepts for graph expansion.
Run `npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a claude-code`. Or copy the skill folder (.claude/skills/build-knowledge-graph in the-palindrome/ml-knowledge-graph) into .claude/skills/build-knowledge-graph in your project. Claude Code loads it when a task matches its description.
Run `npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a codex`. Or copy the skill folder (.claude/skills/build-knowledge-graph in the-palindrome/ml-knowledge-graph) into .agents/skills/build-knowledge-graph in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add the-palindrome/ml-knowledge-graph --skill build-knowledge-graph -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/build-knowledge-graph, .gemini/skills/build-knowledge-graph, .github/skills/build-knowledge-graph and .opencode/skills/build-knowledge-graph in your project.
Going by SKILL.md and its folder, Build Knowledge Graph needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Build Knowledge Graph is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Build Knowledge Graph: Obsidian Canvas Boards (AgriciDaniel/claude-obsidian, 15k stars), Ontology (1mancompany/OneManCompany, 441 stars), Knowledge Graph (gnomeria/usbtree, 691 stars) and Graph (agenticnotetaking/arscontexta, 3.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
the-palindrome (a GitHub organization) maintains it in the-palindrome/ml-knowledge-graph, which has 151 GitHub stars. The repository was last updated on April 15, 2026.
Source: the-palindrome/ml-knowledge-graph on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.