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

Integrity Copilot tells an offshore integrity engineer where to inspect next, and why. On an FPSO, the evidence for one piping line is scattered. Ultrasonic wall-thickness (UT) readings sit in inspection campaigns, visual findings sit in coded inspection workbooks, sensor health sits elsewhere, and photos sit in folders. Deciding which spot to inspect next means rebuilding the corrosion trend by hand, line by line, and hoping nothing silently stopped reporting. Integrity Copilot brings this together in one workbench: • Next spots. A deterministic ranking across lines and monitoring points. It weighs remaining life to the engineer's t_min, the governing corrosion rate, decoded visual findings (237 inspection valuation codes) and blind spots, such as a wireless UT sensor that went silent or a trend broken by an instrument change. Every spot shows its reasons and evidence ids. • Import a campaign. Upload one inspection campaign as CSV in the Inspection Workbook layout. A row is accepted only if the trend engine's own validator accepts it, and every rejection is reported. Comparability across instruments or calibrations is an explicit, named engineer decision. In the demo, one new campaign moves the top spot from 3.25 years of remaining life to 0.74 years, and the ranking updates at once. • Line view. Line data, decoded findings, the UT trend per point, SAM 3.1 regions on line imagery, and a bilingual English/Portuguese narrative from Meta Muse. • Engineer approval. Proposals are drafts until a named engineer approves or rejects them with a rationale. Decisions are single use and survive restarts. What decides what. Rates, remaining life and due dates come only from deterministic code. Meta models add language and vision, not values. Before Muse sees the findings, every number is masked, every digit-bearing evidence identifier is replaced by a digit-free alias, and a technique code that carries a percentage (such as 100 % coverage) is not sent at all, so the request contains no digits and no percent signs. Muse's reply is withheld if it contains digits in any script, any character outside a fixed allowlist, number words in English or Portuguese, hidden characters, an unknown alias, or an identifier stated as the value of a quantity. Only after these checks are the aliases put back. These checks are tested against the attack cases our reviews found. Remaining documented limits (for example the words "one"/"um", or Roman numerals) are covered by the model-inferred label and engineer approval. Images mark where to look; they never produce a thickness. Who it's for. Integrity engineers at offshore operators and the inspection contractors who serve them, starting with FPSOs in Angola, where teams work in English and Portuguese and inspection data is confidential to the operator. The product is a workbench that sits on top of the workbook exports teams already produce, so adopting it doesn't mean replacing an inspection database. What's next. Direct import of .xlsx workbooks and PDF inspection reports (today: Save As CSV), streaming from wireless UT sensors, and a pilot on a real asset under the operator's data agreement. Built with Next.js 14, React 18, TypeScript, Tailwind CSS and Node 24's built-in test runner, with Meta Muse Glimmer running locally through the Ollama desktop runtime, and the TypeScript compiler API for the Meta-only policy check. It was developed with Claude Code as build lead and OpenAI Codex as an independent reviewer. A two-key rule meant nothing was published until both agreed on the exact file tree. The project has 123 automated tests plus HTTP acceptance tests and real-browser (Chrome) checks.