Install any skill in seconds. Free to start, no credit card required.
Get Started Free →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.
.claude/skills/evolution-foundation-initial-setup/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-04 | ✗→✓ | ▲ Improved | 178% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 127% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 368% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 200% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 208% | 0% |
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.
config/workspace.yaml to get workspace.owner, workspace.company, workspace.language, workspace.timezone, workspace.name. These values drive language and personalization.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 createdname: ...)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.{agent, folder, subfolders, domain, conventions}. This is the source of truth for Step 1.workspace/{folder}/ if missing.gitkeep in the top-level folder (subfolders don't need it — the wildcard in .gitignore handles them)workspace/projects/ (plural) if missing — this is where the user uploads git repositories that every agent can read. Also add a .gitkeep.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.
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)markdown # 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
[C]Never overwrite an existing overview — if one already exists in any language, skip it (the user may have customized it).
.claude/agent-memory/{agent-name}/_improvements.md exists. If yes, read the first few lines and remember them for the summary.MEMORY.md index._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 scheduler and routines run at their configured times. See the full list with make 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:
.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…"
.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
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
.claude/agents/custom-*, .claude/skills/custom-*, .claude/commands/custom-*. These are workspace-specific extensions the user created.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/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.md notes 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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→fail | 14,045 | 7,078 | -50% | 1 | 1 | 0% | 2,469 | 4,081 | +65% | 0 | 0 | — |
case-02 | fail→fail | 4,660 | 9,412 | +102% | 1 | 1 | 0% | 368 | 4,393 | +1094% | 0 | 0 | — |
case-03 | fail→fail | 21,824 | 9,188 | -58% | 1 | 1 | 0% | 3,516 | 4,457 | +27% | 0 | 0 | — |
case-04 | fail→pass | 10,101 | 4,882 | -52% | 1 | 1 | 0% | 1,646 | 4,569 | +178% | 0 | 0 | — |
case-05 | fail→pass | 14,531 | 9,038 | -38% | 1 | 1 | 0% | 2,319 | 5,254 | +127% | 0 | 0 | — |
case-06 | fail→pass | 6,607 | 4,601 | -30% | 1 | 1 | 0% | 977 | 4,577 | +368% | 0 | 0 | — |
case-07 | pass→pass | 9,642 | 3,455 | -64% | 1 | 1 | 0% | 1,425 | 4,296 | +201% | 0 | 0 | — |
case-08 | pass→pass | 10,538 | 4,141 | -61% | 1 | 1 | 0% | 1,599 | 4,449 | +178% | 0 | 0 | — |
case-09 | fail→pass | 10,140 | 6,892 | -32% | 1 | 1 | 0% | 1,601 | 4,799 | +200% | 0 | 0 | — |
case-10 | pass→pass | 8,446 | 4,521 | -46% | 1 | 1 | 0% | 1,412 | 4,565 | +223% | 0 | 0 | — |
case-11 | fail→pass | 8,403 | 3,526 | -58% | 1 | 1 | 0% | 1,405 | 4,325 | +208% | 0 | 0 | — |
case-12 | fail→pass | 13,562 | 7,785 | -43% | 1 | 1 | 0% | 2,245 | 5,129 | +128% | 0 | 0 | — |
case-13 | pass→pass | 12,750 | 5,075 | -60% | 1 | 1 | 0% | 2,107 | 4,606 | +119% | 0 | 0 | — |
case-14 | fail→pass | 10,008 | 3,412 | -66% | 1 | 1 | 0% | 1,468 | 4,369 | +198% | 0 | 0 | — |
case-15 | pass→pass | 12,127 | 8,101 | -33% | 1 | 1 | 0% | 1,882 | 5,062 | +169% | 0 | 0 | — |
case-16 | pass→pass | 7,928 | 5,045 | -36% | 1 | 1 | 0% | 1,261 | 4,554 | +261% | 0 | 0 | — |
case-17 | fail→fail | 10,796 | 3,852 | -64% | 1 | 1 | 0% | 1,546 | 4,340 | +181% | 0 | 0 | — |
case-18 | pass→pass | 8,254 | 1,891 | -77% | 1 | 1 | 0% | 1,134 | 4,001 | +253% | 0 | 0 | — |
case-19 | fail→pass | 15,749 | 4,074 | -74% | 1 | 1 | 0% | 2,492 | 4,444 | +78% | 0 | 0 | — |
case-20 | pass→fail | 5,495 | 4,545 | -17% | 1 | 1 | 0% | 986 | 3,965 | +302% | 0 | 0 | — |
case-21 | pass→fail | 6,898 | 6,583 | -5% | 1 | 1 | 0% | 1,055 | 4,168 | +295% | 0 | 0 | — |
case-22 | pass→pass | 19,065 | 13,603 | -29% | 1 | 1 | 0% | 3,535 | 5,459 | +54% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +27 percentage points is the difference between those two pass rates over the 17 comparable cases. 3 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.