smithery/marcusgoll

internal-ralph

Internal ralph mode executor. Processes PRD backlog using Task subagents. Called by start-ralph, not user-invoked directly.

Installation

$ npx skills add smithery/marcusgoll --skill internal-ralph

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/marcusgoll · top by installs.

npx skills add smithery/marcusgoll

Browse all from smithery/marcusgoll

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version11.0.0
Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 3,527 B
  • docs SUMMARY.md 49 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Internal Ralph Mode (Max Subscription)

Overview

Internal Ralph processes a PRD backlog using Claude Code's built-in Task tool to spawn subagents. Each task gets fresh context while using the SAME Max subscription - no API key required.

How It Works

Main Session (You - Orchestrator)
    │
    ├── Read .deep/prd.json
    │
    ├── For each task where passes=false:
    │       │
    │       └── Spawn Task agent (subagent_type=general-purpose)
    │             ├── Agent implements task
    │             ├── Agent runs verification
    │             └── Agent returns result
    │
    ├── Update prd.json with result
    │
    └── Continue until all tasks pass or max iterations

Why This Works

External Ralph (broken) Internal Ralph (works)
Spawns new CLI process Uses Task tool subagents
-p flag = API mode Subagents = same session
Requires API key Uses Max subscription
External orchestration Internal orchestration

PRD Format

Create .deep/prd.json:

[
  {
    "id": "task-001",
    "story": "Description of what to build",
    "acceptance_criteria": [
      "Criterion 1",
      "Criterion 2"
    ],
    "priority": "high",
    "passes": false,
    "attempts": 0,
    "lastError": null
  }
]

Execution Protocol

Step 1: Read PRD

Read .deep/prd.json and identify next task where passes=false

Step 2: Spawn Task Agent

Use Task tool with:
- subagent_type: "general-purpose"
- description: "[task-id]: [brief description]"
- prompt: |
    You are executing a single task from a PRD backlog.

    TASK: [task story]

    ACCEPTANCE CRITERIA:
    [list criteria]

    INSTRUCTIONS:
    1. Implement the task to meet ALL acceptance criteria
    2. Run appropriate verification (tests, lint, types)
    3. Make a git commit if successful
    4. Report: TASK_PASSED or TASK_FAILED with details

    Work autonomously. Do not ask questions - make reasonable decisions.

Step 3: Process Result

  • If TASK_PASSED: Update prd.json with passes: true
  • If TASK_FAILED: Increment attempts, log error, try next task or retry

Step 4: Continue or Complete

  • If all tasks have passes: true: Output PROMISE_COMPLETE
  • If tasks remain: Go to Step 1
  • If max iterations reached: Output RALPH_TIMEOUT

Progress Tracking

Append to progress.txt after each task:

## [timestamp] - [task-id]
Status: PASSED/FAILED
Summary: [what was done]
---

Invocation

From Claude Code, say:

/internal-ralph

Or manually:

Run internal ralph mode on .deep/prd.json with max 10 iterations

Advantages Over External Ralph

  1. No API key needed - Uses Max subscription
  2. Fresh context per task - Task agents get clean slate
  3. No TTY issues - All internal to Claude Code
  4. Better error handling - Main session can retry/adjust
  5. Visible progress - See each task as it runs
  6. Can run in background - Use runinbackground: true

Parallel Execution (Advanced)

For independent tasks, spawn multiple agents simultaneously:

Launch Task agents for task-001, task-002, task-003 in parallel

This maximizes throughput while staying within Max subscription.