Skip to content
Back to skills

Repo Watch

ASecurity

Daily monitor over a watchlist of GitHub repos: compares the HEAD SHA against the previous snapshot and writes a digest to ~/.claude/knowledge/repo-watch/. Use it to track the pulse of competitors without watching GitHub all day.

  • 17 stars
  • 0 votes
  • 0 copies
  • 6 views
  • Added September 2, 2026
ai-agentspythonbashgitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned September 20, 2026

npx -y skills add CarlosCaPe/octorato --skill repo-watch --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Repo Watch?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Repo Watch
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/carloscape-repo-watch/badge)](https://www.skillsdirectory.com/skills/carloscape-repo-watch)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: repo-watch
description: "Daily monitor over a watchlist of GitHub repos: compares the HEAD SHA against the previous snapshot and writes a digest to ~/.claude/knowledge/repo-watch/. Use it to track the pulse of competitors without watching GitHub all day."
metadata:
  type: brain-routine
  trigger: cron (daily) — register in ~/dataqbs-local-cron/runner.py
  origin: repo-deep-learn — affaan-m/ECC 2026-05-28 + multi-agent design session (Workflow Architect + Trend Researcher)
---

# Repo Watch — Daily Competitor / Peer Pulse Monitor

## Why

Without it: you check competitor repos manually, miss the day they ship something interesting, copy late or not at all.

With it: a 30-second cron run identifies HIGH-SIGNAL changes (new agent / skill / architecture doc) and queues them for manual `/repo-deep-learn` analysis. LOW-SIGNAL (dep bumps, typos) gets logged and skipped.

**This is NOT trending discovery** ([[github-trending-curation]] does that). This is **targeted monitoring** of a known watchlist.

## How

```bash
# Manual one-shot
python3 ~/.claude/scripts/repo_watch.py                  # full pass
python3 ~/.claude/scripts/repo_watch.py --dry-run        # preview, no writes
python3 ~/.claude/scripts/repo_watch.py --only ECC       # single repo

# Cron registration (operator action — see "Cron setup" below)
```

## Architecture (design from Workflow Architect, 2026-05-28)

```
PHASE 1 — Bootstrap
  load watchlist.yaml → state.json → open digest <today>.md (append-safe)

PHASE 2 — Per-repo loop
  gh api commits/HEAD → SHA
  if SHA == last_seen → "no change" line, continue (idempotency anchor)
  gh api compare/<last>...<head> → diff files
  on force-push / missing last_sha → fallback to BASELINE (snapshot, no classify)

PHASE 3 — Classify
  HIGH   = file touches a `threshold_signal_paths` entry OR file-count ≥ threshold
  LOW    = changed files below threshold + outside signal paths
  EMPTY  = whitespace/binary only

PHASE 4 — Emission
  LOW   → row in digest, stop
  HIGH  → row + per-file detail + trigger marker at knowledge/repo-watch/triggers/<repo>-<sha>.trigger
          (file-based handoff to /repo-deep-learn; NEVER sync-invoke)

PHASE 5 — Persist
  atomic write state.json + close digest
```

**Lock file** (`state.json.lock`, 10-min stale-detection) prevents concurrent runs.
**Per-repo error isolation** — one bad repo doesn't abort the batch.
**`--dry-run`** shows what would happen without writing state/triggers/digest.

## Watchlist (`watchlist.yaml`)

Curated by Trend Researcher 2026-05-28 — initial 6 entries, **cap at 7**:

| Repo | Cadence | Why |
|---|---|---|
| `affaan-m/ECC` | daily | 197K-star MIT parallel; primary learning target |
| `wshobson/agents` | weekly | largest community persona collection |
| `hesreallyhim/awesome-claude-code` | weekly | aggregator → mindshare leading indicator |
| `disler/claude-code-hooks-mastery` | weekly | reference hooks impl |
| `anthropics/skills` | daily | upstream skill conventions |
| `anthropics/claude-plugins-official` | daily | official plugin marketplace |

**Drop a repo to weekly cadence** (or remove) when 3 consecutive digests yield zero "steal/decide" items.

## File-based trigger handoff to `/repo-deep-learn`

When HIGH-SIGNAL fires:
1. `knowledge/repo-watch/triggers/<owner-repo>-<sha-prefix>.trigger` is written.
2. Operator (or future scheduler) lists `~/.claude/knowledge/repo-watch/triggers/*.trigger`.
3. For each, runs `/repo-deep-learn <repo-url>` and deletes the trigger when done.
4. Triggers older than 30 days → log warning (analysis backlog).

**Why file-based, not in-process?** Architect's reason: deep-learn is a multi-minute LLM operation; chaining it inside the cron run turns a 5-second monitor into a flaky 10-minute job, masks failures, and blocks the next cron tick. Detection state ≠ action state.

## Cron setup (operator action — outside the brain)

Add to `~/dataqbs-local-cron/runner.py` near the existing Workflow definitions (~line 409):

```python
def cmd_brain_repo_watch(env):
    """Run the daily repo-watch monitor against the curated watchlist."""
    return (
        f"python3 {HOME}/.claude/scripts/repo_watch.py"
    )

# Then register:
Workflow("brain-repo-watch", Daily(hour=8, minute=15), cmd_brain_repo_watch),
```

Restart: `systemctl --user restart dataqbs-cron`. (Per the canonical procedure in [[lesson-dataqbs-cron-dns-cache-stuck]].)

## Anti-pattern callout (from Trend Researcher)

- **Don't watch >7 repos.** Beyond that, you read competitor commits before your own users' issues.
- **Don't auto-copy structure.** Any "inspired by X" pattern must pass `check-generic.py` AND be re-derived from first principles in a SKILL.md — never a verbatim port.
- **Don't watch SDK-layer projects** (humanlayer, etc.) unless you start shipping an agent runtime — wrong abstraction level.
- **Don't read digests per-commit.** Batch weekly, triage into decide/ignore/steal.
- **>20% of your roadmap traceable to "X shipped this"** = you've lost vision. Stop watching.

## Why this is healthy for octorato (right now)

- Brain is 4 months old, still establishing architectural patterns
- Direct parallel (ECC) is moving fast — daily-watch is justified WHILE we're extracting *architectural* lessons
- Will downgrade ECC to weekly once the deep-learn open questions are resolved
- Public brain + `check-generic.py` enforces no leakage; daily-watch just adds triage discipline on top

## See also
- [[github-trending-curation]] — autonomous breadth sibling (100 repos/day)
- [[repo-deep-learn]] — manual depth sibling (1 repo, full analysis); receives triggers from this skill
- [[lesson-dataqbs-cron-dns-cache-stuck]] — cron restart procedure
- [[no-history-in-docs]] — digests are append-only; don't try to "clean up" historical state

Files in this skill

  • SKILL.md5.7 KB
  • watchlist.yaml2.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.