Staffing people into roles, and the accountable holder¶
Audience: whoever administers people — a quality manager or a user administrator.
Configuration decides what a role may do; staffing decides who holds it. They are separate acts on purpose, and this topic is about the second one.
1. What an assignment is¶
An assignment binds one person + one project + one role. It is the only place in LQMS where a person's name is bound to a responsibility — documents name roles, not people, so a personnel change is a change to staffing data and nowhere else.
Three preconditions:
- the person exists (invited or bound — see below);
- the person belongs to the project's organization — an accepted membership, a pending invitation to it, or a role they already hold in one of its projects. A role is given inside an organization somebody is in, never as a way of putting them in one: joining an organization is an invitation the person answers (memberships), and there is no path around that. Staffing across the boundary is refused, naming the person, the organization and the remedy — and the scope picker does not offer it in the first place, so you meet the rule as an absence rather than as an error;
- the role is activated in that project. Assigning a role where it is not activated is refused, naming the role and the project: "role 'Regulatory Affairs' is not activated in scope 'Cardio Monitor'".
Staffing lives on Admin → Users. Each row shows the person, their status (Active / Invited /
Deactivated) and their assignments as scope: role chips; Assignments opens the per-person
manager where you add and remove them.
2. Who may do what¶
- Assigning and unassigning a role needs user-administration permission in that project — a project or organization administrator staffs their own projects. Audited against that project.
- Inviting, deactivating and reactivating a person needs it installation-wide — a user is one global identity, not a per-project object. Audited installation-wide.
- You cannot deactivate your own account (a deliberate footgun guard).
- The last active system administrator cannot be deactivated, and cannot have their installation-wide administration role taken away. An installation with no administrator cannot invite one, reactivate one or staff one — every repair path needs the very authority that just vanished — so the system refuses instead of warning, and the Deactivate verb on that row is offered disabled with the reason on it. Appoint a second system administrator first; then either of them may go. The same guard holds when two administrators try it on each other at the same moment.
- An invited person is pre-created and binds to their real account on their first verified login; reactivating someone who never bound returns them to Invited, so that binding still applies.
3. The accountable holder¶
Per project and role, at most one holder may be marked accountable — the person answerable that the role's duties get done, not necessarily the person doing them. This is the auditor's "main person", and for the QMS project's Quality Manager it is ISO 13485 §5.5.2's individual management representative. A role may have none.
Every screen calls this the accountable holder (§7 lists the exact labels). The audit trail and the API call the same thing the primary holder — one concept, and the older word survives where an event name cannot be rewritten without rewriting history.
Three properties are worth stating flatly, because each is a promise:
- It grants nothing. The accountable holder has exactly the rights every other holder has. No permission check anywhere reads the flag. It feeds the authority view, its snapshot record, and later the escalation target for reminders.
- It is a property of an assignment. There is deliberately no way to name someone accountable for a role they do not hold — naming an accountable holder who is not staffed is refused, naming the person, the role and the project.
- Re-pointing it is one atomic act. Making Anna accountable demotes whoever held it in the same breath; a two-accountable-holder state is not merely discouraged, it is unrepresentable. Staffing a successor and making them the main person is one request and one audited event.
4. What is audited¶
- ROLE_ASSIGNED — the project and role, before/after. When the assignment also names the person primary, the same event carries the accountability change alongside it.
- PRIMARY_HOLDER_SET — re-pointing accountability without assigning anything is its own event
(an act that assigns nothing must not claim it did). Its change names both people in clear text,
e.g.
["Anna Sommer", "Carla Fischer"]; clearing it leaves the after-value empty. - ROLE_UNASSIGNED — the removal, same shape reversed.
- USER_INVITED / USER_DEACTIVATED / USER_REACTIVATED — the lifecycle acts, installation-wide.
An act that changes nothing writes nothing: re-posting an assignment that already exists with the same accountability is a no-op, not a fresh audit row.
5. The personnel-change runbook¶
This is the point of the whole design. Someone leaves; their successor arrives. The old way was half a day per event — update the org chart, update the ticket system, hunt through living documents for the person's name. Here it is three acts, in this order:
- Staff the successor alongside the incumbent. Add the assignment while the departing person still holds it. Two people holding the same role is legal and intended — a role has as many holders as it needs, and an overlapping handover is exactly what that is for.
- Re-point the accountable holder to them. Making the successor accountable demotes the incumbent in the same breath (§3) — one request, one audited event, and no moment in between where the role has two accountable people or none. Steps 1 and 2 collapse into one if you tick "Make accountable holder" while adding the assignment (§7).
- Then deactivate the departing person (Admin → Users). If they are the installation's last system administrator, appoint their successor to that role first — the deactivation is refused until somebody else holds it (§2). Their access ends immediately; their past contributions stay attributed to them, because attribution is history and history is not edited. Their assignments are not deleted, but the derived views count only active holders, so the assignment simply stops counting.
Done in that order there is no gap window: the role is never unstaffed, never without an accountable holder, and no document sitting in review is ever waiting on a permission nobody can exercise.
When the departure already happened — someone left abruptly, or their account was deactivated before anybody thought about the roles — run it the other way around and let the flags drive you:
- Deactivate the person, if that has not happened yet.
- Read the gap flags. Every role that person was carrying now surfaces as unstaffed, and every role they were accountable for surfaces as having no accountable holder, in the authority view and in the project's setup check. You do not go hunting; the list is the hunt.
- Staff the successor, marking them accountable where the predecessor was. The flags clear as you go, and an empty flag list is how you know the handover is finished.
Removing an assignment outright needs no accountability cleanup either: the flag lives on the assignment row, so it disappears with it and the role simply has no accountable holder again.
6. How many accountable holders to name¶
The house recommendation: name an accountable holder for every staffed role, in every project.
The reason is not the standard — it is that "who is answerable if this role's duties are not done?" should have an answer for every role you have bothered to staff, and the moment to decide it is when you staff the role, not when an auditor asks. It costs one click per assignment.
The system requires it nowhere. No accountable holder is a quiet flag, not a block: nothing refuses, nothing is gated, no document stops moving. It is a note that a question has not been answered yet. Two roles where a standard does turn it into an obligation — the QMS project's Quality Manager as ISO 13485 §5.5.2's individual management representative, and any role your own procedures name an owner for — are simply the cases where the answer is not optional.
7. What the screens call it¶
The vocabulary on screen is "accountable holder" throughout, and the marker is a star:
- Admin → Users, in a person's assignment chips: the accountable assignment carries a small star inside its own chip — never a second chip beside it — with the tooltip "Accountable holder for this role". A scan of the column tells you which of someone's roles they are answerable for.
- Assignments (the per-person dialog): each existing assignment row has a star toggle — "Make accountable holder" when it is off, "Remove as accountable holder" when it is on. Toggling it confirms with "Accountable holder named." or "Accountable holder cleared."
- The dialog's add row carries a "Make accountable holder" checkbox beside the Add button, so staffing the successor and naming them accountable is the single act described in §5 rather than two. The hint under it restates the promise: "The accountable holder is the one person answerable that this role's tasks get done. At most one per project and role; it grants no additional rights."
- The authority view uses the same star on the holder it applies to, and reports a staffed role without one as "No accountable holder named".
Governing decisions: ADR-0098 (org chart × role system — accountability as one bit on the staffing assignment, marriage at the evidence level only), ADR-0012 (authorization model — user administration as a functional permission), ADR-0004 (global role catalog with per-scope activation — why activation and assignment are different acts), ADR-0054 (responsibility is a role, not a person — the reason a personnel change touches staffing data only). Regulatory frame: ISO 13485 §5.5.1 (responsibilities defined, documented and communicated), §5.5.2 (an individual management representative).