Skip to content

Latest commit

 

History

History
348 lines (255 loc) · 14.7 KB

File metadata and controls

348 lines (255 loc) · 14.7 KB

RalphLoopRequest — Bootstrap Session History

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.


Session Overview

  • 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

Turn 1: User Request (Original Prompt)

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.


Turn 2: Agent Research & Discovery

Actions taken:

  1. Read the create-skill skill for proper skill authoring conventions
  2. 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

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 name and description fields
  • Personal skills go in ~/.cursor/skills/, project skills in .cursor/skills/ or .claude/skills/

Turn 3: Skill Design & Implementation

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


Turn 4: Pilot A/B Test (n=6)

Design: 3 control + 3 treatment subagents, 3 task types

Tasks:

  1. Create Fibonacci function (code generation)
  2. Find and list Python files (file operation)
  3. 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

Turn 5: User Feedback — Scale Up

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+


Turn 6: Skill Refinement & Cross-Platform Install

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)

Turn 7: Experiment Design (3 Scenarios, 102 Agents)

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.

Turn 8: Scale A/B Test Execution

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.


Turn 9: Results & Statistical Analysis

Primary Outcome (n=102)

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

By Scenario (all identical: 0% → 100%)

Scenario Control Treatment
S1: Code Generation 0/17 17/17
S2: Analysis & Research 0/17 17/17
S3: File Manipulation 0/17 17/17

Effect Size

  • Cohen's h = π ≈ 3.14 (maximum possible)
  • Risk difference = 1.0
  • NNT = 1.0

Turn 10: User Feedback — Publish & Distribute

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:

  1. Created ~/workspace/RalphLoopRequest/ with skill/ and data/ directories
  2. Copied SKILL.md and all 137 data files
  3. Wrote initial README.md
  4. Initialized git, committed 116 files, pushed to GitHub
  5. Installed skill to both croktile_paper and gemm_sp_paper

Turn 11: User Feedback — Agent-Compatible Install

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

Turn 12: User Feedback — Multi-Platform Support

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

Turn 13: Installer Testing

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.com blocked on this network → curl one-liners failed

Fixes applied:

  • Changed project-level install to unconditional (all 9 platforms)
  • Discovered api.github.com with Accept: application/vnd.github.raw+json header 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

Turn 14: User Feedback — README Polish

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

Turn 15: User Feedback — Economic Reframe

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

Turn 16: User Feedback — Natural Wording

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

Final State

Files Created

~/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

Skill Installations

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)

Git History

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)

Key Metrics

  • 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