agent-supply-chain
Permite ao agente verificar a integridade de plugins e dependências de IA. Ele garante que os componentes de software não foram alterados.
O que ela faz
Essa ferramenta verifica se os arquivos de um plugin ou ferramenta de IA foram alterados ou modificados sem autorização. Ela cria um 'registro' (manifesto) dos arquivos e suas assinaturas digitais (hashes) e depois compara o registro com os arquivos atuais para garantir que tudo está como deveria estar.
Quando usar
- ✓Ao instalar um novo plugin ou ferramenta.
- ✓Antes de usar um plugin em um projeto importante.
- ✓Se você suspeitar que um arquivo foi alterado indevidamente.
Exemplo do que pedir para a IA
“Verifique a integridade do plugin 'ferramenta-de-busca'.”
Quer saber mais? Abra as seções abaixo.
Como usar
O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.
Link da skill
Mensagem pronta para colar
Como funciona
Primeiro, a ferramenta cria um arquivo de registro com as assinaturas digitais de todos os arquivos. Depois, ela compara as assinaturas dos arquivos atuais com as do registro. Se houver alguma diferença, ela avisa que os arquivos foram modificados ou que algo está faltando.
Instalação
Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.
No terminal (Claude Code, Codex, Cursor), na pasta do projeto:
npx skills add github/awesome-copilot --skill agent-supply-chainOu baixe só o arquivo:
curl -L https://raw.githubusercontent.com/github/awesome-copilot/main/skills/agent-supply-chain/SKILL.md -o SKILL.mdConteúdo técnico (SKILL.md)
Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.
Integridade da Cadeia de Suprimentos do Agente
Gere e verifique manifestos de integridade para plugins e ferramentas de agente de IA. Detecte adulterações, aplique fixação de versão e estabeleça proveniência da cadeia de suprimentos.
Visão Geral
Plugins de agente e servidores MCP têm os mesmos riscos de cadeia de suprimentos que pacotes npm ou imagens de contêiner — exceto que o ecossistema não tem um equivalente à proveniência npm, Sigstore ou SLSA. Esta habilidade preenche essa lacuna.
Plugin Directory → Hash All Files (SHA-256) → Generate INTEGRITY.json
↓
Later: Plugin Directory → Re-Hash Files → Compare Against INTEGRITY.json
↓
Match? VERIFIED : TAMPERED
Quando Usar
- Antes de promover um plugin do desenvolvimento para a produção
- Durante a revisão de código de PRs de plugins
- Como uma etapa de CI para verificar se nenhum arquivo foi modificado após a revisão
- Ao auditar ferramentas de agente de terceiros ou servidores MCP
- Construindo um marketplace de plugins com requisitos de integridade
Padrão 1: Gerar Manifesto de Integridade
Crie um INTEGRITY.json determinístico com hashes SHA-256 de todos os arquivos do plugin.
import hashlib
import json
from datetime import datetime, timezone
from pathlib import Path
EXCLUDE_DIRS = {".git", "__pycache__", "node_modules", ".venv", ".pytest_cache"}
EXCLUDE_FILES = {".DS_Store", "Thumbs.db", "INTEGRITY.json"}
def hash_file(path: Path) -> str:
"""Compute SHA-256 hex digest of a file."""
h = hashlib.sha256()
with open(path, "rb") as f:
for chunk in iter(lambda: f.read(8192), b""):
h.update(chunk)
return h.hexdigest()
def generate_manifest(plugin_dir: str) -> dict:
"""Generate an integrity manifest for a plugin directory."""
root = Path(plugin_dir)
files = {}
for path in sorted(root.rglob("*")):
if not path.is_file():
continue
if path.name in EXCLUDE_FILES:
continue
if any(part in EXCLUDE_DIRS for part in path.relative_to(root).parts):
continue
rel = path.relative_to(root).as_posix()
files[rel] = hash_file(path)
# Chain hash: SHA-256 of all file hashes concatenated in sorted order
chain = hashlib.sha256()
for key in sorted(files.keys()):
chain.update(files[key].encode("ascii"))
manifest = {
"plugin_name": root.name,
"generated_at": datetime.now(timezone.utc).isoformat(),
"algorithm": "sha256",
"file_count": len(files),
"files": files,
"manifest_hash": chain.hexdigest(),
}
return manifest
# Generate and save
manifest = generate_manifest("my-plugin/")
Path("my-plugin/INTEGRITY.json").write_text(
json.dumps(manifest, indent=2) + "\n"
)
print(f"Generated manifest: {manifest['file_count']} files, "
f"hash: {manifest['manifest_hash'][:16]}...")
Saída (INTEGRITY.json):
{
"plugin_name": "my-plugin",
"generated_at": "2026-04-01T03:00:00+00:00",
"algorithm": "sha256",
"file_count": 12,
"files": {
".claude-plugin/plugin.json": "a1b2c3d4...",
"README.md": "e5f6a7b8...",
"skills/search/SKILL.md": "c9d0e1f2...",
"agency.json": "3a4b5c6d..."
},
"manifest_hash": "7e8f9a0b1c2d3e4f..."
}
Padrão 2: Verificar Integridade
Verifique se os arquivos atuais correspondem ao manifesto.
# Requer: hash_file() e generate_manifest() do Padrão 1 acima
import json
from pathlib import Path
def verify_manifest(plugin_dir: str) -> tuple[bool, list[str]]:
"""Verifica os arquivos do plugin contra INTEGRITY.json."""
root = Path(plugin_dir)
manifest_path = root / "INTEGRITY.json"
if not manifest_path.exists():
return False, ["INTEGRITY.json não encontrado"]
manifest = json.loads(manifest_path.read_text())
recorded = manifest.get("files", {})
errors = []
# Verifica arquivos registrados
for rel_path, expected_hash in recorded.items():
full = root / rel_path
if not full.exists():
errors.append(f"AUSENTE: {rel_path}")
continue
actual = hash_file(full)
if actual != expected_hash:
errors.append(f"MODIFICADO: {rel_path}")
# Verifica novos arquivos não rastreados
current = generate_manifest(plugin_dir)
for rel_path in current["files"]:
if rel_path not in recorded:
errors.append(f"NÃO RASTREADO: {rel_path}")
return len(errors) == 0, errors
# Verifica
passed, errors = verify_manifest("my-plugin/")
if passed:
…
Perguntas frequentes
O que é um 'manifesto de integridade'?
É um arquivo que contém uma lista de todos os arquivos de um plugin ou ferramenta, junto com suas 'assinaturas digitais' únicas (hashes SHA-256). Ele serve como um comprovante de que os arquivos estão corretos e não foram alterados.
O que acontece se um arquivo for modificado?
A ferramenta detectará que a assinatura digital do arquivo modificado não corresponde mais à assinatura registrada no manifesto. Ela irá alertar sobre a modificação, indicando que o arquivo pode ter sido adulterado.
Por que é importante verificar a integridade?
Garante que os plugins e ferramentas que você usa são seguros e não foram modificados por terceiros para incluir código malicioso ou para alterar seu funcionamento de forma indesejada.
Detalhes
Descrição original do autor
Verify supply chain integrity for AI agent plugins, tools, and dependencies. Use this skill when: - Generating SHA-256 integrity manifests for agent plugins or tool packages - Verifying that installed plugins match their published manifests - Detecting tampered, modified, or untracked files in agent tool directories - Auditing dependency pinning and version policies for agent components - Building
repo: github/awesome-copilot
Popularidade
- Estrelas no GitHub
- 40 mil
- Posição no ranking
- #4988
- Licença
- MIT
- Atualizada em
- 15/10/2026
Comentários
- …
Mais skills deste repositório
acquire-codebase-knowledge
Ajuda seu agente a entender e documentar um projeto de código existente. É útil para novas pessoas entrarem no projeto ou para ter uma visão geral da arquitetura.
github/awesome-copilot
acreadiness-assess
Faz seu agente avaliar a prontidão de um projeto para IA e gerar um relatório. É útil para entender o quão bem um projeto está preparado para usar ferramentas de IA.
github/awesome-copilot
acreadiness-generate-instructions
Ajuda seu agente a criar instruções para ferramentas de IA baseadas em uma avaliação. É útil para melhorar a forma como a IA interage com o código e fecha lacunas identificadas.
github/awesome-copilot
acreadiness-policy
Faz seu agente ajudar a definir ou aplicar políticas para avaliação de projetos de IA. É útil para padronizar a forma como os projetos são avaliados e garantir conformidade.
github/awesome-copilot
Skills parecidas
agent-architecture-audit
Faz seu agente verificar se tudo está funcionando corretamente. Ele encontra e conserta problemas em sistemas de IA, garantindo que funcionem como esperado.
affaan-m/ECC
agent-eval
Ajuda seu agente a comparar diferentes ferramentas de programação de IA. Ele mede qual é mais rápido, barato e confiável para realizar tarefas específicas.
affaan-m/ECC
agent-harness-construction
Faz seu agente entender melhor como realizar tarefas. Ele otimiza as ferramentas e instruções que o agente usa para aumentar suas chances de sucesso.
affaan-m/ECC