Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 133 additions & 0 deletions docs/docs/cli/github.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,133 @@
---
sidebar_position: 3
title: github
description: Interactive GitHub issue-to-code wizard with auto-detected tech stack and model selection
keywords: [cli, github, command, wizard, issue-to-code, interactive]
---

# ralph-starter github

Interactive wizard that guides you through implementing a GitHub issue in four steps: pick a repo, select an issue, choose your tech stack, and select a model.

## Synopsis

```bash
ralph-starter github [options]
```

## Interactive Steps

### Step 1: Repository

Enter a GitHub repository in any of these formats:

- `owner/repo` — e.g., `facebook/react`
- Full URL — `https://github.com/owner/repo`

The wizard validates the format before proceeding.

### Step 2: Issue Selection

Fetches open issues from the repository using the `gh` CLI and displays them as a numbered list. Pick the issue you want to implement.

Requirements:
- GitHub CLI (`gh`) must be installed and authenticated
- Repository must be accessible to your account

### Step 3: Tech Stack

Auto-detects your project's framework from `package.json` and shows it as the default. Detection logic:

| Dependency | Detected Stack |
|-----------|---------------|
| `next` | Next.js + TypeScript + Tailwind CSS |
| `astro` | Astro |
| `nuxt` | Nuxt + Vue + TypeScript |
| `svelte` or `@sveltejs/kit` | SvelteKit |
| `vue` | Vue + TypeScript |
| `react` + `tailwindcss` | React + TypeScript + Tailwind CSS |
| `react` (no tailwind) | React + TypeScript |

Additional options: Node.js + TypeScript, Python, or type a custom stack.

### Step 4: Model Selection

Shows available models based on your installed coding agents:

- **Claude Code installed**: Claude Opus 4.6 (recommended), Claude Sonnet 4.5
- **Codex installed**: o3, o4-mini
- **Neither detected**: Falls back to Claude Opus 4.6 and Claude Sonnet 4.5
- **Custom**: Enter any model ID (e.g., `claude-opus-4-6`)

## Options

| Option | Description | Default |
|--------|-------------|---------|
| `--commit` | Auto-commit changes after each iteration | `false` |
| `--validate` | Run validation (tests, lint, build) between iterations | `true` |
| `--max-iterations <n>` | Maximum loop iterations | auto-calculated |
| `--agent <name>` | Force a specific coding agent | auto-detected |

## Example Session

```bash
$ ralph-starter github

GitHub to Code
Build from GitHub issues in one command

? GitHub repository: acme/webapp
Fetching open issues from acme/webapp...

Select an issue:
1) #42: Add user authentication [feature, auth]
2) #38: Fix mobile navigation [bug, ui]
3) #35: Add dark mode toggle [enhancement]
4) #31: Improve test coverage [testing]

? Select issue (number): 1
Selected: #42 — Add user authentication

? Tech stack? Next.js + TypeScript + Tailwind CSS (Detected)

Which model?
1) Claude Opus 4.6 — maximum quality (Recommended)
2) Claude Sonnet 4.5 — fast + cost-effective
3) Custom model ID
? Select model (number): 1

Using: Claude Opus 4.6 — maximum quality (Recommended)

→ Fetching GitHub issue #42...
→ Loop 1/5: Generating auth module...
→ Loop 2/5: Adding tests and validation...
→ Validation passed: 12 tests, lint clean
✓ Done in 4m 18s | Cost: $0.38 | PR #87 created
```

## How It Works

The `github` command is a convenience wrapper around [`ralph-starter run`](/docs/cli/run). After collecting your inputs, it calls:

```bash
ralph-starter run "Using <stack>: Implement GitHub issue #<number>: <title>" \
--from github \
--project <owner/repo> \
--issue <number> \
--model <selected-model> \
--auto \
--validate
```

The `--auto` flag enables automatic mode so the wizard does not prompt for additional configuration. The `--validate` flag enables lint/build validation between iterations.

## Prerequisites

- **GitHub CLI** (`gh`): Install with `brew install gh` and authenticate with `gh auth login`
- **Repository access**: You must have read access to the target repository

## See Also

- [GitHub Source](/docs/sources/github) — Full GitHub integration reference (issues, PRs, files)
- [run](/docs/cli/run) — The underlying run command with all options
- [figma](/docs/sources/figma) — Figma design-to-code integration
1 change: 1 addition & 0 deletions docs/sidebars.ts
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ const sidebars: SidebarsConfig = {
items: [
'cli/run',
'cli/fix',
'cli/github',
'cli/init',
'cli/plan',
'cli/config',
Expand Down
54 changes: 48 additions & 6 deletions docs/static/ai-index.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"name": "ralph-starter - AI-Powered Autonomous Coding from Specs to Production",
"description": "Connect your tools like GitHub, Linear, and Notion. Fetch specs from anywhere and let AI coding agents build production-ready code automatically with autonomous loops.",
"url": "https://ralphstarter.ai",
"version": "1.0.0",
"generatedAt": "2026-02-13T21:19:43.300Z",
"version": "0.4.0",
Comment thread
rubenmarcus marked this conversation as resolved.
"generatedAt": "2026-03-05T00:00:00.000Z",
"summary": {
"purpose": "ralph-starter is an AI-powered CLI tool that fetches specs from tools like Figma, GitHub, Linear, and Notion, then runs autonomous AI coding loops to build production-ready code.",
"primaryUseCase": "Developers use ralph-starter to automate coding tasks by providing natural language specs or importing requirements from external tools.",
Expand All @@ -15,7 +15,12 @@
"Pull requirements from Notion",
"Run AI coding loops with Claude",
"Automatic git commits and PR creation",
"MCP server for Claude Desktop integration"
"MCP server for Claude Desktop integration",
"Visual validation with pixel-by-pixel Figma comparison",
"Interactive Figma wizard (ralph-starter figma)",
"Unified task management across GitHub & Linear",
"Cost threshold warnings with --max-cost flag",
"Auto-installed agent skills per tech stack"
]
},
"topics": [
Expand Down Expand Up @@ -66,6 +71,14 @@
"/docs/advanced/ralph-playbook",
"/docs/advanced/validation"
]
},
{
"name": "Visual Validation",
"description": "Three-layer pixel comparison pipeline: pixelmatch, LLM Vision, and strict gate for Figma design fidelity",
"entryPoints": [
"/docs/advanced/validation",
"/docs/sources/figma"
]
}
],
"categories": [
Expand Down Expand Up @@ -144,7 +157,7 @@
},
{
"name": "Cli",
"documentCount": 14,
"documentCount": 15,
Comment thread
rubenmarcus marked this conversation as resolved.
"documents": [
{
"title": "auth",
Expand Down Expand Up @@ -206,6 +219,21 @@
"credentials"
]
},
{
"title": "figma",
"description": "Interactive Figma-to-code wizard with auto-detected tech stack and model selection",
"url": "https://ralphstarter.ai/docs/sources/figma",
"markdownUrl": "https://ralphstarter.ai/docs/sources/figma.md",
"keywords": [
"cli",
"figma",
"command",
"wizard",
"design-to-code",
"interactive",
"visual validation"
]
},
{
"title": "fix",
"description": "Fix build errors, lint issues, or design problems",
Expand All @@ -220,6 +248,20 @@
"design"
]
},
{
"title": "github",
"description": "Interactive GitHub issue-to-code wizard with auto-detected tech stack and model selection",
"url": "https://ralphstarter.ai/docs/cli/github",
"markdownUrl": "https://ralphstarter.ai/docs/cli/github.md",
"keywords": [
"cli",
"github",
"command",
"wizard",
"issue-to-code",
"interactive"
]
},
{
"title": "init",
"description": "Initialize Ralph Playbook in a project",
Expand Down Expand Up @@ -653,8 +695,8 @@
"sitemap": "https://ralphstarter.ai/sitemap.xml"
},
"stats": {
"totalDocuments": 40,
"totalDocuments": 41,
Comment thread
rubenmarcus marked this conversation as resolved.
"totalCategories": 8,
"lastUpdated": "2026-02-13T21:19:43.300Z"
"lastUpdated": "2026-03-05T00:00:00.000Z"
}
}
2 changes: 2 additions & 0 deletions docs/static/llms.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ This file contains links to documentation sections following the llmstxt.org sta
- [auto](https://ralphstarter.ai/docs/cli/auto): Autonomous batch task processing from GitHub and Linear
- [check](https://ralphstarter.ai/docs/cli/check): Validate configuration and test LLM connection
- [config](https://ralphstarter.ai/docs/cli/config): Manage source configuration and credentials
- [figma](https://ralphstarter.ai/docs/sources/figma): Interactive Figma-to-code wizard with auto-detected tech stack, model selection, and visual validation
- [fix](https://ralphstarter.ai/docs/cli/fix): Fix build errors, lint issues, or design problems
- [github](https://ralphstarter.ai/docs/cli/github): Interactive GitHub issue-to-code wizard with auto-detected tech stack, issue selection, and model choice
- [init](https://ralphstarter.ai/docs/cli/init): Initialize Ralph Playbook in a project
- [integrations](https://ralphstarter.ai/docs/cli/integrations): Manage, test, and fetch data from integrations
- [plan](https://ralphstarter.ai/docs/cli/plan): Create implementation plan from specs
Expand Down
19 changes: 19 additions & 0 deletions src/cli.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import { checkCommand } from './commands/check.js';
import { configCommand } from './commands/config.js';
import { figmaCommand } from './commands/figma.js';
import { fixCommand } from './commands/fix.js';
import { githubCommand } from './commands/github.js';
import { initCommand } from './commands/init.js';
import { integrationsCommand } from './commands/integrations.js';
import { pauseCommand } from './commands/pause.js';
Expand Down Expand Up @@ -159,6 +160,24 @@ program
});
});

// ralph-starter github - GitHub issue to code wizard
program
.command('github')
.description('Build code from GitHub issues with an interactive wizard')
.option('--commit', 'Auto-commit changes')
.option('--validate', 'Run validation after each iteration', true)
.option('--no-validate', 'Skip validation')
.option('--max-iterations <n>', 'Maximum loop iterations')
.option('--agent <name>', 'Specify agent to use')
.action(async (options) => {
await githubCommand({
commit: options.commit,
validate: options.validate,
maxIterations: options.maxIterations ? parseInt(options.maxIterations, 10) : undefined,
agent: options.agent,
});
});

// ralph-starter init - Initialize Ralph in a project
program
.command('init')
Expand Down
Loading