The one gap I'd want closed before promoting anything past speak: the code enforces authority going in — checking the proposed skill against the roster — but the confirm path doesn't show a pending confirmation id tied to that specific proposed effect. A user's "yes" needs to be validated against the exact action it's confirming, not just treated as a fresh transcript that happens to sound affirmative. With barge-in and stale-response suppression already in the design, it's easy for a real "yes" to land after the turn it was answering has already been interrupted or replaced, and without a pending-action id to check it against, the supervisor has no way to tell a stale confirmation from a current one. Same failure class as the interruption handling already in there, just one step later in the flow.
The one gap I'd want closed before promoting anything past speak: the code enforces authority going in — checking the proposed skill against the roster — but the confirm path doesn't show a pending confirmation id tied to that specific proposed effect. A user's "yes" needs to be validated against the exact action it's confirming, not just treated as a fresh transcript that happens to sound affirmative. With barge-in and stale-response suppression already in the design, it's easy for a real "yes" to land after the turn it was answering has already been interrupted or replaced, and without a pending-action id to check it against, the supervisor has no way to tell a stale confirmation from a current one. Same failure class as the interruption handling already in there, just one step later in the flow.