@andespindola/crow-skills 0.23.0 → 0.25.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/LICENSE +32 -4
  2. package/THIRD-PARTY-NOTICES.md +43 -0
  3. package/catalog.json +148 -38
  4. package/crow_skills/__init__.py +1 -1
  5. package/crow_skills/autoupdate.py +6 -1
  6. package/crow_skills/cli.py +189 -1
  7. package/crow_skills/guide.py +3 -0
  8. package/crow_skills/integrations.py +105 -1
  9. package/crow_skills/storage.py +4 -0
  10. package/crow_skills/trust.py +73 -0
  11. package/docs/cli.md +63 -1
  12. package/package.json +2 -1
  13. package/release.json +202 -57
  14. package/skills/crow-accessibility/SKILL.md +7 -5
  15. package/skills/crow-accessibility/references/verificacao.md +102 -0
  16. package/skills/crow-agent-security/SKILL.md +8 -4
  17. package/skills/crow-agent-security/references/limites-agente.md +17 -0
  18. package/skills/crow-api-test/SKILL.md +2 -0
  19. package/skills/crow-api-test/references/casos-negativos.md +16 -0
  20. package/skills/crow-architecture/SKILL.md +2 -0
  21. package/skills/crow-architecture/references/modulos-profundos.md +18 -0
  22. package/skills/crow-backend/SKILL.md +3 -1
  23. package/skills/crow-backend/references/servico-backend.md +13 -0
  24. package/skills/crow-be-human/SKILL.md +2 -1
  25. package/skills/crow-be-human/references/voz-e-registro.md +35 -0
  26. package/skills/crow-behaviour/SKILL.md +21 -7
  27. package/skills/crow-behaviour/references/briefing-executavel.md +65 -0
  28. package/skills/crow-behaviour/references/ciclo-de-revisao.md +104 -0
  29. package/skills/crow-behaviour/references/micro-agents.md +52 -5
  30. package/skills/crow-behaviour/references/progress-ledger.md +3 -1
  31. package/skills/crow-behaviour/scripts/crow_micro.py +45 -0
  32. package/skills/crow-behaviour/scripts/micro_agent_instructions.md +15 -3
  33. package/skills/crow-browser/SKILL.md +45 -3
  34. package/skills/crow-browser/references/mecanismo-de-browser.md +24 -0
  35. package/skills/crow-browser/references/pagina.md +43 -0
  36. package/skills/crow-debug/SKILL.md +1 -1
  37. package/skills/crow-design/SKILL.md +6 -6
  38. package/skills/crow-design/references/contrato.md +84 -0
  39. package/skills/crow-discovery/SKILL.md +5 -4
  40. package/skills/crow-discovery/references/pesquisa-sem-vies.md +33 -0
  41. package/skills/crow-documents/SKILL.md +9 -3
  42. package/skills/crow-documents/references/ooxml.md +43 -0
  43. package/skills/crow-documents/references/pdf.md +31 -0
  44. package/skills/crow-documents/references/planilha.md +35 -0
  45. package/skills/crow-domain/SKILL.md +2 -0
  46. package/skills/crow-domain/references/invariante-e-identidade.md +11 -0
  47. package/skills/crow-frontend/SKILL.md +6 -5
  48. package/skills/crow-growth/SKILL.md +2 -1
  49. package/skills/crow-growth/references/experimento-e-metrica.md +39 -0
  50. package/skills/crow-infra/SKILL.md +6 -5
  51. package/skills/crow-infra/references/kubernetes.md +6 -0
  52. package/skills/crow-interface/SKILL.md +1 -1
  53. package/skills/crow-interface/reference/adapt.md +8 -0
  54. package/skills/crow-interface/reference/layout.md +4 -1
  55. package/skills/crow-interface/reference/workflow.md +2 -0
  56. package/skills/crow-media/SKILL.md +5 -5
  57. package/skills/crow-media/references/producao.md +63 -0
  58. package/skills/crow-native-mobile/SKILL.md +1 -1
  59. package/skills/crow-observe/SKILL.md +8 -4
  60. package/skills/crow-observe/references/cardinalidade.md +11 -0
  61. package/skills/crow-performance/SKILL.md +5 -5
  62. package/skills/crow-performance/references/measurement.md +6 -0
  63. package/skills/crow-platform/SKILL.md +4 -4
  64. package/skills/crow-postgres/SKILL.md +3 -0
  65. package/skills/crow-postgres/references/migracao-online.md +17 -0
  66. package/skills/crow-product-leadership/SKILL.md +4 -3
  67. package/skills/crow-product-leadership/references/decisao-e-pessoas.md +35 -0
  68. package/skills/crow-qa/SKILL.md +1 -1
  69. package/skills/crow-release/SKILL.md +10 -5
  70. package/skills/crow-release/references/transicao.md +13 -0
  71. package/skills/crow-reverse/SKILL.md +1 -1
  72. package/skills/crow-secrets/SKILL.md +2 -2
  73. package/skills/crow-security-review/SKILL.md +12 -5
  74. package/skills/crow-security-scan/SKILL.md +8 -3
  75. package/skills/crow-security-scan/references/evidencia-scan.md +17 -0
  76. package/skills/crow-security-test/SKILL.md +5 -1
  77. package/skills/crow-security-test/references/prova-dinamica.md +24 -0
  78. package/skills/crow-seo/SKILL.md +6 -4
  79. package/skills/crow-seo/references/saida-tecnica.md +78 -0
  80. package/skills/crow-skill-author/SKILL.md +10 -6
  81. package/skills/crow-skill-author/references/medicao.md +85 -0
  82. package/skills/crow-spec/SKILL.md +4 -3
  83. package/skills/crow-spec/references/criterio-e-fatia.md +27 -0
  84. package/skills/crow-threat-model/SKILL.md +5 -1
  85. package/skills/crow-threat-model/references/ciclo-ameaca.md +15 -0
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: crow-spec
3
- description: "Transforme uma decisão de produto em uma especificação enxuta, fatias de release e critérios testáveis. Não conduz pesquisa de mercado."
3
+ description: "Transforme uma decisão de produto em uma especificação enxuta, fatias de release e critérios testáveis. Não conduz pesquisa de mercado: investigar o problema é de crow-discovery, e escrever ou rodar a suíte a partir do critério é de crow-qa."
4
4
  ---
5
5
 
6
6
  # Escopo e critérios de aceite
@@ -18,8 +18,9 @@ Se pedido, documentação ou requisitos se contradizem, nomeie o conflito com a
18
18
  1. Escolha a menor forma útil: issue para mudança pequena; PRD curto quando há múltiplos públicos, riscos ou decisões. Não preencha seções sem função.
19
19
  2. Defina usuário, outcome, fluxo, regras, métricas disponíveis e fora de escopo. Marque hipóteses e dúvidas no ponto onde afetam a decisão; sem poder perguntar, registre-as como pendência com opções e não afirme que foram encaminhadas. Pedidos fora do objetivo cabem numa linha em fora de escopo.
20
20
  3. Mapeie a jornada e recorte uma fatia vertical que entregue valor observável. Dependências técnicas são tarefas de suporte, não histórias artificiais de usuário.
21
- 4. Escreva um critério de aceite por requisito, com precondição, ação e resultado observável. Inclua erros, autorização, estado vazio e recuperação pertinentes ao fluxo; os que não decorrem de requisito declarado ficam marcados PROPOSTO.
22
- 5. Priorize com o método adequado aos dados disponíveis. Ordene dependências e explicite o que depende de descoberta; roadmap não vira promessa de data.
21
+ 4. Escreva um critério de aceite por requisito, com precondição, ação e resultado observável. Inclua erros, autorização, estado vazio e recuperação pertinentes ao fluxo; os que não decorrem de requisito declarado ficam marcados PROPOSTO. Diga também o que não pode piorar, com medida que já é coletada.
22
+ 5. Leia [critério e fatia](references/criterio-e-fatia.md) ao escrever o critério e ao recortar o release: afirmação de grau sem valor não é resultado, mais de um gatilho ou resultado no mesmo critério é sinal de divisão, o papel específico substitui "usuário", a fatia atravessa o caminho inteiro de um recorte pequeno, e o critério fica executável para `crow-qa` sem citar ferramenta de teste.
23
+ 6. Priorize com o método adequado aos dados disponíveis. Ordene dependências e explicite o que depende de descoberta; roadmap não vira promessa de data.
23
24
 
24
25
  ## Saída e aceite
25
26
 
@@ -0,0 +1,27 @@
1
+ # critério e fatia
2
+
3
+ Leia ao escrever critério de aceite e ao recortar release. Critério que ninguém consegue executar é prosa; fatia que só entrega valor quando a próxima chegar é tarefa disfarçada de release.
4
+
5
+ ## Critério verificável
6
+
7
+ Cada critério diz em que estado o sistema está, o que acontece, e o que passa a ser observável depois — e quem vai verificar consegue fazer isso sem perguntar nada a você. Afirmação de grau precisa do valor e de onde ele é medido: "mais rápido", "melhor experiência", "estável" e "intuitivo" não são resultados, são opiniões sobre o resultado. Se o requisito declarado não traz o número, o critério traz o que é observável sem ele (a mensagem exibida, o registro gravado, o acesso recusado) e a meta numérica fica marcada como pendente de quem decide, não inventada.
8
+
9
+ Um gatilho e um resultado por critério. Mais de um gatilho no mesmo critério esconde dois comportamentos; mais de um resultado esconde dois requisitos. Nos dois casos o sinal é de divisão, e a divisão vem antes de escrever o critério. Resultado negativo também é critério: o que o sistema recusa, o que não grava, o que não aparece para quem não tem permissão. Caso sem requisito declarado que o sustente entra marcado como PROPOSTO.
10
+
11
+ Nomeie o papel que exerce a ação. "Usuário" cobre papéis com permissões e necessidades diferentes e produz critério que não decide nada; o papel específico decide. O motivo do requisito não repete a ação: se o "para que" só reescreve o "o que", o requisito não registra por que vale construí-lo.
12
+
13
+ ## Guardrail
14
+
15
+ Além da medida que deve melhorar, diga o que não pode piorar: a conversão a montante, o tempo de resposta do fluxo vizinho, o volume de chamado de suporte, a taxa de erro de quem já usava. Entrega que move a métrica alvo degradando a vizinha não cumpriu o requisito, e sem o guardrail escrito ninguém vai olhar. Use só medidas que já existem e são coletadas; guardrail que depende de instrumentação inexistente é pendência nomeada, com quem a implementa.
16
+
17
+ ## Fatia que entrega valor sozinha
18
+
19
+ A fatia atravessa o caminho inteiro de um recorte pequeno do problema: alguém consegue fazer algo de ponta a ponta e o resultado é observável sem a próxima fatia. Recorte por camada técnica — uma fatia de interface e outra de serviço — não entrega nada sozinho e só desloca a integração para o fim.
20
+
21
+ Os recortes que costumam funcionar: uma etapa do fluxo em vez do fluxo todo; uma variação de regra em vez de todas; um tipo de dado ou de entrada em vez do conjunto; uma integração externa por vez; o caminho feliz antes da recuperação, quando a falha parcial é aceitável e está declarada. Quando nenhum deles se aplica porque o problema ainda tem incógnita, o recorte certo é um experimento curto para resolver a incógnita, declarado como experimento — não como história de usuário.
22
+
23
+ Valide o recorte contra três perguntas: cada fatia entrega valor observável por si; a soma das fatias cobre o requisito original, sem perda silenciosa; e nenhuma fatia depende de outra terminar inteira para começar. Dependência inevitável é ordem explícita, não história artificial. Fatia de dois dias não precisa de divisão: dividir o que já é pequeno cria dependência e cerimônia sem ganho.
24
+
25
+ ## O limite com quem testa
26
+
27
+ Esta skill entrega o critério; `crow-qa` escolhe as camadas, decide o que vira teste automatizado e escreve a suíte. Não especifique arquivo de teste, framework ou nível de cobertura aqui — critério amarrado a uma ferramenta de teste trava a decisão de quem é dona dela. Garanta que o critério é executável: se `crow-qa` não consegue derivar o caso a partir dele, ele não está pronto.
@@ -18,9 +18,13 @@ Se pedido, documentação ou requisitos se contradizem, nomeie o conflito com a
18
18
  1. Mapeie ativos e fluxos de dados/instruções, indicando onde mudam identidade, autoridade e confiança. Integração fora do escopo continua sendo fronteira: registre quais dados a cruzam.
19
19
  2. Para cada fronteira relevante, descreva quem consegue influenciar qual entrada e qual efeito indevido poderia obter. Use STRIDE como lente, não como lista para preencher sem contexto.
20
20
  3. Priorize por impacto e viabilidade demonstráveis ou marcados como hipótese, com o rótulo em cada risco; se faltam fatos, registre a informação necessária.
21
- 4. Vincule cada risco a controle, responsável e verificação observável. Identifique também disponibilidade, abuso de negócio, integrações e recuperação pertinentes.
21
+ 4. Vincule cada risco a controle, responsável, verificação observável e estado (aberto, mitigado, aceito ou transferido). Risco mitigado só fecha com a verificação do controle conferida ou pendente com quem confere. Ameaça aceita fica registrada com quem aceitou, justificativa, impacto residual e data de revisão; não some do registro. Identifique também disponibilidade, abuso de negócio, integrações e recuperação pertinentes.
22
22
  5. Atualize apenas as partes afetadas por mudanças; entregue cenários ao implementador e ao QA sem se declarar um pentest executado.
23
23
 
24
+ ## Detalhes condicionais
25
+
26
+ - Leia [ciclo-ameaca.md](references/ciclo-ameaca.md) ao fechar o registro: estado de cada ameaça, tratamento de risco aceito, fronteiras de confiança que escapam, calibração por ator e encadeamento.
27
+
24
28
  ## Saída e aceite
25
29
 
26
30
  Entregue **threat-register** na resposta final (memória ou ledger externo não contam; não escreva no projeto), conciso e com: alvo/revisão; mudanças ou achados por item, com arquivo:linha; evidência (comando e saída resumida) rotulada como observado, inferido ou simulado; conflitos e decisões pendentes; descartados (controles corretos verificados, credenciais fictícias e falsos positivos) com motivo; não verificado; próximo responsável.
@@ -0,0 +1,15 @@
1
+ # ciclo da ameaça
2
+
3
+ Leia ao fechar o registro, para que cada ameaça vire item verificável e nenhuma suma.
4
+
5
+ Cada risco tem estado explícito: aberto, mitigado, aceito ou transferido. Risco mitigado só fecha quando a verificação observável do controle existe e foi conferida ou está marcada como pendente com quem confere. Modelo que lista ameaças sem controle, responsável e verificação é prosa, não registro.
6
+
7
+ Ameaça aceita não some: registre quem aceitou, a justificativa, o impacto residual e a data de revisão. Sem isso, a aceitação vira esquecimento e reaparece como surpresa na próxima mudança. Risco transferido (para provedor, seguro, outro time) nomeia o destino e o que continua sob seu controle.
8
+
9
+ Fronteira de confiança costuma ficar invisível onde a mudança de confiança é implícita. Varra as que mais escapam: serviços de times ou repositórios diferentes; limite entre contêiner e host, entre pods e entre namespaces; segmentos de rede (VPC, subnet, security group); contas ou assinaturas de nuvem distintas; a cadeia de CI/CD (origem, build, registro, deploy); e a borda entre seu código e SDK, biblioteca ou interpretador embarcado de terceiro. Cada cruzamento é um ponto onde autenticação, autorização e validação precisam valer.
10
+
11
+ Calibre probabilidade pela capacidade e motivação do ator, não por sensação: não iguale um script kiddie com exploit público a um ator com zero-day e orçamento ilimitado. Se faltam fatos para situar o ator, marque o risco como hipótese.
12
+
13
+ Modele também o encadeamento, não só a ameaça por elemento: descreva como um defeito de baixo impacto vira degrau para o próximo até o efeito que importa. STRIDE é a lente por elemento; o caminho encadeado mostra o alcance real.
14
+
15
+ Mapeamento a TTP de ATT&CK é opcional e serve para correlação com inteligência; use quando o dono acompanha ATT&CK, sem transformar o registro em preenchimento de identificadores.