
Shelf audits are still done by eye: someone walks the aisle, counts facings and writes them down. Gaps sit unnoticed between walks, counts differ between people, and nobody knows what a missing facing costs. Shelf-Sense turns one shelf photograph into a preliminary compliance report. The user picks a shelf specification, adds a photo and runs one inspection. Gemma-4-31B-IT, called through AMD Developer Cloud's Token Factory, counts each product shelf by shelf. Everything after that is plain Python: Pydantic validation with one stricter retry, invented items dropped, unreliable or contradictory counts sent to review, a verdict computed from per-product statuses, and an estimated margin at risk computed with Decimal arithmetic from demo unit margins. A second AMD call may word the restocking note, but every name, count and figure in it is inserted by code, and the app labels who wrote it. We measured it honestly on a self-taken photo with a hand-counted ground truth. A shelf-by-shelf prompt cut the counting error from 8 boxes to 1. The model still misses one half-hidden box, at 100% confidence, so the fully stocked demo shelf is reported as short. Higher resolution and a second model did not fix it; per-shelf cropping did but overcounted, so it is not in production. That is why every dollar figure is labelled "Estimated Margin at Risk (Unverified)" and per-shelf counts are shown for a quick human check. All 24 experiment records, with raw model replies, are in the repository. Built with Streamlit, Python, Pydantic and Docker; 195 offline tests. MIT licensed.
18 Oct 2026

The problem Code review happens on the diff, but the damage a pull request does usually sits in code the diff doesn't show. A reviewer sees nineteen tidy files and misses the twentieth caller that still passes its arguments in the old order. Both arguments are strings, so TypeScript compiles, CI stays green, and real users get locked out. Our solution BlastRadius turns every pull request into a map of what it can break, and hands that map to IBM Bob, which does the review. A deterministic engine parses both sides of the branch with tree-sitter into a code graph in under a second, with no LLM or network. It: - walks reverse call and render edges from each changed unit to every dependent, and names the affected subsystems; - compares signatures before and after, and checks each caller the PR didn't update against the old and new parameter order, catching argument-swap bugs type checkers miss; - finds untested units and the ADR sections in scope; - produces a 0–100 risk score where every point has a written reason. A BlastRadius MCP server gives Bob this evidence as eight tools. Our custom BlastRadius Reviewer mode and reusable skill tell Bob to stop for a human at high risk, judge each ADR rule with a file and line, send one parallel subagent per risky subsystem to write and run a vitest regression test against a real in-memory database, and apply fixes only after approval. When watsonx.ai is configured, IBM Granite writes the plain-English summary from the evidence alone. Target users Reviewers and tech leads who merge pull requests daily, where one missed caller can become a security incident. How they use it - In Bob IDE: switch to BlastRadius Reviewer and say "review branch X". - CLI: blastradius review --head X --fail-on 70 prints the scored reasons and exits 2. - GitHub Actions: the CLI gates the merge and Bob Shell writes the review as a PR comment. What makes it creative and unique Other PR-risk tools score the diff and ask a model for an opinion. BlastRadius gives Bob evidence, not a prompt: every claim carries a file and line. Bob acts as a reviewer that proves what it says, with tests it wrote and ran and rules it checked against the team's own decisions. Why it works, and efficiently On three seeded PRs: - A copy change scores 6 and is approved in one pass. - Three lines in the session check score 70, reaching 34 units across 13 subsystems. - The hero PR scores 95. BlastRadius points to the missed caller at comments/[commentId]/route.ts:18. Bob's subagent test fails with "expected 403 to be 200", as does a second test proving the new archive route skips the activity log required by ADR-002. After the approved fixes, 5 of 5 tests pass. Across the three PRs, the diffs showed 21 files; the blast radius covered 56. Both hidden bugs were caught before merge, for 3.24 Bobcoins.
27 Sep 2026

Most trading agents ask a language model what to buy and act on the answer. This desk inverts that: deterministic Python enumerates every legal, defined-risk options structure the live SPY chain supports (about 1,500 fully priced candidates per cycle), and the analyst committee may only pick one by id or ABSTAIN. There is no code path by which a model can invent a strike, change a quantity, or move a limit price. Every pick then passes two independent vetoes with decorrelated failure modes: a pure-code thesis check (do the position Greeks match the structure's own directional claim?) and a blind LLM review starved of the committee's reasoning. RiskGuard then enforces risk.yaml as the single source of truth ($1,000 max loss per position, 3 positions, one new trade per underlying per day, delta/vega caps, DTE 7-45, liquidity gates, a 2% daily-loss halt) and fails closed on any error. A pre-mortem compiles each trade's failure modes into deterministic exit triggers, and the exit monitor manages the book before it adds to it. Each analyst emits a probability, not a verdict. Every decision is appended to a hash-chained journal; closes resolve those predictions and Brier scores recompute analyst weights every cycle, so a confidently wrong analyst loses its vote. A credential-free judge page replays four real decisions, two of them refusals. Live, on a new $100k paper account inside the official window: 3 fills (each at better than its limit), 1 automated close on its own breakeven trigger, 0 corrupted positions, closing equity $99,827.64 (-0.17%). Four bugs were found by running while the 933-test suite was green, each root-caused from the journal and fixed mid-session. We claim architecture and refusal discipline, not edge; the README says what cannot be proved. Orders route through the official Alpaca CLI; market data through the official Alpaca MCP server (read-only toolsets); alpaca-py for analysis.
4 Sep 2026