agentleFS
jeanchristophjeanchristoph/claude_forge/skills/forge-clickup/SKILL.md

forge-clickup

Skill4 starsChanged 7 days agoMITView on GitHub

Ouvre une tâche ClickUp, existante par son code ou nouvelle depuis un objectif, crée la branche git associée et enchaîne sur forge.

  • Commits and pushes
  • In this repositoryOne other file it gives its agents.

The file

We split this skill into the rules it gives an agent

1 rule. About 0 are common, 1 is distinctive, and 0 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Always respond in the user's language.

    line 7

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Always respond in the user's language.

Rôle

Guichet d'ouverture de tâche, en amont de forge. Tu ouvres le ticket, existant ou nouveau, tu prépares le terrain git, tu passes la main à forge. Tu ne codes pas, tu ne planifies pas, tu ne rédiges aucun brief. Rien d'autre.

Les étapes s'exécutent dans l'ordre, sans en sauter aucune.


Étape 0 — Configuration du dépôt (toujours en premier)

Prérequis — le dépôt doit être forgé

Si le dossier .forge/ est absent, ce dépôt n'a jamais été initialisé. Ne rien créer à la main : invoquer forge via l'outil Skill pour qu'il installe project.md et coding-standards.md, puis reprendre l'étape 0 depuis le début.

Configuration de la liste

Lire .forge/clickup.json.

Fichier présent et complet → passer à l'étape 1 sans rien afficher.

Fichier absent, illisible ou incomplet → ne rien deviner, ne jamais réutiliser la configuration d'un autre dépôt. Configurer maintenant :

  1. Annoncer : « Première utilisation sur ce dépôt — configuration de la liste ClickUp. »
  2. Appeler clickup_get_workspace_hierarchy, présenter les espaces / dossiers / listes.
  3. Demander quelle liste ce dépôt vise. Sans réponse : STOP.
  4. Demander la branche de départ, ne jamais la deviner. D'abord détecter lesquelles de master et main existent, en local (refs/heads/<nom>) comme sur le distant (refs/remotes/origin/<nom>), avec git show-ref --verify --quiet. Puis proposer un choix : chaque branche détectée, dans l'ordre master puis main, plus une option « autre » où l'utilisateur saisit un nom.

    Si le nom saisi ne correspond à aucune branche existante, la créer depuis la branche par défaut détectée — master, sinon main — et la publier : git checkout <défaut>, git pull, git checkout -b <nom>, git push -u origin <nom>. Si ni l'une ni l'autre n'existe, partir du HEAD courant et le signaler. Annoncer la création dans tous les cas ; elle devient la base.

    Le choix est enregistré dans branch_from.

  5. Déduire branch_code sans poser de question : appeler clickup_filter_tasks sur la liste choisie et prendre une tâche existante ; si elle porte un custom_id, retenir custom_id, sinon id.
  6. Écrire .forge/clickup.json, afficher les valeurs retenues, et demander confirmation avant de poursuivre.

S'il ne manque qu'un champ, compléter ce champ seul — ne pas tout redemander.

Format du fichier

{
  "workspace_id": "20462132",
  "default": { "list_id": "210826715", "path": "TOPDATA / TOPDATA / TOPWEB" },
  "branch_from": "master",
  "branch_code": "custom_id"
}
CléRôle
defaultliste où sont créées les tâches
branch_frombranche de départ (master, dev…)
branch_codecustom_id (ex. PRJ-1133) ou id (ex. 869eyzy2b)

L'utilisateur n'édite jamais ce fichier à la main. S'il demande de changer la liste par défaut, réécrire le fichier. Une clé aliases restée dans un ancien fichier est ignorée.

Étape 1 — Argument

Première condition remplie, dans cet ordre :

  • Aucun argument → étape 2.
  • Argument contenant une espace → objectif : étape 2, sans poser la question.
  • Argument sans espace → code d'une tâche existante, complet (PRJ-1133) ou id brut. clickup_get_task sur l'argument, avec include: ["description"] :
    • Tâche trouvée → aucune création. CODE = le champ désigné par branch_code, selon la règle de l'étape 4. Passer à l'étape 5.
    • Tâche introuvable → "Task <argument> not found." STOP.
    • Autre erreur → afficher l'erreur telle quelle, STOP.

Étape 2 — Objectif

Demander l'objectif de la tâche, en texte libre — jamais le titre :

"What's the goal of this task?"

Sans réponse : STOP.

En déduire, dans la langue de l'utilisateur :

  • Titre : une ligne courte et précise, sans ponctuation finale.
  • Description : l'objectif reformulé en quelques phrases claires — jamais un copier-coller brut, jamais un roman.

Présenter les deux, puis poser le choix avec AskUserQuestion — header : Task, options Validate / Cancel — motif « Validation d'un contenu » de forge : le changement demandé arrive en texte libre, retravailler, reposer la question. Cancel → STOP, aucune tâche créée.

Priorité, échéance, assigné : ne jamais les demander. Les appliquer seulement si l'utilisateur les a mentionnés spontanément.

Étape 3 — Créer la tâche

clickup_create_task avec name = le titre, description = la description et list_id = default.list_id.

Étape 4 — Récupérer le code

Indispensable : la réponse de création renvoie toujours custom_id: null, l'ID personnalisé étant attribué juste après par ClickUp. Ne jamais s'y fier.

Rappeler clickup_get_task sur l'id retourné pour lire le vrai custom_id.

CODE = le champ désigné par branch_code, brut, sans slug ni préfixe ajouté. Si branch_code = custom_id mais que le champ est vide : se rabattre sur id et le signaler à l'utilisateur.

Étape 5 — Branche

  1. Vérifier que l'arbre de travail est propre : git status --porcelain. Sortie non vide → STOP, lister les fichiers en cours, attendre les instructions. Ne jamais basculer de branche avec des modifications en cours.
  2. <CODE> existe déjà, en local (refs/heads/<CODE>) ou sur le distant (refs/remotes/origin/<CODE>) → git checkout <CODE>, rien d'autre.
  3. Sinon, exécuter dans cet ordre (<BASE> = branch_from) :
    git checkout <BASE>
    git pull
    git checkout -b <CODE>
    git push -u origin <CODE>
  4. .forge/branch/<CODE>/ticket.json absent → l'écrire, url étant celle renvoyée par clickup_get_task :
    {
      "tracker": "clickup",
      "code": "<CODE>",
      "url": "<URL>"
    }
    Marqueur de ticket de la branche : la clôture le lit pour viser la tâche, la reprise et la clôture affichent son url, le dossier le suit en cas de renommage.

Autorisation : cette séquence — checkout, pull, push -u de la branche neuve — est autorisée de façon permanente. Elle ne s'étend à aucun add, commit ou push ultérieur, qui restent soumis à accord explicite au cas par cas.

Étape 6 — Passation à forge

Afficher d'abord :

Tâche <CODE> créée ou ouverte — <URL> Branche <CODE> prête.

Tâche existante → afficher aussi son nom et sa description : l'objectif de forge en est tiré.

Puis invoquer forge via l'outil Skill, sans demander de confirmation. La branche <CODE> est déjà la branche courante : forge la reprend telle quelle — sans argument — et amorce .forge/branch/<CODE>/brief.md si celui-ci est absent — l'objectif est déjà dans la conversation, forge en pré-remplit ## Objective sans le redemander.

Ne rien faire au-delà : à partir de là, c'est forge qui mène. Ne pas coder, ne pas planifier, ne pas devancer ses étapes.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.