bump-core-req
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Read-only audit of brief source performance. Scans recent brief frontmatter (sources_used, sources_skipped, sources_quiet) for 3+ consecutive quiet or skipped streaks, plus a fetch_log-based cost-efficiency analysis. Never modifies feed-sources.md. Invoke with
$ npx -y skills add gtapps/claude-code-hermit --skill source-health --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/source-healthContext preview
The summary Claude sees to decide when to auto-load this skill.
Read-only audit of brief source performance. Scans recent brief frontmatter (sources_used, sources_skipped, sources_quiet) for 3+ consecutive quiet or skipped streaks, plus a fetch_log-based cost-efficiency analysis. Never modifies feed-sources.md. Invoke with
name: source-health description: >- Read-only audit of brief source performance. Scans recent brief frontmatter (sources_used, sources_skipped, sources_quiet) for 3+ consecutive quiet or skipped streaks, plus a fetch_log-based cost-efficiency analysis. Never modifies feed-sources.md. Invoke with /feed-hermit:source-health [--last N].
Read-only audit of brief source performance. Scans recent briefs and flags underperforming sources before they silently waste fetch budget.
1. **Read `feed-sources.md`** — extract the active source names (Name column).
2. **Glob briefs** — list `.claude-code-hermit/briefs/*.md`, sort descending by filename (newest first), take the last **N = 10** (override with `--last N`).
3. **Parse each brief's frontmatter** — extract:
If a source appears in none of the three arrays, mark it `unknown` for that brief (may predate the schema).
4. **Compute per-source streaks** — walking newest→oldest for each active source:
5. **Flag threshold violations** — any source where `consecutive_quiet >= 3` OR `consecutive_skipped >= 3`.
6. **Output a health table:**
## Source Health — YYYY-MM-DD (last 10 briefs) | Source | Last 10 (newest→oldest) | Streak | Status | |-----------------------|----------------------------|--------------|-----------| | Source A | ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ ✓ | — | healthy | | Source B | ~ ~ ~ ✓ ~ ~ ~ ✓ ~ ~ | 3 quiet | ⚠ warn | | Source C | ✗ ✗ ✗ ✗ ✓ — — — — — | 4 skipped | ✗ flag |
Legend: `✓` contributed · `~` quiet (fetched, nothing relevant) · `✗` skipped (fetch failed) · `—` not yet in sources or brief predates schema.
Status thresholds:
7. **Summary line** — after the table:
Flagged: N source(s) need review. Quiet: M. Skipped: K.
If nothing flagged: `All N sources healthy in the last 10 briefs.`
8. **Recommendations** — one line per flagged source:
9. **Efficiency Analysis** — reads `fetch_log` from recent frontmatter for per-source cost efficiency. Only runs when at least 3 recent briefs have `fetch_log` data; if fewer, skip entirely (no output).
a. **Load fetch_log data** from step 3. Group by source name; discard briefs where `fetch_log` is absent.
b. **Per-source aggregates** (across all briefs where the source appears in fetch_log):
c. **Flag type-upgrade candidates.** Sources where `tokens_approx ≥ 15000` (Chrome-tier cost) AND `yield_ratio < 0.15` → "type-upgrade candidate" (low yield at Chrome cost suggests checking for an RSS feed).
d. **Output efficiency table** — append after the streak table:
## Efficiency Analysis (last N briefs with fetch_log)
| Source | Type | Avg tokens | Yield/1K | P1 rate | Verdict |
|-------------|---------|------------|----------|---------|------------------|
| Source A | rss | 3K | 2.3 | 29% | ✓ efficient |
| Source B | reddit | 5K | 1.8 | 33% | ✓ efficient |
| Source C | chrome | 20K | 0.05 | 100% | ⚠ low yield → RSS? |
| Source D | x | 20K | 0.0 | — | ✗ no yield |Verdict thresholds:
Summary line:
Efficiency: N sources efficient · M low-yield · K type-upgrade candidates
Print the tables to the conversation. Do NOT write to any file — this skill is read-only and never modifies `feed-sources.md`. Source removals require operator approval per project rules.
Run an always-on Claude Code agent on your machine or server, for you or your team. Use it from your terminal or the Claude app via Remote Control, or connect Discord, Telegram, iMessage, or a custom Claude Code channel.
Repo: gtapps/claude-code-hermit
Updates the minimum core version requirement for a fleet plugin in all three canonical places: `required_core_version` and `requires["claude-code-hermit"]` in…
Changelog and commit — lightweight motion for day-to-day plugin dev work in the monorepo. One commit per plugin scope; CHANGELOG and staging routed by detected…
Documentation-drift audit for the plugin monorepo. Audits either each scoped plugin's unreleased changelog claims or its latest shipped release from the…
Explain in plain language what a fix, feature, PR, or plan will actually change for downstream hermits and the operators chatting with them — a before/after…
Use this skill whenever the user wants to release, ship, prep, or cut versions for two or more plugins together on the current branch. Trigger on phrasings…
Daily release-pipeline digest with a change gate — reports which plugins are pending release, whether main's CI is green, which branches went stale, and GitHub…