Checklist de implantação
Checklist de verificação prévia para implantar ou compartilhar o ecossistema Apothem
Etapas de verificação prévia antes de implantar o ecossistema Apothem em uma máquina nova, compartilhá-lo com outras pessoas ou tratá-lo como pronto para produção.
1. Validade do YAML
- Todos os arquivos de regras são analisados sem erros de YAML — o bloco de frontmatter abre com
---, fecha com---e não contém conteúdo órfão fora do bloco - Todos os arquivos de trabalhadores delegados são analisados sem erros de YAML
- Todos os arquivos de comando são analisados sem erros de YAML
- Todos os arquivos
SKILL.mdde skills são analisados sem erros de YAML
Verificação: python scripts/dev/validate_ecosystem.py analisa o
frontmatter de cada artefato e sinaliza erros de YAML + campos obrigatórios ausentes. Para detecção
ad hoc de itens de lista órfãos: rg -n "^- " src/apothem/rules/*.md.
2. Completude do frontmatter
Para cada tipo de artefato, verifique se os campos obrigatórios estão presentes:
Regras (src/apothem/rules/*.md)
-
name— identificador em kebab-case que corresponde ao nome do arquivo -
description— resumo de uma única frase -
alwaysApply—truepara regras sempre ativas,falsepara regras filtradas por caminho -
pathFilter— presente em toda regra:""para regras sempre ativas (alwaysApply: true), uma lista de globs separada por vírgulas para regras filtradas por caminho (alwaysApply: false)
As regras não têm nenhuma chave version, updated, scope ou portability.
Comandos (src/apothem/commands/*.md)
-
name— nome do comando em kebab-case -
version,updated,description,argument-hint,portability,allowed-toolspresentes -
disable-model-invocationpresente e intencional (falsepara comandos somente leitura ou consultivos;truesomente quando executar o comando altera o estado fora da árvore de trabalho ou depende de o operador escolher o momento) - Sem chave
effort:command.schema.jsondefineadditionalProperties: falsee não a admite
Trabalhadores delegados
Caminho:
src/apothem/agents/*.md-
name,version,updated,descriptionpresentes -
tools— lista separada por vírgulas de ferramentas permitidas -
disallowedTools— lista explicitamente as ferramentas não permitidas -
maxTurns— definido (com comentário de justificativa se > 10) -
permissionMode— NÃO deve ser"bypassPermissions"; deixe a chave sem definir, pois a postura agnóstica não pré-define nenhum modo de permissão -
memoryomitido, a menos que a memória persistente seja intencional; quando definido, um deuser,projectoulocal(sem forma booleana)
Skills (src/apothem/skills/*/SKILL.md)
-
name,version,updated,description,archetype,disable-model-invocation,allowed-toolspresentes -
userInvocabledeclarado (true/false). A grafia de origem éuserInvocable; uma skill carrega exatamente um entreuserInvocableeuser-invocable(a grafia do Claude Code).
3. Segurança
- Nenhum trabalhador delegado usa
permissionMode: "bypassPermissions"— isso ignora a confirmação interativa para operações Write/Bash - As listas de
toolsdo trabalhador são mínimas — apenas as ferramentas que o trabalhador genuinamente requer - Trabalhadores com acesso a
Bashsão justificados e têm limites de maxTurns - Nenhum caminho, token ou segredo embutido em qualquer artefato
- Os hooks em
settings.jsontêm timeouts razoáveis (≤ 60 segundos) e não executam código arbitrário a partir da entrada do usuário
4. Integridade das referências cruzadas
- Cada regra listada na tabela
src/apothem/rules/existe em disco no caminho indicado - Cada comando listado na tabela
src/apothem/commands/existe em disco - Cada trabalhador delegado listado na tabela de registro
src/apothem/agents/existe em disco - Cada skill listada na tabela
src/apothem/skills/existe em disco - Cada hook na tabela
src/apothem/hooks/tem uma entrada correspondente emsettings.json - Todos os arquivos
src/apothem/rules/*.mdexistem e resolvem suas referências cruzadas deBindings
5. Cobertura de mandatos
- Cada mandato CM-N tem um local de aplicação (um arquivo de regra ou uma definição inline explícita)
- Nenhum arquivo de regra contradiz outro (especialmente em torno do escalonamento de seriedade)
- A delineação de três facetas do CM-21 é respeitada — nenhuma regra reivindica a propriedade da faceta CM-21 de outra regra
6. Testes de fumaça funcionais
Execute primeiro a superfície de validação em Python — ela é rápida, offline e captura regressões estruturais:
-
pytest tests— testes unitários do runtime de hooks, todos em verde -
python scripts/dev/validate_hooks.py— estrutura de hooks + verificação de higiene somente-Python passou -
python scripts/dev/validate_ecosystem.py— árvore completa + frontmatter + verificações de hooks delegados passaram -
python scripts/dev/chaos_pass.py— cada comando de hook configurado retorna um envelope JSON válido sob entradas degradadas
Depois, cenários ao vivo:
-
/plan-spec <sample-file>— completa a ingestão/esclarecimento sem erros em nível de comando -
/plan-generate --dry-run— produz a prévia da estrutura sem gravar arquivos -
/plan-statusem uma suíte de planejamento completa — retorna contagens de fase precisas - Despacho de trabalhador delegado: o trabalhador
codebase-explorerinvocado com um escopo pequeno conclui dentro de maxTurns e retorna saída estruturada
7. Atualidade da documentação
-
CHANGELOG.md(na raiz do ecossistema) reflete cada mudança de artefato desde a última versão publicada; a seção da próxima versão é preenchida antes de a tag aterrissar, ou cada mudança já está cortada em uma seção publicada -
site/content/docs/developer-guide.mdxdescreve com precisão a estrutura atual dos artefatos -
site/content/docs/reference/artifact-schema.mdxcorresponde aos campos de frontmatter realmente presentes nos artefatos -
site/content/docs/reference/settings-reference.mdxcorresponde à configuração de hooks real emsettings.json -
README.mdé consistente com a árvore em disco
8. Portabilidade (se compartilhar com outras pessoas)
- Todos os caminhos nos comandos de hook são agnósticos de ambiente ou usam expansão de
~ - Os comandos de hook usam a forma exec e evitam strings de comando específicas de shell
- Nenhum caminho embutido
C:\Users\usernameou/home/usernameem qualquer artefato -
settings.jsonusa uma única tabela de cobertura de eventos de hook e o caminho canônico do módulo de despacho
9. Alinhamento de versão
- A
versionde CLAUDE.md é a mais alta de qualquer artefato na árvore (ou igual à versão do artefato mais recentemente atualizado, por convenção) - A
versionde cada artefato corresponde ao semver indicado (MAJOR.MINOR.PATCH) - CHANGELOG.md contém exatamente a entrada de versão da versão-alvo antes do tagging
- O campo
updatedde cada artefato está na data da sua última edição que altera o comportamento, ou depois dela - Nenhum artefato carrega uma
versioninferior à versão em que foi tocado pela última vez (sem regressões) -
src/apothem/skills/plan-suite/SKILL.mdesrc/apothem/skills/plan-suite/master-template.mdestão fixados na mesma linha de versão de template
Assinatura
| Categoria de verificação | Status | Notas |
|---|---|---|
| Validade do YAML | ||
| Completude do frontmatter | ||
| Segurança | ||
| Integridade das referências cruzadas | ||
| Cobertura de mandatos | ||
| Testes de fumaça funcionais | ||
| Atualidade da documentação | ||
| Portabilidade | ||
| Alinhamento de versão |
Implantação aprovada por: ___________________ Data: ___________________ Versão do ecossistema implantada: ___________________
Runbook do ciclo de lançamento
Fluxo de lançamento completo, dos portões locais, passando pelo GitHub Release assinado, até a publicação no npm.
Runbook de recuperação de lançamento
Procedimentos de recuperação, estágio por estágio, para um lançamento que falha no meio do processo sob o modelo de lançamento aditivo, sem reescrever o histórico publicado.