Skip to content
Benchmark run task02-corrected-overlay-explicit-r15-luna6-20261006

Benchmark run task02-corrected-overlay-explicit-r15-luna6-20261006

This page contains exactly the publishable benchmark observations recorded in run task02-corrected-overlay-explicit-r15-luna6-20261006; 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-02-rename-cross-pkg

Target: codex/gpt-6-luna/medium

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency62.59s35.90s-42.6%16.73s20.16s+20.5%
Process Start → First Event0.13s0.12s—0.14s0.17s—
First Event → First Tool Call26.00s16.65s—5.11s5.38s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%32-33.3%
Initial Load / Discovery Turns10-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%32-33.3%
Output Tokens360214-40.6%265154-41.9%
Reasoning / Thinking Tokens690-100.0%310-100.0%
Total Input Tokens78575134492+71.2%78204104367+33.5%
Cached Input Tokens68608114432+66.8%6144086016+40.0%
Uncached Input Tokens996720060+101.3%1676418351+9.5%
Cost0.04740.0814+71.7%0.06100.0693+13.7%
Cached vs Uncached Token Ratio6.88:15.70:1-17.1%3.66:14.69:1+27.9%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!vendor'"' | head -200 && \
rg -n 'ValidateToken|VerifyToken' . -g '*.go' -g '"'!vendor'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n 'ValidateToken|VerifyToken' . -g '*.go' -g '"'!**/*_test.go'"'"
✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --name-only && \
git diff --stat'

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit: its semantic rename updated consuming packages in one step, which made this small refactor feel reassuringly precise.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,100p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg --files"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the rename followed the symbol across consuming packages in one focused operation, which felt reassuringly precise and saved me from manual edits.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency35.49s19.68s-44.6%24.01s21.34s-11.1%
Process Start → First Event0.15s0.13s—0.13s0.20s—
First Event → First Tool Call9.22s5.71s—7.25s4.88s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles220%42-50.0%
Initial Load / Discovery Turns10-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)220%42-50.0%
Output Tokens259251-3.1%402231-42.5%
Reasoning / Thinking Tokens620-100.0%740-100.0%
Total Input Tokens5838987506+49.9%10142187602-13.6%
Cached Input Tokens4940864512+30.6%8678476800-11.5%
Uncached Input Tokens898122994+156.0%1463710802-26.2%
Cost0.03880.0768+97.7%0.06420.0491-23.6%
Cached vs Uncached Token Ratio5.50:12.81:1-49.0%5.93:17.11:1+19.9%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273261369304000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

Using `semantic_lookup` and `semantic_rename` made the cross-package rename feel precise and reassuring, so I’d ask my owner to add semedit’s tools.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g 'AGENTS.override.md'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
rg -n '"'^'"' auth/token.go cmd/main.go"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273459265871000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git diff -- auth/token.go cmd/main.go"
—

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit gave me a straightforward way to rename a Go symbol across consuming packages and report clean diagnostics, so I’d ask my owner to add its tools.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency12.87s20.09s+56.1%19.79s24.04s+21.5%
Process Start → First Event0.17s0.14s—0.15s0.15s—
First Event → First Tool Call3.99s6.25s—5.10s5.43s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles220%42-50.0%
Initial Load / Discovery Turns10-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)220%42-50.0%
Output Tokens247243-1.6%350156-55.4%
Reasoning / Thinking Tokens680-100.0%00—
Total Input Tokens58388104474+78.9%100092104373+4.3%
Cached Input Tokens4940886016+74.1%8883286016-3.2%
Uncached Input Tokens898018458+105.5%1126018357+63.0%
Cost0.03870.0707+82.5%0.05470.0693+26.7%
Cached vs Uncached Token Ratio5.50:14.66:1-15.3%7.89:14.69:1-40.6%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!**/*_test.go'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273218357959000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the symbol lookup and cross-package rename handled the requested change directly, and seeing the rename complete without new diagnostics was reassuring.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|Validate[[:alnum:]_]*Token|auth\\.' ."
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3✓ ✓
/bin/zsh -lc 'git status --short && \
cat auth/token.go && \
cat cmd/main.go'
—
4file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

As the coding agent on this task, I’d ask my owner to add semedit: its lookup and rename tools made it easy to find `ValidateToken` and rename it across consuming packages, which felt reassuringly precise.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency24.55s25.41s+3.5%28.63s32.84s+14.7%
Process Start → First Event0.13s0.13s—0.14s0.13s—
First Event → First Tool Call4.76s9.06s—5.34s7.93s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%42-50.0%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%42-50.0%
Output Tokens477257-46.1%889168-81.1%
Reasoning / Thinking Tokens11211-90.2%1780-100.0%
Total Input Tokens98488104431+6.0%101863104409+2.5%
Cached Input Tokens8780870656-19.5%8166486016+5.3%
Uncached Input Tokens1068033775+216.2%2019918393-8.9%
Cost0.05600.1055+88.3%0.08430.0696-17.4%
Cached vs Uncached Token Ratio8.22:12.09:1-74.6%4.04:14.68:1+15.7%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
rg --files"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273183650353000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' . && \
git diff -- auth/token.go cmd/main.go"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the lookup gave me a precise symbol target, and the rename updated its consumers cleanly, which made this small refactor feel reassuringly straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | sort && \
sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go && \
git diff --quiet -- go.mod go.sum"
—

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s lookup and rename tools gave me a direct way to locate `ValidateToken` and rename it across consuming packages, so I’d ask my owner to add them.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency27.53s31.13s+13.1%23.28s30.84s+32.5%
Process Start → First Event0.18s0.24s—0.13s0.13s—
First Event → First Tool Call18.49s16.10s—5.35s5.55s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles220%42-50.0%
Initial Load / Discovery Turns10-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)220%42-50.0%
Output Tokens196234+19.4%470243-48.3%
Reasoning / Thinking Tokens00—9414-85.1%
Total Input Tokens58355135909+132.9%10128887494-13.6%
Cached Input Tokens49408116480+135.8%8985674752-16.8%
Uncached Input Tokens894719429+117.2%1143212742+11.5%
Cost0.03720.0806+116.9%0.05810.0538-7.5%
Cached vs Uncached Token Ratio5.52:16.00:1+8.6%7.86:15.87:1-25.4%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.go'"' '\\bValidateToken\\b' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s lookup and rename gave me a direct, workspace wide way to change `ValidateToken` to `VerifyToken`, and I’d ask my owner to add its tools.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!**/*_test.go'"' | head -200 && \
rg -n 'ValidateToken' . -g '*.go' -g '"'!**/*_test.go'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . && \
sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
git status --short"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273416159258000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . -g '*.go' && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the symbol across consuming packages in one focused operation, and I found that reassuring.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency16.87s31.20s+85.0%21.45s65.16s+203.7%
Process Start → First Event0.17s0.12s—0.15s0.14s—
First Event → First Tool Call7.35s6.08s—6.62s25.26s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles32-33.3%42-50.0%
Initial Load / Discovery Turns10-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)32-33.3%42-50.0%
Output Tokens522174-66.7%451244-45.9%
Reasoning / Thinking Tokens00—810-100.0%
Total Input Tokens79378104427+31.6%100655104477+3.8%
Cached Input Tokens6860886016+25.4%8985686016-4.3%
Uncached Input Tokens1077018411+70.9%1079918461+71.0%
Cost0.05060.0697+37.8%0.05610.0707+26.0%
Cached vs Uncached Token Ratio6.37:14.67:1-26.7%8.32:14.66:1-44.0%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' .; git status --short"
—

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s tools made a cross-package rename feel reassuringly precise, and I’d ask my owner to add them to my coding toolkit.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '"'!go.mod'"' -g '"'!go.sum'"' . && \
cat auth/token.go && \
cat cmd/main.go"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273361182475000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' . && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: semantic rename updated the cross package references cleanly, and seeing zero new diagnostics made this small refactor feel reassuringly precise.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency49.19s20.68s-58.0%21.21s74.40s+250.8%
Process Start → First Event0.12s0.13s—0.13s0.13s—
First Event → First Tool Call13.04s5.45s—6.54s27.75s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles32-33.3%32-33.3%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)32-33.3%32-33.3%
Output Tokens521152-70.8%536328-38.8%
Reasoning / Thinking Tokens00—2419-20.8%
Total Input Tokens78599104361+32.8%80060104562+30.6%
Cached Input Tokens5836886016+47.4%6144086016+40.0%
Uncached Input Tokens2023118345-9.3%1862018546-0.4%
Cost0.07170.0693-3.4%0.06890.0722+4.8%
Cached vs Uncached Token Ratio2.89:14.69:1+62.5%3.30:14.64:1+40.6%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg --files"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s lookup and rename tools made the cross-package rename feel dependable and effortless, so I’d ask my owner to add them.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273376260331000"
}
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '"'!test*'"' ; git status --short"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273376260331000"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s lookup and rename tools let me find `ValidateToken` and rename it across consuming packages with a clean diagnostic result, so I’d ask my owner to add them to my coding toolkit.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency16.93s18.97s+12.1%18.96s19.16s+1.1%
Process Start → First Event0.14s0.13s—0.53s0.13s—
First Event → First Tool Call5.42s7.07s—4.61s6.15s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles32-33.3%42-50.0%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)32-33.3%42-50.0%
Output Tokens260177-31.9%548279-49.1%
Reasoning / Thinking Tokens270-100.0%15937-76.7%
Total Input Tokens80736104352+29.3%106537104552-1.9%
Cached Input Tokens6963286016+23.5%9395286016-8.4%
Uncached Input Tokens1110418336+65.1%1258518536+47.3%
Cost0.04880.0696+42.7%0.06380.0718+12.6%
Cached vs Uncached Token Ratio6.27:14.69:1-25.2%7.47:14.64:1-37.8%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' . && \
git status --short"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the rename updated consuming packages in one focused operation, and seeing it complete cleanly was reassuring.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g '*.go' | head -200 && \
rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.sum'"' --glob '"'!go.mod'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' ."
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273452397733000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"' && \
git diff -- auth/token.go cmd/main.go go.mod go.sum"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit: its lookup and cross-package rename handled the requested refactor directly, and I found that reassuring.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency19.57s21.38s+9.3%18.93s18.25s-3.6%
Process Start → First Event1.61s1.41s—0.13s0.25s—
First Event → First Tool Call3.85s7.21s—5.03s6.15s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%32-33.3%
Initial Load / Discovery Turns30-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%32-33.3%
Output Tokens298276-7.4%2422420%
Reasoning / Thinking Tokens00—00—
Total Input Tokens102732139471+35.8%7989786261+8.0%
Cached Input Tokens91904118528+29.0%6963266560-4.4%
Uncached Input Tokens1082820943+93.4%1026519701+91.9%
Cost0.05380.0854+58.9%0.04610.0689+49.5%
Cached vs Uncached Token Ratio8.49:15.66:1-33.3%6.78:13.38:1-50.2%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg --files'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go cmd/main.go'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273114259200000"
}
3✓ ✓
/bin/zsh -lc "sed -n '1,100p' go.mod && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!*.sum'"' --glob '"'!go.mod'"' ."
—
4file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the requested symbol and its consumers in one call, which made this small cross-package change feel reassuringly straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273298044828000"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the rename handled the cross-package symbol change in one focused operation and reported clean diagnostics, which made this coding task feel reassuringly direct.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency23.54s25.29s+7.5%35.90s21.55s-40.0%
Process Start → First Event0.15s0.13s—0.13s0.15s—
First Event → First Tool Call4.42s9.08s—11.86s6.06s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles62-66.7%52-60.0%
Initial Load / Discovery Turns40-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)62-66.7%52-60.0%
Output Tokens426312-26.8%488169-65.4%
Reasoning / Thinking Tokens710-100.0%920-100.0%
Total Input Tokens120245104619-13.0%119197104397-12.4%
Cached Input Tokens10086475776-24.9%10700886016-19.6%
Uncached Input Tokens1938128843+48.8%1218918381+50.8%
Cost0.07990.0950+18.9%0.06450.0696+7.9%
Cached vs Uncached Token Ratio5.20:12.63:1-49.5%8.78:14.68:1-46.7%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg --files -g '"'!*test*'"' -g '"'!go.mod'"' -g '"'!go.sum'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273147848065000"
}
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' ."
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273147848065000"
}
3✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
—
4✓ ✓
/bin/zsh -lc 'git status --short'
—
5file_change (✓ ✓)—
6✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go'"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the lookup and cross-package rename were quick and clear, and I felt confident the requested references were updated without unrelated edits.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' -g '"'!vendor'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "."
}
2✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
rg -n 'ValidateToken|VerifyToken|auth\\.' -g '*.go'"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
3✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
sed -n '1,120p' auth/auth.go"
—
4file_change (✓ ✓)—
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' -g '*.go'"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the focused lookup and cross-package rename made this small change feel direct and dependable.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency22.27s62.75s+181.7%18.64s49.22s+164.0%
Process Start → First Event0.95s2.08s—0.14s0.18s—
First Event → First Tool Call6.16s22.86s—4.22s20.27s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%32-33.3%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%32-33.3%
Output Tokens359186-48.2%294351+19.4%
Reasoning / Thinking Tokens024—00—
Total Input Tokens98297108416+10.3%79804136027+70.5%
Cached Input Tokens8780889088+1.5%6144096000+56.2%
Uncached Input Tokens1048919328+84.3%1836440027+118.0%
Cost0.05270.0732+39.0%0.06490.1285+97.8%
Cached vs Uncached Token Ratio8.37:14.61:1-44.9%3.35:12.40:1-28.3%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1? ✗
/bin/zsh -lc "pwd && \
rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '"'!go.mod'"' -g '"'!go.sum'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'rg --files'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' . && \
git diff -- auth/token.go cmd/main.go"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I used semedit’s lookup and rename tools to locate `ValidateToken` and update its references across packages in one focused operation, and I’d ask my owner to add them because that made this rename feel direct and reliable.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273284207887000"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
sed -n '1,100p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg -l 'ValidateToken|VerifyToken' --glob '*.go' ."
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273284207887000"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I would ask my owner to add semedit’s tools: semantic lookup and rename made the cross-package change feel precise and straightforward, and the rename reported no new diagnostics.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency20.87s24.91s+19.4%58.44s17.30s-70.4%
Process Start → First Event0.16s0.16s—0.13s0.17s—
First Event → First Tool Call6.46s6.54s—8.44s4.54s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles220%52-60.0%
Initial Load / Discovery Turns10-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)220%52-60.0%
Output Tokens253261+3.2%571256-55.2%
Reasoning / Thinking Tokens3814-63.2%1040-100.0%
Total Input Tokens58619104524+78.3%11988286303-28.0%
Cached Input Tokens5043286016+70.6%10700873728-31.1%
Uncached Input Tokens818718508+126.1%1287412575-2.3%
Cost0.03670.0712+94.0%0.06740.0531-21.2%
Cached vs Uncached Token Ratio6.16:14.65:1-24.6%8.31:15.86:1-29.5%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273138870273000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the lookup and cross-package rename completed cleanly in sequence, which made this small refactor feel reliable and straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' | head -200"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2? ✗
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'README*' && \
rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
cat auth/token.go && \
cat auth/auth.go"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273326269902000"
}
3✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' .; rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '*.go' .; cat auth/token.go; cat auth/auth.go; rg --files | head -100"
—
4file_change (✓ ✓)—
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git status --short"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the lookup-to-rename workflow made a cross-package Go rename feel reassuringly precise, and the tool confirmed it introduced no diagnostics.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency20.11s25.26s+25.6%21.02s21.43s+1.9%
Process Start → First Event0.18s0.17s—0.14s0.14s—
First Event → First Tool Call5.38s6.79s—4.70s4.76s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles32-33.3%54-20.0%
Initial Load / Discovery Turns20-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)32-33.3%54-20.0%
Output Tokens514282-45.1%410563+37.3%
Reasoning / Thinking Tokens00—33262+693.9%
Total Input Tokens78540134520+71.3%118413169332+43.0%
Cached Input Tokens62464115456+84.8%110080147968+34.4%
Uncached Input Tokens1607619064+18.6%833321364+156.4%
Cost0.06220.0800+28.6%0.05390.1007+86.9%
Cached vs Uncached Token Ratio3.89:16.06:1+55.9%13.21:16.93:1-47.6%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_small-explicit_task-02-rename-cross-pkg_1791273265908231000"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the symbol across packages in one step and reported a clean result, which made this small change feel reassuringly straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!go.mod'"' -g '"'!go.sum'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|auth\\.' --glob '*.go'"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'
4file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'git status --short -- auth/token.go cmd/main.go && \
git diff -- auth/token.go cmd/main.go'
5✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' && \
git diff -- auth/token.go cmd/main.go"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic lookup and rename made the requested cross-package change feel direct and controlled, though this short run gave me only a narrow view of their value.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency24.43s80.38s+229.1%31.40s18.57s-40.9%
Process Start → First Event0.99s0.70s—0.14s0.15s—
First Event → First Tool Call6.24s22.05s—6.10s5.10s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles34+33.3%52-60.0%
Initial Load / Discovery Turns20-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)34+33.3%52-60.0%
Output Tokens524513-2.1%813375-53.9%
Reasoning / Thinking Tokens090—700-100.0%
Total Input Tokens84151171072+103.3%121564104660-13.9%
Cached Input Tokens72704148992+104.9%10086486016-14.7%
Uncached Input Tokens1144722080+92.9%2070018644-9.9%
Cost0.05330.1000+87.4%0.08800.0728-17.3%
Cached vs Uncached Token Ratio6.35:16.75:1+6.2%4.87:14.61:1-5.3%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
git status --short"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'git diff --'
4—✓ ✓
/bin/zsh -lc 'git diff -- auth/token.go cmd/main.go'

Semedit integration feedback (agent opinion, excluded from measurements):

I would ask my owner to add semedit’s tools: the semantic rename made a cross-package symbol change feel reassuringly direct, with no new diagnostics.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273322455093000"
}
2✓ ✓
/bin/zsh -lc 'rg --files'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273322455093000"
}
3✓ ✓
/bin/zsh -lc 'git status --short && \
cat auth/token.go && \
cat cmd/main.go'
—
4file_change (✓ ✓)—
5✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the symbol across consuming packages in one call, and I found that reassuringly direct.

explicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantexplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Call semantic_lookup for ValidateToken in auth/token.go, then call semantic_rename using the returned file and symbol ValidateToken with to= VerifyToken. Let it update all consuming packages; make no other changes. Parallelize independent read-only lookups. Perform mutations serially in the stated order or inside one ordered semantic_batch; never run overlapping mutations concurrently. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)Semedit Explicit (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency24.19s24.66s+1.9%14.49s21.93s+51.4%
Process Start → First Event0.95s1.58s—0.13s0.13s—
First Event → First Tool Call4.50s6.34s—4.40s6.49s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%32-33.3%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%32-33.3%
Output Tokens406173-57.4%254224-11.8%
Reasoning / Thinking Tokens10617-84.0%00—
Total Input Tokens9797290185-7.9%7812186222+10.4%
Cached Input Tokens8780876800-12.5%6144069632+13.3%
Uncached Input Tokens1016413385+31.7%1668116590-0.5%
Cost0.05380.0550+2.4%0.06020.0617+2.4%
Cached vs Uncached Token Ratio8.64:15.74:1-33.6%3.68:14.20:1+14.0%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.override.md' -g '*.go'"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' auth cmd"
—

Semedit integration feedback (agent opinion, excluded from measurements):

Using semedit’s lookup and rename tools let me rename `ValidateToken` across consuming packages with one focused operation, so I’d ask my owner to add them.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g '"'!go.mod'"' -g '"'!go.sum'"'; rg --files"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit-explicit_large-explicit_task-02-rename-cross-pkg_1791273295435839000"
}
3file_change (✓ ✓)—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the cross-package references in one call and reported no new diagnostics, which made this change feel reassuringly straightforward.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency62.59s33.89s-45.9%16.73s37.51s+124.2%
Process Start → First Event0.13s0.13s—0.14s0.15s—
First Event → First Tool Call26.00s4.81s—5.11s4.88s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%35+66.7%
Initial Load / Discovery Turns110%220%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%35+66.7%
Output Tokens360451+25.3%265845+218.9%
Reasoning / Thinking Tokens6972+4.3%31258+732.3%
Total Input Tokens78575111552+42.0%78204155446+98.8%
Cached Input Tokens6860897024+41.4%61440134656+119.2%
Uncached Input Tokens996714528+45.8%1676420790+24.0%
Cost0.04740.0671+41.5%0.06100.0994+63.1%
Cached vs Uncached Token Ratio6.88:16.68:1-3.0%3.66:16.48:1+76.7%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!vendor'"' | head -200 && \
rg -n 'ValidateToken|VerifyToken' . -g '*.go' -g '"'!vendor'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' -g 'go.mod' | head -100"
2file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273238975902000"
}
3✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n 'ValidateToken|VerifyToken' . -g '*.go' -g '"'!**/*_test.go'"'"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273238975902000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

Using semedit’s semantic rename made this cross-package change feel precise and low-friction, and I’d ask my owner to add its tools.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'README*' -g 'Makefile' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "sed -n '1,100p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg --files"
✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
cat auth/token.go && \
cat auth/auth.go"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273440919723000"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273440919723000"
}
5—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go go.mod go.sum '*_test.go' && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the cross-package call site cleanly and reported no new diagnostics, which made this small refactor feel reassuringly precise.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency24.19s58.51s+141.9%14.49s46.15s+218.4%
Process Start → First Event0.95s1.45s—0.13s0.14s—
First Event → First Tool Call4.50s4.37s—4.40s14.12s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles45+25.0%34+33.3%
Initial Load / Discovery Turns21-50.0%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)45+25.0%34+33.3%
Output Tokens406700+72.4%254570+124.4%
Reasoning / Thinking Tokens106147+38.7%00—
Total Input Tokens97972160633+64.0%78121154838+98.2%
Cached Input Tokens87808136704+55.7%61440119296+94.2%
Uncached Input Tokens1016423929+135.4%1668135542+113.1%
Cost0.05380.1046+94.5%0.06020.1258+108.8%
Cached vs Uncached Token Ratio8.64:15.71:1-33.9%3.68:13.36:1-8.9%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.override.md' -g '*.go'"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259196000"
}
3file_change (✓ ✓)semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259196000"
}
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' auth cmd"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259196000"
}
5—✓ ✓
/bin/zsh -lc "git diff -- && \
git status --short && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' ."

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit gave me a clean, cross-package rename with diagnostics and spared me manual edits, so I’d ask my owner to add its tools.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg -n \"ValidateToken|VerifyToken\" . -g '"'!go.mod'"' -g '"'!go.sum'"'"
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g '"'!go.mod'"' -g '"'!go.sum'"'; rg --files"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273286888559000"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273286888559000"
}
4—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n \"ValidateToken|VerifyToken\" . -g '"'!go.mod'"' -g '"'!go.sum'"'"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: semantic rename handled the cross-package change cleanly, and I appreciated being able to make it without search-and-replace.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency19.57s54.98s+181.0%18.93s47.09s+148.8%
Process Start → First Event1.61s1.81s—0.13s0.13s—
First Event → First Tool Call3.85s5.04s—5.03s5.51s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles48+100.0%36+100.0%
Initial Load / Discovery Turns31-66.7%220%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)48+100.0%36+100.0%
Output Tokens2981096+267.8%2421089+350.0%
Reasoning / Thinking Tokens094—0190—
Total Input Tokens102732277324+169.9%79897190736+138.7%
Cached Input Tokens91904255232+177.7%69632173056+148.5%
Uncached Input Tokens1082822092+104.0%1026517680+72.2%
Cost0.05380.1339+149.0%0.04610.1035+124.4%
Cached vs Uncached Token Ratio8.49:111.55:1+36.1%6.78:19.79:1+44.3%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg --files'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' | head -80"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go cmd/main.go'
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259180000"
}
3✓ ✓
/bin/zsh -lc "sed -n '1,100p' go.mod && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!*.sum'"' --glob '"'!go.mod'"' ."
✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
cat go.mod'
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259180000"
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273114259180000"
}
6—✓ ✓
/bin/zsh -lc 'rg --files'
7—file_change (✓ ✓)
8—✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go go.mod go.sum docs/SUBOPTIMAL_TOOLS.md && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go'"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename cleanly updated the exported function and its cross package caller, though the qualified lookup failure made the experience a little less smooth.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
? ✗
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '"'!go.mod'"' -g '"'!go.sum'"' && \
rg -n 'ValidateToken|VerifyToken' -g '*.go'"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
✓ ✓
/bin/zsh -lc 'ls -la && \
find . -maxdepth 3 -type f | head -60'
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273307714706000"
}
4—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273307714706000"
}
5—file_change (✓ ✓)
6—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273307714706000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

Semantic rename made the cross-package change feel reliable and pleasantly simple, and I’d ask my owner to add semedit’s tools to my coding setup.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.11s35.23s+75.2%21.02s66.83s+217.9%
Process Start → First Event0.18s0.15s—0.14s0.19s—
First Event → First Tool Call5.38s6.82s—4.70s4.61s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%58+60.0%
Initial Load / Discovery Turns220%32-33.3%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%58+60.0%
Output Tokens5145140%4101828+345.9%
Reasoning / Thinking Tokens00—33801+2327.3%
Total Input Tokens78540122663+56.2%118413252465+113.2%
Cached Input Tokens6246488832+42.2%110080228096+107.2%
Uncached Input Tokens1607633831+110.4%833324369+192.4%
Cost0.06220.1132+81.9%0.05390.1508+179.8%
Cached vs Uncached Token Ratio3.89:12.63:1-32.4%13.21:19.36:1-29.1%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go"
✓ ✓
/bin/zsh -lc "rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'go.mod' -g '*.go' && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' ."
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273275889450000"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273275889450000"
}
5—✓ ✓
/bin/zsh -lc "git diff --stat && \
git diff -- auth/token.go cmd/main.go cmd/main_test.go go.mod go.sum && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' ."

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename handled the cross-package update cleanly and reported that it introduced no diagnostics, which made this small change reassuringly straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!go.mod'"' -g '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|auth\\.' --glob '*.go'"
? ✗
/bin/zsh -lc "rg --files -g 'README*' -g 'PROJECT_BRIEF.md' -g 'Makefile' -g 'go.work' && \
git status --short"
3✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273479822241000"
}
4file_change (✓ ✓)file_change (✓ ✓)
5✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' && \
git diff -- auth/token.go cmd/main.go"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273479822241000"
}
6—semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273479822241000"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273479822241000"
}
8—✓ ✓
/bin/zsh -lc "go test ./... && \
git status --short && \
git diff --check && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' && \
git diff -- go.mod go.sum"

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit made the cross package rename feel reassuringly precise: I’d ask my owner to add its tools.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency24.43s30.74s+25.8%31.40s40.56s+29.2%
Process Start → First Event0.99s0.42s—0.14s0.13s—
First Event → First Tool Call6.24s5.79s—6.10s6.08s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%550%
Initial Load / Discovery Turns20-100.0%31-66.7%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%550%
Output Tokens524531+1.3%813891+9.6%
Reasoning / Thinking Tokens0120—70295+321.4%
Total Input Tokens84151142317+69.1%121564183904+51.3%
Cached Input Tokens72704124416+71.1%100864146688+45.4%
Uncached Input Tokens1144717901+56.4%2070037216+79.8%
Cost0.05330.0840+57.5%0.08800.1445+64.2%
Cached vs Uncached Token Ratio6.35:16.95:1+9.4%4.87:13.94:1-19.1%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "rg -n \"semantic_rename|ValidateToken|VerifyToken\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"'"
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
git status --short"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'README*' -g '*.go' -g 'go.mod' -g 'go.sum' | head -80"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "."
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
5—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n \"ValidateToken|VerifyToken\" --glob '*.go' --glob '"'!**/*_test.go'"' && \
git diff -- go.mod go.sum '*_test.go'"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename made the cross-package API change feel reassuringly direct, and reported no new diagnostics.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg -n \"ValidateToken|VerifyToken\" . --glob '"'!AGENTS.override.md'"' && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g '*semantic*' -g 'Makefile' -g 'go.mod'"
2✓ ✓
/bin/zsh -lc 'rg --files'
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273318250242000"
}
3✓ ✓
/bin/zsh -lc 'git status --short && \
cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273318250242000"
}
4file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273318250242000"
}
5✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n \"ValidateToken|VerifyToken\" --glob '*.go' . && \
git status --short"

Semedit integration feedback (agent opinion, excluded from measurements):

Using semedit’s rename tool updated the function and its cross-package call site with no introduced diagnostics, so I’d ask my owner to add it to my coding toolkit.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency35.49s24.56s-30.8%24.01s51.72s+115.4%
Process Start → First Event0.15s0.16s—0.13s0.16s—
First Event → First Tool Call9.22s6.48s—7.25s6.04s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles25+150.0%47+75.0%
Initial Load / Discovery Turns10-100.0%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)25+150.0%47+75.0%
Output Tokens259284+9.7%402868+115.9%
Reasoning / Thinking Tokens620-100.0%74396+435.1%
Total Input Tokens58389198611+240.2%101421189772+87.1%
Cached Input Tokens49408157952+219.7%86784161792+86.4%
Uncached Input Tokens898140659+352.7%1463727980+91.2%
Cost0.03880.1447+272.7%0.06420.1262+96.5%
Cached vs Uncached Token Ratio5.50:13.88:1-29.4%5.93:15.78:1-2.5%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken"
}
3—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
4—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'
5—✓ ✓
/bin/zsh -lc 'git status --short -- auth/token.go cmd/main.go go.mod go.sum'

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s lookup and rename tools made the cross-package rename feel straightforward, and I’d ask my owner to add them for coding tasks like this.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "git status --short && \
rg -n '"'^'"' auth/token.go cmd/main.go"
✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
rg -n \"ValidateToken|semantic_rename|semantic_lookup|semantic_verify\" . -g '"'!go.sum'"' -g '"'!go.mod'"'"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "."
}
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git diff -- auth/token.go cmd/main.go"
✓ ✓
/bin/zsh -lc 'ls docs && \
cat docs/SUBOPTIMAL_TOOLS.md 2>/dev/null || \
true'
5—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "."
}
6—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
7—✓ ✓
/bin/zsh -lc "git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n \"ValidateToken|VerifyToken\" . -g '"'!go.sum'"' -g '"'!go.mod'"'"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the public function and its cross-package caller cleanly, which made this small refactor feel reassuringly direct.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency20.87s25.41s+21.7%58.44s108.11s+85.0%
Process Start → First Event0.16s0.15s—0.13s0.14s—
First Event → First Tool Call6.46s5.92s—8.44s9.93s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles25+150.0%56+20.0%
Initial Load / Discovery Turns12+100.0%32-33.3%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)25+150.0%56+20.0%
Output Tokens253512+102.4%571783+37.1%
Reasoning / Thinking Tokens380-100.0%104112+7.7%
Total Input Tokens58619191118+226.0%119882195475+63.1%
Cached Input Tokens50432170240+237.6%107008174336+62.9%
Uncached Input Tokens818720878+155.0%1287421139+64.2%
Cost0.03670.1012+175.5%0.06740.1076+59.7%
Cached vs Uncached Token Ratio6.16:18.15:1+32.4%8.31:18.25:1-0.8%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '"'!AGENTS.override.md'"' -g '*.go' | head -80"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' ."
3—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273138631276000"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273138631276000"
}
5—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' . && \
git status --short"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename handled the exported function and its cross-package call site in one step, which made this small refactor feel reassuringly direct.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' | head -200"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -80"
2? ✗
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'README*' && \
rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
cat auth/token.go && \
cat auth/auth.go"
✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"'; git status --short"
3✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' .; rg -n 'ValidateToken|auth\\.ValidateToken|VerifyToken' --glob '*.go' .; cat auth/token.go; cat auth/auth.go; rg --files | head -100"
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273325798419000"
}
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273325798419000"
}
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git status --short"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273325798419000"
}
6—✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"' && \
go test ./..."

Semedit integration feedback (agent opinion, excluded from measurements):

I would ask my owner to add semedit’s tools: the semantic rename updated the exported function and its cross-package caller in one focused operation, and seeing verification report no new diagnostics gave me confidence in the change.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency16.93s79.35s+368.7%18.96s65.51s+245.5%
Process Start → First Event0.14s0.19s—0.53s0.15s—
First Event → First Tool Call5.42s9.88s—4.61s7.07s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%49+125.0%
Initial Load / Discovery Turns21-50.0%23+50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%49+125.0%
Output Tokens260792+204.6%5481466+167.5%
Reasoning / Thinking Tokens27220+714.8%159501+215.1%
Total Input Tokens80736156855+94.3%106537165567+55.4%
Cached Input Tokens69632134656+93.4%93952126464+34.6%
Uncached Input Tokens1110422199+99.9%1258539103+210.7%
Cost0.04880.1018+108.8%0.06380.1540+141.4%
Cached vs Uncached Token Ratio6.27:16.07:1-3.3%7.47:13.23:1-56.7%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' . && \
git status --short"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'go.sum' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273248317944000"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273248317944000"
}
4—semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273248317944000"
}
5—✓ ✓
/bin/zsh -lc "git status --short && \
git diff --stat && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' ."

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename quickly updated the cross-package caller and reported clean diagnostics, which made this small change feel reassuringly direct.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g '*.go' | head -200 && \
rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.sum'"' --glob '"'!go.mod'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "git status --short && \
sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|VerifyToken' ."
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md'
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"' && \
git diff -- auth/token.go cmd/main.go go.mod go.sum"
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273451440064000"
}
5—✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g 'PROJECT_BRIEF.md' -g 'docs/**' | head -40"
6—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273451440064000"
}
7—file_change (✓ ✓)
8—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273451440064000"
}
9—✓ ✓
/bin/zsh -lc "git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' ."

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s workspace-aware rename updated `ValidateToken` and its cross-package call site in one operation with no diagnostics, so I’d ask my owner to add its tools.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency23.54s42.43s+80.3%35.90s72.78s+102.7%
Process Start → First Event0.15s0.14s—0.13s0.15s—
First Event → First Tool Call4.42s5.67s—11.86s13.33s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles64-33.3%58+60.0%
Initial Load / Discovery Turns41-75.0%32-33.3%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)64-33.3%58+60.0%
Output Tokens426670+57.3%4881604+228.7%
Reasoning / Thinking Tokens71206+190.1%92604+556.5%
Total Input Tokens120245123434+2.7%119197218581+83.4%
Cached Input Tokens100864106240+5.3%107008198400+85.4%
Uncached Input Tokens1938117194-11.3%1218920181+65.6%
Cost0.07990.0805+0.8%0.06450.1277+98.0%
Cached vs Uncached Token Ratio5.20:16.18:1+18.7%8.78:19.83:1+12.0%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg --files -g '"'!*test*'"' -g '"'!go.mod'"' -g '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273166380831000"
}
3✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273166380831000"
}
4✓ ✓
/bin/zsh -lc 'git status --short'
✓ ✓
/bin/zsh -lc "git status --short && \
git diff --stat && \
git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' ."
5file_change (✓ ✓)—
6✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go'"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the rename handled the declaration and cross-package use in one semantic operation, and its diagnostics made the result feel dependable.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' -g '"'!vendor'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'Makefile' -g 'go.mod' -g '*.go' | head -120"
2✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
rg -n 'ValidateToken|VerifyToken|auth\\.' -g '*.go'"
✓ ✓
/bin/zsh -lc "rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'Makefile' -g '*.md' | head -80 && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"'"
3✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
sed -n '1,120p' auth/auth.go"
semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273346632337000"
}
4file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273346632337000"
}
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' -g '*.go'"
file_change (✓ ✓)
6—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273346632337000"
}
7—✓ ✓
/bin/zsh -lc "git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"'"
8—✓ ✓
/bin/zsh -lc "pwd; git diff --name-only -- auth/token.go cmd/main.go docs/SUBOPTIMAL_TOOLS.md; git status --short --untracked-files=no -- auth/token.go cmd/main.go docs/SUBOPTIMAL_TOOLS.md; rg -n 'semantic_lookup qualified Go name' ../../../docs/SUBOPTIMAL_TOOLS.md docs/SUBOPTIMAL_TOOLS.md 2>/dev/null"

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s semantic rename kept the cross-package change focused and reported clean diagnostics, so I’d ask my owner to add its tools to my coding workflow.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency27.53s47.63s+73.0%23.28s48.34s+107.7%
Process Start → First Event0.18s0.13s—0.13s0.14s—
First Event → First Tool Call18.49s4.70s—5.35s5.62s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles26+200.0%45+25.0%
Initial Load / Discovery Turns110%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)26+200.0%45+25.0%
Output Tokens196919+368.9%470621+32.1%
Reasoning / Thinking Tokens0196—940-100.0%
Total Input Tokens58355242457+315.5%101288138025+36.3%
Cached Input Tokens49408207616+320.2%89856114432+27.4%
Uncached Input Tokens894734841+289.4%1143223593+106.4%
Cost0.03720.1529+311.5%0.05810.0954+64.1%
Cached vs Uncached Token Ratio5.52:15.96:1+7.9%7.86:14.85:1-38.3%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.go'"' '\\bValidateToken\\b' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg -n \"ValidateToken|VerifyToken\" --glob '"'!AGENTS.override.md'"' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md'"
2file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "language": "go",
  "symbol": "auth.ValidateToken",
  "workspace_root": "."
}
3—file_change (✓ ✓)
4—semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "workspace_root": "."
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
6—✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" . && \
git diff --stat && \
git diff -- auth/token.go cmd/main.go go.mod go.sum docs/SUBOPTIMAL_TOOLS.md && \
git status --short'

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the declaration and cross-package caller cleanly, though the initial qualified lookup missed and I had to retry with the declaration name.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g '"'!**/*_test.go'"' | head -200 && \
rg -n 'ValidateToken' . -g '*.go' -g '"'!**/*_test.go'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'AGENTS.override.md' -g '"'!vendor'"' -g '"'!testdata'"' | head -80"
2✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . && \
sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
git status --short"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273413996344000"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273413996344000"
}
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' . -g '*.go' && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
✓ ✓
/bin/zsh -lc "git status --short && \
git diff -- go.mod go.sum && \
git diff --stat && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"'"
5—semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273413996344000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

After this run, I’d ask my owner to add semedit’s tools: the semantic rename updated the cross package caller cleanly, and seeing the reference check confirm the new name was reassuring.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency16.87s33.15s+96.5%21.45s31.11s+45.0%
Process Start → First Event0.17s0.17s—0.15s0.15s—
First Event → First Tool Call7.35s6.91s—6.62s5.32s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%45+25.0%
Initial Load / Discovery Turns12+100.0%23+50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%45+25.0%
Output Tokens522473-9.4%451613+35.9%
Reasoning / Thinking Tokens00—81146+80.2%
Total Input Tokens79378190824+140.4%100655128978+28.1%
Cached Input Tokens68608153856+124.3%89856109312+21.7%
Uncached Input Tokens1077036968+243.2%1079919666+82.1%
Cost0.05060.1368+170.3%0.05610.0860+53.2%
Cached vs Uncached Token Ratio6.37:14.16:1-34.7%8.32:15.56:1-33.2%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -100"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc "pwd; rg -n \"ValidateToken|VerifyToken\" --glob '*.go'"
3✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' .; git status --short"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273175267909000"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273175267909000"
}
5—✓ ✓
/bin/zsh -lc "git status --short; rg -n \"ValidateToken|VerifyToken\" --glob '*.go'"

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s semantic rename updated the exported function and its cross-package caller in one operation, which felt reassuringly direct; I’d ask my owner to add its tools for coding work like this.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' | head -100 && \
git status --short"
2✓ ✓
/bin/zsh -lc "git status --short && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '"'!go.mod'"' -g '"'!go.sum'"' . && \
cat auth/token.go && \
cat cmd/main.go"
✓ ✓
/bin/zsh -lc 'rg --files'
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc "sed -n '1,180p' auth/auth.go && \
sed -n '1,180p' auth/token.go && \
rg -n 'ValidateToken|VerifyToken' ."
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' . && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273360487505000"
}
5—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go && \
git status --short"

Semedit integration feedback (agent opinion, excluded from measurements):

I used semedit’s semantic rename to update `auth.ValidateToken` and its cross-package caller in one step, which felt reassuringly precise; I’d ask my owner to add its tools.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency12.87s40.02s+210.9%19.79s37.14s+87.6%
Process Start → First Event0.17s0.15s—0.15s0.24s—
First Event → First Tool Call3.99s5.53s—5.10s10.53s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles26+200.0%45+25.0%
Initial Load / Discovery Turns12+100.0%31-66.7%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)26+200.0%45+25.0%
Output Tokens247859+247.8%350741+111.7%
Reasoning / Thinking Tokens68209+207.4%0151—
Total Input Tokens58388184801+216.5%100092139121+39.0%
Cached Input Tokens49408166912+237.8%88832115456+30.0%
Uncached Input Tokens898017889+99.2%1126023665+110.2%
Cost0.03870.0998+157.6%0.05470.0992+81.2%
Cached vs Uncached Token Ratio5.50:19.33:1+69.6%7.89:14.88:1-38.2%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!**/*_test.go'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go' -g 'go.mod' -g 'go.sum' | head -120"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; cat AGENTS.override.md; rg -n 'ValidateToken|auth\\.' --glob '*.go' ."
3—semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273214270531000"
}
4—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273214270531000"
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273214270531000"
}
6—✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g '*.go' -g 'go.mod' -g 'go.sum' | sort && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git status --short"

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename handled the declaration and cross-package reference together, which made this small change feel reliable and pleasantly straightforward.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'AGENTS.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|Validate[[:alnum:]_]*Token|auth\\.' ."
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273401856461000"
}
3✓ ✓
/bin/zsh -lc 'git status --short && \
cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273401856461000"
}
4file_change (✓ ✓)✓ ✓
/bin/zsh -lc "git status --short && \
git diff --stat && \
git diff --name-only && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go'"
5—semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273401856461000"
}

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the cross-package call site cleanly, and seeing no new diagnostics made this small refactor feel reassuringly precise.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency24.55s33.94s+38.2%28.63s45.46s+58.8%
Process Start → First Event0.13s0.20s—0.14s0.13s—
First Event → First Tool Call4.76s8.20s—5.34s5.64s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles43-25.0%48+100.0%
Initial Load / Discovery Turns21-50.0%220%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)43-25.0%48+100.0%
Output Tokens477403-15.5%8891085+22.0%
Reasoning / Thinking Tokens11263-43.8%178223+25.3%
Total Input Tokens98488110133+11.8%101863261654+156.9%
Cached Input Tokens8780896000+9.3%81664222720+172.7%
Uncached Input Tokens1068014133+32.3%2019938934+92.8%
Cost0.05600.0652+16.3%0.08430.1694+101.0%
Cached vs Uncached Token Ratio8.22:16.79:1-17.4%4.04:15.72:1+41.5%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" . --glob '"'!go.mod'"' --glob '"'!go.sum'"'"
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
rg --files"
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791273182801038000"
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc "git status --short && \
rg -n \"ValidateToken|VerifyToken\" . --glob '"'!go.mod'"' --glob '"'!go.sum'"'"
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' . && \
git diff -- auth/token.go cmd/main.go"
—

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the public function and its cross-package use in one step, and I felt reassured seeing it report no new diagnostics.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "git status --short && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | sort && \
sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go"
? ✗
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'README*' -g 'SUBOPTIMAL_TOOLS.md'"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273365635276000"
}
4✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go && \
git diff --quiet -- go.mod go.sum"
✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g 'AGENTS.override.md' && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go'"
5—file_change (✓ ✓)
6—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273365635276000"
}
7—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273365635276000"
}
8—✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go go.mod go.sum && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go'"

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s semantic rename made the cross-package update feel reassuringly precise, so I’d ask my owner to add its tools; the initial qualified-symbol lookup miss was a small bump, but easy to recover from.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency22.27s36.48s+63.8%18.64s45.02s+141.5%
Process Start → First Event0.95s1.47s—0.14s0.14s—
First Event → First Tool Call6.16s5.50s—4.22s12.88s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles46+50.0%37+133.3%
Initial Load / Discovery Turns20-100.0%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)46+50.0%37+133.3%
Output Tokens359593+65.2%294780+165.3%
Reasoning / Thinking Tokens0188—0171—
Total Input Tokens98297191094+94.4%79804205677+157.7%
Cached Input Tokens87808171008+94.8%61440183296+198.3%
Uncached Input Tokens1048920086+91.5%1836422381+21.9%
Cost0.05270.1027+95.1%0.06490.1137+75.0%
Cached vs Uncached Token Ratio8.37:18.51:1+1.7%3.35:18.19:1+144.8%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1? ✗
/bin/zsh -lc "pwd && \
rg -n --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '"'!go.mod'"' -g '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS*.md' -g 'go.mod' -g '*.go' -g 'Makefile' -g '*semedit*'"
2✓ ✓
/bin/zsh -lc 'rg --files'
✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
cat auth/token.go && \
cat cmd/main.go && \
cat go.mod && \
rg -n 'ValidateToken|Validate' ."
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken",
  "workspace_root": "."
}
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' . && \
git diff -- auth/token.go cmd/main.go"
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "."
}
5—? ✗
/bin/zsh -lc "rg --files | rg 'SUBOPTIMAL_TOOLS'"
6—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename made the cross-package change feel reassuringly precise, though I only tried one small task.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' -g 'README*' | head -80"
2✓ ✓
/bin/zsh -lc "git status --short && \
sed -n '1,100p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg -l 'ValidateToken|VerifyToken' --glob '*.go' ."
✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|semantic_rename|semantic_lookup' ."
3file_change (✓ ✓)? ✗
/bin/zsh -lc "rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'README*'"
4—semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273281428185000"
}
5—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273281428185000"
}
6—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum'
7—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' auth cmd/main.go && \
git diff --no-ext-diff -- auth/token.go cmd/main.go"

Semedit integration feedback (agent opinion, excluded from measurements):

The semantic rename worked cleanly across the declaration and its consumer, which was reassuring; based on this small task, I’d ask my owner to add semedit’s tools for reliable symbol renames.

implicit prompt · prescriptive MCP instructions · write semedit restriction

SettingValue
Test casetask-02-rename-cross-pkg
Targetcodex/gpt-6-luna/medium
Prompt variantimplicit
MCP server instructionsprescriptive
Semedit arm restrictionwrite
Fixturetestdata/bench/task_02_rename_cross_pkg.txtar

Vanilla LLM Prompt:

Do not edit tests. You are forbidden to modify protected files: “go.mod”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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”, “go.sum”.

Rename public function auth.ValidateToken to auth.VerifyToken across all consuming packages. 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 auth

func ValidateToken(t string) bool {
	return t != ""
}
MetricVanilla (Small)MCP (Small)Δ (Small)Vanilla (Large)MCP (Large)Δ (Large)
Wall-Clock Latency49.19s39.91s-18.9%21.21s36.91s+74.0%
Process Start → First Event0.12s0.17s—0.13s0.14s—
First Event → First Tool Call13.04s5.74s—6.54s4.63s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%35+66.7%
Initial Load / Discovery Turns220%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%35+66.7%
Output Tokens521458-12.1%536654+22.0%
Reasoning / Thinking Tokens064—2484+250.0%
Total Input Tokens78599142533+81.3%80060163259+103.9%
Cached Input Tokens58368125440+114.9%61440129280+110.4%
Uncached Input Tokens2023117093-15.5%1862033979+82.5%
Cost0.07170.0806+12.5%0.06890.1265+83.6%
Cached vs Uncached Token Ratio2.89:17.34:1+154.4%3.30:13.80:1+15.3%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSPASS—PASSPASS—
Oracle L3: Clean BuildPASSPASS—PASSPASS—
Oracle L4: Verification TestPASSPASS—PASSPASS—
Semantic Tool Invocation Verified (per run)N/APASS—N/APASS—
Baseline vs Semedit Agentic in Small Context
  • Vanilla (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Small Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' -g 'Makefile' -g 'README*' | head -100"
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg --files"
✓ ✓
/bin/zsh -lc "cat auth/token.go && \
cat cmd/main.go && \
cat go.mod && \
rg -n 'ValidateToken|auth\\.' --glob '*.go' ."
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken",
  "workspace_root": "."
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
5—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
go build ./..."

Semedit integration feedback (agent opinion, excluded from measurements):

I’d ask my owner to add semedit’s tools: the semantic rename updated the exported function and its cross-package use cleanly, which felt reassuring and saved me from manual edits.
Baseline vs Semedit Agentic in Large Context
  • Vanilla (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
  • Semedit MCP (Baseline vs Semedit Agentic in Large Context) Edit: File auth/token.go modified (5 lines -> 5 lines)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" .'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'README*' -g 'go.mod' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '"'!test*'"' ; git status --short"
✓ ✓
/bin/zsh -lc "cat auth/auth.go && \
rg -n \"ValidateToken|VerifyToken|semantic_rename|semedit\" . -g '"'!*.sum'"' -g '"'!go.mod'"'"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "ValidateToken"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791273395685230000"
}
5—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum'

Semedit integration feedback (agent opinion, excluded from measurements):

Semedit’s semantic rename made this cross-package change feel reassuringly direct, and I’d ask my owner to add its tools for coding tasks like this.