Drupalorg Issue Search
mglaman/drupalorg-cli
Search for Drupal.org issues by keyword. An agent skill from mglaman/drupalorg-cli.
Interactive onboarding for the ralph-to-ralph autonomous product cloner.
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboard --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .claude/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .claude/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboardType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .agents/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .agents/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .cursor/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .cursor/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/namuh-eng/ralph-to-ralph.git --path .claude/skills/ralph-to-ralph-onboard--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .gemini/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .gemini/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboardInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .github/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .github/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install namuh-eng/ralph-to-ralph ralph-to-ralph-onboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/namuh-eng/ralph-to-ralph.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/ralph-to-ralph-onboard .opencode/skills/ralph-to-ralph-onboard && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ralph-to-ralph-onboard" agent skill from https://github.com/namuh-eng/ralph-to-ralph/tree/main/.claude/skills/ralph-to-ralph-onboard into .opencode/skills/ralph-to-ralph-onboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ralph-to-ralph-onboard", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ralph-to-ralph-onboardInteractive onboarding for the ralph-to-ralph autonomous product cloner.
Ralph To Ralph Onboard is an agent skill from namuh-eng/ralph-to-ralph. Interactive onboarding for the ralph-to-ralph autonomous product cloner. Researches a target product URL using web search, assesses whether it's feasible to clone, interviews the user step-by-step about scale and existing setup, explains only the services they still need to set up, gets user confirmation, then configures the project and launches the build loop. Use this skill whenever the user wants to clone a product, mentions "what should I build", "onboard", "set up ralph", "I want to clone X", or is starting…
Its SKILL.md is about 5.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 58 other files, including scripts and reference files (for example `references/onboard-prompt.md`, `scripts/setup-stack.sh` and `templates/go-chi/BUILD_GUIDE.md`).
It sits in Productivity & Automation, covering Web search. It works with Git. The repository describes itself as: Autonomous Product Cloning Loop — Give it any URL, it inspects, builds, tests, and deploys a working clone. The licence is Apache-2.0.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b756d3d. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Go and Shell, from the files we listed), which the agent can run.
Shell commands in SKILL.md call:
gitghvercelawsbashnodegcloudazdockerclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
resend.comconsole.cloud.google.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
ANTHROPIC_API_KEYCLOUDFLARE_API_TOKENAUTH_GOOGLE_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ralph To Ralph Onboard loads about 5.6k tokens when it runs, and up to ~5.6k if it reads all its reference files. Until then it costs about 165 tokens; SKILL.md has 2,711 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found patterns that need a careful read before installing.
| Neon | Check `.env` for `DATABASE_URL` containing `neon.tech` | Key exists and is non-empty |clone calls Claude at runtime) | Check `.env` for `ANTHROPIC_API_KEY` | Key exists and is non-empty || Cloudflare | Check `.env` for `CLOUDFLARE_API_TOKEN` | Key exists and is non-empty || Google OAuth | Check `.env` for `AUTH_GOOGLE_ID` | Key exists and is non-empty |ID` + `AUTH_GOOGLE_SECRET` are found in `.env`, perform these additional checks:✓ Neon — DATABASE_URL found in .env> `✗ Anthropic API key — not found in .env` (only required if your clone calls Claude at runtime — not for the build loo`ANTHROPIC_API_KEY=sk-ant-...` to your `.env` file. Get a key at console.anthropic.com.**Note for the agent:** Do NOT tell the user the build loop needs `ANTHROPIC_API_KEY`. The watchdog calls the `claude` CAnd write the email to `.env` (gitignored, never committed):Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from namuh-eng/ralph-to-ralph at commit b756d3d, republished under its Apache-2.0 licence (© namuh-eng). 2,711 words, ~5,640 tokens.
.claude/skills/ralph-to-ralph-onboard/SKILL.md (or your agent's skills folder). This skill also uses 49 other files; get the full folder from GitHub.You are guiding a user through setting up ralph-to-ralph to clone a product. Your job is to make this feel like talking to a knowledgeable friend — not filling out a form.
Be conversational. Explain things in plain English. Ask one question at a time. Wait for the answer before asking the next one.
Before asking anything, run this check silently using the Bash tool:
git remote get-url origin 2>/dev/null || echo ""If the remote URL contains jaeyunha/ralph-to-ralph or namuh-eng/ralph-to-ralph, the user cloned the template directly instead of forking. Prompt them:
"Before we start — it looks like you cloned the ralph-to-ralph repo directly. To keep your project separate, you should reinitialize git with a clean history. Want me to do that now? (Your files won't change — just the git history.)"
If they say yes, run:
rm -rf .git
git init -q
git add .
git -c user.email="user@localhost" -c user.name="User" commit -q -m "init: start project from ralph-to-ralph" 2>/dev/null \
|| git commit -q -m "init: start project from ralph-to-ralph"Then tell them: "Done — clean history. You'll want to create a new repo on GitHub and run git remote add origin YOUR_REPO_URL once we're set up."
If they say no, continue without reinitializing.
If the remote is empty (degit user) or already points to their own repo, skip this phase entirely.
Ask: "What product do you want to clone? Give me the URL."
If they give you just a domain (e.g. resend.com), treat it as https://resend.com.
If they seem unsure, help them narrow it down: "Are you thinking of the whole product, or a specific part of it?"
Use WebSearch and WebFetch to learn about the target. Do this silently before asking any more questions — come back informed.
Before deep research, find where the product's docs actually live. They're often on a different subdomain:
"{product name}" developer documentation or "{product name}" API docsdocs.{domain}, developer.{domain}, developers.{domain}{url}/docs, {url}/documentation, {url}/llms.txtIf you find docs on a different subdomain (e.g. docs.stripe.com for stripe.com), note it — you'll save it as docsUrl in ralph-config.json during Phase 7. The doc scraper in the inspect phase uses this to target the correct site directly.
Look for:
Good sources in order:
{docsUrl or url}/llms.txt — LLM-optimized docs if they existstackshare.io/{name})Present what you found before asking anything else.
What this is: [1-2 sentence plain English description]
Documentation: [discovered docs URL, e.g. "I found their docs at docs.stripe.com"]
"Their developer docs live at
docs.stripe.com— I'll use this for the doc scraper. Sound right?"
docsUrl in ralph-config.json during Phase 7.Features this clone will have:
Complexity: Simple / Medium / Complex — one-line reason (affects loop iterations, not scope)
If the product is very large (e.g. "clone Notion"), acknowledge the scope but commit to building all of it.
After presenting the assessment, interview the user one question at a time. Don't ask all of these at once — ask, wait for the answer, then ask the next.
Ask something like:
"Before I walk you through the setup — what's this for? Just pick the closest one:
- Personal / hobby — just me, low traffic, exploring the idea
- Small team — a few people, might grow
- Production / commercial — real users, needs to be reliable"
Their answer changes the deployment target recommendation, how much you explain about ops, and which services are worth setting up properly vs. faking.
If they pick 1 (Personal/hobby), offer the beginner fast track:
"Since this is personal, want me to set things up with the simplest supported default template first?
- Yes, keep it simple — use the current default template so we can get building quickly
- Let me choose the stack — I'll ask more questions about language and architecture"
If they pick "Yes, keep it simple":
language: "typescript"
stackProfile: "dashboard-app"
framework: "nextjs"
database: "postgres"
cloudProvider: "vercel"
deploymentTier: "personal"
dbProvider: "neon"
authMode: "api-key"
browserAgent: "ever"
skipDeploy: falseIf they pick "Let me choose", or picked scale 2 or 3, continue with the full interview below.
Ask:
"Will anyone other than you use this clone?
- Just me — personal or solo use (simpler: API key, no login/signup)
- Multiple users — team or public (full auth with login/signup)"
Record their answer as authMode:
authMode: "api-key"authMode: "better-auth"This determines how the build agent implements authentication. Save it to ralph-config.json.
If the user didn't take the beginner fast track, ask about their preferred language:
"What language do you want to build in?
- TypeScript — broadest current template support, great default for web apps
- Go — great for APIs and backend services (chi, echo)
- Python — good for data-heavy or AI products (FastAPI, Django)
- Rust — for performance-critical services (Axum, Actix)
- Other — tell me what you want"
Record as language in ralph-config.json. Default to "typescript" if unsure.
"Based on what I found about [target product], I'd recommend the [profile] setup. Here's why: [one sentence].
But you can override — which fits best?
- API service — the target is mainly an API (like Stripe, Twilio, Resend)
- Dashboard app — it's a web app with a UI (like analytics, admin panels, CRM)
- Platform — it's infrastructure (like Vercel, Railway, Supabase)
- Content app — content-focused (like a CMS, docs site, blog platform)
- Real-time app — live features (like chat, collaboration, live dashboards)"
Record as stackProfile in ralph-config.json.
If language is not typescript (e.g., Go, Python, Rust), and the target product has a UI, ask:
"Since [target] has a web UI, what do you want for the frontend?
- Default web frontend — use the currently supported frontend path
- None — API-only, no frontend needed
- Other — tell me what you want"
Record as frontend in ralph-config.json. If the language is typescript, skip this — the frontend framework is the same as the backend.
Record these values in memory. Do not write ralph-config.json or run setup-stack.sh here — Phase 7 handles both after research + final confirmation. Writing early produces incomplete config (missing setup section, services, docsUrl, etc.) and scaffolds the wrong stack if the user changes their mind later.
Based on which services the clone will need (from your Phase 2 research), ask them to tell you what they already have. Don't list everything — only ask about the ones that actually apply to this product.
Frame it like:
"Quick check — which of these do you already have set up? Just say the numbers of the ones you have, or 'none':
- Vercel CLI (
vercel whoamiworks in your terminal)- AWS CLI (
aws sts get-caller-identityworks)- Neon account (neon.tech)
- [other service relevant to this product] ..."
Adjust the list to match this specific product. For example:
If they say they're missing something that might confuse them (e.g. they don't know what Neon is), explain it in one sentence before moving on. Don't do a full lecture — just enough to decide if they want to set it up now or later.
"Neon is serverless Postgres — it's the database. Free tier, takes 2 minutes to set up at neon.tech."
If they want to set it up now, wait for them. If they say "I'll do it later", note it as pending and continue.
Don't trust — verify. The user said they have things set up. Now actually check.
Run verification commands for each service they claimed is ready. Only check what's relevant to their chosen stack and the target product's needs.
| Service | Verification command | What "pass" looks like |
|---|---|---|
| Node.js | node -v | Version 20+ |
| Vercel CLI | vercel whoami | Returns a username (not an error) |
| AWS CLI | aws sts get-caller-identity | Returns account ID JSON |
| GCP CLI | gcloud auth print-identity-token | Returns a token |
| Azure CLI | az account show | Returns subscription JSON |
| Neon | Check .env for DATABASE_URL containing neon.tech | Key exists and is non-empty |
| Anthropic API key (only if clone calls Claude at runtime) | Check .env for ANTHROPIC_API_KEY | Key exists and is non-empty |
| Cloudflare | Check .env for CLOUDFLARE_API_TOKEN | Key exists and is non-empty |
| Ever CLI | ever --version | Returns a version |
| Docker | docker info | Daemon is running |
| Google OAuth | Check .env for AUTH_GOOGLE_ID | Key exists and is non-empty |
If the target product uses Google OAuth and AUTH_GOOGLE_ID + AUTH_GOOGLE_SECRET are found in .env, perform these additional checks:
Calculate the callback URL from BETTER_AUTH_URL (or NEXT_PUBLIC_APP_URL, or default http://localhost:3015):
{BETTER_AUTH_URL}/api/auth/callback/googleShow a checklist the user must complete in Google Cloud Console:
⚠ Google OAuth — MANUAL SETUP REQUIRED
Your keys are set, but you must configure these in Google Cloud Console:
1. Go to: https://console.cloud.google.com/apis/credentials
2. Click your OAuth 2.0 Client ID
3. Add these Authorized redirect URIs:
→ http://localhost:3015/api/auth/callback/google (dev)
→ https://your-domain.com/api/auth/callback/google (prod, when ready)
4. Go to OAuth consent screen → Publishing status
→ Set to "External" and click "Publish App"
→ OR: keep in "Testing" mode and add your Google test account
5. If using Ever CLI for QA: add the Google account that your
browser is already logged into as a test user. Ever CLI uses
the existing browser session — if that account isn't authorized,
automated OAuth flows will fail during QA.
Have you done this? (yes / I'll do it now / skip for later)Wait for confirmation before proceeding. If the user says "skip", add to pending with a warning that QA will fail on auth features.
Record in setup checks:
"google-oauth": { "envVar": "AUTH_GOOGLE_ID", "status": "pass", "detail": "Keys found. Redirect URI + consent screen: user confirmed." }Or if skipped:
"google-oauth": { "envVar": "AUTH_GOOGLE_ID", "status": "pending", "error": "Keys found but redirect URI and consent screen not verified — QA will fail on auth." }Verifying your setup...
✓ Node.js — v22.1.0
✓ Vercel CLI — logged in as ashley
✓ Neon — DATABASE_URL found in .env
✓ Ever CLI — v1.2.0For each failed check, provide a one-line fix immediately:
✗ Anthropic API key — not found in .env(only required if your clone calls Claude at runtime — not for the build loop) Fix: AddANTHROPIC_API_KEY=sk-ant-...to your.envfile. Get a key at console.anthropic.com.
Note for the agent: Do NOT tell the user the build loop needs ANTHROPIC_API_KEY. The watchdog calls the claude CLI in headless mode (claude -p ...), which authenticates via the user's Claude Code login/subscription, not via this env var. ANTHROPIC_API_KEY is only needed when the cloned product itself makes Anthropic API calls at runtime (e.g., the target product has AI features).
Then ask: "Want to fix these now, or continue and handle them later?"
Critical failures (must fix before proceeding):
Deferrable failures (can fix later, but flag them):
ANTHROPIC_API_KEY missing (only needed if clone has AI features)CLOUDFLARE_API_TOKEN missing (only needed for CDN/edge caching)If the user wants to fix now, wait for them and re-run the failed checks. If they want to continue, note the pending items — they'll appear in the summary.
After verification, write the results into ralph-config.json's setup section. Use the Bash tool to run a Python snippet that creates the setup object with verified, pending, and checks fields (see onboard-prompt.md Step 5 for the schema). This ensures the build loop knows what's ready and what's still pending.
If running via ralph/onboard.sh instead of the conversational skill, this write happens automatically after config generation.
Now walk through only the services they DON'T have set up yet. Skip anything that passed verification.
For each missing service:
Mark services they already have as ✓ ready — this makes the list feel like progress, not a wall of requirements.
Example format:
Services needed:
✓ Vercel CLI — already set up
✓ Neon — already have account
→ AWS SES — need to set up (15 min)
This is how we send emails. You'll need an AWS account and to verify your
sending domain. I'll automate the provisioning — you just need credentials.
→ Svix — need account (2 min)
Handles outbound webhooks to your users. Free tier at svix.com.Tailor the explanation depth to their scale answer:
By now you know their scale, what they have, and what they need. Just fill in the remaining gaps:
Clone name — suggest one. "I'll call it resend-clone — good with that?"
Deployment target — recommend based on their scale answer:
But always let them override.
Browser agent for inspect and QA:
Test account for auth — If the target product needs auth (most do):
"For testing auth-walled features, the build and QA agents need a Google account to log in with. Which Google account is your browser already logged into? (This is the email Ever CLI will use to complete OAuth flows automatically.)"
Store the provider in ralph-config.json:
"testAccount": { "provider": "google" }And write the email to .env (gitignored, never committed):
TEST_ACCOUNT_EMAIL=user@gmail.comDeploy after build? — "Should I deploy when done, or keep it local?"
Then show a summary:
--- Ready to build ---
Target: https://resend.com
Clone name: resend-clone
Scale: Personal / hobby
Stack: Vercel + Neon, current default web template
Verified: ✓ Vercel CLI, ✓ Neon, ✓ Node 22, ✓ Anthropic key
Pending: ✗ AWS SES (15 min), ✗ Svix (2 min)
Browser agent: Ever CLI
Deploy: Local only
Proceed? (yes / no / change something)The summary must reflect actual verification results from Phase 4.5 — show ✓ for verified services and ✗ for pending ones.
Do not proceed until the user explicitly confirms.
You already have the answers to Steps 1 and 2 from the conversation — use them directly, don't ask again.
Narrate progress so the user isn't staring at a blank screen:
Step 7a — Write the unified config. Use the Bash tool + a Python heredoc (see onboard-prompt.md Step 5 for the full schema) to write ralph-config.json with every field: targetUrl, targetName, cloudProvider, deploymentTier, language, stackProfile, framework, database, dbProvider, skipDeploy, authMode, docsUrl, browserAgent, services, sdk, research, setup.
Step 7b — Run the stack setup script. This copies the right template, appends Makefile targets, and installs dependencies. Must run AFTER ralph-config.json is written:
bash .claude/skills/ralph-to-ralph-onboard/scripts/setup-stack.shIf the script fails, show the error to the user and stop — do not proceed to the build loop with a half-installed stack. Verify .ralph-setup-done exists afterward.
Step 7c — Rewrite prompts and finish. Follow @references/onboard-prompt.md starting from Step 6 (Rewrite inspect-prompt.md) — Steps 3–5 have already been handled above.
Star prompt (optional, gated). Before launching the build loop, ask the user once if they'd like to star the repo. Only ask if gh is installed and gh auth status succeeds — otherwise skip silently. Use AskUserQuestion with default "No". On yes, run:
gh api --method PUT /user/starred/namuh-eng/ralph-to-ralph --silentNever block on this — if the call fails or gh isn't available, proceed straight to the build loop. This mirrors onboard.sh's maybe_prompt_to_star_repo.
When done, launch the build loop:
if command -v tmux &>/dev/null; then
tmux new-session -d -s ralph-loop -c "$(pwd)" \
"bash ./ralph/ralph-watchdog.sh '$TARGET_URL' 2>&1 | tee ralph-watchdog.log"
echo "Build loop started in tmux session 'ralph-loop'."
echo "Watch: tmux attach -t ralph-loop | Tail: tail -f ralph-watchdog.log"
else
echo "Run this in a new terminal tab:"
echo " ./ralph/ralph-watchdog.sh '$TARGET_URL'"
fiIf Ever CLI is required but not installed, show the install message before launching.
scripts/setup-stack.sh, verify it worked by checking .ralph-setup-done exists and the Makefile has real targets appended. If it fails, diagnose and fix manually.© namuh-eng, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 49 other files (scripts, references) in .claude/skills/ralph-to-ralph-onboard of namuh-eng/ralph-to-ralph.
Open the folder on GitHubat commit b756d3d
Ralph To Ralph Onboard next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Ralph To Ralph Onboard this skillnamuh-eng/ralph-to-ralph | 104 | — | ~5.6k | Automated safety check: Warn | Apache-2.0 | |
| Drupalorg Issue Searchmglaman/drupalorg-cli | 169 | — | ~956 | Automated safety check: Pass | None | |
| Creating GitHub Issues From Web Researchjeremylongshore/tons-of-skills-marketplace | 2.8k | — | ~981 | Automated safety check: Pass | MIT | |
| Dependency Watchtelegramdesktop/tdesktop | 33k | 1 repos | ~2.2k | Automated safety check: Pass | GPL-3.0 | |
| Web Searchjjyaoao/HelloAgents | 3.2k | 1 repos | ~5.6k | Automated safety check: Pass | MIT | |
| Local Web SearchuluckyXH/OpenMOSS | 1.3k | — | ~392 | Automated safety check: Notes | MIT |
mglaman/drupalorg-cli
Search for Drupal.org issues by keyword. An agent skill from mglaman/drupalorg-cli.
jeremylongshore/tons-of-skills-marketplace
Execute this skill enhances AI assistant's ability to conduct web research and translate findings into actionable github issues.
telegramdesktop/tdesktop
Audit Telegram Desktop dependencies on freshly fetched origin/dev for releases and security fixes, including upstream lag and backport candidates in patched forks.
jjyaoao/HelloAgents
Implement web search capabilities using the z-ai-web-dev-sdk.
uluckyXH/OpenMOSS
A skill your agent uses when the user asks for web search that should run via the local-160 Responses API with websearch tool (base URL like https://proxy.example.com, model gpt-5.2-codex(xhigh)).
AgibotTech/genie_sim
Provision and launch the Simulation Challenge baseline inference model end to end: clone the inference code from a given git repo/branch, download the checkpoints from ModelScope into the repo's…
Works with
Categories
Interactive onboarding for the ralph-to-ralph autonomous product cloner. Ralph To Ralph Onboard is an agent skill from namuh-eng/ralph-to-ralph. Interactive onboarding for the ralph-to-ralph autonomous product cloner.
Ralph To Ralph Onboard fits situations like: the user wants to clone a product; mentions what should I build; I want to clone X; is starting the ralph-to-ralph workflow.
Run `npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a claude-code`. Or copy the skill folder (.claude/skills/ralph-to-ralph-onboard in namuh-eng/ralph-to-ralph) into .claude/skills/ralph-to-ralph-onboard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a codex`. Or copy the skill folder (.claude/skills/ralph-to-ralph-onboard in namuh-eng/ralph-to-ralph) into .agents/skills/ralph-to-ralph-onboard in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add namuh-eng/ralph-to-ralph --skill ralph-to-ralph-onboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ralph-to-ralph-onboard, .gemini/skills/ralph-to-ralph-onboard, .github/skills/ralph-to-ralph-onboard and .opencode/skills/ralph-to-ralph-onboard in your project.
Going by SKILL.md and its folder, Ralph To Ralph Onboard needs Go and a shell for the scripts in its folder, the command-line tools its instructions call (git, gh, vercel, aws, bash and node) and credentials named ANTHROPIC_API_KEY, CLOUDFLARE_API_TOKEN and AUTH_GOOGLE_SECRET. Our summary lists: Node.js; A Bash shell; Docker; A credential in ANTHROPIC_API_KEY; A credential in CLOUDFLARE_API_TOKEN.
SKILL.md names 2 domains. In commands or code: resend.com and console.cloud.google.com; the agent is likely to contact these when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md flagged 1 warning(s): contains instruction-override wording (e.g. “without asking the user”). Read the flagged lines before installing; the check is not a guarantee either way. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Ralph To Ralph Onboard is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.6k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 9 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Ralph To Ralph Onboard: Drupalorg Issue Search (mglaman/drupalorg-cli, 169 stars), Creating GitHub Issues From Web Research (jeremylongshore/tons-of-skills-marketplace, 2.8k stars), Dependency Watch (telegramdesktop/tdesktop, 33k stars) and Web Search (jjyaoao/HelloAgents, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
namuh-eng (a GitHub organization) maintains it in namuh-eng/ralph-to-ralph, which has 104 GitHub stars. The repository was last updated on May 20, 2026.
Source: namuh-eng/ralph-to-ralph on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.