Skip to Main Content

Count Before You Post

Built at Meta Global AI Developer Hackathon · Oct 26, 2026 · Remote

Count Before You Post — Demo video

Count Before You Post is a verification gate between AI agents and the ERP. An agent can read a delivery note and post a goods receipt in seconds, but if the note is wrong, stock, invoice matching and replenishment go wrong with it. On our dock nothing is written until the delivery note, the camera (SAM 3.1 and Muse Spark, carton by carton), the receiver's voice (Muse Voice Transcribe) and a second model (Muse Spark Open) agree. Kapı, the gate, is plain code inside post_goods_receipt, the only tool that writes the receipt: the agent cannot skip it, and asking to post isn't permission. Green posts; red blocks and Muse Wonder drafts the supplier dispute; amber stops the run until Şef, the human supervisor, signs off in ERPNext. Results (recorded runs, all in the repo): on the rendered dock 24/24 gate decisions right across 6 cases × 4 languages (TR/EN/DE/ZH) and 0 wrong receipts behind the gate; in a real ERPNext (local test instance) 12/12 receipts against a purchase order, and a second delivery on that order stopped; Muse Code, Meta's own agent, working the dock through the gate's MCP server: 5 sessions, 5 refused writes, 0 receipts; Wonder caught 36/36 deliberately altered readings. We publish what is still hard too: on 30 real public carton photos SAM counted 12/30 and Spark 17/30 exactly. Please consider us for the bonus prizes: Best Agentic Use-Case (an agent that writes ERP receipts, behind a gate it cannot skip, with human sign-off), Best Creative (the whole cast was drawn with Muse Image from my concept; Muse Wonder writes the dock's paperwork), Open-weight (Muse Spark Open on Baseten as the independent second reader; Muse Glimmer measured as well), and Most Viral (X post linked above). Everything in this repository was written during the hackathon. The idea comes from my SAP internship and from GlovesOn, my earlier hands-free voice agent for SAP goods receipts; no code from it is used here.

Team