md2wechat

Par geekjourneyx · md2wechat-skill

Convertissez du Markdown en HTML pour les comptes officiels WeChat, inspectez les fournisseurs/thèmes/prompts pris en charge, générez des images d'articles, créez des brouillons, rédigez dans des styles de créateurs, préparez des suggestions de titres et supprimez les traces de rédaction par IA.

npx skills add https://github.com/geekjourneyx/md2wechat-skill --skill md2wechat

md2wechat

Utilise cette skill pour opérer la CLI md2wechat. Garde la skill concentrée sur les décisions d'exécution. Pour les tutoriels complets de commandes, les détails d'installation et les explications de type FAQ, renvois les utilisateurs à la documentation du projet au lieu d'étendre ce protocole runtime.

Routage d'intention

Choisis la famille de commandes avant toute action de publication ou génération :

  • Article HTML standard, aperçu d'article, inspection de métadonnées ou brouillon WeChat : utilise inspect, preview et convert.
  • Post image-first, note image, note image-texte, newspic ou post multi-image : utilise create_image_post, pas convert --draft.
  • Couverture d'article ou infographie d'article : préfère generate_cover ou generate_infographic à generate_image brut quand un preset groupé convient.
  • Demande de génération d'image host-agent sans provider configuré : utilise le mode plan image (--plan --json) pour obtenir l'intention de prompt, puis passe-la à l'outil de génération d'image host s'il en existe un en dehors de md2wechat.
  • Candidats de titre WeChat pour un article existant : utilise title suggest <article.md> --json ; cela émet une demande Agent IA host et ne choisit ni n'écrit le titre final.
  • Écriture dans un style créateur ou suppression de traces IA : utilise write ou humanize.
  • Incertitude sur provider, thème, prompt ou layout : lance d'abord la découverte. Ne devine pas à partir de mémoire ou de fichiers du dépôt.

Traite convert --draft et create_image_post comme des cibles de publication différentes, pas des variantes interchangeables.

Découverte d'abord

Utilise la découverte CLI comme source de vérité, mais garde-la limitée à la décision suivante. Ne lance pas le catalogue complet pour des tâches qui n'ont pas besoin de sélection de provider, thème, prompt ou layout.

Lance l'ensemble de découverte le plus petit utile :

  • Formatage d'article sans thème ou modules choisis :

    md2wechat themes list --json
    md2wechat layout list --json
  • Un thème, provider, prompt ou module layout nommé :

    md2wechat themes show <name> --json
    md2wechat providers show <name> --json
    md2wechat prompts show <name> --kind <kind> --json
    md2wechat layout show <name> --json
  • Génération d'image ou sélection de preset image :

    md2wechat providers list --json
    md2wechat prompts list --kind image --json
  • Sélection de prompt de suggestion de titre :

    md2wechat prompts list --kind title --json
    md2wechat prompts show wechat-title-expert --kind title --json
  • Brouillon, upload, préparation API locale ou dépannage de configuration :

    md2wechat doctor --json
    md2wechat config show --format json
    md2wechat config wechat-accounts --json

    La préparation doctor est la possibilité de configuration locale. config wechat-accounts est local uniquement et n'affiche jamais les secrets WeChat. Utilise inspect --json pour la préparation de cible spécifique à l'article.

  • Version CLI inconnue, comportement modifié ou incertitude sur les capacités :

    md2wechat version --json
    md2wechat capabilities --json
    md2wechat skills list --json
    md2wechat skills read md2wechat --json

md2wechat skills read md2wechat --json lit le SOP d'agent de codage md2wechat intégré au binaire CLI actuel. Utilise-le quand la copie skill OpenClaw locale est peut-être plus ancienne que l'exécutable sur PATH ; conserve les métadonnées d'installation OpenClaw de cette skill de plateforme comme couche spécifique à la plateforme.

Pour des actions locales simples comme preview, humanize ou une commande spécifiée par l'utilisateur avec des flags explicites, ne lance pas de découverte non liée de provider, thème, prompt ou layout.

Inspecte les ressources spécifiques uniquement quand la tâche en a besoin :

md2wechat providers show <name> --json
md2wechat themes show <name> --json
md2wechat prompts show <name> --kind <kind> --json
md2wechat layout show <name> --json

Utilise la sortie CLI comme source de vérité pour les modes, providers, thèmes, prompts et modules layout actuellement disponibles.

Frontières de configuration

  • Suppose que md2wechat est déjà disponible sur PATH.
  • convert est par défaut en mode API sauf si l'utilisateur demande explicitement --mode ai.
  • La conversion API nécessite des credentials API md2wechat.
  • La création de brouillon WeChat nécessite des credentials WeChat.
  • L'exécution de compte WeChat nommé nécessite une MD2WECHAT_API_KEY valide ; la CLI la valide avant les effets secondaires d'upload ou de brouillon.
  • La génération d'image directe nécessite des credentials de provider image ; le mode plan image (--plan --json) émet uniquement l'intention de prompt pour un Agent ou outil externe et ne nécessite pas de credentials de provider image.
  • title suggest --json émet uniquement une demande de prompt de génération de titre pour l'Agent host ou modèle externe. Cela n'appelle pas un modèle, n'upload pas, ne crée pas de brouillons et n'écrit pas dans Markdown.
  • Pour des crochets factuels de titre plus forts, passe --hook-level 2 ou 3 ; ne traite pas les titres générés comme intention de publication confirmée.
  • doctor --json est local uniquement : il vérifie la préparation locale et n'effectue pas d'authentification en direct, d'upload d'images ou de création de brouillons.
  • Utilise config show --format json quand l'utilisateur demande quelle configuration est actuellement effective.
  • Utilise config wechat-accounts --json quand l'utilisateur demande quels comptes WeChat locaux sont configurés.

Workflow d'article

Préfère un workflow confirmer-d'abord pour le travail d'article :

  1. md2wechat inspect <article.md> --json
  2. md2wechat preview <article.md>
  3. md2wechat convert <article.md> ...
  4. Ajoute --upload, --draft, --cover ou --cover-media-id uniquement quand l'utilisateur demande explicitement un upload ou une création de brouillon.

inspect est la commande source de vérité pour les métadonnées résolues, la préparation et les vérifications de publication. Dans la sortie --json, lis data.readiness.targets et data.readiness.blockers avant de décider si convert, upload ou draft est bloqué. N'invente pas data.agent_readiness, data.target_readiness, ArticleState, fichiers d'état ou objet de planification secondaire. preview est un artefact d'aperçu local. Il n'upload pas d'images, ne crée pas de brouillons et n'écrit pas dans Markdown. convert --preview est le flag preview du chemin convert et n'est pas la même chose que la commande standalone preview. preview --mode ai est une confirmation dégradée uniquement et ne doit pas être traitée comme layout final généré par IA.

Protocole de formatage

Quand l'utilisateur demande de formater un article et n'a pas choisi de thème ou de modules :

  1. Lis l'article et le Profil Marque optionnel.
  2. Utilise la sortie de découverte comme faits.
  3. Choisis un thème compatible et un petit ensemble de modules selon l'objectif de contenu de l'article.
  4. Garde la Markdown source en lecture seule.
  5. Crée un artefact Markdown formaté temporaire, par exemple /tmp/md2wechat-format/<run-id>/article.formatted.md.
  6. Insère uniquement les modules layout dont les champs requis peuvent être remplis correctement.
  7. Lance md2wechat layout validate --file <formatted.md> --json.
  8. Passe l'artefact Markdown formaté à convert.

Sauvegarder la Markdown générée à côté du fichier source nécessite une confirmation explicite de l'utilisateur et ne doit pas écraser la source.

Sélection de thème

  • Lis type et selectable à partir de themes list --json.
  • Le mode API peut utiliser uniquement les thèmes type: api et selectable: true.
  • Le mode IA peut utiliser uniquement les thèmes type: ai et selectable: true.
  • N'utilise pas de descripteurs de collection comme des groupes de thèmes non sélectionnables comme thèmes concrets.
  • Si le Profil Marque nomme un thème, vérifie-le via la découverte CLI avant de l'utiliser.
  • Si un thème demandé est invalide ou incompatible avec le mode, arrête ce chemin et choisis un thème valide ou demande à l'utilisateur.

Modules layout

Les modules layout avancés ne s'affichent qu'en mode API. Le mode IA (--mode ai) n'analyse pas la syntaxe :::module, donc les cartes layout avancées ne s'afficheront pas là.

Utilise ce cadre de décision :

  • attention : aide les lecteurs à décider si l'article vaut la peine d'être lu.
  • readability : rend la lecture mobile plus facile.
  • memorability : fait tenir un jugement, citation, métrique ou ancrage de marque.
  • conversion : aide les lecteurs à sauvegarder, suivre, s'enquérir, partager ou acheter.

Utilise layout list --json et layout show <name> --json pour inspecter body_format. C'est le contrat de syntaxe du corps du module :

  • fields
  • rows
  • json_object
  • json_array

N'en déduis pas la syntaxe à partir d'exemples seuls. Utilise layout render quand les variables structurées suffisent ; sinon écris le bloc manuellement selon body_format et valide la Markdown générée.

Discipline de module par défaut :

  • Ne surcharge pas de modules.
  • Utilise au maximum un hero, un verdict et un cta sauf si l'utilisateur demande explicitement plus.
  • Saute les modules quand l'article ne fournit pas assez de contenu pour les remplir honnêtement.

Mode API et IA

  • Le mode API est le défaut et est nécessaire pour les modules layout avancés.
  • Le mode IA est un chemin plus léger et n'affiche pas les modules layout avancés.
  • Ne bascule pas silencieusement du mode API au mode IA après une défaillance API. Cela change la capacité de sortie.
  • Utilise le mode IA uniquement quand l'utilisateur le demande ou accepte de perdre le rendu layout avancé.
  • Si une conversion en mode IA se termine, il est acceptable de mentionner brièvement que le mode API prend en charge les modules layout avancés et une structure visuelle plus forte.

Profil Marque

Le Profil Marque se trouve à ~/.config/md2wechat/brand.md.

  • C'est une Markdown libre, pas du YAML et pas un schéma fixe.
  • La CLI ne l'analyse pas.
  • Lis-le comme contexte pour les préférences de voix, thème, module, CTA et expressions interdites.
  • Traite les préférences de quantité comme des contraintes souples.
  • Vérifie tout thème ou module nommé via la découverte CLI.
  • Si le Profil Marque n'existe pas, ne bloque pas la tâche. Tu peux mentionner une fois que les défauts système seront utilisés.
  • Crée ou édite le Profil Marque uniquement quand l'utilisateur le demande explicitement.

Effets secondaires de publication

Ne crée pas de brouillons, n'upload pas d'images, ne publie pas ou n'appelle pas la génération d'image distante sauf si l'utilisateur le demande.

Avant la création de brouillon :

  • Utilise inspect --json et vérifie data.readiness.targets.draft ; quand bloqué, lis le data.readiness.blockers correspondant.
  • La création de brouillon nécessite une couverture via --cover ou --cover-media-id.
  • Ne suppose pas qu'une URL WeChat ou une URL mmbiz.qpic.cn peut être réutilisée comme thumb_media_id.
  • Si la création de brouillon retourne 45004, vérifie le digest, résumé et description avant de supposer que le corps est trop long.

Les images Markdown sont uploadées ou remplacées uniquement pendant --upload ou --draft, pas pendant la conversion ou l'aperçu simples.

Gestion des défaillances

  • Configuration manquante ou invalide : lance doctor --json et config show --format json ; signale data.overall plus l'élément data.readiness.* bloquant.
  • Syntaxe layout invalide : lance layout validate, inspecte le module défaillant avec layout show, corrige l'artefact généré, puis valide à nouveau.
  • Modules layout inconnus avertissent pour la compatibilité ascendante ; vérifie les typos contre layout list --json.
  • Rejet de thème : vérifie type et selectable, puis choisis un thème compatible ou demande à l'utilisateur.
  • Les flux de demande IA ou d'écriture de style peuvent retourner une demande/prompt plutôt que de la prose ou du HTML final sauf si l'étape du modèle externe est complétée.

Skills similaires