aniketpanjwani/local_media_tools/newsletter-events-add-source

Claude Code and agent skill by aniketpanjwani/local_media_tools

Trust tier 3
  • community
Source check pending

Checking that the SKILL.md file is still in the repository.

Add Instagram accounts or web aggregators to sources.yaml configuration

Install

npx vskill@latest install aniketpanjwani/local_media_tools/newsletter-events-add-source

SKILL.md

The same SKILL.md was published earlier as majiayu000/claude-skill-registry-data/newsletter-events-add-source.

<required_reading> STOP. Before doing ANYTHING else, you MUST read this entire file.

This skill uses a dispatcher pattern with separate workflows:

  • For web URLs → Read workflows/add-web-aggregator.md (HAS MANDATORY PROFILING)
  • For Instagram → Read workflows/add-instagram.md

DO NOT just edit sources.yaml directly. Follow the workflows. </required_reading>

<essential_principles>

Configuration Location

All sources are stored in ~/.config/local-media-tools/sources.yaml.

Source Types & Routing

TypeDetectionWorkflow
Instagram@handle or alphanumeric handleworkflows/add-instagram.md
Web Aggregatorhttp:// or https:// URLworkflows/add-web-aggregator.md
Facebookfacebook.com/events/*Not stored - use /research directly

Key Differences

  • Instagram: Simple add - no profiling needed
  • Web Aggregator: Requires profiling to discover optimal scraping strategy

</essential_principles>

<intake> What sources do you want to add?

Examples:

  • @localvenue @musicbar - Add Instagram accounts
  • https://hudsonvalleyevents.com - Add web aggregator (will be profiled)
  • @venue1 and https://events.com - Mix of sources

Note: For Facebook events, use /research https://facebook.com/events/123456 instead.

Provide the source(s): </intake>

<process>

Step 1: Parse and Classify Input

Analyze user input and classify each source:

python
import re
sources = {"instagram": [], "web": [], "facebook": []}
for token in user_input.replace(",", " ").replace(" and ", " ").split():
token = token.strip()
if not token:
continue
if "facebook.com/events/" in token:
sources["facebook"].append(token)
elif token.startswith("@") or re.match(r"^[a-zA-Z][a-zA-Z0-9_.]+$", token):
sources["instagram"].append(token.lstrip("@").lower())
elif token.startswith("http://") or token.startswith("https://"):
sources["web"].append(token)

Step 2: Handle Facebook URLs

If any Facebook URLs detected, inform user:

Facebook events are not stored in configuration.
Pass URLs directly to /research instead:
/research https://facebook.com/events/123456

Continue processing other sources.

Step 3: Route to Workflows

For Instagram handles:

If sources["instagram"] is not empty:

  1. Read workflows/add-instagram.md
  2. Follow that workflow for all Instagram handles
  3. Collect results
For Web URLs:

If sources["web"] is not empty:

  1. Read workflows/add-web-aggregator.md
  2. Follow that workflow for EACH web URL (profiling is per-source)
  3. Collect results

IMPORTANT: Process web sources one at a time since each requires interactive profiling.

Step 4: Report Combined Results

After both workflows complete, display combined summary:

TypeSourceNameStatus
Instagram@localvenueLocal VenueAdded
Instagram@musicbarMusic BarAlready exists
Webgreatnortherncatskills.comGreat Northern CatskillsAdded (profiled)
Config saved to ~/.config/local-media-tools/sources.yaml
Run /newsletter-events:research to scrape these sources.

</process>

<success_criteria>

  • [ ] All sources parsed and classified by type
  • [ ] Facebook URLs identified with redirect message
  • [ ] Instagram sources processed via workflows/add-instagram.md
  • [ ] Web sources processed via workflows/add-web-aggregator.md (with profiling)
  • [ ] Combined results displayed to user

</success_criteria>

Security

  • Security scanPassed, 95 of 100Pattern checks on the skill's files.
  • Model reviewPassed

Quality evaluation

  • Task evaluationNot runNo evaluation yet. Run one in Skill Studio.

Source

Popularity

7-day trend score
0

Not refreshed yet.

Works with

Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.

  • Claude Code
  • Cursor
  • GitHub Copilot
  • Windsurf
  • Codex
  • Gemini CLI
  • Cline
  • Amp
  • Roo Code
  • Goose
  • Continue
  • Kilo Code
  • Junie
  • Trae
  • OpenHands
  • Qwen Code
  • AI Agent
  • Tabnine Chat
  • Sourcegraph Cody
  • Amazon Q
  • Firebase Genkit
  • Sweep
  • Devin
  • Phind
  • Mentat
  • Claude Desktop
  • Aider
  • GPT Pilot
  • Plandex
  • bolt.new
  • v0
  • Replit Agent
  • Anse
  • TypingMind
  • BetterChatGPT
  • LibreChat
  • Warp AI
  • Pieces
  • Fig AI
Embed badge
vskill VERIFIED badge
[![vskill VERIFIED](https://verified-skill.com/api/v1/skills/aniketpanjwani/local_media_tools/newsletter-events-add-source/badge)](https://verified-skill.com/skills/aniketpanjwani/local_media_tools/newsletter-events-add-source)

Something wrong with this skill or its page? Tell us.