Skip to main content

ralph

Iterative measurement-driven improvement loop. Measure, profile, mutate, re-measure, commit. Works for performance, bundle size, complexity, test coverage — anything quantifiable. Use when the user wants to systematically improve a metric through repeated cycles of profiling and targeted changes.

来源信息

仓库
srid/haskell-flake
最近来源活动
2026年4月15日 18:15
检测到的 SKILL.md 语言
英语
星标
240
分支
27

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
ralph
description
Iterative measurement-driven improvement loop. Measure, profile, mutate, re-measure, commit. Works for performance, bundle size, complexity, test coverage — anything quantifiable. Use when the user wants to systematically improve a metric through repeated cycles of profiling and targeted changes.
# Ralph Iterative measurement-driven improvement loop. Each cycle: measure → profile → find biggest contributor → mutate → re-measure → commit only if improvement exceeds noise. ## 0. Gather inputs Use `AskUserQuestion` to collect: 1. **What to improve** — target metric and direction 2. **How to measure** — command or method (research and propose one if user doesn't know) 3. **How many cycles** — default 20 4. **Constraints** — what must NOT change ## 1. Setup - Create a feature branch and **draft PR** early (load `forge-pr` skill for title/body). PR description includes a measurements table updated as cycles complete. - **Baseline**: measure at least 5 runs, report **median**. For time: distinguish cold (no cache) from hot (cached). Document methodology. - Create `docs/<target>-ralph-report.md` with baseline, methodology, optimization log table, and findings. - Seed `TaskCreate` list with N cycle tasks. ## 2. The loop Each cycle: 1. **Profile** — break down the metric into components. Measure each independently. Don't guess. 2. **Classify** — categorize the biggest contributor (unnecessary dep, eager eval, redundant work, wrong abstraction, missing cache, structural overhead). 3. **Mutate** — single, targeted change addressing the biggest contributor. 4. **Re-measure** — same benchmark, same methodology. If improvement is within noise (<3% for time), don't commit — document in report only. 5. **Commit + push** — only if improvement exceeds noise. Include metrics in commit message. Push report file with each commit. ## 3. Wrap-up - **Final measurement** with same methodology as baseline — this is the number for the PR. - **Update PR description** with final before/after table, summary of changes, key findings. - **Complete report** with optimization log, dead ends ("Investigated but no improvement"), key findings, and cost breakdown. - **Run CI** to verify nothing is broken. ## Rules - **Facts over opinions.** Measure everything. Don't commit based on theory. - **One change per cycle.** Isolate variables. - **Only commit improvements.** Noise-level changes clutter history. - **Preserve behaviour.** All changes behaviour-preserving unless user explicitly allows otherwise. - **Document dead ends.** "X doesn't help" is valuable knowledge. - **Stop at diminishing returns.** 3 consecutive no-improvement cycles → tell user and stop. - **Keep the report.** The `.md` is a deliverable — useful for blog posts and future reference.
在 GitHub 查看