Skills
L'écran Skills vous permet de lister les paquets de skills du tenant, de vérifier leur signature, de charger un skill comme le ferait un agent et de changer son statut de cycle de vie. Les skills non signés ou bloqués ne peuvent pas être chargés. Chemin dans le portail : /capabilities/skills. Les développeurs enregistrent et vérifient les skills ; les administrateurs du tenant et les responsables sécurité décident de leur statut. L'écran est dessiné par portal/src/screens/capabilities.tsx.
Ce que montre l'écran
- Tableau Skills, lu par
GET /v1/skills(tous les skills en un appel, par nom). Colonnes : Nom, Version, Propriétaire, Vérifié, Vérification (la raison de la dernière vérification, par exempledigest_mismatch), Statut. Vide : Aucun skill, aide Appliquez un manifeste Skill ci-dessous. - Un clic sur une ligne, ou Voir le détail, ouvre un panneau latéral avec
GET /v1/skills/{name}. - Panneau Appliquer un manifeste prérempli avec un exemple de manifeste Skill (
portal/src/samples/skill-manifest.json), avec Rétablir l'exemple et Appliquer.
Actions
| Bouton ou action | Ce qu'il fait | Appel d'API | Rôles |
|---|---|---|---|
| Actualiser (icône) | Recharge la liste. | GET /v1/skills | Tout membre du tenant |
| Clic sur une ligne ou Voir le détail | Ouvre la fiche du skill. | GET /v1/skills/{name} | Relation viewer sur le skill |
| Menu Vérifier la signature | Contrôle l'empreinte du contenu et la signature, enregistre le résultat et l'affiche. Un skill vérifié devient approved, un skill non vérifié draft ; un skill bloqué reste bloqué. | POST /v1/skills/{name}/verify | tenant_admin, developer, application_owner, security_officer et relation editor |
| Menu Charger | Charge le skill comme le ferait un agent et affiche le contenu, ou le refus. | GET /v1/skills/{name}/load | Relation can_invoke sur le skill |
| Menu Changer le statut | Formulaire Statut (obligatoire : draft, approved, restricted, deprecated, blocked) et Raison. approved ouvre une approbation de promotion ; les autres statuts s'appliquent tout de suite. | POST /v1/skills/{name}/status | tenant_admin, security_officer et relation editor |
| Rétablir l'exemple / Appliquer | Remet l'exemple / applique le manifeste Skill. | POST /v1/manifests/apply | tenant_admin, developer |
| Réessayer (état d'erreur) | Relance la lecture qui a échoué. | Même appel | Mêmes rôles |
Rôles
Le portail ne masque aucun bouton. Dans services/control-plane/src/eai/domains/skills/routes.py : la liste demande un tenant ; la vérification demande WRITE_ROLES (tenant_admin, developer, application_owner) ou security_officer ; le changement de statut demande tenant_admin ou security_officer. Chaque route contrôle aussi la relation sur le skill. platform_admin passe tous les contrôles de rôle.
Tâches courantes
Enregistrer un skill et le vérifier
- Appliquer le manifeste. Le manifeste porte l'empreinte et la signature du paquet. Dans Appliquer un manifeste, collez votre manifeste Skill, puis cliquez sur Appliquer. Résultat attendu : Manifeste appliqué et le skill dans le tableau après Actualiser. En cas d'échec : corrigez les erreurs listées sous l'éditeur.
- Vérifier la signature. Un agent ne peut charger qu'un skill vérifié. Dans le menu de ligne, cliquez sur Vérifier la signature. Résultat attendu : un panneau latéral avec
verified: true; Vérifié indique oui et le statut devient Approuvé. En cas d'échec :verified: falseavecreason: digest_mismatchsignifie que le contenu a changé après la signature ; signez de nouveau le paquet. - Le charger. Le chargement prouve qu'un agent peut l'utiliser. Cliquez sur Charger. Résultat attendu : le contenu du skill. En cas d'échec :
skill_unsignedouskill_blocked(403) expliquent le refus.
Bloquer un skill
- Changer le statut. Le blocage s'applique tout de suite. Dans le menu de ligne, cliquez sur Changer le statut, choisissez Bloqué, écrivez la Raison, puis cliquez sur Changer le statut. Résultat attendu : le message Terminé et le statut Bloqué ; Charger répond désormais
skill_blocked. En cas d'échec :forbiddensignifie que vous n'êtes nitenant_adminnisecurity_officer.
Dépannage
| Symptôme | Cause | Correction |
|---|---|---|
skill_not_found (404) | Le nom est faux ou le skill n'a pas été appliqué. | Copiez le nom depuis le tableau. |
skill_unsigned (403) : « La compétence ... n'a pas de signature valide. » | La signature manque ou n'est pas valide. | Signez le paquet, appliquez de nouveau le manifeste, puis Vérifier la signature. |
skill_digest_mismatch ou raison de vérification digest_mismatch | Le contenu ne correspond pas à son empreinte. | Reconstruisez le paquet, mettez à jour l'empreinte et la signature. |
skill_blocked (403) | Le statut est blocked. | Demandez à un responsable sécurité de changer le statut. |
skill_permission_denied (403) | Les permissions du skill dépassent celles de l'agent. | Réduisez les permissions du skill ou étendez celles de l'agent. |
| Changer le statut vers approved affiche Terminé mais rien ne change | La promotion attend une approbation. | Faites approuver la demande dans la Boîte d'approbation. |