Skip to content
Back to skills

Setup

ASecurity

Initial setup workflow — verify CLI installations, check MCP connections, configure language and agent-CLI mapping

  • 223 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 19, 2026
developmentgoshellbashgitapifrontendbackend

Works with

  • cli
  • api
  • mcp

Security analysis

A92/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro shows the line behind each finding and how to fix it

Scanned September 19, 2026

npx -y skills add first-fluke/fullstack-starter --skill setup --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Setup?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Setup
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/first-fluke-setup-fullstack-starter/badge)](https://www.skillsdirectory.com/skills/first-fluke-setup-fullstack-starter)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
description: Initial setup workflow — verify CLI installations, check MCP connections, configure language and agent-CLI mapping
---

# MANDATORY RULES — VIOLATION IS FORBIDDEN

- **Response language follows `language` setting in `.agents/config/user-preferences.yaml` if configured.**
- **NEVER skip steps.** Execute from Step 1 in order.
- **Read configuration files BEFORE making changes.**

---

> **Vendor note:** This workflow executes inline (no subagent spawning). All vendors use their native shell and file tools for CLI detection and configuration.

---

## Step 1: Language Settings

1. Check if `.agents/config/user-preferences.yaml` exists
2. If not:
   - Ask user for preferred language (ko, en, ja, zh, ...)
   - Create default configuration file
3. If exists:
   - Display current language setting
   - Ask if user wants to change

---

## Step 2: CLI Installation Status

Check each CLI installation:

```bash
which gemini && gemini --version
which claude && claude --version
which codex && codex --version
```

Display results:

```
🔍 CLI Installation Status
┌─────────┬───────────┬─────────────┐
│ CLI     │ Status    │ Version     │
├─────────┼───────────┼─────────────┤
│ gemini  │ ✅ Installed │ v2.1.0   │
│ claude  │ ✅ Installed │ v1.0.30  │
│ codex   │ ❌ Not Found │ -        │
└─────────┴───────────┴─────────────┘
```

Provide installation guide for missing CLIs:

- **gemini**: `npm install -g @google/gemini-cli`
- **claude**: `npm install -g @anthropic-ai/claude-code`
- **codex**: `npm install -g @openai/codex-cli`

---

## Step 3: MCP Connection Status

1. Check `.agents/mcp.json` existence and configuration
2. Check MCP settings for each CLI:
   - Gemini CLI: `~/.gemini/settings.json`
   - Claude CLI: `~/.claude.json` or `--mcp-config`
   - Codex CLI: `~/.codex/config.toml`
   - Antigravity IDE: `~/.gemini/antigravity/mcp_config.json`
3. Test Serena MCP connection

Display results:

```
🔗 MCP Connection Status
┌─────────────────┬────────────┬─────────────────────┐
│ Environment     │ MCP Config │ Server              │
├─────────────────┼────────────┼─────────────────────┤
│ gemini CLI      │ ✅ Set     │ serena              │
│ claude CLI      │ ✅ Set     │ serena              │
│ Antigravity IDE │ ⚠️ Check   │ see Step 3.1        │
│ codex CLI       │ ❌ Not Set │ -                   │
└─────────────────┴────────────┴─────────────────────┘
```

For missing MCP settings:

- Display configuration instructions
- Offer automatic setup option

---

## Step 3.1: Serena MCP Configuration (Optional)

> **Ask the user**: "Do you use Serena MCP server? (y/n)"
> Skip this step if user answers "no".

### Option A: Command Mode (Simple)

Serena runs as a subprocess for each session. No separate server needed.

**Gemini CLI** (`~/.gemini/settings.json`):

```json
{
  "mcpServers": {
    "serena": {
      "command": "uv",
      "args": ["run", "serena", "--project", "/path/to/your/project"]
    }
  }
}
```

**Antigravity IDE** (`~/.gemini/antigravity/mcp_config.json`):

```json
{
  "mcpServers": {
    "serena": {
      "command": "uv",
      "args": ["run", "serena", "--project", "/path/to/your/project"],
      "disabled": false
    }
  }
}
```

### Option B: SSE Mode (Shared Server)

Serena runs as a shared SSE server. Multiple sessions can share one server instance.

**1. Start Serena server:**

```bash
serena-mcp-server --port 12341
```

**2. Gemini CLI** (`~/.gemini/settings.json`):

```json
{
  "mcpServers": {
    "serena": {
      "url": "http://localhost:12341/sse"
    }
  }
}
```

**3. Antigravity IDE** — requires bridge:

> **Important**: Antigravity IDE doesn't support SSE directly.
> You need the `bridge` command to connect.

**Configure** (`~/.gemini/antigravity/mcp_config.json`):

```json
{
  "mcpServers": {
    "serena": {
      "command": "npx",
      "args": ["-y", "oh-my-agent@latest", "bridge", "http://localhost:12341/sse"],
      "disabled": false
    }
  }
}
```

**Bridge Architecture:**

```
┌─────────────────┐     stdio      ┌──────────────────┐     HTTP/SSE     ┌─────────────────┐
│ Antigravity IDE │ ◄────────────► │  oh-my-ag bridge │ ◄──────────────► │ Serena SSE      │
└─────────────────┘                └──────────────────┘                  └─────────────────┘
                                                                          (localhost:12341)
```

### Comparison

| Mode    | Memory Usage | Setup Complexity | Multiple Sessions |
|---------|--------------|------------------|-------------------|
| Command | Higher       | Simple           | Each has own process |
| SSE     | Lower        | Requires server  | Share one server |

---

## Step 4: Agent-CLI Mapping

1. Display current mapping
2. Ask if user wants to change:

   ```
   Current Agent-CLI Mapping:
   ┌──────────┬─────────┐
   │ Agent    │ CLI     │
   ├──────────┼─────────┤
   │ frontend │ gemini  │
   │ backend  │ gemini  │
   │ mobile   │ gemini  │
   │ pm       │ gemini  │
   │ qa       │ gemini  │
   │ debug    │ gemini  │
   └──────────┴─────────┘

   Do you want to change? (e.g., "backend to codex", "pm to claude")
   ```

3. Update `.agents/config/user-preferences.yaml` if changes requested

---

## Step 5: Setup Complete Summary

```
✅ Setup Complete!

📝 Configuration Summary:
- Response Language: English (en)
- Timezone: UTC
- Installed CLIs: gemini ✅, claude ✅, codex ❌
- MCP Status: Configured

📋 Agent-CLI Mapping:
- frontend → gemini
- backend  → gemini
- mobile   → gemini
- pm       → gemini
- qa       → gemini
- debug    → gemini

🚀 Get Started:
- /plan: Create project plan
- /orchestrate: Automated multi-agent execution
- /coordinate: Interactive multi-agent coordination
```

If Antigravity IDE with SSE mode:

```
💡 For Antigravity IDE (SSE mode):
- Start Serena server: serena-mcp-server --port 12341
- Restart IDE to apply changes
```

---

## Step 6: Ask About Starring Repository

First, check if `gh` CLI is available and authenticated:

```bash
gh auth status &>/dev/null
```

### If gh is available and authenticated

**Before prompting, check if the repository is already starred:**

```bash
gh api user/starred/first-fluke/oh-my-ag &>/dev/null
```

**If already starred (exit code 0):**

- Skip the prompt entirely

**If NOT starred (exit code non-zero):**

> **Ask the user**: "If you're enjoying oh-my-agent, would you like to support the project by starring it on GitHub?"
>
> **Options:**
>
> 1. Yes, star it!
> 2. Maybe later

If user chooses "Yes, star it!":

```bash
gh api -X PUT /user/starred/first-fluke/oh-my-ag 2>/dev/null && echo "Thanks for starring! ⭐" || true
```

**Note:** Fail silently if the API call doesn't work - never block setup completion.

### If gh is NOT available or not authenticated

```bash
echo ""
echo "If you enjoy oh-my-agent, consider starring the repo:"
echo "  https://github.com/first-fluke/oh-my-ag"
echo ""
```

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…