Claude Code Plugins

Community-maintained marketplace

Feedback

Add source URLs to workdesk/sources.md one-by-one with validation and duplication checking. Use when user provides links to add to the journal. Does NOT generate summaries.

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name add-url
description Add source URLs to workdesk/sources.md one-by-one with validation and duplication checking. Use when user provides links to add to the journal. Does NOT generate summaries.
allowed-tools Read, Edit, Bash, Grep, Glob

Add URL to Gen AI Journal

This skill validates and adds URLs to workdesk/sources.md one-by-one. It performs duplication checking but does NOT generate summaries. Use the summarize-source skill separately for summary generation.

When to Use This Skill

Use this skill when the user:

  • Provides URLs to add to the journal
  • Says "add this link" or "add these URLs"
  • Mentions "add to sources" or "gather these links"
  • Provides article links for the weekly journal

Workflow Per URL

CRITICAL: Always ensure you're in the repository root directory before executing any commands.

cd /Users/shootani/Dropbox/github/gen-ai-journal

For each URL provided, execute these steps in sequence:

1. Validate and Check for Duplicates

uv run scripts/check_link.py "URL_HERE"

This script:

  • Validates and sanitizes the URL (removes tracking parameters)
  • Checks for duplicates in:
    • workdesk/sources.md
    • workdesk/summaries/ directory
    • Published journals (journals/*/sources/*.md)
  • Returns the sanitized URL if unique

If duplicate found: Report which file contains it and skip to next URL

If unique: Note the sanitized URL and proceed to step 2

2. Add to sources.md (Unchecked)

  1. Read workdesk/sources.md to determine the next available ID
  2. Add the sanitized URL under "## Main List" section with unchecked checkbox:
    - [ ] XXX. https://sanitized-url-here.com
    
  3. Use Edit tool to insert the new entry
  4. IDs should be zero-padded 3-digit numbers (001, 002, etc.)

3. Report Progress

After processing each URL, report:

  • Success: "✓ Added as ID XXX (unchecked, ready for summarization)"
  • Duplicate: "✗ Skipped - duplicate found in [location]"
  • Error: "✗ Failed - [error message]"

Batch Processing Strategy

When given multiple URLs:

  1. Process each URL completely before moving to next
  2. Create TodoWrite entries to track progress (e.g., "Add URLs 1-5", "Add URLs 6-10")
  3. Provide running count: "Added 3/10 URLs so far..."
  4. At the end, provide summary:
    • Total URLs processed
    • Successfully added (with ID range)
    • Duplicates skipped
    • Any errors

What This Skill Does NOT Do

  • ❌ Does NOT generate summaries
  • ❌ Does NOT mark URLs as checked/processed
  • ❌ Does NOT call call-gemini.py or batch_summarize.py

Use the summarize-source skill after adding URLs to generate summaries.

Key Responsibilities

  1. URL Validation: Use check_link.py to validate and sanitize URLs
  2. Duplication Checking: Prevent adding duplicate URLs
  3. ID Management: Maintain sequential ID numbering
  4. File Organization: Add URLs under "## Main List" section with consistent formatting
  5. Progress Tracking: Use TodoWrite for batch operations
  6. Error Handling: Report failures clearly, continue with remaining URLs

Project Standards

  • Use absolute paths when referencing files
  • Maintain 2-space indentation for Markdown lists
  • IDs must be zero-padded 3-digit numbers (001, 002, 003, etc.)
  • All new entries start as unchecked - [ ]
  • Documentation in English, journal content in Japanese

File Locations

  • Sources list: workdesk/sources.md
  • Validation script: scripts/check_link.py
  • Workflow docs: workflow/STEP_01_GATHER_SOURCES.md

Error Handling

  • If URL validation fails, report the error and skip to next URL
  • If duplicate found, report which file contains it
  • If Edit operation fails, report and continue with remaining URLs
  • Always complete the workflow for valid, unique URLs

Examples

User provides URLs:

Add these to the journal:
- https://example.com/ai-news
- https://github.com/blog/copilot

Skill activates and:

  1. ✓ Validates both URLs using check_link.py
  2. ✓ Checks for duplicates (none found)
  3. ✓ Adds to sources.md as 089 and 090 (unchecked)
  4. ✓ Reports: "Added 2 URLs (089-090). Use summarize-source skill to generate summaries."

Next step (separate): User or skill invokes summarize-source skill to generate summaries for the unchecked URLs.

Programmatic Usage

For batch URL addition without interactive mode:

# NOT RECOMMENDED - Use the skill for one-by-one addition
# For bulk operations, manually edit sources.md or use the skill in a loop

This skill is optimized for interactive, one-by-one URL addition with immediate validation feedback.

Relationship to Other Skills

  • After add-url: Use summarize-source skill to generate summaries
  • Before add-url: URLs are typically gathered from various sources (RSS, newsletters, manual curation)

You are detail-oriented and systematic, ensuring each URL is validated and added with proper ID sequencing. You proactively identify duplicates and broken links, preventing issues downstream.