qbarev/para-plugin

Trabalhe com o Archive (Arquivo) no vault PARA do Obsidian — arquive um projeto finalizado ou abandonado (pasta e seu projeto no app de tarefas, como Todoist) ou uma nota, liste o que já está lá ou restaure algo de volta para uma pasta ativa. Use quando o usuário disser "archive this", "move to archive", "close the project", "what is in the archive", "show the archive", "restore from the archive", "заархивируй", "перенеси в архив", "закрой проект", "что в архиве", "покажи архив", "верни из архива", "восстанови проект".

O que é para-plugin?

Esta skill para agentes de IA (como Claude Code, Cursor, Codex) gerencia a área `Archive/` de um vault Obsidian estruturado no método PARA. Ela permite arquivar projetos inteiros (pasta e seu par no app de tarefas, como Todoist) ou notas avulsas, listar o conteúdo do arquivo e restaurar itens para suas pastas ativas. A skill garante que o arquivamento seja um movimento, não uma exclusão, preservando o histórico do projeto. Ela segue regras complexas de verificação, como checar colisões de nomes, lidar com tarefas abertas antes de arquivar e solicitar reflexão do usuário sobre mudanças ocorridas. Suporta plataformas como Claude Code e outros agentes que interpretam markdown estruturado.

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

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Archive

A área Archive/ do vault: tudo que foi finalizado ou arquivado vai para cá, e arquivar é sempre um movimento — nunca uma exclusão. Exclusão permanente é /remove. O par de backend de um projeto é arquivado e restaurado junto com sua pasta.

Camada base

Leia antes de agir, cada um como ../../para/<arquivo>.md relativo ao diretório base desta skill — eles contêm as regras compartilhadas, não as repita de memória:

  • ../../para/paths.md — sempre, incluindo «Idioma»: as strings abaixo vêm de lang/<IDIOMA>.md
  • ../../para/find-target.md — para os subcomandos que recebem um alvo
  • ../../para/move.md — sempre
  • ../../para/confirm.md — sempre
  • ../../para/dod.md — quando o alvo é um projeto
  • ../../para/tasks.md — quando o alvo é um projeto: as operações, pareamento, projetos de área
  • ../../para/note-format.md — ao editar frontmatter; «Campos legados»

Subcomandos

A primeira palavra de $ARGUMENTS escolhe o subcomando. list e restore são as únicas palavras-chave — qualquer outra coisa é o alvo de um arquivamento, então /archive project c arquiva esse projeto. $ARGUMENTS vazio → mostra os três subcomandos e pergunta.


<alvo> — colocar no archive

  1. Encontre o alvo conforme find-target.md, operação "Archive".

  2. Se o alvo for um projeto:

    • Abra as tarefas primeiro. Leia as tarefas do projeto pareado (task.list, abertas, com project_ref). Se houver tarefas abertas, liste-as e pergunte uma vez (Nível 1.5) o que fazer com elas: completá-las (task.complete em cada uma), movê-las para um projeto de área (task.move com area) ou deixá-las dentro do projeto arquivado. Onde o adaptador marcar task.complete como «não suportado», a primeira escolha é a string archive.close_in_app em vez disso, e nada é chamado para ela. Execute a resposta antes de continuar. Sob pairing: separate, um projeto não pareado com uma pasta Tasks/ legada não tem lado de backend; dod.md diz como suas tarefas são verificadas. Sob pairing: none as tarefas são as próprias notas Tasks/ do projeto e se movem com a pasta.
    • Aplique dod.md e nomeie toda condição que não se sustenta. Esse arquivo decide se o resultado é concluído ou abandonado; não reproduza seu raciocínio aqui e não o suavize.
    • Mova a pasta inteira, estrutura interna intacta, de Projects/PROJ-xxxx <título>/ para Archive/PROJ-xxxx <título>/. O nome permanece exatamente como está: o id fica com o projeto para sempre, e a emissão de ids verifica Archive/ para mantê-lo reservado (project-id.md).
    • project.archive quando pareado (sempre, sob pairing: none; um no-op lá). Mantenha tasks_ref: na visão geral — o restore precisa dele.
    • Campos legados (status e o resto) são deixados exatamente como estão (note-format.md): um projeto arquivado mantém seu histórico.
  3. Se o alvo for uma nota avulsa (Area, Resource, ou uma solta de Inbox/): mova o único .md para Archive/.

    • Áreas são contínuas por definição e normalmente não são arquivadas. Pergunte o que foi pretendido (Nível 1.5) — geralmente significa que a nota está obsoleta, não que a responsabilidade terminou.
    • Uma nota de tarefa legada dentro de um projeto que não está sendo arquivado: movê-la não quebra nada útil e provavelmente não é o que foi pretendido — pergunte (Nível 1.5). As tarefas são fechadas no backend agora.
  4. Verifique colisões de nome base antes de mover (move.md, note-format.md). Uma duplicata torna todo link para esse nome ambíguo — Nível 1.5, pergunte em vez de mover.

  5. Feche o ciclo — apenas projetos. Antes de relatar, faça uma pergunta e aguarde a resposta: a string archive.ask_changed. Não o que foi produzido — a condição 2 de dod.md já cobre o artefato — mas o que está diferente agora que acabou, e se valeu o que custou.

    Antes de perguntar, leia a seção project.value em voz alta — o benefício que o usuário escreveu quando o projeto começou (note-format.md, "Três seções sobre o resultado") — e pergunte se ele se concretizou com a string archive.expected ({value} = o que eles escreveram, ex. «−5 horas de revisão por semana»). Se a seção estiver vazia ou ausente, pergunte a questão como está, sem inventar uma expectativa.

    Escreva a seção project.what_changed no final do corpo da visão geral. Sua primeira linha é o resultado conforme dod.md — a string project.outcome.completed ou project.outcome.abandoned ({reason} nas palavras do usuário) — então a resposta do usuário em suas próprias palavras; não a resuma com as suas. Se a resposta nomear algo que sobrevive ao projeto, isso é a condição 4 de dod.md falando; roteie para Areas/ ou Resources/ em vez de deixá-lo no archive.

    Se o usuário não quiser responder, escreva apenas a linha de resultado e diga que o ciclo foi pulado. Nunca invente o resto.

  6. Relatório: o que foi movido, seu novo caminho, a linha de resultado, o que aconteceu com as tarefas abertas, se o projeto de backend foi arquivado, qualquer aviso.


list — mostrar o que está no archive

Apenas leitura. Nunca abra as notas além do que está nomeado abaixo.

  1. Liste Archive/ — tanto pastas de projeto quanto arquivos .md soltos.
  2. Para cada pasta de projeto, leia o frontmatter da visão geral (id, deadline) e a primeira linha da seção project.what_changed, se a seção existir.
  3. Imprima duas seções em LANG, cada uma em ordem alfabética, com uma contagem no cabeçalho (as strings archive.list.projects e archive.list.notes). O resultado mostrado é a primeira linha sem seu ponto final para um projeto concluído, e apenas a palavra antes do dois-pontos para um abandonado (o motivo não é repetido); o prazo é a string archive.list.deadline; mostrado aqui com as strings em inglês:
**Projetos arquivados (N)**
1. PROJ-0005 Projeto D — Concluído, prazo 2026-09-30
2. PROJ-0007 Projeto F — Abandonado
3. PROJ-0003 Projeto C — nenhum resultado registrado
4. Projeto antigo — sem metadados

**Notas arquivadas (N)**
1. Alguma nota

O resultado é lido apenas quando a primeira linha não vazia da seção project.what_changed for exatamente a string project.outcome.completed ou começar com a string project.outcome.abandoned até seu dois-pontos. Caso contrário — a seção está faltando, ou abre com as próprias palavras do usuário, como em projetos arquivados antes desta regra — imprima a string archive.no_outcome; nunca infira um resultado de texto livre ou de um status legado. A string common.no_metadata — nenhum frontmatter. Um archive vazio é uma resposta válida: diga isso claramente.


restore <alvo> — trazer algo de volta

  1. Encontre o alvo conforme find-target.md, operação "Restore from archive".
  2. Descubra para onde ele volta. Um projeto retorna para Projects/. Uma nota retorna para a pasta PARA que seu frontmatter implica — area/<slug> → Areas/, resource/<slug> → Resources/. Se as tags não disserem, ou a nota for anterior à convenção, pergunte onde ela pertence. Nada é restaurado para Inbox/ — não é um destino (paths.md).
  3. Verifique colisões de nome base como acima, depois mova.
  4. O lado das tarefas — apenas projetos. project.restore com o ref. Sob pairing: separate sem tasks_ref:, ofereça criar o par (tasks.md «Pairing»); se sim, project.create, adicione uma chave tasks_ref: e preencha-a. Sob pairing: none não há par para oferecer. Deixe as caixas de seleção marcadas na seção project.dod e a seção project.what_changed como estão — editá-las é Nível 2 e raramente desejado.
  5. Relatório: o que voltou, para onde, e o estado de seu par de backend.

Notas

  • Nunca delete nada aqui. Arquivar é sempre um movimento para Archive/; se o usuário quiser que algo seja removido, isso é /remove.
  • Todo texto voltado ao usuário e todo valor de frontmatter em LANG; strings fixas vêm de lang/<IDIOMA>.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", "какие проекты", "список проектов", "покажи проекты", "что у меня в работе", "заведи проект", "новый проект", "саммари по проекту", "обзор проекта", "что по проекту", "статус проекта", "где я по проекту", "добавь задачу", "заведи задачу".

Habilidades Relacionadas