BasisTI
- 11 skills
- 0 followers
- 1 day ago last updated
- ▌ Eks Upgrade · basisti bundleUpgrade de versão do Kubernetes num cluster EKS — control plane, nodegroups gerenciados, addons da AWS e os componentes que ficam fora do addon manager. Use quando alguém disser "atualizar o cluster", "subir o EKS para a 1.x", "upgrade do EKS", "qual versão do addon é compatível", "os nodes continuam na versão antiga", "o drain travou", "vou trocar o node group", "registrar o que foi atualizado", "relatório do upgrade"; ao planejar janela de manutenção de cluster; ou quando DNS/CoreDNS quebra logo depois de um upgrade. Precisa de `$EKS_KUBECTL_CONTEXT` e `$CLUSTER_NAME`, que vêm do prompt, do `AGENTS.md`/`CLAUDE.md` do repositório ou do ambiente — nunca adivinhados. Prefira esta à `basis-k8s-deploy` quando o assunto for ciclo de vida do cluster e não deploy de aplicação, porque o sintoma engana: pod que não sobe depois do upgrade parece problema de manifesto e é de node, de addon ou de AZ.
- ▌ Basis Sgo Jira · basisti bundleIntegrar uma aplicação da Basis com o SGO — o Jira customizado da empresa (Jira Server 6.3.13, REST v2, Basic Auth): criar e editar ocorrência, ler o catálogo de campos pelo `createmeta`, escrever linha de TableGrid do plugin iGrid, subir anexo, consultar por JQL e classificar o que volta. Use quando alguém disser "criar ocorrência no SGO", "integrar com o Jira", "customfield", "createmeta", "TableGrid", "iGrid", "JQL", "anexo no Jira", "webhook do Jira", "o Jira devolveu 400", "Field cannot be set", "a data do grid veio um dia antes", "o campo gravou vazio e ninguém viu", "a opção não existe no catálogo"; ao configurar credencial do SGO numa aplicação; e **antes de qualquer escrita a partir de dev ou de staging**, porque existe um SGO só e ele é o de produção. Vale para Java (Spring `@HttpExchange`) e para Python (`ks-jira` + biblioteca `jira`).
- ▌ Basis CI Gitlab · basisti bundleFluxo de uma mudança na Basis, do card do Taiga até a imagem promovida em produção — branch `TG-xxx` a partir de `develop`, mensagem de commit, flags da MR, `ci/pipeline.toml`, o template de CI compartilhado e as funções do orchestrator Dagger. Use quando alguém disser "como nomeio a branch", "abrir MR pra develop", "posso marcar squash?", "minha pipeline falhou", "o check-quality quebrou", "o Sonar não comentou na MR", "o quality gate passou mas não testou nada", "o promote subiu versão velha", "a pipeline da MR aparece skipped e deixou mergear", "Project not found or access denied", "chave desconhecida no pipeline.toml", "quero rodar a pipeline na minha máquina", "subir isso pra produção", "criar o projeto no Sonar", "qual ref do ci-templates eu uso", "qual o id da story", "cria a user story". O mapa de identidade do projeto (id do GitLab, app do ArgoCD, id do Taiga, pasta no IaC, projeto no Sonar, grupo no registry) vive no `AGENTS.md` do repositório; se não estiver lá, pergunte — não descubra. Prefira est
- ▌ Basis K8S Deploy · basisti bundleUse when deploying or configuring a Basis application on Kubernetes — kustomize base+overlays layout, ArgoCD with Image Updater, CalVer image tags, operator-managed dependencies (Postgres/RabbitMQ/Minio/MariaDB/Redis) and their secret patterns. Activate for any change under iac/argocd-apps/manifests/, ArgoCD app definitions, or when wiring secrets/env vars from K8s into a Spring app. Prefer `basis-ci-gitlab` for anything on the GitLab side — pipeline, `ci/pipeline.toml`, Dagger, Sonar, merge requests, branch and commit conventions, and how the image gets built and promoted. The boundary is the image in the registry carrying its production tag; before that, `basis-ci-gitlab`, from there on, this skill.
- ▌ Basis Python App · basisti bundleUse when starting, extending, or refactoring a Basis Python application — Python 3.13+ + uv (mandatory) for dependency and project management, ruff for lint/format, pytest for tests, Dockerfile multi-stage for container builds (no equivalent of Jib). Workspace pattern only when there are multiple components (apps/libs/scripts); single-component projects use a flat pyproject. Activate for new modules, dependency upgrades, or container build questions. For the pipeline itself — `ci/pipeline.toml`, the shared CI template, Dagger, Sonar, merge requests — use `basis-ci-gitlab`; this skill only says which target type a Python component declares there.
- ▌ Basis Spring App · basisti bundleUse when starting, extending, or refactoring a Basis Spring application — Java LTS + Maven + Spring (latest stable) + Spring Modulith, configuration via yaml + env vars + @ConfigurationProperties under the `application.*` prefix, Postgres + Flyway always, RabbitMQ via Spring Cloud Stream, web stack Thymeleaf + HTMX + Tailwind + DaisyUI, local dev via Docker Compose (Keycloak on the app's Postgres), startup banner and DEBUG logging at entry points, Modulith structure tests. Activate for new modules, configuration cleanup, async messaging wiring, local dev environment setup, or web/frontend build questions.
- ▌ Basis Multi Tenant · basisti bundleIsolamento multi-tenant em tabela única (single-table, coluna `tenant_id`) com Row Level Security do Postgres. Use quando alguém disser "vazamento cross-tenant", "leak cross-tenant", "RLS bypass", "isolamento multi-tenant", "esqueci de filtrar por tenant", "pk composta", "id composto", "TenantContext"; ao criar tabela nova com `tenant_id`; ao revisar endpoint que recebe `tenantId` do cliente; ou quando um `SELECT` volta vazio e ninguém sabe por quê. Prefira esta à `basis-spring-app` quando o assunto for isolamento entre clientes, porque o sintoma engana: parece bug de datasource, de transação ou de migration, e é de RLS.
- ▌ Basis Web Frontend · basisti bundleUse when building or changing the web UI of a Basis application — Thymeleaf + HTMX + Tailwind v4 + DaisyUI, listing tables with pinned header/footer where only the rows scroll, forms aligned with Tailwind utilities, and a custom error page so the user never hits the Whitelabel Error Page. Covers both visual identities and which one applies — the `caramellatte` theme with sidebar layout for internal authenticated systems, and the `basis-publico` theme following the institutional site (navy, orange accent, single centred column, measured WCAG contrast) for public login-free applications such as candidacy or citizen-facing forms. Activate for new screens, templates and fragments, table/listing work, form layout, error pages, theme/branding/colour choices, accessibility and contrast questions, or the Tailwind/DaisyUI build.
- ▌ Basis Skill De Sessao · basisti bundleConverte o registro de uma sessão de agente em atualização de skill — seja skill nova, seja acréscimo a uma skill que já existe. Serve para sessão de incidente, de revisão de código, de planejamento e de debug. Use quando o usuário disser "vamos virar skill", "aproveitar aquela sessão", "documentar como a gente resolveu", "isso aqui devia estar na skill"; depois de uma revisão de MR que apontou padrão repetível; ou logo após fechar nota de incidente, quando o diagnóstico ainda está fresco. Também para revisar skill já escrita, conferindo se ela guarda os becos sem saída e não só o caminho feliz. E, quando não se sabe qual sessão rendeu — "o que eu vivo tendo que repetir para o agente", "onde estou perdendo tempo", "o que falta nas skills" —, traz um modo de triagem que procura a mesma correção reaparecendo em sessões diferentes. Lê transcript de Claude Code e de Codex.
- ▌ Basis Java Code Standards · basistiUse when writing, reviewing, or refactoring Java code in a Basis project — formatting and naming, modern Java (records, sealed types, pattern matching, text blocks), exception handling, nullability and immutability, collections and streams, date/time and money, logging, concurrency, resources/IO, security, API design, and tests (JUnit 5 + AssertJ + Mockito). Activate on any change to `.java` files, on code review, or when the user asks to check conformance with the code standards.
- ▌ Basis Relatorio Incidente · basisti bundleGera ou revisa uma Nota de Incidente no padrão da equipe, em Jira wiki markup. Use quando o usuário pedir relatório/nota/postmortem de incidente, documentação de uma ocorrência, ou quiser padronizar uma nota já existente — inclusive a partir de logs, alertas de Watchdog, saídas de comando ou de uma conversa de investigação já feita. Também se aplica a incidentes de e-mail (mailcow, Postfix, Rspamd, fail2ban), rede e infraestrutura.