Skip to content

/welcome

First-touch experience for new Ouroboros users

From plugin
ouroboros
6.4k26 skills22 agents3 hooks1 MCP

Claude Code

$ npx -y skills add Q00/ouroboros --skill welcome --agent claude-code

SKILL.md

welcome.SKILL.md
name: welcome
description: "First-touch experience for new Ouroboros users"
disable-model-invocation: true

/ouroboros:welcome

Interactive onboarding for new Ouroboros users.

Usage

/ouroboros:welcome              # First-time or update onboarding
/ouroboros:welcome --skip       # Skip welcome, mark as shown
/ouroboros:welcome --force      # Force re-run welcome even if shown

Instructions

Ask every question with the active runtime's `ask_user` capability, in the user's language. The Korean labels below are the canonical wording.

Python Runtime (Required)

Define this resolver in the same shell before any snippet below. It accepts only Python 3.12 or newer (`python3`, then `python`, then uv) and preserves arguments and stdin. Quote every argument passed to `ouroboros_python`.

<!-- ouroboros-python-resolver:start -->

ouroboros_python() {
  if command -v python3 >/dev/null 2>&1 &&
    (unset PYTHONHOME PYTHONPATH PYTHONPLATLIBDIR PYTHONEXECUTABLE __PYVENV_LAUNCHER__; command python3 -c 'import sys; raise SystemExit(sys.version_info < (3, 12))') >/dev/null 2>&1
  then
    (unset PYTHONHOME PYTHONPATH PYTHONPLATLIBDIR PYTHONEXECUTABLE __PYVENV_LAUNCHER__; command python3 "$@")
    return
  fi
  if command -v python >/dev/null 2>&1 &&
    (unset PYTHONHOME PYTHONPATH PYTHONPLATLIBDIR PYTHONEXECUTABLE __PYVENV_LAUNCHER__; command python -c 'import sys; raise SystemExit(sys.version_info < (3, 12))') >/dev/null 2>&1
  then
    (unset PYTHONHOME PYTHONPATH PYTHONPLATLIBDIR PYTHONEXECUTABLE __PYVENV_LAUNCHER__; command python "$@")
    return
  fi
  if command -v uv >/dev/null 2>&1; then
    (unset PYTHONHOME PYTHONPATH PYTHONPLATLIBDIR PYTHONEXECUTABLE __PYVENV_LAUNCHER__; command uv run --no-project --quiet --python '>=3.12' python "$@")
    return
  fi
  printf '%s\n' 'Ouroboros skills require Python >= 3.12 or uv on PATH.' >&2
  return 127
}

<!-- ouroboros-python-resolver:end -->

Bundled Scripts

This skill's programs are files in `scripts/` next to this `SKILL.md`. Run them with the commands below; never retype, rewrite or edit them. Resolve `scripts/` from the directory containing this `SKILL.md`, even if that directory is hidden, and set `WELCOME_DIR` to that directory's absolute path in the same shell call as the resolver:

WELCOME_DIR='<absolute path of the directory containing this SKILL.md>'

Every command below runs after the resolver and that line, in one shell call. Type the arguments exactly as shown: the shell expands `"$HOME"` and the other variables, and the scripts take those values from their arguments. If a script is missing, tell the user the installed Ouroboros skill files are incomplete and that reinstalling or updating Ouroboros restores them; do not reconstruct the program.

Pre-Check: Already Completed?

Run the readiness check:

ouroboros_python - precheck "$HOME" "${CODEX_HOME:-$HOME/.codex}" "${SETUP_READY:-}" "${CODEX_READY:-}" "${LEGACY_CODEX_MODEL_MIGRATION_REQUIRED:-}" < "$WELCOME_DIR/scripts/welcome_state.py" || printf 'completed= setup= codex= migration=\n'

It prints one line, `completed=... setup=... codex=... migration=...` (the fallback is the line it printed when no Python 3.12+ or uv is available). `completed` is the completion marker `WELCOME_COMPLETED` (legacy `welcomeShown: true` also counts). `setup`, `codex` and `migration` are `true` when `SETUP_READY`, `CODEX_READY` and `LEGACY_CODEX_MODEL_MIGRATION_REQUIRED` hold; the sections below use those names.

Before honoring that completion marker, determine whether setup is ready for the active runtime. A previously completed welcome must never hide the setup gate from a user who chose **나중에** or whose setup was later removed.

Claude Code is ready when `~/.ouroboros/config.yaml` has `orchestrator.runtime_backend` in `{claude, claude_mcp}` and `llm.backend: claude`. The marketplace plugin owns its MCP registration, so host-owned `~/.claude/mcp.json` is never part of readiness.

If `SETUP_READY` is not true, check Codex. It is ready when both backends are `codex`, the Codex CLI (`OUROBOROS_CODEX_CLI_PATH`, else `orchestrator.codex_cli_path`, else `codex` on PATH) is runnable, and `mcp_servers\.ouroboros` in `$CODEX_HOME/config.toml` (any TOML key spelling) has a runnable `command` or a non-blank `url`.

Legacy Codex Model Migration

Older configurations saved `gpt-5` into all four stage-model fields. That is now an explicit pin that stops Codex App/CLI model changes from taking effect. Never rewrite a possible user pin silently. When Codex is ready, the Pre-Check's `migration` field detects that exact legacy shape (or an interrupted migration) once.

If `CODEX_READY` and `LEGACY_CODEX_MODEL_MIGRATION_REQUIRED` are both true, ask "현재 설정은 모든 단계에서 gpt-5를 고정해 두고 있어요. Codex에서 선택한 모델을 자동으로 사용하도록 바꿀까요?" (header `모델 설정`) with these options:

  • **Codex 선택으로 전환하기 (권장)**: App이나 CLI에서 바꾼 모델을 모든 단계가 자동으로 따라가요.

Atomically rewrite the four pins:

ouroboros_python - "$HOME/.ouroboros/config.yaml" < "$WELCOME_DIR/scripts/migrate_codex_models.py"

`default` sends no model pin to Codex; it is not a model named "default". Confirm the rewrite succeeded before recording the decision. An interrupted rewrite leaves a partial `gpt-5`/`default` state that the next check offers again.

  • **gpt-5 고정 유지하기**: 지금처럼 모든 단계를 gpt-5로 계속 실행해요. Do not

change `config.yaml`.

For either choice, merge exactly one `codexModelMigration` marker into `~/.ouroboros/prefs.json`, keeping existing keys:

ouroboros_python - "automatic-v1" < "$WELCOME_DIR/scripts/record_codex_model_migration.py"

Pass `kept-gpt-5-v1` instead of `automatic-v1` for the keep choice. If welcome was already completed, confirm briefly and exit; do not also ask the generic welcome question.

Routing After the Pre-Check

  • **Completed, `SETUP_READY` or `CODEX_READY` true, no `--force`**: ask

"Ouroboros welcome was already completed on $WELCOME_COMPLETED. What w

Read more
@q00
Ships withouroboros

Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode, Copilot, Kiro and more.

6.4k26 skills22 agents1 MCP
Get the whole plugin, auto-invoked

Stars on GitHub

Momentum

stars in total
6.4k
Star history of Q00/ouroboros on GitHub, a chart by star-history.com

Other skills on ouroboros.

threat-model
Auto-invoked

threat-model

Build a threat model for a target codebase. Three modes: "interview" walks an application owner through the four-question…

@q00@q00Install Skill
triage
Auto-invoked

triage

Triage a batch of raw security findings. Verify each is real,

@q00@q00Install Skill
vuln-scan
Auto-invoked

vuln-scan

Static source-code vulnerability scan. Reads a target directory (and THREAT_MODEL.md if present), spawns parallel review…

@q00@q00Install Skill
auto
Auto-invoked

auto

Use when the work spans several files or replaces a framework, language, auth, storage, or API layer (rewrites and migrations…

@q00@q00Install Skill
brownfield
Auto-invoked

brownfield

Scan and manage brownfield repository/worktree defaults for interviews

@q00@q00Install Skill

More skills from other plugins.

1password

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

clawdis2w393k
@steipete@steipeteInstall Skill
computer-use

computer-use

Drives the GUI of a visible local app window through `orca computer`: accessibility tree, clicks, typing, menus, dialogs, and…

orca2w111k
@stablyai@stablyaiInstall Skill
agentmail

agentmail

Use your assigned AgentMail inbox to read email tasks, explicitly send or reply, and check delivery. Provided automatically by…

paperclip13d109k
@paperclipai@paperclipaiInstall Skill
adr-create

adr-create

Create a new Architecture Decision Record with sequential numbering and AgentDB registration

@ruvnet@ruvnetInstall Skill

Questions about welcome.

Which coding agents can use welcome?
welcome installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.