Public: anyone can read this; the crew can change it.
Bug hunters on a schedule, as a self-improving loop: every escape becomes a detector; KPIs (escapes → 0, valid ≥ 80%, fix < 24 h) #5846
commented
Live triage (automatic, not written by a person): no pillar named, so it waits behind the Later gate; name a pillar to move it.
Sign in to join this conversation.
Owner, 2026-10-25: "where are those [bug hunters]? can we get them hunting again?… it would also be great if it was a self-improving loop as well, with solid metrics and KPIs we can close on."
Where things stand (probe):
src/crew/sentinel.ts) reads the run table, decision ledger and error ring, and files one issue per finding. The forge log shows no sentinel lines in the last 6 hours.Done when: hunters run on the forge's own machines on a schedule.
- UI: headless browser as a signed-in test user and as anonymous, at 390 px and 1440 px. It clicks every link and button on the top pages, and flags: - a 404 or 5xx - a link that lands on
/without being Home - a button with no effect - console errors - the main input below the fold - text overflow - Flows: sign in, migrate a repo, open and land a pull, create an app, drive the arm in its simulation. Each step is timed. - Speed: page p95 and the arm's command → readback p95 against budgets. - Contract: every OpenAPI route answers the documented status codes for good and bad input, and no route answers 500. - Front door: the sign-in 302, the signup gate 403, and private repositories 404 to anonymous visitors.The self-improving loop:
escapemakes the hunter add a regression detector for that class and prove it would have caught the original (red on the old commit, green on the fix). Example: #5844 becomes "every menu link lands where its label says".hunted.KPIs (a card on home, and a weekly comment on this issue):
Done when: the hunt runs after every release and nightly. #5844 and #5816 are labelled
escape, and each has its detector. The KPI card shows the first week's numbers.