Instalar de um repositório
Qualquer repositório do GitHub como raiz de busca, e como um caminho tree fixa um branch, uma tag ou um commit.
O catálogo embutido no overpower envelhece por construção: ele é fixo na versão
que você tem instalada, e renová-lo significa esperar uma nova passada de
curadoria. O --from é a saída que não espera. Ele aponta para qualquer
repositório do GitHub, sem passo de registro, e lê de lá em vez do catálogo
embutido.
Antes de começar
Um git local funcionando, com as credenciais que você já usa. O overpower
reaproveita as suas, então um repositório privado que você já consegue clonar
funciona aqui também. Se o git não estiver disponível, ele cai para buscar um
tarball anônimo usando só a biblioteca padrão do Python.
Os passos
Perguntar o que o repositório oferece
Nu, sem seletor nenhum, o
--fromimprime a vitrine daquele repositório: as skills sobskills/, as receitas sob.overpower/mcp/e os bundles declarados em.overpower/catalog.yaml.uvx overpower@latest list --from https://github.com/owner/repoLer um item inteiro antes de instalar
Cada um dos três também aceita seletor, então um item pode ser lido por inteiro antes de qualquer escrita. Todo comando que a vitrine imprime carrega o
--fromde volta, porque um item lido assim não está no catálogo embutido e a linha sem ele seria respondida por outro catálogo.uvx overpower@latest list --skill alguma-skill --from https://github.com/owner/repoFixar a referência e instalar
Acrescentar
tree/<ref>/<path>à URL fixa um branch, uma tag ou um SHA de commit inteiro. Fixar um SHA é o que torna uma instalação por--frominteiramente reprodutível.uvx overpower@latest install --from https://github.com/owner/repo/tree/main/subpasta --skill alguma-skill --runtime codex
Verificação
O --from é exclusivo. Uma vez na linha, só o repositório remoto é
consultado: o catálogo embutido não é procurado, e também não é fundido com o
remoto. Isso resolve a questão de precedência entre os dois removendo-a, em vez
de respondendo-a.
A única flag que o --from recusa é --ai-framework, e a recusa é uma afirmação
sobre o modelo, não uma posição de fila. Um framework é uma pasta da wheel do
próprio overpower, então não há nada no repositório de outra pessoa para a flag
nomear. Essa linha sai 2 antes de qualquer busca.
Os três seletores não leem a URL do mesmo jeito. O --skill e o --mcp a tratam
como raiz de busca, e o repositório, uma subpasta ou a pasta do próprio
artefato chegam todos ao mesmo resultado. O --bundle e a vitrine nua estão
ancorados na raiz do repositório, então a subpasta da URL não estreita nada:
o que um repositório oferece, e o que ele compõe, são propriedades do repositório
e não do caminho que você por acaso colou.
O bundle federado
Um bundle é uma composição nomeada, e um repositório federa uma escrevendo
.overpower/catalog.yaml na raiz dele.
bundles:
api-python:
description: Tudo que é preciso para trabalhar na API em Python.
items:
- fastapi-conventions
- pytest-fixtures
Esse arquivo é lido pelo mesmo leitor que lê o catálogo que o overpower
publica, então um manifesto malformado é recusado nomeando o mesmo campo dos dois
lados, e não existe um segundo validador em lugar nenhum para discordar do
primeiro. Os items são nomes, nunca caminhos, resolvidos contra as skills
que aquele mesmo repositório oferece sob skills/. Eles não alcançam nem o
catálogo embutido nem um terceiro repositório, e um nome que não resolve sai 3
dizendo qual nome.
Não há cache. Todo --from busca fresco, por decisão. Conteúdo remoto muda no
calendário de outra pessoa, e uma cópia guardada localmente derrotaria em
silêncio a razão inteira de o --from existir.
O que muda no plano é só a procedência. A confirmação, o
--dry-run e a mecânica de escrita são as mesmas do conteúdo que vem do catálogo
embutido.