Logseq Review Workflow Eval
logseq/logseq
Compare two revisions of the Logseq logseq-review-workflow skill by running the same review prompt against isolated before and after skill snapshots, collecting both outputs, and producing a…
Find groups of concepts that share an implied parent slug and handle them: if the parent does not exist, create it; if it already exists, link unconnected children to it.
$ npx skills add CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install CatChen/knowledge-wiki-template knowledge-wiki-cluster --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/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .claude/skills/knowledge-wiki-cluster && 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 "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .claude/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-clusterType 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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install CatChen/knowledge-wiki-template knowledge-wiki-cluster --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .agents/skills/knowledge-wiki-cluster && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .agents/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install CatChen/knowledge-wiki-template knowledge-wiki-cluster --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .cursor/skills/knowledge-wiki-cluster && 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 "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .cursor/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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/CatChen/knowledge-wiki-template.git --path .claude/skills/knowledge-wiki-cluster--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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install CatChen/knowledge-wiki-template knowledge-wiki-cluster --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .gemini/skills/knowledge-wiki-cluster && 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 "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .gemini/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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 CatChen/knowledge-wiki-template knowledge-wiki-clusterInstalls 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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .github/skills/knowledge-wiki-cluster && 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 "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .github/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install CatChen/knowledge-wiki-template knowledge-wiki-cluster --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/CatChen/knowledge-wiki-template.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/knowledge-wiki-cluster .opencode/skills/knowledge-wiki-cluster && 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 "knowledge-wiki-cluster" agent skill from https://github.com/CatChen/knowledge-wiki-template/tree/main/.claude/skills/knowledge-wiki-cluster into .opencode/skills/knowledge-wiki-cluster/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "knowledge-wiki-cluster", 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.
knowledge-wiki-clusterFind groups of concepts that share an implied parent slug and handle them: if the parent does not exist, create it; if it already exists, link unconnected children to it.
Knowledge Wiki Cluster is an agent skill from CatChen/knowledge-wiki-template. Find groups of concepts that share an implied parent slug and handle them: if the parent does not exist, create it; if it already exists, link unconnected children to it. For each child, fold (merge content into parent and delete child), link (keep as standalone, linked to parent), or merge into a sibling that already covers its content. Net result: fewer total concepts and a fully linked hierarchy. Run after accumulating new concepts or when the wiki has clusters of narrowly-named sub-concepts without a parent.
Its SKILL.md is about 5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Knowledge Management. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 77b9be8. 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.
Shell commands in SKILL.md call:
nodegitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
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.
Knowledge Wiki Cluster loads about 5k tokens when it runs. Until then it costs about 135 tokens; SKILL.md has 2,497 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); files beside SKILL.md are not scanned.
The full file from CatChen/knowledge-wiki-template at commit 77b9be8, republished under its MIT licence (© CatChen). 2,497 words, ~5,002 tokens.
.claude/skills/knowledge-wiki-cluster/SKILL.md (or your agent's skills folder).Detect clusters of concepts that share an implied parent slug, then decide for each child whether to fold (merge content into parent and delete the child) or link (keep the child as a standalone concept linked to the parent). The goal is to reduce total concept count by absorbing thin, redundant, or retired sub-concepts into a parent article.
Two cluster types are handled:
parentExists: false): the implied parent concept does not exist yet — create it, then fold/link/merge children.parentExists: true): the implied parent already exists and these children have not yet been dismissed — fold/link/merge each one.For new-parent clusters, each concept is grouped under its non-existing prefix ancestors up to (but not including) its nearest existing ancestor — so apple-watch-ultra forms an [apple-watch] cluster when apple-watch.md is absent, even if apple.md exists. For existing-parent clusters, the concept is grouped directly at its nearest existing ancestor. Presents one cluster at a time with a batch recommendation — you confirm, override, or dismiss.
Within a cluster, children may also be merged into each other (sibling merging) before any folding into the parent. A child judged not worth folding into the parent — an Anchor — can absorb another child's content if that child — a Fold-candidate — is a strict subset of the Anchor's content. The absorbed Fold-candidate is merged into the Anchor and deleted; the Anchor is recommended to stay standalone and is not expected to be folded into the parent.
The knowledge base root is the Git repository root. Run git rev-parse --show-toplevel and store the result as KNOWLEDGE_PATH.
Run:
node {KNOWLEDGE_PATH}/scripts/wiki/candidates.mjs find-implied-parent-conceptsThis outputs { "clusters": [...] } sorted deepest first (most hyphens in impliedParent), with ties broken by cluster size descending. Both new-parent and existing-parent clusters are interleaved in this single ordering. Each entry has:
impliedParent — the parent slugchildren — array of { path, dismissed } objects, where path is the concept file path (e.g. Wiki/Concepts/audi-etron.md) and dismissed is true if this child was previously dismissed from this cluster pair, false otherwiseparentExists — false if the parent concept needs to be created; true if it already existsA cluster appears only when it has at least the usual number of dismissed: false children (≥2 for new-parent, ≥1 for existing-parent). Previously dismissed children are included with dismissed: true as potential Anchor targets for sibling merges.
Derive each child's slug from its path field: Wiki/Concepts/audi-etron.md → audi-etron. Use this slug wherever {child-slug} appears below.
If the clusters array is empty, print No clusters found. and stop.
For new-parent clusters only (parentExists: false), auto-dismiss clusters where the implied parent is a common English modifier rather than a meaningful proper noun or specific topic — e.g. smart grouping smart-home with smart-money, or the grouping the-economist with the-expanse. Children spanning clearly unrelated domains are a reliable signal for auto-dismissal. Skip this filter for existing-parent clusters — the parent's existence already confirms it is a real topic.
For each auto-dismissed cluster, run once per child:
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-state.mjs dismiss-pair knowledge-wiki-cluster "Wiki/Concepts/{impliedParent}.md" "Wiki/Concepts/{child-slug}.md"Be conservative — wrongly dismissed pairs require manually editing Wiki/.state.json to recover.
Process one cluster at a time. Use a separate interaction for each cluster — never combine multiple clusters into a single question, even if you intend to recommend the same action for several in a row. When using AskUserQuestion, pass exactly one question per call. Never use the multi-question form to batch clusters.
Maintain an in-memory processed set of impliedParent slugs handled in this session. After creating a parent, exclude already-processed slugs from the refreshed cluster list.
Determine the Display Name for the implied parent before presenting:
parentExists is true, read the parent concept file and take the Display Name from its H1 heading (# …). This preserves the exact capitalisation already in use (e.g. ios → "iOS", macos → "macOS").parentExists is false, derive a human-readable name from the slug (e.g. audi → Audi, apple-watch → Apple Watch, career → Career).Read every child concept file, then classify each one in two passes:
dismissed: true children are Anchors automatically — the previous decision that they don't belong as primary children of this parent stands; no independent judgment needed. For dismissed: false children, independently judge each as a Fold-candidate (thin, narrow, or low-standalone-value — would fold into the parent) or an Anchor (substantive: rich prose, multiple sources, or broad cross-links — would stay standalone). This judgment must not depend on any other child in the cluster.dismissed: false Fold-candidate, check whether its content is a strict subset of any Anchor's content in the same cluster (whether that Anchor is dismissed: true or dismissed: false) — i.e. the Fold-candidate adds nothing the Anchor doesn't already cover, not merely "related" or "similar". If so, recommend Merge into {anchor-slug} instead of Fold. Anchors only absorb — an Anchor is recommended to stay standalone and is not expected to be folded or merged away.Present a cluster summary as a 3-column table with each child's description and recommendation inline. Output the table as a normal assistant message (not in a code block) so it renders — this message must be sent before calling any interactive question tool:
Cluster: {Display Name} ({N} children, {existing parent | new parent})
| Child | Description | Recommendation |
|---|---|---|
{child-slug} | {one-sentence description} | Fold — {reason} |
{child-slug} | {one-sentence description} | Link — {reason} |
{child-slug} (dismissed) | {one-sentence description} | Link — previously dismissed; auto-classified as Anchor |
{child-slug} | {one-sentence description} | Merge into {anchor-slug} — {reason: what subset of the anchor's content this duplicates} |
Then write 1–2 sentences of reasoning: what the children have in common, whether creating a parent would add meaningful value, and call out any proposed sibling merges.
Use "What would you like to do with the {Display Name} cluster?" as the question text. Never put (Recommended) on Dismiss. The remaining guidance differs by cluster type:
If parentExists is false (new-parent cluster): Add (Recommended) to Proceed only when the cluster is a clear brand, product line, or named topic with 3+ children that obviously belong under it and at least one child is recommended for folding or merging into a sibling.
| # | Option | Description |
|---|---|---|
| 1 | Proceed | Create "{Display Name}" and apply the recommendations above (fold, link, or merge into a sibling) |
| 2 | Link all | Create "{Display Name}" and link all children to it, keeping them standalone (overrides any sibling-merge recommendations) |
| 3 | Fold all | Create "{Display Name}" and fold every child into it (overrides any sibling-merge recommendations) |
| 4 | Dismiss | These don't belong together; never show this cluster again (no parent created) |
Users may also type skip (leave for now; show again next run), review one by one (create parent then decide each child individually), or stop (halt all remaining clusters) in the Other field.
If parentExists is true (existing-parent cluster): Add (Recommended) to Proceed when at least one child is recommended for folding or merging into a sibling.
| # | Option | Description |
|---|---|---|
| 1 | Proceed | Ensure bidirectional links to "{Display Name}" and apply the recommendations above (fold, link, or merge into a sibling) |
| 2 | Link all | Link all children to "{Display Name}" but keep them standalone (overrides any sibling-merge recommendations) |
| 3 | Fold all | Link all children to "{Display Name}" and fold every child into it (overrides any sibling-merge recommendations) |
| 4 | Dismiss | The slug prefix is coincidental; never show this cluster again (no links created) |
Users may also type skip (leave for now; show again next run), review one by one (link to parent then decide each child individually), or stop (halt all remaining clusters) in the Other field.
When using an interactive question/options tool, keep the question text short: "What would you like to do with the {Display Name} cluster?" Do not cram the summary, reasoning, or option details into one long question line.
The user must still be able to see the full decision context while choosing: the cluster summary, recommendation reasoning, all four options, and the extra accepted inputs. This context may be in the tool's body/details area, or in an immediately preceding assistant message if that message remains expanded and visible while the dialog is open. If the available question tool cannot keep that context visible together with the options, do not use it for this prompt. Instead, render the summary, reasoning, numbered options, and reply instructions as one normal markdown message, then wait for the user's reply. Accept 1, 2, 3, or 4; also accept skip, review one by one, or stop to halt all remaining clusters.
Do not create or edit any files until all decisions are collected. If stop is entered at any point during decision collection, proceed to section 4f without creating any files.
Record the 4a table recommendations as final decisions — Fold into the parent, Link (Anchor), or Merge into {anchor-slug} for each child. Proceed to 4c.5.
Record every dismissed: false child as Link (standalone), overriding any sibling-merge or fold recommendations. dismissed: true children are unaffected — they remain background Anchors. Proceed to 4c.5.
Record every dismissed: false child as Fold into the parent, overriding any sibling-merge recommendations. dismissed: true children are never folded — they are Anchors by definition and remain standalone. Proceed to 4c.5.
Process sibling-merge candidates first, then remaining children.
For each Anchor that has one or more Fold-candidates recommended to merge into it (per the 4a table), present your reasoning, then ask:
When using an interactive question/options tool, keep the question text short: "Merge {Fold-candidate display name(s)} into {Anchor display name}?" Do not cram the recommendation, reasoning, or option details into one long question line.
The user must still be able to see the full decision context while choosing: the recommendation, reasoning, both options, and the done/stop instructions. This context may be in the tool's body/details area, or in an immediately preceding assistant message if that message remains expanded and visible while the dialog is open. If the available question tool cannot keep that context visible together with the options, do not use it for this prompt. Instead, render the recommendation, reasoning, numbered options, and reply instructions as one normal markdown message, then wait for the user's reply.
Use these options (add (Recommended) to whichever applies):
| # | Option | Description |
|---|---|---|
| 1 | Merge into "{Anchor display name}" | Merge the listed child(ren)'s content into "{Anchor display name}", then delete them. "{Anchor display name}" stays standalone |
| 2 | Decline | Keep the listed child(ren) separate; each will be reviewed individually below |
Accept: 1 (Merge), 2 (Decline), done (proceed with decisions collected so far — unprocessed Anchors are treated as Decline and unprocessed remaining children are treated as Link), or stop.
If stop was entered, proceed to section 4f without creating any files.
If declined, each listed Fold-candidate falls back to individual review below.
For every remaining dismissed: false child — Fold-candidates not absorbed by an Anchor (via Decline or no Anchor match), and dismissed: false Anchors — process one at a time. (dismissed: true Anchors are not re-evaluated here; they only appear as sibling-merge targets in the Anchor-confirmation step above.) Present your recommendation and reasoning for that child, then ask:
When using an interactive question/options tool, keep the question text short: "What should happen to {child-display-name}?" Do not cram the recommendation, reasoning, or option details into one long question line.
The user must still be able to see the full decision context while choosing: the child recommendation, reasoning, both options, and the done/stop instructions. This context may be in the tool's body/details area, or in an immediately preceding assistant message if that message remains expanded and visible while the dialog is open. If the available question tool cannot keep that context visible together with the options, do not use it for this prompt. Instead, render the recommendation, reasoning, numbered options, and reply instructions as one normal markdown message, then wait for the user's reply.
Use these options (add (Recommended) to whichever applies):
| # | Option | Description |
|---|---|---|
| 1 | Fold "{child-display-name}" into "{Display Name}" | Merge child's content into parent, then delete child |
| 2 | Link "{child-display-name}" | Keep child standalone; will be linked to parent |
Accept: 1 (Fold), 2 (Link), done (proceed with decisions collected so far — unprocessed children will be treated as Link), or stop.
If stop was entered, proceed to section 4f without creating any files.
If parentExists is true, the parent concept file already exists — skip ahead to Execute sibling merges.
If parentExists is false and at least one dismissed: false child has a final outcome of Fold or Link, create the parent concept:
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-concept.mjs create "{impliedParent}" "{Display Name}" --type Synthesis --icon notepadThis creates Wiki/Concepts/{impliedParent}.md.
Read the file, then insert a 1–3 paragraph topic overview between # {Display Name} and ## Sources. Write it as a factual reference — what this topic is and what sub-concepts exist under it. Keep it concise; each Fold will enrich the body incrementally. Use American English spelling. Update the existing tags: [] field with the union of tags from the child files, keeping only those that genuinely describe the parent topic.
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-index.mjs upsert-concept "{impliedParent}" "{Display Name}" "{one-line English description}"Execute sibling merges:
For each child whose final outcome is Merge into {anchor-slug}, execute the knowledge-wiki-merge step 3c with this mapping:
{anchor-slug}, display name {anchor-display-name}, path Wiki/Concepts/{anchor-slug}.md{child-slug}, display name {child-display-name}, path Wiki/Concepts/{child-slug}.mdRun this before linking or folding — a merged-away child is deleted and must not be linked to the parent or folded into it.
Link children bidirectionally (idempotent):
For each dismissed: false child with final outcome Link, derive its display name from its H1 heading (# …). Run both commands — the first adds the child to the parent's Connected Concepts, the second adds the parent to the child's:
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-concept.mjs insert-connected-concept "{impliedParent}" "{child-slug}" "{child-display-name}"
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-concept.mjs insert-connected-concept "{child-slug}" "{impliedParent}" "{Display Name}"dismissed: true Anchors are never linked to the parent, even if they absorbed a sibling merge — the previous decision not to connect them stands.
Record linked children:
For each dismissed: false child where Link was chosen, record a dismissed pair so the child is not re-evaluated in future runs. (dismissed: true children already have a dismissed pair recorded — do not run this for them.) Run this after the link commands above succeed:
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-state.mjs dismiss-pair knowledge-wiki-cluster "Wiki/Concepts/{impliedParent}.md" "Wiki/Concepts/{child-slug}.md"Execute folds:
For each dismissed: false child where Fold was chosen, execute the knowledge-wiki-merge step 3c with this mapping:
{impliedParent}, display name {Display Name}, path Wiki/Concepts/{impliedParent}.md{child-slug}, display name {child-display-name}, path Wiki/Concepts/{child-slug}.mdWrap up:
This runs whether or not all children were processed. Add {impliedParent} to the in-memory processed set. Re-run:
node {KNOWLEDGE_PATH}/scripts/wiki/candidates.mjs find-implied-parent-conceptsReplace your working cluster list with this fresh output, excluding any slug already in the processed set.
If Dismiss: run dismiss-pair once per child so each individual relationship is suppressed rather than the whole parent slug:
node {KNOWLEDGE_PATH}/scripts/wiki/wiki-state.mjs dismiss-pair knowledge-wiki-cluster "Wiki/Concepts/{impliedParent}.md" "Wiki/Concepts/{child-slug}.md"If new children appear under the same parent later, they will resurface — only the specific children dismissed here are suppressed.
If "skip" (leave for now; show again next run): make no state changes. Simply add {impliedParent} to the in-memory processed set for this session so it is not presented again during the current run.
Add {impliedParent} to the processed set and continue. (No refresh needed — no concept files were created.)
Exit the loop and proceed to step 5.
Knowledge Wiki Cluster
Auto-dismissed {N} cluster(s) (meaningless prefix):
- [{impliedParent}]
Created {N} concept(s):
- {impliedParent} — {Display Name}
Folded {Nf} child(ren): {child-slug}, {child-slug}, ...
Not folded {Nn} child(ren): {child-slug}, {child-slug}, ...
Merged {N} child(ren) into sibling(s):
- {child-slug} → {anchor-slug}
Dismissed {N} cluster(s):
- [{impliedParent}]
Skipped {N} cluster(s).
[Omit any section with 0 items.]© CatChen, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/knowledge-wiki-cluster of CatChen/knowledge-wiki-template.
Open the folder on GitHubat commit 77b9be8
Knowledge Wiki Cluster 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 |
|---|---|---|---|---|---|---|
| Knowledge Wiki Cluster this skillCatChen/knowledge-wiki-template | 106 | — | ~5k | Automated safety check: Pass | MIT | |
| Logseq Review Workflow Evallogseq/logseq | 45k | — | ~1k | Automated safety check: Pass | AGPL-3.0 | |
| Baoyu URL To Markdownsdyckjq-lab/llm-wiki-skill | 2.5k | 2 repos | ~3.2k | Automated safety check: Pass | None | |
| Obsidian CLIAtmosphere/atmosphere | 3.8k | 13 repos | ~795 | Automated safety check: Pass | Apache-2.0 | |
| Esm Cjs Risk Scanlogseq/logseq | 45k | — | ~3.3k | Automated safety check: Pass | AGPL-3.0 | |
| Karpathy LLM WikiAstro-Han/karpathy-llm-wiki | 2.4k | — | ~3.6k | Automated safety check: Pass | MIT |
logseq/logseq
Compare two revisions of the Logseq logseq-review-workflow skill by running the same review prompt against isolated before and after skill snapshots, collecting both outputs, and producing a…
sdyckjq-lab/llm-wiki-skill
Fetch any URL and convert to markdown using Chrome CDP. An agent skill from sdyckjq-lab/llm-wiki-skill.
Atmosphere/atmosphere
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more.
logseq/logseq
Scan Logseq ClojureScript Node/Electron targets for npm module loading risks, especially ESM-only packages that may fail when loaded through js/require or shadow-cljs require-based shims.
Astro-Han/karpathy-llm-wiki
A skill your agent uses when building or maintaining a personal LLM-powered knowledge base.
zstmfhy/zlibrary-to-notebooklm
自动从 Z-Library 下载书籍并上传到 Google NotebookLM。支持 PDF/EPUB 格式,自动转换,一键创建知识库。
CatChen/knowledge-wiki-template
Create or update wiki concept files from knowledge base summaries.
CatChen/knowledge-wiki-template
Generate or refresh wiki summaries for knowledge base markdown files.
CatChen/knowledge-wiki-template
Scan the wiki for cross-cutting connections, implicit relationships, contradictions, and gaps across concepts and summaries, then write synthesis concept files.
CatChen/knowledge-wiki-template
Expand thin concept articles in the knowledge wiki using web search.
CatChen/knowledge-wiki-template
Audit and repair the knowledge wiki. An agent skill from CatChen/knowledge-wiki-template.
CatChen/knowledge-wiki-template
Interactively find and merge duplicate concept files in the knowledge wiki.
Categories
Find groups of concepts that share an implied parent slug and handle them: if the parent does not exist, create it; if it already exists, link unconnected children to it. Knowledge Wiki Cluster is an agent skill from CatChen/knowledge-wiki-template. Find groups of concepts that share an implied parent slug and handle them: if the parent does not exist, create it; if it already exists, link unconnected children to it.
Knowledge Wiki Cluster fits situations like: knowledge Management work in your project.
Run `npx skills add CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a claude-code`. Or copy the skill folder (.claude/skills/knowledge-wiki-cluster in CatChen/knowledge-wiki-template) into .claude/skills/knowledge-wiki-cluster in your project. Claude Code loads it when a task matches its description.
Run `npx skills add CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a codex`. Or copy the skill folder (.claude/skills/knowledge-wiki-cluster in CatChen/knowledge-wiki-template) into .agents/skills/knowledge-wiki-cluster 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 CatChen/knowledge-wiki-template --skill knowledge-wiki-cluster -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/knowledge-wiki-cluster, .gemini/skills/knowledge-wiki-cluster, .github/skills/knowledge-wiki-cluster and .opencode/skills/knowledge-wiki-cluster in your project.
Going by SKILL.md and its folder, Knowledge Wiki Cluster needs the command-line tools its instructions call (node and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. 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. Review the folder before installing.
Knowledge Wiki Cluster is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5k tokens (SKILL.md is roughly 20k 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 Knowledge Wiki Cluster: Logseq Review Workflow Eval (logseq/logseq, 45k stars), Baoyu URL To Markdown (sdyckjq-lab/llm-wiki-skill, 2.5k stars), Obsidian CLI (Atmosphere/atmosphere, 3.8k stars) and Esm Cjs Risk Scan (logseq/logseq, 45k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
CatChen (a GitHub user) maintains it in CatChen/knowledge-wiki-template, which has 106 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on June 24, 2026.
Source: CatChen/knowledge-wiki-template on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.