Skip to content

Skills Audit, 2026-04-28

Auditor: forge-refactor_Opus47 Scope: /home/justinwieb/forge/.claude/skills/ (17 skills) + ~/.claude/skills/ (0, empty)

Inventory

17 project-scoped skills, no user-scoped skills.

Skill Trigger description accurate? References valid? Fix needed
cf-add ✅ "expose X at foo.justinkrystal.com" scripts/forge_cloudflare_cf.py none
context ✅ wellness/home/business slice ✅ Context API at 127.0.0.1:7358 none
create-task ✅ generic ✅ Writes to tasks/pending/ none
decrypt-n8n ✅ ACTION SKILL, never auto scripts/forge_n8n_decrypt_cred.sh none
deploy-site ✅ ACTION SKILL, manual only scripts/forge_sites_deploy.sh none
fleet-status ✅ generic ✅ wraps scripts/forge_fleet_status.sh none
handoff ✅ scaffolds handoff template ✅ writes memory/handoffs/<topic>-YYYY-MM-DD.md none
mount-check ✅ FUSE health check scripts/forge_monitor_mount_watchdog.sh none
notify ⚠️ description lists "ntfy, Discord, Slack, n8n, file": Discord/Slack just removed from dispatch by this refactor scripts/forge_notify.sh update description to drop Discord/Slack
preview-site ✅ Tailscale URL for Venus scripts/forge_sites_preview.sh none
recall ✅ semantic search scripts/forge_search_query.py none
save-to-drive ✅ markdown → docx via pandoc scripts/forge_gdoc_to_drive.sh none
screenshot ✅ desktop + mobile via Playwright scripts/forge_sites_screenshot.sh none
sessions ✅ lifecycle for tmux sessions ✅ all subcommands valid none
spawn ✅ remote-control session in tmux ✅ tmux + python3 helpers exist none
spawn-worker ✅ ephemeral claude -p ✅ writes to comms/results/ none
ssh-status ✅ fleet health snapshot ✅ ssh aliases all exist none

Findings

A: Apply directly

A1, notify description drift. Current: "Send notifications via the forge notification system (ntfy, Discord, Slack, n8n, file)" Reality after this refactor: notify.sh dispatches to manager bot + ntfy + n8n + file (Discord/Slack functions kept but never called). Proposed: "Send notifications via the forge notification system. Routes to @Manager_JForgeBot (Telegram) for all priorities; warning + critical also fan out to ntfy + n8n. Discord/Slack functions kept but no longer dispatched."

This is a description-only change in .claude/skills/notify/SKILL.md. Apply directly.

B: Gaps (skills that should exist but don't)

# Proposed skill Why Priority
B1 /email-list (or similar wrapper around list-recent-emails n8n workflow) The Gmail suite has 14 workflows but no skill surface. Currently agents have to know the scripts/forge_n8n_call.sh pattern. A skill would document the canonical query syntax. medium, useful but not blocking. Justin types prompts in natural language; agents handle the n8n call themselves.
B2 /ava-tell or /manager-push (direct push to a specific bot) Right now notify.sh routes everything to manager. There's no skill to push something only to Ava (e.g., for conversational context injection). low, scripts/forge_telegram_push.sh already exists, just isn't surfaced as a skill.
B3 /draft-email (wraps create-gmail-draft-business or create-gmail-draft-personal) Drafting is the most-used Gmail action and currently goes through raw forge_n8n_call.sh @file payloads, which is error-prone for apostrophes/quotes. medium
B4 /workflow-list (n8n workflow inventory + last-run status) 34 n8n workflows now exist. There's no quick "what workflows exist + are healthy" surface. low, infra/n8n/workflows/ is greppable.

None are blocking. Recommendation: ship B3 first (highest leverage), then B1 if Justin wants natural-language email triage.

C: Skills that may be redundant (Justin's call)

# Skill Note
C1 /create-task vs /spawn-worker Different mechanisms (queue file vs claude -p direct), but the user-facing intent is similar. Documenting the distinction in MEMORY.md (already done in reference_task_queue.md) handles this. No change.
C2 /spawn vs /spawn-worker Documented well: /spawn = long-lived tmux Remote Control; /spawn-worker = ephemeral pipe mode. Keep both.

D: Cross-cutting

  • All 17 skills correctly use allowed-tools to scope shell access. No skill is over-permissive.
  • disable-model-invocation: true on cf-add, decrypt-n8n, deploy-site correctly prevents auto-invocation of destructive/cost-incurring skills.
  • No skill references TickTick.
  • No skill references the old "Manager Opus session" role.

What gets applied in this run

  • A1 (notify description fix), applied directly.

What needs Justin's call

  • B1–B4, net-new skills, deferred until Justin signals he wants them.
  • C1–C2, no action recommended.