⚠ LLM judge partially failed — 7 of 18 skills unscored (LLM call timed out or returned unparseable output). They will retry on the next cron tick.

🛠️ Skill Audit

2026-10-22 · 18 skills modified in past 48h
1
skills scored ≤4 / 10
1
merge proposals
avg 6.4 · median 6 · 11 scored · 7 unscored · 4,201 tokens to load

📋 Review queue lowest score first · tap "why?" for proposal

decision-model
4/10
Skill: tev1-decisions.
MERGEPATCH-HEADLINE
(top-level) · 6.1h ago · 2460 words · 373 tok to load
head
0/10
goal
10/10
comp
5/10
contra
5/10
useful
10/10
unique
0/10
pub
0/10
why this score?
head 0/2
  • no frontmatter description at all
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 1/2
  • heavy rule churn (20 rule phrases) — consolidate before next read
pub 0/2
  • line 212: hardcoded ~/.hermes path — ``/Users/morsy/.hermes/workspaces/emmy/decision-2026-10-21-agentic-announcements.json``
  • line 212: internal agent/persona reference — ``/Users/morsy/.hermes/workspaces/emmy/decision-2026-10-21-agentic-announcements.json``
see proposed fix
MERGE
LLM: merge into `ollama-decision-models` (the more-general sibling)
PROPOSED FIX
consolidate the smaller skill into `ollama-decision-models`; archive the loser's directory under `~/.hermes/skills/_archive/<name>-merged-<ts>/`
📉 ~373 tokens/load eliminated + 1 skill off the dispatch surface
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • no frontmatter description at all
PROPOSED FIX
replace the `description:` line with: description: "Make research-backed decisions via local Ollama tev1:4b: gather cited state, compose choice/noul/score questions, call /v1/systemone, return verdict with probabilities and sources."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Skill: tev1-decisions > **TL;DR** — When the user wants a decision, **research first**, then ask Ollama `/v1/systemone` with `tev1:4b`. Decision models don't predict; they weigh criteria. The work is in the state + the schema. ## When to load this skill Load when the user asks any of: - "Should I [buy / invest / pick / choose / hire / ship] X?" - "Is X [true / safe / risky / urgent / aligned]?" - "Classify / score / route / rank these items." - "Pick one of A / B / C for [purpose]." - "Give me a 1-5 score on [dimension] for X." Skip for purely factual questions, code generation, open-ended writing, or anything where the model needs to *generate* prose instead of *pick from a list*. ## Why this backend `tev1:4b` (Together AI, Qwen3.5-4B base, Apache 2.0) is the verified winner of the 2026-09-30 benchmark on 60 labeled support-ticket items: | Model | Avg precision | Latency | Download | |-------------|---------------|---------|----------| | **tev1:4b** | **98.3%** | 3…
PATCH-CONTRADICTION
LLM: rules conflict or contradict
  • heavy rule churn (20 rule phrases) — consolidate before next read
PROPOSED FIX
consolidate each conflicting rule pair into a single statement; keep rules terse and non-overlapping
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 212: hardcoded ~/.hermes path — ``/Users/morsy/.hermes/workspaces/emmy/decision-2026-10-21-agentic-announcements.json``
  • line 212: internal agent/persona reference — ``/Users/morsy/.hermes/workspaces/emmy/decision-2026-10-21-agentic-announcements.json``
PROPOSED FIX
replace each internal reference: line 72: - memory_store (local long-term store for project-specific context — e.g., recurring tickers, prior decisions) line 217: <workspace>/decisions/decision-YYYY-MM-DD-<topic>.json line 240: 5. Next action the user has to take, stated concretely and upfront. line 286: If the user asks for a report / deck of decisions (not a single call), bundle N calls (one per topic), write a short Markdown summary, and hand off to a presentation-creation skill for the PPTX. This skill is purely about the decision calls themselves. line 290: - benchmarks/jev-style/results-tev1_4b.json — 60-item precision benchmark (2026-09-30)
hermes-model-management
5/10
Safe model and provider switching in Hermes via CLI — includes rollback patterns, config key mechanics, and provider-specific quirks.
PATCH-HEADLINEPATCH-COMPACT
hermes · 29.4h ago · 5216 words · 379 tok to load
head
5/10
goal
10/10
comp
0/10
contra
5/10
useful
10/10
unique
5/10
pub
0/10
why this score?
head 1/2
  • frontmatter description is 224 chars (over 200 cap)
  • no action verb in description (e.g. build, run, audit, generate)
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 1/2
  • 19 'do not/never' phrases + 13 'always/must' phrases — possible direct conflicts at lines [79, 242, 263] vs [9, 14, 17]
pub 0/2
  • line 59: hardcoded ~/.hermes path — `path = "/Users/morsy/.hermes/config.yaml"`
  • line 84: hardcoded ~/.hermes path — `jobs = json.load(open("/Users/morsy/.hermes/cron/jobs.json"))`
  • line 360: hardcoded ~/.hermes path — `**On verified hardware (2026-10-20, Morsy's M-series Mac):** plist has `KeepAlive=true`, ``
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 224 chars (over 200 cap)
  • no action verb in description (e.g. build, run, audit, generate)
PROPOSED FIX
replace the `description:` line with: description: "Switch default model or provider in Hermes via CLI — three-key atomic set, base_url pitfall, rollback guard, fallback-list editing. Load for model/provider changes."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Hermes Model Management **Trigger:** Load when user asks to switch/change/set the default model, add a new provider, or configure model-level safety nets. ## Core Principle: Three Keys Move Together When switching the default model or provider, **three config keys must be set together**: ```bash hermes config set model.provider <provider> hermes config set model.default <model> hermes config set model.base_url "" # always clear on provider switch ``` **Critical pitfall:** `model.base_url` persists from the previous provider. A stale URL (e.g., `https://chatgpt.com/backend-api/codex` from Codex) overrides the new provider's endpoint, causing silent failures or wrong-model calls. **Always clear it when switching providers.** ## Safe Model Switch Procedure ### Step 1 — Audit current config ```bash hermes config # shows all config including current model hermes config check # shows missing/present keys ``` ### Step 2 — Apply change (all three keys) ```bash her…
PATCH-CONTRADICTION
LLM: rules conflict or contradict
  • 19 'do not/never' phrases + 13 'always/must' phrases — possible direct conflicts at lines [79, 242, 263] vs [9, 14, 17]
PROPOSED FIX
consolidate each conflicting rule pair into a single statement; keep rules terse and non-overlapping
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 59: hardcoded ~/.hermes path — `path = "/Users/morsy/.hermes/config.yaml"`
  • line 84: hardcoded ~/.hermes path — `jobs = json.load(open("/Users/morsy/.hermes/cron/jobs.json"))`
  • line 360: hardcoded ~/.hermes path — `**On verified hardware (2026-10-20, Morsy's M-series Mac):** plist has `KeepAlive=true`, ``
PROPOSED FIX
replace each internal reference: line 56: Pattern when a trial model burned too much money and the user says line 104: Job has a provider / model key → pinned, immune to global flips (default posture for cron jobs on a shared default model). line 281: Standing rule: NEVER restart the gateway on your own. Any restart requires the user's explicit approval first. line 305: User's exact framing: "can we change a single agent?" — followed by "then expand." line 319: all 8 API calls used the OLD provider path, despite agents.<id>.model and agents.<id>.provider being correctly set on disk.
ai-bubble-tracker
6/10
Tracks AI bubble warnings and trigger events daily.
PATCH-HEADLINEPATCH-COMPACT
(top-level) · 26.1h ago · 3546 words · 348 tok to load
head
5/10
goal
10/10
comp
0/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 16 'do not/never' phrases + 21 'always/must' phrases — possible direct conflicts at lines [44, 50, 62] vs [30, 35, 50]
pub 0/2
  • line 105: internal Slack channel ID — `- **Daily 21:11 PT** — cron `ai-bubble-tracker-daily` (**job `3c9e1d61c94c`**); scans all `
  • line 107: internal Slack channel ID — `- **Weekly Sun 20:00 PT** — cron `ai-bubble-tracker-weekly-rebuild` (**job `23654c4ce3c5`*`
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
PROPOSED FIX
replace the `description:` line with: description: "Scans 16 expert sources daily for AI bubble warnings, dedups by URL, appends to JSON ledger, and rebuilds a Cloudflare dashboard with cumulative per-signal heat-map tiles."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # AI Bubble Tracker A daily tracker of named experts and institutions calling for an AI bubble burst in 2027-2028, with automated watches for the triggers they care about. ## When to use - "What did the AI bubble tracker find today?" - "Did Burry / Grantham / Dalio post anything new?" - "Run the AI bubble scan" - "Rebuild the AI tracker dashboard" - "Update the AI bubble tracker predictions" ## Data files (all in `~/.hermes/workspaces/nancy/ai-bubble-tracker/`) - `data/predictions.json` — the 11 named sources + 5 triggers - `data/events.json` — append-only log of detected events - `data/signal_history.json` — per-day `{source_id, severity}` rows; drives the all-time heat count - `data/seen_ids.json` — dedup key (URL) → first-seen-timestamp; used by the daily cron to avoid re-logging the same article - `index.html` — last-rendered dashboard (dark default, light toggle) ## Scripts - `scripts/scan.py` — read-only post-processor: prints Slack-ready summary - `scripts/render.py` — r…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 105: internal Slack channel ID — `- **Daily 21:11 PT** — cron `ai-bubble-tracker-daily` (**job `3c9e1d61c94c`**); scans all `
  • line 107: internal Slack channel ID — `- **Weekly Sun 20:00 PT** — cron `ai-bubble-tracker-weekly-rebuild` (**job `23654c4ce3c5`*`
PROPOSED FIX
replace each internal reference: line 20: ## Data files (all in the skill's workspace directory, e.g. ./ai-bubble-tracker/) line 108: appends to events.json + signal_history.json, renders + deploys the page, posts to the project's Slack channel. The older job (see references/cron-job-ids.md) is paused — never resume it; its prompt predates the canonical-URL rule. line 110: verifies tile + event counts render, rebuilds the page, deploys, posts to the project's Slack channel. The older job (see references/cron-job-ids.md) is paused — never resume it. line 114: Canonical URL: configure via the CANONICAL constant in scripts/normalize_url.py (default in this repo: the Cloudflare Pages project URL). line 117: That is the ONLY URL to post to readers. Full stop. The same string lives in <workspace>/CANONICAL_URL.md
cron-failure-triage
6/10
Triage and repair broken Hermes cron jobs.
PATCH-HEADLINEPATCH-COMPACT
devops · 3.8h ago · 1958 words · 365 tok to load
head
5/10
goal
10/10
comp
5/10
contra
5/10
useful
10/10
unique
10/10
pub
0/10
why this score?
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 1/2
  • heavy rule churn (26 rule phrases) — consolidate before next read
pub 0/2
  • missing 'when NOT to use' — accidental dispatch risk
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
PROPOSED FIX
replace the `description:` line with: description: "Diagnose and repair failing Hermes cron jobs by classifying script, delivery, and scheduling failures, then fixing them one by one with read-only probes and verified runs."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Cron Failure Triage & Repair Class-level workflow for finding out which Hermes cron jobs are actually broken, why, and fixing them one at a time. Also covers "the cron isn't running" reports that are really delivery or duplicate-job problems. ## When to load this - "Check if there are any cron jobs that are not running due to failures" - "Why isn't cron X running / delivering?" - "Fix the cron jobs" / "let's go through them one by one" - An incident digest, health check, or manual sweep shows `last_status: error` on one or more jobs - A user asks which jobs are dead, stuck, duplicated, or "not doing their job" **Skip for:** - Designing a new cron fleet → `cron-fleet-stewardship` - A prompt that is blocked by the injection scanner → `cron-injection-scanner-forensics` - Model-pin / provider-drift skips → `cron-inference-config-pinning` - A read-only periodic audit that must not mutate anything → `hermes-install-health-audit` ## The three-layer failure model Most "the cron isn't…
PATCH-CONTRADICTION
LLM: rules conflict or contradict
  • heavy rule churn (26 rule phrases) — consolidate before next read
PROPOSED FIX
consolidate each conflicting rule pair into a single statement; keep rules terse and non-overlapping
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • missing 'when NOT to use' — accidental dispatch risk
PROPOSED FIX
replace each internal reference: line 47: $HERMES_HOME/cron/jobs.json — per job: line 48: $HERMES_HOME/cron/executions.db (SQLite) line 51: $HERMES_HOME/logs/gateway.error.log + gateway.log line 58: cp $HERMES_HOME/cron/jobs.json $HERMES_HOME/cron/jobs.json.bak-pre-<change>-$(date +%Y%m%d-%H%M%S). Same for any data file line 80: using the bot token from $HERMES_HOME/.env:
observability
6/10
Monitor Hermes Agent token usage, cost, and agent health.
PATCH-HEADLINEPATCH-COMPACT
(top-level) · 3.4h ago · 3799 words · 350 tok to load
head
5/10
goal
5/10
comp
5/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
head 1/2
  • frontmatter description is 224 chars (over 200 cap)
goal 1/2
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 10 'do not/never' phrases + 12 'always/must' phrases — possible direct conflicts at lines [11, 120, 124] vs [17, 47, 67]
useful 2/2
  • no runnable shell command block — agent has to improvise
pub 0/2
  • line 53: hardcoded ~/.hermes path — `db = sqlite3.connect('/Users/morsy/.hermes/state.db')`
  • line 75: hardcoded ~/.hermes path — `db = sqlite3.connect('/Users/morsy/.hermes/state.db')`
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 224 chars (over 200 cap)
PROPOSED FIX
replace the `description:` line with: description: "Query Hermes Agent token usage, cost, and session health from state.db. Includes sessions schema, cost-reconstruction recipes, and the broken-billing caveat."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Observability — Hermes Token, Cost & Agent Health Monitoring ## ⚠️ Critical: Two Stacks, One Right Answer There are TWO observability stacks on this machine. **Use the first one only.** | Stack | DB Path | Status | Use For | |---|---|---|---| | **Hermes-native** | `~/.hermes/state.db` | **LIVE, current** | Token usage, cost, session analysis | | OpenClaw legacy | `~/.openclaw/observability.db` | **ORPHANED, 50+ days stale** | Nothing — do not use | The OpenClaw stack (scripts in `~/.openclaw/skills/observability/`) was written for a different system. Its cron job disappeared, its source jsonl files stopped being written ~June 7, and all paths point to `~/.openclaw/` instead of `~/.hermes/`. **Ignore it completely.** --- ## Primary Source: Hermes state.db (always correct) **Path:** `~/.hermes/state.db` This is Hermes's own session database. It is live and current — query this first for any token/cost question. ### sessions table schema ```sql sessions ( id TEXT PRIMARY KEY,…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 53: hardcoded ~/.hermes path — `db = sqlite3.connect('/Users/morsy/.hermes/state.db')`
  • line 75: hardcoded ~/.hermes path — `db = sqlite3.connect('/Users/morsy/.hermes/state.db')`
PROPOSED FIX
replace each internal reference: line 3: description: "Query Hermes Agent token usage, cost, and session health from state.db. Includes sessions schema, cost-reconstruction recipes, and the broken-billing caveat." line 25: | Hermes-native | ${HERMES_HOME}/state.db | LIVE, current | Token usage, cost, session analysis | line 26: | OpenClaw legacy | ~/.openclaw/observability.db | ORPHANED (machine-specific legacy) | Nothing — do not use | line 28: If an older OpenClaw stack is present on the host, ignore it — its cron job and source jsonl files are no longer written and its paths do not match Hermes. Use state.db only. line 34: Path: ${HERMES_HOME}/state.db (default ~/.hermes/state.db on a user install)
PATCH-GOAL
LLM: first paragraph doesn't make the goal concrete
  • no 'when to use' / 'load this when' trigger in opening paragraph
PROPOSED FIX
replace the opening paragraph: Use this skill when you need to work with observability — hermes token, cost & agent health monitoring — it provides the conventions, examples, and reusable code so the agent can act without inventing the wheel.
spurtalk-evening-workflow
6/10
Run the SpurTalk evening engagement + planning workflow for @TalkApp24803.
PATCH-HEADLINEPATCH-COMPACT
social-media · 29.2h ago · 13303 words · 461 tok to load
head
5/10
goal
10/10
comp
0/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
head 1/2
  • frontmatter description is 885 chars (over 200 cap)
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 60 'do not/never' phrases + 26 'always/must' phrases — possible direct conflicts at lines [7, 9, 10] vs [10, 13, 14]
pub 0/2
  • line 34: hardcoded ~/.hermes path — `Canonical workspace path: `/Users/morsy/.hermes/workspaces/spurtalk-jenny/``
  • line 36: hardcoded ~/.hermes path — `> **CRITICAL — Workspace gate:** This workflow MUST run in the `spurtalk-jenny` Hermes wor`
  • line 57: hardcoded ~/.hermes path — `Run `pwd` or equivalent to confirm the session is running in `/Users/morsy/.hermes/workspa`
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 885 chars (over 200 cap)
PROPOSED FIX
replace the `description:` line with: description: "Use spurtalk evening engagement + planning workflow to **SpurTalk is the 60-second loop itself, not a productivity tool.** Use this for owned-content continuity: when planning tomorrow's MOMENTUM fou…."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # SpurTalk Evening Engagement + Planning Workflow ## Changelog - 1.9.7 — 2026-08-27 (evening cron, Day 123): **Three refinements from a clean fold-in steady-state execution.** (1) **Wed DOPAMINE → Thu TD → Fri MOMENTUM 3-primitive cross-rotation arc — concrete mapping (extends v1.9.4 from AMYGDALA→ES into a fully-articulated 5-primitive framework).** Confirmed this session: the Wed DOPAMINE "prediction-error beat" primitive, the Thu TD "initiation-gap / leap-cost falsifier" primitive, and the Fri MOMENTUM "completion-signal stacker" primitive describe the SAME 60-second micro-action under three different framings. The primitive is rotation-agnostic: (a) Wed — reality beats expectation at the smallest unit; (b) Thu — the leap is sized below the refusal-cascade threshold; (c) Fri — done-state registers in the brain's prediction ledger, the next step costs less. **SpurTalk is the 60-second loop itself, not a productivity tool.** Use this for owned-content continuity: when planning tom…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 34: hardcoded ~/.hermes path — `Canonical workspace path: `/Users/morsy/.hermes/workspaces/spurtalk-jenny/``
  • line 36: hardcoded ~/.hermes path — `> **CRITICAL — Workspace gate:** This workflow MUST run in the `spurtalk-jenny` Hermes wor`
  • line 57: hardcoded ~/.hermes path — `Run `pwd` or equivalent to confirm the session is running in `/Users/morsy/.hermes/workspa`
PROPOSED FIX
replace each internal reference: line 42: <WORKSPACE_ROOT>/spurt alk-jenny/ line 44: <WORKSPACE_ROOT>/spurtalk-jenny/ line 46: The workspace IS <WORKSPACE_ROOT>/spurtalk-jenny/. Do NOT use legacy aliases line 38: You are running as the <AGENT_NAME> agent in the configured Hermes workspace. line 3: Run the evening engagement + planning workflow for the configured X account.
cloudflare-pages-deploy
7/10
Deploy static sites to Cloudflare Pages.
PATCH-COMPACTPATCH-PUBLISH
(top-level) · 26.1h ago · 14070 words · 343 tok to load
head
10/10
goal
10/10
comp
0/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 54 'do not/never' phrases + 28 'always/must' phrases — possible direct conflicts at lines [34, 112, 128] vs [36, 42, 65]
pub 0/2
  • line 70: hardcoded ~/.hermes path — `cd /Users/morsy/.hermes/workspaces/<agent>/milestr`
  • line 181: hardcoded ~/.hermes path — ``terminal(command="cat /Users/morsy/.hermes/cron/jobs.json")` will silently truncate stdou`
  • line 194: hardcoded ~/.hermes path — `with open('/Users/morsy/.hermes/cron/jobs.json', 'rb') as f:`
see proposed fix
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Cloudflare Pages Deploy (this workspace) ## TL;DR **Default to existing infra before reaching for new tools.** Morsy's verbatim rejection: *"This is BS. We have Hermes."* If the existing cron + skills + cloudflare-pages-deploy pipeline can do the job (daily job, weekly HTML rebuild, deploy to `<slug>.pages.dev`), propose THAT, not a new external service (n8n, Make.com, separate cron → email bridge, etc.). Locked 2026-10-15. **Reuse an existing project before creating a new one.** Cloudflare Pages has a hard per-account project cap (free = 100, paid = 500), and the easy reflex of "one HTML file → one new project" burns through it. Before `wrangler pages project create`, run the project-reuse check below. Multi-file sister reports, dashboards, recurring cron outputs, and per-iteration artifacts from the same workflow all belong in ONE existing project with sibling files, not in N new projects. See Pitfall #27. **wrangler 4.105 auto-creates projects — one step is the default.** ```…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 70: hardcoded ~/.hermes path — `cd /Users/morsy/.hermes/workspaces/<agent>/milestr`
  • line 181: hardcoded ~/.hermes path — ``terminal(command="cat /Users/morsy/.hermes/cron/jobs.json")` will silently truncate stdou`
  • line 194: hardcoded ~/.hermes path — `with open('/Users/morsy/.hermes/cron/jobs.json', 'rb') as f:`
PROPOSED FIX
replace each internal reference: line 6: # Cloudflare Pages Deploy line 10: Default to existing infra before reaching for new tools. If the existing cron + skills + deploy pipeline can do the job line 12: (daily job, weekly HTML rebuild, deploy to <slug>.pages.dev), propose THAT, not a new external service (n8n, Make.com, separate cron → email bridge, etc.). line 39: Always stage deploys in a non-DriveFS local dir (e.g. ~/.cache/<name>/) before running wrangler pages deploy. line 73: cd /path/to/<project>/milestr
slack-messaging
7/10
Send messages to Slack channels via Hermes, diagnose Slack gateway outages (no inbound, no outbound), and fix Slack mrkdwn format-rendering…
PATCH-HEADLINEPATCH-COMPACT
communication · 5.0h ago · 4044 words · 403 tok to load
head
5/10
goal
10/10
comp
5/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
head 1/2
  • frontmatter description is 384 chars (over 200 cap)
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 27 'do not/never' phrases + 11 'always/must' phrases — possible direct conflicts at lines [106, 107, 114] vs [9, 105, 114]
pub 0/2
  • line 131: hardcoded ~/.hermes path — ``grep -A1 "SlackApiError: The request" /Users/morsy/.hermes/logs/gateway.log | head -40``
  • line 14: hardcoded ~/dev path — `- User reports **agent output renders wrong in Slack** — strikethrough on text that should`
  • line 181: hardcoded ~/dev path — `**The pipeline:** agent output → `SlackAdapter.format_message()` at `/Users/morsy/dev/herm`
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 384 chars (over 200 cap)
PROPOSED FIX
replace the `description:` line with: description: "Send Slack messages via Hermes, diagnose gateway outages (no inbound/outbound), and fix mrkdwn rendering bugs. Load when Slack is broken or agent output formats wrong."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Slack Messaging Send messages to Slack channels through Hermes, diagnose when the Slack gateway platform is broken (no inbound, no outbound, retry loop in logs), and fix Slack mrkdwn format-rendering bugs in agent output. ## When to Use - User reports **"Slack is not working" / "no messages" / "no replies"** — START WITH `./scripts/verify_slack.sh`. This is almost always faster than reasoning from memory. - Sending notifications, reminders, or updates to Slack channels - Communicating with users via Slack as configured in Hermes - Sending automated reports or alerts to team channels - After a workspace reinstall — use `scripts/slack_invite_all_channels.py` to re-join every channel - User reports **agent output renders wrong in Slack** — strikethrough on text that shouldn't have it, italics where bold was wanted, raw `&amp;` / `&lt;` / `&gt;` leaking through, asterisks showing as literal `*`. Fix the **Slack adapter's `format_message` method** at `/Users/morsy/dev/hermes/plugins/p…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 131: hardcoded ~/.hermes path — ``grep -A1 "SlackApiError: The request" /Users/morsy/.hermes/logs/gateway.log | head -40``
  • line 14: hardcoded ~/dev path — `- User reports **agent output renders wrong in Slack** — strikethrough on text that should`
  • line 181: hardcoded ~/dev path — `**The pipeline:** agent output → `SlackAdapter.format_message()` at `/Users/morsy/dev/herm`
PROPOSED FIX
replace each internal reference: line 12: Fix the Slack adapter's format_message method in the slack platform plugin (path varies by install) line 31: # Load token from $HERMES_HOME/.env (defaults to ~/.hermes/.env) line 32: env_path = Path(os.environ.get("HERMES_HOME", Path.home() / ".hermes")) / ".env" line 44: channel = "C0XXXXXXXXXX" # Replace with actual channel ID
wacli
7/10
Send and receive WhatsApp messages via the wacli CLI on macOS.
PATCH-HEADLINEPATCH-COMPACT
(top-level) · 5.0h ago · 9344 words · 445 tok to load
head
5/10
goal
10/10
comp
5/10
contra
10/10
useful
10/10
unique
10/10
pub
0/10
why this score?
head 1/2
  • frontmatter description is 492 chars (over 200 cap)
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
contra 2/2
  • 35 'do not/never' phrases + 19 'always/must' phrases — possible direct conflicts at lines [182, 189, 197] vs [26, 112, 114]
pub 0/2
  • line 335: internal agent/persona reference — `- **`--since` is not a wacli flag — do not use it.** Agents sometimes reach for `--since` `
  • line 351: internal agent/persona reference — `- **`groups list` (local store) also lags WhatsApp servers — newly-created groups won't ap`
  • line 352: internal agent/persona reference — `- **Substring match on group names is dangerous when the user names a specific group — the`
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 492 chars (over 200 cap)
PROPOSED FIX
replace the `description:` line with: description: "Send and receive WhatsApp via the wacli CLI on macOS. Read chat history, send text/media, list chats, search, and sync the local store. Mirror of the imessage skill for WhatsApp."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # wacli — WhatsApp CLI Use `wacli` to read and send WhatsApp messages via a locally-synced store (whatsmeow-backed). Works similarly to `imsg` but for WhatsApp. ## Prerequisites - **macOS** with `wacli` installed (`brew install` or from https://wacli.sh) - One-time auth: `wacli auth` shows a QR to pair the device. After that, the local DB persists across runs. - Verify with `wacli doctor` if anything looks off (auth, store, search). ## When to Use - Reading WhatsApp conversation history with a specific contact - Scanning the last 24h of a personal 1:1 chat for a coaching / reflection / relationship brief - Sending a WhatsApp message (text, image, file) - Searching the local message store (FTS5 if compiled in) - Listing recent chats to find the right JID - **Discovering which groups you belong to** (use `wacli groups list --query <name> --json` — `chats list` silently omits inactive groups) ## When NOT to Use - iMessage / SMS → use `imessage` instead - Telegram / Discord / Slack …
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 335: internal agent/persona reference — `- **`--since` is not a wacli flag — do not use it.** Agents sometimes reach for `--since` `
  • line 351: internal agent/persona reference — `- **`groups list` (local store) also lags WhatsApp servers — newly-created groups won't ap`
  • line 352: internal agent/persona reference — `- **Substring match on group names is dangerous when the user names a specific group — the`
PROPOSED FIX
replace each internal reference: line 3: wacli is a host CLI: any agent on the same machine can drive it via terminal(), even without a dedicated wacli primitive in its tool_search. See the cross-agent pitfall before claiming inability. line 192: ## Message style — personal nudge to a specific named recipient (validated 2026-08-30, no-signature rule locked 2026-09-02) line 213: When the message is from a sender to a recipient who already knows them (family, close contact), do not sign with a relationship label ("Oncle", "Papa", "Maman", the sender's first name) or any closing attribution. The message lands first-person, ending with the CTA verb. The sender's exact framing: "the message lands as if from me, unsigned — first-person without attribution." This overrides any prior "sign off with relationship to recipient" guidance. line 219: Validated case 2026-08-30 (coaching agent → 'Yannouch - Brilliant Future' group): four drafts reviewed by the user. Draft 1: 4 paths + "Pour toi si..." opinions per option → user: "Remove your opinions about each option." Draft 2: cheerful intro but led with guilt-framing → user: "Intro is stressful." Draft 3: dropped intro entirely → user: "No…. add an intro but make it optimistic and cheerful!" Draft 4 (landed): cheerful intro + per-option bullet + 1-line description (named employer/school) + status, ending on a single CTA verb. User: "Send." line 302: wacli IS WORKING — don't echo the stale "Client outdated (405)" belief (corrected 2026-10-12, certificate-message send). If an agent's MEMORY.md or TOOLS.md carries a "wacli broken / 405 error" entry from 2026-09-11 or earlier, treat that as a stale-invocation memory, not a real outage. The corrected send path (wacli send text --to <jid> --message <body> subcommand form, verified with v0.18.1) works and returns a real MsgID.
apple-system-diagnostics
8/10
Use when diagnosing macOS performance, resource, or component problems - "the computer is extremely slow", high load average, CPU throttling,…
PATCH-HEADLINEPATCH-COMPACT
apple · 5.0h ago · 679 words · 378 tok to load
head
5/10
goal
10/10
comp
5/10
contra
10/10
useful
10/10
unique
10/10
pub
5/10
why this score?
head 1/2
  • frontmatter description is 234 chars (over 200 cap)
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
useful 2/2
  • no runnable shell command block — agent has to improvise
pub 1/2
  • missing 'when NOT to use' — accidental dispatch risk
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
  • frontmatter description is 234 chars (over 200 cap)
PROPOSED FIX
replace the `description:` line with: description: "Diagnose macOS performance issues: load average spikes, CPU throttling, memory leaks, disk pressure, runaway processes, system database and log forensics."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Apple System Diagnostics Skill for investigating and diagnosing Apple system components on macOS by examining system files, databases, and logs. ## When to Use - **Machine feels slow** — "the computer is extremely slow", laggy UI, high load average, CPU throttling, runaway process, memory leak, disk pressure → see `references/macos-performance-triage.md` (or just run `scripts/macos-perf-probe.sh` for one-shot evidence) - Investigating unknown system behaviors - Checking status of Apple services/features - Debugging issues with macOS built-in functionalities - Auditing system data usage (like token consumption for AI features) - Troubleshooting when standard logs don't provide enough detail ## Performance Triage (quick path) For "the machine is slow" requests, run `scripts/macos-perf-probe.sh` first — it captures load, CPU throttle limit, load composition (R vs D), top CPU, top RSS, swap, process/thread counts, app version drift, GPU processes, and agent/dev background bleed…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • missing 'when NOT to use' — accidental dispatch risk
PROPOSED FIX
replace each internal reference: (no internal lines found — manual review needed)
hermes-agent-prompt-audit
8/10
Audit a Hermes agent prompt for bloat and contradictions.
PATCH-HEADLINEPATCH-COMPACT
software-development · 3.5h ago · 1304 words · 356 tok to load
head
5/10
goal
10/10
comp
5/10
contra
10/10
useful
10/10
unique
10/10
pub
5/10
why this score?
goal 2/2
  • body is empty after frontmatter
  • no 'when to use' / 'load this when' trigger in opening paragraph
useful 2/2
  • no runnable shell command block — agent has to improvise
pub 1/2
  • line 29: internal agent/persona reference — `6. **Unconditional catalog dump** — full skills inventory injected every turn with no rele`
  • line 80: internal agent/persona reference — `- `references/2026-09-16-clawy-prompt-dump-findings.md` — concrete contradiction map from `
see proposed fix
PATCH-HEADLINE
LLM: current description doesn't precisely describe the goal
PROPOSED FIX
replace the `description:` line with: description: "Audit a Hermes system prompt for bloat, contradictions, duplicate specs, locked-rule conflicts, env-state burns, and unconditional catalog dumps. Includes 6-class taxonomy and 5-question triage."
PATCH-COMPACT
LLM: body has restatement or prose bloat
PROPOSED FIX
tighten the body — a working tighter version: # Hermes Agent Prompt Audit Class-level workflow for reviewing the **content** of a system prompt actually being sent to a Hermes agent — bloat, contradictions, locked-rule conflicts, duplicate specs, and environment-state burns. ## When to Use - Morsy says "analyze the prompt", "review the system prompt", "audit the SOUL.md", "is this prompt in better shape" - You captured a `~/.hermes/tmp/llm_prompts/*.md` dump and need to review it - A session ran hot (token use spike, repeated confusion) and you suspect the prompt, not the model - Before shipping a change to SOUL.md, `agent-communication-style.md`, AGENTS.md, or any always-injected block ## Why This Skill Exists Morsy's verification rigor (memory, locked 2026-09-03): if you cite "X saves Y tokens", measure it. Same logic applies to audit claims — every "this is fluff" call must be backed by file:line and a concrete alternative. The audit is a content problem, not a transport problem. Don't confuse with `hermes-install-health-…
PATCH-PUBLISH
LLM: internal references leak — strip before public
  • line 29: internal agent/persona reference — `6. **Unconditional catalog dump** — full skills inventory injected every turn with no rele`
  • line 80: internal agent/persona reference — `- `references/2026-09-16-clawy-prompt-dump-findings.md` — concrete contradiction map from `
PROPOSED FIX
replace each internal reference: line 32: suppressing the skills index removes the instruction and the discovery path together — the system-prompt builder bundles narrative + index in one string, and no skills_search tool exists to replace it (skills_list has only a category param, and a full dump is several times the index it replaced, spilling to the prompt-cache overflow directory). Consult your Hermes version's source for current line numbers. line 73: Distinct from the system-prompt taxonomy above: this is the post-turn fork path (background review extractor), not the main agent loop. When auditing a prompt dump and the user_message is a memory- or skill-review invocation, the dump reveals bloat in three places: line 76: Fix: install a ~300-token task-specific system prefix on the fork that overrides the main system prompt, keeping the prefix cache key byte-stable so warm-cache reads still hit. line 79: approx_input_tokens > 100K AND user_message starts with "Review the conversation above and..." (i.e. a memory- or skill-review prompt emitted by the background-review fork).
agent-reasoning-effort
—
Tune `agent.reasoning_effort` in `~/.hermes/config.yaml` — what each level does on the wire, the disk-vs-`hermes config show` mismatch, third-party endpoint uncertainty,…
devops · 3.6h ago · 2583 words
cron-inference-config-pinning
—
Class-level workflow for managing how Hermes cron jobs bind to the global LLM provider/model config and survive edits to ~/.hermes/config.yaml.
devops · 26.6h ago · 4425 words
ollama-decision-models
—
Use when running Ollama decision models on /v1/systemone.
mlops · 5.4h ago · 3553 words
premium-marketing-site
—
Use when sites must not look AI-made.
creative · 4.9h ago · 5521 words
social-media-post-authoring
—
Author user-authored thought-leadership social media posts for LinkedIn, X, and similar platforms.
social-media · 5.4h ago · 10612 words
spurtalk-reddit-monitor
—
Class-level workflow for SpurTalk Jenny's recurring reddit-monitoring cron — pulls 24h top posts from r/ADHD, r/getdisciplined, r/productivity, r/DecidingToBeBetter via old.reddit.com…
social-media · 29.2h ago · 4077 words
x-influencer-monitoring
—
Recurring cron for SpurTalk Jenny — monitors ADHD/procrastination X KOL accounts, scores per-post amygdala-fit vs a rotating brand angle, identifies…
(top-level) · 29.2h ago · 13566 words