mcpbeat

Keyword Graph View

twhsi/keyword-graph-view

Extract exactly 8 context-sensitive keywords from Chinese, English, or mixed text and turn them into a distributed weighted Graph View with no center goal node. Use when Codex needs keyword extraction, blacklist filtering, co-occurrence edges, node definitions/notes, weighted graph JSON, or an online Graph View tool for text analysis.

424k tokens
context cost
the whole folder, loaded on every use
29
files
ships runnable scripts
0
copies elsewhere
how many repositories repackaged it
256
stars on the repo
on the repository, not the skill itself

Install

one command, takes just this skill from the repository
npx skills add https://github.com/twhsi/skills --skill keyword-graph-view

The instruction itself

8 sections, as written by the author

Keyword Graph View

Create a centerless keyword network from raw text. The output should contain 8 keyword nodes, weighted undirected edges, and a short definition/note for every node.

Live Tool

  • Open the public app at https://keyword-graph-view.twhsi.chatgpt.site/ when the user wants an interactive Graph View.
  • Use assets/web-app/ when the user wants to inspect, adapt, or redeploy the validated website source.
  • In the web app, paste or import text, edit the blacklist, select a case, and press the generate button. Click a node to inspect its definition, note, evidence, and weighted connections.

Workflow

  • Read the source text and any user-provided blacklist.
  • Remove blacklisted phrases before token scoring, then filter blacklisted tokens during ranking.
  • Extract exactly 8 keywords by frequency, term length, and spread through the source.
  • Build weighted co-occurrence edges by scanning a configurable token window.
  • Do not create a "center", "main goal", "中心目標", or hub node unless the user explicitly asks for a radial Mandalart layout.
  • Generate a definition for each node from its strongest evidence sentence and connected keywords.
  • Render or return a distributed graph: positions should be balanced across the canvas, with edge width and node area showing weight.

Output Schema

Return graph JSON with this shape when the user asks for data or a reusable artifact:

{
  "meta": {
    "model": "keyword_graph_view",
    "keyword_count": 8,
    "layout": "distributed_weighted_network"
  },
  "nodes": [
    {
      "id": "k0",
      "label": "keyword",
      "count": 5,
      "score": 1,
      "weight": 9,
      "definition": "Context-specific definition",
      "note": "Longer note for side panel display",
      "evidence": ["source sentence"]
    }
  ],
  "edges": [
    {
      "id": "e0",
      "source": "k0",
      "target": "k1",
      "weight": 7,
      "relation": "co_occurs"
    }
  ]
}

Visual Rules

  • Use dark mode by default for online tools.
  • Keep the graph centerless and distributed; avoid drawing a privileged center node.
  • Show edge labels or widths for weights.
  • Make nodes clickable or keyboard focusable when interactive output is possible.
  • Provide a right-side Note panel that updates from the selected node.
  • Include each node's definition, evidence sentences, score, count, and connected keywords in the note.
  • Keep labels readable in Traditional Chinese: use system CJK fonts, strong contrast, and label wrapping where needed.
  • Map edge weight from purple (W1) through blue, cyan, green, yellow, and orange to red (W9); increase line thickness with weight.
  • Provide visible zoom-in and zoom-out controls for the graph canvas.

Blacklist

Treat the blacklist as both phrase removal and token filtering. Default blacklist terms should include common structural words and Mandalart-center words such as:

中心目標
主目標
main goal
goal
中心
目標

Preserve the user's blacklist in the output metadata when useful.

Script

Use scripts/extract_keyword_graph.py for deterministic text-to-graph JSON:

python3 scripts/extract_keyword_graph.py input.txt --blacklist blacklist.txt --out graph.json

Patch the script only when the project needs a new schema or scoring behavior; otherwise prefer running it with options.

Web App

Run the bundled app locally only when interactive verification or customization is needed:

cd assets/web-app
npm install
npm run dev

Before publishing a modified app, run npm test and npm run lint.

How to use it

Copy the folder

Take twhsi/keyword-graph-view from the repository into ~/.claude/skills for personal use, or into .claude/skills inside a project.

Check the name does not clash

The agent identifies a skill by the name field in its header. Two skills with the same name cannot sit side by side — one of them will be ignored.

Install what it needs

The instructions reference npm. Without those the skill loads but fails at the first command.