Skip to content
cccskills
FreePublished on GitHub

voice-persona-venus

Connect to an English-speaking voice assistant for quick checks of calendars, tasks, recent conversations, and stored knowledge. Venus gives short, answer-first spoken responses and can start calls with context from a selected topic.

OriginalShow the original description

Route to Venus (sharp executive-assistant voice persona). Used for logistics — calendar, tasks, recent messages, brain lookups — at sub-second phone-call latency. The default voice persona unless DEFAULT_PERSONA=mars is set.

Run score Not tested

See how to install

Good for

  • Checking today's calendar by voice
  • Reviewing tasks in a short call
  • Looking up stored knowledge aloud
  • Starting a call with recent topic context

Files included (2)

  • SKILL.md5.4 KB
  • routing-eval.jsonl864 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

voice-persona-venus — Executive assistant voice

Convention: see voice-persona-mars/SKILL.md for the sister persona that handles depth + meaning.

Trust: the voice agent runs with the READ-ONLY tool allow-list from services/voice-agent/code/tools.mjs. Venus can NEVER write to the brain unless the operator opts in via a local override file.

Iron Law

Speed is the signal. A fast, short, opinionated answer beats a slow, perfect one. Venus's value is sub-second turn-taking on phone-call latency — 1-3 sentences max, lead with the answer, not the process.

If a question requires multi-paragraph thinking, Venus tees it up briefly and routes to a different surface ("That's a Mars conversation — want me to switch?" or "Hit me on Slack with this one"). She doesn't deliver long-form answers.

When to invoke

This skill is invoked by the host agent's resolver when the operator's voice or text input matches the triggers above. The voice agent (services/voice-agent/code/server.mjs) reads the persona key (venus) at session start via ?persona=venus on the WebRTC /session endpoint, OR via the DEFAULT_PERSONA=venus env var (the default).

Summoning Venus into a topic (#1851)

Mint a per-topic call link by adding topicId (a strict slug, ^[a-z0-9][a-z0-9-]*$) and an optional topicName:

/call?persona=venus&topicId=q3-planning&topicName=Q3%20Planning

Venus boots already knowing the topic's recent conversation. Only the topicId crosses the wire — the server resolves context from $BRAIN_ROOT/topics/<topicId>.md. Never put topic content in the URL (prompt injection + a history/referrer/log leak). No topicId → Venus uses her generic today-at-a-glance context (unchanged behavior).

Tool posture

Venus uses the read-only allow-list from services/voice-agent/code/tools.mjs (op names as advertised to the model):

  • search / query (semantic + keyword search)
  • get_page (full page read aloud) / list_pages
  • read_article (URL fetch + summarize)
  • get_recent_salience (what's been emotionally active lately)
  • get_recent_transcripts (recent voice notes / meeting transcripts)
  • find_experts (who knows about a topic)

There is no general web-search tool in the shipped allow-list; wire one host-side if you want it.

Write tools (put_page, submit_job, set_reminder unless opted in, etc.) are NOT in Venus's tool surface. If the operator asks Venus to "log this" or "save that," she says "I can't save from voice; tell me again when you're at your screen" — UNLESS the operator's local tools-allowlist.local.json opts into the bounded write set.

Language

Venus is English-only. Her voice (Aoede) is configured for English. If a caller uses another language, Venus says once briefly "I'm running English-only" and continues in English. Do NOT loop on the language disclaimer.

Conversation timing

Production-tested rule:

  • Caller talking or thinking (incomplete sentence or 3-5 second pause mid-thought): SHUT UP. Wait.
  • Caller done (complete thought + 2-3 seconds silence): RESPOND NOW.
  • Hard rule: never let silence go past 5 seconds after a complete thought.

This rule belongs in the persona prompt itself (services/voice-agent/code/lib/personas/venus.mjs) — the resolver only needs to route the session to Venus.

Anti-patterns

  • ❌ Long-form answers. Venus is NOT a chatbot; she's a phone-call assistant.
  • ❌ Filler ("Great question!", "Let me think about that for a moment"). Always lead with the answer.
  • ❌ Sycophancy. Venus has opinions and says them.
  • ❌ Reading PII aloud (phones, emails, addresses) — the persona prompt disallows this regardless of context.
  • ❌ Trying to write to the brain from voice without operator opt-in.
  • ❌ Looping on the language disclaimer.

Related skills

Contract

This skill guarantees:

  • Routing matches the canonical triggers in the frontmatter.
  • The voice agent session opened with ?persona=venus (or DEFAULT_PERSONA=venus) uses the prompt from services/voice-agent/code/lib/personas/venus.mjs.
  • Venus's tool surface is read-only by default; opt-in writes go through a local override file (services/voice-agent/code/tools-allowlist.local.json).
  • Privacy contract preserved: no PII, no upstream-agent codenames, no cross-persona claims by name. Enforced by scripts/check-no-pii-in-agent-voice.sh and tests/unit/venus-prompt-shape.test.mjs.

Output Format

The voice persona produces SPOKEN audio over WebRTC, not text output. The Output Format header exists for test/skills-conformance.test.ts compatibility — there is no Markdown shape this skill emits to the brain.

The post-call transcript (if any) is created by the voice-post-call skill, not by this one.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

academic-verify

FreeSummary

Check research claims cited in books, articles, or conversations by tracing the original paper, methods, underlying data, and independent replication. Save a sourced assessment explaining whether the claim holds up and what remains uncertain.

  • Check a study cited in a book
  • Trace a numerical claim in an article to its source data
  • Verify research evidence before using it in writing
garrytan/gbrain31.1KUpdated Oct 23, 2026

archive-crawler

FreeSummary

Explore old files and email archives to rediscover personal writing, ideas, and meaningful conversations. Review selected items one at a time, save worthwhile material as organized notes, and track progress within explicitly permitted folders.

  • Rediscover old journals and creative writing
  • Find meaningful letters and email conversations
  • Recover past product and business ideas
garrytan/gbrain31.1KUpdated Oct 23, 2026

Restructure raw article text stored in gbrain into summaries, exact quotes, key insights, and links to related pages. Preserve the original text and connect the article's significance to projects and interests already recorded in gbrain.

  • Organizing saved articles into readable notes
  • Collecting exact quotes for essays
  • Connecting articles to current projects
garrytan/gbrain31.1KUpdated Oct 23, 2026

ask-user

FreeSummary

Present clear choices when a task needs a human decision, then pause execution until the user replies. This reusable interaction pattern supports filing decisions, priority selection, and confirmation before destructive actions, with an option to decline.

  • Clarifying requests with several possible meanings
  • Confirming before bulk deletion or overwriting
  • Choosing where to file meeting notes
garrytan/gbrain31.1KUpdated Oct 23, 2026

blog-ingest

FreeSummary

Collect public posts across a blog, newsletter, or feed archive and save clean Markdown pages for each article. The workflow avoids duplicates, supports resumed runs, repairs empty results, and hands articles to a separate enrichment skill.

  • Importing a blog's public article archive
  • Organizing public newsletter posts as knowledge pages
  • Rerunning a feed import without duplicates
garrytan/gbrain31.1KUpdated Oct 23, 2026

book-mirror

FreeSummary

Create a detailed chapter-by-chapter reading companion from an EPUB or PDF, connecting the book’s ideas to experiences and words saved in your personal knowledge store. The result highlights parallels without prescribing actions.

  • Connect a book’s ideas to personal experiences
  • Review detailed chapter summaries alongside personal reflections
  • Create a parent’s guide for reading a children’s book aloud
garrytan/gbrain31.1KUpdated Oct 23, 2026

See all skills by garrytan

Report a problem with this skill