Agent skills com os padrões de engenharia da Basis para uso em Claude Code, Cursor, Codex, OpenCode e qualquer agente que consuma o formato SKILL.md.
| Skill | Quando ativar |
|---|---|
basis-ci-gitlab |
Fluxo de uma mudança, do card do Taiga à imagem promovida: branch TG-xxx, mensagem de commit, flags da MR, ci/pipeline.toml, o template de CI compartilhado, as funções do orchestrator Dagger, e por que a análise do Sonar não rodou/não decorou/não avaliou nada. Traz script. |
basis-k8s-deploy |
Deploy/infra: kustomize base+overlays, ArgoCD + Image Updater, secrets de operators (Postgres/RabbitMQ/Minio/MariaDB/Redis), tags CalVer. Pareada com basis-ci-gitlab — a fronteira é a imagem no registry com a tag de produção. |
basis-spring-app |
Apps Spring: Java LTS + Maven + Spring Modulith, application.* em @ConfigurationProperties, Postgres + Flyway, Spring Cloud Stream RabbitMQ, Thymeleaf + HTMX + Tailwind + DaisyUI, Keycloak OIDC, Actuator, dev local com Docker Compose, banner de startup + logs de DEBUG, testes de estrutura Modulith. |
basis-python-app |
Apps Python: 3.13+ com uv obrigatório, ruff, pytest, Dockerfile multi-stage, workspace só com 2+ components. |
basis-web-frontend |
UI web: Thymeleaf + HTMX + Tailwind v4 + DaisyUI (tema caramellatte), layout com sidebar + header, tabelas com cabeçalho/rodapé fixos, formulários alinhados com utilitários, página de erro padrão (nunca Whitelabel), build de CSS/JS. |
basis-multi-tenant |
Isolamento multi-tenant em tabela única (tenant_id) com Row Level Security do Postgres: role da app não-dona, FORCE ROW LEVEL SECURITY, forma missing_ok da policy, contexto transaction-local, ordem das migrations e chave primária composta (tenant_id, id). Traz script de verificação. |
basis-java-code-standards |
Código Java: formatação e nomes, Java moderno (records, sealed, pattern matching), exceções, nulidade/imutabilidade, coleções, java.time/BigDecimal, logging, concorrência, segurança, design de API e testes. |
basis-relatorio-incidente |
Nota de Incidente no padrão da equipe, em Jira wiki markup: estrutura fixa, conteúdo quantitativo, cronologia em UTC e verificação de eficácia. Vale também para incidentes de e-mail, rede e infraestrutura. |
basis-skill-de-sessao |
Extrai skill de diagnóstico do registro de uma sessão de agente: localiza o transcript, monta o dossiê, varre segredo e orienta a redação. Traz scripts. |
eks-upgrade |
Upgrade de versão do Kubernetes em cluster EKS: pré-voo com upgrade insights, control plane, managed node groups, addons e verificação. Cobre troca de família de AMI (AL2→AL2023, exige nodegroup novo) e drain com operator que gerencia PDB. Recebe $CLUSTER_NAME e $EKS_KUBECTL_CONTEXT do ambiente. Traz script de coleta e gerador do relatório final por diferença entre snapshots. |
Com skills CLI:
# Lista as skills do repo e pergunta qual instalar
npx skills add BasisTI/skills
# Instala uma específica
npx skills add BasisTI/skills --skill basis-spring-app
# Por URL direta
npx skills add https://github.com/BasisTI/skills/tree/main/skills/basis-k8s-deployResolve por padrão pra main. Pra pinar numa versão estável, use a URL com a tag:
npx skills add https://github.com/BasisTI/skills/tree/v2026.04.26/skills/basis-spring-appEm projetos que usam Claude Code também é possível clonar o repo e referenciar via plugin/skills locais.
CalVer (vYYYY.MM.DD), alinhado com o resto dos releases da Basis:
main: cabeça estável, sempre instalável.- Tags
vYYYY.MM.DD: snapshot pra pinning. Criadas a cada release com mudança relevante de conteúdo. - Mudanças menores (correções de redação, links) entram direto em
mainsem tag nova.
skills/<nome>/
├── SKILL.md # frontmatter (name, description) + corpo
├── references/ # snippets, exemplos, deep dives
│ ├── *.md
│ ├── *.json # templates prontos pra uso (ex: realm Keycloak de dev)
│ └── assets/ # binários que o padrão exige (ex: logo Basis)
└── scripts/ # opcional: executáveis que a skill invoca
Skill com scripts/ é executável, não só instrucional. Nesses casos: read-only por padrão,
mutação só após aprovação explícita, e uma tabela no fim do SKILL.md declarando o que cada
script muta. Sem caminho absoluto de máquina — a skill roda no ambiente de quem instalou.
Algumas skills precisam de um lugar que só existe na máquina de quem instalou: o clone do repo de IaC, uma vault do Obsidian, um diretório de dados. A regra é declarar o nome da variável, nunca o valor:
Esta skill lê `$REPO_IAC` (clone local do repositório de manifests).
Se não estiver configurado, pergunte antes de prosseguir.O valor vem da configuração de ambiente de quem instalou — no Claude Code, uma seção no
CLAUDE.md de usuário; em script, uma variável de ambiente de verdade:
: "${REPO_IAC:?REPO_IAC não configurado — defina antes de rodar}"Duas consequências que valem mais que a convenção em si:
- Variável guarda ponteiro, não dado. Se a informação é uma lista que alguém mantém à mão (IDs de projeto, inventário de ambientes), a skill aponta para o arquivo e lê de lá. Copiar a lista para dentro da skill cria uma cópia que envelhece sem avisar.
- Faltando, pergunte — não descubra. Um
findpela vault acha a errada quando existem duas, e acha com confiança. Melhor uma pergunta ("o caminho não está configurado, quer configurar agora?") do que um acerto silencioso na máquina errada.
O name do frontmatter deve ser igual ao nome do diretório — é assim que npx skills add --skill <nome> resolve.
O SKILL.md é o ponto de entrada — descreve quando ativar e link pra referências. As references/*.md ficam dentro da pasta da skill, então o install via npx skills add leva tudo junto.
Estas skills foram extraídas do projeto identity-hub (docs/skills/) durante a consolidação dos padrões de engenharia da Basis. O canônico continua sendo este repo — atualizações entram aqui primeiro e são propagadas pros projetos quando relevante.
Pra propor mudança, abra MR/PR neste repo. Conteúdo deve ser descritivo do padrão Basis atual, não de uma app específica — exemplos genéricos com <projeto>, <app>, etc.