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 drops an inflected task word such as validated before scoring, so a validation question never seeds the validator #1493
context drops a task word that is an inflected form of a declared name before scoring it. "validated" is not in the task terms although CreateWidgetCommandValidator.Validate is declared, so a question about validation starts its flow at the handler and never at the validator. Writing "validator" instead keeps the term and makes Validate the first entry point. The MCP axiomcode_context tool prints the same. Measured on 0.1.3 at 0df257c.
Reproduction
src/App/App.csproj (net8.0, ImplicitUsings) and src/App/Widgets.cs:
1 namespace App.Widgets;
2
3 public record CreateWidgetCommand(string Name, int Size);
4
5 public class CreateWidgetCommandValidator
6 {
7 public bool Validate(CreateWidgetCommand c) => c.Name != "" && c.Size <= 10;
8 }
9
10 public class CreateWidgetCommandHandler
11 {
12 private readonly WidgetStore _store;
13 public CreateWidgetCommandHandler(WidgetStore store) { _store = store; }
14 public int Handle(CreateWidgetCommand c) => _store.Add(c.Name);
15 }
16
17 public class WidgetStore
18 {
19 private readonly List<string> _names = new();
20 public int Add(string name) { _names.Add(name); return _names.Count; }
21 }
$ axiomcode context "how is a CreateWidgetCommand validated before the handler runs"
task terms: create · widget · command · handler
1 CreateWidgetCommandHandler.<constructor> src/App/Widgets.cs:13
2 CreateWidgetCommandHandler.Handle src/App/Widgets.cs:14
$ axiomcode context "how is a CreateWidgetCommand validator run before the handler runs"
task terms: create · widget · command · validator · handler
1 CreateWidgetCommandValidator.Validate src/App/Widgets.cs:7
Root cause
winnow in plugins/axiomcode/skills/axiomcode/scripts/ax_contract.py:202 keeps a term only if it is exactly a subtoken of some symbol name (name_df.get(t, 0) > 0), and validated is not (validate, validator are). score_symbols in axiomcode-context:96-101 already scores a term that starts with a symbol subtoken ("unmounted" against unmount), but winnow runs first (axiomcode-context:409-410), so the term never reaches it.
Expected: "validated" survives as a task term and seeds CreateWidgetCommandValidator.Validate, as "validator" does.
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…