| 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.mdworkdesk/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)
- Read
workdesk/sources.mdto determine the next available ID - Add the sanitized URL under "## Main List" section with unchecked checkbox:
- [ ] XXX. https://sanitized-url-here.com - Use Edit tool to insert the new entry
- 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:
- Process each URL completely before moving to next
- Create TodoWrite entries to track progress (e.g., "Add URLs 1-5", "Add URLs 6-10")
- Provide running count: "Added 3/10 URLs so far..."
- 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
- URL Validation: Use check_link.py to validate and sanitize URLs
- Duplication Checking: Prevent adding duplicate URLs
- ID Management: Maintain sequential ID numbering
- File Organization: Add URLs under "## Main List" section with consistent formatting
- Progress Tracking: Use TodoWrite for batch operations
- 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:
- ✓ Validates both URLs using check_link.py
- ✓ Checks for duplicates (none found)
- ✓ Adds to sources.md as 089 and 090 (unchecked)
- ✓ 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-sourceskill 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.