一键导入
suggest-edges
Densify the note graph by proposing wikilinks for high-similarity pairs that aren't yet hard-linked; opens a PR with up to 3 edge proposals per run
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Densify the note graph by proposing wikilinks for high-similarity pairs that aren't yet hard-linked; opens a PR with up to 3 edge proposals per run
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Audit every enabled skill's upstream file dependencies for staleness — flags chained skills about to consume yesterday's article or a long-dead topic file
Audit .github/workflows and composite actions with zizmor + actionlint, classify findings against the prior audit, auto-fix Critical/High regressions, and open a PR only when something actually changed.
Weekly API cost report — computes dollar costs from token usage, flags anomalies, forecasts burn, and prescribes concrete optimizations
Weekly partial-correlation of compute economics against a Hyperliquid macro basket — DePIN-token proxy track runs every week (n>180d), sweep-P&L track defers until n≥30 joined days
Score frontier LLMs (Claude, GPT, Gemini, DeepSeek, Grok) on a private compute-markets task corpus, track score deltas across releases, flag public-vs-private divergence
Save a note as one or more atomic notes under memory/notes/ (and optionally Supernotes). Splits bundled inputs into separate atomic files.
| name | Suggest Edges |
| description | Densify the note graph by proposing wikilinks for high-similarity pairs that aren't yet hard-linked; opens a PR with up to 3 edge proposals per run |
| var | |
| tags | ["meta","docs"] |
Today is ${today}. Find pairs of notes that the TF-IDF similarity says should be linked but aren't, and propose adding [[wikilinks]]. Skip notify and PR when nothing new is proposed — silence on a well-connected graph is the expected outcome.
node scripts/suggest-edges.mjs
The script:
notegraph.json (refreshes via scripts/notegraph.mjs if missing).memory/state/suggest-edges.json.## Related notes section to each source note with the matching wikilink.memory/state/suggest-edges.json with what was applied.If stdout reports no new high-similarity unlinked pairs above threshold, exit silently. No notify. No PR.
git diff --quiet docs/ memory/ memory/state/suggest-edges.json || echo "changes detected"
If no diff, exit silently (shouldn't happen if step 1 printed proposals, but defensive).
Collect from memory/state/suggest-edges.json's tail applied entries (those with appliedAt from this run): list of {source, target, score, shared}.
Build verdict_one_line:
1 missing link: ${source.basename} ↔ ${target.basename}${N} missing links proposed (top: ${first.source.basename})git checkout -b suggest-edges/${today} 2>/dev/null || git checkout suggest-edges/${today}
git add docs/ memory/ memory/state/suggest-edges.json
git commit -m "suggest-edges: ${verdict_one_line}"
git push -u origin suggest-edges/${today}
gh pr create \
--title "suggest-edges: ${verdict_one_line}" \
--body "Auto-proposed by the \`suggest-edges\` skill on ${today}. Each entry below is a TF-IDF cosine match ≥ 0.40 between two notes that have no existing hard link.
## Proposals
$( for each applied entry: echo \"- **\${source}** → **\${target}** (similarity \${score}) shared terms: \${shared.join(', ')}\" )
## How to review
Each proposal added a \`## Related notes\` section (or appended to one) on the source note. Look at the diff — keep the suggestions you find useful, delete the ones that aren't, and merge. Rejected suggestions can be moved to the \`rejected\` array in \`memory/state/suggest-edges.json\` so they don't recur, otherwise this skill will re-propose them next time the corpus shifts.
The footer comment \`<!-- suggested by scripts/suggest-edges.mjs — edit or remove freely -->\` is a marker — leave it if you keep the section, delete it freely otherwise."
./notify "*Suggest-edges* — ${verdict_one_line}. Review PR: ${pr_url}"
Always notify when a PR opens — these are corpus mutations, not silent cleanup, and the operator should see them.
If a PR proposal isn't useful, instead of just deleting the bullet, edit memory/state/suggest-edges.json and move the entry from applied to rejected. The script reads both arrays and skips known pairs.
Pure local work — no outbound network. The script reads tracked notes via the existing notegraph.json (already a tracked artifact) and writes only inside docs/, memory/, and memory/state/.
SUGGEST_EDGES_NO_PROPOSALS — no new high-similarity unlinked pairs; silent exit (the expected path on a stable, well-connected graph)SUGGEST_EDGES_OK — proposals applied + PR opened + notify sentSUGGEST_EDGES_ERROR — script crashed or git op failed; notify with the error and exit non-zero