From bcce928beb6431c7d18366ee23540bd487514bce Mon Sep 17 00:00:00 2001 From: Emanuel Almeida Date: Thu, 5 Feb 2026 23:37:12 +0000 Subject: [PATCH] feat: marketplace inicial com hello-plugin Marketplace Descomplicar para plugins Claude Code. Primeiro plugin: hello-plugin (exemplo didactico com skill, agent, hook) Co-Authored-By: Claude Opus 4.6 --- .claude-plugin/marketplace.json | 23 ++++++++++++++ hello-plugin/.claude-plugin/plugin.json | 14 +++++++++ hello-plugin/agents/SKILL.md | 41 +++++++++++++++++++++++++ hello-plugin/hooks/log-tools.sh | 18 +++++++++++ hello-plugin/skills/SKILL.md | 27 ++++++++++++++++ 5 files changed, 123 insertions(+) create mode 100644 .claude-plugin/marketplace.json create mode 100644 hello-plugin/.claude-plugin/plugin.json create mode 100644 hello-plugin/agents/SKILL.md create mode 100644 hello-plugin/hooks/log-tools.sh create mode 100644 hello-plugin/skills/SKILL.md diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json new file mode 100644 index 0000000..51a85e2 --- /dev/null +++ b/.claude-plugin/marketplace.json @@ -0,0 +1,23 @@ +{ + "name": "descomplicar-plugins", + "owner": { + "name": "Descomplicar", + "url": "https://descomplicar.pt" + }, + "description": "Marketplace de plugins Claude Code da Descomplicar - ferramentas para agencia digital portuguesa", + "homepage": "https://git.descomplicar.pt/ealmeida/claude-plugins", + "repository": "https://git.descomplicar.pt/ealmeida/claude-plugins.git", + "plugins": [ + { + "name": "hello-plugin", + "source": "./hello-plugin", + "description": "Plugin de exemplo que demonstra skills, agents e hooks", + "version": "1.0.0", + "author": { + "name": "Emanuel Almeida" + }, + "keywords": ["example", "tutorial"], + "category": "tutorial" + } + ] +} diff --git a/hello-plugin/.claude-plugin/plugin.json b/hello-plugin/.claude-plugin/plugin.json new file mode 100644 index 0000000..f509363 --- /dev/null +++ b/hello-plugin/.claude-plugin/plugin.json @@ -0,0 +1,14 @@ +{ + "name": "hello-plugin", + "description": "Plugin de exemplo para Claude Code. Demonstra skills, agents e hooks num formato minimo e didactico.", + "version": "1.0.0", + "author": { + "name": "Emanuel Almeida", + "url": "https://descomplicar.pt" + }, + "homepage": "https://git.descomplicar.pt/ealmeida/hello-plugin", + "repository": "https://git.descomplicar.pt/ealmeida/hello-plugin.git", + "license": "MIT", + "keywords": ["example", "tutorial", "hello-world"], + "skills": "./" +} diff --git a/hello-plugin/agents/SKILL.md b/hello-plugin/agents/SKILL.md new file mode 100644 index 0000000..253edb3 --- /dev/null +++ b/hello-plugin/agents/SKILL.md @@ -0,0 +1,41 @@ +--- +name: explorer +description: > + Agente de exemplo que explora a estrutura de um directorio e resume o que encontra. + Use when user mentions "explorar directorio", "listar estrutura", "what's in this folder". + + Examples: + - "Explora a pasta src/" + - "O que tem neste directorio?" + - "Mostra a estrutura do projecto" +--- + +# Explorer Agent + +Es um agente simples que explora a estrutura de um directorio. + +## Comportamento + +1. Usa Glob para encontrar ficheiros no directorio indicado +2. Agrupa por tipo de ficheiro (extensao) +3. Conta ficheiros por categoria +4. Resume num formato limpo + +## Output esperado + +``` +Directorio: /caminho/indicado/ +Total: X ficheiros + +Por tipo: + .js - 12 ficheiros + .md - 5 ficheiros + .json - 3 ficheiros + +Ficheiros principais: + - package.json + - README.md + - index.js +``` + +Se conciso. Portugues europeu. diff --git a/hello-plugin/hooks/log-tools.sh b/hello-plugin/hooks/log-tools.sh new file mode 100644 index 0000000..c588972 --- /dev/null +++ b/hello-plugin/hooks/log-tools.sh @@ -0,0 +1,18 @@ +#!/bin/bash +# Hook PreToolUse - Regista cada ferramenta utilizada num log +# +# Este hook demonstra como interceptar chamadas de ferramentas. +# Recebe JSON via stdin com informacao sobre a ferramenta. +# Escreve log para ficheiro e permite a execucao continuar. + +INPUT=$(cat) + +# Extrair nome da ferramenta do JSON +TOOL_NAME=$(echo "$INPUT" | jq -r '.tool_name // "unknown"' 2>/dev/null) + +# Registar no log (append) +LOG_FILE="${HOME}/.claude/hello-plugin-tools.log" +echo "$(date '+%Y-%m-%d %H:%M:%S') | tool: ${TOOL_NAME}" >> "$LOG_FILE" + +# Nao bloquear - deixar continuar +exit 0 diff --git a/hello-plugin/skills/SKILL.md b/hello-plugin/skills/SKILL.md new file mode 100644 index 0000000..cc984ab --- /dev/null +++ b/hello-plugin/skills/SKILL.md @@ -0,0 +1,27 @@ +--- +name: hello +description: > + Skill de exemplo que demonstra a estrutura base. + Use when user mentions "hello plugin", "exemplo plugin", "testar plugin". +--- + +# Hello Plugin - Skill de Exemplo + +Este e um skill de demonstracao do sistema de plugins Claude Code. + +## O que este skill faz + +Quando invocado, mostra informacao sobre o plugin e confirma que esta a funcionar. + +## Instrucoes + +Responde ao utilizador com: + +1. Confirmacao de que o plugin esta instalado e a funcionar +2. Lista dos componentes disponiveis neste plugin: + - **Skill hello**: Este proprio skill + - **Agent explorer**: Agente que explora ficheiros de um directorio + - **Hook log-tools**: Hook que regista ferramentas utilizadas +3. Versao do plugin: 1.0.0 + +Usa sempre portugues europeu. Se conciso e directo.