Authority and intent
Verify the Mind and current principal with orient. Record the intended person, areas, allowed actions and exclusions. Read-only inspection and a security-sensitive grant are different steps; obtain the owning human’s specific authorisation before expanding access. Only the owner or a suitably delegated admin may manage ordinary profiles. Approval-bearing profiles remain owner-controlled.
Inspect before changing
Use list_zone_catalog {} and list_access_profiles {} if advertised. Inspect zone eligibility, the existing profile, Everyone/default behaviour, assignments and the returned effective-access explanation. Use actual subject and profile IDs from discovery, never an invented person ID.
A private zone is not shareable through an access profile. A profile with extends_default: true adds to Everyone and verified group zones; a replacement profile behaves differently. Inspect the actual configuration rather than assuming additive access.
Assign an existing profile
After the intended assignment is authorised, the released input shape for assign_access_profile is:
{"subject":"<actual-roster-principal>","profile_id":"<existing-profile-id>"}
To unassign, profile_id can be null, but that does not prove every other grant has disappeared. The owner cannot be assigned a profile. Read and report an actual refusal instead of changing the person’s role to force the operation.
Inspect and verify
Read list_access_profiles again and inspect effective access. Have the intended person use their own account for a harmless permitted task and an intended excluded read. Keep the configuration result and that runtime observation separate. A role/profile label or an owner-side read is not distinct-person acceptance.
Departure and failure handoff
Full departure is not a profile assignment. Have the owner complete account membership removal, local Portal cleanup and any named credential/model-route follow-up. The Portal’s removal can delete local chat history and has partial-surface results; use the human guide rather than inventing a universal revoke API. If a response is lost, reconcile current assignment/membership before repeating a mutation.
Related
Practical guides for people and agents