Asset Librarian
Transforma o contexto visual do repositorio em inventario reutilizavel. O objetivo concreto: antes que skill 17 (image) gere um asset novo ou skill 04 (frontend) escolha uma cor, esta skill ja mapeou o que existe — para o novo nao destoar e o velho nao ser duplicado.
Governanca Global
Esta skill segue GLOBAL.md, policies/execution.md, policies/persistence.md, policies/token-efficiency.md, policies/handoffs.md, policies/verification-before-completion.md e policies/evals.md.
Quando Usar
- mapear imagens, icones, logos, fontes e tokens visuais existentes (antes de gerar/escolher novos)
- preparar base para Image Generator (17), UI/UX (02) ou Frontend (04)
- identificar incoerencias (3 azuis levemente diferentes) ou duplicacoes (mesmo logo em 4 formatos espalhados)
- caçar assets obsoletos/orfaos (peso morto no bundle)
Quando Nao Usar
- gerar asset novo sem necessidade de inventario (vai direto pra skill 17)
- substituir o julgamento de UI/UX sobre o que e "bonito/on-brand"
- auditoria de codigo geral (isso e skill 18-repo-auditor) — aqui o escopo e so visual
Entradas Esperadas
- arvore do repositorio (paths de assets:
public/, assets/, src/assets/, static/)
- design tokens existentes (CSS vars, Tailwind config, theme file)
- acesso aos arquivos para inspecao (dimensao, formato, peso)
Saidas Esperadas
- inventario tabelado, persistido em
docs/repo-audit/assets.md
- resumo de identidade visual (paleta, tipografia, mood) reutilizavel em 1 leitura
- lista de gaps, conflitos e obsoletos com acao sugerida
Persistencia
Persistir em docs/repo-audit/assets.md. Complementa current.md (skill 18) — um e codigo/stack, o outro e visual. Reutilizar antes de reinventariar (cache).
Como descobrir os assets (comandos)
# imagens e graficos por formato + tamanho
find . -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \
-o -iname "*.svg" -o -iname "*.webp" -o -iname "*.avif" -o -iname "*.gif" \
-o -iname "*.ico" \) -not -path "*/node_modules/*" -exec ls -lh {} \;
# fontes
find . -type f \( -iname "*.woff2" -o -iname "*.woff" -o -iname "*.ttf" -o -iname "*.otf" \) -not -path "*/node_modules/*"
# tokens: cores e fontes declaradas
grep -rEo "#[0-9a-fA-F]{3,8}|rgb\(|hsl\(" src/ | sort | uniq -c | sort -rn # paleta real em uso
# Tailwind: ler tailwind.config.* (theme.colors, fontFamily)
# CSS vars: grep "--" nos arquivos de tema
Formato do inventario (docs/repo-audit/assets.md)
# Asset Inventory — <projeto>
> Gerado por skill 19 em <data>. Reutilizar antes de regerar.
## Identidade visual (resumo)
- Paleta primaria: #0F766E (teal), #1D4ED8 (blue), #F59E0B (amber)
- Tipografia: Inter (sans, UI), JetBrains Mono (code)
- Mood: tecnico, limpo, alto contraste
## Logos & marcas
| Asset | Path | Formato | Dimensao | Uso | Nota |
|---|---|---|---|---|---|
| Logo principal | public/logo.svg | SVG | vetor | header, OG | fonte de verdade |
| Logo PNG | src/assets/logo@2x.png | PNG | 512x512 | favicon-src | derivar do SVG |
## Icones & favicons
| ... | ... |
## Ilustracoes / backgrounds / mascotes
| ... |
## Fontes & tokens
| Token | Valor | Onde |
|---|---|---|
| --color-primary | #0F766E | theme.css |
## Gaps / conflitos / obsoletos
- CONFLITO: 3 tons de teal (#0F766E, #0D9488, #14B8A6) — consolidar em 1
- DUPLICADO: logo em 4 paths diferentes — single source + derivar
- OBSOLETO: hero-old.jpg (1.2MB) sem referencia no codigo — remover
- GAP: sem favicon maskable para PWA → handoff skill 36
Checks de consistencia (o valor real)
- Paleta divergente — cores quase-iguais (#0F766E vs #0D9488) sao quase sempre acidente. Consolidar.
- Logo duplicado — mesmo logo em N formatos/paths sem single-source → escolher a fonte de verdade (SVG) e derivar o resto.
- Peso morto — asset sem referencia no codigo (
grep o nome do arquivo no src). Candidato a remover — mas checkpoint antes de apagar: grep pelo nome sem extensao tambem (referencia dinamica tipo `/images/${slug}.png`) e pelo path relativo em configs/CSS. Se o segundo grep achar uso, nao e peso morto — e falso positivo do primeiro grep. So remover apos os dois greps confirmarem zero referencia.
- Formato errado pra finalidade — JPG onde devia ser SVG (logo), PNG gigante sem WebP/AVIF.
- Fonte nao otimizada — TTF/OTF servido direto (devia ser WOFF2), sem
font-display: swap.
- Gaps de plataforma — falta favicon multi-size, apple-touch-icon, OG image, maskable PWA → handoff skill 36.
Anti-padroes frequentes
- gerar asset novo (skill 17) sem checar se ja existe um equivalente → biblioteca incha e diverge
- inventario que so lista arquivos sem o resumo de identidade (paleta/tipografia/mood) → ninguem reusa
- ignorar
node_modules/.next/dist no scan → ruido de assets de terceiros
- nao registrar a fonte-de-verdade do logo → cada um pega um arquivo diferente
Evidencia de Conclusao
docs/repo-audit/assets.md criado/atualizado com tabelas preenchidas
- resumo de identidade visual (paleta + tipografia + mood) em 1 leitura
- gaps, conflitos e obsoletos listados com acao sugerida (consolidar/remover/gerar)
Handoff
- Image Generator (17) usa a paleta/mood pra gerar on-brand
- Web Asset Generator (36) preenche gaps de favicon/OG/PWA
- UI/UX (02) decide a consolidacao de tokens divergentes
- Frontend (04) aplica os tokens consolidados e remove peso morto
- Seguir
policies/handoffs.md e, quando util, templates/asset-inventory.md
1---2name: asset-librarian3description: Skill para inventariar e organizar imagens, icones, logos, fontes, tokens visuais e referencias graficas do projeto. Use quando precisar mapear assets existentes, evitar inconsistencias visuais e apoiar UI/UX, Frontend e Image Generator. Trigger em: "asset librarian", "inventariar assets", "inventario de assets", "mapear assets", "organizar assets", "design tokens", "biblioteca de assets", "auditar assets visuais", "catalogar logos", "incoerencia visual".4---56# Asset Librarian78Transforma o contexto visual do repositorio em inventario reutilizavel. O objetivo concreto: antes que skill 17 (image) gere um asset novo ou skill 04 (frontend) escolha uma cor, esta skill ja mapeou o que existe — para o novo nao destoar e o velho nao ser duplicado.910## Governanca Global1112Esta skill segue `GLOBAL.md`, `policies/execution.md`, `policies/persistence.md`, `policies/token-efficiency.md`, `policies/handoffs.md`, `policies/verification-before-completion.md` e `policies/evals.md`.1314## Quando Usar1516- mapear imagens, icones, logos, fontes e tokens visuais existentes (antes de gerar/escolher novos)17- preparar base para Image Generator (17), UI/UX (02) ou Frontend (04)18- identificar incoerencias (3 azuis levemente diferentes) ou duplicacoes (mesmo logo em 4 formatos espalhados)19- caçar assets obsoletos/orfaos (peso morto no bundle)2021## Quando Nao Usar2223- gerar asset novo sem necessidade de inventario (vai direto pra skill 17)24- substituir o julgamento de UI/UX sobre o que e "bonito/on-brand"25- auditoria de codigo geral (isso e skill 18-repo-auditor) — aqui o escopo e so visual2627## Entradas Esperadas2829- arvore do repositorio (paths de assets: `public/`, `assets/`, `src/assets/`, `static/`)30- design tokens existentes (CSS vars, Tailwind config, theme file)31- acesso aos arquivos para inspecao (dimensao, formato, peso)3233## Saidas Esperadas3435- inventario tabelado, persistido em `docs/repo-audit/assets.md`36- resumo de identidade visual (paleta, tipografia, mood) reutilizavel em 1 leitura37- lista de gaps, conflitos e obsoletos com acao sugerida3839## Persistencia4041Persistir em `docs/repo-audit/assets.md`. Complementa `current.md` (skill 18) — um e codigo/stack, o outro e visual. Reutilizar antes de reinventariar (cache).4243## Como descobrir os assets (comandos)4445```bash46# imagens e graficos por formato + tamanho47find . -type f \( -iname "*.png" -o -iname "*.jpg" -o -iname "*.jpeg" \48 -o -iname "*.svg" -o -iname "*.webp" -o -iname "*.avif" -o -iname "*.gif" \49 -o -iname "*.ico" \) -not -path "*/node_modules/*" -exec ls -lh {} \;5051# fontes52find . -type f \( -iname "*.woff2" -o -iname "*.woff" -o -iname "*.ttf" -o -iname "*.otf" \) -not -path "*/node_modules/*"5354# tokens: cores e fontes declaradas55grep -rEo "#[0-9a-fA-F]{3,8}|rgb\(|hsl\(" src/ | sort | uniq -c | sort -rn # paleta real em uso56# Tailwind: ler tailwind.config.* (theme.colors, fontFamily)57# CSS vars: grep "--" nos arquivos de tema58```5960## Formato do inventario (`docs/repo-audit/assets.md`)6162```markdown63# Asset Inventory — <projeto>64> Gerado por skill 19 em <data>. Reutilizar antes de regerar.6566## Identidade visual (resumo)67- Paleta primaria: #0F766E (teal), #1D4ED8 (blue), #F59E0B (amber)68- Tipografia: Inter (sans, UI), JetBrains Mono (code)69- Mood: tecnico, limpo, alto contraste7071## Logos & marcas72| Asset | Path | Formato | Dimensao | Uso | Nota |73|---|---|---|---|---|---|74| Logo principal | public/logo.svg | SVG | vetor | header, OG | fonte de verdade |75| Logo PNG | src/assets/logo@2x.png | PNG | 512x512 | favicon-src | derivar do SVG |7677## Icones & favicons78| ... | ... |7980## Ilustracoes / backgrounds / mascotes81| ... |8283## Fontes & tokens84| Token | Valor | Onde |85|---|---|---|86| --color-primary | #0F766E | theme.css |8788## Gaps / conflitos / obsoletos89- CONFLITO: 3 tons de teal (#0F766E, #0D9488, #14B8A6) — consolidar em 190- DUPLICADO: logo em 4 paths diferentes — single source + derivar91- OBSOLETO: hero-old.jpg (1.2MB) sem referencia no codigo — remover92- GAP: sem favicon maskable para PWA → handoff skill 3693```9495## Checks de consistencia (o valor real)96971. **Paleta divergente** — cores quase-iguais (#0F766E vs #0D9488) sao quase sempre acidente. Consolidar.982. **Logo duplicado** — mesmo logo em N formatos/paths sem single-source → escolher a fonte de verdade (SVG) e derivar o resto.993. **Peso morto** — asset sem referencia no codigo (`grep` o nome do arquivo no src). Candidato a remover — mas **checkpoint antes de apagar**: grep pelo nome sem extensao tambem (referencia dinamica tipo `` `/images/${slug}.png` ``) e pelo path relativo em configs/CSS. Se o segundo grep achar uso, nao e peso morto — e falso positivo do primeiro grep. So remover apos os dois greps confirmarem zero referencia.1004. **Formato errado pra finalidade** — JPG onde devia ser SVG (logo), PNG gigante sem WebP/AVIF.1015. **Fonte nao otimizada** — TTF/OTF servido direto (devia ser WOFF2), sem `font-display: swap`.1026. **Gaps de plataforma** — falta favicon multi-size, apple-touch-icon, OG image, maskable PWA → handoff skill 36.103104## Anti-padroes frequentes105106- gerar asset novo (skill 17) sem checar se ja existe um equivalente → biblioteca incha e diverge107- inventario que so lista arquivos sem o resumo de identidade (paleta/tipografia/mood) → ninguem reusa108- ignorar `node_modules`/`.next`/`dist` no scan → ruido de assets de terceiros109- nao registrar a fonte-de-verdade do logo → cada um pega um arquivo diferente110111## Evidencia de Conclusao112113- `docs/repo-audit/assets.md` criado/atualizado com tabelas preenchidas114- resumo de identidade visual (paleta + tipografia + mood) em 1 leitura115- gaps, conflitos e obsoletos listados com acao sugerida (consolidar/remover/gerar)116117## Handoff118119- **Image Generator (17)** usa a paleta/mood pra gerar on-brand120- **Web Asset Generator (36)** preenche gaps de favicon/OG/PWA121- **UI/UX (02)** decide a consolidacao de tokens divergentes122- **Frontend (04)** aplica os tokens consolidados e remove peso morto123- Seguir `policies/handoffs.md` e, quando util, `templates/asset-inventory.md`