From 5195f090a3e8786196cef8a32df41e5ce70b3286 Mon Sep 17 00:00:00 2001 From: Zhongwei Li Date: Sat, 29 Nov 2025 17:51:56 +0800 Subject: [PATCH] Initial commit --- .claude-plugin/plugin.json | 9 ++ README.md | 3 + plugin.lock.json | 45 +++++++++ skills/blog-profile-analyzer/SKILL.md | 131 ++++++++++++++++++++++++++ 4 files changed, 188 insertions(+) create mode 100644 .claude-plugin/plugin.json create mode 100644 README.md create mode 100644 plugin.lock.json create mode 100644 skills/blog-profile-analyzer/SKILL.md diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json new file mode 100644 index 0000000..86fdc79 --- /dev/null +++ b/.claude-plugin/plugin.json @@ -0,0 +1,9 @@ +{ + "name": "blog-profile-analyzer", + "description": "Analyzes blogs and publications to create comprehensive profiles of authors' perspectives, biases, political leanings, and worldviews", + "version": "1.0.0", + "author": "Alec Flett", + "skills": [ + "./skills" + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..e999b8b --- /dev/null +++ b/README.md @@ -0,0 +1,3 @@ +# blog-profile-analyzer + +Analyzes blogs and publications to create comprehensive profiles of authors' perspectives, biases, political leanings, and worldviews diff --git a/plugin.lock.json b/plugin.lock.json new file mode 100644 index 0000000..8f2efdf --- /dev/null +++ b/plugin.lock.json @@ -0,0 +1,45 @@ +{ + "$schema": "internal://schemas/plugin.lock.v1.json", + "pluginId": "gh:alecf/claude-skills:plugins/blog-profile-analyzer", + "normalized": { + "repo": null, + "ref": "refs/tags/v20251128.0", + "commit": "a0e64f7c0066fd4a3d78c6517c0d2112b52cdc3d", + "treeHash": "e2402d074ae104db31eff6da1a78d578476043e26561fcb78e8e8fbb0ec54af3", + "generatedAt": "2025-11-28T10:13:07.792417Z", + "toolVersion": "publish_plugins.py@0.2.0" + }, + "origin": { + "remote": "git@github.com:zhongweili/42plugin-data.git", + "branch": "master", + "commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390", + "repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data" + }, + "manifest": { + "name": "blog-profile-analyzer", + "description": "Analyzes blogs and publications to create comprehensive profiles of authors' perspectives, biases, political leanings, and worldviews", + "version": "1.0.0" + }, + "content": { + "files": [ + { + "path": "README.md", + "sha256": "5525807e7f1eac73e91d364c763b65b991c4bf58f457282408a75ec1f7cbe161" + }, + { + "path": ".claude-plugin/plugin.json", + "sha256": "d8bcfc17d078d66985fe4f85e6c4766bb5fccca60ad70524e4b2332313c5c579" + }, + { + "path": "skills/blog-profile-analyzer/SKILL.md", + "sha256": "841ebf26402facdd0df21a22ce53b7a5c21e929fbf7ccce6fcfcbb6dd7d75367" + } + ], + "dirSha256": "e2402d074ae104db31eff6da1a78d578476043e26561fcb78e8e8fbb0ec54af3" + }, + "security": { + "scannedAt": null, + "scannerVersion": null, + "flags": [] + } +} \ No newline at end of file diff --git a/skills/blog-profile-analyzer/SKILL.md b/skills/blog-profile-analyzer/SKILL.md new file mode 100644 index 0000000..73613a8 --- /dev/null +++ b/skills/blog-profile-analyzer/SKILL.md @@ -0,0 +1,131 @@ +# Blog Profile Analyzer + +This skill helps you analyze blogs and online publications to understand the author's perspective, biases, political leanings, and overall worldview. + +## Instructions + +When asked to analyze a blog or given a blog URL for profiling: + +1. **Initial Discovery** + - If given a specific blog URL, start there + - If given just a blog name or author, use WebSearch to find the blog's main URL + - Navigate to the blog's main page or about page first + +2. **Content Collection Strategy** + - Fetch the blog's main page to understand structure + - Look for an "About" or "About Me" page for explicit author statements + - Identify 5-10 recent or representative posts spanning different topics + - For each post, use WebFetch to extract the full content + - Include a mix of content types - bias and perspective are often revealed in how authors present factual information, not just in explicit opinion pieces + +3. **Analysis Framework** + + Analyze the collected content across these dimensions: + + **Core Beliefs & Values:** + - What principles or values appear most important to the author? + - What topics do they write about most frequently? + - What causes or issues do they champion? + + **Political & Ideological Leanings:** + - Where do they fall on political spectrums (left/right, libertarian/authoritarian, etc.)? + - Do they align with particular political movements or philosophies? + - How do they discuss different political figures, parties, or ideologies? + + **Biases & Blind Spots:** + - What assumptions do they make without questioning? + - Which perspectives or counterarguments do they rarely engage with? + - Are there topics they avoid or viewpoints they dismiss? + + **Rhetorical Style:** + - Are they combative, conciliatory, academic, populist? + - Do they use data and evidence, or rely more on narrative and emotion? + - How do they treat opposing viewpoints? + + **Epistemology (How They Know What They Know):** + - What sources do they trust or cite frequently? + - How do they approach uncertainty and evidence? + - Do they emphasize lived experience, data, tradition, or other forms of knowledge? + +4. **Output Format** + + CRITICAL: Keep the entire profile to roughly one page of text (~800-1000 words). Be concise and high-signal. + + Create a comprehensive but readable profile document with: + + ```markdown + # Blog Profile: [Blog Name] + + **Author:** [Name] | **URL:** [Main URL] | **Date:** [Current Date] | **Posts Analyzed:** [Number] + + ## Executive Summary + [Single dense paragraph (4-6 sentences) capturing: main focus, political orientation, writing style, and key distinguishing characteristics. Make every sentence count.] + + ## Political & Worldview Profile + [1-2 paragraphs combining political leanings with matching ideologies. Name specific traditions (e.g., "demographic realism," "effective altruism," "Burkean conservatism") and explain alignments/divergences. Use concrete examples.] + + ## Core Values, Biases & Blind Spots + [1-2 paragraphs that efficiently combine: (1) what the author values most, (2) their main biases and assumptions, and (3) what they overlook or minimize. Focus on patterns that matter for understanding their work.] + + ## How to Read This Author + [1-2 dense paragraphs with actionable guidance: What lens do they bring? What questions should you ask? What's likely emphasized vs. downplayed? What evidence tends to be absent? This is the most important practical section.] + + ## Evidence & Style + [1 paragraph combining rhetorical approach and epistemology: How do they argue (academic/populist/combative)? What counts as evidence (data/narrative/lived experience)? What sources do they trust?] + + ## Key Quotes + [3-5 representative quotes with minimal context] + + ## Analysis Notes + [1-2 sentences on posts analyzed and confidence level] + ``` + +5. **Best Practices** + + - TARGET LENGTH: ~800-1000 words total. Be ruthlessly concise while remaining substantive. + - LANGUAGE & STYLE: Use straightforward, clear language at roughly a high school reading level. Avoid adopting the complex vocabulary or sentence structure of the blog being analyzed. Write in a consistent, accessible voice that any educated adult can easily understand. + - Write dense, information-rich paragraphs - every sentence should add value + - Combine related sections (politics + worldview, values + biases + blind spots, rhetoric + epistemology) + - Be objective and factual - describe, don't judge + - Use specific examples but weave them in efficiently + - Eliminate redundancy - don't repeat points across sections + - Focus on patterns that matter for understanding future posts by this author + - Remember: bias shows up in how authors present facts, not just in opinion pieces + - The "How to Read This Author" section is the most critical practical takeaway + - Prioritize actionable insights over comprehensive coverage + - Save the profile to a file for the user's reference + +6. **Output Location** + - Save the analysis to `blog-profile-[blog-name]-[date].md` in the current directory + - Let the user know where the file was saved + +## Examples + +### Example 1: Direct URL +User: "Analyze the blog at arctotherium.substack.com for the author's perspective and biases" + +Response: I'll analyze that Substack blog to profile the author's perspective. Let me start by fetching the main page and then analyze several representative posts. + +[Proceeds with analysis following the framework above] + +### Example 2: Blog Name +User: "Can you profile the perspective of the author of Marginal Revolution?" + +Response: I'll search for and analyze the Marginal Revolution blog to understand the authors' perspectives and biases. + +[Uses WebSearch to find the blog, then proceeds with analysis] + +### Example 3: Comparative Analysis +User: "Compare the political leanings of blog A and blog B" + +Response: I'll analyze both blogs separately first, then provide a comparison. Let me start with blog A... + +[Analyzes each blog, then creates a comparative summary] + +## Notes + +- This skill requires multiple WebFetch calls and can take time to complete +- Some blogs may be behind paywalls or have limited free content +- The analysis quality depends on having access to multiple representative posts +- Always maintain objectivity and present evidence for analytical claims +- This is designed for defensive analysis and understanding perspectives, not for profiling individuals for malicious purposes