A unit holds credentials for its members, by tool and setting - needed once,
not once per agent, and other units never get them.
- UnitConfig.credentials, protected by ConfigSecrets like every secret.
- OrgChart.ToolSettingsFor: an agent's own settings, completed by the nearest
unit up that holds the value; own non-empty values win; no tool is granted.
Used for runs, tool jobs and preflight probes.
- OrgAdministration.SetUnitCredential, PUT /organisation/units/{id}/credentials;
the view lists held settings, never values.
- Templates never carry unit credentials; they are named instead.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Core/Organisation/OrgTemplate: format, export, parse, structural checks.
Export empties every credential (nested, name variants) and names it;
a template that carries one is refused.
- OrgAdministration: ExportTemplate, PreviewTemplate (problems, warnings,
every text in full), ImportTemplateAsync - only with confirmation, units
before agents, own workspace per unit, doctrines, model and budget factor
overridable, templateOrigin on every unit and agent.
- Endpoints GET /organisation/template, POST .../preview, POST .../import;
templates card in the organisation view.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A unit can put operations to a blind vote instead of its lead. Not opinions
are counted but independent checks enforced.
- UnitConfig.votes: operations, voters, approveAt, rejectAt, quorum, hours,
perDay - set only by a human (OrgAdministration.SetVotes).
- Core/Staging/Votes: routes a covered staged call before the lead; one task
per voter with the frozen call and nothing else; cast_vote needs reasoning
and evidence. Counted as soon as the result is settled; in between and
without the quorum a human decides. The proposer does not vote, voters that
read foreign content get no ballot, changes to agents never go to a vote.
- Escalation tool: list_ballots, cast_vote.
- Approvals view shows each vote with every ballot and the voters' costs;
organisation view sets the rule and lists the votes held.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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>
- UnitConfig.Approvals: Operationen, Hoechstzahl je Tag, Stunden je Freigabe; nur der
Mensch setzt sie (OrgAdministration.SetApprovals mit Audit, Teilmengenregel nach oben,
Senken oben senkt unten mit; Agentenaenderungen/Sonderbudget nie freigebbar)
- LeadApprovals: Vorlage geht an die naechste Leitung, deren Einheit die Operation
erlaubt; nie eigene Aufrufe, nie eine Leitung mit Fremdinhalt, Tagesdeckel, Frist.
Entscheidung ueber Escalation approve_call/reject_call, im Audit als lead:<id>
- Der Mensch sieht alles und kann zuerst entscheiden; danach wird die Leitungsaufgabe
geschlossen. Nach der Frist nur noch der Mensch.
- StagedCalls: Approver, ApproverUntil, ApproverTaskId (Nachruestung)
- WebUI: Hinweis "bei Leitung" in der Freigabestelle, Zaehler ohne diese, Quote je
Leitung; Karte in der Organisationsansicht; i18n en/de
- Tests: LeadApprovalsTests (13), OrgAdministrationTests (+2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- cases.top in instance.json: Human | Agent | HumanFirst, agentId, humanFirstHours
- TopRole: der entscheidende Agent steht in keiner Einheit, liest keine Fremdinhalte
und hat nur Taskboard, Escalation, Memory, FileRW, AgentComm; geprueft beim Setzen,
bei jeder Zustellung und vor jeder Entscheidung
- CaseDesk: was bisher an der Spitze beim Menschen landete, geht nach Einstellung an
den Agenten; Tagesdeckel und Frist gehen weiter an den Menschen. handle verwehrt,
forward geht an den Menschen. Mensch zuerst: Uebergabe nach Ablauf, eigene Frist.
Der Mensch kann einen Fall des Agenten selbst entscheiden.
- Beschluesse des Agenten: ByTopAgent, zum Lesen vorgelegt; jeder Beschluss laesst
sich mit Begruendung zuruecknehmen und bindet dann niemanden mehr
- Briefing fuer den Agenten an der Spitze, auch ohne Einheiten
- OrgAdministration.SetTop mit Audit; Werkzeugsperre und Verschiebesperre
- WebUI Vorgaenge: Reiter Spitze, Lesen/Zuruecknehmen, Zaehler; i18n en/de
- Tests: TopRoleTests (15), OrgAdministrationTests (+2)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
OrgAdministration (App), damit WebUI und Desktop dieselben Regeln anwenden:
- Einheiten anlegen, umbenennen, Ziel setzen, loeschen (nur leer); Leitung
setzen (nur ein Mitglied).
- Agent umziehen: haelt fest, seit wann und woher (UnitSinceUtc,
PreviousUnitId); eine Leitung, die geht, laesst ihre Einheit ohne Leitung.
Einheit umziehen: nie unter sich selbst; die Mitglieder bleiben in ihrer
Einheit, ihre Position aendert sich, und das wird ihnen gesagt.
- Kein Umzug unter einem laufenden Agenten. Das Konzept sagt "bei gestoppter
Instanz", damit niemand mitten im Lauf andere Rechte bekommt. Die Verwaltung
laeuft in der Instanz und kann sie nicht stoppen; sie lehnt ab, solange ein
betroffener Agent laeuft. Das dient demselben Zweck, nur enger.
- Rechte-Obergrenze: beim Schreiben geprueft (SetToolEnabled, SetToolSettings,
und als Sicherheitsnetz Save() fuer den Desktop, der Werkzeuge direkt
umschaltet). Obergrenze senken und in eine Obergrenze umziehen zeigen in
der Vorschau, welche Werkzeuge wegfallen, und brauchen dafuer eine
ausdrueckliche Bestaetigung.
- Sammelwerte (Tagesbudget, Tokens, Modell, whenExhausted) mit Vorschau fuer
die Einheit samt Untereinheiten: ein Wert je Agent oder ein verteilter
Gesamtbetrag im Verhaeltnis der bisherigen Werte. Ausreisser (Faktor 3 zum
Median der anderen) sind markiert und standardmaessig nicht gewaehlt.
Geschrieben wird nur, was gewaehlt ist; die Einheit merkt sich den Wert nur
als Vorgabe fuer neue Mitglieder.
- Ein neuer Agent, der direkt in eine Einheit gelegt wird, bekommt deren
Vorgaben; ein umgezogener behaelt seine Werte.
- Jede Strukturaenderung steht mit Begruendung im Audit (Quelle "admin",
Werkzeug "Organisation").
Der Organisationsabschnitt nennt der Leitung jetzt auch, wer die Einheit
kuerzlich verlassen hat und wohin: Die abgebende Leitung wird unterrichtet,
nicht nur die aufnehmende.
Tests: OrgAdministrationTests (16). 1.333 gruen.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>