Summary
Daemon shipped the grounding epic (aegis#446/#447/#450/#500) 2026-04-14, landing in daemon v1.98.1→v1.99.5. The core work is captured in `web/src/kernel/grounding-layer.ts` (277 LOC) plus companion changes to the executor registry. Zero of this is upstream in core.
Why it belongs in core
The Chimera class of bugs the grounding epic resolved — models inventing schemas, guessing API shapes, fabricating file paths — is not specific to the daemon. Any aegis variant consuming the core router + dispatch loop will hit the same failure modes. Grounding is an architectural property of the dispatch substrate, not a Stackbilt feature.
Referenced by `executor-registry.ts:127-139` (gap-signal count gate for tier escalation, aegis#497) — so the gap-signal writer lives in `kernel/procedural.ts` and the reader lives in `kernel/executor-registry.ts`. Both substrates are already in core; the grounding layer that writes the signals is the missing middle.
Acceptance criteria
Dependencies
Out of scope
- Tool-call log cross-check + auto-strip + classifier split — deferred in daemon memory per `project_grounding_epic.md` pending production signal
- Daemon-specific grounding rules that reference Stackbilt substrates — stay daemon-side
References
- Daemon: `web/src/kernel/grounding-layer.ts` (277 LOC)
- Epic trail: aegis#446, #447, #450, #500 (all closed)
- Memory: `project_grounding_epic.md`
- Related: aegis#497 (tier escalation gate — consumes gap signals)
Summary
Daemon shipped the grounding epic (aegis#446/#447/#450/#500) 2026-04-14, landing in daemon v1.98.1→v1.99.5. The core work is captured in `web/src/kernel/grounding-layer.ts` (277 LOC) plus companion changes to the executor registry. Zero of this is upstream in core.
Why it belongs in core
The Chimera class of bugs the grounding epic resolved — models inventing schemas, guessing API shapes, fabricating file paths — is not specific to the daemon. Any aegis variant consuming the core router + dispatch loop will hit the same failure modes. Grounding is an architectural property of the dispatch substrate, not a Stackbilt feature.
Referenced by `executor-registry.ts:127-139` (gap-signal count gate for tier escalation, aegis#497) — so the gap-signal writer lives in `kernel/procedural.ts` and the reader lives in `kernel/executor-registry.ts`. Both substrates are already in core; the grounding layer that writes the signals is the missing middle.
Acceptance criteria
Dependencies
Out of scope
References