Catalog
A skill is the unit of work in Ultron. The registry ships 71 skills across 8 categories. Skills are grouped into 7 personas for the UI, addressable by slash command, and resolvable by a plain language router. Each skill declares its model tier, its turn budget, and the tools it is allowed to call.
Browse all skills
Every skill has a permalink with the full description, example prompts, and a token-efficient markdown version for LLM consumers. 71 skills total, grouped by the agent that owns them.
CortexIntelligence Unit
Research, signals, competitor and market analysis.
Compare your product against named rivals — positioning, pricing, weaknesses, sales talking points.
Full dossier on one company — funding, leadership, tech stack, recent news.
Benchmark competitor pricing — tiers, anchors, packaging patterns.
Brief on a specific upcoming meeting — attendee, company, talking points, hooks.
Detect funding-round signals on watchlist accounts (free sources: News + EDGAR).
Detect company events on watchlist accounts — leadership change, M&A, launches, layoffs, lawsuits.
Detect what tech a target runs — analytics, CRM, payments, automation — and where the gaps are.
Find buying-intent in competitor pain — bad G2/Capterra reviews, Reddit switching threads.
Combine all detected signals into one ranked buying-intent feed for outreach prioritization.
Macro-trend digest — what's hot in AI/tech this week across HN, Reddit, GitHub, PH, HF Papers.
Search Ultron's curated Discovery Lab library — playbooks, viral formats, trends, funding, and live feed items.
SpecterAcquisition Unit
Outbound, prospect discovery, email sequences.
Find investors — VCs, angels, seed funds — for fundraising. Streams to CRM in 2-3 min.
Find buyer decision-makers (VPs, Heads, Directors, Founders) at target companies.
Find people hiring for a role that signals buying intent for the user's product.
Scrape brick-and-mortar businesses from Google Maps — dental clinics, gyms, restaurants, agencies.
Write the FIRST cold email — opener, body, single CTA. Seniority-aware (ATL strategic / BTL operational).
COLD sequence — emails 2, 3, and breakup. The prospect never replied to email 1. They don't know you yet.
Win-back ghosted, lost, or churned prospects with a real 'what's new' angle.
5-8 subject-line variants tagged with formula, character count, and rationale.
Apply ONE template across MANY leads with real per-lead specificity. Cap 30 per batch.
Score and prioritize existing leads on fit + engagement signals. Writes scores back to the CRM.
Deep-evaluate whether a single company or lead matches the user's ICP — fit score + reasons.
Find recent buying-trigger events (funding, hiring, launches) for target accounts.
End-to-end cold campaign — research prospects + craft a personalized cold sequence.
Find and enrich decision-makers at target companies. Builds a qualified prospect list.
StrikerGrowth Unit
Sales prep, post-call work, pipeline review.
ONE email after a real interaction (meeting / call / demo). Recap + next steps. NOT a sequence, NOT cold.
Talking points for sales objections — too expensive, not the right time, need to think.
Research the prospect for a sales call — produces lead magnet + sales blueprint deliverables.
Build the post-call 'we already started' package — extra context, extras, recap deliverable.
MULTI-step IN-DEAL push after a sales call. Stage-aware: post-discovery / post-demo / re-engagement.
PulseMarketing Unit
Content strategy, hooks, brand voice.
Unified content engine — ingest sources, run a brief, produce 3 variants per format.
Define / refine / audit the user's brand voice — the constraints other content skills clamp to.
Humanize a draft — strip AI tells, clean dashes, inject voice. Post-process content before sending.
3-5 scroll-stopping hooks (first 1-2 sentences) tagged with formula + char count.
Pick the best format for an idea — text post vs carousel vs video vs poll — anchored to the goal.
ONE canonical asset (blog / video / transcript) → many derived formats (thread / post / carousel).
Targeted LinkedIn post — thought leadership, announcement, story, engagement bait.
Twitter/X, Instagram, TikTok, Facebook content — single posts, threads, multi-platform plans.
Structured blog outline — H2/H3 hierarchy, key points per section, SEO-aware.
Build visual deliverables — carousels, charts, dashboards, comparison tables, SWOT, funnels, timelines.
SentinelEngineering Unit
Scaffold, clone, deploy, debug, audit.
Scaffold a fresh web app in /work, start the dev server, surface the live preview URL.
Fire ultron-capture: spider the site, deploy a branded clone, surface the URL when ready.
Spin up an autonomous agent on the agent-runtime satellite — try templates first, custom build only if no fit.
Ship the current /work to Pages, Workers, or Containers — then verify the live URL.
Initialize /work as a git repo, create the GitHub repo, push, return the URL.
Reorder <section> blocks in a minified HTML file with byte-level safety.
Multi-file string operations with quote and escape safety — uses bun -e, not sed.
Pin a goal + verifiable check; loop attempt → test → diagnose → fix until the check exits 0.
Tail logs, decode CF exception codes (1101 uncaught, 1102 CPU), trace which boundary is failing.
Spin up D1, R2, KV, Vectorize, Hyperdrive, Supabase, or Neon — and wire the binding/connection string.
Hit the live URL, capture status code, screenshot the homepage — prove runtime works (deploy success is not).
Build a CF Workflow — multi-day durable orchestration with sleeps + retries that survive redeploys.
Lighthouse-style audit: perf, SEO, security, accessibility — driven by Playwright in the container.
Red → green → refactor. Failing test first, minimum-code to pass, refactor only after green.
OWASP Top 10 walk against the codebase with concrete proof-of-concept exploits per finding.
AmplifyPaid Media Unit
Ad campaigns, audiences, creatives, measurement.
Design or launch a paid campaign — 3-layer funnel, budget, audiences, KPIs, pre-launch checklist.
Audience targeting — match criteria, exclusions, retargeting, ABM upload lists, size estimates.
Bidding strategy — auto vs manual, starting bid, pacing, escalation triggers per layer.
Ad copy variants — headlines, descriptions, body, CTAs. 3 per asset with formula tags.
Creative direction — format choice, design briefs, refresh cadence per layer.
Attribution + KPI ladder + reporting cadence — Insight Tag, CAPI, common pitfalls.
Diagnose an underperforming campaign — pull ONE lever, run a 3-7 day test, decide.
Closed-loop ABM — coordinate ad engagement signals back into outbound sales.
Overview
- Skills
- 71 in the manifest, all with permalinks
- Categories
- 8 (lead-gen, research, content, paid-ads, sales, legal, ops, engineering)
- Personas
- 7 (Cortex, Specter, Striker, Pulse, Sentinel, Amplify, Counsel)
- Model tiers
- haiku, sonnet, opus (resolved to versioned model ids at runtime)
- Manifest
src/lib/skills/registry.ts- Prompt files
- One
SKILL.mdper skill, grouped by category - Engine
src/lib/skills/engine.ts- Max parallel runs
- 2 per host process
Every interaction worth running through a structured agent is a skill. The catalog is closed in the sense that the registry enumerates every skill statically; nothing is registered at runtime. This is deliberate. It keeps the routing table predictable, makes the tool allow-list auditable, and lets the activity feed surface a real name for every step the user sees.
Skills compose. A persona prompt can chain multiple skill invocations from inside one chat turn. The user sees a single conversation; the engine sees several skill runs threaded together, each with its own model tier, its own tool catalog, and its own turn budget.
Categories
The 8 categories partition the manifest. The category controls where the SKILL.md file lives on disk and how the catalog browser groups entries.
| Category | Skill count | Examples |
|---|---|---|
| lead-gen | 14 | vc-prospector, decision-maker-prospector, email-first-touch, gmaps-leads |
| research | 10 | competitive-analysis, signal-funding, signal-news, trend-feed, company-deep-dive |
| content | 9 | content-pulse, humanizer, content-hooks, brand-voice, linkedin-post |
| paid-ads | 8 | ads-campaign-setup, ads-audiences, ads-copy, ads-creative, ads-bidding |
| sales | 6 | cold-email, follow-up, objection-handler, striker-pre-call, striker-post-call |
| legal | 6 | contract-draft, contract-review, clause-library, contract-negotiate, contract-compare |
| ops | 2 | pipeline-review, morning-briefing |
| design | 1 | canvas-intelligence |
Personas
Each persona is a slash command, a system prompt, and a curated subset of the catalog. There is no Persona class; the term refers to a UI grouping plus a routing rule.
| Persona | Slash | Unit | Role | Approx skills |
|---|---|---|---|---|
| Cortex | /cortex | Intelligence Unit | Head of Intelligence | 10 |
| Specter | /specter | Acquisition Unit | Head of Acquisition | 12 |
| Striker | /striker | Growth Unit | Head of Growth | 4 |
| Pulse | /pulse | Marketing Unit | Head of Marketing | 9 |
| Sentinel | /sentinel | Engineering Unit | Head of Engineering | 13 |
| Amplify | /amplify | Paid Media Unit | Head of Paid Media | 8 |
| Counsel | /legal /counsel | Legal Unit | General Counsel | 6 |
/legal is the everyday form; /counsel exists as an alias for context-heavy contract work. Both resolve to the same persona prompt.How a skill is invoked
Three paths arrive at the same engine entry point. The path the user takes only changes how the skill gets selected.
- 01Slash commandThe chat handler regex-matches
^/(striker|specter|cortex|pulse|sentinel|legal|counsel|amplify)\sat the start of the message. The persona id scopes the discovery step to that persona's skill subset. - 02Plain language routerWithout a slash command, the chat loop exposes the
discover_capabilitytool to the model. Claude reads the user message, classifies the intent, and picks a skill id from the catalog. - 03Skill as toolAny tool-calling turn can invoke
run_skilldirectly with a known skill id. This is how one skill chains into another mid-run.
The SkillMeta interface
One TypeScript interface describes every entry in the manifest. All fields except author, version, license, and tags are required.
description field is not the system prompt. It is the trigger blurb the discovery step reads when choosing a skill. The full prompt lives in SKILL.md next to the manifest entry.Loading a skill
The manifest holds metadata. The prompt lives on disk. Loading a skill merges the two.
SKILL.md frontmatter
Execution engine
One function runs every skill. It resolves the model, assembles the tool catalog, drives the tool-calling loop, streams progress, and persists side effects.
On entry the engine waits for a concurrency slot, resolves the model id, builds the session context (user profile plus recent and key memories), loads the skill, filters the tool catalog by connected integrations, and starts the loop. Progress streams to the caller through a callback so the chat surface can render live activity. On completion the engine writes a memory entry summarizing the run and an activity log row so the agent activity sidebar has something to show.
Tool allow-list
A skill can only call tools that appear in its manifest. The engine enforces this twice: once when assembling the tool catalog and again when an integration is missing.
skill.tools is not just hidden, it is never serialized into the API call. The model has no way to call a tool that did not make it through both gates.Concurrency and retry
The engine protects shared rate limits by capping parallel runs and backing off on 429s.
Example skills
A representative slice of the catalog showing how the metadata composes in practice.
| Skill | Category | Model | maxTurns | Tools (count) |
|---|---|---|---|---|
competitive-analysis | research | haiku | 8 | 6 |
signal-multi-aggregator | research | sonnet | 8 | 5 |
email-first-touch | lead-gen | sonnet | 6 | 6 |
ads-campaign-setup | paid-ads | sonnet | 8 | 4 |
contract-review | legal | sonnet | 12 | 7 |
maxTurns like 12 on contract-review reflects the document scanning and citation pass the skill performs. A low maxTurns like 6 on email-first-touch reflects a tight outreach format that should not wander.File map
Glossary
- Skill
- A registered unit of work with a manifest entry, a SKILL.md prompt, a model tier, a turn budget, and a tool allow-list.
- Manifest
- The flat array SKILL_MANIFEST in registry.ts. The runtime source of truth for which skills exist.
- SKILL.md
- The markdown file on disk that carries the full system prompt for one skill. Loaded into the engine when the skill runs.
- Category
- One of eight folder names under src/lib/skills/. Determines where the SKILL.md lives and how the catalog groups.
- Persona
- A UI label and slash command that scopes skill discovery to a curated subset of the catalog. Not a runtime entity.
- Tier
- The model class declared on the skill (haiku, sonnet, opus). Resolved to a versioned model id by the engine.
- Turn budget
- maxTurns on the manifest. Hard cap on the number of tool-calling iterations the engine will run before forcing a final answer.
- Discovery
- The step in the chat loop that selects a skill from the catalog, either from a slash command or from a plain language classification.
- Mission
- One full execution of a skill from entry to completion. Tracked by activity log and summarized into agent memory.