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

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

This page contains exactly the publishable benchmark observations recorded in run task02-corrected-overlay-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 auth.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.06s44.28s+26.3%22.96s20.24s-11.8%
Process Start → First Event0.14s0.17s—0.15s0.13s—
First Event → First Tool Call13.07s13.01s—4.52s5.21s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles43-25.0%42-50.0%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)43-25.0%42-50.0%
Output Tokens680570-16.2%575234-59.3%
Reasoning / Thinking Tokens38201+428.9%2100-100.0%
Total Input Tokens101289133719+32.0%10165986385-15.0%
Cached Input Tokens92928100096+7.7%8678470656-18.6%
Uncached Input Tokens836133623+302.1%1487515729+5.7%
Cost0.05310.1187+123.5%0.06870.0599-12.8%
Cached vs Uncached Token Ratio11.11:12.98:1-73.2%5.83:14.49:1-23.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 "ValidateToken|VerifyToken" .'
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.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_1791271991623144000"
}
3file_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_1791271991623144000"
}
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):

I would ask my owner to add semedit’s tools: the semantic rename updated the symbol across consuming packages with no introduced diagnostics, though my first qualified-name attempt failed and I had to retry with the lookup’s unqualified symbol.
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.override.md'"' | head -100 && \
rg -n 'ValidateToken|VerifyToken' . -g '"'!go.sum'"' -g '"'!go.mod'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "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 --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md'"
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_1791272223008505000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.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 a cross-package symbol change feel direct and reliable, and I was glad not to rely on text replacement.

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 auth.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 Latency11.71s18.77s+60.3%24.75s21.14s-14.6%
Process Start → First Event0.13s0.16s—0.14s0.14s—
First Event → First Tool Call3.07s5.95s—5.40s6.51s—
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 Tokens300252-16.0%548266-51.5%
Reasoning / Thinking Tokens477-85.1%1800-100.0%
Total Input Tokens78243104652+33.8%10168687643-13.8%
Cached Input Tokens6656088064+32.3%9292871680-22.9%
Uncached Input Tokens1168316588+42.0%875815963+82.3%
Cost0.05020.0667+33.0%0.05420.0612+12.8%
Cached vs Uncached Token Ratio5.70:15.31:1-6.8%10.61:14.49:1-57.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 --glob '*.go' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
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_1791272035706958000"
}
3✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
—

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

I’d ask my owner to add semedit’s tools: the lookup and cross-package rename gave me a direct, focused way to make the requested change, and seeing the rename complete with no 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 '*.go' -g '*.md' | head -200 && \
rg -n 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'auth\\.' --glob '*.go' . && \
cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken|auth\\.ValidateToken' --glob '"'!**/*_test.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_1791272274485117000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- 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 rename made a cross-package change in one call and reported clean diagnostics, which felt 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 auth.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 Latency13.89s32.52s+134.1%26.27s39.12s+48.9%
Process Start → First Event0.14s0.14s—0.15s0.15s—
First Event → First Tool Call4.53s6.41s—5.58s7.33s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%440%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%440%
Output Tokens512337-34.2%690655-5.1%
Reasoning / Thinking Tokens0118—0116—
Total Input Tokens78598133392+69.7%101314194354+91.8%
Cached Input Tokens71680116480+62.5%86784170240+96.2%
Uncached Input Tokens691816912+144.5%1453024114+66.0%
Cost0.04160.0771+85.2%0.06660.1125+68.8%
Cached vs Uncached Token Ratio10.36:16.89:1-33.5%5.97:17.06:1+18.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 '*.go' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go'"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}

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

I’d ask my owner to add semedit’s tools: the lookup and cross-package rename made the requested change feel direct and controlled, though I had to correct the rename’s symbol name after my first attempt failed.
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 '"'!AGENTS.override.md'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.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_1791272212739820000"
}
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.ValidateToken"
}
4✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' '\\bValidateToken\\b|\\bVerifyToken\\b' auth cmd && \
git diff -- auth/token.go 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_1791272212739820000"
}

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

Semedit’s semantic rename saved me from a risky cross-package text replacement and verified the result, 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 auth.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 Latency31.67s22.89s-27.7%22.10s72.15s+226.4%
Process Start → First Event0.23s0.15s—0.14s0.15s—
First Event → First Tool Call12.68s5.86s—7.57s31.92s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%52-60.0%
Initial Load / Discovery Turns20-100.0%40-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%52-60.0%
Output Tokens627232-63.0%356246-30.9%
Reasoning / Thinking Tokens00—00—
Total Input Tokens9869086394-12.5%100970104628+3.6%
Cached Input Tokens9088075776-16.6%9292888064-5.2%
Uncached Input Tokens781010618+36.0%804216564+106.0%
Cost0.05010.0484-3.4%0.04780.0665+39.2%
Cached vs Uncached Token Ratio11.64:17.14:1-38.7%11.56:15.32:1-54.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 '*.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-explicit_small-explicit_task-02-rename-cross-pkg_1791271955684820000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
—

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

I’d ask my owner to add semedit: its semantic rename updated the requested symbol across packages and reported no new diagnostics, 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 "rg -n \"ValidateToken|ValidateToken\\(\" ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
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_1791272171864032000"
}
3✓ ✓
/bin/zsh -lc 'git status --short'
—
4✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
—
5file_change (✓ ✓)—

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

Using semantic lookup and rename let me find and update `ValidateToken` across its consumers with a clear success result, so I’d ask my owner to add semedit’s tools to my coding setup.

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 auth.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 Latency30.24s47.09s+55.7%20.11s52.27s+160.0%
Process Start → First Event0.14s0.14s—0.14s0.16s—
First Event → First Tool Call13.78s22.77s—7.64s21.47s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%32-33.3%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%32-33.3%
Output Tokens523665+27.2%271240-11.4%
Reasoning / Thinking Tokens0194—380-100.0%
Total Input Tokens78675133915+70.2%79823104625+31.1%
Cached Input Tokens58368111360+90.8%7270488064+21.1%
Uncached Input Tokens2030722555+11.1%711916561+132.6%
Cost0.07190.0950+32.1%0.03980.0664+66.7%
Cached vs Uncached Token Ratio2.87:14.94:1+71.8%10.21:15.32:1-47.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 \"ValidateToken|VerifyToken\" . --glob '"'!go.mod'"' --glob '"'!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_1791271990103100000"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791271990103100000"
}
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-explicit_small-explicit_task-02-rename-cross-pkg_1791271990103100000"
}

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

Semedit’s tools did the cross package rename with no diagnostics, which made the edit feel reassuringly precise; 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'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.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",
  "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_1791272219030286000"
}
3file_change (✓ ✓)—

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

Using `semantic_lookup` to anchor a workspace-wide `semantic_rename` felt reassuringly precise, and I’d ask my owner to add semedit’s tools for coding tasks like this.

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 auth.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.59s31.69s+40.3%23.01s47.90s+108.1%
Process Start → First Event0.13s0.14s—0.13s0.14s—
First Event → First Tool Call4.35s4.34s—5.46s9.41s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles53-40.0%53-40.0%
Initial Load / Discovery Turns30-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)53-40.0%53-40.0%
Output Tokens558420-24.7%420902+114.8%
Reasoning / Thinking Tokens180207+15.0%0483—
Total Input Tokens100853133509+32.4%119399134243+12.4%
Cached Input Tokens92928116480+25.3%110080116480+5.8%
Uncached Input Tokens792517029+114.9%931917763+90.6%
Cost0.05230.0795+52.2%0.05610.0908+62.0%
Cached vs Uncached Token Ratio11.73:16.84:1-41.7%11.81:16.56:1-44.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'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
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"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken"
}
3✓ ✓
/bin/zsh -lc 'git status --short'
semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
4file_change (✓ ✓)—
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
—

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

I would ask my owner to add semedit’s tools: the rename propagated across consuming packages, though I had to correct the symbol qualification after the first rename call failed.
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' | head -200"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|Validate Token|Validate' . && \
cat go.mod && \
cat AGENTS.override.md"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791272161054283000"
}
3✓ ✓
/bin/zsh -lc "cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_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-explicit_large-explicit_task-02-rename-cross-pkg_1791272161054283000"
}
4file_change (✓ ✓)—
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 rename updated references across packages and verified cleanly, though I had to retry because the qualified symbol name didn’t resolve.

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 auth.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.64s23.07s+38.7%26.56s27.63s+4.0%
Process Start → First Event0.14s0.14s—0.14s0.16s—
First Event → First Tool Call4.33s10.33s—5.45s4.21s—
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 Tokens318177-44.3%755242-67.9%
Reasoning / Thinking Tokens00—940-100.0%
Total Input Tokens78400104485+33.3%10142486409-14.8%
Cached Input Tokens7168088064+22.9%9292875776-18.5%
Uncached Input Tokens672016421+144.4%849610633+25.2%
Cost0.03870.0653+68.7%0.05510.0486-11.9%
Cached vs Uncached Token Ratio10.67:15.36:1-49.7%10.94:17.13:1-34.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 "rg -n --glob '"'!**/*_test.go'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "."
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
3✓ ✓
/bin/zsh -lc "rg -n --glob '"'!**/*_test.go'"' --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 lookup and rename made the cross package change feel reassuringly direct, and the rename 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 --hidden --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'git status --short && \
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_1791272185848524000"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' '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: the lookup pinpointed `ValidateToken` and the rename updated consuming packages in one step, which felt 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 auth.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 Latency14.20s43.87s+209.0%25.82s27.87s+8.0%
Process Start → First Event0.13s0.15s—0.13s0.17s—
First Event → First Tool Call4.45s5.18s—5.85s8.13s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles24+100.0%52-60.0%
Initial Load / Discovery Turns10-100.0%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)24+100.0%52-60.0%
Output Tokens226789+249.1%490279-43.1%
Reasoning / Thinking Tokens27310+1048.1%780-100.0%
Total Input Tokens58495164705+181.6%121431134596+10.8%
Cached Input Tokens47360145920+208.1%112128117504+4.8%
Uncached Input Tokens1113518785+68.7%930317092+83.7%
Cost0.04280.0972+126.8%0.05840.0756+29.5%
Cached vs Uncached Token Ratio4.25:17.77:1+82.6%12.05:16.87:1-43.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'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791272029156038000"
}
3—semedit/semantic_inspect_symbol (✓ ✓)
{
  "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_1791272029156038000"
}
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-explicit_small-explicit_task-02-rename-cross-pkg_1791272029156038000"
}

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

Semedit’s semantic tools made the cross-package rename feel precise and low-risk, and I’d ask my owner to add them because they changed the symbol and its consumers without introducing 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 "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",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|auth\\.\" --glob '*.go' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md'"
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_1791272255996019000"
}
3✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md && \
cat auth/token.go && \
cat cmd/main.go && \
git status --short'
—
4file_change (✓ ✓)—
5✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
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 this cross-package refactor feel reliable and pleasantly low effort, 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 auth.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 Latency18.96s43.08s+127.2%26.00s28.66s+10.2%
Process Start → First Event1.60s1.46s—0.14s0.16s—
First Event → First Tool Call5.55s5.04s—4.67s7.51s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%53-40.0%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%53-40.0%
Output Tokens314639+103.5%644467-27.5%
Reasoning / Thinking Tokens46138+200.0%199212+6.5%
Total Input Tokens83884116179+38.5%122594133460+8.9%
Cached Input Tokens69632101120+45.2%107008115456+7.9%
Uncached Input Tokens1425215059+5.7%1558618004+15.5%
Cost0.05750.0726+26.2%0.07630.0824+8.0%
Cached vs Uncached Token Ratio4.89:16.71:1+37.4%6.87:16.41:1-6.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",
  "language": "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_1791271883499650000"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
git status --short"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.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_1791271883499650000"
}
3file_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_1791271883499650000"
}

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

Semedit’s tools gave me a direct way to locate and rename a Go symbol, including its consuming packages, and I’d ask my owner to add them—though I had to retry the rename with the lookup’s unqualified symbol 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 -n --glob '*.go' 'ValidateToken|VerifyToken' . && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "git status --short && \
cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken' . -g '"'!**/*_test.go'"'"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' . -g '"'!**/*_test.go'"' && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
—
5? ✗
/bin/zsh -lc "git rev-parse --show-toplevel && \
git status --short --untracked-files=all | rg '(auth/token.go|cmd/main.go|go.mod|go.sum)' || \
true && \
git ls-files --error-unmatch 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 and rename made the cross-package change feel reassuringly precise, though I had to retry the rename with the exact symbol returned by lookup.

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 auth.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.43s34.15s+75.7%18.11s48.26s+166.4%
Process Start → First Event0.20s0.14s—0.16s0.15s—
First Event → First Tool Call4.44s8.05s—5.58s6.72s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles43-25.0%330%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)43-25.0%330%
Output Tokens361677+87.5%284560+97.2%
Reasoning / Thinking Tokens28240+757.1%44133+202.3%
Total Input Tokens100546133828+33.1%79841133754+67.5%
Cached Input Tokens92928106240+14.3%66560116480+75.0%
Uncached Input Tokens761827588+262.1%1328117274+30.1%
Cost0.04710.1070+127.0%0.05390.0810+50.1%
Cached vs Uncached Token Ratio12.20:13.85:1-68.4%5.01:16.74:1+34.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'"' --glob '"'!**/*test*'"' '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_small-explicit_task-02-rename-cross-pkg_1791271925076738000"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,120p' cmd/main.go && \
git status --short"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791271925076738000"
}
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-explicit_small-explicit_task-02-rename-cross-pkg_1791271925076738000"
}
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*test*'"' '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 found the declaration, and after one qualified-name resolution snag, semantic rename updated the symbol 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 --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' '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_1791272131830920000"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791272131830920000"
}
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-explicit_large-explicit_task-02-rename-cross-pkg_1791272131830920000"
}

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

Semedit gave me a direct way to rename a Go symbol across packages and confirm there were no new 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 auth.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 Latency18.12s38.81s+114.2%97.98s42.66s-56.5%
Process Start → First Event1.74s1.49s—0.15s0.14s—
First Event → First Tool Call4.54s7.84s—22.46s4.93s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles43-25.0%46+50.0%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)43-25.0%46+50.0%
Output Tokens715683-4.5%7741703+120.0%
Reasoning / Thinking Tokens0201—1101114+912.7%
Total Input Tokens106714133898+25.5%102538223746+118.2%
Cached Input Tokens90880116480+28.2%93952202752+115.8%
Uncached Input Tokens1583417418+10.0%858620994+144.5%
Cost0.07120.0837+17.5%0.05600.1384+147.1%
Cached vs Uncached Token Ratio5.74:16.69:1+16.5%10.94:19.66:1-11.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 --glob '*.go' 'ValidateToken|VerifyToken' . && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g '*.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-explicit_small-explicit_task-02-rename-cross-pkg_1791271883499873000"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
cat AGENTS.override.md && \
git status --short'
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791271883499873000"
}
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-explicit_small-explicit_task-02-rename-cross-pkg_1791271883499873000"
}
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' ."
—

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

I’d ask my owner to add semedit’s tools: the rename updated the symbol cleanly, though I had to retry with the exact name returned by lookup after my first call failed.
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 '*.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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791272078748309000"
}
3file_change (✓ ✓)? ✗
/bin/zsh -lc 'cat docs/SUBOPTIMAL_TOOLS.md'
4✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|VerifyToken' .; git diff -- auth/token.go cmd/main.go go.mod go.sum"
✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod'"
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-explicit_large-explicit_task-02-rename-cross-pkg_1791272078748309000"
}
6—✓ ✓
/bin/zsh -lc 'git diff --name-only && \
git diff -- go.mod go.sum'

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

I’d ask my owner to add semedit’s tools: the rename updated cross-package references and reported clean diagnostics, though I was frustrated that the requested qualified symbol failed and I had to retry with the lookup’s exact name.

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 auth.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 Latency11.61s41.48s+257.1%54.33s31.42s-42.2%
Process Start → First Event0.17s0.14s—0.18s0.13s—
First Event → First Tool Call3.27s8.47s—22.42s6.02s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%220%
Initial Load / Discovery Turns10-100.0%10-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%220%
Output Tokens301756+151.2%443249-43.8%
Reasoning / Thinking Tokens77293+280.5%530-100.0%
Total Input Tokens78240220140+181.4%5875086485+47.2%
Cached Input Tokens66560198656+198.5%4736075776+60.0%
Uncached Input Tokens1168021484+83.9%1139010709-6.0%
Cost0.05060.1165+130.4%0.04650.0488+5.0%
Cached vs Uncached Token Ratio5.70:19.25:1+62.3%4.16:17.08:1+70.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' ."
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "workspace_root": "."
}
2file_change (✓ ✓)semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
3✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' ."
? ✗
/bin/zsh -lc 'cat docs/SUBOPTIMAL_TOOLS.md'
4—✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g 'auth/token.go' -g 'AGENTS*'"
5—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 updated the symbol cleanly, though I had to correct the name after my first attempt failed.
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 '"'!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_large-explicit_task-02-rename-cross-pkg_1791272131540689000"
}

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 and reported clean diagnostics, which 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 auth.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.72s33.84s+102.4%18.48s39.40s+113.1%
Process Start → First Event0.13s0.15s—0.15s0.16s—
First Event → First Tool Call4.99s7.06s—5.08s6.81s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles330%330%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)330%330%
Output Tokens320527+64.7%521699+34.2%
Reasoning / Thinking Tokens47270+474.5%0207—
Total Input Tokens80177133605+66.6%78839133926+69.9%
Cached Input Tokens72704116480+60.2%71680102144+42.5%
Uncached Input Tokens747317125+129.2%715931782+343.9%
Cost0.04140.0819+97.6%0.04230.1163+174.8%
Cached vs Uncached Token Ratio9.73:16.80:1-30.1%10.01:13.21:1-67.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 '*.go' -g 'go.mod' -g 'go.sum' | head -100 && \
rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"'"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}

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

Semedit’s semantic lookup and rename made the cross-package refactor feel controlled and dependable, 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 '"'!go.mod'"' --glob '"'!go.sum'"' '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_1791272278190335000"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,120p' cmd/main.go && \
rg --files"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "symbol": "auth.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_1791272278190335000"
}
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-explicit_large-explicit_task-02-rename-cross-pkg_1791272278190335000"
}

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

I’d ask my owner to add semedit’s tools: the semantic rename spared me from manually chasing cross-package references, though I hit a symbol-resolution error before the simpler retry worked.

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 auth.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 Latency96.41s19.07s-80.2%49.99s20.72s-58.6%
Process Start → First Event1.63s0.14s—0.14s0.14s—
First Event → First Tool Call7.71s5.56s—12.54s5.38s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles42-50.0%220%
Initial Load / Discovery Turns20-100.0%10-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)42-50.0%220%
Output Tokens732347-52.6%220467+112.3%
Reasoning / Thinking Tokens62140+125.8%0188—
Total Input Tokens10753885933-20.1%5848286046+47.1%
Cached Input Tokens7142468608-3.9%5248075776+44.4%
Uncached Input Tokens3611417325-52.0%600210270+71.1%
Cost0.11810.0666-43.6%0.03090.0528+71.0%
Cached vs Uncached Token Ratio1.98:13.96:1+100.2%8.74:17.38:1-15.6%
Oracle L1: Mutation PolicyPASSPASS—PASSPASS—
Oracle L2: AST InvariantsPASSFAIL—PASSFAIL—
Oracle L3: Clean BuildPASSFAIL—PASSFAIL—
Oracle L4: Verification TestPASSFAIL—PASSFAIL—
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)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "pwd && \
rg -n \"ValidateToken|VerifyToken\" . --glob '"'!AGENTS.override.md'"' && \
git status --short"
semedit/semantic_lookup (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken"
}
2✓ ✓
/bin/zsh -lc "cat auth/token.go && \
cat cmd/main.go && \
rg --files -g '"'!go.mod'"' -g '"'!go.sum'"'"
semedit/semantic_rename (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.ValidateToken",
  "to": "VerifyToken"
}
3file_change (✓ ✓)—
4✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" auth cmd && \
git diff -- auth/token.go cmd/main.go'
—
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)
#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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken in auth/token.go: symbol not found"} resolve auth.ValidateToken in auth/token.go: symbol not found
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "auth.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_1791272127711731000"
}

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 auth.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)MCP (Small)Δ (Small)Vanilla (Large)Semedit Explicit (Large)Δ (Large)
Wall-Clock Latency14.44s——15.51s17.93s+15.6%
Process Start → First Event1.49s——0.14s0.15s—
First Event → First Tool Call4.41s——3.88s5.24s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns1——110%
Internal Tool Cycles3——32-33.3%
Initial Load / Discovery Turns2——10-100.0%
MCP Discovery / Schema Turns0——00—
Tool Invocations (per run)3——32-33.3%
Output Tokens489——637231-63.7%
Reasoning / Thinking Tokens0——380-100.0%
Total Input Tokens82523——8144386379+6.1%
Cached Input Tokens68608——7372856576-23.3%
Uncached Input Tokens13915——771529803+286.3%
Cost0.0581——0.04620.0915+98.3%
Cached vs Uncached Token Ratio4.93:1——9.56:11.90:1-80.1%
Oracle L1: Mutation PolicyPASS——PASSPASS—
Oracle L2: AST InvariantsPASS——PASSPASS—
Oracle L3: Clean BuildPASS——PASSPASS—
Oracle L4: Verification TestPASS——PASSPASS—
Semantic Tool Invocation Verified (per run)N/A——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)
#VanillaSemedit MCP
1✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
not published
2✓ ✓
/bin/zsh -lc 'rg --files'
not published
3file_change (✓ ✓)not published
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 \"ValidateToken\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"' && \
git status --short"
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_large-explicit_task-02-rename-cross-pkg_1791272082144163000"
}
3✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"' && \
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 would ask my owner to add semedit’s tools: the lookup and cross-package rename let me make the requested code change directly and report that it completed without introducing diagnostics.

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.06s50.04s+42.7%22.96s152.08s+562.5%
Process Start → First Event0.14s0.14s—0.15s0.16s—
First Event → First Tool Call13.07s11.25s—4.52s11.41s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles46+50.0%47+75.0%
Initial Load / Discovery Turns21-50.0%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)46+50.0%47+75.0%
Output Tokens6801061+56.0%5751127+96.0%
Reasoning / Thinking Tokens38311+718.4%210415+97.6%
Total Input Tokens101289215079+112.3%101659220706+117.1%
Cached Input Tokens92928193536+108.3%86784200448+131.0%
Uncached Input Tokens836121543+157.7%1487520258+36.2%
Cost0.05310.1194+124.8%0.06870.1200+74.7%
Cached vs Uncached Token Ratio11.11:18.98:1-19.2%5.83:19.89:1+69.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 "ValidateToken|VerifyToken" .'
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' -g 'README*' -g 'Makefile' | head -100 && \
rg -n \"ValidateToken|VerifyToken\" ."
2✓ ✓
/bin/zsh -lc "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
git status --short"
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_1791271994366125000"
}
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_1791271994366125000"
}
4✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '"'!**/*_test.go'"' . && \
git diff -- 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_small-implicit_task-02-rename-cross-pkg_1791271994366125000"
}
5—✓ ✓
/bin/zsh -lc "rg --files -g 'SUBOPTIMAL_TOOLS.md' -g '*.go' -g '"'!**/*_test.go'"' && \
git status --short && \
rg -n \"ValidateToken|VerifyToken\" --glob '"'!**/*_test.go'"' ."
6—✓ ✓
/bin/zsh -lc 'go build ./... && \
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’s tools: the semantic rename updated the declaration and cross-package caller in one step, and the clean build left me confident the change held together.
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.override.md'"' | head -100 && \
rg -n 'ValidateToken|VerifyToken' . -g '"'!go.sum'"' -g '"'!go.mod'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg -n \"ValidateToken|VerifyToken\" . --glob '"'!AGENTS.override.md'"'"
2? ✗
/bin/zsh -lc "git status --short && \
sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md'"
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_1791272242922599000"
}
3file_change (✓ ✓)? ✗
/bin/zsh -lc "rg --files | rg '("'^|/)(SUBOPTIMAL_TOOLS'"\\.md|PROJECT_BRIEF\\.md)"'$'"'"
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.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_1791272242922599000"
}
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_1791272242922599000"
}
6—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'
7—✓ ✓
/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):

I’d ask my owner to add semedit’s tools: the semantic rename updated the public function and its cross-package caller cleanly, which felt reassuring and saved me from risky text replacement.

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 Latency14.44s68.71s+375.9%15.51s62.16s+300.7%
Process Start → First Event1.49s1.76s—0.14s0.16s—
First Event → First Tool Call4.41s5.72s—3.88s5.68s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles37+133.3%36+100.0%
Initial Load / Discovery Turns21-50.0%12+100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)37+133.3%36+100.0%
Output Tokens489982+100.8%637918+44.1%
Reasoning / Thinking Tokens0309—38252+563.2%
Total Input Tokens82523256775+211.2%81443219486+169.5%
Cached Input Tokens68608225024+228.0%73728196608+166.7%
Uncached Input Tokens1391531751+128.2%771522878+196.5%
Cost0.05810.1518+161.4%0.04620.1210+162.1%
Cached vs Uncached Token Ratio4.93:17.09:1+43.7%9.56:18.59:1-10.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 --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80 && \
git status --short"
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_small-implicit_task-02-rename-cross-pkg_1791271883499655000"
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
cat go.mod'
4—✓ ✓
/bin/zsh -lc 'rg --files | sort'
5—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_1791271883499655000"
}
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_small-implicit_task-02-rename-cross-pkg_1791271883499655000"
}
7—✓ ✓
/bin/zsh -lc 'go test ./... && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go cmd/main_test.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 reliably updated the function and its cross-package call site, though my initial lookup needed a simpler symbol name than I expected.
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 \"ValidateToken\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"' && \
git status --short"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'README*' -g 'go.mod' -g '*.go' | head -80"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' | head -30 && \
rg -n \"ValidateToken|VerifyToken\" --glob '*.go' ."
3✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"' && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
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_1791272081946836000"
}
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_1791272081946836000"
}
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_1791272081946836000"
}
6—✓ ✓
/bin/zsh -lc "git status --short && \
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):

I would ask my owner to add semedit’s tools: the semantic rename updated the cross-package call site cleanly, and seeing the reference afterward gave me confidence the rename landed where intended.

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 Latency18.96s40.30s+112.6%26.00s44.16s+69.8%
Process Start → First Event1.60s1.31s—0.14s0.13s—
First Event → First Tool Call5.55s8.32s—4.67s4.94s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles35+66.7%59+80.0%
Initial Load / Discovery Turns220%220%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%59+80.0%
Output Tokens314802+155.4%6441168+81.4%
Reasoning / Thinking Tokens46120+160.9%199247+24.1%
Total Input Tokens83884121052+44.3%122594223115+82.0%
Cached Input Tokens69632101120+45.2%107008202752+89.5%
Uncached Input Tokens1425219932+39.9%1558620363+30.6%
Cost0.05750.0866+50.6%0.07630.1193+56.4%
Cached vs Uncached Token Ratio4.89:15.07:1+3.8%6.87:19.96:1+45.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' ."
✓ ✓
/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 "sed -n '1,80p' auth/token.go && \
sed -n '1,80p' cmd/main.go && \
git status --short"
✓ ✓
/bin/zsh -lc "cat AGENTS.override.md && \
cat go.mod && \
sed -n '1,200p' auth/token.go && \
sed -n '1,200p' cmd/main.go"
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "language": "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_1791271883499645000"
}
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_small-implicit_task-02-rename-cross-pkg_1791271883499645000"
}
5—✓ ✓
/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'"'"

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

Semedit’s semantic rename quickly updated the exported function and its cross-package call with no new diagnostics, 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 "pwd && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' . && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "git status --short && \
cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken' . -g '"'!**/*_test.go'"'"
✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null || \
true; rg --files -g 'README*' -g 'go.work' -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": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_large-implicit_task-02-rename-cross-pkg_1791272104502275000"
}
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' . -g '"'!**/*_test.go'"' && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
✓ ✓
/bin/zsh -lc "rg --files | rg 'SUBOPTIMAL|PROJECT_BRIEF|README|AGENTS' && \
rg -n 'ValidateToken' --glob '"'!**/*_test.go'"' ."
5? ✗
/bin/zsh -lc "git rev-parse --show-toplevel && \
git status --short --untracked-files=all | rg '(auth/token.go|cmd/main.go|go.mod|go.sum)' || \
true && \
git ls-files --error-unmatch 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_1791272104502275000"
}
6—✓ ✓
/bin/zsh -lc 'mkdir -p docs; test -f docs/SUBOPTIMAL_TOOLS.md || \
touch docs/SUBOPTIMAL_TOOLS.md; cat docs/SUBOPTIMAL_TOOLS.md'
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_1791272104502275000"
}
9—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' .; go build ./...; git status --short; git diff -- 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 changed the declaration and its cross-package call site cleanly, which felt reassuring, though I had to retry lookup with an unqualified name first.

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.72s47.88s+186.4%18.48s34.22s+85.1%
Process Start → First Event0.13s0.13s—0.15s0.17s—
First Event → First Tool Call4.99s5.97s—5.08s5.40s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles37+133.3%34+33.3%
Initial Load / Discovery Turns220%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)37+133.3%34+33.3%
Output Tokens3201244+288.8%521649+24.6%
Reasoning / Thinking Tokens47301+540.4%0111—
Total Input Tokens80177229126+185.8%78839155571+97.3%
Cached Input Tokens72704198400+172.9%71680131584+83.6%
Uncached Input Tokens747330726+311.2%715923987+235.1%
Cost0.04140.1457+251.6%0.04230.1024+141.8%
Cached vs Uncached Token Ratio9.73:16.46:1-33.6%10.01:15.49:1-45.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 "pwd && \
rg --files -g 'AGENTS.md' -g '*.go' -g 'go.mod' -g 'go.sum' | head -100 && \
rg -n 'ValidateToken|VerifyToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80 && \
git status --short"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
✓ ✓
/bin/zsh -lc "ls -la && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'README*' -g '*.go'"
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_small-implicit_task-02-rename-cross-pkg_1791272058406885000"
}
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_1791272058406885000"
}
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_1791272058406885000"
}
6—✓ ✓
/bin/zsh -lc 'git diff -- auth/token.go cmd/main.go && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum'
7—semedit/semantic_lookup (✓ ✓)
{
  "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_1791272058406885000"
}

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

I’d ask my owner to add semedit’s tools: the rename made the cross-package change straightforward and reported clean diagnostics, though I didn’t assess whether batching could simplify the workflow.
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 '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'go.mod' -g '*.go' | head -100 && \
rg -n 'ValidateToken|semantic_rename|semantic_lookup' . --glob '"'!go.sum'"' --glob '"'!go.mod'"'"
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,120p' cmd/main.go && \
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_1791272292643612000"
}
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_1791272292643612000"
}
4—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' && \
git status --short && \
go test ./..."

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

Semedit’s semantic rename reliably updated the function and its cross-package caller in one step, which made this small change reassuringly straightforward; 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 Latency96.41s51.19s-46.9%49.99s136.09s+172.2%
Process Start → First Event1.63s0.14s—0.14s0.13s—
First Event → First Tool Call7.71s7.69s—12.54s24.16s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles45+25.0%25+150.0%
Initial Load / Discovery Turns220%110%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)45+25.0%25+150.0%
Output Tokens732622-15.0%220808+267.3%
Reasoning / Thinking Tokens6294+51.6%0242—
Total Input Tokens107538175333+63.0%58482188163+221.7%
Cached Input Tokens71424141568+98.2%52480169216+222.4%
Uncached Input Tokens3611433765-6.5%600218947+215.7%
Cost0.11810.1288+9.1%0.03090.1028+232.9%
Cached vs Uncached Token Ratio1.98:14.19:1+112.0%8.74:18.93:1+2.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 "pwd && \
rg -n \"ValidateToken|VerifyToken\" . --glob '"'!AGENTS.override.md'"' && \
git status --short"
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'Makefile' -g '*.go' -g '"'!vendor'"' | head -200"
2✓ ✓
/bin/zsh -lc "cat auth/token.go && \
cat cmd/main.go && \
rg --files -g '"'!go.mod'"' -g '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "rg --files --hidden -g '"'! .git'"' -g '"'!go.sum'"' -g '"'!go.mod'"' | head -150 && \
cat auth/token.go && \
cat cmd/main.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_1791271898099208000"
}
4✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" auth cmd && \
git diff -- 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_small-implicit_task-02-rename-cross-pkg_1791271898099208000"
}
5—✓ ✓
/bin/zsh -lc "git status --short && \
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):

I’d ask my owner to add semedit’s tools: semantic rename carried `auth.ValidateToken` across package boundaries cleanly, and I felt confident making the change without hand-editing references.
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' | head -80 && \
git status --short"
2file_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_1791272113757398000"
}
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_large-implicit_task-02-rename-cross-pkg_1791272113757398000"
}
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_1791272113757398000"
}
5—✓ ✓
/bin/zsh -lc "git status --short -- auth/token.go && \
git diff -- auth/token.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' ."

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

I would ask my owner to add semedit’s tools: the semantic rename updated the exported Go function and its cross-package caller in one step, which felt 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 Latency11.71s36.85s+214.7%24.75s36.24s+46.4%
Process Start → First Event0.13s0.25s—0.14s0.14s—
First Event → First Tool Call3.07s5.79s—5.40s4.57s—
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%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%45+25.0%
Output Tokens300689+129.7%548605+10.4%
Reasoning / Thinking Tokens47189+302.1%18067-62.8%
Total Input Tokens78243167522+114.1%101686175314+72.4%
Cached Input Tokens66560146688+120.4%92928155904+67.8%
Uncached Input Tokens1168320834+78.3%875819410+121.6%
Cost0.05020.0997+98.7%0.05420.0959+76.9%
Cached vs Uncached Token Ratio5.70:17.04:1+23.6%10.61:18.03:1-24.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' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' -g 'Makefile' -g 'README*' | head -120 && \
git status --short"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md && \
cat auth/token.go && \
cat cmd/main.go && \
cat go.mod'
3✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
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 diff -- auth/token.go cmd/main.go cmd/main_test.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git status --short -- auth/token.go cmd/main.go cmd/main_test.go"

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 call site in one operation, which felt 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 '"'!AGENTS.override.md'"' -g '*.go' -g '*.md' | head -200 && \
rg -n 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'auth\\.' --glob '*.go' . && \
cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken|auth\\.ValidateToken' --glob '"'!**/*_test.go'"' ."
✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; rg -n \"ValidateToken|semantic_rename|semedit\" . --glob '"'!go.sum'"' --glob '"'!go.mod'"'"
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_1791272262733855000"
}
4✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '"'!**/*_test.go'"' . && \
git diff -- auth/token.go cmd/main.go && \
git status --short -- 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_large-implicit_task-02-rename-cross-pkg_1791272262733855000"
}
5—✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '"'!go.mod'"' --glob '"'!go.sum'"' && \
git status --short && \
git diff -- auth/token.go cmd/main.go"

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

The semantic rename quickly changed the exported function and its cross-package caller, so I’d ask my owner to add semedit’s tools to make this kind of refactor more dependable.

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 Latency11.61s55.41s+377.1%54.33s40.90s-24.7%
Process Start → First Event0.17s0.25s—0.18s0.13s—
First Event → First Tool Call3.27s4.59s—22.42s4.92s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles36+100.0%26+200.0%
Initial Load / Discovery Turns110%110%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)36+100.0%26+200.0%
Output Tokens3011446+380.4%443844+90.5%
Reasoning / Thinking Tokens77670+770.1%53239+350.9%
Total Input Tokens78240190446+143.4%58750230069+291.6%
Cached Input Tokens66560167936+152.3%47360204800+332.4%
Uncached Input Tokens1168022510+92.7%1139025269+121.9%
Cost0.05060.1247+146.6%0.04650.1279+175.0%
Cached vs Uncached Token Ratio5.70:17.46:1+30.9%4.16:18.10:1+94.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 '"'!**/*_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' | head -80"
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": "/Users/alessandro/.codex-workspaces/worktrees/318f14ee-b4fe-4414-9a7d-5427835dd89b/semantic-editor/.scratch/benchmarks/run_codex_semedit_small-implicit_task-02-rename-cross-pkg_1791271901790574000"
}
3✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' ."
file_change (✓ ✓)
4—semedit/semantic_lookup (✓ ✓)
{
  "language": "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_1791271901790574000"
}
5—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_1791271901790574000"
}
6—✓ ✓
/bin/zsh -lc "git status --short && \
git diff --stat && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.go'"' ."

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

Semedit’s semantic rename felt reassuring: it updated the cross-package call site and checked diagnostics in one operation, 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 --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'go.sum' -g '*.go' | 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_large-implicit_task-02-rename-cross-pkg_1791272131060832000"
}
3—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_1791272131060832000"
}
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_1791272131060832000"
}
5—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'
6—✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
git diff --name-only -- go.mod go.sum '*_test.go'"

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

Semedit’s symbol lookup, reference search, and rename gave me a reassuringly direct way to confirm and carry out this cross-package change, and 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 Latency14.20s44.61s+214.2%25.82s35.64s+38.1%
Process Start → First Event0.13s0.14s—0.13s0.14s—
First Event → First Tool Call4.45s5.74s—5.85s4.18s—
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 Tokens226601+165.9%4901099+124.3%
Reasoning / Thinking Tokens2715-44.4%78408+423.1%
Total Input Tokens58495146816+151.0%121431251127+106.8%
Cached Input Tokens47360126464+167.0%112128208640+86.1%
Uncached Input Tokens1113520352+82.8%930342487+356.7%
Cost0.04280.0902+110.5%0.05840.1772+203.5%
Cached vs Uncached Token Ratio4.25:16.21:1+46.1%12.05:14.91:1-59.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'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -80"
2file_change (✓ ✓)✓ ✓
/bin/zsh -lc "cat PROJECT_BRIEF.md 2>/dev/null; rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g '*.go' | sort; rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.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_1791272028686982000"
}
4—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_small-implicit_task-02-rename-cross-pkg_1791272028686982000"
}
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_1791272028686982000"
}

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 caller cleanly, which felt reassuring, though I didn’t try batching.
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 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'go.sum' -g '*.go' | head -100"
2✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|auth\\.\" --glob '*.go' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'AGENTS.override.md'"
✓ ✓
/bin/zsh -lc "cat go.mod && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'README*' | head -50"
3✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md && \
cat auth/token.go && \
cat 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_1791272254220922000"
}
4file_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_1791272254220922000"
}
5✓ ✓
/bin/zsh -lc "rg -n \"ValidateToken|VerifyToken\" --glob '*.go' . && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"
✓ ✓
/bin/zsh -lc 'git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum && \
go test ./...'
6—✓ ✓
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git status --short --untracked-files=no -- auth/token.go cmd/main.go go.mod go.sum"

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

The semantic lookup and rename let me update the exported function and its cross-package caller with little fuss, so I’d ask my owner to add semedit’s 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 Latency19.43s44.76s+130.4%18.11s68.47s+277.9%
Process Start → First Event0.20s0.13s—0.16s0.15s—
First Event → First Tool Call4.44s7.06s—5.58s6.24s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles440%35+66.7%
Initial Load / Discovery Turns20-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)440%35+66.7%
Output Tokens361792+119.4%284391+37.7%
Reasoning / Thinking Tokens28179+539.3%44102+131.8%
Total Input Tokens100546166074+65.2%79841200718+151.4%
Cached Input Tokens92928146944+58.1%66560161024+141.9%
Uncached Input Tokens761819130+151.1%1328139694+198.9%
Cost0.04710.0967+105.1%0.05390.1457+170.0%
Cached vs Uncached Token Ratio12.20:17.68:1-37.0%5.01:14.06: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 '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*test*'"' '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_1791271932051647000"
}
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,120p' 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_small-implicit_task-02-rename-cross-pkg_1791271932051647000"
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --stat && \
git diff -- go.mod go.sum'
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*test*'"' 'ValidateToken|VerifyToken' . && \
git diff -- auth/token.go cmd/main.go"
✓ ✓
/bin/zsh -lc 'git status --short -- . && \
git diff -- .'

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

I’d ask my owner to add semedit’s tools: the semantic rename updated the function across the workspace cleanly, and seeing zero new diagnostics was a relief.
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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken"
}
3file_change (✓ ✓)semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken"
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "ValidateToken",
  "to": "VerifyToken"
}
5—semedit/semantic_find_references (✓ ✓)
{
  "file": "auth/token.go",
  "symbol": "VerifyToken"
}

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 made this change feel precise and reassuring, and reference search let me confirm the updated call site without touching tests.

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 Latency30.24s106.77s+253.1%20.11s43.02s+114.0%
Process Start → First Event0.14s0.17s—0.14s0.15s—
First Event → First Tool Call13.78s16.21s—7.64s12.53s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles34+33.3%35+66.7%
Initial Load / Discovery Turns21-50.0%220%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)34+33.3%35+66.7%
Output Tokens523664+27.0%271397+46.5%
Reasoning / Thinking Tokens0186—380-100.0%
Total Input Tokens78675142127+80.7%79823154793+93.9%
Cached Input Tokens58368126464+116.7%72704137728+89.4%
Uncached Input Tokens2030715663-22.9%711917065+139.7%
Cost0.07190.0814+13.2%0.03980.0821+106.0%
Cached vs Uncached Token Ratio2.87:18.07:1+180.9%10.21:18.07:1-21.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 \"ValidateToken|VerifyToken\" . --glob '"'!go.mod'"' --glob '"'!go.sum'"'"
✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' -g 'go.sum' -g 'Makefile'"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_lookup (✓ ✓)
{
  "language": "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_1791271987366745000"
}
3file_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_small-implicit_task-02-rename-cross-pkg_1791271987366745000"
}
4—✓ ✓
/bin/zsh -lc "git status --short && \
git diff -- auth/token.go cmd/main.go go.mod go.sum cmd/main_test.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go'"

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

I’d ask my owner to add semedit’s tools: semantic rename updated the declaration and consuming package reference in one operation, which felt reassuring, though this brief run can’t tell me how well the tools handle harder changes.
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 'PROJECT_BRIEF.md' -g 'README*' -g 'AGENTS.md' -g 'AGENTS.override.md' -g '"'!testdata/**'"' | head -80"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
✓ ✓
/bin/zsh -lc 'git status --short'
3file_change (✓ ✓)semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "ValidateToken",
  "workspace_root": "."
}
4—semedit/semantic_rename (✓ ✓)
{
  "file": "auth/token.go",
  "language": "go",
  "symbol": "ValidateToken",
  "to": "VerifyToken",
  "workspace_root": "."
}
5—✓ ✓
/bin/zsh -lc "git status --short && \
git diff --name-only && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"' ."

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

Using `semantic_rename` to update `auth.ValidateToken` and its cross-package call in one step was reassuringly precise, so I’d ask my owner to add semedit’s 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 Latency22.59s40.43s+79.0%23.01s22.44s-2.5%
Process Start → First Event0.13s0.15s—0.13s0.15s—
First Event → First Tool Call4.35s4.02s—5.46s5.67s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles59+80.0%53-40.0%
Initial Load / Discovery Turns32-33.3%30-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)59+80.0%53-40.0%
Output Tokens5581085+94.4%420465+10.7%
Reasoning / Thinking Tokens180275+52.8%00—
Total Input Tokens100853286985+184.6%119399134473+12.6%
Cached Input Tokens92928231936+149.6%110080103168-6.3%
Uncached Input Tokens792555049+594.6%931931305+235.9%
Cost0.05230.2126+306.8%0.05610.1099+96.0%
Cached vs Uncached Token Ratio11.73:14.21:1-64.1%11.81:13.30:1-72.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'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g '*.go' | head -80"
2✓ ✓
/bin/zsh -lc "sed -n '1,120p' auth/token.go && \
sed -n '1,100p' cmd/main.go"
? ✗
/bin/zsh -lc "rg -n 'ValidateToken|VerifyToken' --glob '*.go' --glob '"'!**/*_test.go'"' . && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md'"
3✓ ✓
/bin/zsh -lc 'git status --short'
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"
}
4file_change (✓ ✓)? ✗
/bin/zsh -lc 'cat docs/SUBOPTIMAL_TOOLS.md && \
cat auth/token.go && \
cat cmd/main.go'
5✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n --hidden --glob '"'!AGENTS.override.md'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
✓ ✓
/bin/zsh -lc 'rg --files'
6—file_change (✓ ✓)
7—semedit/semantic_lookup (✓ ✓)
{
  "language": "go",
  "symbol": "ValidateToken"
}
8—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_1791271936120057000"
}
9—✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' . && \
git diff -- go.mod go.sum cmd/main_test.go"

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

I’d ask my owner to add semedit’s tools: semantic rename updated the declaration and cross-package caller cleanly, though the initial lookup hiccup kept me from feeling fully confident in the workflow.
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' | head -200"
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_1791272159539431000"
}
2✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|Validate Token|Validate' . && \
cat go.mod && \
cat AGENTS.override.md"
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_1791272159539431000"
}
3✓ ✓
/bin/zsh -lc "cat auth/token.go && \
cat cmd/main.go && \
rg -n 'ValidateToken' . --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.go'"'"
✓ ✓
/bin/zsh -lc "git status --short && \
rg -n 'ValidateToken|VerifyToken' --glob '"'!go.mod'"' --glob '"'!go.sum'"' --glob '"'!**/*_test.go'"' ."
4file_change (✓ ✓)—
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 would ask my owner to add semedit’s tools: semantic rename made the cross-package update feel reassuringly direct, and its diagnostics showed no new issues.

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 Latency13.89s83.31s+499.8%26.27s44.98s+71.2%
Process Start → First Event0.14s0.15s—0.15s0.65s—
First Event → First Tool Call4.53s16.56s—5.58s8.59s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles34+33.3%46+50.0%
Initial Load / Discovery Turns220%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)34+33.3%46+50.0%
Output Tokens512379-26.0%690876+27.0%
Reasoning / Thinking Tokens00—0157—
Total Input Tokens78598124644+58.6%101314202916+100.3%
Cached Input Tokens71680108288+51.1%86784172288+98.5%
Uncached Input Tokens691816356+136.4%1453030628+110.8%
Cost0.04160.0727+74.7%0.06660.1326+98.9%
Cached vs Uncached Token Ratio10.36:16.62:1-36.1%5.97:15.63:1-5.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 "rg -n --glob '*.go' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' | head -120"
2✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g '*.go'"
✓ ✓
/bin/zsh -lc 'cat go.mod && \
cat auth/token.go && \
cat cmd/main.go'
3file_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_small-implicit_task-02-rename-cross-pkg_1791271985285853000"
}
4—✓ ✓
/bin/zsh -lc 'git diff -- auth/token.go cmd/main.go && \
go test ./...'

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

I’d ask my owner to add semedit’s tools: the semantic rename changed the public function and its cross-package caller in one step, and seeing the tests pass without hand-editing felt 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 "rg -n --glob '"'!AGENTS.override.md'"' '\\bValidateToken\\b|\\bVerifyToken\\b' ."
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_1791272198640080000"
}
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
git status --short'
✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|package auth' ."
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_1791272198640080000"
}
4✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' '\\bValidateToken\\b|\\bVerifyToken\\b' auth cmd && \
git diff -- 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_large-implicit_task-02-rename-cross-pkg_1791272198640080000"
}
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_1791272198640080000"
}
6—✓ ✓
/bin/zsh -lc 'git status --short && \
git diff --'

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

I’d ask my owner to add semedit’s tools: the semantic rename updated the function and its cross-package caller cleanly, though my first lookup missed because I used the wrong symbol form.

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 Latency31.67s110.80s+249.9%22.10s45.54s+106.0%
Process Start → First Event0.23s0.23s—0.14s0.14s—
First Event → First Tool Call12.68s13.71s—7.57s5.02s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles440%56+20.0%
Initial Load / Discovery Turns21-50.0%40-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)440%56+20.0%
Output Tokens627535-14.7%356874+145.5%
Reasoning / Thinking Tokens079—0232—
Total Input Tokens98690154288+56.3%100970191891+90.0%
Cached Input Tokens90880136704+50.4%92928175104+88.4%
Uncached Input Tokens781017584+125.1%804216787+108.7%
Cost0.05010.0858+71.3%0.04780.0996+108.4%
Cached vs Uncached Token Ratio11.64:17.77:1-33.2%11.56:110.43:1-9.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 --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'AGENTS.md' -g 'PROJECT_BRIEF.md' -g '*.go' -g 'go.mod' | head -100 && \
rg -n \"ValidateToken|VerifyToken\" . --glob '*.go'"
2✓ ✓
/bin/zsh -lc "rg --files -g '*.go' -g '"'!**/*_test.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_1791271955012538000"
}
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_1791271955012538000"
}
4✓ ✓
/bin/zsh -lc "rg -n --glob '"'!AGENTS.override.md'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/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):

Using semedit’s semantic rename tool made the cross-package change feel reassuringly precise, and I’d ask my owner to add it for coding tasks where symbol-aware edits matter.
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|ValidateToken\\(\" ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g 'PROJECT_BRIEF.md' -g 'AGENTS.md' -g 'README*' -g 'go.mod' | head -80 && \
rg -n \"ValidateToken|semantic_rename|rename\" . --glob '"'!*.sum'"' --glob '"'!*.mod'"' | head -100"
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_1791272166729783000"
}
3✓ ✓
/bin/zsh -lc 'git status --short'
✓ ✓
/bin/zsh -lc "rg --files | rg 'SUBOPTIMAL|token.go|main.go' && \
git status --short"
4✓ ✓
/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_large-implicit_task-02-rename-cross-pkg_1791272166729783000"
}
5file_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_1791272166729783000"
}
6—✓ ✓
/bin/zsh -lc 'rg -n "ValidateToken|VerifyToken" auth cmd && \
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 reliably updated the declaration and cross-package caller in one step, which felt reassuring, though I didn’t assess its broader coding value.

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 Latency18.12s34.30s+89.3%97.98s50.93s-48.0%
Process Start → First Event1.74s1.13s—0.15s0.15s—
First Event → First Tool Call4.54s7.51s—22.46s5.42s—
MCP Initialize → First Semantic Call——————
MCP Server Start → Initialize——————
Top-Level User Turns110%110%
Internal Tool Cycles440%46+50.0%
Initial Load / Discovery Turns220%21-50.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)440%46+50.0%
Output Tokens715685-4.2%774775+0.1%
Reasoning / Thinking Tokens0108—110278+152.7%
Total Input Tokens106714118143+10.7%102538199222+94.3%
Cached Input Tokens90880102144+12.4%93952169984+80.9%
Uncached Input Tokens1583415999+1.0%858629238+240.5%
Cost0.07120.0754+5.9%0.05600.1288+129.9%
Cached vs Uncached Token Ratio5.74:16.38:1+11.2%10.94:15.81:1-46.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 '*.go' 'ValidateToken|VerifyToken' . && \
rg --files -g 'AGENTS.md' -g 'AGENTS.override.md' -g 'PROJECT_BRIEF.md' -g '*.go'"
✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g '*.go' -g 'Makefile' -g 'README*'"
2✓ ✓
/bin/zsh -lc 'cat auth/token.go && \
cat cmd/main.go && \
cat AGENTS.override.md && \
git status --short'
✓ ✓
/bin/zsh -lc 'cat AGENTS.override.md && \
cat auth/token.go && \
cat cmd/main.go && \
cat go.mod'
3file_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_small-implicit_task-02-rename-cross-pkg_1791271883499706000"
}
4✓ ✓
/bin/zsh -lc "git diff -- auth/token.go cmd/main.go && \
rg -n --glob '*.go' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc 'go build ./... && \
git diff --'

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

Semedit’s semantic rename updated `auth.ValidateToken` across the consuming package and verified cleanly with no diagnostics; that was a smooth, reassuring experience, 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 -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' | head -80 && \
git status --short"
2✓ ✓
/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
{
  "language": "go",
  "symbol": "auth.ValidateToken",
  "workspace_root": "."
}
3file_change (✓ ✓)✓ ✓
/bin/zsh -lc "rg --files -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'docs/SUBOPTIMAL_TOOLS.md' -g '*README*' | head -40 && \
sed -n '1,200p' auth/auth.go && \
sed -n '1,200p' auth/token.go && \
rg -n 'ValidateToken' --glob '*.go'"
4✓ ✓
/bin/zsh -lc "rg -n --glob '*.go' 'ValidateToken|VerifyToken' .; git diff -- auth/token.go cmd/main.go go.mod go.sum"
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 "git diff -- auth/token.go cmd/main.go && \
rg -n 'ValidateToken|VerifyToken' --glob '*.go' && \
git status --short -- auth/token.go cmd/main.go go.mod go.sum"

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

I’d recommend adding semedit’s tools: semantic rename updated the declaration and cross-package caller cleanly, which made this small change 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 Latency16.64s53.07s+219.0%26.56s104.23s+292.5%
Process Start → First Event0.14s0.13s—0.14s0.14s—
First Event → First Tool Call4.33s9.04s—5.45s20.33s—
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 Turns10-100.0%20-100.0%
MCP Discovery / Schema Turns00—00—
Tool Invocations (per run)35+66.7%45+25.0%
Output Tokens3181005+216.0%755596-21.1%
Reasoning / Thinking Tokens0404—9491-3.2%
Total Input Tokens78400186645+138.1%101424180690+78.2%
Cached Input Tokens71680165120+130.4%92928162048+74.4%
Uncached Input Tokens672021525+220.3%849618642+119.4%
Cost0.03870.1127+191.3%0.05510.0957+73.7%
Cached vs Uncached Token Ratio10.67:17.67:1-28.1%10.94:18.69:1-20.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 --glob '"'!**/*_test.go'"' 'ValidateToken|VerifyToken' ."
✓ ✓
/bin/zsh -lc "pwd && \
rg --files -g '"'!*test*'"' -g 'AGENTS*' -g 'PROJECT_BRIEF.md' -g 'go.mod' -g 'go.sum' | head -80 && \
rg -n \"ValidateToken|semantic_rename|semedit\" . -g '"'!go.sum'"' -g '"'!go.mod'"' | head -100"
2file_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_small-implicit_task-02-rename-cross-pkg_1791271971680460000"
}
3✓ ✓
/bin/zsh -lc "rg -n --glob '"'!**/*_test.go'"' --glob '"'!go.mod'"' --glob '"'!go.sum'"' 'ValidateToken|VerifyToken' . && \
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_small-implicit_task-02-rename-cross-pkg_1791271971680460000"
}
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_1791271971680460000"
}
5—? ✗
/bin/zsh -lc "git diff -- && \
rg -n \"ValidateToken|VerifyToken\" --glob '"'!go.mod'"' --glob '"'!go.sum'"' . && \
rg --files | rg 'SUBOPTIMAL_TOOLS\\.md"'$'"'"

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

Semedit’s semantic rename felt reassuringly precise: it updated the cross-package call site with the declaration, so I’d ask my owner to add its tools for coding work.
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 (✓ ✗): Critical result (JSON): {"application_state":"unknown","error":"resolve auth.ValidateToken: symbol not found"} resolve auth.ValidateToken: symbol not found
{
  "symbol": "auth.ValidateToken"
}
2✓ ✓
/bin/zsh -lc 'git status --short && \
cat auth/token.go && \
cat cmd/main.go'
semedit/semantic_lookup (✓ ✓)
{
  "symbol": "ValidateToken"
}
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_large-implicit_task-02-rename-cross-pkg_1791272192355215000"
}
4✓ ✓
/bin/zsh -lc "rg -n --hidden --glob '"'!AGENTS.override.md'"' '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_1791272192355215000"
}
5—✓ ✓
/bin/zsh -lc '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 cross-package call site and reported no new diagnostics, which made this small refactor feel reassuringly direct.