Welcome and onboard new EvoNexus users — introduce agents, skills, routines, and the dashboard. Triggers when the user says 'get started', 'how do I use this', 'what can you do', 'help me get started', 'onboarding', 'show me around', 'what agents do I have', 'how does this work', 'first time here', or seems unfamiliar with the workspace. Also trigger when the user opens Claude Code in an EvoNexus workspace for the first time.
The user already has EvoNexus installed and running. Your job is to welcome them, show what's available, and help them start using agents, skills, and routines right away.
Before welcoming, ensure the workspace/ folder tree exists. The workspace is gitignored (personal data) so new installations start empty — you need to discover which agents are installed and create folders based on what each agent declares in its own system prompt, not a hardcoded list. This keeps the skill self-updating: when new agents are added (business, engineering, or custom), their folders are created automatically the next time this runs.
Read config/workspace.yaml to get workspace.owner, workspace.company, workspace.language, workspace.timezone, workspace.name. These values drive language and personalization.
List all installed agents with Glob .claude/agents/*.md. This captures:
clawdia-assistant.md, flux-finance.md, etc.)apex-architect.md, bolt-executor.md, etc.) as they get importedcustom-*.md) the user createdFor each agent file, Read it and extract:
name: ...)color: ...) — used for future dashboard integrationdescription: frontmatter field or the first prose paragraph## Working Folder section and parse the first sentence for workspace/{folder}/. If the agent has no ## Working Folder section (e.g., pure orchestrators like Clawdia, knowledge agents like Oracle), record it as "no dedicated folder" and skip folder creation for that agent.strategy/analyses/, project/github-reviews/), extract them too.## Anti-patterns, ## Absolute Rules, ## Your Level, ### REQUIRES user approval to extract the 1-2 most important conventions.Build an in-memory table of {agent, folder, subfolders, domain, conventions}. This is the source of truth for Step 1.
Check if the structure already exists. Run a quick check: if every folder in the discovered table already exists on disk, structure is already bootstrapped — skip creation and proceed to the "Customizations" summary below. Otherwise, continue.
Create folders. For each entry in the table that declares a Working Folder:
workspace/{folder}/ if missing.gitkeep in the top-level folder (subfolders don't need it — the wildcard in .gitignore handles them)Create the shared read-only folder workspace/projects/ (plural) if missing — this is where the user uploads git repositories that every agent can read. Also add a .gitkeep.
Create operational folders that are not owned by any single agent but are referenced by routines:
workspace/daily-logs/ — written by clawdia and by the morning/eod routinesworkspace/meetings/ — managed by int-sync-meetings routine (Fathom)Only create these if they're referenced by at least one installed routine or agent; skip if the underlying agent/routine is not installed.
Read workspace.language from config/workspace.yaml. All overview files respect this value:
workspace.language (e.g., pt-BR → [C] Visão Geral — Financeiro.md; en → [C] Overview — Finance.md; es → [C] Visión General — Finanzas.md)workspace.language is not set, default to enworkspace/ (gitignored, personal)For each folder you created in Step 6, write an overview file using this canonical template (translate title, headings, and bullets to the target language before writing):
# Overview — {Sector}
Working folder for agent **@{agent-name}** ({agent domain extracted from the agent file}).
## What goes here
{Extract 3-6 bullets from the agent's Working Folder description and Responsibilities section}
## Conventions
- Files created by the agent are prefixed with `[C]`
- {1-2 agent-specific rules extracted from Anti-patterns / Absolute Rules / Your Level}
Never overwrite an existing overview — if one already exists in any language, skip it (the user may have customized it).
Scan agent improvement notes. For each agent, check if .claude/agent-memory/{agent-name}/_improvements.md exists. If yes, read the first few lines and remember them for the summary.
Scan agent memory folders for customizations the user has saved (e.g., feedback memories, project memories). Count how many entries each agent has in its MEMORY.md index.
Report customizations to the user. After the welcome, include a "Your workspace customizations" section that surfaces:
_improvements.md notes (and the first line of each)MEMORY.md indexes (count of entries) — this tells the user where they've already built up contextcustom-* agents the user has createdworkspace/ that don't match an installed agentThis makes onboarding dynamic: instead of a generic tour, the user sees their workspace state and what's already been tailored.
projects/ (plural) is shared read-access for all agents; the user uploads git repos there## Working Folder because they work across the codebase itself — skip folder creation for thempersonal/ may contain a health dashboard setup (docker-compose.yml, health-data.js) — don't touch if it existsmeetings/ is managed by the sync-meetings routine — no overview file (has its own README.md)After bootstrap is done (or confirmed already existing), proceed to Welcome.
Start with a warm, dynamic welcome that uses the counts you discovered in Step 0. Do not hardcode agent or skill numbers — read them from the filesystem so the message stays accurate as the workspace grows.
Counts to compute at runtime:
Glob .claude/agents/*.md and count entries (exclude custom-*.md or report them separately)Glob .claude/skills/*/SKILL.md and count entriesconfig/routines.yaml (or ROUTINES.md if yaml doesn't exist).claude/agents/custom-*.md, .claude/skills/custom-*/SKILL.md, .claude/commands/custom-*.mdWelcome text (template, translate to workspace.language):
Welcome to {workspace.name} — your AI-powered operating system, {workspace.owner}. You have {N} agents, {N} skills, and {N} automated routines ready to go. Let me show you what you can do.
Present the agents in a dynamic table built from Step 0's discovery table. Group them by layer:
custom-For each layer, build a table dynamically by reading each agent file and extracting command, name, and one-line role:
| Command | Agent | Role | Try saying... |
|---|---|---|---|
/{command} | {Name} | {role from description frontmatter} | {first example from description} |
Do not hardcode the table. Build it from the files on disk so new agents (including engineering imports and custom ones) appear automatically.
After the agents table, add:
You don't have to use slash commands — just describe what you need and I'll route to the right agent automatically.
Suggest 3 things the user can try immediately based on what's most useful:
"Say 'good morning' and the Ops agent will check your calendar, emails, tasks, and give you a prioritized plan for the day."
"Open http://localhost:8080 to see the web dashboard — overview metrics, reports, services, and even a Claude Code terminal in the browser."
"Try running a routine manually:
make morning — morning briefingmake community — community pulse reportmake fin-pulse — financial snapshotEach routine generates an HTML report you can view in the dashboard under Reports."
Compute skill categories dynamically from the filesystem:
Glob .claude/skills/*/SKILL.md → list of installed skills-): fin-, social-, dev-, int-, mkt-, etc.name: frontmatter of the first few skills in that groupPresent as a table:
You have {total} skills organized by prefix. Here are the categories installed in your workspace:
| Prefix | Count | Examples |
|---|---|---|
{prefix}- | {N} | {skill1, skill2, skill3} |
| ... | ... | ... |
Do not hardcode the prefix list. Different installations may have different layers enabled — the business layer (fin-, social-, mkt-, hr-, legal-, etc.), the engineering layer (dev-), and any custom prefixes the user introduced. Build the table from what's actually installed.
After the table:
Browse all skills in the dashboard under Skills, or just ask me to do something and I'll use the right skill.
Read config/routines.yaml at runtime to list the actual routines installed in this workspace. Group them by frequency (daily / weekly / monthly) based on the cron schedule or frequency: field, and list the first handful per group.
Present as:
EvoNexus can run routines automatically on a schedule. You have {N} routines installed:
Daily: {list top 5-6 by name} Weekly: {list} Monthly: {list}
Start the scheduler with
make schedulerand routines run at their configured times. See the full list withmake help.
If config/routines.yaml is missing or empty, say so and point the user to create-routine skill to set up their first one.
"Your dashboard at http://localhost:8080 has:
After the welcome tour, surface what's already been tailored in this specific workspace — this turns a generic onboarding into a personalized status check. Gather:
Agent improvement notes — for each agent folder in .claude/agent-memory/, check if _improvements.md exists. If yes, read the first line and list it. Example output:
- @flux has 2 pending improvement ideas: "Add cash flow forecast chart…"
- @sage has 1 pending improvement idea: "Link OKR review to Linear cycles…"
Agent memory depth — for each .claude/agent-memory/{agent}/MEMORY.md, count the index entries. Report agents with accumulated context:
- @clawdia has built up 14 memories (feedback, project context, references)
- @aria has 3 memories
Shared knowledge base — check memory/index.md. Report how many people profiles, projects, glossary entries, and trends are populated:
- Shared memory: 6 people profiles, 2 project histories, 42 glossary terms, 15 weekly trend snapshots
Custom agents, skills, and commands — list anything under .claude/agents/custom-*, .claude/skills/custom-*, .claude/commands/custom-*. These are workspace-specific extensions the user created.
Orphaned folders — list any directories in workspace/ that do not match a declared agent working folder. These may be legacy or manual organization and deserve a heads-up:
workspace/meetings/— managed by the sync-meetings routine (not owned by any agent, this is expected)workspace/{unknown}/— not matched to any agent, you may want to review
Config status — check config/workspace.yaml values. If owner, company, language, or timezone are missing/default, flag them as "needs configuration".
Present all of this as a concise summary under a heading like:
Your workspace so far
Here's what's already been customized in {workspace.name}:
- {bulleted list from items 1-6 above}
This tells you where you've invested setup time. Agents with pending
_improvements.mdnotes are great targets for your next session — open the file with your agent and clear the backlog.
Based on what you discovered in the customizations phase, suggest personalized next steps — don't hardcode suggestions:
memory/people/ but not memory/projects/ → suggest updating project context_improvements.md → suggest tackling itcustom-* agents → suggest trying one of them@clawdia (if installed) for the daily briefingEnd with:
Just tell me what you're working on and I'll route you to the right agent.