blogwatcher-cli

Use when managing or interacting with favorite blogs via the BlogWatcher CLI—adding/removing blogs, scanning for new posts, listing articles, marking read/unread, or modifying related CLI behavior, scanning, storage, and tests.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "blogwatcher-cli" with this command: npx skills add hyaxia/blogwatcher/hyaxia-blogwatcher-blogwatcher-cli

BlogWatcher CLI

Quick Orientation

  • Use the Cobra entry point in cmd/blogwatcher/main.go and internal/cli/.
  • Route business logic through internal/controller and persistence through internal/storage.
  • Use scanning pipeline packages in internal/scanner, internal/rss, and internal/scraper.
  • Remember the default SQLite path is ~/.blogwatcher/blogwatcher.db and is created on demand.

Run Commands

  • Run locally with go run ./cmd/blogwatcher ....
  • Build with go build ./cmd/blogwatcher.

Change Workflow

  1. Add or adjust CLI commands in internal/cli/commands.go (Cobra options, arguments, output formatting).
  2. Put non-trivial logic in internal/controller so the CLI stays thin and testable.
  3. Update storage or schema in internal/storage/database.go and adjust model conversion in internal/model if needed.
  4. Modify scanning behavior in internal/scanner and its helpers (internal/rss, internal/scraper).
  5. Update or add tests under internal/ or cmd/ for every feature change or addition.

Test Guidance

  • Run tests with go test ./....
  • If you add a feature, add tests and any necessary dummy data.
  • Keep tests focused on CLI behavior, controller logic, and scraper/RSS parsing outcomes.

Output Conventions

  • Preserve user-friendly CLI output with colors and clear errors.
  • When listing posts available for reading, always include the link to each post in the output.
  • Keep error handling consistent with existing exceptions (BlogNotFoundError, BlogAlreadyExistsError, ArticleNotFoundError).

Example (posts available for reading)

Unread articles (2):

  [12] [new] Understanding Click Contexts
       Blog: Real Python
       URL: https://realpython.com/click-context/
       Published: 2025-11-02

  [13] [new] Async IO in Practice
       Blog: Test & Code
       URL: https://testandcode.com/async-io-in-practice/

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

blogwatcher

No summary provided by upstream source.

Repository SourceNeeds Review
General

blogwatcher

No summary provided by upstream source.

Repository SourceNeeds Review
General

blogwatcher

No summary provided by upstream source.

Repository SourceNeeds Review