Skills

Slash commands and personas

Seven personas group the skill catalog into focused units. Each persona owns a slash command, a unit name, a role title, and a curated subset of skills. The chat handler regex-matches the slash command at the top of a turn and scopes the discovery step to that persona's skills. There is no Persona class; the term refers to a routing rule plus a UI label.

Updated today

Overview

At a glance
Persona count
7
Defined in
src/components/ChatInterface.tsx
Slash parser
src/app/api/chat/v2/route.ts
Resolution
regex match + persona-scoped discovery
Runtime class
none, UI grouping only
Activity sidebar
src/components/AgentActivitySidebar.tsx

A persona is a label you attach to a focused area of the catalog. The Cortex persona owns research skills. The Specter persona owns lead acquisition. The Sentinel persona owns engineering. The split exists because a flat catalog of 57 entries is hard to navigate; bundling them under seven heads of department is easier to reason about for both the user and the discovery model.

The runtime treats personas as a shortcut. When a user types a slash command, the regex extracts the persona id and the discovery step is given the persona's skill subset rather than the whole catalog. The discovery step still picks exactly one skill, runs it through the same engine, and reports through the same activity feed. Nothing about a persona changes how a skill executes.

The roster

Every persona at a glance.

PersonaSlashUnitRoleSkill focus
Cortex/cortexIntelligence UnitHead of IntelligenceResearch, competitive analysis, signal scanning, market context
Specter/specterAcquisition UnitHead of AcquisitionProspecting, lead enrichment, outreach sequencing
Striker/strikerGrowth UnitHead of GrowthPre and post-call work, deal momentum, follow-up
Pulse/pulseMarketing UnitHead of MarketingLong-form and social content, brand voice, distribution
Sentinel/sentinelEngineering UnitHead of EngineeringBuild, deploy, test, refactor, audit
Amplify/amplifyPaid Media UnitHead of Paid MediaCampaign setup, audiences, creative, bidding
Counsel/legal /counselLegal UnitGeneral CounselContract drafting, review, clause library, negotiation

Personas are not runtime entities

One sentence to commit to memory.

Read this once
A persona has no Skill class, no manifest entry, no executor, and no tool catalog of its own. It is a slash command plus a system prompt fragment plus a filter applied to the discovery step. The actual work is always done by a skill from the catalog.

This matters when you are reading code or activity logs. A row in the activity feed always names the skill that ran, not the persona that routed to it. A profiler trace always shows runSkillMission, never a persona function. If you are looking for the behavior of /cortex, look at the ten skills the Cortex persona points to and the persona prompt that frames the discovery call.

Slash command parsing

One regex at the top of the chat handler decides whether a message belongs to a persona.

src/app/api/chat/v2/route.tsts
1858const agentMatch = message.match(
1859 /^\/(striker|specter|cortex|pulse|sentinel|legal|counsel|amplify)\s/i
1860)
1861const agentId = agentMatch ? agentMatch[1].toLowerCase() : null
1862// agentId scopes the discover_capability call to that persona's skill set

The regex anchors at the start of the message and requires whitespace after the slash term. /cortex map matches; cortex/map does not; /cortex alone with no body also does not match because there is nothing to dispatch. The case-insensitive flag accepts /Cortex from users who autocapitalize.

Note
The regex lists eight tokens for seven personas because Counsel accepts both legal and counsel. The router normalizes both to the same persona id downstream.

Persona-scoped discovery

A matched slash command does not bypass discovery. It narrows the candidate set.

With agentId set, the chat handler injects a persona prompt at the top of the system message that defines the persona's mission and lists every skill in the persona's subset. The discovery tool sees only those skills as candidates. The model still picks one skill based on the user message, and the engine still runs that skill through the standard execution lifecycle.

Without a slash command, the discovery tool sees the entire catalog. The model has more candidates but no narrowing prompt, so the classification rule is purely semantic match against each skill's description. Both paths land in the same engine call.

Cortex

Intelligence Unit, Head of Intelligence. Slash command: /cortex.

Cortex owns the research surface. The persona prompt frames every turn as intelligence gathering: name the target, list the questions worth answering, suggest the artifacts to produce. The skills under Cortex bias toward web search, news ingestion, competitive teardowns, and memory writes that subsequent personas can read.

Skills under Cortex

signal-funding, signal-news, signal-tech-stack, signal-competitor-reviews, signal-multi-aggregator, trend-feed, competitive-analysis, company-deep-dive, pricing-research, meeting-prep.

Specter

Acquisition Unit, Head of Acquisition. Slash command: /specter.

Specter owns prospecting and outbound. The persona prompt frames each turn as filling the pipeline: name the ICP, surface candidate leads, draft the outreach. The skills under Specter call lead databases, scrape signals, and generate the email sequences that feed Striker.

Skills under Specter

vc-prospector, decision-maker-prospector, hiring-manager-prospector, gmaps-leads, email-first-touch, email-follow-up-cadence, email-re-engagement, email-subject-lines, email-personalize-batch, specter-cold-outreach, specter-lead-research.

Striker

Growth Unit, Head of Growth. Slash command: /striker.

Striker owns deal momentum. The persona prompt sits the model inside a sales cycle: warm up the call, handle objections, follow through after the meeting. The skills are tightly scoped because Striker's job is consistency, not creativity. Each one runs short with predictable output.

Skills under Striker

cold-email, follow-up, objection-handler, striker-pre-call, striker-post-call, striker-follow-up.

Pulse

Marketing Unit, Head of Marketing. Slash command: /pulse.

Pulse owns the content engine. The persona prompt frames each turn around brand voice, distribution channels, and the format pick. Skills under Pulse cover long-form blog outlines, social posts, multi-platform repurposing, and the humanizer pass that strips the model-generated cadence.

Skills under Pulse

content-pulse, humanizer, content-hooks, brand-voice, content-format-pick, content-repurpose, linkedin-post, social-content, blog-outline.

Sentinel

Engineering Unit, Head of Engineering. Slash command: /sentinel.

Sentinel owns the software side. The persona prompt routes work into an isolated per-conversation sandbox. Skills under Sentinel build apps, deploy services, run tests, refactor code, and audit security. The execution surface for Sentinel skips most of the regular tool catalog and leans on code_task, deploy_task, and the bundled engineering CLI inside the sandbox.

Tip
Sentinel is the persona most coupled to the workspace. Triggering a Sentinel skill spins up the user's isolated sandbox if it is not already alive, then streams the build or deploy through a live remote desktop view so the user can watch.

Amplify

Paid Media Unit, Head of Paid Media. Slash command: /amplify.

Amplify owns paid acquisition. The persona prompt frames campaign setup, audience targeting, creative briefs, and bidding strategy. Skills lean heavily on the company profile and brand voice context so creative is consistent with everything Pulse produces organically.

Skills under Amplify

ads-campaign-setup, ads-audiences, ads-bidding, ads-copy, ads-creative, ads-measurement, ads-optimization, ads-abm-sync.

Counsel

Legal Unit, General Counsel. Slash commands: /legal and /counsel.

Counsel owns contract work. The persona prompt frames each turn around the standard contract questions: parties, scope, term, fees, IP, liability, termination. Skills include a clause library lookup, drafting from a template, redline review with citations, and a plain-English explainer pass.

Skills under Counsel

contract-draft, contract-review, clause-library, contract-negotiate, contract-compare, contract-plain.

Note
The /legal and /counsel aliases exist because both naming conventions are common. The chat handler resolves both to the same persona id and the same skill subset.

File map

src/components
ChatInterface.tsxpersona definitions and picker UI
AgentActivitySidebar.tsxlive persona activity feed
src/app/api/chat
v2/route.tsslash regex, persona-scoped discovery
src/lib/skills
registry.tsthe 57 skills personas bundle
engine.tsruns the skill discovery picks

Glossary

Persona
A slash command plus a system prompt fragment plus a filter applied to the discovery step. Not a runtime class.
Slash command
A leading token like /cortex that scopes the next turn to one persona's skill subset.
Persona subset
The list of skill ids a persona points at. Discovery only sees these when the persona is active.
Unit
The label shown in the slash picker UI, like Intelligence Unit or Engineering Unit.
Head
The role title shown next to the unit, like Head of Intelligence. Pure UX.
Alias
A second slash command that resolves to the same persona. /counsel aliases /legal.