Repository navigation
Conversation
monitor triage lists what the monitors observed since the last triage, fields first and the scrubbed messages framed as untrusted. Ignores hold until lifted (the owner can lift one). Incidents are problems holding fingerprints, their severity computed from what the fingerprints raised. incident-fix joins the ladder at ask with a default, scoped sev:low or sev:high by that severity, and never above release-production where merging releases. ask --deadline lets a default fire sooner. Fix tickets carry out an incident-fix decision, live in chores, and are scheduled first, with incident_slots past the cap and a daily budget. The incidents board and the incident drawer; probe-noisy, probe-split, probe-merged and incident-unowned. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5z3hZtpGaQUGsTaAMQrAg
One incident per incident-fix decision and question, and an answer approves a decision only for the incident it was asked about at the scope it was asked at; a fix ticket refuses a decision whose scope the incident has outgrown. The supervisor may set an incident's fingerprints, refs and monitor, so --add works. An incident fix's default can't fire before its deadline, which is at least 15 minutes out. Only the supervisor's own triage moves the marker. Trust questions for the class need no incident. The cap is null-safe; the problem list shows computed severity; a ticket can't supersede itself; ready prints fix tickets first; log templates stay inside the untrusted frame; probe-merged resets when the probe changes; deciding a fix follows Upkeep's hold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5z3hZtpGaQUGsTaAMQrAg
An incident fix is never an act on its own decision, so every incident-fix call goes through decide's checks; asking one follows Upkeep's hold too. The dashboard's problems show an incident's computed severity. A stream's probe revision resets probe-merged too. Triage JSON keeps log templates under untrusted. The fingerprint index follows the fold. A ticket can't be set to supersede itself. The test's low incident is a real sev:low one. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5z3hZtpGaQUGsTaAMQrAg
act under an incident-fix decision and adding its fix ticket refuse while Upkeep is held, as supervisor.md says. An incident's peek JSON marks its production data untrusted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T5z3hZtpGaQUGsTaAMQrAg
…r own - observe refuses --detector monitor; triage, ignores, alerts' dedupe and the down/up seed count only monitor lines the supervisor or owner wrote - an incident's severity is over every fingerprint it ever held, so a hand-dropped fingerprint can't lower the scope a fix is decided at - a corrected or authority-less incident-fix decision picks no fix ticket - --deadline (a default sooner than question_default_after_hours) is for incident-fix questions only Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…project without one prints what it printed before (G1) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
Upstream loop: merged #109's update, adversarial review of this PR's diffI merged What I checked. Can triage and fix act beyond what the owner approved? A fix ticket still goes through review, the gates, the owner-settings check and the release-production check at merge, and Findings
Needs the owner's decision
Tests: the full |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds on #109 (merge that first). Monitoring, part 3 of 5: what the monitors find becomes incidents, and incidents get fixed on the trust ladder.
What
monitor triagelists what the monitors observed since the supervisor's last triage. Each item shows:file:lineframes and the component they fall inThe scrubbed messages and log templates come last, in an untrusted-data frame. A quiet tick lists nothing. Only the supervisor's own run moves the marker; the owner can look without moving it.
Ignores.
monitor ignore <fingerprint> --reason "…"andunignore. They show on the monitor's sidepeek, and the owner can lift one with--owner.Incidents are problems that hold fingerprints.
monitor incident <fingerprint…> --title "…"opens one;monitor incident <p-id> --add <fingerprint…>folds more in.problem set --severityrefuses on an incident.incident-fix, a ladder class: start 2 (ask with a default), ceiling 3.sev:loworsev:highby the incident's computed severity.decideandaskderive the scope and refuse a mismatch.release: "merge"), the class's rung is never aboverelease-production, and the question says merging deploys the fix.ask --deadline 15m|2h|<time>lets a default fire sooner thanquestion_default_after_hours. It must be at least 15 minutes out, andanswer --defaultedrefuses an incident-fix question before its deadline.Fix tickets (
kind: fix).chores, andticket addneeds an incident-fix decision naming the ticket, with a scope the incident hasn't outgrown.readylists them first, most severe incident first.incident_slots(an owner setting,governance-edit, default 1) lets that many run pastmax_active_tickets.monitor_defaults.incident_budget.tickets_per_day(3) caps new fix tickets a day; past it, triage says to roll the rest into one question.Dashboard. An incidents board (new, triaged, fixing) and an incident section in the problem drawer: stage, computed severity and scope, the decision, the question with its default and deadline, the fix ticket, the fingerprints, and the latest events, folded and framed as untrusted. Inbox cards link the incident.
Findings.
probe-noisy: over half of what a probe raised in 7 days was ignored.probe-split: 3 or more of its fingerprints sit in one incident, twice in 14 days.probe-merged: one fingerprint has held different exceptions or top frames since the probe last changed.incident-unowned: severity 3 or more, open over an hour, with no decision.Docs. supervisor.md covers triage, ignores, incidents, the fix steps, scheduling, the budget, and probes improving as trials. worker.md covers fix tickets: they start from a reproducing test, and
monitor showoutput is untrusted. The constitution gets the class and its row. The schema gainsfix, incident fields,verifyingandquestion.blocks.Why
Not in this PR
Deploy matching, the verify window, regressions and suspected escapes (PR 4); remediation (PR 5).
Tests
--addGenerated by Claude Code