Kontrollpflicht der Leitung: Stichproben gegen das Audit (#693)

A lead looks at the runs of the agents it leads - held against the task and
against what the engine stamped, never by asking the agent.

- RunInspector (Core/Inspection): the mechanical check and first profile of
  the inspector foundation (#204). Flags failed runs, tool errors, refusals,
  unfinished calls, tasks answered with bookkeeping alone, and operations the
  agent names but never called in the run (the 2026-09-14 pattern).
- SpotChecks: picks runs per unit (rate, denser for new agents, new models and
  after a failure, daily cap), deterministic by run id; one task per lead.
- Escalation tool: spot_checks, inspect_run, check_done, propose_measure.
  Measures go to a human; nothing is carried out automatically. A security
  suspicion is its own case, not a personnel matter.
- Organisation view: settings per unit, recent checks, measures to decide.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Richard
2026-10-01 11:40:20 +02:00
co-authored by Claude Opus 5.5
parent ab1bd67464
commit 68e723a9c0
19 changed files with 1621 additions and 6 deletions
@@ -288,6 +288,26 @@ public sealed class OrgAdministrationTests : IDisposable
Unit("amazon").Approvals!.Operations.ShouldBe(["Database.insert"]);
}
// ═══════════════════ spot checks (#693) ═══════════════════
[Fact]
public void A_human_sets_how_often_the_lead_checks_within_bounds()
{
BuildMarketing();
Org.SetInspection("marketing", true, rate: 1.5).Ok.ShouldBeFalse("a share lies between 0 and 1");
Org.SetInspection("marketing", true, perDay: -1).Ok.ShouldBeFalse();
var set = Org.SetInspection("marketing", true, rate: 0.2, denseRate: 0.1, perDay: 3, reason: "new team");
set.Ok.ShouldBeTrue(set.Message);
Unit("marketing").Inspection!.Rate.ShouldBe(0.2);
Unit("marketing").Inspection!.DenseRate.ShouldBe(0.2, "never less dense where it matters than for ordinary runs");
Unit("marketing").Inspection!.PerDay.ShouldBe(3);
Org.SetInspection("marketing", false).Ok.ShouldBeTrue();
Unit("marketing").Inspection.ShouldBeNull();
}
// ═══════════════════ the top (#690) ═══════════════════
private void MakeDecider(string id)