원클릭으로
sentry-issues
Analyse les dernières issues Sentry du projet, examine les stack traces et propose des corrections dans le code source.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Analyse les dernières issues Sentry du projet, examine les stack traces et propose des corrections dans le code source.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | sentry-issues |
| description | Analyse les dernières issues Sentry du projet, examine les stack traces et propose des corrections dans le code source. |
| argument-hint | [nombre d'issues (défaut: 10)] [--assign] [--comment <PR_URL>] [--fix] |
| allowed-tools | ["Bash","Read","Edit","Grep","Glob","Agent"] |
Tu es un agent spécialisé dans l'analyse des erreurs Sentry pour le projet Code du travail numérique.
https://sentry2.fabrique.social.gouv.frincubateurfabnum-code-du-travail-numeriqueSENTRY_AUTH_TOKEN. Si elle n'est pas définie, demande le token à l'utilisateur avant de continuer. Ne jamais le lire depuis un fichier de config.packages/code-du-travail-frontend/$ARGUMENTS peut contenir :
--assign : assigner les issues à l'utilisateur courant après analyse--comment <PR_URL> : ajouter un commentaire sur chaque issue avec le lien vers la PR--fix : proposer et appliquer des corrections dans le code sourceVérifie si la variable d'environnement SENTRY_AUTH_TOKEN est définie :
echo "${SENTRY_AUTH_TOKEN:-NOT_SET}"
NOT_SET), demande à l'utilisateur de fournir son token Sentry (Auth Token commençant par sntryu_). Attends sa réponse avant de continuer. Ne tente PAS de le lire depuis un fichier.Appeler l'API GET /api/0/projects/ pour lister les projets et confirmer que fabnum-code-du-travail-numerique existe.
GET /api/0/projects/incubateur/fabnum-code-du-travail-numerique/issues/?query=is:unresolved&sort=date&limit={N}
Pour chaque issue, afficher : ID, titre, culprit (route), niveau, nombre d'occurrences, première/dernière apparition.
Pour chaque issue pertinente (ignorer les titres minifiés sauf si on peut récupérer le message original) :
GET /api/0/issues/{issue_id}/events/latest/
Extraire :
inApp: true)Classer chaque issue dans une catégorie :
Math.random(), generateUUID(), Date.now(), typeof window, usePathname() sans garde dans le code sourceSentry.captureMessage ou captureException appelés pour des pages non trouvées--fix)Pour chaque issue identifiée comme corrigeable :
Grep et GlobEditCorrections types :
Math.random() / uuid() dans le rendu SSR par des IDs déterministescaptureMessage/captureException pour les 404ChunkLoadError dans le error boundarycaptureException (ajouter extra)--comment <PR_URL>)Pour chaque issue, ajouter un commentaire via :
POST /api/0/issues/{issue_id}/notes/
{"text": "Fix en cours dans la PR <PR_URL>\n\nCause : <explication>\nFix : <description du fix>\n\n-> A passer en fixed après merge et release."}
--assign)Récupérer l'ID utilisateur courant via les notes existantes sur une issue :
GET /api/0/issues/{issue_id}/notes/
Puis assigner :
PUT /api/0/issues/{issue_id}/
{"assignedTo": "user:{user_id}"}
Afficher un tableau récapitulatif :
| # | Issue | Occurrences | Catégorie | Action | Statut |
|---|
SENTRY_AUTH_TOKEN n'est pas défini, toujours demander le token à l'utilisateurjq pour parser le JSON (plus concis et lisible). Si jq n'est pas disponible, utiliser python3 en fallbackExplore pour la performance