HUB: POST /api/registry/agents with agent_id, name, domains and skills, accepted only for ids already present in sandboxes.json. SHAREPOINT: the User Profile Service, and a principal is a principal - SharePoint does not distinguish a person from a service account, which is precisely why crew seats were seeded as Person rows rather than given a bespoke agent column. STATUS: HAVE, in a stronger form. Directory/People already holds both humans and seats, Manager gives it hierarchy, and Skills are already declared as Skill parts bound to actors rather than as a free-text list. The hub's rule that no agent self-admits maps to content approval on the People list - see CIT.12.