xiaohongshu
xiaohongshu
ralph
Set up Ralph for autonomous feature development. Use when starting a new feature that Ralph will implement. Triggers on: ralph, set up ralph, start ralph, new ralph feature, ralph setup. Chats through the feature idea, creates tasks with dependencies, and sets up everything for Ralph to run.
Full skill instructions
Interactive feature planning that creates ralph-ready tasks with dependencies.
Two modes:
dependsOndependsOnAsk the user which mode they need:
Are you:
1. Starting a new feature (I'll help you plan and create tasks)
2. Using existing tasks (I'll set up Ralph to run them)
Start by asking the user about their feature. Don't assume - ASK:
What feature are you building?
Then ask clarifying questions:
Keep asking until you have enough detail to break it into tasks.
Each task must be completable in ONE Ralph iteration (~one context window).
Ralph spawns a fresh Amp instance per iteration with no memory of previous work. If a task is too big, the LLM runs out of context before finishing.
Rule of thumb: If you can't describe the change in 2-3 sentences, it's too big.
Tasks execute based on dependsOn. Earlier tasks must complete before dependent ones start.
Typical order:
Use dependsOn to express this:
Task 1: Schema (no dependencies)
Task 2: Server action (dependsOn: [task-1])
Task 3: UI component (dependsOn: [task-2])
Task 4: Tests (dependsOn: [task-3])
Parallel tasks that don't depend on each other can share the same dependency.
task_list create
title: "[Feature Name]"
description: "[One-line description of the feature]"
repoURL: "https://github.com/snarktank/untangle"
Save the returned task ID - you'll need it for subtasks.
task_list create
title: "[Task title - action-oriented]"
description: "[Detailed description with:
- What to implement
- Files to create/modify
- Acceptance criteria
- How to verify (typecheck, tests, browser)]"
parentID: "<parent-task-id>"
dependsOn: ["<previous-task-id>"] // omit for first task
repoURL: "https://github.com/snarktank/untangle"
Write descriptions that a future Ralph iteration can pick up without context:
Implement category name to ID mapping for expenses.
**What to do:**
- Create function mapExpenseCategoryNameToId(name, isChildExpense)
- Query item_category table with category_type filter
- Add alias mapping for common synonyms (rent → Rent or Mortgage)
**Files:**
- workflows/tools/upsert-expense.ts
**Acceptance criteria:**
- Function returns category ID for valid names
- Returns null for unknown categories
- npm run typecheck passes
**Notes:**
- Follow pattern from upsert-income.ts
- EXPENSE type for family, CHILD_EXPENSE for child
After creating all tasks, run the shared setup steps from "Final Setup (Required for Both Modes)" section.
This ensures:
scripts/ralph/parent-task-id.txtShow the user what was created:
✅ Ralph is ready!
**Parent task:** [title] (ID: [id])
**Subtasks:**
1. [Task 1 title] - no dependencies
2. [Task 2 title] - depends on #1
3. [Task 3 title] - depends on #2
...
**To run Ralph:**
```bash
./scripts/ralph/ralph.sh [max_iterations]
# or directly:
npx tsx scripts/ralph/ralph.ts [max_iterations]
To check status:
amp task list --parentID [parent-id] --limit 10
If the user already has tasks created, help them set up Ralph to run them.
Ask the user:
What's the parent task? You can give me:
- The task ID directly
- A search term and I'll find it
- Or say "list recent" to see recent tasks
To search for tasks (always use limit to avoid context overflow):
task_list list
repoURL: "https://github.com/snarktank/untangle"
limit: 10
Once you have the parent ID, check for subtasks (always use limit):
task_list list
parentID: "<parent-task-id>"
limit: 10
If no subtasks found, the parent task might BE the work (not a container). Ask:
This task has no subtasks. Is this:
1. A parent task with subtasks I should find differently?
2. The actual work task (I should create it as a parent with this as the first subtask)?
Review the subtasks and verify:
dependsOn set correctly?If dependencies are missing, offer to fix:
These tasks don't have dependencies set. Should I:
1. Add dependencies based on their order?
2. Leave them parallel (Ralph picks any ready task)?
Run the shared setup steps from "Final Setup (Required for Both Modes)" section below.
✅ Ralph is ready to use existing tasks!
**Parent task:** [title] (ID: [id])
**Status:**
- ✅ Completed: 3 tasks
- 🔄 Ready to work: 2 tasks
- ⏳ Blocked: 5 tasks (waiting on dependencies)
**Next task Ralph will pick:**
[Task title] - [brief description]
**To run Ralph:**
```bash
./scripts/ralph/ralph.sh [max_iterations]
# or directly:
npx tsx scripts/ralph/ralph.ts [max_iterations]
ALWAYS run these steps after creating tasks OR setting up existing tasks:
echo "<parent-task-id>" > scripts/ralph/parent-task-id.txt
Verify it was saved:
cat scripts/ralph/parent-task-id.txt
Read the current progress.txt:
cat scripts/ralph/progress.txt
Archive if:
Archive command:
DATE=$(date +%Y-%m-%d)
FEATURE="previous-feature-name-here"
mkdir -p scripts/ralph/archive/$DATE-$FEATURE
cp scripts/ralph/progress.txt scripts/ralph/archive/$DATE-$FEATURE/
echo "Archived to scripts/ralph/archive/$DATE-$FEATURE/"
Preserve useful Codebase Patterns from the previous run, then reset:
cat > scripts/ralph/progress.txt << 'EOF'
# Ralph Progress Log
Started: [current date]
## Codebase Patterns
[Copy any patterns from previous run that are still relevant]
---
EOF
# Confirm parent ID is saved
cat scripts/ralph/parent-task-id.txt
# Confirm progress.txt is reset
head -10 scripts/ralph/progress.txt
# List subtasks to confirm they exist
# (use task_list list with parentID)
Only after completing all 4 steps is Ralph ready to run.
Each task description MUST include verifiable acceptance criteria:
investorType column to investor table with default 'cold'"npm run typecheck passes
npm test passes
For functional testing (checking behavior, not appearance):
Use Chrome DevTools MCP with take_snapshot to read page content (NOT screenshots)
take_snapshot returns the a11y tree as text that Ralph can read and verifytake_screenshot returns images which Ralph cannot interpret for functional checksFor visual testing (checking appearance):
Use take_screenshot to capture and verify visual appearance
User: set up ralph for adding expense tracking to the legal agent
Assistant: What feature are you building?
User: I want Grace (our legal chat agent) to be able to create, update, and delete expenses when users mention them in conversation.
Assistant: Got it - an expense upsert tool for the legal agent. A few questions:
User: Follow upsert-income.ts. Yes family and child expenses (different tables). Yes list too. Mark APP_EXPENSES_ENTERED task complete.
Assistant: Perfect. Here's my proposed breakdown:
Does this look right? Any tasks to add or remove?
User: Looks good, create the tasks
Assistant: [Creates parent task, then subtasks with dependencies, saves parent-task-id.txt]
✅ Ralph is ready!
Parent task: Legal Agent Expense Upsert Tool (ID: task-abc123)
Subtasks: 14 tasks created with dependencies
To run: ./scripts/ralph/ralph.sh 20
When all subtasks are completed:
completed<promise>COMPLETE</promise>Important: Ralph uses limit: 5 when querying tasks to avoid context overflow. If you have many subtasks, they'll be processed over multiple iterations.
xiaohongshu
technical spec
product ux expert
database patterns
Conduct multi-agent task orchestration and workflow coordination.
Initialize project with Conductor artifacts (product definition,
Expert in web animations, transitions, and motion design using Framer Motion and CSS
Creates Mermaid and ASCII diagrams for flowcharts, architecture, ERDs, state machines, mindmaps, and more. Use when user mentions diagram, flowchart, mermaid, ASCII diagram, text diagram, terminal diagram, visualize, C4, mindmap, architecture diagram, sequence diagram, ERD, or needs visual docume...
PostgreSQL bindings for H3 hexagonal grid system. Use when working with H3 cells in Postgres, including spatial indexing, geometry/geography integration, and raster analysis.
Context-Driven Development skill for projects using Conductor. Use this skill when you detect a `conductor/` directory in the project, when working on tasks defined in a `plan.md` file, or when the user asks about tracks, specs, or plans. Automatically applies TDD workflow, tracks task completion...
Display project status, active tracks, and next actions
Official Stakpak application containerization standard operating procedure, a step-by-step guidline to properly dockerize applications. This is a rule book curated by the Stakpak Team.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience