@andespindola/crow-skills 0.24.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.
- package/LICENSE +32 -4
- package/THIRD-PARTY-NOTICES.md +43 -0
- package/catalog.json +147 -37
- package/crow_skills/__init__.py +1 -1
- package/crow_skills/autoupdate.py +6 -1
- package/crow_skills/cli.py +15 -2
- package/docs/cli.md +2 -0
- package/package.json +2 -1
- package/release.json +195 -50
- package/skills/crow-accessibility/SKILL.md +7 -5
- package/skills/crow-accessibility/references/verificacao.md +102 -0
- package/skills/crow-agent-security/SKILL.md +8 -4
- package/skills/crow-agent-security/references/limites-agente.md +17 -0
- package/skills/crow-api-test/SKILL.md +2 -0
- package/skills/crow-api-test/references/casos-negativos.md +16 -0
- package/skills/crow-architecture/SKILL.md +2 -0
- package/skills/crow-architecture/references/modulos-profundos.md +18 -0
- package/skills/crow-backend/SKILL.md +3 -1
- package/skills/crow-backend/references/servico-backend.md +13 -0
- package/skills/crow-be-human/SKILL.md +2 -1
- package/skills/crow-be-human/references/voz-e-registro.md +35 -0
- package/skills/crow-behaviour/SKILL.md +7 -0
- package/skills/crow-behaviour/references/briefing-executavel.md +65 -0
- package/skills/crow-behaviour/references/ciclo-de-revisao.md +104 -0
- package/skills/crow-behaviour/references/progress-ledger.md +3 -1
- package/skills/crow-browser/SKILL.md +6 -3
- package/skills/crow-browser/references/mecanismo-de-browser.md +24 -0
- package/skills/crow-browser/references/pagina.md +43 -0
- package/skills/crow-debug/SKILL.md +1 -1
- package/skills/crow-design/SKILL.md +6 -6
- package/skills/crow-design/references/contrato.md +84 -0
- package/skills/crow-discovery/SKILL.md +5 -4
- package/skills/crow-discovery/references/pesquisa-sem-vies.md +33 -0
- package/skills/crow-documents/SKILL.md +9 -3
- package/skills/crow-documents/references/ooxml.md +43 -0
- package/skills/crow-documents/references/pdf.md +31 -0
- package/skills/crow-documents/references/planilha.md +35 -0
- package/skills/crow-domain/SKILL.md +2 -0
- package/skills/crow-domain/references/invariante-e-identidade.md +11 -0
- package/skills/crow-frontend/SKILL.md +6 -5
- package/skills/crow-growth/SKILL.md +2 -1
- package/skills/crow-growth/references/experimento-e-metrica.md +39 -0
- package/skills/crow-infra/SKILL.md +6 -5
- package/skills/crow-infra/references/kubernetes.md +6 -0
- package/skills/crow-interface/SKILL.md +1 -1
- package/skills/crow-interface/reference/adapt.md +8 -0
- package/skills/crow-interface/reference/layout.md +4 -1
- package/skills/crow-interface/reference/workflow.md +2 -0
- package/skills/crow-media/SKILL.md +5 -5
- package/skills/crow-media/references/producao.md +63 -0
- package/skills/crow-native-mobile/SKILL.md +1 -1
- package/skills/crow-observe/SKILL.md +8 -4
- package/skills/crow-observe/references/cardinalidade.md +11 -0
- package/skills/crow-performance/SKILL.md +5 -5
- package/skills/crow-performance/references/measurement.md +6 -0
- package/skills/crow-platform/SKILL.md +4 -4
- package/skills/crow-postgres/SKILL.md +3 -0
- package/skills/crow-postgres/references/migracao-online.md +17 -0
- package/skills/crow-product-leadership/SKILL.md +4 -3
- package/skills/crow-product-leadership/references/decisao-e-pessoas.md +35 -0
- package/skills/crow-qa/SKILL.md +1 -1
- package/skills/crow-release/SKILL.md +10 -5
- package/skills/crow-release/references/transicao.md +13 -0
- package/skills/crow-reverse/SKILL.md +1 -1
- package/skills/crow-secrets/SKILL.md +2 -2
- package/skills/crow-security-review/SKILL.md +12 -5
- package/skills/crow-security-scan/SKILL.md +8 -3
- package/skills/crow-security-scan/references/evidencia-scan.md +17 -0
- package/skills/crow-security-test/SKILL.md +5 -1
- package/skills/crow-security-test/references/prova-dinamica.md +24 -0
- package/skills/crow-seo/SKILL.md +6 -4
- package/skills/crow-seo/references/saida-tecnica.md +78 -0
- package/skills/crow-skill-author/SKILL.md +10 -6
- package/skills/crow-skill-author/references/medicao.md +85 -0
- package/skills/crow-spec/SKILL.md +4 -3
- package/skills/crow-spec/references/criterio-e-fatia.md +27 -0
- package/skills/crow-threat-model/SKILL.md +5 -1
- package/skills/crow-threat-model/references/ciclo-ameaca.md +15 -0
package/LICENSE
CHANGED
|
@@ -4,6 +4,30 @@ Software proprietário. Este pacote é distribuído publicamente para uso, não
|
|
|
4
4
|
cópia. O código-fonte não é aberto: a sua presença no pacote é uma necessidade de
|
|
5
5
|
execução, não uma concessão de direitos sobre ele.
|
|
6
6
|
|
|
7
|
+
## Componentes de terceiros
|
|
8
|
+
|
|
9
|
+
Este pacote inclui software de terceiros sob licenças próprias. Todo ele está dentro de
|
|
10
|
+
`skills/crow-interface/`:
|
|
11
|
+
|
|
12
|
+
1. **Impeccable**, Copyright 2025 Paul Bakaus — Apache License 2.0, em
|
|
13
|
+
`skills/crow-interface/licenses/Apache-2.0.txt`, com o aviso original preservado em
|
|
14
|
+
`skills/crow-interface/licenses/Impeccable-NOTICE.md`. A proveniência e as
|
|
15
|
+
modificações estão em `skills/crow-interface/NOTICE.md`.
|
|
16
|
+
2. **platform-design-skills** — MIT, em
|
|
17
|
+
`skills/crow-interface/licenses/platform-design-MIT.txt`.
|
|
18
|
+
3. **modern-screenshot**, Copyright (c) 2021-present wxm — MIT, em
|
|
19
|
+
`skills/crow-interface/licenses/modern-screenshot-MIT.txt`.
|
|
20
|
+
|
|
21
|
+
Para esses componentes e para as obras deles derivadas, **a licença de terceiros
|
|
22
|
+
prevalece sobre esta**. Nada nesta licença restringe, condiciona ou revoga os direitos
|
|
23
|
+
que a Apache-2.0 e a MIT concedem a você sobre esses arquivos, inclusive os de
|
|
24
|
+
redistribuir, modificar e criar obra derivada, observadas as obrigações de atribuição e
|
|
25
|
+
de aviso dessas mesmas licenças. As restrições de "O que você não pode fazer" abaixo
|
|
26
|
+
alcançam somente o conteúdo próprio do Crow.
|
|
27
|
+
|
|
28
|
+
Quando um arquivo trouxer aviso de licença próprio, é esse aviso que governa aquele
|
|
29
|
+
arquivo. O inventário consolidado está em `THIRD-PARTY-NOTICES.md`.
|
|
30
|
+
|
|
7
31
|
## O que você pode fazer
|
|
8
32
|
|
|
9
33
|
1. Instalar e executar o `crow-skills` nos seus próprios computadores, sem limite de
|
|
@@ -45,7 +69,11 @@ Qualquer uso fora do permitido acima depende de autorização escrita do titular
|
|
|
45
69
|
|
|
46
70
|
---
|
|
47
71
|
|
|
48
|
-
Proprietary software, all rights reserved
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
72
|
+
Proprietary software, all rights reserved, EXCEPT for the third-party components
|
|
73
|
+
bundled under `skills/crow-interface/` (Impeccable, Apache-2.0; platform-design-skills
|
|
74
|
+
and modern-screenshot, MIT), for which the third-party licence prevails over this one:
|
|
75
|
+
nothing here restricts the rights those licences grant you over those files. See
|
|
76
|
+
`THIRD-PARTY-NOTICES.md`. For Crow's own content, publication is for use, not for
|
|
77
|
+
copying: installing and running it is permitted; redistribution, derivative works,
|
|
78
|
+
extracting its content into another product or dataset, and reverse engineering are
|
|
79
|
+
not. No warranty. See the Portuguese text above for the governing terms.
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# Avisos de terceiros
|
|
2
|
+
|
|
3
|
+
Inventário do software de terceiros distribuído dentro deste pacote. Para cada item, a
|
|
4
|
+
licença indicada **prevalece** sobre o `LICENSE` da raiz, conforme a seção "Componentes
|
|
5
|
+
de terceiros" dele.
|
|
6
|
+
|
|
7
|
+
Todo o conteúdo de terceiros está sob `skills/crow-interface/`. As demais 34 skills e o
|
|
8
|
+
CLI são conteúdo próprio do Crow.
|
|
9
|
+
|
|
10
|
+
## Impeccable — Apache License 2.0
|
|
11
|
+
|
|
12
|
+
- Titular: Copyright 2025 Paul Bakaus
|
|
13
|
+
- Upstream: https://github.com/pbakaus/impeccable
|
|
14
|
+
- Licença: `skills/crow-interface/licenses/Apache-2.0.txt`
|
|
15
|
+
- Aviso original preservado: `skills/crow-interface/licenses/Impeccable-NOTICE.md`
|
|
16
|
+
- Proveniência, snapshot e modificações Crow: `skills/crow-interface/NOTICE.md`
|
|
17
|
+
- Escopo: a skill `crow-interface` é reconstrução derivada da Impeccable. Arquivos
|
|
18
|
+
derivados trazem cabeçalho "Derived from Impeccable".
|
|
19
|
+
|
|
20
|
+
## platform-design-skills — MIT
|
|
21
|
+
|
|
22
|
+
- Licença: `skills/crow-interface/licenses/platform-design-MIT.txt`. O arquivo MIT
|
|
23
|
+
distribuído traz "Copyright (c) 2026" sem titular nomeado; a atribuição a
|
|
24
|
+
ehmo/platform-design-skills vem do NOTICE upstream, conforme registrado em
|
|
25
|
+
`skills/crow-interface/NOTICE.md`.
|
|
26
|
+
- Escopo, segundo esse mesmo NOTICE: `skills/crow-interface/reference/ios.md` e
|
|
27
|
+
`skills/crow-interface/reference/android.md`.
|
|
28
|
+
|
|
29
|
+
## modern-screenshot — MIT
|
|
30
|
+
|
|
31
|
+
- Titular: Copyright (c) 2021-present wxm (projeto qq15725/modern-screenshot)
|
|
32
|
+
- Licença: `skills/crow-interface/licenses/modern-screenshot-MIT.txt`
|
|
33
|
+
- Escopo: `skills/crow-interface/scripts/modern-screenshot.umd.js`, bundle distribuído
|
|
34
|
+
sem modificação
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
# Third-party notices
|
|
39
|
+
|
|
40
|
+
Inventory of third-party software redistributed inside this package. For each item, the
|
|
41
|
+
stated licence **prevails** over the root `LICENSE`, per its "Componentes de terceiros"
|
|
42
|
+
section. All third-party content lives under `skills/crow-interface/`; the other 34
|
|
43
|
+
skills and the CLI are Crow's own content.
|
package/catalog.json
CHANGED
|
@@ -4,33 +4,133 @@
|
|
|
4
4
|
"overlays": [
|
|
5
5
|
{
|
|
6
6
|
"skill": "crow-behaviour",
|
|
7
|
-
"roles": [
|
|
7
|
+
"roles": [
|
|
8
|
+
"coordinator",
|
|
9
|
+
"specialist",
|
|
10
|
+
"reviewer"
|
|
11
|
+
]
|
|
8
12
|
}
|
|
9
13
|
]
|
|
10
14
|
},
|
|
11
15
|
"groups": [
|
|
12
|
-
{
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
16
|
+
{
|
|
17
|
+
"name": "essencial",
|
|
18
|
+
"title": "Essencial",
|
|
19
|
+
"description": "Coordenação e o que serve a quase todo projeto: arquitetura, especificação, depuração, testes e revisão de segurança",
|
|
20
|
+
"skills": [
|
|
21
|
+
"crow-behaviour",
|
|
22
|
+
"crow-architecture",
|
|
23
|
+
"crow-spec",
|
|
24
|
+
"crow-debug",
|
|
25
|
+
"crow-qa",
|
|
26
|
+
"crow-security-review"
|
|
27
|
+
]
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"name": "web",
|
|
31
|
+
"title": "Web",
|
|
32
|
+
"description": "Interfaces web: direção visual, implementação, acessibilidade, navegador e SEO",
|
|
33
|
+
"skills": [
|
|
34
|
+
"crow-frontend",
|
|
35
|
+
"crow-interface",
|
|
36
|
+
"crow-design",
|
|
37
|
+
"crow-accessibility",
|
|
38
|
+
"crow-browser",
|
|
39
|
+
"crow-seo"
|
|
40
|
+
]
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"name": "backend",
|
|
44
|
+
"title": "Backend",
|
|
45
|
+
"description": "Serviços, APIs, dados e domínio",
|
|
46
|
+
"skills": [
|
|
47
|
+
"crow-backend",
|
|
48
|
+
"crow-api-test",
|
|
49
|
+
"crow-postgres",
|
|
50
|
+
"crow-domain",
|
|
51
|
+
"crow-architecture"
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"name": "qualidade",
|
|
56
|
+
"title": "Qualidade",
|
|
57
|
+
"description": "Testes, defeitos, desempenho e observabilidade",
|
|
58
|
+
"skills": [
|
|
59
|
+
"crow-qa",
|
|
60
|
+
"crow-debug",
|
|
61
|
+
"crow-performance",
|
|
62
|
+
"crow-observe"
|
|
63
|
+
]
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"name": "seguranca",
|
|
67
|
+
"title": "Segurança",
|
|
68
|
+
"description": "Revisão, varredura, prova, modelagem de ameaças, credenciais e apps com LLM",
|
|
69
|
+
"skills": [
|
|
70
|
+
"crow-security-review",
|
|
71
|
+
"crow-security-scan",
|
|
72
|
+
"crow-security-test",
|
|
73
|
+
"crow-threat-model",
|
|
74
|
+
"crow-secrets",
|
|
75
|
+
"crow-agent-security"
|
|
76
|
+
]
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"name": "infra",
|
|
80
|
+
"title": "Infra e entrega",
|
|
81
|
+
"description": "Infraestrutura, release e coordenação de plataforma",
|
|
82
|
+
"skills": [
|
|
83
|
+
"crow-infra",
|
|
84
|
+
"crow-release",
|
|
85
|
+
"crow-platform"
|
|
86
|
+
]
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"name": "mobile",
|
|
90
|
+
"title": "Mobile",
|
|
91
|
+
"description": "Apps nativos e mobile",
|
|
92
|
+
"skills": [
|
|
93
|
+
"crow-native-mobile"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"name": "produto",
|
|
98
|
+
"title": "Produto",
|
|
99
|
+
"description": "Descoberta, especificação, crescimento, liderança e coordenação de plataforma",
|
|
100
|
+
"skills": [
|
|
101
|
+
"crow-discovery",
|
|
102
|
+
"crow-spec",
|
|
103
|
+
"crow-growth",
|
|
104
|
+
"crow-product-leadership",
|
|
105
|
+
"crow-platform"
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "midia-docs",
|
|
110
|
+
"title": "Mídia e documentos",
|
|
111
|
+
"description": "Mídia, documentos, planilhas, apresentações e experiência de conversa",
|
|
112
|
+
"skills": [
|
|
113
|
+
"crow-media",
|
|
114
|
+
"crow-documents",
|
|
115
|
+
"crow-be-human"
|
|
116
|
+
]
|
|
117
|
+
},
|
|
118
|
+
{
|
|
119
|
+
"name": "reverse",
|
|
120
|
+
"title": "Engenharia reversa",
|
|
121
|
+
"description": "Análise de código, binário ou protocolo",
|
|
122
|
+
"skills": [
|
|
123
|
+
"crow-reverse"
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
"name": "autoria",
|
|
128
|
+
"title": "Autoria de skills",
|
|
129
|
+
"description": "Criar ou revisar skills",
|
|
130
|
+
"skills": [
|
|
131
|
+
"crow-skill-author"
|
|
132
|
+
]
|
|
133
|
+
}
|
|
34
134
|
],
|
|
35
135
|
"skills": [
|
|
36
136
|
{
|
|
@@ -44,7 +144,7 @@
|
|
|
44
144
|
{
|
|
45
145
|
"name": "crow-platform",
|
|
46
146
|
"title": "Entrega de plataforma",
|
|
47
|
-
"description": "Coordene uma plataforma ou iniciativa que atravessa produto, design, engenharia e operação. Não use para um bug ou ajuste isolado.",
|
|
147
|
+
"description": "Coordene uma plataforma ou iniciativa que atravessa produto, design, engenharia e operação, mapeando as etapas que faltam e o contrato entre elas. Não use para um bug ou ajuste isolado; a coordenação da execução e a delegação são de crow-behaviour.",
|
|
48
148
|
"role": "coordinator",
|
|
49
149
|
"owns": "delivery-map",
|
|
50
150
|
"next": [
|
|
@@ -57,7 +157,7 @@
|
|
|
57
157
|
{
|
|
58
158
|
"name": "crow-discovery",
|
|
59
159
|
"title": "Problema e decisão de produto",
|
|
60
|
-
"description": "Investigue um problema de produto, segmento e hipótese antes de comprometer uma solução. Não reabra discovery para um bug conhecido.",
|
|
160
|
+
"description": "Investigue um problema de produto, segmento e hipótese antes de comprometer uma solução. Não reabra discovery para um bug conhecido. Especificação, fatia de release e critério de aceite são de crow-spec; preço, canal e retenção são de crow-growth.",
|
|
61
161
|
"role": "specialist",
|
|
62
162
|
"owns": "problem-brief",
|
|
63
163
|
"next": [
|
|
@@ -68,7 +168,7 @@
|
|
|
68
168
|
{
|
|
69
169
|
"name": "crow-spec",
|
|
70
170
|
"title": "Escopo e critérios de aceite",
|
|
71
|
-
"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.",
|
|
171
|
+
"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.",
|
|
72
172
|
"role": "specialist",
|
|
73
173
|
"owns": "feature-spec",
|
|
74
174
|
"next": [
|
|
@@ -105,7 +205,7 @@
|
|
|
105
205
|
{
|
|
106
206
|
"name": "crow-design",
|
|
107
207
|
"title": "Direção visual e contrato de UI",
|
|
108
|
-
"description": "
|
|
208
|
+
"description": "Use quando a decisão visual ainda não existe e precisa ser fixada antes de alguém implementar: direção, tokens, hierarquia, estados, vocabulário de interface e regras de adaptação de uma superfície. Entra também quando telas divergiram e falta uma fonte única. Não é para executar, refinar ou criticar interface já construída, que é de crow-interface, nem para integrar dados e comportamento da aplicação, que é de crow-frontend: aqui se decide, lá se constrói.",
|
|
109
209
|
"role": "specialist",
|
|
110
210
|
"owns": "design-contract",
|
|
111
211
|
"next": [
|
|
@@ -176,7 +276,7 @@
|
|
|
176
276
|
{
|
|
177
277
|
"name": "crow-security-scan",
|
|
178
278
|
"title": "Scans e evidência estática",
|
|
179
|
-
"description": "
|
|
279
|
+
"description": "Use para rodar ou analisar scanner (SAST, dependências/SCA, imagem, IaC) e normalizar, deduplicar e comparar o resultado com a baseline. Achado é alegação: entrega candidatos com evidência, não confirma explorabilidade nem faz autofix — isso é de crow-security-review (julga a mudança) e crow-security-test (prova dinâmica). Diferente delas, aqui a saída é evidência de ferramenta sobre o alvo estático.",
|
|
180
280
|
"role": "specialist",
|
|
181
281
|
"owns": "scan-evidence",
|
|
182
282
|
"next": [
|
|
@@ -186,7 +286,7 @@
|
|
|
186
286
|
{
|
|
187
287
|
"name": "crow-agent-security",
|
|
188
288
|
"title": "Limites de agentes e LLMs",
|
|
189
|
-
"description": "Revise apps com LLM, ferramentas, fontes externas e memória
|
|
289
|
+
"description": "Revise apps com LLM, ferramentas, MCP, fontes externas e memória quando um agente age com autoridade real: injeção indireta, autoridade excessiva, vínculo de ação, exfiltração por canal lateral e efeitos inseguros. Diferente de crow-threat-model, que modela o desenho, e de crow-security-review, que revisa a mudança de código: aqui o alvo são as fronteiras do agente em execução. Não contorna controles de terceiros nem roda exploits.",
|
|
190
290
|
"role": "reviewer",
|
|
191
291
|
"owns": "agent-controls",
|
|
192
292
|
"next": [
|
|
@@ -232,7 +332,7 @@
|
|
|
232
332
|
{
|
|
233
333
|
"name": "crow-accessibility",
|
|
234
334
|
"title": "Uso acessível da jornada",
|
|
235
|
-
"description": "
|
|
335
|
+
"description": "Use quando a pergunta é se uma jornada real pode ser usada sem mouse, sem visão e sem memorização: semântica, teclado, foco, leitura assistiva, contraste medido, zoom e reflow, movimento e autenticação acessível. Entra depois de implementada, ou para julgar achado de varredura. Não certifica conformidade de nível por scanner, não substitui a verificação de comportamento de crow-qa e não é refinamento estético, que é de crow-interface.",
|
|
236
336
|
"role": "specialist",
|
|
237
337
|
"owns": "a11y-evidence",
|
|
238
338
|
"next": [
|
|
@@ -303,7 +403,7 @@
|
|
|
303
403
|
{
|
|
304
404
|
"name": "crow-seo",
|
|
305
405
|
"title": "Saída pública e descoberta",
|
|
306
|
-
"description": "
|
|
406
|
+
"description": "Use quando páginas públicas precisam ser encontráveis e a saída que o indexador recebe precisa ser conferida: status, metadado, canonical, robots, sitemap, dados estruturados, links internos, hreflang e renderização. Entra também quando uma rota saiu do índice, aparece sem descrição ou duplica outra. Não promete posição nem tráfego, não otimiza área logada e não é aquisição paga ou experimento de crescimento, que é de crow-growth.",
|
|
307
407
|
"role": "specialist",
|
|
308
408
|
"owns": "seo-change",
|
|
309
409
|
"next": [
|
|
@@ -314,7 +414,7 @@
|
|
|
314
414
|
{
|
|
315
415
|
"name": "crow-media",
|
|
316
416
|
"title": "Artefatos de imagem, áudio e vídeo",
|
|
317
|
-
"description": "
|
|
417
|
+
"description": "Use quando o entregável é um arquivo de imagem, áudio ou vídeo a criar ou editar a partir de brief e assets autorizados, e quando o resultado precisa ser medido antes de ser entregue. Entra também para diagnosticar perda de qualidade, dessincronismo, legenda ausente ou arquivo que não abre no destino. Não exige fornecedor, modelo ou CLI específico, não produz o documento que a mídia ilustra, que é de crow-documents, e não decide a direção visual, que é de crow-design.",
|
|
318
418
|
"role": "specialist",
|
|
319
419
|
"owns": "media-artifact",
|
|
320
420
|
"next": [
|
|
@@ -325,7 +425,7 @@
|
|
|
325
425
|
{
|
|
326
426
|
"name": "crow-documents",
|
|
327
427
|
"title": "Documentos e entregáveis",
|
|
328
|
-
"description": "
|
|
428
|
+
"description": "Use quando o entregável é um arquivo de documento, planilha, apresentação ou HTML a criar ou editar a partir de conteúdo real, e quando o formato final precisa ser conferido antes da entrega. Quando o pedido não nomeia formato de arquivo e a sessão tem ferramenta nativa de documento ou slide, é dela. A mídia que o documento contém é de crow-media, e a direção visual é de crow-design.",
|
|
329
429
|
"role": "specialist",
|
|
330
430
|
"owns": "document-artifact",
|
|
331
431
|
"next": [
|
|
@@ -336,7 +436,7 @@
|
|
|
336
436
|
{
|
|
337
437
|
"name": "crow-skill-author",
|
|
338
438
|
"title": "Manutenção de skills",
|
|
339
|
-
"description": "
|
|
439
|
+
"description": "Use quando o pedido é criar, revisar, corrigir ou preparar para publicação uma skill deste repositório, inclusive quando o sintoma é uma skill que não dispara, dispara fora de hora ou colide com uma irmã. Entra também para julgar a description e o contrato de uma skill existente. Não instala automaticamente pacotes de terceiros e não substitui a especialista do domínio que a skill descreve.",
|
|
340
440
|
"role": "specialist",
|
|
341
441
|
"owns": "skill-package",
|
|
342
442
|
"next": [
|
|
@@ -416,15 +516,25 @@
|
|
|
416
516
|
"description": "Projete, implemente ou avalie a conversa de um agente de IA por chat ou voz, inclusive somente por voz, para que seja natural e contínua. Jornada não visual é de crow-accessibility, conduta do próprio agente é de crow-behaviour. Não substitui identidade do produto, segurança ou implementação de áudio.",
|
|
417
517
|
"role": "specialist",
|
|
418
518
|
"owns": "conversation-experience",
|
|
419
|
-
"next": [
|
|
519
|
+
"next": [
|
|
520
|
+
"crow-media",
|
|
521
|
+
"crow-accessibility",
|
|
522
|
+
"crow-agent-security",
|
|
523
|
+
"crow-qa"
|
|
524
|
+
]
|
|
420
525
|
},
|
|
421
526
|
{
|
|
422
527
|
"name": "crow-interface",
|
|
423
528
|
"title": "Experiência de interface",
|
|
424
|
-
"description": "
|
|
529
|
+
"description": "Use quando há interface web ou nativa para construir, revisar, criticar, auditar, refinar ou explorar em variantes interativas, com brief pronto ou sem brief. Não é para fixar do zero o contrato visual que ainda não existe, que é de crow-design, nem para implementar backend ou integração de dados da aplicação, que é de crow-frontend: crow-design decide, esta constrói e julga o construído.",
|
|
425
530
|
"role": "specialist",
|
|
426
531
|
"owns": "interface-result",
|
|
427
|
-
"next": [
|
|
532
|
+
"next": [
|
|
533
|
+
"crow-design",
|
|
534
|
+
"crow-frontend",
|
|
535
|
+
"crow-accessibility",
|
|
536
|
+
"crow-performance"
|
|
537
|
+
]
|
|
428
538
|
}
|
|
429
539
|
]
|
|
430
540
|
}
|
package/crow_skills/__init__.py
CHANGED
|
@@ -88,7 +88,12 @@ def detect(source_root=None):
|
|
|
88
88
|
prefix = Path(npm.group(1))
|
|
89
89
|
tool = prefix / "bin" / "npm"
|
|
90
90
|
return {"kind": "npm", "root": text, "version": __version__, "launcher": str(prefix / "bin" / "crow-skills"),
|
|
91
|
-
|
|
91
|
+
# --prefer-online: medido em 2026-11-09, o self-upgrade falhou com ETARGET ("No matching
|
|
92
|
+
# version found") logo após a publicação porque o metadado da versão nova estava em
|
|
93
|
+
# cache local, enquanto o registry já servia o dist-tag novo. Sem isso, o upgrade
|
|
94
|
+
# depende de quando o cache do npm expira.
|
|
95
|
+
"upgrade": [str(tool) if tool.exists() else (shutil.which("npm") or "npm"),
|
|
96
|
+
"install", "-g", "--prefer-online", PACKAGE + "@latest"]}
|
|
92
97
|
if (base / ".git").exists():
|
|
93
98
|
return {"kind": "git", "root": text, "version": __version__, "launcher": str(base / "bin" / "crow-skills"),
|
|
94
99
|
"upgrade": None}
|
package/crow_skills/cli.py
CHANGED
|
@@ -993,6 +993,8 @@ SKILL_STATE_WORDS = {
|
|
|
993
993
|
"modificada": "editada no disco",
|
|
994
994
|
"desativada": "instalada, mas desabilitada",
|
|
995
995
|
"ausente": "registrada e não encontrada no disco",
|
|
996
|
+
"via_uniflow": "projetada do seu store do Uniflow (gerenciada em --agents uniflow)",
|
|
997
|
+
"link_externo": "link no store do Uniflow para fora dele",
|
|
996
998
|
"nao_gerenciada": "não gerenciada por este CLI",
|
|
997
999
|
"indeterminada": "não foi possível ler o destino",
|
|
998
1000
|
}
|
|
@@ -1013,7 +1015,16 @@ def skill_state(row, source):
|
|
|
1013
1015
|
return "desativada"
|
|
1014
1016
|
if status == "missing":
|
|
1015
1017
|
return "ausente"
|
|
1016
|
-
if status
|
|
1018
|
+
if status == "uniflow_link":
|
|
1019
|
+
# Projeção SAUDÁVEL do store do Uniflow: é a topologia normal de quem instala em uniflow e
|
|
1020
|
+
# deixa os CLIs lerem de lá, e o resto do CLI já a conta como instalada (group_coverage).
|
|
1021
|
+
# Chamar isso de "não gerenciada" assustava sem motivo — 33 skills em 4 agentes, aqui.
|
|
1022
|
+
# Projeção quebrada, desabilitada ou para pacote não gerenciado não chega como uniflow_link:
|
|
1023
|
+
# unmanaged_projections() a reescreve antes (modified/disabled/unmanaged).
|
|
1024
|
+
return "via_uniflow"
|
|
1025
|
+
if status == "external_link":
|
|
1026
|
+
return "link_externo"
|
|
1027
|
+
if status in ("unmanaged", "absent"):
|
|
1017
1028
|
return "nao_gerenciada"
|
|
1018
1029
|
return "indeterminada" # "unsafe" e qualquer estado novo: nunca contado como em dia
|
|
1019
1030
|
|
|
@@ -1069,7 +1080,9 @@ def skills_command(args, home, store):
|
|
|
1069
1080
|
"""Somente leitura: versão e estado de cada skill instalada, contra a fonte atual."""
|
|
1070
1081
|
source = Source(getattr(args, "source", DEFAULT_SOURCE), getattr(args, "ref", "HEAD"))
|
|
1071
1082
|
targets = scope(args, home, read=True)
|
|
1072
|
-
|
|
1083
|
+
# A mesma correção que status/doctor aplicam: projeção do Uniflow quebrada, desabilitada ou para
|
|
1084
|
+
# pacote não gerenciado não pode passar por projeção saudável.
|
|
1085
|
+
rows = unmanaged_projections(store, home, store.status(targets))
|
|
1073
1086
|
items = {}
|
|
1074
1087
|
for row in rows:
|
|
1075
1088
|
if not row.get("name"):
|
package/docs/cli.md
CHANGED
|
@@ -69,6 +69,8 @@ Nome: `@andespindola/crow-skills`; `publishConfig.access` é `public` desde a 0.
|
|
|
69
69
|
|
|
70
70
|
A publicação é feita pelo workflow `.github/workflows/publish.yml` ao empurrar uma tag `vX.Y.Z` igual à `version` do `package.json` (ou por `workflow_dispatch` em `main`). Ele autentica por Trusted Publishing (OIDC), sem token npm em secret, e roda check, testes e o teste de instalação isolada antes de `npm publish`. O trusted publisher do pacote no npmjs.com deve apontar para `andersonflima/crow-skills` e `publish.yml`.
|
|
71
71
|
|
|
72
|
+
Depois do `npm publish`, o pipeline confirma a versão no próprio registry: consulta `https://registry.npmjs.org/@andespindola%2Fcrow-skills` sem npm e sem credencial e espera a versão do `package.json` aparecer em `.versions` e virar o `dist-tags.latest`, tentando a cada 20 s por até 15 minutos e registrando cada tentativa no log. Isso existe porque o log do `npm publish` sozinho não distingue uma publicação real de um `--dry-run` (que imprime um `+ pacote@versao` praticamente igual) nem de um passo pulado por gate, que deixa o job verde sem ter publicado nada. Propagação de alguns minutos até dezenas de minutos é normal e **não** é falha: passado o teto, o job termina com sucesso e emite um aviso com o comando `curl -s https://registry.npmjs.org/@andespindola%2Fcrow-skills | jq -r '.["dist-tags"].latest'` para conferir depois.
|
|
73
|
+
|
|
72
74
|
Depois de a versão estar publicada e a conta estar autenticada com acesso:
|
|
73
75
|
|
|
74
76
|
```sh
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@andespindola/crow-skills",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.25.0",
|
|
4
4
|
"description": "Versioned, complementary agent skills with a protected multi-agent installer",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"repository": {
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
14
|
"LICENSE",
|
|
15
|
+
"THIRD-PARTY-NOTICES.md",
|
|
15
16
|
"bin/npm-crow-skills.cjs",
|
|
16
17
|
"crow_skills/*.py",
|
|
17
18
|
"catalog.json",
|