repro-public

Par emdash-cms · emdash

Reproduire un bug sur le site rendu public (pas l'admin). Lance une démo avec bgproc, pilote les routes publiques avec agent-browser, et capture la reproduction sous forme de captures d'écran et de transcript écrit.

npx skills add https://github.com/emdash-cms/emdash --skill repro-public

Reproduire : Site public

Le problème se situe dans le site public rendu -- pages Astro en dehors de /_emdash, la sortie SSR qu'un visiteur normal voit, routage public, sitemap, RSS, rendu d'images, ou patterns de requêtes visibles aux lecteurs anonymes. Vous n'avez pas besoin d'une session admin. Reproduisez et confirmez le bug entièrement via agent-browser : l'artefact durable est vos screenshots, une tranche de DOM capturée, et une transcription précise et rejouable des étapes. N'écrivez pas de tests Playwright (ou autres) -- le bot ne peut pas les exécuter de manière fiable ici, donc un test non exécuté est de la pure spéculation. Un test de régression appartient à celui qui livre le correctif.

Interdictions strictes

  • Pas de git commit, pas de git push, pas de création de branche qui survit au workflow.
  • Pas d'écritures GitHub. Lectures gh en lecture seule uniquement.
  • Pas de curl vers des hôtes externes arbitraires. localhost:4321 uniquement.
  • Ne touchez à aucun autre issue que celui en cours d'investigation.

Procédure

  1. Relisez l'issue. Notez l'URL exacte ou le pattern de route, le contenu que le rapporteur attendait par rapport à ce qu'il a vu, et les en-têtes ou query strings qui comptaient. Les bugs de site public dépendent souvent de la locale, du format demandé (HTML vs RSS), ou de la présence de lignes de contenu spécifiques -- soyez précis.
  2. Choisissez une démo. demos/simple est la démo par défaut. Si l'issue est spécifique à une locale, choisissez une démo avec plusieurs locales seeded. Si l'issue est spécifique à une collection, choisissez une démo qui a déjà cette collection.
  3. Seedez du contenu si nécessaire. Si l'issue requiert un élément de contenu que la seed de démo ne fournit pas, créez-le avec la CLI : pnpm exec emdash content create <collection> --data '...' (consultez skills/emdash-cli/SKILL.md si vous avez besoin des flags exacts). Évitez d'éditer les fichiers seed -- le contenu éphémère créé via CLI suffit à reproduire et disparaît avec l'espace de travail.
  4. Démarrez la démo. Exécutez bgproc start -n demo -w -- pnpm --filter ./demos/simple dev. Le flag -w attend que le serveur dev ouvre un port avant de retourner -- Astro écoute sur localhost:4321. Inspectez la progression avec bgproc logs -n demo s'il ne démarre pas.
  5. Ouvrez la route affectée. agent-browser open "http://localhost:4321/<path>". Utilisez le chemin exact de l'issue. Si l'issue mentionne une query string ou un en-tête Accept spécifique, incluez-le.
  6. Inspectez la sortie rendue. agent-browser snapshot -i -c vous donne l'arbre d'accessibilité. agent-browser get text @e<n> extrait le texte d'une région. Pour RSS ou une sortie non-HTML, récupérez via le panneau réseau du browser plutôt que curl -- le browser suivra le routage Astro de la démo comme le ferait un visiteur.
  7. Vérifiez les erreurs runtime. agent-browser console pour les avertissements sur l'hydratation, données manquantes, ou sous-requêtes 404. agent-browser errors pour les exceptions levées lors du rendu ou de l'hydratation.
  8. Screenshotez à des états significatifs. Sauvegardez dans .bot-artifacts/step-<n>.png. Un de la page telle que chargée, un de l'élément cassé spécifique s'il est visible.
  9. Confirmez que le mode d'échec correspond. Les bugs de site public sont faciles à mal identifier parce que les différences de rendu peuvent être causées par des données seed manquantes, un artefact de build en cache, ou une route non liée. Si vous ne pouvez pas reproduire exactement le symptôme de l'issue, dites-le dans les notes. Écrivez les étapes exactes rejouables (URL, toute query string ou en-tête Accept, la sortie observée vs attendue) pour qu'un mainteneur puisse la suivre sans vous.

Quand sauter

Marquez skipped: true et expliquez dans les notes quand :

  • Le bug requiert un user-agent spécifique de crawler moteur de recherche, validateur de carte OG, ou autre fetcher tiers que vous ne pouvez pas usurper depuis localhost.
  • Le bug requiert du contenu à l'échelle de production (edge cases de pagination, chunking de sitemap) que la démo ne peut pas réalistement produire en temps de workflow.
  • Le bug ne se manifeste que sur un Worker déployé -- en-têtes de cache depuis l'edge CF, routage géographique, transformation d'image via la binding R2 de production.
  • Le bug requiert un dataset source spécifique (par ex. import WordPress) que le rapporteur n'a pas fourni.

Sortie

Retournez :

  • Si vous avez reproduit le bug.
  • Si vous avez ignoré (avec raison le cas échéant).
  • L'approche que vous avez utilisée : agent-browser-only ou none.
  • Notes : la démo utilisée, l'URL exacte, la séquence d'interaction en prose simple, et toute erreur de console ou runtime.
  • Une liste de screenshots, chacun avec le nom de fichier relatif sous .bot-artifacts/ et une description d'une ligne.

Skills similaires