conductor-setup/SKILL.md
Configure a Rails project to work with Conductor (parallel coding agents)
npx skillsauth add Shpigford/skills conductor-setupInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Set up this Rails project for Conductor, the Mac app for parallel coding agents.
Create conductor.json in the project root if it doesn't already exist:
{
"scripts": {
"setup": "bin/conductor-setup",
"run": "script/server"
}
}
Create bin/conductor-setup if it doesn't already exist:
#!/bin/bash
set -e
# Symlink .env from repo root (where secrets live, outside worktrees)
[ -f "$CONDUCTOR_ROOT_PATH/.env" ] && ln -sf "$CONDUCTOR_ROOT_PATH/.env" .env
# Symlink Rails master key
[ -f "$CONDUCTOR_ROOT_PATH/config/master.key" ] && ln -sf "$CONDUCTOR_ROOT_PATH/config/master.key" config/master.key
# Install dependencies
bundle install
npm install
Make it executable with chmod +x bin/conductor-setup.
Create the script directory if needed, then create script/server if it doesn't already exist:
#!/bin/bash
# === Port Configuration ===
export PORT=${CONDUCTOR_PORT:-3000}
export WEB_PORT=$PORT
export VITE_RUBY_PORT=$((PORT + 1000))
# === SSR Port (for Inertia SSR server) ===
export INERTIA_SSR_PORT=$((PORT + 100))
export INERTIA_SSR_URL="http://localhost:${INERTIA_SSR_PORT}"
# === Redis Isolation ===
if [ -n "$CONDUCTOR_WORKSPACE_NAME" ]; then
HASH=$(printf '%s' "$CONDUCTOR_WORKSPACE_NAME" | cksum | cut -d' ' -f1)
REDIS_DB=$((HASH % 16))
export REDIS_URL="redis://localhost:6379/${REDIS_DB}"
fi
exec bin/dev
Make it executable with chmod +x script/server.
For each of the following files, if they exist and contain Redis configuration, update them to use ENV.fetch('REDIS_URL', ...) or ENV['REDIS_URL'] with a fallback:
If this file exists and configures Redis, update it to use:
redis_url = ENV.fetch('REDIS_URL', 'redis://localhost:6379/0')
If this file exists, update the development adapter to use:
development:
adapter: redis
url: <%= ENV.fetch('REDIS_URL', 'redis://localhost:6379/1') %>
If this file configures Redis for caching, update to use:
config.cache_store = :redis_cache_store, { url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0') }
If this file exists and configures a Redis cache store, update to use:
Rack::Attack.cache.store = ActiveSupport::Cache::RedisCacheStore.new(url: ENV.fetch('REDIS_URL', 'redis://localhost:6379/0'))
If this file exists and configures SSR, ensure the SSR URL reads from the environment:
config.ssr_url = ENV.fetch('INERTIA_SSR_URL', 'http://localhost:13714')
If the project uses Inertia SSR with createServer, pass the port from the environment:
const port = Number(process.env.INERTIA_SSR_PORT) || 13714
createServer((page) =>
createInertiaApp({ ... }),
port,
)
script/ directory if it doesn't exist.After creating the files:
script/server to verify it starts without errorsENV['REDIS_URL'] or ENV.fetch('REDIS_URL', ...)development
Deep research before planning. Launches parallel agents to search docs, web, and codebase, then synthesizes findings into actionable context.
development
Review the current session and code changes for anything worth codifying in CLAUDE.md or README.md. Use before committing/opening a PR, or when the user asks "anything learned?", "anything to note?", "should we update CLAUDE.md?", "update the docs with what we learned", or similar.
devops
When the user wants to create or update a README.md file for a project. Also use when the user says "write readme," "create readme," "document this project," "project documentation," or asks for help with README.md. This skill creates absurdly thorough documentation covering local setup, architecture, and deployment.
development
Generate a branded social media image announcing a new feature or update. Analyzes git history, auto-detects brand from codebase (Tailwind, CSS vars, design tokens), replicates UI elements, and captures via Playwright. Use when the user wants to create an announcement image, says 'feature image,' 'announcement graphic,' 'social image for feature,' or wants to visually announce a code change.