Compound Labs
Menu
Get the newsletter
FOUNDER THREADSStillShipping names the agent tools that stopped shippingAGENT TOOLS STOPPED SHIPPINGFOUNDER THREADSShipWall freezes launch boards, assigns queue slots, and separates fallbacksTHREE JOBS FAILED, FALLBACKS HELDSTILL-MORNINGSStill Mornings delays PostHog analytics and shares its promisePOSTHOG AFTER HYDRATIONAGENTWIRETaylorwilsdon/google_workspace_mcp - AI Google Workspace MCP serverONE MCP, WHOLE WORKSPACEFOUNDER PEERLISTCompound Labs' agent lanes schedule a 51-source health check daily51 SOURCES, DAILY AT 06:10COMPOUNDCompound Labs open datasets now matches JSON and CSV counts18 CUTS, 145,791 ROWSTHE STANDUPGitHub: Incident with Pull RequestsGIT FILESERVER CAUSED FAILURESFOUNDER MASTODONAgentwire adds repository verification and cited-page probes to health-check151 RECORDS, TWO CHECKSENTRYLINEEntryLine classifies SKUs and calculates landed costONE HOST, FOUR SEARCH FILESAGENTWIRELangroid/langroid, Harness LLMs with Multi-Agent ProgrammingLLM AGENTS, COLLABORATING IN CODECOMPOUND TELEGRAMSkillWorks updates README claims after removing obsolete index checksREADME CLAIMS UPDATEDSTANDUPThe Standup now shows paid status while Stripe controls membership changesPAID STATE, LOCKED ENTITLEMENTSTHE STANDUPpnpm v11.27.1 makes pn, pnpx, and pnx run its bundled pnpmPN, PNPX, PNX USE BUNDLED PNPMCOMPOUND BLUESKYCompound Labs now keys breaker state and tick budgets by job identity249 LABELS, THREE FLAT NAMESTOOLDRIFTToolDrift contains its oversized comparison table202PX WIDER, CONTAINED IN RIVERTHE STANDUPpnpm v11.27.1 makes pn, pnpx, and pnx use its own pnpmPN, PNPX, PNX USE THEIR OWNFOUNDER LINKEDINLive-product-sync owns roster delivery; product-sync remains the older pathOWNS ROSTER DELIVERYMATCHLINEMatchLine blocks private fetches and revalidates every redirect400 LOOPBACK FETCHES, ZERO HITS
Independent product R&D labFounded and run by Isaiah Kim, @kyisaiah47Newest commit Sep 21, 2026, SkillWorksNewest writing Sep 21, 2026Site changelog Sep 21, 2026
Sections
Sep 18, 20263 min read

BreachProbe checks whether users can read each other's rows

A passive scan can list exposed keys and public tables. It cannot tell whether a row-level policy keeps one signed-in user from reading another user's rows. BreachProbe puts that question in the console, then shows the evidence and the fix.


BreachProbe

URL scan control

The main console starts with a URL field and a scan control marked "Scan free." The header identifies the console as read-only.

BreachProbe fetches the submitted app and checks its public surface without changing the app. The scan begins from one URL.

BreachProbe, The main console: SAMPLE demo-app.lovable.app · THE WORKED EXAMPLE, SCORED BY THE ENGINE demo-app.lovable.app scored out of 100, grade F.
BreachProbe, The main console: SAMPLE demo-app.lovable.app · THE WORKED EXAMPLE, SCORED BY THE ENGINE demo-app.lovable.app scored out of 100, grade F.

Security verdict

The console shows a grade, a numeric score, severity chips, and a points meter. The live header also exposes a critical-open status.

BreachProbe turns findings into a score and stops the score at zero. A critical finding makes the grade F, while a high finding caps it at C.

BreachProbe, Checklist: BREACHPROBE / CHECKLIST Vibe coding security checklist Nine checks between “it works on my screen” and “it’s safe for re
BreachProbe, Checklist: BREACHPROBE / CHECKLIST Vibe coding security checklist Nine checks between “it works on my screen” and “it’s safe for re

Cross-tenant probe

The sample report shows a three-step probe. BreachProbe creates two test users through the app's public signup endpoint, then asks whether the first user can read rows owned by somebody else.

A correctly scoped table answers zero because the first user owns no rows. Any row above zero becomes a cross-tenant finding, reported table by table.

BreachProbe, Sources: DRIFT CORRECTED 2026-08-08, and it is the lesson of this rotation. The 2026-08-06 version of this claim read 'Cross-user
BreachProbe, Sources: DRIFT CORRECTED 2026-08-08, and it is the lesson of this rotation. The 2026-08-06 version of this claim read 'Cross-user

Finding detail and fixes

The report contents rail links to each finding by severity and identifier. The main report opens each finding with its title, location, severity, and written fix.

BreachProbe names where a finding lives, including the table, header, file, or route when the report has that detail. Each fix is written as an instruction that can be pasted into the coding tool used for the app.

BreachProbe, Every check: 01 Start at 100. 02 Each critical takes 40, each high 22, each medium 10 and each low 4. 03 Each further finding in the
BreachProbe, Every check: 01 Start at 100. 02 Each critical takes 40, each high 22, each medium 10 and each low 4. 03 Each further finding in the

Every check ledger

The Every check page shows the check identifiers, severity groups, descriptions, and the source groups that feed the scan. The ledger sits above the score explanation.

BreachProbe keeps the check names visible instead of reducing the scan to one opaque grade. The page shows which checks contribute to the score and how the scoring function applies their weights.

BreachProbe, Pricing: One payment, one report Every finding located, table by table A written fix per issue
BreachProbe, Pricing: One payment, one report Every finding located, table by table A written fix per issue

Score calculation

The score panel shows the starting score, the severity weights, the decay applied to later findings, and the grade thresholds. A second panel prints the sample arithmetic and the deducted total.

BreachProbe applies a smaller deduction to each further finding in the same severity, so repeated low findings do not outweigh one critical finding. The calculation is shown as scoreFindings() from the scoring code.

Smoke test console

The Smoke test page has its own console and a control for checking whether an app's user flows work. Its route sits beside the security console and sample report in the main navigation.

BreachProbe uses the smoke test for signup, checkout, and password-reset flows. It shows where those flows break instead of treating a security scan as proof that the application works.

Multiple shipped products, taken apart, few times a week. What each one does, what it cost to build, what the pipeline behind it looks like, and what the numbers did, read off the repository and the live site, not written from memory. Join the list.

All writing

Alongside