Skip to content
Benchmark run luna-medium-edit-scale-distinct-r10-20260928T223304Z

Benchmark run luna-medium-edit-scale-distinct-r10-20260928T223304Z

This page contains exactly the publishable benchmark observations recorded in run luna-medium-edit-scale-distinct-r10-20260928T223304Z; it does not select or aggregate them. Return to the run index or view aggregate metrics.

Interactive browser

Rows are pre-aggregated by task, target, prompt variant, MCP-instruction mode, context, arm, and restriction. Numeric values show median (p50), IQR, p90, maximum, and sample count. Boolean checks show pass counts and success rates. Filters apply to these summary groups; per-run observations remain available on their run pages.

Loading benchmark results…

Baseline vs semedit

Comparison evaluates baseline and semedit values within each restriction policy, target, and context group. Negative changes mark improvements for these lower-is-better metrics; positive changes mark degradations.

Detailed observations

Empirical telemetry measuring wall-clock latency, token usage, tool turns, and compiler correctness when AI coding agents perform code modifications.

Every benchmark pairs Vanilla LLM (standard file editing tools) against Semedit MCP (deterministic AST compiler operations).

Benchmark Methodology & Transparency

  • Reproducibility & Provenance: Self-contained txtar archives define test scenarios. Links below resolve to commit-anchored GitHub source files for published commits, or cryptographic SHA-256 fingerprints for uncommitted local fixtures.
  • Model Cost: Tables report model-specific credit consumption where a target model has a declared schedule: (uncached input × input credits + cached input × cached credits + (reasoning + visible output) × output credits) / 1,000,000. Thinking tokens use the output rate. ADR-0043 defines the per-million-token credit rates.
  • Multi-Level Correctness Oracle: Four validation levels evaluate each trial:
    1. Level 1 (Mutation Policy): Restricts file modifications strictly to authorized paths.
    2. Level 2 (AST Invariants): Compiler AST verification of required symbols, imports, and relative declaration ordering.
    3. Level 3 (Clean Build): Strict compilation validation with zero compiler or typecheck errors.
    4. Level 4 (Test Suite): Unit and integration test suite execution.
  • Isolated Sandboxing: Each trial executes in an ephemeral directory with pristine git and module state.

Test case: task-00-hi-overhead

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency5.16s4.06sN/A———
Process Start → First Event0.85s0.67s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1879918798N/A———
Cached Input Tokens793612032N/A———
Uncached Input Tokens108636766N/A———
Cost0.02920.0200N/A———
Cached vs Uncached Token Ratio0.73:11.78:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call a semantic_* tool because the task was only to reply “hi” and “DONE”; it required no source code modification.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency11.88s12.14sN/A———
Process Start → First Event0.20s0.16s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01980.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call any `semantic_*` tools because your instruction was to avoid inspecting the workspace and make no changes, and the task only required replying “hi” and “DONE.” I did not need to discover or use the semedit server.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency4.21s4.80sN/A———
Process Start → First Event0.68s0.90s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1879918798N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens67676766N/A———
Cost0.02000.0200N/A———
Cached vs Uncached Token Ratio1.78:11.78:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
✕ Why no semantic edit tool was used
I did not call a semantic_* tool because the task was only to reply “hi” and “DONE”; it required no source code modification. I did not inspect the workspace or investigate whether the tools were available.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency4.79s3.33sN/A———
Process Start → First Event0.89s0.22s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1879918695N/A———
Cached Input Tokens179212032N/A———
Uncached Input Tokens170076663N/A———
Cost0.04310.0198N/A———
Cached vs Uncached Token Ratio0.11:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not discover or use any `semantic_*` tools; your instruction was to reply “hi,” avoid inspecting the workspace, and make no file changes, so no source code modification was needed.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency3.61s3.46sN/A———
Process Start → First Event0.15s0.15s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens57N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01970.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call any `semantic_*` tool because the task explicitly said not to inspect or modify the workspace, and I made no source code changes. I did not check whether the semedit MCP server was available.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency3.49s3.43sN/A———
Process Start → First Event0.13s0.15s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01980.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not discover or call any `semantic_*` tools; I followed your instruction not to inspect the workspace or run tools.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency3.09s3.30sN/A———
Process Start → First Event0.14s0.14s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens57N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01970.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call a `semantic_*` tool because I followed your instruction not to inspect or use tools, and made no source code modifications. Ordinary editing was not involved.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency3.57s3.02sN/A———
Process Start → First Event0.12s0.12s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01980.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call a `semantic_*` tool because you asked me not to inspect the workspace or use tools. I did not discover or test whether the semedit MCP server was available.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency4.75s3.91sN/A———
Process Start → First Event0.13s0.14s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens57N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens1203212032N/A———
Uncached Input Tokens66646663N/A———
Cost0.01970.0198N/A———
Cached vs Uncached Token Ratio1.81:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not call a `semantic_*` tool because the task only required replying “hi” and “DONE”; it involved no source code modifications. I did not inspect the workspace or discover whether the semedit MCP server was available.
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-00-hi-overhead
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_00_hi_overhead.txtar

Vanilla LLM Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not modify any workspace files.

Reply hi. Do not inspect or modify the workspace. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

MetricVanilla (Small)⚠ MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency11.11s10.96sN/A———
Process Start → First Event0.14s0.14s————
First Event → First Tool Call——————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns11N/A———
Internal Tool Cycles00————
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)00————
Output Tokens77N/A———
Reasoning / Thinking Tokens00————
Total Input Tokens1869618695N/A———
Cached Input Tokens793612032N/A———
Uncached Input Tokens107606663N/A———
Cost0.02900.0198N/A———
Cached vs Uncached Token Ratio0.74:11.81:1N/A———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/AFAIL————
Baseline vs Semedit Agentic in Small Context
#VanillaSemedit MCP
1none recordednone recorded
⚠ Why no semantic edit tool was used
I did not discover or call any `semantic_*` tools because the task explicitly said not to inspect the workspace or use tools. Ordinary editing was not relevant, since you asked only for “hi” and “DONE.”
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

Test case: task-12-rename-scale-01

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency21.92s32.79s+49.6%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call12.28s8.83s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles35+66.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)35+66.7%———
Output Tokens247449+81.8%———
Reasoning / Thinking Tokens065————
Total Input Tokens76665128766+68.0%———
Cached Input Tokens56320115200+104.5%———
Uncached Input Tokens2034513566-33.3%———
Cost0.06800.0691+1.6%———
Cached vs Uncached Token Ratio2.77:18.49:1+206.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
cat rename-plan.md && \
rg -n \"Processor|processor\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git status --short'
✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat go.mod'
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\"); t=p.with_suffix(\".go.tmp\"); t.write_text(s); t.replace(p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "(*Processor).LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency15.00s32.40s+116.0%———
Process Start → First Event0.15s0.17s————
First Event → First Tool Call4.47s6.09s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles36+100.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)36+100.0%———
Output Tokens304574+88.8%———
Reasoning / Thinking Tokens4677+67.4%———
Total Input Tokens76077138444+82.0%———
Cached Input Tokens66560121344+82.3%———
Uncached Input Tokens951717100+79.7%———
Cost0.04480.0812+81.3%———
Cached vs Uncached Token Ratio6.99:17.10:1+1.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS*'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'Makefile' -g 'AGENTS.md' -g 'AGENTS.override.md'"
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\"); tmp=p.with_suffix(\".go.tmp\"); tmp.write_text(s); tmp.replace(p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—✓ ✓
/bin/zsh -lc 'git diff --'
6—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.18s26.47s+54.1%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call7.08s5.72s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles34+33.3%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)34+33.3%———
Output Tokens275333+21.1%———
Reasoning / Thinking Tokens00————
Total Input Tokens76245189913+149.1%———
Cached Input Tokens66560170240+155.8%———
Uncached Input Tokens968519673+103.1%———
Cost0.04430.0959+116.5%———
Cached vs Uncached Token Ratio6.87:18.65:1+25.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
cat rename-plan.md && \
rg -n \"type Processor|Processor|func \\(.*Processor\" --glob '*.go' ."
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '*.go' -g 'go.mod' | head -80"
2✓ ✓
/bin/zsh -lc "rg --files -g '*.go' -g '"'!**/*_test.go'"' | xargs rg -n \"LoadInput|ReadRequest|Processor\""
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
s = s.replace('LoadInput', 'ReadRequest')
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.78s41.85s+122.9%———
Process Start → First Event0.13s0.45s————
First Event → First Tool Call4.75s7.89s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles48+100.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)48+100.0%———
Output Tokens439516+17.5%———
Reasoning / Thinking Tokens4822-54.2%———
Total Input Tokens95691214671+124.3%———
Cached Input Tokens84736195584+130.8%———
Uncached Input Tokens1095519087+74.2%———
Cost0.05470.1033+89.1%———
Cached vs Uncached Token Ratio7.73:110.25:1+32.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod'
✓ ✓
/bin/zsh -lc "rg --files -g 'PROJECT_BRIEF.md' -g 'README.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|ReadRequest|Processor' --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"' ."
✓ ✓
/bin/zsh -lc 'rg --files'
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os

path = Path('pipeline/workflow.go')
text = path.read_text()
updated = text.replace('LoadInput', 'ReadRequest')
if updated == text:
    raise SystemExit('expected rename target not found')
tmp = path.with_name(path.name + '.tmp')
with tmp.open('w') as f:
    f.write(updated)
    f.flush()
    os.fsync(f.fileno())
os.replace(tmp, path)
PY
go test ./..."
✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md'
5—semedit/semantic_assertion_mode (✓ ✓)
{
  "dry_run": true,
  "file": "pipeline/workflow_test.go",
  "mode": "relax"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "LoadInput"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
8—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency15.19s34.07s+124.3%———
Process Start → First Event0.13s0.34s————
First Event → First Tool Call4.13s4.63s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles46+50.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)46+50.0%———
Output Tokens299575+92.3%———
Reasoning / Thinking Tokens0150————
Total Input Tokens95922169517+76.7%———
Cached Input Tokens85760154624+80.3%———
Uncached Input Tokens1016214893+46.6%———
Cost0.05060.0850+67.9%———
Cached vs Uncached Token Ratio8.44:110.38:1+23.0%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'AGENTS*' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g '*.go' | head -80 && \
git status --short"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
git status --short'
✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
rg --files | head -80'
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md && \
go test ./...'
6—✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg 'LoadInput|ReadRequest' . --glob '"'!rename-plan.md'"' && \
git status --short -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.54s39.59s+113.5%———
Process Start → First Event0.17s0.12s————
First Event → First Tool Call4.40s4.85s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles47+75.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)47+75.0%———
Output Tokens457679+48.6%———
Reasoning / Thinking Tokens67229+241.8%———
Total Input Tokens96037212502+121.3%———
Cached Input Tokens78592192256+144.6%———
Uncached Input Tokens1744520246+16.1%———
Cost0.06980.1100+57.6%———
Cached vs Uncached Token Ratio4.51:19.50:1+110.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g '"'!vendor'"'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' | head -80"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod && \
rg -n 'Processor|\\.\\w+\\(' --glob '*.go'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile, time; p=Path(\"pipeline/workflow.go\"); data=p.read_text(); updated=data.replace(\"LoadInput\", \"ReadRequest\"); assert updated "'!= data; st=p.stat(); fd,tmp=tempfile.mkstemp(dir=p.parent, prefix=".workflow.go."); f=os.fdopen(fd,"w"); f.write(updated); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(tmp,p); os.utime(p, ns=(st.st_atime_ns, max(time.time_ns(), st.st_mtime_ns+1)))'"' && \
git diff -- pipeline/workflow.go"
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
go test ./...'
✓ ✓
/bin/zsh -lc 'git diff --'
5—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'LoadInput|ReadRequest' pipeline"
6—? ✗
/bin/zsh -lc 'git show HEAD:pipeline/workflow.go && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go'
7—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency19.10s33.96s+77.8%———
Process Start → First Event0.12s0.12s————
First Event → First Tool Call5.27s5.59s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles35+66.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)35+66.7%———
Output Tokens451647+43.5%———
Reasoning / Thinking Tokens57160+180.7%———
Total Input Tokens76359195868+156.5%———
Cached Input Tokens66560168192+152.7%———
Uncached Input Tokens979927676+182.4%———
Cost0.04750.1213+155.5%———
Cached vs Uncached Token Ratio6.79:16.08:1-10.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g '*.go' | head -100"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod'
? ✗
/bin/zsh -lc "cat rename-plan.md && \
cat AGENTS.override.md && \
rg --files -g 'PROJECT_BRIEF.md'"
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); old=\"LoadInput\"; new=\"ReadRequest\"; assert s.count(old)==2; tmp=p.with_suffix(\".go.tmp\"); tmp.write_text(s.replace(old,new)); tmp.replace(p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—✓ ✓
/bin/zsh -lc 'go test ./... && \
git status --short && \
git diff --'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.74s27.91s+49.0%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call4.56s5.12s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles440%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)440%———
Output Tokens444382-14.0%———
Reasoning / Thinking Tokens6189+45.9%———
Total Input Tokens95734112151+17.1%———
Cached Input Tokens8576086784+1.2%———
Uncached Input Tokens997425367+154.3%———
Cost0.05270.0910+72.7%———
Cached vs Uncached Token Ratio8.60:13.42:1-60.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g '"'!AGENTS.override.md'"' -g '"'!go.mod'"' -g '"'!rename-plan.md'"' | head -80 && \
cat rename-plan.md"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|ReadRequest' . --glob '"'!rename-plan.md'"' --glob '"'!AGENTS.override.md'"'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4✓ ✓
/bin/zsh -lc 'go test ./...'
✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md && \
go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency16.90s42.06s+148.9%———
Process Start → First Event0.23s0.13s————
First Event → First Tool Call4.99s5.83s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles35+66.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)35+66.7%———
Output Tokens454484+6.6%———
Reasoning / Thinking Tokens0147————
Total Input Tokens76995136876+77.8%———
Cached Input Tokens67584120320+78.0%———
Uncached Input Tokens941116556+75.9%———
Cost0.04610.0794+72.1%———
Cached vs Uncached Token Ratio7.18:17.27:1+1.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|func \\(.*Processor|\\.\\w+\\(\" --glob '*.go' ."
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files -g '*.go' -g 'go.mod' -g 'rename-plan.md'"
2✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git status --short'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); old=s; s=s.replace(\"LoadInput\", \"ReadRequest\"); assert s "'!= old; tmp=p.with_suffix(".go.tmp"); tmp.write_text(s); tmp.replace(p)'"' && \
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4—✓ ✓
/bin/zsh -lc 'git diff --'
5—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go && \
go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-01
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_01.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.40s38.31s+87.8%———
Process Start → First Event0.20s0.52s————
First Event → First Tool Call5.43s5.03s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles35+66.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)35+66.7%———
Output Tokens487543+11.5%———
Reasoning / Thinking Tokens76208+173.7%———
Total Input Tokens77085129769+68.3%———
Cached Input Tokens67584115200+70.5%———
Uncached Input Tokens950114569+53.3%———
Cost0.04770.0746+56.5%———
Cached vs Uncached Token Ratio7.11:17.91:1+11.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (11 lines -> 11 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go' -g 'go.mod' | head -200 && \
git status --short"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files -g '"'!AGENTS.override.md'"' | head -120"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat pipeline/workflow.go && \
rg -n 'Processor|\\.Process|Process\\(' --glob '*.go' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
data = p.read_bytes()
old = b'LoadInput'
new = b'ReadRequest'
if data.count(old) "'!= 2:
    raise SystemExit(f'"'expected 2 occurrences, found {data.count(old)}')
updated = data.replace(old, new)
fd, tmp = tempfile.mkstemp(dir=p.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'wb') as f:
        f.write(updated)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, p)
finally:
    if os.path.exists(tmp):
        os.unlink(tmp)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go rename-plan.md go.mod && \
go test ./...'
5—✓ ✓
/bin/zsh -lc 'git status --short && \
cat pipeline/workflow.go && \
cat pipeline/workflow_test.go'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

Test case: task-12-rename-scale-02

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.80s43.81s+146.2%———
Process Start → First Event0.13s0.14s————
First Event → First Tool Call4.91s5.37s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles39+200.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)39+200.0%———
Output Tokens445537+20.7%———
Reasoning / Thinking Tokens4323-46.5%———
Total Input Tokens76857180225+134.5%———
Cached Input Tokens67584163840+142.4%———
Uncached Input Tokens927316385+76.7%———
Cost0.04620.0889+92.6%———
Cached vs Uncached Token Ratio7.29:110.00:1+37.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"type Processor|Processor|func .*Processor|\\.Process|Process\\(\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' | head -80"
2✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
rg -n "LoadInput|CheckInput|ReadRequest|ValidateRequest" .'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n 'Processor|func .*Processor' --glob '*.go' ."
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); p.write_text(s)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
4—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—✓ ✓
/bin/zsh -lc 'git diff --'
8—✓ ✓
/bin/zsh -lc 'git status --short'
9—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency16.74s42.16s+151.8%———
Process Start → First Event0.15s0.14s————
First Event → First Tool Call4.45s7.08s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles38+166.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)38+166.7%———
Output Tokens442530+19.9%———
Reasoning / Thinking Tokens1139-92.0%———
Total Input Tokens77174278761+261.2%———
Cached Input Tokens67584256512+279.5%———
Uncached Input Tokens959022249+132.0%———
Cost0.04780.1265+164.6%———
Cached vs Uncached Token Ratio7.05:111.53:1+63.6%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -200 && \
git status --short"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -60"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat pipeline/workflow.go && \
rg -n 'Processor|\\.Process|Process\\(' --glob '*.go' ."
✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; rg -n 'LoadInput|CheckInput|Processor' --glob '*.go' ."
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); fd, tmp=tempfile.mkstemp(dir=p.parent, prefix=\".workflow.go.\"); f=os.fdopen(fd,\"w\"); f.write(s); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(tmp,p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go'
8—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency28.72s41.21s+43.5%———
Process Start → First Event0.14s0.13s————
First Event → First Tool Call6.04s4.50s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles68+33.3%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)68+33.3%———
Output Tokens588681+15.8%———
Reasoning / Thinking Tokens5496+77.8%———
Total Input Tokens115761242733+109.7%———
Cached Input Tokens104960219904+109.5%———
Uncached Input Tokens1080122829+111.4%———
Cost0.06130.1218+98.7%———
Cached vs Uncached Token Ratio9.72:19.63:1-0.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g 'README*' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|Processor' . -g '*.go' -g '"'!**/*_test.go'"' && \
find .. -name AGENTS.md -print"
✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput' --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"' ."
4✓ ✓
/bin/zsh -lc "cat pipeline/workflow_test.go && \
rg -n 'LoadInput|CheckInput|ReadRequest|ValidateRequest' ."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.LoadInput"
}
5file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.CheckInput"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go go.mod rename-plan.md && \
go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency21.09s41.41s+96.3%———
Process Start → First Event0.15s0.13s————
First Event → First Tool Call5.29s5.87s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles48+100.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)48+100.0%———
Output Tokens433818+88.9%———
Reasoning / Thinking Tokens68192+182.4%———
Total Input Tokens95736162994+70.3%———
Cached Input Tokens85760142848+66.6%———
Uncached Input Tokens997620146+101.9%———
Cost0.05260.0987+87.5%———
Cached vs Uncached Token Ratio8.60:17.09:1-17.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS*'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
cat pipeline/workflow_test.go'
3✓ ✓
/bin/zsh -lc "rg -n '\\b(LoadInput|CheckInput)\\b' --glob '"'!rename-plan.md'"' --glob '"'!**/*_test.go'"'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); fd, name=tempfile.mkstemp(dir=p.parent); f=os.fdopen(fd,\"w\"); f.write(s); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(name,p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
8—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency19.99s44.53s+122.8%———
Process Start → First Event0.24s0.14s————
First Event → First Tool Call5.13s5.27s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles59+80.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)59+80.0%———
Output Tokens436696+59.6%———
Reasoning / Thinking Tokens0116————
Total Input Tokens115360200959+74.2%———
Cached Input Tokens103936167936+61.6%———
Uncached Input Tokens1142433023+189.1%———
Cost0.06000.1347+124.5%———
Cached vs Uncached Token Ratio9.10:15.09:1-44.1%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|processor\" --glob '*.go' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'README*' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg --files -g '*.go' -g 'go.mod' -g 'rename-plan.md'"
✓ ✓
/bin/zsh -lc 'rg --files'
3✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat go.mod'
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
9—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.83s33.79s+89.5%———
Process Start → First Event0.14s0.16s————
First Event → First Tool Call4.71s4.39s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles47+75.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)47+75.0%———
Output Tokens331359+8.5%———
Reasoning / Thinking Tokens00————
Total Input Tokens95899152683+59.2%———
Cached Input Tokens85760136448+59.1%———
Uncached Input Tokens1013916235+60.1%———
Cost0.05090.0792+55.5%———
Cached vs Uncached Token Ratio8.46:18.40:1-0.6%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md && \
cat rename-plan.md && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc "rg --files -g '"'!*test*'"' -g '*.go' | head -100"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|ReadRequest|ValidateRequest' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
s = s.replace('LoadInput', 'ReadRequest').replace('CheckInput', 'ValidateRequest')
t = Path('pipeline/workflow.go.tmp')
t.write_text(s)
t.replace(p)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.90s70.59s+237.8%———
Process Start → First Event0.13s0.71s————
First Event → First Tool Call4.73s5.31s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles412+200.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)412+200.0%———
Output Tokens6571115+69.7%———
Reasoning / Thinking Tokens123334+171.5%———
Total Input Tokens96825310029+220.2%———
Cached Input Tokens75520278784+269.2%———
Uncached Input Tokens2130531245+46.7%———
Cost0.08190.1659+102.6%———
Cached vs Uncached Token Ratio3.54:18.92:1+151.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' -g 'go.mod' | head -200"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
git status --short'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README.md' | head -30 && \
cat pipeline/workflow.go"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput' . -g '"'!rename-plan.md'"' -g '"'!go.mod'"'"
semedit/semantic_assertion_mode (✓ ✓)
{
  "dry_run": true,
  "file": "pipeline/workflow_test.go",
  "mode": "relax"
}
4✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); s=s.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); fd, name=tempfile.mkstemp(dir=p.parent, prefix=\".workflow.\"); f=os.fdopen(fd,\"w\"); f.write(s); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(name,p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
7—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput"
}
8—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
9—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
10—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
11—✓ ✓
/bin/zsh -lc 'go test ./...'
12—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git status --short'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.07s51.35s+155.9%———
Process Start → First Event0.16s0.13s————
First Event → First Tool Call4.86s5.66s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles410+150.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)410+150.0%———
Output Tokens527856+62.4%———
Reasoning / Thinking Tokens113263+132.7%———
Total Input Tokens96565206609+114.0%———
Cached Input Tokens85760188160+119.4%———
Uncached Input Tokens1080518449+70.7%———
Cost0.05650.1071+89.8%———
Cached vs Uncached Token Ratio7.94:110.20:1+28.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat AGENTS.override.md && \
rg -n \"Processor|processor\" --glob '"'!rename-plan.md'"' --glob '"'!AGENTS.override.md'"'"
✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' -g 'Makefile'"
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile, time; p=Path(\"pipeline/workflow.go\"); data=p.read_text(); updated=data.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); assert updated "'!= data and "LoadInput" not in updated and "CheckInput" not in updated; fd, name=tempfile.mkstemp(dir=p.parent); f=os.fdopen(fd,"w"); f.write(updated); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(name,p); now=time.time_ns(); os.utime(p, ns=(now, now))'"' && \
git diff -- pipeline/workflow.go && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git status --short'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "CheckInput"
}
5—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.LoadInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
9—✓ ✓
/bin/zsh -lc 'go test ./...'
10—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git diff -- pipeline/workflow.go && \
git status --short -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency16.65s39.38s+136.5%———
Process Start → First Event0.13s0.11s————
First Event → First Tool Call4.40s7.02s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles46+50.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)46+50.0%———
Output Tokens397453+14.1%———
Reasoning / Thinking Tokens038————
Total Input Tokens95691220385+130.3%———
Cached Input Tokens85760198656+131.6%———
Uncached Input Tokens993121729+118.8%———
Cost0.05120.1101+115.0%———
Cached vs Uncached Token Ratio8.64:19.14:1+5.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'go.mod' -g '*.go' -g 'AGENTS*' -g 'PROJECT_BRIEF.md'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '"'!go.mod'"' -g '"'!rename-plan.md'"' -g '*.go' | head"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- workflow.go ---\\n' && \
cat pipeline/workflow.go"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|ReadRequest|ValidateRequest' . --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
s = s.replace('LoadInput', 'ReadRequest').replace('CheckInput', 'ValidateRequest')
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-02
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_02.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.26s40.95s+102.1%———
Process Start → First Event0.14s0.13s————
First Event → First Tool Call4.94s6.76s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles46+50.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)46+50.0%———
Output Tokens585519-11.3%———
Reasoning / Thinking Tokens11559-48.7%———
Total Input Tokens116282171129+47.2%———
Cached Input Tokens104960155648+48.3%———
Uncached Input Tokens1132215481+36.7%———
Cost0.06330.0848+34.0%———
Cached vs Uncached Token Ratio9.27:110.05:1+8.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (13 lines -> 13 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'Makefile' -g 'README*' -g 'SUBOPTIMAL_TOOLS.md'"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat AGENTS.override.md && \
sed -n '1,240p' pipeline/workflow.go"
? ✗
/bin/zsh -lc 'cat rename-plan.md && \
rg -n "semantic_rename|semantic_lookup|semantic_verify|semantic_find_references" .'
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|ReadRequest|ValidateRequest|Processor' . -g '"'!rename-plan.md'"' -g '"'!go.mod'"'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor"
}
4✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile; p=Path(\"pipeline/workflow.go\"); data=p.read_text(); data=data.replace(\"LoadInput\", \"ReadRequest\").replace(\"CheckInput\", \"ValidateRequest\"); fd,tmp=tempfile.mkstemp(dir=str(p.parent), prefix=\".workflow.go.\"); f=os.fdopen(fd,\"w\"); f.write(data); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(tmp,p)' && \
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

Test case: task-12-rename-scale-04

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency27.80s71.55s+157.3%———
Process Start → First Event0.15s0.16s————
First Event → First Tool Call5.84s5.43s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles517+240.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)517+240.0%———
Output Tokens607968+59.5%———
Reasoning / Thinking Tokens144280+94.4%———
Total Input Tokens117586204194+73.7%———
Cached Input Tokens105984182272+72.0%———
Uncached Input Tokens1160221922+89.0%———
Cost0.06490.1160+78.7%———
Cached vs Uncached Token Ratio9.13:18.31:1-9.0%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS*'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
sed -n '1,260p' pipeline/workflow.go && \
git status --short"
? ✗
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md'"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
}.items():
    s = s.replace(old, new)
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' pipeline"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "NormalizeValue"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MapFields"
}
7—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
8—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput"
}
9—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
10—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.MapFields"
}
11—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
12—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
13—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
14—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
15—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md && \
go test ./...'
16—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' --glob '*.go'"
17—semedit/semantic_inspect_symbol (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.ReadRequest"
}
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency21.16s47.65s+125.1%———
Process Start → First Event0.13s0.14s————
First Event → First Tool Call4.70s5.55s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles410+150.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)410+150.0%———
Output Tokens646395-38.9%———
Reasoning / Thinking Tokens1050-100.0%———
Total Input Tokens96675137882+42.6%———
Cached Input Tokens85760122368+42.7%———
Uncached Input Tokens1091515514+42.1%———
Cost0.05810.0743+27.9%———
Cached vs Uncached Token Ratio7.86:17.89:1+0.4%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
3✓ ✓
/bin/zsh -lc "rg -n '\\b(LoadInput|CheckInput|NormalizeValue|MapFields)\\b' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in [('LoadInput', 'ReadRequest'), ('CheckInput', 'ValidateRequest'), ('NormalizeValue', 'CanonicalizeValue'), ('MapFields', 'ProjectFields')]:
    s = s.replace(old, new)
tmp = p.with_name(p.name + '.tmp')
with tmp.open('w') as f:
    f.write(s)
    f.flush()
    os.fsync(f.fileno())
os.replace(tmp, p)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
10—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency24.17s49.62s+105.3%———
Process Start → First Event0.14s0.15s————
First Event → First Tool Call5.06s6.15s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles59+80.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)59+80.0%———
Output Tokens620474-23.5%———
Reasoning / Thinking Tokens6715-77.6%———
Total Input Tokens116322219583+88.8%———
Cached Input Tokens98816197632+100.0%———
Uncached Input Tokens1750621951+25.4%———
Cost0.07710.1104+43.3%———
Cached vs Uncached Token Ratio5.64:19.00:1+59.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'rename-plan.md' -g '*.go' -g 'go.mod' | sort"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
sed -n '1,240p' pipeline/workflow.go && \
rg -n 'Processor|\\.Process|Process[A-Z]|process[A-Z]' --glob '*.go' ."
✓ ✓
/bin/zsh -lc "rg --files -g 'PROJECT_BRIEF.md' -g '*.go' | head -80"
3✓ ✓
/bin/zsh -lc ''
✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields' --glob '*.go'"
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.LoadInput"
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
9—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.81s68.20s+282.9%———
Process Start → First Event0.14s0.14s————
First Event → First Tool Call5.13s5.83s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles312+300.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)312+300.0%———
Output Tokens480772+60.8%———
Reasoning / Thinking Tokens4598+117.8%———
Total Input Tokens76886309962+303.1%———
Cached Input Tokens67584288512+326.9%———
Uncached Input Tokens930221450+130.6%———
Cost0.04670.1366+192.5%———
Cached vs Uncached Token Ratio7.27:113.45:1+85.1%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files -g '*.go' -g 'go.mod' -g 'rename-plan.md'"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
sed -n '1,240p' pipeline/workflow.go && \
rg -n 'Processor|\\.Process|Process\\(' --glob '*.go'"
✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in [('LoadInput', 'ReadRequest'), ('CheckInput', 'ValidateRequest'), ('NormalizeValue', 'CanonicalizeValue'), ('MapFields', 'ProjectFields')]:
    s = s.replace(old, new)
p.write_text(s)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
11—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go && \
go test ./...'
12—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git rev-parse --show-toplevel && \
git status --short -- pipeline/workflow.go rename-plan.md go.mod'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.29s74.00s+304.6%———
Process Start → First Event0.12s0.12s————
First Event → First Tool Call4.81s4.99s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles415+275.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)415+275.0%———
Output Tokens461943+104.6%———
Reasoning / Thinking Tokens0374————
Total Input Tokens96650215413+122.9%———
Cached Input Tokens86784187648+116.2%———
Uncached Input Tokens986627765+181.4%———
Cost0.05210.1328+154.8%———
Cached vs Uncached Token Ratio8.80:16.76:1-23.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|func \\(["'^)]*Processor|'"\\.([A-Za-z][A-Za-z0-9_]*)\\(\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go'"
2? ✗
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); pairs={\"LoadInput\":\"ReadRequest\",\"CheckInput\":\"ValidateRequest\",\"NormalizeValue\":\"CanonicalizeValue\",\"MapFields\":\"ProjectFields\"};\\nfor old,new in pairs.items(): s=s.replace(old,new)\\np.write_text(s)'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "NormalizeValue"
}
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); pairs=((\"LoadInput\",\"ReadRequest\"),(\"CheckInput\",\"ValidateRequest\"),(\"NormalizeValue\",\"CanonicalizeValue\"),(\"MapFields\",\"ProjectFields\")); p.write_text(__import__(\"functools\").reduce(lambda text,pair:text.replace(*pair),pairs,s))'"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
4✓ ✓
/bin/zsh -lc "git diff -- pipeline/workflow.go && \
rg -n \"LoadInput|CheckInput|NormalizeValue|MapFields\" --glob '*.go' .; go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MapFields"
}
6—semedit/semantic_find_references (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
7—semedit/semantic_find_references (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
8—semedit/semantic_find_references (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
9—semedit/semantic_find_references (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
14—✓ ✓
/bin/zsh -lc 'git diff -- && \
git status --short && \
go test ./...'
15—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git diff -- pipeline/workflow.go && \
git status --short -- pipeline/workflow.go'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.25s54.30s+214.9%———
Process Start → First Event0.17s0.12s————
First Event → First Tool Call4.28s4.63s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles48+100.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)48+100.0%———
Output Tokens441628+42.4%———
Reasoning / Thinking Tokens7557-24.0%———
Total Input Tokens96512210708+118.3%———
Cached Input Tokens85760195072+127.5%———
Uncached Input Tokens1075215636+45.4%———
Cost0.05480.0964+76.0%———
Cached vs Uncached Token Ratio7.98:112.48:1+56.4%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g '*.go' -g 'go.mod' | sort"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat AGENTS.override.md 2>/dev/null || \
true'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat AGENTS.override.md && \
rg -n \"type Processor|func \\(.*Processor|Processor\\)|\\.([A-Za-z0-9_]+)\\(\" --glob '*.go'"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in [('LoadInput', 'ReadRequest'), ('CheckInput', 'ValidateRequest'), ('NormalizeValue', 'CanonicalizeValue'), ('MapFields', 'ProjectFields')]:
    s = s.replace(old, new)
p.write_text(s)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
8—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.60s63.30s+240.3%———
Process Start → First Event0.18s0.14s————
First Event → First Tool Call4.43s6.12s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles413+225.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)413+225.0%———
Output Tokens495650+31.3%———
Reasoning / Thinking Tokens10227-73.5%———
Total Input Tokens96679270446+179.7%———
Cached Input Tokens86784247296+185.0%———
Uncached Input Tokens989523150+134.0%———
Cost0.05390.1282+137.8%———
Cached vs Uncached Token Ratio8.77:110.68:1+21.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' | head -200 && \
cat rename-plan.md"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n '\\b(LoadInput|CheckInput|NormalizeValue|MapFields)\\b' . -g '*.go' -g '"'!**/*_test.go'"' && \
rg --files"
✓ ✓
/bin/zsh -lc "rg -n \"type Processor|LoadInput|CheckInput|NormalizeValue|MapFields\" pipeline --glob '*.go'"
3✓ ✓
/bin/zsh -lc 'cat pipeline/workflow_test.go'
semedit/semantic_assertion_mode (✓ ✓)
{
  "dry_run": true,
  "file": "pipeline/workflow.go",
  "mode": "relax"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in (
    ('LoadInput', 'ReadRequest'),
    ('CheckInput', 'ValidateRequest'),
    ('NormalizeValue', 'CanonicalizeValue'),
    ('MapFields', 'ProjectFields'),
):
    s = s.replace(old, new)
p.write_text(s)
PY
git diff -- pipeline/workflow.go && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
11—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
12—✓ ✓
/bin/zsh -lc 'go test ./...'
13—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go && \
git status --short'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency19.40s60.81s+213.5%———
Process Start → First Event0.13s0.15s————
First Event → First Tool Call4.59s5.20s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles412+200.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)412+200.0%———
Output Tokens514878+70.8%———
Reasoning / Thinking Tokens87241+177.0%———
Total Input Tokens96539200338+107.5%———
Cached Input Tokens85760177408+106.9%———
Uncached Input Tokens1077922930+112.7%———
Cost0.05590.1157+106.9%———
Cached vs Uncached Token Ratio7.96:17.74:1-2.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'go.mod' -g '*.go' -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'go.mod' -g '*.go' -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' | head -100 && \
cat rename-plan.md"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat go.mod && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|Processor' --glob '*.go' ."
3✓ ✓
/bin/zsh -lc "cat pipeline/workflow_test.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in [('LoadInput','ReadRequest'), ('CheckInput','ValidateRequest'), ('NormalizeValue','CanonicalizeValue'), ('MapFields','ProjectFields')]:
    s = s.replace(old, new)
fd, tmp = tempfile.mkstemp(dir=p.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'w') as f:
        f.write(s)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, p)
finally:
    if os.path.exists(tmp): os.unlink(tmp)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
7—semedit/semantic_rename (✓ ✓)
{
  "auto_organize_imports": true,
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
8—semedit/semantic_rename (✓ ✓)
{
  "auto_organize_imports": true,
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
9—semedit/semantic_rename (✓ ✓)
{
  "auto_organize_imports": true,
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
10—semedit/semantic_rename (✓ ✓)
{
  "auto_organize_imports": true,
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
11—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md && \
go test ./...'
12—✓ ✓
/bin/zsh -lc "git status --short && \
cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' --glob '*.go' ."
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency23.51s72.41s+208.0%———
Process Start → First Event0.14s0.22s————
First Event → First Tool Call5.04s6.80s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles511+120.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)511+120.0%———
Output Tokens6081163+91.3%———
Reasoning / Thinking Tokens0361————
Total Input Tokens116252365007+214.0%———
Cached Input Tokens104960339712+223.7%———
Uncached Input Tokens1129225295+124.0%———
Cost0.06210.1672+169.4%———
Cached vs Uncached Token Ratio9.30:113.43:1+44.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod'"
semedit/semantic_assertion_mode (✓ ✗): param "file" is required: invalid operation parameters
{
  "dry_run": true,
  "file": "",
  "mode": "relax"
}
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'docs/SUBOPTIMAL_TOOLS.md' -g 'AGENTS.md' -g '*.go' | head -100"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields' ."
✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' pipeline"
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.LoadInput"
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
9—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go && \
go test ./...'
10—✓ ✓
/bin/zsh -lc 'rg --files'
11—✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('docs/SUBOPTIMAL_TOOLS.md')
p.parent.mkdir(parents=True, exist_ok=True)
content = '''# Suboptimal semantic tool behavior\\n\\n- Tool: "'`semantic_assertion_mode`'"\\n- Target: no source file; the inventory inspection call omitted its required "'`file` parameter and returned `param "file" is required: invalid operation parameters`. No workaround was needed for the rename task; the applicable lookup and rename tools worked normally.'"\\n- Root cause: incorrect invocation parameters during tool capability inspection.\\n'''
tmp = p.with_suffix('.md.tmp')
tmp.write_text(content)
tmp.replace(p)
PY
"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-04
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_04.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.85s47.85s+168.1%———
Process Start → First Event0.16s0.20s————
First Event → First Tool Call5.48s5.59s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles37+133.3%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)37+133.3%———
Output Tokens394573+45.4%———
Reasoning / Thinking Tokens0104————
Total Input Tokens76958138580+80.1%———
Cached Input Tokens67584117504+73.9%———
Uncached Input Tokens937421076+124.8%———
Cost0.04530.0905+100.0%———
Cached vs Uncached Token Ratio7.21:15.58:1-22.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (17 lines -> 17 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|processor\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
cat rename-plan.md && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
semedit/semantic_outline (✓ ✓)
{
  "path": "pipeline/workflow.go"
}
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in [('LoadInput','ReadRequest'),('CheckInput','ValidateRequest'),('NormalizeValue','CanonicalizeValue'),('MapFields','ProjectFields')]:
    s = s.replace(old, new)
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
7—✓ ✓
/bin/zsh -lc "go test ./... && \
git status --short && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields' --glob '*.go'"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

Test case: task-12-rename-scale-08

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency22.78s143.23s+528.8%———
Process Start → First Event0.15s0.15s————
First Event → First Tool Call6.08s5.09s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles328+833.3%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)328+833.3%———
Output Tokens6681184+77.2%———
Reasoning / Thinking Tokens56240+328.6%———
Total Input Tokens78874223001+182.7%———
Cached Input Tokens68608203264+196.3%———
Uncached Input Tokens1026619737+92.3%———
Cost0.05190.1180+127.4%———
Cached vs Uncached Token Ratio6.68:110.30:1+54.1%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|func .*Processor|\\.([A-Za-z0-9_]+)\\(\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -200"
2✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n \"LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts\" --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"'"
✓ ✓
/bin/zsh -lc 'test -f PROJECT_BRIEF.md && \
cat PROJECT_BRIEF.md || \
true'
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    s = s.replace(old, new)
fd, name = tempfile.mkstemp(dir=p.parent, prefix='.workflow.', text=True)
try:
    with os.fdopen(fd, 'w') as f:
        f.write(s)
        f.flush()
        os.fsync(f.fileno())
    os.replace(name, p)
finally:
    if os.path.exists(name):
        os.unlink(name)
PY
go test ./..."
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
4—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "LoadInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "CheckInput"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "NormalizeValue"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "MapFields"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "RouteValue"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "StampEvent"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "CountItems"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "MergeParts"
}
12—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
13—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
14—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
15—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
16—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
17—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
18—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
19—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
20—✓ ✓
/bin/zsh -lc 'git diff --stat && \
git status --short && \
go test ./...'
21—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.ReadRequest"
}
22—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.ValidateRequest"
}
23—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.CanonicalizeValue"
}
24—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.ProjectFields"
}
25—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.DispatchValue"
}
26—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.AnnotateEvent"
}
27—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.TallyItems"
}
28—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.CombineParts"
}
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.89s88.08s+366.3%———
Process Start → First Event0.13s0.17s————
First Event → First Tool Call5.65s5.56s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles314+366.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)314+366.7%———
Output Tokens516884+71.3%———
Reasoning / Thinking Tokens60274+356.7%———
Total Input Tokens77185263948+242.0%———
Cached Input Tokens67584239104+253.8%———
Uncached Input Tokens960124844+158.8%———
Cost0.04810.1364+183.5%———
Cached vs Uncached Token Ratio7.04:19.62:1+36.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'AGENTS.md' -g '*.go' | head -200 && \
git status --short"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n 'type Processor|Processor|\\.\\w+\\(' --glob '*.go' pipeline"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat AGENTS.override.md && \
rg --files'
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
path = Path('pipeline/workflow.go')
text = path.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    text = text.replace(old, new)
fd, tmp = tempfile.mkstemp(dir=path.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'w') as f:
        f.write(text)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, path)
finally:
    if os.path.exists(tmp):
        os.unlink(tmp)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor"
}
4—semedit/semantic_inspect_symbol (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
14—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.80s84.87s+351.5%———
Process Start → First Event0.13s0.15s————
First Event → First Tool Call4.60s9.25s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles311+266.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)311+266.7%———
Output Tokens525392-25.3%———
Reasoning / Thinking Tokens560-100.0%———
Total Input Tokens78096203564+160.7%———
Cached Input Tokens67584179456+165.5%———
Uncached Input Tokens1051224108+129.3%———
Cost0.05040.1100+118.2%———
Cached vs Uncached Token Ratio6.43:17.44:1+15.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md' | head -100 && \
cat rename-plan.md"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '*.go' | head -50"
2✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
sed -n '1,260p' pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts' ."
semedit/semantic_outline (✓ ✓)
{
  "include_tests": false,
  "path": "pipeline"
}
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    s = s.replace(old, new)
tmp = p.with_suffix('.go.tmp')
with tmp.open('w') as f:
    f.write(s)
    f.flush()
    import os
    os.fsync(f.fileno())
tmp.replace(p)
PY
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
9—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
10—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
11—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency25.58s73.78s+188.4%———
Process Start → First Event0.14s0.13s————
First Event → First Tool Call5.46s5.18s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles412+200.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)412+200.0%———
Output Tokens820729-11.1%———
Reasoning / Thinking Tokens43218+407.0%———
Total Input Tokens97313209841+115.6%———
Cached Input Tokens86784185600+113.9%———
Uncached Input Tokens1052924241+130.2%———
Cost0.05880.1188+102.1%———
Cached vs Uncached Token Ratio8.24:17.66:1-7.1%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat go.mod && \
cat pipeline/workflow.go && \
cat pipeline/workflow_test.go'
semedit/semantic_outline (✓ ✓)
{
  "language": "go",
  "path": "pipeline/workflow.go"
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'cat pipeline/workflow_test.go && \
cat pipeline/workflow.go'
4? ✗
/bin/zsh -lc "gofmt -w pipeline/workflow.go && \
go test ./... && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts' --glob '*.go' ."
semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
8—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
10—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
11—semedit/semantic_rename (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
12—✓ ✓
/bin/zsh -lc 'go test ./... && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.06s98.48s+445.4%———
Process Start → First Event0.13s0.14s————
First Event → First Tool Call4.51s5.12s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles413+225.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)413+225.0%———
Output Tokens4461229+175.6%———
Reasoning / Thinking Tokens0504————
Total Input Tokens97139321398+230.9%———
Cached Input Tokens86784286976+230.7%———
Uncached Input Tokens1035534422+232.4%———
Cost0.05320.1795+237.6%———
Cached vs Uncached Token Ratio8.38:18.34:1-0.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -120"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat go.mod && \
find . -maxdepth 2 -type f -name 'PROJECT_BRIEF.md' -print"
3✓ ✓
/bin/zsh -lc "rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts' ."
semedit/semantic_outline (✓ ✓)
{
  "include_unexported": true,
  "path": "pipeline/workflow.go"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
for old, new in {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}.items():
    s = s.replace(old, new)
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
12—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go go.mod rename-plan.md -- && \
go test ./...'
13—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git status --short --untracked-files=no && \
git diff --stat'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency25.21s91.58s+263.3%———
Process Start → First Event0.15s0.15s————
First Event → First Tool Call5.06s5.88s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles419+375.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)419+375.0%———
Output Tokens797563-29.4%———
Reasoning / Thinking Tokens500-100.0%———
Total Input Tokens98634192935+95.6%———
Cached Input Tokens86784172288+98.5%———
Uncached Input Tokens1185020647+74.2%———
Cost0.06190.1017+64.3%———
Cached vs Uncached Token Ratio7.32:18.34:1+13.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|func \\(.*\\*?Processor\\)\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'AGENTS.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg -n \"LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts\" . --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat go.mod && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go'"
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    s = s.replace(old, new)
tmp = p.with_suffix('.go.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "git diff -- pipeline/workflow.go && \
rg -n \"LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts\" pipeline --glob '*.go'"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "CheckInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "NormalizeValue"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "MapFields"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "RouteValue"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "StampEvent"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "CountItems"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "MergeParts"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
19—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.17s99.93s+449.9%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call5.87s6.39s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles320+566.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)320+566.7%———
Output Tokens414813+96.4%———
Reasoning / Thinking Tokens0132————
Total Input Tokens77590228562+194.6%———
Cached Input Tokens67584205824+204.5%———
Uncached Input Tokens1000622738+127.2%———
Cost0.04710.1201+155.1%———
Cached vs Uncached Token Ratio6.75:19.05:1+34.0%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS*' -g 'PROJECT_BRIEF.md'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' | head -100 && \
git status --short"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat pipeline/workflow.go && \
rg -n \"Processor|\\.\\w+\\(\" --glob '*.go' ."
✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
3✓ ✓
/bin/zsh -lc "python3 -c 'from pathlib import Path; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); names={\"LoadInput\":\"ReadRequest\",\"CheckInput\":\"ValidateRequest\",\"NormalizeValue\":\"CanonicalizeValue\",\"MapFields\":\"ProjectFields\",\"RouteValue\":\"DispatchValue\",\"StampEvent\":\"AnnotateEvent\",\"CountItems\":\"TallyItems\",\"MergeParts\":\"CombineParts\"}; import re; s=re.sub(r\"\\b(\"+\"|\".join(names)+r\")\\b\", lambda m:names[m.group(0)], s); tmp=p.with_name(p.name+\".tmp\"); tmp.write_text(s); tmp.replace(p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
13—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
15—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
17—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
19—✓ ✓
/bin/zsh -lc 'git diff -- pipeline && \
git status --short && \
go test ./...'
20—✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts' pipeline"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency21.22s86.53s+307.7%———
Process Start → First Event0.16s0.14s————
First Event → First Tool Call4.35s4.84s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles318+500.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)318+500.0%———
Output Tokens608526-13.5%———
Reasoning / Thinking Tokens6964-7.2%———
Total Input Tokens78196167329+114.0%———
Cached Input Tokens67584144896+114.4%———
Uncached Input Tokens1061222433+111.4%———
Cost0.05190.0997+92.1%———
Cached vs Uncached Token Ratio6.37:16.46:1+1.4%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'rename-plan.md' -g 'go.mod' -g '*.go' | head -120 && \
cat rename-plan.md"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod'"
2✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
sed -n '1,260p' pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts' ."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
path = Path('pipeline/workflow.go')
text = path.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    text = text.replace(old, new)
fd, temporary = tempfile.mkstemp(dir=path.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'w') as stream:
        stream.write(text)
        stream.flush()
        os.fsync(stream.fileno())
    os.replace(temporary, path)
except BaseException:
    try:
        os.unlink(temporary)
    except FileNotFoundError:
        pass
    raise
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "NormalizeValue"
}
4—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MapFields"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "RouteValue"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "StampEvent"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CountItems"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MergeParts"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
18—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency18.36s71.36s+288.7%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call4.67s5.03s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles412+200.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)412+200.0%———
Output Tokens488631+29.3%———
Reasoning / Thinking Tokens038————
Total Input Tokens96925199835+106.2%———
Cached Input Tokens85760179200+109.0%———
Uncached Input Tokens1116520635+84.8%———
Cost0.05550.1047+88.9%———
Cached vs Uncached Token Ratio7.68:18.68:1+13.1%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g '*.go' -g 'go.mod' | head -200"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"type Processor|Processor|func \\(.*\\)\" --glob '*.go'"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat AGENTS.override.md 2>/dev/null && \
find . -name AGENTS.md -print'
? ✗
/bin/zsh -lc "cat pipeline/workflow.go; rg -n \"semantic_rename|semantic_lookup\" . --hidden --glob '"'!rename-plan.md'"' --glob '"'!AGENTS.override.md'"'"
3✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts' --glob '"'!rename-plan.md'"' --glob '"'!go.mod'"' ."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
}
for old, new in renames.items():
    s = s.replace(old, new)
tmp = p.with_name(p.name + '.tmp')
tmp.write_text(s)
tmp.replace(p)
PY
git diff -- pipeline/workflow.go && \
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
12—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-08
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_08.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency27.99s95.05s+239.6%———
Process Start → First Event0.13s0.12s————
First Event → First Tool Call4.23s4.72s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles523+360.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)523+360.0%———
Output Tokens958926-3.3%———
Reasoning / Thinking Tokens0101————
Total Input Tokens119638262230+119.2%———
Cached Input Tokens108032238080+120.4%———
Uncached Input Tokens1160624150+108.1%———
Cost0.06800.1327+95.2%———
Cached vs Uncached Token Ratio9.31:19.86:1+5.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (25 lines -> 25 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'AGENTS.md' -g '*.go' -g 'go.mod'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n 'Processor|\\.\\w+\\(' --glob '*.go' pipeline"
✓ ✓
/bin/zsh -lc ls
3✓ ✓
/bin/zsh -lc "cat pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts' ."
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor"
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.LoadInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.CheckInput"
}
8—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.NormalizeValue"
}
10—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.MapFields"
}
12—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
13—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.RouteValue"
}
14—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
15—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.StampEvent"
}
16—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
17—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.CountItems"
}
18—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
19—semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "symbol": "Processor.MergeParts"
}
20—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
21—✓ ✓
/bin/zsh -lc 'git diff --'
22—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts' pipeline"
23—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

Test case: task-12-rename-scale-16

Target: codex/gpt-6-luna/medium

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency22.32s147.29s+559.9%———
Process Start → First Event0.19s0.13s————
First Event → First Tool Call5.72s6.30s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles325+733.3%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)325+733.3%———
Output Tokens5561659+198.4%———
Reasoning / Thinking Tokens54404+648.1%———
Total Input Tokens77401316750+309.2%———
Cached Input Tokens67584294656+336.0%———
Uncached Input Tokens981722094+125.1%———
Cost0.04910.1547+215.3%———
Cached vs Uncached Token Ratio6.88:113.34:1+93.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g '*.go' -g '"'!vendor'"' | head -200"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' | head -60"
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
'LoadInput':'ReadRequest', 'CheckInput':'ValidateRequest', 'NormalizeValue':'CanonicalizeValue',
'MapFields':'ProjectFields', 'RouteValue':'DispatchValue', 'StampEvent':'AnnotateEvent',
'CountItems':'TallyItems', 'MergeParts':'CombineParts', 'FilterNoise':'PruneNoise',
'SortRecords':'OrderRecords', 'EncodePayload':'MarshalPayload', 'DecodeReply':'ParseReply',
'OpenChannel':'ConnectChannel', 'CloseChannel':'ReleaseChannel', 'FlushBuffer':'DrainBuffer',
'SaveResult':'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
fd, tmp = tempfile.mkstemp(prefix='.workflow.go.', dir=str(p.parent))
try:
    with os.fdopen(fd, 'w') as f:
        f.write(s)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, p)
finally:
    if os.path.exists(tmp):
        os.unlink(tmp)
PY

gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4—semedit/semantic_find_references (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
12—semedit/semantic_rename (✓ ✗): check Go diagnostics with gopls: exit gopls diagnostics session: JSON-RPC client is closed
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
13—✓ ✓
/bin/zsh -lc 'rg --files | head -40'
14—? ✗
/bin/zsh -lc "python3 -c 'import os,tempfile; p=\"docs/SUBOPTIMAL_TOOLS.md\"; os.makedirs(\"docs\",exist_ok=True); old=\"\";\\ntry:\\n old=open(p).read()\\nexcept FileNotFoundError: pass\\nentry=\"\\n- Tool: "'`semantic_rename`; target: `pipeline/workflow.go`; failure: renaming `Processor.MergeParts` to `CombineParts` returned `check Go diagnostics with gopls: exit gopls diagnostics session: JSON-RPC client is closed`; workaround: retry with semantic tooling; root cause: gopls diagnostics session closed unexpectedly.'"\\n\"; fd,tmp=tempfile.mkstemp(dir=\"docs\"); f=os.fdopen(fd,\"w\"); f.write(old+entry); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(tmp,p)'"
15—✓ ✓
/bin/zsh -lc "python3 - <<'PY'
import os, tempfile
p = 'docs/SUBOPTIMAL_TOOLS.md'
os.makedirs('docs', exist_ok=True)
try:
    with open(p) as f:
        old = f.read()
except FileNotFoundError:
    old = ''
entry = '\\n- Tool: "'`semantic_rename`; target: `pipeline/workflow.go`; failure: renaming `Processor.MergeParts` to `CombineParts` returned `check Go diagnostics with gopls: exit gopls diagnostics session: JSON-RPC client is closed`; workaround: retry with semantic tooling; root cause: gopls diagnostics session closed unexpectedly.'"\\n'
fd, tmp = tempfile.mkstemp(dir='docs')
with os.fdopen(fd, 'w') as f:
    f.write(old + entry)
    f.flush()
    os.fsync(f.fileno())
os.replace(tmp, p)
PY"
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
20—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
21—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
22—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
23—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
24—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
25—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency26.98s159.31s+490.4%———
Process Start → First Event0.14s0.14s————
First Event → First Tool Call4.42s6.14s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles435+775.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)435+775.0%———
Output Tokens813862+6.0%———
Reasoning / Thinking Tokens7694+23.7%———
Total Input Tokens98209294972+200.4%———
Cached Input Tokens86784270848+212.1%———
Uncached Input Tokens1142524124+111.2%———
Cost0.06140.1400+128.1%———
Cached vs Uncached Token Ratio7.60:111.23:1+47.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'rename-plan.md' -g '*.go' -g 'go.mod'"
✓ ✓
/bin/zsh -lc 'cat rename-plan.md'
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
git status --short'
✓ ✓
/bin/zsh -lc "rg --files -g '*.go' -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'README*' | head -100"
3? ✗
/bin/zsh -lc "python3 -c 'from pathlib import Path; import os, tempfile; p=Path(\"pipeline/workflow.go\"); s=p.read_text(); pairs=[(\"LoadInput\",\"ReadRequest\"),(\"CheckInput\",\"ValidateRequest\"),(\"NormalizeValue\",\"CanonicalizeValue\"),(\"MapFields\",\"ProjectFields\"),(\"RouteValue\",\"DispatchValue\"),(\"StampEvent\",\"AnnotateEvent\"),(\"CountItems\",\"TallyItems\"),(\"MergeParts\",\"CombineParts\"),(\"FilterNoise\",\"PruneNoise\"),(\"SortRecords\",\"OrderRecords\"),(\"EncodePayload\",\"MarshalPayload\"),(\"DecodeReply\",\"ParseReply\"),(\"OpenChannel\",\"ConnectChannel\"),(\"CloseChannel\",\"ReleaseChannel\"),(\"FlushBuffer\",\"DrainBuffer\"),(\"SaveResult\",\"PersistResult\")]; for a,b in pairs: s=s.replace(a,b); fd,tmp=tempfile.mkstemp(dir=p.parent); f=os.fdopen(fd,\"w\"); f.write(s); f.flush(); os.fsync(f.fileno()); f.close(); os.replace(tmp,p)' && \
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os
import tempfile

path = Path('pipeline/workflow.go')
source = path.read_text()
renames = [
    ('LoadInput', 'ReadRequest'), ('CheckInput', 'ValidateRequest'),
    ('NormalizeValue', 'CanonicalizeValue'), ('MapFields', 'ProjectFields'),
    ('RouteValue', 'DispatchValue'), ('StampEvent', 'AnnotateEvent'),
    ('CountItems', 'TallyItems'), ('MergeParts', 'CombineParts'),
    ('FilterNoise', 'PruneNoise'), ('SortRecords', 'OrderRecords'),
    ('EncodePayload', 'MarshalPayload'), ('DecodeReply', 'ParseReply'),
    ('OpenChannel', 'ConnectChannel'), ('CloseChannel', 'ReleaseChannel'),
    ('FlushBuffer', 'DrainBuffer'), ('SaveResult', 'PersistResult'),
]
for old, new in renames:
    source = source.replace(old, new)
fd, temporary = tempfile.mkstemp(dir=path.parent)
with os.fdopen(fd, 'w') as output:
    output.write(source)
    output.flush()
    os.fsync(output.fileno())
os.replace(temporary, path)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CheckInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MapFields"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "NormalizeValue"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "RouteValue"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "StampEvent"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CountItems"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "MergeParts"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "FilterNoise"
}
12—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "SortRecords"
}
13—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "EncodePayload"
}
14—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "DecodeReply"
}
15—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "OpenChannel"
}
16—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "CloseChannel"
}
17—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "FlushBuffer"
}
18—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "SaveResult"
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
20—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
21—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
22—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
23—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
24—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
25—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
26—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
27—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
28—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
29—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
30—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
31—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
32—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
33—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
34—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
35—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency22.28s162.77s+630.6%———
Process Start → First Event0.12s0.13s————
First Event → First Tool Call5.12s4.45s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles338+1166.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)338+1166.7%———
Output Tokens7521196+59.0%———
Reasoning / Thinking Tokens78336+330.8%———
Total Input Tokens80379335836+317.8%———
Cached Input Tokens69632308480+343.0%———
Uncached Input Tokens1074727356+154.5%———
Cost0.05470.1647+201.3%———
Cached vs Uncached Token Ratio6.48:111.28:1+74.0%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n \"Processor|func \\(.*\\)\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '*.go' -g 'go.mod'"
2✓ ✓
/bin/zsh -lc "rg --files -g '*.go' -g '"'!**/*_test.go'"' && \
cat pipeline/workflow.go && \
rg -n \"(LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult)\" --glob '"'!rename-plan.md'"'"
✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
p.write_text(s)
PY
gofmt -w pipeline/workflow.go
go test ./..."
✓ ✓
/bin/zsh -lc 'cat pipeline/workflow_test.go'
4—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts"
}
12—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise"
}
13—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords"
}
14—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload"
}
15—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply"
}
16—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel"
}
17—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel"
}
18—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer"
}
19—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult"
}
20—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
21—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
22—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
23—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
24—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
25—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
26—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
27—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
28—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
29—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
30—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
31—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
32—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
33—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
34—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
35—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
36—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
37—✓ ✓
/bin/zsh -lc 'go test ./...'
38—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git rev-parse --show-toplevel && \
git diff --stat'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency30.79s113.79s+269.5%———
Process Start → First Event0.14s0.13s————
First Event → First Tool Call5.87s4.44s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles520+300.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)520+300.0%———
Output Tokens896717-20.0%———
Reasoning / Thinking Tokens89117+31.5%———
Total Input Tokens120475232714+93.2%———
Cached Input Tokens108032209664+94.1%———
Uncached Input Tokens1244323050+85.2%———
Cost0.07040.1205+71.0%———
Cached vs Uncached Token Ratio8.68:19.10:1+4.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g 'README*' -g 'AGENTS*' -g 'go.mod' -g '*.go' | head -120"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
cat go.mod && \
git status --short'
✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat go.mod'
3✓ ✓
/bin/zsh -lc "rg -n '\\b(LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult)\\b' --glob '*.go' --glob '"'!**/*_test.go'"'"
semedit/semantic_outline (✓ ✓)
{
  "include_unexported": true,
  "language": "go",
  "path": "."
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os
import tempfile

path = Path('pipeline/workflow.go')
text = path.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    text = text.replace(old, new)
fd, tmp = tempfile.mkstemp(dir=path.parent, prefix='.workflow.', text=True)
try:
    with os.fdopen(fd, 'w') as f:
        f.write(text)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, path)
finally:
    if os.path.exists(tmp):
        os.unlink(tmp)
PY
rg -n '\\b(LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult)\\b' --glob '*.go' --glob '"'!**/*_test.go'"' || \
true
git diff -- pipeline/workflow.go"
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5✓ ✓
/bin/zsh -lc "sed -n '1,80p' pipeline/workflow.go && \
git status --short && \
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
20—✓ ✓
/bin/zsh -lc 'go test ./... && \
git status --short && \
git diff --stat'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency17.91s155.79s+770.1%———
Process Start → First Event0.27s0.13s————
First Event → First Tool Call4.10s6.34s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles335+1066.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)335+1066.7%———
Output Tokens522532+1.9%———
Reasoning / Thinking Tokens400-100.0%———
Total Input Tokens77401193680+150.2%———
Cached Input Tokens67584170240+151.9%———
Uncached Input Tokens981723440+138.8%———
Cost0.04850.1078+122.5%———
Cached vs Uncached Token Ratio6.88:17.26:1+5.5%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '*.go' -g 'go.mod' | sort"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
✓ ✓
/bin/zsh -lc 'cat PROJECT_BRIEF.md 2>/dev/null; cat pipeline/workflow.go'
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
'LoadInput': 'ReadRequest', 'CheckInput': 'ValidateRequest',
'NormalizeValue': 'CanonicalizeValue', 'MapFields': 'ProjectFields',
'RouteValue': 'DispatchValue', 'StampEvent': 'AnnotateEvent',
'CountItems': 'TallyItems', 'MergeParts': 'CombineParts',
'FilterNoise': 'PruneNoise', 'SortRecords': 'OrderRecords',
'EncodePayload': 'MarshalPayload', 'DecodeReply': 'ParseReply',
'OpenChannel': 'ConnectChannel', 'CloseChannel': 'ReleaseChannel',
'FlushBuffer': 'DrainBuffer', 'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
fd, tmp = tempfile.mkstemp(dir=p.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'w') as f:
        f.write(s)
        f.flush()
        os.fsync(f.fileno())
    os.replace(tmp, p)
finally:
    if os.path.exists(tmp):
        os.unlink(tmp)
PY
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
5—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
9—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
11—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
13—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
15—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
17—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
19—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise"
}
20—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
21—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords"
}
22—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
23—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload"
}
24—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
25—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply"
}
26—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
27—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel"
}
28—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
29—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel"
}
30—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
31—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer"
}
32—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
33—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult"
}
34—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
35—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.95s135.10s+544.8%———
Process Start → First Event0.12s0.16s————
First Event → First Tool Call4.50s6.33s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles421+425.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)421+425.0%———
Output Tokens631501-20.6%———
Reasoning / Thinking Tokens690-100.0%———
Total Input Tokens99296217495+119.0%———
Cached Input Tokens87808195584+122.7%———
Uncached Input Tokens1148821911+90.7%———
Cost0.05940.1099+85.0%———
Cached vs Uncached Token Ratio7.64:18.93:1+16.8%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg --files -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor"
}
3✓ ✓
/bin/zsh -lc "cat pipeline/workflow_test.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult' ."
✓ ✓
/bin/zsh -lc "sed -n '1,240p' pipeline/workflow.go"
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
p.write_text(s)
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "Processor.LoadInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
9—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
10—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
11—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
12—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
13—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
14—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
15—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
16—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
17—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
18—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
19—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
20—semedit/semantic_rename (✓ ✓)
{
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
21—✓ ✓
/bin/zsh -lc 'go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.64s152.09s+636.7%———
Process Start → First Event0.14s0.15s————
First Event → First Tool Call4.38s7.85s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles434+750.0%———
Initial Load / Discovery Turns10-100.0%———
MCP Discovery / Schema Turns00————
Tool Invocations (per run)434+750.0%———
Output Tokens625636+1.8%———
Reasoning / Thinking Tokens6939-43.5%———
Total Input Tokens99283234418+136.1%———
Cached Input Tokens87808191488+118.1%———
Uncached Input Tokens1147542930+274.1%———
Cost0.05930.1636+175.9%———
Cached vs Uncached Token Ratio7.65:14.46:1-41.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g '"'!*vendor*'"'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
rg -n 'type Processor|func \\(["'^)]*Processor'"\\)' --glob '*.go' ."
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go'
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput"
}
3✓ ✓
/bin/zsh -lc "cat pipeline/workflow_test.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult' ."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
p.write_text(s)
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
6—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
10—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
12—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
14—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
16—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
18—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise"
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
20—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords"
}
21—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
22—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload"
}
23—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
24—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply"
}
25—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
26—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel"
}
27—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
28—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel"
}
29—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
30—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer"
}
31—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
32—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult"
}
33—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
34—✓ ✓
/bin/zsh -lc 'git diff --stat && \
git diff --name-only && \
go test ./...'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency23.87s117.51s+392.2%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call4.46s5.05s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles421+425.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)421+425.0%———
Output Tokens662827+24.9%———
Reasoning / Thinking Tokens95126+32.6%———
Total Input Tokens98674186110+88.6%———
Cached Input Tokens87808168960+92.4%———
Uncached Input Tokens1086617150+57.8%———
Cost0.05860.0970+65.6%———
Cached vs Uncached Token Ratio8.08:19.85:1+21.9%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g '*.go' -g 'go.mod' -g 'AGENTS*'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
printf '\\n--- files ---\\n' && \
rg --files"
2✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
sed -n '1,260p' pipeline/workflow.go"
semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "LoadInput"
}
3✓ ✓
/bin/zsh -lc "rg -n '\\b(LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult)\\b' . -g '"'!rename-plan.md'"' -g '"'!go.mod'"'"
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
4✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
p.write_text(s)
PY
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
19—✓ ✓
/bin/zsh -lc 'git diff -- pipeline/workflow.go && \
git status --short'
20—✓ ✓
/bin/zsh -lc 'go test ./...'
21—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go && \
git diff --stat && \
git status --short -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md'
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency28.87s148.40s+413.9%———
Process Start → First Event0.12s0.21s————
First Event → First Tool Call4.46s5.01s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles521+320.0%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)521+320.0%———
Output Tokens8661081+24.8%———
Reasoning / Thinking Tokens168328+95.2%———
Total Input Tokens123529294329+138.3%———
Cached Input Tokens111104269568+142.6%———
Uncached Input Tokens1242524761+99.3%———
Cost0.07180.1469+104.7%———
Cached vs Uncached Token Ratio8.94:110.89:1+21.7%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
cat rename-plan.md && \
rg -n \"Processor|processor\" --glob '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go' -g 'go.mod' | head -100"
2✓ ✓
/bin/zsh -lc "rg -n \"(LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult)\" --glob '"'!rename-plan.md'"'"
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
sed -n '1,240p' pipeline/workflow.go"
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile, time
p = Path('pipeline/workflow.go')
replacements = {
    'LoadInput': 'ReadRequest',
    'CheckInput': 'ValidateRequest',
    'NormalizeValue': 'CanonicalizeValue',
    'MapFields': 'ProjectFields',
    'RouteValue': 'DispatchValue',
    'StampEvent': 'AnnotateEvent',
    'CountItems': 'TallyItems',
    'MergeParts': 'CombineParts',
    'FilterNoise': 'PruneNoise',
    'SortRecords': 'OrderRecords',
    'EncodePayload': 'MarshalPayload',
    'DecodeReply': 'ParseReply',
    'OpenChannel': 'ConnectChannel',
    'CloseChannel': 'ReleaseChannel',
    'FlushBuffer': 'DrainBuffer',
    'SaveResult': 'PersistResult',
}
data = p.read_bytes()
for old, new in replacements.items():
    data = data.replace(old.encode(), new.encode())
st = p.stat()
with tempfile.NamedTemporaryFile(dir=p.parent, delete=False) as f:
    temp = Path(f.name)
    f.write(data)
    f.flush()
    os.fsync(f.fileno())
os.chmod(temp, st.st_mode)
os.replace(temp, p)
now = time.time_ns()
os.utime(p, ns=(max(st.st_atime_ns, now), max(st.st_mtime_ns + 1, now)))
PY

gofmt -w pipeline/workflow.go
git diff -- pipeline/workflow.go"
semedit/semantic_lookup (✓ ✓)
{
  "file": "pipeline/workflow.go",
  "language": "go",
  "symbol": "Processor.LoadInput"
}
4✓ ✓
/bin/zsh -lc "sed -n '1,60p' pipeline/workflow.go && \
git status --short"
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest",
  "trust_workspace": true
}
5✓ ✓
/bin/zsh -lc 'go test ./...'
semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest",
  "trust_workspace": true
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue",
  "trust_workspace": true
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields",
  "trust_workspace": true
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue",
  "trust_workspace": true
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent",
  "trust_workspace": true
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems",
  "trust_workspace": true
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts",
  "trust_workspace": true
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise",
  "trust_workspace": true
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords",
  "trust_workspace": true
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload",
  "trust_workspace": true
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply",
  "trust_workspace": true
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel",
  "trust_workspace": true
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel",
  "trust_workspace": true
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer",
  "trust_workspace": true
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult",
  "trust_workspace": true
}
20—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- pipeline/workflow.go && \
go test ./...'
21—✓ ✓
/bin/zsh -lc "sed -n '1,120p' pipeline/workflow.go && \
git diff --stat && \
git status --short -- pipeline/workflow.go pipeline/workflow_test.go go.mod rename-plan.md"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published

default prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-12-rename-scale-16
Targetcodex/gpt-6-luna/medium
Prompt variantdefault
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_12_rename_scale_16.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Do not use semantic editing MCP tools; use standard file editing. When done, output DONE.

Semedit MCP Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “rename-plan.md”.

Apply every Processor method rename in rename-plan.md and update all call sites. Preserve behavior and run go test ./… before finishing. Use semedit semantic tools for supported source code modifications. Shell commands for builds and tests are allowed. When done, output DONE.

Initial Workspace State (Before Edit)
// Package pipeline provides independent processing stages for the rename scale benchmark.
package pipeline

type Processor struct{}

func (Processor) LoadInput(value int) int { return value + 1 }
func (Processor) CheckInput(value int) int { return value + 2 }
func (Processor) NormalizeValue(value int) int { return value + 3 }
func (Processor) MapFields(value int) int { return value + 4 }
func (Processor) RouteValue(value int) int { return value + 5 }
func (Processor) StampEvent(value int) int { return value + 6 }
func (Processor) CountItems(value int) int { return value + 7 }
func (Processor) MergeParts(value int) int { return value + 8 }
func (Processor) FilterNoise(value int) int { return value + 9 }
func (Processor) SortRecords(value int) int { return value + 10 }
func (Processor) EncodePayload(value int) int { return value + 11 }
func (Processor) DecodeReply(value int) int { return value + 12 }
func (Processor) OpenChannel(value int) int { return value + 13 }
func (Processor) CloseChannel(value int) int { return value + 14 }
func (Processor) FlushBuffer(value int) int { return value + 15 }
func (Processor) SaveResult(value int) int { return value + 16 }

func Run(processor Processor, value int) int {
	value = processor.LoadInput(value)
	value = processor.CheckInput(value)
	value = processor.NormalizeValue(value)
	value = processor.MapFields(value)
	value = processor.RouteValue(value)
	value = processor.StampEvent(value)
	value = processor.CountItems(value)
	value = processor.MergeParts(value)
	value = processor.FilterNoise(value)
	value = processor.SortRecords(value)
	value = processor.EncodePayload(value)
	value = processor.DecodeReply(value)
	value = processor.OpenChannel(value)
	value = processor.CloseChannel(value)
	value = processor.FlushBuffer(value)
	value = processor.SaveResult(value)
	return value
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.66s125.92s+509.6%———
Process Start → First Event0.13s0.13s————
First Event → First Tool Call4.40s5.49s————
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%———
Internal Tool Cycles323+666.7%———
Initial Load / Discovery Turns00————
MCP Discovery / Schema Turns00————
Tool Invocations (per run)323+666.7%———
Output Tokens6771106+63.4%———
Reasoning / Thinking Tokens50268+436.0%———
Total Input Tokens78277293917+275.5%———
Cached Input Tokens67584262912+289.0%———
Uncached Input Tokens1069331005+190.0%———
Cost0.05270.1604+204.3%———
Cached vs Uncached Token Ratio6.32:18.48:1+34.2%———
Oracle L1: Mutation PolicyPASSPASS————
Oracle L2: AST InvariantsPASSPASS————
Oracle L3: Clean BuildPASSPASS————
Oracle L4: Verification TestPASSPASS————
Semantic Tool Invocation Verified (per run)N/APASS————
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File pipeline/workflow.go modified (41 lines -> 41 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'rename-plan.md' -g '*.go' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'rename-plan.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS*' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc 'cat rename-plan.md && \
cat pipeline/workflow.go && \
git status --short'
✓ ✓
/bin/zsh -lc "cat rename-plan.md && \
cat PROJECT_BRIEF.md 2>/dev/null || \
true && \
rg --files -g '*.go' -g '"'!**/*_test.go'"'"
3✓ ✓
/bin/zsh -lc "python3 - <<'PY'
from pathlib import Path
import os, tempfile
p = Path('pipeline/workflow.go')
s = p.read_text()
renames = {
'LoadInput': 'ReadRequest', 'CheckInput': 'ValidateRequest',
'NormalizeValue': 'CanonicalizeValue', 'MapFields': 'ProjectFields',
'RouteValue': 'DispatchValue', 'StampEvent': 'AnnotateEvent',
'CountItems': 'TallyItems', 'MergeParts': 'CombineParts',
'FilterNoise': 'PruneNoise', 'SortRecords': 'OrderRecords',
'EncodePayload': 'MarshalPayload', 'DecodeReply': 'ParseReply',
'OpenChannel': 'ConnectChannel', 'CloseChannel': 'ReleaseChannel',
'FlushBuffer': 'DrainBuffer', 'SaveResult': 'PersistResult',
}
for old, new in renames.items():
    s = s.replace(old, new)
fd, name = tempfile.mkstemp(dir=p.parent, prefix='.workflow.go.')
try:
    with os.fdopen(fd, 'w') as f:
        f.write(s)
        f.flush()
        os.fsync(f.fileno())
    os.replace(name, p)
finally:
    if os.path.exists(name):
        os.unlink(name)
PY
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult|ReadRequest|ValidateRequest|CanonicalizeValue|ProjectFields|DispatchValue|AnnotateEvent|TallyItems|CombineParts|PruneNoise|OrderRecords|MarshalPayload|ParseReply|ConnectChannel|ReleaseChannel|DrainBuffer|PersistResult' --glob '*.go' .
gofmt -w pipeline/workflow.go
go test ./..."
semedit/semantic_outline (✓ ✓)
{
  "include_unexported": true,
  "path": "pipeline/workflow.go"
}
4—✓ ✓
/bin/zsh -lc 'cat pipeline/workflow.go'
5—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.LoadInput",
  "to": "ReadRequest"
}
6—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CheckInput",
  "to": "ValidateRequest"
}
7—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.NormalizeValue",
  "to": "CanonicalizeValue"
}
8—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MapFields",
  "to": "ProjectFields"
}
9—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.RouteValue",
  "to": "DispatchValue"
}
10—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.StampEvent",
  "to": "AnnotateEvent"
}
11—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CountItems",
  "to": "TallyItems"
}
12—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.MergeParts",
  "to": "CombineParts"
}
13—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FilterNoise",
  "to": "PruneNoise"
}
14—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SortRecords",
  "to": "OrderRecords"
}
15—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.EncodePayload",
  "to": "MarshalPayload"
}
16—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.DecodeReply",
  "to": "ParseReply"
}
17—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.OpenChannel",
  "to": "ConnectChannel"
}
18—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.CloseChannel",
  "to": "ReleaseChannel"
}
19—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.FlushBuffer",
  "to": "DrainBuffer"
}
20—semedit/semantic_rename (✓ ✓)
{
  "language": "go",
  "symbol": "Processor.SaveResult",
  "to": "PersistResult"
}
21—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'
22—✓ ✓
/bin/zsh -lc 'go test ./...'
23—? ✗
/bin/zsh -lc "cat pipeline/workflow.go && \
git diff -- pipeline/workflow.go && \
rg -n 'LoadInput|CheckInput|NormalizeValue|MapFields|RouteValue|StampEvent|CountItems|MergeParts|FilterNoise|SortRecords|EncodePayload|DecodeReply|OpenChannel|CloseChannel|FlushBuffer|SaveResult' -g '*.go' -g '"'!**/*_test.go'"'"
Baseline vs Semedit Agentic in Large Context
#VanillaSemedit MCP
1not publishednot published