A Claude Code / Agent Skill that turns a raw chat or log export into a linked Obsidian intelligence vault — one note per entity, everything wikilinked, MOCs + timeline, structured-export ingestion, graph color-coding, Canvas boards, and access-controlled publishing. Signal → noise.
Built for threat-intel / investigation mapping (hosts, IPs, victims, malware, indicators, actors, infra) but works on any entity-rich export.
- Parse & inventory every distinct entity in an export.
- Interview gates — asks before scaffolding (identities, defang, granularity, scope, bulk-ingest) instead of guessing.
- Scaffold folders + MOCs + timeline; one note per entity, heavily
[[wikilinked]]. - Ingest structured exports (JSON/CSV) into per-entity notes (with a low-signal-bulk → index heuristic).
- Wire attachments, color the graph, build curated Canvas boards.
- Validate zero broken links; publish privately with real access control.
An Obsidian "vault" is just a folder. Two ways to start:
- Fresh: the skill scaffolds notes into a target folder; afterward, open it in Obsidian via Open folder as vault — Obsidian creates the
.obsidian/config on first open. (The scripts auto-create.obsidian/if it's missing, so graph coloring works before that.) - Existing: point the skill at any folder you've already opened as a vault.
Install Obsidian (free) to view the result. For sharing, commit .obsidian/graph.json + shared config so collaborators inherit the graph colors; gitignore per-user workspace.json.
Clone into your skills directory:
git clone https://github.com/plygrnd/signoise ~/.claude/skills/signoiseClaude discovers it by its name: frontmatter; invoke with the Skill tool or let it auto-trigger on a matching task.
| File | Purpose |
|---|---|
SKILL.md |
The workflow, interview gates, conventions, publishing guidance |
scripts/validate_links.py |
Broken-[[link]] gate (counts attachments + aliases as valid) |
scripts/graph_colors.py |
Tag-keyed color groups → .obsidian/graph.json |
scripts/canvas.py |
Canvas builder (file/text/group nodes + edges) → .canvas |
Optional Signal acquisition via sigtop (macOS + Signal Desktop).
MIT — see LICENSE.