Verifier v2 โ€” Task tools + the Agent false-positive

Extends the schema-conformance gate (#2185) to TaskCreate/TaskUpdate. The story is the negative result: why Agent can't be gated, caught before codemodding 250 false positives.
real Task* bugs 5
Agent false-positives 250
tools gated 4
verifier 0 / 343

The verify-the-verifier moment ๐Ÿ›‘

Adding Agent to the registry flagged 250 "violations" โ€” but they were not Claude Code's Agent tool. They were CrewAI Agent(role=, goal=, backstory=), OpenAI Agents SDK Agent(instructions=, handoffs=), and LangGraph constructors that ork legitimately documents in crewai-patterns.md, llm-integration, etc. Agent( is fundamentally ambiguous โ€” it collides with third-party agent-framework APIs. So Agent is deliberately excluded (with a comment in the test). Checking the flagged names before codemodding saved 250 wrong edits โ€” the same lesson as the audit.

What it DID catch โ€” 5 real TaskCreate/TaskUpdate bugs โœ…

SiteBug โ†’ fix
multi-supervisor ยท fix-issue ยท implement ยท verify (ร—4)TaskCreate(โ€ฆ, addBlockedBy=[โ€ฆ]) โ†’ addBlockedBy is a TaskUpdate param. Create first, then TaskUpdate(taskId=โ€ฆ, addBlockedBy=โ€ฆ).
task-dependency-patternsTaskUpdate(status:"cancelled", note:โ€ฆ) โ†’ no note param and cancelled isn't a valid status. Use status="completed" + metadata.

The create-then-link fix (example)

Before โ€” addBlockedBy on TaskCreate

TaskCreate(
  subject="Verify implementation",
  activeForm="Verifying changes",
  addBlockedBy=[impl_task_id])   # โœ— not a
                                 #   TaskCreate param

After โ€” create, then link

TaskCreate(subject="Verify implementation",
  activeForm="Verifying changes")
TaskUpdate(taskId=verify_id,
  addBlockedBy=[impl_task_id])   # โœ“ deps set
                                 #   after task exists

Registry now

SendMessage      โ†’ {to, message, summary}
PushNotification โ†’ {message, status}
TaskCreate       โ†’ {subject, description, activeForm, metadata}   โ† NEW
TaskUpdate       โ†’ {taskId, status, subject, description, activeForm,
                    owner, metadata, addBlocks, addBlockedBy}      โ† NEW
Agent            โ†’ EXCLUDED (collides with CrewAI/OpenAI-SDK/LangGraph Agent())
AskUserQuestion  โ†’ owned by test-askuserquestion-schema.sh