A skill is a markdown file — a named task with inputs, tool permissions, and output schema. Any agent can call it.
Brand monitoring, competitor tracking, KOL outreach, SEO audits — every SaaS ships its own flavor and calls it a feature. You pay for the same workflow 8 times.
Your "monitor competitors" workflow in Tool A doesn't port to Tool B. Switch vendors, rebuild the playbook. The knowledge is rented, not owned.
An out-of-the-box "competitor monitoring" recipe searches for "SaaS competitors" in general. Yours needs your specific 8 competitors, your specific positioning, your specific keywords.
Every Skill is a markdown file in playbooks/ with frontmatter (name, agent, inputs, requires) and a prompt body. Version-controlled, diff-able, forkable. No vendor lock.
brand-monitor-apify reads us/company.md. competitor-radar reads us/market/competitors.md. kol-outreach-draft reads us/brand/voice.md. Your context, your output.
Each Skill declares integrations + us_files + cli needed. Pre-flight modal blocks Run until green with one-click fixes — paste a key, fill a file, copy an install command.
Every Skill outputs a dated markdown note in signals/<kind>/<date>.md. Readable, searchable, version-controlled. No dashboard lock-in, no CSV export needed.
New Skills ship with every release. `ensureVault()` picks them up on daemon start — no re-install, no schema migration. Revision-aware seeding means your edits to existing Skills are preserved.
Every Skill can be turned into a trigger. Say "run this every Monday morning" — the agent calls trigger_create and a cron appears in /triggers.
Skills call notify() at the end. Native macOS Notification Center always fires on darwin. Messaging fan-out to Slack / Feishu / Discord / Telegram if connected. Zero hardcoded webhooks.
Daily Reddit + Twitter/X scan via Apify for brand mentions. Reads keywords from us/company.md. Classifies positive / neutral / negative / question / compare. Writes signals/mentions/<date>.md.
Weekly competitor teardown — pricing / changelog / blog diff against prior week. Reads us/market/competitors.md. Flags material changes to the top of the report.
Finds ICP-matching companies via Apify Google search. Reads us/market/icp.md. Enriches and drafts approval-gated outbound.
Competitor + KOL profile + post diff via Apify. Role changes, engagement-ranked replyable posts. Writes signals/linkedin/<iso-week>.md.
Daily brand + category narrative check. Question-post detection for tool-recommendation threads. High-urgency notify for time-sensitive replies.
Creator-marketing loop: LinkedIn search via Apify → ICP-score against us/market/icp.md → approval-gated DM drafts via draft_create. CSV-tracked end-to-end.
REWRITE / PUSH / GAP analysis from Google Search Console Search Analytics. Daemon signs the service-account JWT for you — no OAuth dance.
Ghost + WordPress. Blog overview and approval-gated draft push. Always creates as draft; you publish via your CMS UI.
Generate + run a JSON test suite via apidog-cli against any REST backend. Covers auth / validation / method / 404 / happy-path. Free npm package, no account.
Building-block skills the Outbound Agent chains. Each one is independently usable — firmographics, ICP scoring, contact enrichment.
brand-mention-scan, competitor-scan, news-scan use only web_search + web_fetch. No Apify needed — run these if you just want the fast, cheap version.
Drop a .md file in playbooks/ with the right frontmatter. Shows up in /skills. Invocable from chat, schedulable via trigger_create. Yours.
Yes — they're markdown files at <vault>/playbooks/. Edit freely. The revision-aware seeder only overwrites your version when the shipped one has a higher `revision:` number AND you haven't customized. Your edits win.
Yes. Drop <slug>.md in playbooks/. Frontmatter needs `kind: skill, name, agent, inputs?, requires?`. Body is the prompt an agent follows. Shows up in /skills immediately.
Agents are personas (Researcher, SDR, Outbound, GEO Analyst). Skills are capabilities — a pre-written prompt + tool list that an agent runs. One agent can invoke many skills. The Skills page lets you trigger a one-off invocation for testing.
LLM reasoning goes through our billed proxy. Integration calls (Apify, SES, Google, Ghost, WordPress, GSC) use your own BYOK keys and your own provider bills — we don't touch those.