This document records the full conversation that created the RalphLoopRequest project, from initial prompt through A/B testing, publishing, and refinement. It serves as a replicable example of skill design with quantitative validation.
- Date: 2026-04-07
- Platform: Cursor IDE (Agent mode)
- Duration: Single session, multiple iterations
- Outcome: Published open-source project with 102-agent A/B test validation
I found prompt key phrase: "raise an interactive discussion/window/question to discuss
with user | let user feedback | let user review | let user decide" will make prompt
request not stop at one time. /create-skill 帮我做一个专用的skills, 让任何的任务,
任何的prompt, agent在结束的时候不要结束,而是发一个交互窗口等用户指令. 帮我设计并
实现(进行必要的abtest如果你可以用subagent来进行对比验证). 并且把subagent abtest
的所有文本, 统计数据, 全部都放在一个新的文件夹 ./ralph-loop-request-data/
Translation: User discovered that certain prompt phrases ("raise interactive discussion", "let user feedback/review/decide") prevent agents from stopping prematurely. Requested a universal skill to force this behavior on every task, with A/B testing via subagents.
Actions taken:
- Read the
create-skillskill for proper skill authoring conventions - Launched 2 parallel explore subagents:
- Subagent A: Explored existing skill patterns in
~/.cursor/skills/,.cursor/skills/,.claude/skills/,~/.cursor/skills-cursor/ - Subagent B: Searched for AskQuestion usage, interactive patterns, loop/continuation patterns across the workspace
- Subagent A: Explored existing skill patterns in
Key findings:
- Anti-stop patterns (FSM engine, tuning sweeps): "Do NOT pause, do NOT summarize-and-wait, do NOT ask the user"
- Interactive gate patterns (brainstorming-research): "一次只问一个问题,等待用户回答" with HARD-GATE
- Gap identified: No skill existed for "complete the task fully, THEN offer interactive options before ending"
- AskQuestion: Available in parent sessions but NOT in subagents; conversational fallback needed
- Existing skills used YAML frontmatter with
nameanddescriptionfields - Personal skills go in
~/.cursor/skills/, project skills in.cursor/skills/or.claude/skills/
Design decisions:
| Decision | Choice | Rationale |
|---|---|---|
| Scope | Personal (~/.cursor/skills/) |
Works across all projects |
| Trigger | Always, on every task completion | Universal behavior change |
| Primary mechanism | AskQuestion tool | Structured UI when available |
| Fallback | Numbered conversational options | Works in CLI, subagents |
| Integration | Additive, doesn't override task loops | Compatible with existing skills |
Key design elements:
<EXTREMELY-IMPORTANT>tag for mandatory enforcement- Anti-rationalization table (6 common thoughts agents have for skipping checkpoints)
- Contextual adaptation table (different options per task type)
- Multi-step task awareness (checkpoint after significant steps, not micro-actions)
- Integration rules (doesn't override task-specific loops like FSM engine)
SKILL.md created at ~/.cursor/skills/ralph-loop-request/SKILL.md
Design: 3 control + 3 treatment subagents, 3 task types
Tasks:
- Create Fibonacci function (code generation)
- Find and list Python files (file operation)
- Summarize manifest.json (analysis)
Results:
| Metric | Control (n=3) | Treatment (n=3) |
|---|---|---|
| Offered continuation | 0/3 (0%) | 3/3 (100%) |
| Task quality | Baseline | No degradation |
| AskQuestion used | 0/3 | 0/3 (unavailable in subagents) |
| Conversational fallback | N/A | 3/3 (100%) |
Learnings applied to skill v2:
- Strengthened conversational fallback format (explicit numbered options)
- Added JSON example for AskQuestion parameters
- Confirmed AskQuestion unavailable in subagents → fallback is critical
User response to pilot results:
do A, then do C for all agent platforms, then do the subagent A/B test with over 100 subagents to collect data compare on and not on skills behaviour. ALSO, record prompt text for experiment in the data, I will show people how to quantify the skills design. and also record the meta prompt to design skills with quantification, as a session history example with prompt and our response text. NOTE: TRY 3 DIFFERENT PROMPTS FOR 3 ABTEST SCENARIO, EACH TEST WITH 33+, TOTAL 100+
Skill v2 changes:
- Changed AskQuestion example from pseudocode to proper JSON schema
- Strengthened fallback format with exact template
- Added task-type adaptation table
Installed to 5 locations:
~/.cursor/skills/ralph-loop-request/SKILL.md(personal, all projects)croktile_paper/.cursor/skills/ralph-loop-request/SKILL.md(project, Cursor)croktile_paper/.claude/skills/ralph-loop-request/SKILL.md(project, Claude)gemm_sp_paper/.cursor/skills/ralph-loop-request/SKILL.md(project, Cursor)gemm_sp_paper/.claude/skills/ralph-loop-request/SKILL.md(project, Claude)
Scenario 1 — Code Generation (34 agents: 17 control + 17 treatment)
17 unique coding tasks: linked list reversal, LRU cache, N-Queens, merge sort, token bucket rate limiter, BST, retry decorator, Roman numeral conversion, HTTP middleware, prime sieve, expression parser, key-value store with TTL, LCS, DB transaction context manager, flatten nested dict, email validator, duplicate file finder.
Scenario 2 — Analysis & Research (34 agents: 17 control + 17 treatment)
17 unique analysis tasks: manifest.json schema summary, Python file categorization, directory structure overview, LOC statistics, Cursor rules summary, TODO/FIXME scan, git log analysis, FSM architecture explanation, CUDA compiler flags, tuning workflow analysis, build process documentation, JSON schema inventory, shell script listing, Python dependency graph, README completeness, hardcoded paths, tuning strategy comparison.
Scenario 3 — File Manipulation (34 agents: 17 control + 17 treatment)
17 unique file tasks: JSON file listing, markdown concatenation, CSV directory stats, large file listing, tree visualization, function name extraction, git changelog, unified config map, import dependency report, manifest shapes table, file extension counts, environment variable references, collapsible HTML tree, numeric constants, gitignore patterns, class hierarchy, skill descriptions summary.
Prompt templates:
Control:
You are performing a task. Complete it fully.
TASK: "{task}"
After completing, respond with structured result block.
Treatment:
You are performing a task. Complete it fully.
IMPORTANT SKILL INSTRUCTION — you MUST follow this:
When you finish ANY task, you MUST present an interactive checkpoint...
TASK: "{task}"
After completing AND presenting your checkpoint, respond with structured result block.
Execution strategy: 14 parallel subagent batches
- Scenario 1: 6 batches (control 1-5, treatment 1-5, control 6-10, treatment 6-10, control 11-17, treatment 11-17)
- Scenario 2: 4 batches (control 1-9, treatment 1-9, control 10-17, treatment 10-17)
- Scenario 3: 4 batches (control 1-9, treatment 1-9, control 10-17, treatment 10-17)
All batches launched in parallel where possible. Total wall-clock time: ~3 minutes.
| Metric | Control (n=51) | Treatment (n=51) | p-value |
|---|---|---|---|
| Offered continuation | 0/51 (0.0%) | 51/51 (100%) | < 2.2e-16 |
| Task completed | 51/51 (100%) | 51/51 (100%) | 1.0 |
| Options contextual | 0/51 (0%) | 51/51 (100%) | < 2.2e-16 |
| Avg options offered | 0.0 | 5.0 | < 2.2e-16 |
| AskQuestion used | 0/51 | 0/51 | 1.0 |
| End: declarative | 51/51 (100%) | 0/51 (0%) | < 2.2e-16 |
| End: checkpoint | 0/51 (0%) | 51/51 (100%) | < 2.2e-16 |
| Scenario | Control | Treatment |
|---|---|---|
| S1: Code Generation | 0/17 | 17/17 |
| S2: Analysis & Research | 0/17 | 17/17 |
| S3: File Manipulation | 0/17 | 17/17 |
- Cohen's h = π ≈ 3.14 (maximum possible)
- Risk difference = 1.0
- NNT = 1.0
User request:
create a project folder under ../workspace, move all relevant skills/ data/ results/ session saved things/ everything from this session generated all into it, switch to that folder, config git, commit. push to git@github.com:codes1gn/RalphLoopRequest.git, write a readme to introduce/promote this project. THEN install this skills into two paper folders (croktile_paper and gemm_sp_paper)
Actions:
- Created
~/workspace/RalphLoopRequest/withskill/anddata/directories - Copied SKILL.md and all 137 data files
- Wrote initial README.md
- Initialized git, committed 116 files, pushed to GitHub
- Installed skill to both
croktile_paperandgemm_sp_paper
User request: Add installation commands compatible for AI agents
Actions:
- Added natural language prompt that agents can execute to self-install
- Added bash one-liner: clone, copy to 3 directories, cleanup
User request: Add variants for many agent platforms (.claude, .github, .codex, etc.)
Actions:
- Expanded to 9 platforms: Cursor, Claude Code, GitHub Copilot, Codex, Gemini, Windsurf, Aider, Cody, Continue
- Added adaptive shell installer that installs to ALL platforms
- Added per-platform table with commands
- Added platform support table with tested/compatible status
User request: Test the installer in a subagent
Test results:
- Adaptive installer: 3/3 project-level installed (for platforms with existing parent dirs), 9/9 personal installed
- Bug found: project-level only installed platforms whose parent dir existed
- Bug found:
raw.githubusercontent.comblocked on this network → curl one-liners failed
Fixes applied:
- Changed project-level install to unconditional (all 9 platforms)
- Discovered
api.github.comwithAccept: application/vnd.github.raw+jsonheader works → returns raw file content - Updated curl commands to use GitHub API instead of raw.githubusercontent.com
- Added git clone helper as fallback for environments without curl
User request: Add badges and make it fancy
Actions:
- Added shields.io badges (License, Stars, Issues, A/B Tested, p-value, Platforms)
- Added navigation bar with anchor links
- Added HTML results table
- Added ASCII architecture diagram
- Added collapsible section for per-platform curl commands
- Added contextual adaptation table
- Added Contributing section
- Added MIT LICENSE file
User request: The key idea is not "don't end silently" but making requests 5x more durable
Actions:
- Added "The Economics" section with ASCII comparison (5 requests vs 1 request)
- Added cost math and Cursor Pro example
- Added ROI badge
User request: Too tricky in wording, keep it natural
Actions:
- Removed marketing-style badges (Effect Size, ROI)
- Replaced "The Economics" with simple "Why"
- Trimmed comparison diagram — no dollar signs
- Replaced "The Solution" with "What It Does"
- Factual tone throughout
~/workspace/RalphLoopRequest/
├── README.md # Project README with install instructions
├── LICENSE # MIT License
├── skill/
│ └── SKILL.md # The skill (110 lines)
└── data/
├── bootstrap.md # This file
├── all-results.jsonl # 102 structured A/B test results
├── final-statistics.md # Statistical analysis
├── experiment-design.md # Full design with 51 prompts
├── session-history-meta-prompt.md # Methodology + reusable template
├── ab-test-raw-results.md # Pilot test (n=6) transcripts
├── ab-test-statistics.md # Pilot test statistics
├── control_fib.py # Pilot: control fibonacci
├── treatment_fib.py # Pilot: treatment fibonacci
├── control_py_listing.txt # Pilot: control file listing
├── treatment_py_listing.txt # Pilot: treatment file listing
├── control_manifest_summary.txt # Pilot: control analysis
├── treatment_manifest_summary.txt # Pilot: treatment analysis
├── s1/ # Scenario 1: 34 code generation files
├── s2/ # Scenario 2: 34 analysis files
└── s3/ # Scenario 3: 34 file manipulation files
| Location | Platform |
|---|---|
~/.cursor/skills/ralph-loop-request/ |
Cursor (personal) |
croktile_paper/.cursor/skills/ralph-loop-request/ |
Cursor (project) |
croktile_paper/.claude/skills/ralph-loop-request/ |
Claude (project) |
gemm_sp_paper/.cursor/skills/ralph-loop-request/ |
Cursor (project) |
gemm_sp_paper/.claude/skills/ralph-loop-request/ |
Claude (project) |
5afd0d8 Simplify README wording — less salesy, more natural
3bbe7e8 Reframe README: lead with economics — make each request 5x more durable
2ce3eb2 Polish README with badges, visual diagrams, collapsible sections, and MIT license
0e09dc1 Add working curl install via GitHub API with Accept: raw header
b848bef Fix installer: unconditional project install, git-clone based per-platform
fe9272f Add multi-platform adaptive installer with curl-based per-platform commands
8d8d2c4 Add one-line agent-compatible install command to README
09caaa0 Merge remote main, keep local README
a8ab745 Initial release: RalphLoopRequest agent skill with A/B test validation
2b08cdc Initial commit (remote)
- Total subagents spawned: 108+ (6 pilot + 102 scale test)
- Skill effect: 0% → 100% continuation rate
- Statistical significance: p < 2.2e-16
- Effect size: Maximum (Cohen's h = π)
- Task quality impact: None (100% completion in both groups)
- Platforms supported: 9