Todas as skills

domain-modeling (mattpocock/skills)

Constrói o modelo de domínio de um projeto e mantém seu glossário e seus registros de decisões de arquitetura.

domain-modeling: transforma pedidos simples de 'monte um glossário / registre esta decisão' no formato curto GLOSSARY.md + ADR (controle 2.8, skill 5.0); um prompt de uma frase chega a 4.6; sem custo extra de tokens

RecomendadoSeguro

Codex CLI · gpt-6-astra

28.2 / 30

Ganho sobre sem skill: +2.20 · Recomendado · 18 execuções

Recomendado: o total 28.2/30 é pelo menos 22, a qualidade da saída 5.0 é pelo menos 3.5 e o ganho +2.20 é pelo menos +1.0.

SOTA

Aprovado

Testado com Codex.

Cobre Codex, Claude Code

Codex CLI 0.166 (nível SOTA): 18 execuções avaliadas. Uma aprovação aqui também vale para o Claude Code pela nossa regra de níveis; ela não diz nada sobre o segundo nível.

Notas

Cada dimensão vai de 0 a 5, e as seis somam o total de 30. 5 é melhor em todas as dimensões. Custo 5 significa barato e rápido. Instalação 5 significa fácil.

Confiabilidade do acionamento
5.0
Ganho sobre sem skill
4.2
Qualidade da saída
5.0
Custo de tokens e tempo
5.0
Instalação e portabilidade
4.0
Segurança
5.0

Revisão de segurança

Seguro

Varredura estática: 0 CRÍTICO / 0 ALTO / 0 MÉDIO. Revisão manual: seguro para executar em sandbox sem rede (nenhum achado). Uma varredura limpa não prova que a skill é segura.

Instalar

npx skills@latest add mattpocock/skills --skill domain-modeling

Fonte

Commit fixado: 4ae2317ddb22b046e26455e4f9c9b3aaaf62212d

Testado: 2026-11-02

O que testamos

  • Criar um glossário a partir de termos sobrecarregados — Nosso app de empréstimo de biblioteca usa 'member', 'patron', 'borrower' e 'customer' para a mesma pessoa (alguém que pode pegar livros emprestados). Um 'loan' também é chamado de 'checkout' ou 'rental'. Um 'copy' é um livro físico, um 'title' é o livro abstrato. Por favor, monte o glossário…
  • Registrar uma decisão difícil de reverter — Registre esta decisão de arquitetura para o repositório: armazenamos dinheiro como centavos inteiros no Postgres em vez de NUMERIC/DECIMAL, porque a API do parceiro de pagamentos usa centavos inteiros e bugs de arredondamento já nos atingiram duas vezes. Escreva o registro.
  • Registrar só o que merece um ADR — Duas decisões da reunião de hoje: (a) estamos migrando a autenticação da nossa própria tabela de senhas para um provedor de identidade terceirizado (Auth0): um trimestre de trabalho para desfazer; (b) renomeamos a classe CSS .btn-main para .btn-primary. Registre o que merecer registro…

Prós

  • Eleva a nota média de 2.8 para 5.0 em relação ao grupo sem skill (+2.20).
  • A skill foi acionada sem ser nomeada: o arquivo da skill foi lido em 6/6 execuções de tratamento.
  • Sem custo extra de tokens: 0.96x os tokens do grupo sem skill.
  • Supera em +0.39 uma versão de uma frase da própria regra.
  • Qualidade absoluta alta com a skill: 5.0 de 5.

Contras

  • Ressalva do teste: os globs de nome de arquivo nas verificações foram afrouxados depois que vimos os nomes de arquivo do grupo de controle, e todas as execuções foram reavaliadas com as mesmas regras afrouxadas.
  • n=2 por tarefa por braço; diferenças abaixo de cerca de 1 ponto são ruído.

Avaliação

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC de teste Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento), ausente (grupo de controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo do prompt de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo). Três tarefas com redação natural que não nomeia um formato: 'monte o glossário de domínio do projeto' (um app de biblioteca que chama a mesma pessoa de member/patron/borrower/customer), 'registre esta decisão de arquitetura' (dinheiro como centavos inteiros) e 'duas decisões da reunião; registre o que merecer registro' (uma migração para Auth0 difícil de desfazer e a renomeação de uma classe CSS que não é difícil de desfazer), partindo de um repositório com os ADRs 0001 e 0002. Prompt de uma frase = a convenção inteira em uma só frase.

Comparação entre os braços

BraçoNota média (0-5)Tokens por execução
Sem a skill2.883k
Prompt de uma frase4.6183k
Com a skill5.080k

Medido com Codex CLI em 18 execuções, com pontuação por verificações baseadas em regras e sem juiz LLM. Total 28.2 / 30, veredito Recomendado.

Divulgação: Os globs de nome de arquivo nas verificações foram afrouxados depois que vimos os nomes de arquivo do grupo de controle, e todas as execuções foram reavaliadas com as mesmas regras afrouxadas.

Veredicto: Recomendado (28.2 / 30). Fonte: mattpocock/skills, skills/engineering/domain-modeling, fixado no commit 4ae2317. Instalação: npx skills@latest add mattpocock/skills --skill domain-modeling. Licença: MIT (LICENSE do repositório).

O que é

A skill domain-modeling (mattpocock/skills): mantém a linguagem de domínio de um projeto precisa. Ela mantém um GLOSSARY.md (um termo canônico em negrito por conceito, uma definição enxuta, sinônimos em _Avoid_:, nenhum termo genérico de programação) e escreve ADRs em docs/adr/ apenas para decisões difíceis de reverter, surpreendentes e com trade-offs reais, como um parágrafo curto com numeração sequencial.

Como testamos

Codex CLI 0.166 (gpt-6-astra, raciocínio baixo) em um PC de teste Windows dedicado, com um projeto temporário novo e HOME/TMPDIR/caches temporários a cada execução, skill instalada (tratamento), ausente (controle) ou ausente com o requisito central da skill comprimido em uma frase anexada ao prompt (grupo de uma frase), 2 execuções por grupo por tarefa, rede desligada, gravações em /tmp bloqueadas. Os prompts nunca mencionam a skill (exceto pelo texto indicado abaixo).

Três tarefas com redação natural que não nomeia um formato: "montar o glossário de domínio do projeto" (um app de biblioteca que chama a mesma pessoa de member/patron/borrower/customer), "registrar esta decisão de arquitetura" (dinheiro como centavos inteiros) e "duas decisões da reunião; registre o que merecer registro" (uma migração para Auth0 difícil de desfazer e uma renomeação de classe CSS que não é), partindo de um repositório com ADRs 0001 e 0002. Frase única = a convenção inteira em uma frase.

  1. Criar um glossário a partir de termos sobrecarregados — Nosso app de empréstimo de biblioteca usa "member", "patron", "borrower" e "customer" para a mesma pessoa (alguém que pode pegar livros emprestados). Um "loan" também é chamado de "checkout" ou "rental". Uma "copy" é um livro físico, um "title" é o livro abstrato. Por favor, monte o pr…
  2. Registrar uma decisão difícil de reverter — Registre esta decisão de arquitetura para o repositório: armazenamos dinheiro como centavos inteiros no Postgres em vez de NUMERIC/DECIMAL, porque a API do parceiro de pagamentos usa centavos inteiros e bugs de arredondamento nos atingiram duas vezes. Escreva o registro.
  3. Registre apenas o que merece um ADR — Duas decisões da reunião de hoje: (a) vamos migrar a autenticação da nossa própria tabela de senhas para um provedor de identidade terceirizado (Auth0): um trimestre de trabalho para desfazer; (b) renomeamos a classe CSS .btn-main para .btn-primary. Registre o que merecer registro…

A pontuação é programática (testes ocultos / identificação de problemas plantados / verificações de restrições / renderização + OCR quando aplicável), de 0 a 5 por execução. Nenhum juiz LLM decidiu qualquer pontuação.

Resultados

A frase única dada ao terceiro grupo: "Mantenha a linguagem de domínio do projeto precisa: escreva um GLOSSARY.md com um termo canônico em negrito por conceito (uma definição enxuta e sinônimos em _Avoid_:, sem termos genéricos de programação), e registre apenas decisões difíceis de reverter, surpreendentes e com trade-offs reais como ADRs curtos e numerados sequencialmente em docs/adr/ (um parágrafo, não um template)."

TarefaPontuação do controleUma fraseCom a skillTokens do controleTokens de uma fraseTokens com a skillSkill lida
t1-glossary1.464.385.075k90k79k2/2
t2-adr2.55.05.091k74k69k2/2
t3-adr-numbering4.454.455.082k83k89k2/2

Pontuação média: 2.8 sem a skill vs. 5.0 com a skill (delta +2.2). Tokens por execução: 83k vs. 80k (0.96x); tempo 45s vs. 35s. Grupo de uma frase: 4.61 (ganho da skill sobre a frase única: +0.39; ganho da própria frase única sobre sem skill: +1.8); 83k tokens por execução no grupo de uma frase, então a skill custa 0.96x a frase única.

O que aconteceu

  • Controle 2.80, frase única 4.61, skill 5.00 (n=6 cada). O controle faz a coisa sensata, mas do seu próprio jeito: um DOMAIN*GLOSSARY.md (não GLOSSARY.md) com tabela ou texto corrido, nenhuma linha \_Avoid* em nenhuma das execuções, e ADRs de 263 e 355 palavras com títulos Contexto/Decisão/Consequências quando a convenção pede um parágrafo curto; um ADR do controle foi para docs/decisions/ em vez de docs/adr/.
  • As duas decisões de julgamento da skill estão certas: nas duas execuções de tratamento da terceira tarefa, ela registrou apenas a mudança para Auth0 como ADR 0003 (numeração correta após os 0001/0002 existentes) e disse que pulou a renomeação de CSS por ser fácil de reverter. O controle e a frase única também pularam a renomeação, mas a segunda execução do controle e a segunda da frase única deram um motivo que meu regex não reconheceu (mudança rotineira, não registrada), então a verificação "me diga por quê" os penaliza indevidamente.
  • A frase única alcança a maior parte do formato (glossário 3.75 e 5.0, ADRs 5.0, 5.0), mas um glossário da frase única usou um layout diferente, então não passou na verificação da estrutura _Avoid_.
  • Sem custo extra: 80k tokens por execução com a skill, 83k com o controle e a frase única. A skill foi lida em 6/6 execuções com a skill sem ser nomeada.

Pontuação por dimensão

DimensãoPontuaçãoPor quê
1_output_quality5.0

Pontuação média de 5.00/5 com a skill (verificações programáticas; consulte a tabela por tarefa).

2_lift_vs_no_skill4.2

+2.20 pontos vs. 2.80 sem a skill (n=2 por tarefa; abaixo de ~1 ponto é ruído).

3_trigger5.0Arquivo da skill lido em 6/6 execuções com a skill.
4_instructions_portability4SKILL.md curto com alguns templates de referência; nenhum script.
5_efficiency50.96x tokens (80k vs. 83k por execução) e 0.78x tempo (35s vs. 45s).
6_safety_hygiene5Somente texto; consulte security.md.

Limites deste teste

  • Verificações por regras em nomes de arquivos, títulos, contagens de termos em negrito, contagens de palavras e linhas _Avoid_. Várias são verificações de formato que um controle não consegue cumprir sem que lhe digam o formato; as verificações medem a adesão a esta convenção da casa, não a qualidade geral da escrita.
  • Afrouxei os padrões de nome de arquivo e layout depois de ver que o controle escreveu DOMAIN_GLOSSARY.md e a frase única escreveu entradas em marcadores (o nome do arquivo continua sendo uma verificação separada), e reavaliei todas as execuções com as mesmas regras. O regex de "por que (b) foi pulado" continua rígido.
  • Repositórios sintéticos pequenos; nenhum glossário de longa duração que precise ser atualizado com o tempo.
  • n = 2 por grupo por tarefa: diferenças abaixo de cerca de 1 ponto são ruído.
  • A pontuação por regras mede o que as verificações conseguem ver; não julga bom gosto nem se o resultado é o melhor possível.

Segurança

Consulte security.md. Scan: 0 CRITICAL / 0 HIGH / 0 MEDIUM. Veredicto: segura para execução (sandbox sem rede). Um scan limpo não prova que uma skill é segura.

Conclusão

Para uma equipe que quer esta convenção de glossário e ADR, a skill acerta de primeira e mantém os ADRs escassos, sem tokens extras. Uma instrução de uma frase dá conta da maior parte, então a skill principalmente evita que você cole a convenção toda vez.

Transcrição

Log de execuções: domain-modeling (Codex CLI, network off, per-run temp HOME/TMPDIR, one row per graded run.)
Colunas: tarefa, grupo-execução, nota (0-5), tokens, segundos, verificações aprovadas, arquivos da skill abertos pelo agente.

t1-glossary control-1: nota 1.25, tokens 67501, s 45.5, verificações 2/7, nada aberto
t1-glossary control-2: nota 1.67, tokens 82953, s 59.9, verificações 3/7, nada aberto
t1-glossary oneliner-1: nota 5.0, tokens 99071, s 37.6, verificações 7/7, nada aberto
t1-glossary oneliner-2: nota 3.75, tokens 82400, s 36.8, verificações 6/7, nada aberto
t1-glossary treatment-1: nota 5.0, tokens 89157, s 40.7, verificações 7/7, abriu domain-modeling
t1-glossary treatment-2: nota 5.0, tokens 70479, s 32.2, verificações 7/7, abriu domain-modeling
t2-adr control-1: nota 3.12, tokens 99540, s 43.6, verificações 3/5, nada aberto
t2-adr control-2: nota 1.88, tokens 82829, s 51.1, verificações 2/5, nada aberto
t2-adr oneliner-1: nota 5.0, tokens 66964, s 43.7, verificações 5/5, nada aberto

18 execuções, 3 artefatos

Resultado de exemplo

SOTA · With the skill: GLOSSARY.md (t1-glossary, run 1, Codex)

# Library Lending The library-lending context describes people who can borrow books, the books available to borrow, and their loans. ## Language **Member**: A person who can borrow books from the library, whether or not they currently have a loan. _Avoid_: Patron, borrower, customer **Loan**: An instance of a member borrowing a physical copy of a title from the library. _Avoid_: Checkout, rental **Copy**: One physical book belonging to a title. Two physical books of the same title are two distinct copies. _Avoid_: Title (when referring to a physical book) **Title**: The abstract book represented by physical copies. Multiple copies of the same book share a title. _Avoid_: Copy (when referring to the abstract book)

Ver o Pro