terry-li-hm

analyze

0
0
# Install this skill:
npx skills add terry-li-hm/skills --skill "analyze"

Install specific skill from multi-skill repository

# Description

Universal content analyzer. Handles URLs or pasted content. Auto-detects type (article, job, repo, company, paper, video) and routes to appropriate handler. Triggers on any URL, pasted text, "check this", "what is this", "read this", or "analyze this".

# SKILL.md


name: analyze
description: Universal content analyzer. Handles URLs or pasted content. Auto-detects type (article, job, repo, company, paper, video) and routes to appropriate handler. Triggers on any URL, pasted text, "check this", "what is this", "read this", or "analyze this".


Analyze

Universal entry point for anything user shares β€” URL or pasted content. Detects input type, routes to appropriate handler or graceful fallback. One skill for all analysis.

Workflow

  1. Detect Input Type
  2. Starts with http:// or https:// β†’ URL, go to step 2
  3. Otherwise β†’ pasted content, treat as article (step 3)

  4. Fetch & Classify URL β€” Get content, detect type from URL pattern + page structure

  5. Route β€” Send to appropriate handler (specialized, lightweight, or fallback)

  6. Ontology Injection β€” Before generating note, grep vault for existing tags/MOCs to use

  7. Save β€” Write note with type-appropriate YAML frontmatter

  8. Log β€” Append to telemetry for future optimization

Content Type Detection

Pattern Type Handler
github.com/*/* repo Lightweight
linkedin.com/jobs/* job β†’ /evaluate-job
linkedin.com/company/* company Lightweight
linkedin.com/in/* profile Lightweight
*.substack.com, medium.com/*, *blog* article Specialized
arxiv.org/*, papers.*, *.pdf paper Specialized
youtube.com/*, youtu.be/* video Lightweight
Company career/about pages company Lightweight
Everything else unknown Check content, then fallback

Fallback logic: If URL pattern unclear, fetch content and look for signals:
- Has "Key Ideas" / thesis structure β†’ article
- Has job requirements / responsibilities β†’ job
- Has code/commits/stars β†’ repo
- Otherwise β†’ unclassified

Three-Tier Handlers

Tier 1: Specialized (full evaluation)

Articles (URLs or pasted content):

Worth Noting check first:
| NOTE | SKIP |
|------|------|
| Novel ideas, frameworks | Marketing fluff |
| Relevant to work/interests | Paywalled with no content |
| Contrarian or well-argued | Beginner explainers |
| Actionable insights | News without insight |

If NOTE, create:

---
source: [URL or "pasted content"]
type: article
author: [if known]
date_read: [today]
tags: []
---

## Key Ideas
- [3-5 bullets, dense, no fluff]

## My Take
[2-4 sentences: why this matters, connections, critique]

If SKIP:

Skip β€” [reason]
TL;DR: [2-3 sentence gist]

Jobs β€” Route to /evaluate-job

Tier 2: Lightweight (basic extraction)

Repos:

---
source: [URL]
type: repo
fetched_at: [timestamp]
language: [primary language]
stars: [count]
last_commit: [date]
license: [if present]
related_company: [if identifiable]
tags: []
---

## Overview
[1-2 sentence description from README]

## Signals
- **Activity:** [active/stale/abandoned based on commit recency]
- **Quality:** [docs, tests, CI badges]
- **Relevance:** [why this matters for interview prep / learning]

Company Pages:

---
source: [URL]
type: company
fetched_at: [timestamp]
company: [name]
industry: [sector]
size: [if available]
stage: [startup/growth/enterprise]
tags: []
---

## Overview
[What they do, 2-3 sentences]

## Signals
- **Tech Stack:** [if mentioned]
- **Culture:** [any signals from about/careers]
- **Red Flags:** [if any]

Profiles (LinkedIn):

---
source: [URL]
type: profile
fetched_at: [timestamp]
name: [person name]
role: [current title]
company: [current company]
connection_context: [why relevant - recruiter, hiring manager, etc.]
tags: []
---

## Background
[Brief summary of experience]

## Notes
[Why saving this profile - interview prep, networking, etc.]

Videos:

---
source: [URL]
type: video
fetched_at: [timestamp]
title: [video title]
channel: [creator]
duration: [length]
tags: []
---

## Summary
[Key points from transcript if available, otherwise from title/description]

## Timestamps
[Notable sections if identifiable]

Tier 3: Generic Fallback

For anything unclassified:

---
source: [URL]
type: unclassified
fetched_at: [timestamp]
domain: [source domain]
tags: []
---

## Content
[Title and brief summary]

## Why Saved
[User's apparent intent - to review later, reference, etc.]

Ontology Injection

Before generating any note, run:

grep -r "^tags:" ~/notes/*.md | cut -d: -f2 | tr ',' '\n' | sort -u | head -50

Also check for relevant MOCs:

ls ~/notes/*MOC*.md ~/notes/Maps/*.md 2>/dev/null

Rule: Only use tags that already exist in vault. Never invent new tags. If no existing tag fits, leave tags empty β€” better than fragmenting the graph.

Telemetry

Append to ~/notes/Meta/Analyze Telemetry.md:

| [date] | [input] | [detected_type] | [confidence] | [override?] |

Review weekly to see which content types need specialized handlers.

Skip Conditions

Don't create a note if:
- URL is a login wall with no content
- Content is pure marketing fluff (announce and exit)
- Already exists in vault (check by URL)

For skips, output:

Skip β€” [reason]
Domain: [source]

Edge Cases

Hybrid content (e.g., blog post about a repo): Ask user which type to prioritize, or create note with primary type and link to related.

Paywalled: Report clearly, offer to wait for user to paste content.

Failed fetch: Try WebFetch first, fall back to asking user to paste.

Integration

This skill replaces /evaluate-article. Use /analyze for all content β€” URLs or pasted text.

/evaluate-job remains separate for LinkedIn job URLs β€” this skill dispatches to it for job posts.

# Supported AI Coding Agents

This skill is compatible with the SKILL.md standard and works with all major AI coding agents:

Learn more about the SKILL.md standard and how to use these skills with your preferred AI coding agent.