decision-topology
Installation
SKILL.md
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
fsandpathmodules. - 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, noexec, noeval, noFunction(). - 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.