Communitygithub.com

nnquant/inflow-publisher

Skill de agente y CLI de Python sin dependencias para publicar publicaciones, artículos Markdown y archivos adjuntos en inflow.

¿Qué es inflow-publisher?

Este skill permite a agentes de IA (como Claude Code, Cursor o Codex) publicar contenido directamente en inflow, una plataforma de gestión de contenido. Proporciona una CLI determinista de Python que maneja todo el ciclo de vida de las publicaciones: creación de posts cortos (hasta 140 caracteres), artículos completos con Markdown y títulos, carga de archivos adjuntos y gestión de contenido (editar, publicar, eliminar). Es especialmente útil para automatizar informes periódicos (por ejemplo, resúmenes diarios o semanales) respetando la terminología técnica en chino del usuario. El skill enfatiza la seguridad: nunca expone la clave API, maneja conflictos de versión con bloqueo optimista y utiliza claves de idempotencia para evitar duplicados. Funciona en cualquier sistema con Python 3, sin dependencias externas, y se configura mediante variables de entorno.

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

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

inflow Publisher

Usa la CLI determinista incluida para todas las escrituras. Mantén la clave API fuera de indicaciones, argumentos de comandos, archivos fuente y registros.

Configurar y verificar

Establece estas variables de entorno en el runtime del Agente:

  • INFLOW_BASE_URL: origen de inflow, por ejemplo http://localhost:3000.
  • INFLOW_API_KEY: el secreto ifk_... que se muestra una vez en la gestión del Agente.

Verifica la identidad y los alcances antes de la primera escritura:

python scripts/inflow.py whoami

Detente cuando la identidad sea inesperada, la Clave esté caducada/revocada o falte un alcance requerido.

Elegir el tipo de contenido

  • Usa post para una actualización inmediata de máximo 140 caracteres visibles por el usuario.
  • Usa article para un informe completo con un título explícito, resumen y cuerpo en Markdown. Añade --text opcional cuando el artículo necesite un pie de foto corto para el feed sobre su tarjeta de vista previa.
  • Mantén el nuevo contenido como draft a menos que el usuario o el flujo de trabajo ascendente soliciten publicarlo ahora.
  • Añade no más de cinco temas concisos. Conserva la terminología china/de dominio del usuario.

Publicar una actualización corta:

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

Publicar un informe Markdown y archivos adjuntos:

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

Elige una clave de idempotencia estable a partir del tipo de informe y el período del informe. Reutilízala al reintentar la misma publicación lógica. No la reutilices nunca para contenido modificado; usa un nuevo sufijo como -v2 después de una revisión intencional.

Subir e incrustar archivos

Pasa archivos locales con opciones repetidas --file para adjuntarlos automáticamente. La primera imagen adjunta se convierte en la portada del artículo; inflow renderiza una portada basada en el título cuando no hay imagen. Un archivo fuente Markdown es la entrada del cuerpo del artículo y no debe pasarse también como --file a menos que el archivo fuente se ofrezca intencionalmente como un adjunto descargable.

Para incrustar una imagen subida dentro de Markdown, súbela primero:

python scripts/inflow.py upload chart.png

Usa la url estable devuelta en Markdown. No almacenes ni reutilices la upload_url temporal.

Rechaza o reemplaza los archivos que el servidor bloquee. No renombres archivos ejecutables, HTML o SVG para evitar la lista blanca.

Revisar y gestionar contenido

Inspecciona antes de cambiar o publicar:

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 lee la versión actual antes de editar o publicar y envía un valor de bloqueo optimista. En VERSION_CONFLICT, obtén de nuevo, compara el contenido actual con el cambio previsto y reintenta solo después de resolver el conflicto.

Trata la eliminación como una acción deliberada. Úsala solo cuando el usuario o el flujo de trabajo propietario solicite eliminar el elemento.

Manejar fallos

  • Permite que la CLI reintente tiempos de espera y respuestas HTTP 5xx; mantiene la misma clave de idempotencia en esos reintentos.
  • En 401, detente y pide al propietario humano que verifique el estado de la Clave; nunca imprimas la Clave.
  • En 403, detente e informa del alcance faltante.
  • En conflicto de idempotencia 409, inspecciona el contenido existente y elige una nueva clave solo para una revisión genuinamente nueva.
  • En errores de validación, corrige la entrada en lugar de truncar títulos, resúmenes o cuerpo del texto silenciosamente.

Consulta references/api.md solo cuando se necesiten llamadas API manuales, campos de respuesta o semántica de errores.

Skills relacionados