hermes-agent/optional-skills
Teknium ea8e608821
feat(skills): watchers skill — poll RSS / HTTP JSON / GitHub via cron no-agent (#21881)
* feat(skills): watchers skill — poll RSS / HTTP JSON / GitHub via cron no-agent

Ships three reusable polling scripts plus a shared watermark helper as an
optional skill.  Users wire them into the existing cron (no_agent=True)
mode rather than learning a new subsystem.

Supersedes the closed PR #21497 (parallel watcher subsystem).  Same value,
zero new core surface.

## What ships

- optional-skills/devops/watchers/SKILL.md: pattern + three example cron commands
- optional-skills/devops/watchers/scripts/_watermark.py: shared helper
  (atomic state writes, bounded ID set, first-run baseline)
- optional-skills/devops/watchers/scripts/watch_rss.py: RSS 2.0 + Atom
- optional-skills/devops/watchers/scripts/watch_http_json.py: any JSON endpoint
  with configurable id_field / items_path / headers
- optional-skills/devops/watchers/scripts/watch_github.py: issues / pulls /
  releases / commits (uses GITHUB_TOKEN if present)

## Invariants enforced by the shared helper

- First run records baseline, emits nothing (never replays existing feed)
- Watermark file is <state_dir>/<name>.json, atomic replace on write
- Bounded to 500 IDs (configurable)
- Empty stdout when no new items — cron treats that as silent delivery

## Validation
- watch_rss.py against news.ycombinator.com/rss first run → empty stdout, watermark populated
- Removed one seen-id, second run → emitted exactly that item
- No DeprecationWarnings (ET element truth-value footgun dodged explicitly)

End-user pattern: 'hermes cron create my-feed --schedule "*/15 * * * *" --no-agent --script $HERMES_HOME/skills/devops/watchers/scripts/watch_rss.py --script-args "--name hn --url https://news.ycombinator.com/rss" --deliver telegram'

* docs(skills/watchers): tighten description to match peer optional skills

* docs(skills/watchers): align frontmatter + structure with peer optional skills

* docs(skills/watchers): gate to linux/macos (shell syntax in examples)
2026-05-08 09:27:15 -07:00
..
autonomous-ai-agents feat(honcho): wizard cadence default 2, surface reasoning level, backwards-compat fallback 2026-04-18 22:50:55 -07:00
blockchain feat: add Base blockchain optional skill 2026-03-17 01:50:03 -07:00
communication feat(skills): add one-three-one-rule communication skill (#3797) 2026-03-29 15:25:12 -07:00
creative docs(skill): add hyperframes inspect command to cli.md + SKILL.md 2026-05-04 14:13:17 -07:00
devops feat(skills): watchers skill — poll RSS / HTTP JSON / GitHub via cron no-agent (#21881) 2026-05-08 09:27:15 -07:00
dogfood feat(skills): add adversarial-ux-test optional skill 2026-04-21 01:51:20 -07:00
email/agentmail fix: correct agentmail skill — API key goes in config.yaml env block 2026-03-08 23:34:50 -07:00
finance feat(optional-skills): port Anthropic financial-services skills as optional finance bundle (#21180) 2026-05-07 04:58:39 -07:00
health feat(skills): add fitness-nutrition skill to optional-skills 2026-04-13 22:10:00 -07:00
mcp skills: move 7 niche mlops/mcp skills to optional (#12474) 2026-04-19 05:14:17 -07:00
migration fix(paths): route achievements plugin + profile-tui through HERMES_HOME 2026-04-30 23:21:54 -07:00
mlops docs: remove dead papers.md link from saelens references 2026-05-05 13:27:12 -07:00
productivity feat(skills): add shop-app personal shopping assistant (optional) (#20702) 2026-05-06 04:47:56 -07:00
research docs+skill: add searxng-search optional skill and documentation 2026-05-06 10:15:56 -07:00
security feat(skills): add Sherlock OSINT username search skill 2026-03-17 02:48:21 -07:00
web-development feat(optional-skills): add page-agent skill under new web-development category (#13976) 2026-04-22 04:54:26 -07:00
DESCRIPTION.md fix: review fixes — path traversal guard, trust_style consistency, edge cases 2026-03-06 01:40:01 -08:00