From pkos
Internal skill — discovers cross-domain connections via topic similarity. Triggered by Adam cron (weekly Sunday 10am).
npx claudepluginhub n0rvyn/indie-toolkit --plugin pkosThis skill uses the workspace's default tool permissions.
Discover surprising cross-domain connections in the Obsidian PKOS vault using metadata similarity (DP-003 Chosen B).
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.
Retrieves current documentation, API references, and code examples for libraries, frameworks, SDKs, CLIs, and services via Context7 CLI. Ideal for API syntax, configs, migrations, and setup queries.
Uses ctx7 CLI to fetch current library docs, manage AI coding skills (install/search/generate), and configure Context7 MCP for AI editors.
Discover surprising cross-domain connections in the Obsidian PKOS vault using metadata similarity (DP-003 Chosen B).
--count N: Number of discoveries to generate (default: 5)--min-age DAYS: Minimum age for temporal discoveries (default: 90)Dispatch pkos:graph-analyzer agent to scan the vault and build a note index with tags and link structure.
Alternatively, scan directly:
# Find all notes with frontmatter, including cross-project harvested docs
find ~/Obsidian/PKOS/{10-Knowledge,20-Ideas,50-References,30-Projects} -name "*.md" 2>/dev/null
For each note, extract:
tags array from frontmattercreated date from frontmatter[[note-name]]) in bodyharvest_project from frontmatter (if present — indicates a cross-project note)For each pair of notes (A, B):
|tags_A ∩ tags_B| / |tags_A ∪ tags_B|A pair is "surprising" if:
Structural distance: Notes A and B share tags but are NOT directly linked (no [[A]] in B or [[B]] in A). The more topic overlap WITHOUT a direct link = more surprising.
Temporal distance (bonus): One note created within last 7 days, the other created > --min-age days ago. This catches "old idea meets new information" connections.
Score each surprising pair:
surprise_score = jaccard_coefficient * (1 + temporal_bonus)
Where temporal_bonus = 0.5 if temporal distance > min-age days, else 0.
Sort by surprise_score descending. Select top --count pairs.
For each selected pair, generate a one-paragraph explanation:
If either note has harvest_project set, enhance the explanation:
🔮 PKOS Serendipity Discoveries
1. **{note_A_title}** ↔ **{note_B_title}**
Shared: {topic1, topic2} | Distance: {no direct link, {N} months apart}
💡 {explanation}
2. **{note_C_title}** ↔ **{note_D_title}**
...
{count} discoveries generated. Consider:
- Creating links between these notes
- Exploring the connections in a Canvas board
- Adding to this week's digest
Cross-project connections: {count of pairs where at least one note is from 30-Projects/}
Write discoveries to ~/Obsidian/PKOS/70-Reviews/serendipity-{date}.md for the weekly digest to pick up.