Andrew Fribush

fig. 2.23.3: twelve tool parameters published as an empty schema at review time; the two purge-tool confirm literals are fixed since, the six records and four unions still publish {}

fig. 2.23.3 · twelve tool parameters published as an empty schema at review time; the two purge-tool confirm literals are fixed since, the six records and four unions still publish {}.
12 PARAMETERS PUBLISHED AS {}; 10 STILL AREONE ROW: ONE TOOL PARAMETER. ACCENT: AN EMPTY SCHEMA {}, NO TYPE AND NOCONSTRAINT.TOOL.PARAMETERTHENNOWZodLiteral · z.literal(true) · 2 ACROSS THE 450 TOOLSpolicy.retention_apply.confirm{}CONST TRUEpolicy.archive_purge.confirm{}CONST TRUEZodRecord · 7 NODES, 6 PARAMETERSidentity.upsert.metadata{}{}automation.rule_set.conditions{}{}automation.rule_set.action{}{}life.record.details{}{}life.update.details{}{}finance.position.details{}{}ZodUnion · z.union([z.string(), z.number()]) · 4 ACROSS THE 450 TOOLSlife.link.from_id{}{}life.link.to_id{}{}commitments.add.source_id{}{}goals.attribute.source_id{}{}

source: lifemain docs/review-2026-09-01-core.md section 11, lines 353-377; tool source at commit 8cbe41f; current src/zod-to-json.ts lines 31-34 and 64 · emptySchemas.data.ts

View in context: Your MCP tool descriptions are probably being thrown away → · All figures

Andrew Fribush, software and computer engineer in Austin. I build consequential systems where software meets institutions: finance, healthcare, commerce, government data, and the mechanisms that govern AI agents. Taking new engagements: hello@andrewfribush.com.