Description
SharedWorkflowForbiddenFields (pkg/constants/constants.go:332) lists field names that cannot appear in shared/included workflows, but several entries are dead/defensive — they reference fields that are not top-level properties in main_workflow_schema.json:
"command" (line 334) — not a top-level schema property.
"roles" (line 342) — not a top-level schema property.
"timeout_minutes" (line 348) — an underscore-variant defensive duplicate of the kebab-case timeout-minutes.
These entries can never match a real top-level field, so they add noise and imply schema fields that don't exist.
Expected Impact
Tightens the forbidden-field allowlist to the fields that actually exist, removing dead/misleading entries. If any entry is retained intentionally (defense-in-depth), add a brief comment explaining why.
Acceptance Criteria
- Confirm against
main_workflow_schema.json which of command/roles/timeout_minutes are non-schema, then remove the dead ones (or annotate as intentional defensive entries).
go test ./pkg/constants/... ./pkg/workflow/... passes.
Suggested Agent
Schema Consistency agent / Dead Code Removal Agent.
Estimated Effort
Fast (< 30 min)
Data Source
DeepReport 2026-06-05 — Schema Consistency Check #37077 (Standing Issue #3). Verified at HEAD: entries present at constants.go:334/342/348.
Generated by 🔬 DeepReport - Intelligence Gathering Agent · 178.3 AIC · ◷
Description
SharedWorkflowForbiddenFields(pkg/constants/constants.go:332) lists field names that cannot appear in shared/included workflows, but several entries are dead/defensive — they reference fields that are not top-level properties inmain_workflow_schema.json:"command"(line 334) — not a top-level schema property."roles"(line 342) — not a top-level schema property."timeout_minutes"(line 348) — an underscore-variant defensive duplicate of the kebab-casetimeout-minutes.These entries can never match a real top-level field, so they add noise and imply schema fields that don't exist.
Expected Impact
Tightens the forbidden-field allowlist to the fields that actually exist, removing dead/misleading entries. If any entry is retained intentionally (defense-in-depth), add a brief comment explaining why.
Acceptance Criteria
main_workflow_schema.jsonwhich ofcommand/roles/timeout_minutesare non-schema, then remove the dead ones (or annotate as intentional defensive entries).go test ./pkg/constants/... ./pkg/workflow/...passes.Suggested Agent
Schema Consistency agent / Dead Code Removal Agent.
Estimated Effort
Fast (< 30 min)
Data Source
DeepReport 2026-06-05 — Schema Consistency Check #37077 (Standing Issue #3). Verified at HEAD: entries present at constants.go:334/342/348.