Problem
The schema at pkg/parser/schemas/main_workflow_schema.json:4170-4172 declares tools.grep as deprecated with both a description and an x-deprecation-message:
"grep": {
"description": "DEPRECATED: grep is always available as part of default bash tools. This field is no longer needed and will be ignored.",
"deprecated": true,
"x-deprecation-message": "grep is always available as part of default bash tools (echo, ls, pwd, cat, head, tail, grep, wc, sort, uniq, date, yq). Remove this field and use bash tool instead."
}
A repo-wide grep over pkg/workflow/ and pkg/parser/ finds no compiler code that detects tools.grep and emits the deprecation message. The field is silently dropped on the way in — users get no signal at compile time.
Contrast with tools.github.repos → allowed-repos which is handled correctly at pkg/workflow/tools_parser.go:296 via console.FormatWarningMessage.
Proposed Fix
Instead of hard-coding deprecation strings per field, add a generic walker that:
- Loads the JSON schema once at parser init.
- For every parsed field, checks the corresponding schema node for
deprecated: true.
- If the user supplied a value for it, emits
x-deprecation-message (falling back to description) through console.FormatWarningMessage.
This eliminates the whole class of "schema says deprecated, compiler accepts silently." The four current candidates: safe-outputs.create-agent-task.oneOf[0], tools.github.repos, tools.serena, stdio_mcp_tool.network, plus tools.grep.
Expected impact
High — closes a recurring class of schema/parser drift and makes future deprecations honor themselves without per-field plumbing.
Suggested agent / effort
Claude — Medium (~50-100 lines of parser code + tests).
Source
DeepReport intelligence run, 2026-05-19. See discussion #33233 findings #2 and #3.
Generated by 🔬 DeepReport - Intelligence Gathering Agent · ● 23.5M · ◷
Problem
The schema at
pkg/parser/schemas/main_workflow_schema.json:4170-4172declarestools.grepas deprecated with both adescriptionand anx-deprecation-message:A repo-wide grep over
pkg/workflow/andpkg/parser/finds no compiler code that detectstools.grepand emits the deprecation message. The field is silently dropped on the way in — users get no signal at compile time.Contrast with
tools.github.repos→allowed-reposwhich is handled correctly atpkg/workflow/tools_parser.go:296viaconsole.FormatWarningMessage.Proposed Fix
Instead of hard-coding deprecation strings per field, add a generic walker that:
deprecated: true.x-deprecation-message(falling back todescription) throughconsole.FormatWarningMessage.This eliminates the whole class of "schema says deprecated, compiler accepts silently." The four current candidates:
safe-outputs.create-agent-task.oneOf[0],tools.github.repos,tools.serena,stdio_mcp_tool.network, plustools.grep.Expected impact
High — closes a recurring class of schema/parser drift and makes future deprecations honor themselves without per-field plumbing.
Suggested agent / effort
Claude — Medium (~50-100 lines of parser code + tests).
Source
DeepReport intelligence run, 2026-05-19. See discussion #33233 findings #2 and #3.