Token导航 LogoToken导航

Agent Skill · 研究检索

decision-topology(决策拓扑)

decision-topology 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

decision-topology 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为接触敏感数据;许可证为 MIT-0,第三方扫描已通过,按安装量在研究检索类的 73,674 个 Skill 里排第 10,367。

总安装 12,702周安装 524GitHub Stars 公开资料未说明下载 4,150核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
1.0.6

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:decision-topology(决策拓扑)
来源仓库:https://github.com/joncik91/decision-topology
安装命令:
openclaw skills install decision-topology
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install decision-topology

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

用于记录想法演变、分支与组合的对话结构,构建本地 JSON 树状节点。适合追踪被拒绝、转向或合并的决策路径。将每次结构转变保存为独立节点,支持回溯与可视化分析。安装前需确认权限范围、维护状态及是否触发文件写入或网络请求。decision-topology 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install decision-topology;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

decision-topology 怎么安装?

在终端执行 openclaw skills install decision-topology。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

decision-topology 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

decision-topology 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

decision-topology 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

decision-topology 用的人多吗?

公开数据是累计安装 12,702 次,近一周安装 524 次,下载 4,150 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

decision-topology 安全吗?

第三方扫描结果为通过,但这只覆盖已知的静态检查项,不能替代自己读一遍源码和安装命令。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。
  • 第三方扫描已通过,常见的高风险行为没有命中。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。
  • 需要许可证清楚、并且有第三方扫描结果的团队项目。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
decision-topology

决策拓扑 · 本页

12,702—接触敏感数据MIT-0通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
decision-topology
description
Records the structure of conversations where ideas evolve, branch, get rejected, pivot, or combine. Saves each structural shift as a node in a local JSON tree the user can browse on demand. Zero network access, zero external dependencies. Covers proposals, rejections, pivots, and merges with cross-tree concept linking.
metadata
{"openclaw":{"always":true,"emoji":"🌳","requires":{"bins":["node"]}}}

Decision Topology

Records how ideas branch and evolve during conversations, producing a browsable tree the user can review at any time. Like git log for thinking — the structure is always there when you want to inspect it.

Privacy note: This skill is installed and enabled by the user. All data stays on disk in the configured trees directory — nothing is sent externally. The user can view, delete, or relocate their trees at any time.

Security Properties

  • Zero network access — no HTTP calls, no sockets, no DNS lookups. Works fully offline.
  • Zero external dependencies — uses only Node.js built-in fs and path modules.
  • No conversation content stored — the script enforces length limits on all persisted text fields (summary: 200 chars, reasoning: 300 chars, topic: 120 chars, concept: 50 chars). Text exceeding limits is truncated. This is a code-level guardrail, not just a policy.
  • No process spawning — no child_process, no exec, no eval, no Function().
  • Stdin-only input — all user-derived content is piped via stdin as JSON to prevent shell injection. See SECURITY.md for details.
  • Path containment enforced — all file arguments are stripped to basename and resolved inside the canonical trees directory. Absolute paths and .. traversal are rejected at runtime.
  • User-controlled storage — trees are local JSON files the user can inspect, move, or delete at any time.
  • ID generation — uses Math.random() for 6-char hex node IDs. Cryptographic randomness is not needed — IDs only require tree-local uniqueness across 5-30 nodes.

Activation

Active by default (user can set always: false in metadata to require explicit invocation). When a conversation involves brainstorming, problem-solving, or exploring options, record the structure as a tree.

Skip pure Q&A ("what time is it"), greetings, and small talk.

Output Style

Do not insert status messages about tree operations into the conversation. The goal is a clean conversational experience — like how git commits happen without the developer seeing each one.

  • Do not say "logging node," "branch created," "adding to tree" — this adds noise without value.
  • Do not change your conversational behavior because of the skill. The user gets the same conversation they'd get without it.
  • The user can ask to see the topology at any time ("show me what we explored", "what did we kill?").
  • Think: git commits in the background. Low-noise, not hidden — the user knows it's installed and can inspect it whenever they want.

When to Record a Node

Create a node when:

  • You propose a distinct idea, direction, solution, or option
  • The user introduces a new angle or topic
  • The user rejects, pushes back, or corrects — this is a branch kill, always record the reason
  • The conversation pivots direction because of something said
  • An insight combines elements from earlier dead branches (merge node)
  • An analogy, metaphor, or reframe changes how the problem is understood
  • A question redirects the exploration (pivot node)

Skip when:

  • Same idea continues without meaningful evolution
  • Minor refinement within the same direction
  • Trivial "no" to something small that doesn't change direction
  • Factual answers to factual questions

Depth calibration: A good tree has 5-30 nodes recording the shape of an exploration. Not 200 nodes transcribing every sentence. Only create nodes when the direction of thinking meaningfully shifts. Heuristic: would this rejection or pivot change what comes next? If yes, record it. If no, skip it.

Auto-Initialization

Do NOT create a tree when a conversation starts. Wait until the conversation actually branches — until there is a rejection, a pivot, or a second distinct direction. Only then initialize.

Most conversations won't need a tree. That's fine.

When initializing, auto-generate the filename from the date and a 2-4 word topic slug:

  • 2026-02-24-business-model-exploration.json
  • 2026-02-24-vacation-planning.json

Auto-Association

When a conversation starts and ideas begin branching, check if this connects to an existing tree before creating a new one.

How to check: Run the associate command with the core topic:

echo '{"query": "short description of current topic"}' | node {baseDir}/scripts/topology.js associate

This scans existing trees and returns the best match with a relevance score.

  • Score >= 0.4 — continue that tree (load it, add nodes to it)
  • Score 0.25-0.4 — ambiguous. Ask the user naturally: "This feels related to [topic] we explored on [date]. Continuing that thread, or fresh start?"
  • Score < 0.25 — new tree

Never ask the user to pick a tree by ID. If you need to disambiguate, ask naturally in conversation.

Setup

Script: {baseDir}/scripts/topology.js

Storage: Trees are stored in {baseDir}/trees/ by default. Override with the TOPOLOGY_TREES_DIR environment variable if you want trees stored elsewhere (e.g. in a memory directory for semantic search indexing).

Path containment: All file arguments are resolved to basenames inside the trees directory. Absolute paths and .. traversal are rejected — the script cannot read or write files outside the configured trees directory.

Invocation: Always pipe JSON args via stdin to prevent shell injection from user-derived content:

echo '<JSON args>' | node {baseDir}/scripts/topology.js <command>

Core Operations

Initialize a tree

echo '{"topic": "short topic description"}' | node {baseDir}/scripts/topology.js init

Returns the file path and root node ID. Remember both for the session.

Add a node

echo '{"file": "<path>", "parent_id": "<id>", "type": "proposal", "summary": "one-line description", "reasoning": "why", "concepts": ["keyword1", "keyword2"]}' | node {baseDir}/scripts/topology.js add-node

Types: proposal, pivot, merge. The concepts array is optional — short keyword tags extracted from the node content, used for cross-tree linking.

Kill a branch

echo '{"file": "<path>", "node_id": "<id>", "reason": "why it was rejected"}' | node {baseDir}/scripts/topology.js kill-branch

Then add the new direction as a child (pivot node linked to what was killed).

Merge branches

echo '{"file": "<path>", "source_ids": ["<id1>", "<id2>"], "summary": "merged insight", "reasoning": "combines X from A with Y from B"}' | node {baseDir}/scripts/topology.js merge

Fork from any node

echo '{"file": "<path>", "node_id": "<id>", "summary": "re-exploring from this point", "reasoning": "reason for revisiting"}' | node {baseDir}/scripts/topology.js fork

Node Types

TypeWhen
rootCore topic (created by init)
proposalYou suggest a direction, idea, or option
pivotNew direction that emerged from a rejection or redirection
mergeInsight combining elements from multiple branches

Status values: active (still exploring), dead (rejected, has killed_by), merged (combined into a merge node).

Viewing the Topology

The user does NOT need to learn slash commands. They ask naturally:

  • "Show me what we explored"
  • "What did we kill?"
  • "What shape is this conversation?"
  • "What paths did we reject and why?"
  • "Go back to that idea about X"

You understand the intent and run the appropriate commands. Present results conversationally, not as raw script output.

/tree is an optional shortcut — works if the user types it, but don't teach it or require it.

Rendering

echo '{"file": "<path>"}' | node {baseDir}/scripts/topology.js render

After the tree, append a one-line summary: {N} branches explored, {M} killed, {K} active, depth {D}

List all trees

node {baseDir}/scripts/topology.js list

Statistics

echo '{"file": "<path>"}' | node {baseDir}/scripts/topology.js stats

Export as Mermaid

echo '{"file": "<path>"}' | node {baseDir}/scripts/topology.js export

Revisiting a dead branch

When the user asks about a killed path, find the node, present:

  • What was proposed
  • Why it was proposed
  • Why it was killed
  • What came after

Cross-tree analysis

node {baseDir}/scripts/topology.js analyze

Rebuilds the concept index, scans all trees, finds concepts appearing across multiple trees, reports which ideas keep surviving vs keep getting killed, identifies cross-root connections, and regenerates all companion .md files with updated cross-tree links and weights. Shows index health stats (total concepts, cross-tree count, orphans).

Query the concept index

echo '{"name": "trust"}' | node {baseDir}/scripts/topology.js concept
echo '{"list": true}' | node {baseDir}/scripts/topology.js concept
echo '{"orphans": true}' | node {baseDir}/scripts/topology.js concept
  • name — reverse-lookup: shows every node across every tree that references a concept
  • list — all concepts sorted by cross-tree spread, * marks concepts spanning multiple trees
  • orphans — concepts that exist in only one tree (candidates for future linking)

Rebuild concept index

node {baseDir}/scripts/topology.js rebuild-index

Full rebuild of concepts.json from all tree files. Also regenerates all companion .md files with cross-tree links and updated weights. Use as a recovery tool or after manual edits to tree JSON files.

Concept Index

A reverse-index at {trees_dir}/concepts.json that maps every concept keyword to all nodes and trees that reference it.

  • Automatic: Updated incrementally on every tree save (add-node, kill-branch, merge, fork, init). No manual intervention needed.
  • Cross-tree links: Companion .md files include a ## Related trees section with [[wikilinks]] to other trees that share concepts. Useful for semantic search indexing.
  • Weight field: Node weight is auto-set to the number of distinct trees sharing that node's concepts. weight: 1 = single-tree concept. weight: 2+ = concept spans multiple trees.
  • Lazy discovery: Links form organically as nodes are added to any tree. A new node with concepts: ["trust"] will immediately link its tree to every other tree that also references "trust" — no need to wait for analyze.

Rules

  1. Clean output. Do not insert tree-operation status messages into the conversation. The user can inspect trees whenever they want.
  2. Judgment over completeness. Record the shape, not the transcript. 5-30 nodes per tree. Summaries only — never store verbatim conversation content.
  3. Causal links. Show WHY the conversation evolved, not just WHAT was said. Link rejections to pivots.
  4. Persist. Trees are JSON files that survive sessions. They can be searched if stored in an indexed directory.
  5. Continue, don't duplicate. If a conversation continues a previous topic, load and extend that tree.
  6. Graceful failures. Missing or corrupted tree — re-initialize. Missing node ID — say so clearly. Never crash.
  7. Natural interface. The user asks in plain language. You translate to the right operation. Slash commands are optional shortcuts, not the primary interface.
  8. Local only. All data stays on disk. No network calls, no external APIs, no telemetry. The user owns their data.

平台分布

OpenClaw

86.05%
按下载量换算3,571

安全审计

VirusTotal

通过

ClawScan

通过

Static analysis

未展示

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills