You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
csharp: context spends three of six entry points on the words code, tests and call instead of the declaration the prompt names #1455
A question that names a declaration exactly, IRouter.RouteAsync, gets entry points for the plain words around it. code, tests and call each take one of the six seeds, the named declaration is only a leftover "best overall match", and one of the three implementations is crowded out. This happens in context, in the axiomcode_context MCP tool, and in the prompt hook's orientation, which runs context --budget 6. Measured on 0.1.3 at 0df257c.
Reproduction
src/App/Routers.cs and src/App/Order.cs, beside a net8.0 src/App/App.csproj:
1 using System.Threading.Tasks;
2 namespace App;
3
4 public interface IRouter { Task<Order> RouteAsync(Cart c); }
5
6 public class FastRouter : IRouter { public Task<Order> RouteAsync(Cart c) => Task.FromResult(new Order()); }
7 public class SlowRouter : IRouter { public Task<Order> RouteAsync(Cart c) => Task.FromResult(new Order()); }
8 public class NoRouter : IRouter { public Task<Order> RouteAsync(Cart c) => Task.FromResult<Order>(null); }
9
10 public class Checkout {
11 private readonly IRouter router;
12 public Checkout(IRouter r) { router = r; }
13 public Task<Order> Run(Cart c) => router.RouteAsync(c);
14 }
1 namespace App;
2
3 public class Cart { }
4
5 public class Order
6 {
7 public int Id;
8 public override int GetHashCode() => Id;
9 }
10
11 public static class Retry
12 {
13 public static int Tests(int n) => n;
14 public static void Call() { }
15 }
axiomcode context "Who calls IRouter.RouteAsync in the library code (not tests), and which implementations can that call land on?"
task terms: router · route · async · code · tests · call
SlowRouter.RouteAsync src/App/Routers.cs:7 matches 'router'
Order.GetHashCode src/App/Order.cs:8 matches 'code'
Retry.Tests src/App/Order.cs:13 matches 'tests'
Retry.Call src/App/Order.cs:14 matches 'call'
NoRouter.RouteAsync src/App/Routers.cs:8 best overall match
IRouter.RouteAsync src/App/Routers.cs:4 best overall match
Control: "Who calls IRouter.RouteAsync, and which implementations can it land on?" gives only the terms router · route · async, and all four RouteAsync declarations are entry points.
Root cause
STOP in skills/axiomcode/scripts/ax_contract.py:109-117 does not include code, tests or call, so task_terms (lines 157-179) keeps them as content words. IDENTLIKE (line 133) does not accept a dotted PascalCase name, so IRouter.RouteAsync becomes only its subwords, and nothing weights the declaration it spells. In axiomcode-context:163-178, pick_seeds first gives every term its own seed, however generic the word is. The "best overall" matches only fill the slots left over from seeds_wanted = 6 (line 376).
Expected
When the prompt names a declared identifier exactly, that declaration is the first entry point, and words like code, tests and call do not take a seed.
Activity
Merge pull request #1619 from AxiomCodeAI/fix/1382-context-answers-qu…
swapnilpaliwal-sd commentedon Sep 28, 2026
Fixed by #1619.
context: answer the question that was asked (AxiomCodeAI#1382, AxiomC…