$npx -y skills add aviflombaum/claude-code-in-avinyc --skill bootstrapBootstrap Warp terminal configuration for Rails projects. Creates launch configurations with colored tabs for dev server, Claude, shell, and more. This skill should be used when setting up Warp for a Rails project. Triggers on "setup warp", "configure warp", "warp rails", "warp b
| 1 | # Warp Rails Bootstrap |
| 2 | |
| 3 | Configure Warp terminal for optimal Rails development with colored tabs. |
| 4 | |
| 5 | ## Critical Rules |
| 6 | |
| 7 | **READ THESE FIRST. VIOLATIONS WILL BREAK THE CONFIG.** |
| 8 | |
| 9 | 1. **MUST use AskUserQuestion** - Do NOT generate the config until user selects their tabs |
| 10 | 2. **MUST use `bin/dev`** - If `bin/dev` exists, use it. Do NOT parse Procfile.dev for individual commands |
| 11 | 3. **MUST use lowercase color names** - Only valid: `red`, `green`, `yellow`, `blue`, `magenta`, `cyan` |
| 12 | 4. **MUST use `exec:` for commands** - Format: `- exec: bin/dev` NOT `- "bin/dev"` |
| 13 | 5. **MUST use absolute paths** - Never use `~` or relative paths in `cwd` field |
| 14 | 6. **MUST start YAML with `---`** - The document separator is required |
| 15 | 7. **MUST read reference docs** - Before generating YAML, read @./references/launch-config-schema.md |
| 16 | |
| 17 | ## Workflow |
| 18 | |
| 19 | Execute these steps IN ORDER. Do not skip steps. |
| 20 | |
| 21 | ### Step 1: Verify Rails Project |
| 22 | |
| 23 | Run this command: |
| 24 | ```bash |
| 25 | test -f config/application.rb && echo "RAILS PROJECT" || echo "NOT RAILS" |
| 26 | ``` |
| 27 | |
| 28 | If NOT RAILS, stop and tell user to run from a Rails directory. |
| 29 | |
| 30 | ### Step 2: Gather Project Context |
| 31 | |
| 32 | Run these commands and store the results: |
| 33 | |
| 34 | ```bash |
| 35 | # Get absolute path (REQUIRED for cwd) |
| 36 | pwd |
| 37 | |
| 38 | # Get project name from directory |
| 39 | basename "$(pwd)" |
| 40 | |
| 41 | # Check for bin/dev |
| 42 | test -f bin/dev && echo "HAS_BIN_DEV=true" || echo "HAS_BIN_DEV=false" |
| 43 | |
| 44 | # Check for background job processor |
| 45 | grep -l "sidekiq\|good_job\|solid_queue" Gemfile 2>/dev/null && echo "HAS_JOBS=true" || echo "HAS_JOBS=false" |
| 46 | ``` |
| 47 | |
| 48 | **IMPORTANT:** |
| 49 | - If `HAS_BIN_DEV=true`, the dev command is `bin/dev`. Period. Do NOT look inside Procfile.dev. |
| 50 | - If `HAS_BIN_DEV=false`, the dev command is `bin/rails server`. |
| 51 | |
| 52 | ### Step 3: STOP - Ask Tab Configuration |
| 53 | |
| 54 | **You MUST use AskUserQuestion here. Do NOT proceed until user responds.** |
| 55 | |
| 56 | Ask: "Which tabs do you want in your Warp launch configuration?" |
| 57 | |
| 58 | Use multi-select with these options: |
| 59 | |
| 60 | | Label | Description | |
| 61 | |-------|-------------| |
| 62 | | Server (green) | Run dev server (bin/dev or rails server) | |
| 63 | | Claude (blue) | Start Claude Code session | |
| 64 | | Shell (yellow) | Empty terminal for commands | |
| 65 | | Console (magenta) | Rails console | |
| 66 | | Logs (cyan) | Tail log/development.log | |
| 67 | |
| 68 | If HAS_JOBS=true, also include: |
| 69 | | Jobs (red) | Background job processor | |
| 70 | |
| 71 | **WAIT FOR USER RESPONSE BEFORE CONTINUING.** |
| 72 | |
| 73 | ### Step 4: Read Reference Documentation |
| 74 | |
| 75 | **Before writing ANY YAML, read the schema reference:** |
| 76 | |
| 77 | Read @./references/launch-config-schema.md |
| 78 | |
| 79 | This ensures you use the correct format. |
| 80 | |
| 81 | ### Step 5: Generate Launch Configuration |
| 82 | |
| 83 | Create the launch configuration file. |
| 84 | |
| 85 | **File location:** `~/.warp/launch_configurations/{project-name}.yaml` |
| 86 | |
| 87 | **EXACT FORMAT TO USE:** |
| 88 | |
| 89 | ```yaml |
| 90 | --- |
| 91 | name: {project-name} |
| 92 | windows: |
| 93 | - tabs: |
| 94 | - title: Server |
| 95 | color: green |
| 96 | layout: |
| 97 | cwd: {ABSOLUTE_PATH_FROM_PWD} |
| 98 | commands: |
| 99 | - exec: bin/dev |
| 100 | - title: Claude |
| 101 | color: blue |
| 102 | layout: |
| 103 | cwd: {ABSOLUTE_PATH_FROM_PWD} |
| 104 | commands: |
| 105 | - exec: claude |
| 106 | - title: Shell |
| 107 | color: yellow |
| 108 | layout: |
| 109 | cwd: {ABSOLUTE_PATH_FROM_PWD} |
| 110 | ``` |
| 111 | |
| 112 | **FORMAT RULES:** |
| 113 | - File MUST start with `---` (YAML document separator) |
| 114 | - `color` MUST be lowercase: `green`, `blue`, `yellow`, `magenta`, `cyan`, `red` |
| 115 | - `color` MUST NOT be capitalized or an object with r/g/b values |
| 116 | - `commands` MUST use `exec:` prefix: `- exec: bin/dev` |
| 117 | - `commands` MUST NOT be plain strings like `- "bin/dev"` |
| 118 | - `cwd` MUST be the absolute path from `pwd` command (no quotes needed) |
| 119 | - `cwd` MUST NOT use `~` or relative paths |
| 120 | |
| 121 | ### Step 6: Display Summary |
| 122 | |
| 123 | Show the user what was created: |
| 124 | |
| 125 | ``` |
| 126 | Warp launch configuration created for {project-name}! |
| 127 | |
| 128 | Location: ~/.warp/launch_configurations/{project-name}.yaml |
| 129 | |
| 130 | How to use: |
| 131 | Keyboard: Ctrl-Cmd-L → select "{project-name}" |
| 132 | Direct URL: warp://launch/{project-name}.yaml |
| 133 | |
| 134 | Tabs configured: |
| 135 | {list each tab with color and command} |
| 136 | ``` |
| 137 | |
| 138 | ## Common Mistakes to Avoid |
| 139 | |
| 140 | | Wrong | Right | |
| 141 | |-------|-------| |
| 142 | | `color: Green` | `color: green` | |
| 143 | | `color: { r: 34, g: 197, b: 94 }` | `color: green` | |
| 144 | | `commands: ["bin/dev"]` | `commands: [- exec: bin/dev]` | |
| 145 | | `cwd: ~/project` | `cwd: /Users/avi/project` | |
| 146 | | `cwd: .` | `cwd: /Users/avi/project` | |
| 147 | | Missing `---` at start | Start file with `---` | |
| 148 | | Parsing Procfile.dev for commands | Just use `bin/dev` | |
| 149 | | Skipping AskUserQuestion | MUST ask and wait for response | |
| 150 | |
| 151 | ## Reference Files |
| 152 | |
| 153 | - @./references/launch-config-schema.md - Launch configuration YAML format |