qbarev/para-plugin

Gérez l'Archive dans un coffre Obsidian PARA : archivez un projet terminé ou abandonné (dossier et son projet dans l'application de tâches, comme Todoist) ou une note, listez son contenu ou restaurez un élément dans un dossier actif.

Qu'est-ce que para-plugin ?

Cette compétence est conçue pour interagir avec la zone `Archive/` d'un coffre Obsidian structuré selon la méthode PARA. Elle permet de déplacer des projets et des notes terminés ou abandonnés dans l'archive (jamais de suppression définitive, qui est réservée à la commande `/remove`). Elle prend en charge les projets associés à un backend de tâches externe (comme Todoist) et gère la désactivation de ces tâches lors de l'archivage, soit en les complétant, soit en les déplaçant, soit en les laissant dans le projet archivé. La compétence sait également lister le contenu de l'archive avec des détails sur l'état de chaque projet (terminé, abandonné, etc.) et restaurer un élément archivé vers son emplacement PARA d'origine, en restaurant également le couple backend le cas échéant. L'utilisateur interagit via des commandes en langage naturel, comme "archive ce projet", "montre l'archive", ou "restaure ce projet", rendant la gestion d'un coffre PARA fluide et respectueuse de ses conventions.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/qbarev/para-plugin/tree/HEAD/skills/archive

Installed? Explore more Productivité et collaboration skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Demander à votre IA préférée

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

Documentation

Archive

La zone Archive/ du coffre : tout ce qui est terminé ou mis de côté va ici, et l'archivage est toujours un déplacement — jamais une suppression. La suppression définitive est /remove. Le couple backend d'un projet est archivé et restauré avec son dossier.

Couche de base

À lire avant d'agir, chacun sous ../../para/<fichier>.md relatif au répertoire de base de cette compétence — ils contiennent les règles partagées, ne les récitez pas de mémoire :

  • ../../para/paths.md — toujours, y compris « Langue » : les chaînes ci-dessous proviennent de lang/<LANG>.md
  • ../../para/find-target.md — pour les sous-commandes qui prennent une cible
  • ../../para/move.md — toujours
  • ../../para/confirm.md — toujours
  • ../../para/dod.md — lorsque la cible est un projet
  • ../../para/tasks.md — lorsque la cible est un projet : les opérations, l'appairage, les projets de domaine
  • ../../para/note-format.md — lors de l'édition du frontmatter ; « Champs hérités »

Sous-commandes

Le premier mot de $ARGUMENTS choisit la sous-commande. list et restore sont les seuls mots-clés — tout le reste est la cible d'un archivage, donc /archive project c archive ce projet. $ARGUMENTS vide → affiche les trois sous-commandes et demande.


<target> — mettre dans l'archive

  1. Trouver la cible selon find-target.md, opération « Archiver ».

  2. Si la cible est un projet :

    • Ouvrir les tâches d'abord. Lire les tâches du projet appairé (task.list, ouvertes, avec project_ref). Si des tâches sont ouvertes, les lister et demander une fois (Niveau 1,5) ce qu'il faut en faire : les compléter (task.complete sur chacune), les déplacer vers un projet de domaine (task.move avec area) ou les laisser dans le projet archivé. Là où l'adaptateur indique que task.complete n'est « pas pris en charge », le premier choix est la chaîne archive.close_in_app à la place, et rien n'est appelé pour cela. Transporter la réponse avant de continuer. Sous pairing: separate, un projet non appairé avec un dossier Tasks/ hérité n'a pas de côté backend ; dod.md explique comment ses tâches sont vérifiées. Sous pairing: none les tâches sont les propres notes Tasks/ du projet et se déplacent avec le dossier.
    • Appliquer dod.md et nommer chaque condition qui n'est pas remplie. Ce fichier décide si le résultat est terminé ou abandonné ; ne reproduisez pas son raisonnement ici, et ne l'adoucissez pas.
    • Déplacer le dossier entier, structure interne inchangée, de Projects/PROJ-xxxx <titre>/ vers Archive/PROJ-xxxx <titre>/. Le nom reste exactement tel quel : l'identifiant reste avec le projet à vie, et l'émission d'identifiant scanne Archive/ pour le garder réservé (project-id.md).
    • project.archive lorsque appairé (toujours, sous pairing: none ; une opération nulle là). Conserver tasks_ref: dans la vue d'ensemble — la restauration en a besoin.
    • Les champs hérités (status et les autres) sont laissés exactement tels quels (note-format.md) : un projet archivé conserve son historique.
  3. Si la cible est une note autonome (Domaine, Ressource, ou une note égarée de Inbox/) : déplacer le seul fichier .md dans Archive/.

    • Les domaines sont par définition continus et ne sont normalement pas archivés. Demander ce qui a été voulu (Niveau 1,5) — cela signifie généralement que la note est obsolète, pas que la responsabilité a pris fin.
    • Une note de tâche héritée à l'intérieur d'un projet qui n'est pas archivé : la déplacer ne casse rien d'utile et n'est probablement pas ce qui a été voulu — demander (Niveau 1,5). Les tâches sont fermées dans le backend maintenant.
  4. Vérifier les collisions de nom de base avant de déplacer (move.md, note-format.md). Un doublon rend chaque lien vers ce nom ambigu — Niveau 1,5, demander plutôt que déplacer.

  5. Fermer la boucle — projets uniquement. Avant de signaler, poser une question et attendre la réponse : la chaîne archive.ask_changed. Pas ce qui a été produit — la condition 2 de dod.md couvre déjà l'artefact — mais ce qui est différent maintenant que c'est fini, et si cela en valait le coût.

    Avant de demander, lire la section project.value à haute voix — le bénéfice que l'utilisateur a noté lorsque le projet a commencé (note-format.md, « Trois sections sur le résultat ») — et demander s'il s'est réalisé avec la chaîne archive.expected ({value} = ce qu'il a écrit, par exemple « −5 heures de relecture par semaine »). Si la section est vide ou absente, poser la question telle quelle, sans inventer une attente.

    Écrire la section project.what_changed à la fin du corps de la vue d'ensemble. Sa première ligne est le résultat selon dod.md — la chaîne project.outcome.completed ou project.outcome.abandoned ({reason} dans les mots de l'utilisateur) — puis la réponse de l'utilisateur dans ses propres mots ; ne la résumez pas dans les vôtres. Si la réponse nomme quelque chose qui survit au projet, c'est la condition 4 de dod.md qui parle ; acheminez-la vers Areas/ ou Resources/ plutôt que de la laisser dans l'archive.

    Si l'utilisateur ne veut pas répondre, écrire uniquement la ligne de résultat et dire que la boucle a été sautée. N'inventez jamais le reste.

  6. Signaler : ce qui a été déplacé, son nouveau chemin, la ligne de résultat, ce qu'il est advenu des tâches ouvertes, si le projet backend a été archivé, tout avertissement.


list — afficher le contenu de l'archive

Lecture uniquement. N'ouvrez jamais les notes au-delà de ce qui est nommé ci-dessous.

  1. Lister Archive/ — à la fois les dossiers de projets et les fichiers .md isolés.
  2. Pour chaque dossier de projet, lire le frontmatter de la vue d'ensemble (id, deadline) et la première ligne de la section project.what_changed, si la section existe.
  3. Afficher deux sections dans LANG, chacune alphabétique, avec un nombre dans l'en-tête (les chaînes archive.list.projects et archive.list.notes). Le résultat affiché est la première ligne sans son point pour un projet terminé, et seulement le mot avant le deux-points pour un projet abandonné (la raison n'est pas répétée) ; la date limite est la chaîne archive.list.deadline ; affichée ici avec les chaînes anglaises :
**Projets archivés (N)**
1. PROJ-0005 Projet D — Terminé, date limite 2026-09-30
2. PROJ-0007 Projet F — Abandonné
3. PROJ-0003 Projet C — aucun résultat enregistré
4. Ancien projet — aucune métadonnée

**Notes archivées (N)**
1. Une note

Le résultat est lu uniquement lorsque la première ligne non vide de la section project.what_changed est exactement la chaîne project.outcome.completed ou commence par la chaîne project.outcome.abandoned jusqu'à son deux-points. Sinon — la section est manquante, ou elle s'ouvre avec les mots de l'utilisateur, comme dans les projets archivés avant cette règle — afficher la chaîne archive.no_outcome ; n'inférez jamais un résultat à partir d'un texte libre ou d'un status hérité. La chaîne common.no_metadata — aucun frontmatter du tout. Une archive vide est une réponse valide : le dire simplement.


restore <target> — ramener quelque chose

  1. Trouver la cible selon find-target.md, opération « Restaurer depuis l'archive ».
  2. Déterminer où cela retourne. Un projet retourne dans Projects/. Une note retourne dans le dossier PARA que son frontmatter implique — area/<slug> → Areas/, resource/<slug> → Resources/. Si les tags ne le disent pas, ou si la note est antérieure à la convention, demander où elle appartient. Rien n'est restauré dans Inbox/ — ce n'est pas une destination (paths.md).
  3. Vérifier les collisions de nom de base comme ci-dessus, puis déplacer.
  4. Le côté tâches — projets uniquement. project.restore avec le ref. Sous pairing: separate sans tasks_ref:, proposer de créer le couple (tasks.md « Appairage ») ; sur oui, project.create, ajouter une clé tasks_ref: et la remplir. Sous pairing: none il n'y a pas de couple à proposer. Laisser les cases cochées dans la section project.dod et la section project.what_changed telles quelles — les éditer est de Niveau 2 et rarement souhaité.
  5. Signaler : ce qui est revenu, où, et l'état de son couple backend.

Notes

  • Ne jamais rien supprimer ici. L'archivage est toujours un déplacement vers Archive/ ; si l'utilisateur veut que quelque chose disparaisse, c'est /remove.
  • Tout le texte visible par l'utilisateur et chaque valeur de frontmatter dans LANG ; les chaînes fixes proviennent de lang/<LANG>.md.

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

qbarev/para-plugin

Work with Areas in the Obsidian PARA vault — create an area of ongoing responsibility, or review which areas have gone quiet and what has drifted in them. Use when the user says "create an area", "new area", "review the areas", "which areas have gone quiet", "заведи область", "новая сфера", "добавь область", "обзор областей", "что по областям", "какие сферы провисают", "ревью сфер".

qbarev/para-plugin

Work with the inbox of the PARA vault, which lives in the task app's inbox — capture a raw thought into it, list what is sitting there unprocessed, or process captures one by one into their proper PARA folder. Use when the user wants to capture a note, mentions their task app's inbox (Todoist «Входящие», for example), or says "capture this", "add to the inbox", "what is in the inbox", "process the inbox", "запиши", "закинь в инбокс", "что в инбоксе", "покажи инбокс", "разбери инбокс", "разгреби инбокс".

qbarev/para-plugin

Set up a folder as a PARA vault run by this plugin, or bring an already set-up vault up to date — detect what the folder is, ask the setup questions one at a time, show one plan, apply it on one «yes», report. Re-running fills in what is missing and migrates an older vault schema. Use when the user says "set up the vault", "init the vault", "initialise PARA", "migrate the vault", "run /para:init", "настрой хранилище", "инициализируй хранилище", "подключи PARA", "мигрируй хранилище".

qbarev/para-plugin

Work with Projects in the Obsidian PARA vault and their pairs in the task app — list the active projects, create a project (folder plus a project in the task app), summarize where a project stands, or add a task to a project in the task app (Todoist, for example). Use when the user says "list projects", "show projects", "what am I working on", "create a project", "new project", "project overview", "project status", "add a task", "какие проекты", "список проектов", "покажи проекты", "что у меня в работе", "заведи проект", "новый проект", "саммари по проекту", "обзор проекта", "что по проекту", "статус проекта", "где я по проекту", "добавь задачу", "заведи задачу".

Skills associés