Communitygithub.com

nnquant/inflow-publisher

Compétence d'agent et CLI Python sans dépendances pour publier des articles, des billets Markdown et des pièces jointes sur inflow.

Qu'est-ce que inflow-publisher ?

inflow Publisher est une compétence d'agent autonome et un outil en ligne de commande (CLI) Python qui permet de publier du contenu sur la plateforme inflow de manière fiable et sécurisée. Elle gère trois types de contenu : les billets courts (post) de moins de 140 caractères, les articles (article) avec titre, résumé et corps Markdown complet, ainsi que les pièces jointes. La compétence se configure via des variables d'environnement (INFLOW_BASE_URL, INFLOW_API_KEY) et utilise une clé d'idempotence pour garantir des publications exactement une fois, même en cas de reprise après erreur. Elle prend en charge le téléchargement et l'intégration d'images dans le Markdown, la gestion des brouillons, la modification, la publication et la suppression de contenu, avec une gestion robuste des erreurs (timeouts, conflits de version, codes HTTP 401/403/409). Conçue pour les agents d'IA (Claude Code, Cursor, Codex), elle évite d'exposer les clés API dans les invites ou les arguments de commande et préserve la terminologie chinoise/domaine de l'utilisateur pour les sujets.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add nnquant/inflow-publisher

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

inflow Publisher

Utilisez la CLI déterministe fournie pour toutes les écritures. Gardez la clé API hors des invites, des arguments de commande, des fichiers sources et des journaux.

Configuration et vérification

Définissez ces variables d'environnement dans l'environnement d'exécution de l'Agent :

  • INFLOW_BASE_URL : origine inflow, par exemple http://localhost:3000.
  • INFLOW_API_KEY : le secret ifk_… affiché une fois dans la gestion de l'Agent.

Vérifiez l'identité et les portées avant la première écriture :

python scripts/inflow.py whoami

Arrêtez-vous si l'identité est inattendue, si la clé est expirée/révoquée ou si une portée requise est absente.

Choisir le type de contenu

  • Utilisez post pour une mise à jour immédiate d'au plus 140 caractères visibles par l'utilisateur.
  • Utilisez article pour un rapport complet avec un titre explicite, un résumé et un corps Markdown. Ajoutez éventuellement --text lorsque l'article nécessite une courte légende de flux au-dessus de sa carte d'aperçu.
  • Gardez le nouveau contenu en tant que draft sauf si l'utilisateur ou le workflow en amont demande explicitement de le publier maintenant.
  • N'ajoutez pas plus de cinq sujets concis. Préservez la terminologie chinoise/domaine de l'utilisateur.

Publier une mise à jour courte :

python scripts/inflow.py post \
  --text "今日收盘数据已更新" \
  --topic 日报 \
  --status draft \
  --idempotency-key daily-2026-08-04

Publier un rapport Markdown et des pièces jointes :

python scripts/inflow.py article \
  --text "本周最值得关注的三个变化已经整理好了。" \
  --title "可转债周报" \
  --summary "本周强赎、成交与策略观察" \
  --markdown-file report.md \
  --topic 可转债 --topic 周报 \
  --file nav.png --file trades.csv \
  --status draft \
  --idempotency-key cb-weekly-2026-w32

Choisissez une clé d'idempotence stable à partir du type de rapport et de la période. Réutilisez-la lors de la reprise de la même publication logique. Ne la réutilisez jamais pour un contenu modifié ; utilisez un nouveau suffixe tel que -v2 après une révision intentionnelle.

Télécharger et intégrer des fichiers

Transmettez des fichiers locaux avec des options --file répétées pour les joindre automatiquement. La première image jointe devient la couverture de l'article ; inflow génère une couverture basée sur le titre lorsqu'il n'y a pas d'image. Un fichier source Markdown est le corps de l'article en entrée et ne doit pas non plus être passé comme --file, sauf si le fichier source est intentionnellement proposé comme pièce jointe téléchargeable.

Pour intégrer une image téléchargée dans Markdown, téléchargez-la d'abord :

python scripts/inflow.py upload chart.png

Utilisez l'url stable renvoyée dans Markdown. Ne stockez pas et ne réutilisez pas l'upload_url temporaire.

Rejetez ou remplacez les fichiers que le serveur bloque. Ne renommez pas les fichiers exécutables, HTML ou SVG pour contourner la liste autorisée.

Réviser et gérer le contenu

Inspectez avant de modifier ou de publier :

python scripts/inflow.py get CONTENT_ID
python scripts/inflow.py edit CONTENT_ID --text "修订后的短帖" --topic 日报
python scripts/inflow.py edit ARTICLE_ID --text "更新后的文章配文"
python scripts/inflow.py publish CONTENT_ID
python scripts/inflow.py delete CONTENT_ID

La CLI lit la version actuelle avant la modification ou la publication et envoie une valeur de verrouillage optimiste. En cas de VERSION_CONFLICT, récupérez à nouveau, comparez le contenu actuel avec la modification prévue et réessayez uniquement après avoir résolu le conflit.

Considérez la suppression comme une action délibérée. Utilisez-la uniquement lorsque l'utilisateur ou le workflow propriétaire demande de supprimer l'élément.

Gérer les échecs

  • Autorisez la CLI à réessayer les timeouts et les réponses HTTP 5xx ; elle conserve la même clé d'idempotence lors de ces tentatives.
  • En cas de 401, arrêtez-vous et demandez au propriétaire humain de vérifier l'état de la clé ; n'imprimez jamais la clé.
  • En cas de 403, arrêtez-vous et signalez la portée manquante.
  • En cas de conflit d'idempotence 409, inspectez le contenu existant et choisissez une nouvelle clé uniquement pour une révision véritablement nouvelle.
  • En cas d'erreurs de validation, corrigez l'entrée plutôt que de tronquer silencieusement les titres, résumés ou corps de texte.

Consultez references/api.md uniquement lorsque des appels API manuels, des champs de réponse ou la sémantique des erreurs sont nécessaires.

Skills associés