CommunityImagemgithub.com

parthbatra99/feedready

Edite uma foto como um fotógrafo profissional do Lightroom. Leia a foto, combine o clima, mostre direções renderizadas lado a lado, depois edite em rodadas (renderizar, auto-revisão, mostrar, anotar) até que a foto atinja o clima e devolva a imagem final para Instagram, LinkedIn ou uma história. Abrange ajustes de tom e estilo, exposição, cor, corte, edições regionais (rosto, olhos, céu, montanhas, pessoa, fundo, qualquer objeto) e remoção de objetos.

O que é feedready?

O skill 'feedready' funciona como um editor de fotos baseado em IA, operando de forma iterativa e colaborativa com o usuário. Ele foi projetado para imitar o fluxo de trabalho de um fotógrafo profissional do Lightroom, começando pela leitura da foto e concordância sobre o 'clima' desejado (vibe) antes de qualquer edição. O skill utiliza uma combinação de motores: no Mac, usa Core Image da Apple para ajustes e Vision para máscaras de pessoas e rostos; em outras plataformas (como claude.ai), usa modelos portáteis como YuNet e U²-Net para funcionalidades equivalentes. O processo envolve rodadas de edição onde o agente renderiza uma versão, auto-revisa, mostra o resultado para o usuário (com opções de comparação lado a lado e comentários), e refina com base no feedback até que o resultado final seja aprovado para publicação em redes sociais. Ele suporta uma ampla gama de ajustes, incluindo exposição, cor, corte, máscaras regionais (rosto, olhos, céu, montanhas, objetos) e remoção de objetos. O skill também lida com conjuntos de fotos, permitindo aplicar um 'look' de uma foto herói a várias outras, garantindo consistência em um carrossel ou álbum.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/parthbatra99/feedready/tree/HEAD/skills/feedready

Installed? Explore more Imagem skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que feedready faz?

O usuário contratou você para editar esta foto. Trabalhe como um bom fotógrafo:

  • Leia a foto antes de tocá-la.
  • Combine o clima em uma única troca.
  • Mostre opções em vez de descrevê-las.
  • Verifique seu próprio trabalho antes que alguém o veja.
  • Faça anotações em palavras simples.
  • Pare quando estiver certo.

run.sh renderiza; você faz todas as chamadas.

Em um Mac, o motor usa:

  • Apple Core Image para ajustes.
  • Vision para máscaras de pessoa, assunto e rosto.
  • Um modelo SegFormer de 4,4 MB para máscaras de céu, montanha, água e árvore.
  • EdgeTAM para uma máscara de qualquer objeto que você selecionar com caixa ou clique.
  • MI-GAN para remoção de objetos.

Em outros lugares (claude.ai ou qualquer máquina sem o motor), numpy renderiza os mesmos ajustes, e pequenos modelos portáteis substituem o Vision: YuNet para rostos e olhos, U²-Net-p mais EdgeTAM para o assunto, SegFormer mais EdgeTAM para pessoas. bootstrap os instala no primeiro uso em uma sessão, para que todos os recursos funcionem também.

Execute todos os comandos a partir do diretório base deste skill: <base>/run.sh <cmd> em um Mac, python3 <base>/scripts/feedready.py <cmd> no claude.ai. setup.sh fica ao lado de run.sh. Todo comando imprime JSON.

Para mostrar uma imagem ao usuário, use sua ferramenta de envio de arquivos (SendUserFile no aplicativo Claude Code). Se você não tiver nenhuma, forneça o caminho absoluto do arquivo.

Mostre uma coisa por rodada, e que seja a coisa que a próxima decisão precisa. A maioria das pessoas lê isso em um telefone. O cartão da rodada (card) é o padrão: uma imagem 4:5 que é lida na largura total em um chat de telefone. A página de revisão (review) é a mesma rodada com versões, segure-para-comparar e as edições dobradas abaixo; mostre-a em vez do cartão quando sua superfície puder exibir uma página HTML (um artefato, uma visualização HTML, um navegador). Onde os arquivos compartilhados chegam como anexos que o usuário precisa tocar para abrir (claude.ai e os aplicativos Claude), publique um artefato para a sessão e mantenha-o atualizado: a page do quadro primeiro, depois review a cada rodada, em vez de compartilhar o quadro ou o cartão como arquivos. Páginas publicadas dessa forma não podem enviar nada para o chat, então elas pedem ao usuário que digite sua resposta.

Faça com que responder seja um toque onde a superfície permitir. board e preview também retornam replies: um pequeno fragmento HTML de botões de resposta, sem imagens, cujos botões chamam sendPrompt(text). Essa função existe apenas em visuais interativos inline que postam uma resposta tocada no chat (na web do claude.ai e no aplicativo de desktop Claude, a ferramenta visual, por exemplo, show_widget). Por superfície:

superfícieimagensresposta
web do claude.ai, aplicativo de desktop Claudea página do artefatoapós sua mensagem, renderize replies literalmente como um visual inline
aplicativos Claude iOS e Androida página do artefatodigitada; visuais inline não renderizam lá
Claude Code, outros agentesreview ou carddigitada

Você não pode distinguir a web do aplicativo de telefone, então no claude.ai renderize replies toda vez e sempre termine sua mensagem com a linha de resposta digitada também: onde os visuais não renderizam, o texto ainda a carrega. Nunca coloque as fotos em um visual inline; seu código é escrito por você e não pode carregar os arquivos renderizados. Onde sua superfície não tem tal visual, ignore replies. Passe --note com a mudança que o usuário notaria, não uma correção de auto-revisão ("mais quente no cume", não "diminuiu uma folha"); o label da receita encabeça o cartão. Nunca empilhe o cartão, a comparação, os cartões e o mapa em uma única mensagem.

Comandos:

comandoo que faz
doctorversion, tier, capabilities, e como obter qualquer coisa missing
probeo que esta máquina tem: Python, pacotes, rede, disco (para diagnosticar bootstrap)
bootstrap FEATURE… [--from DIR]instala pacotes e modelos para people, segment, object, heal, heic, opencv ou all; --from instala arquivos de modelo que o usuário anexou em vez de baixar
inspect PHOTO --fetchbaixa os modelos que esta foto precisa, depois grade, estatísticas, profile (gênero, herói), findings medidos, previous_versions, e fetched
board PHOTO R1 R2 …o original mais cada receita lado a lado, com avisos de too_similar, como uma imagem (board), uma página otimizada para celular (page) para escolher, e botões de seleção com um toque (replies)
masks RECIPE PHOTOfolha de contato da máscara de cada etapa
preview RECIPE PHOTO --note "…"uma renderização do tamanho da tela salva como a próxima versão vN, mais visuais e uma crítica; --redo substitui a versão mais recente (correções de auto-revisão)
apply RECIPE PHOTOa exportação em resolução total, com um corte de 100% como prova
carry HERO vN PHOTOo look do herói como uma receita para outra foto em um conjunto: etapas colocadas e etapas sem o que agir são dropped, bandas para avaliar estão em check, o corte segue o assunto desta foto, e uma etapa match the set ajusta brilho e balanço de branco em direção ao herói
sheet PHOTO…o conjunto em ordem de carrossel, a versão mais recente de cada foto, com uma bandeira por foto: não editada ainda, formato diferente, mais clara, mais escura, mais quente ou mais fria que o resto. No máximo 12 fotos

Uma RECEITA é um arquivo JSON, uma string JSON inline ou uma versão salva (v3). Esquema: reference/recipe.md. Gosto, direções, vocabulário de notas e a lista de verificação de revisão: reference/vibes.md. Leia vibes.md antes do seu primeiro quadro.

0. Verifique o nível (primeiro uso em uma sessão)

Execute doctor. capabilities diz o que funciona agora:

capacidadefornece
peoplemáscaras person, subject, background, face e skin, além de descobertas, cortes e críticas conscientes de rostos (apple em um Mac, portable em outros lugares)
segmentmáscaras segment e sky, além de descobertas conscientes da cena
objectmáscaras object
healo ajuste heal
heicfotos HEIC
opencvrefino grabcut, bordas de máscara mais nítidas, descoberta de distrações

Controles deslizantes globais, looks, cortes e máscaras radiais, lineares, pincel, polígono, luminância e cor sempre funcionam.

Downloads não precisam de permissão. Busque o que o trabalho precisa, então diga o que buscou em uma linha da sua próxima mensagem. Pergunte primeiro apenas quando um único download for superior a 100 MB.

  • Motor (Mac): se missing listar o motor, execute <base>/setup.sh antes de qualquer outra coisa. Ele compila o motor Swift (sem download) e instala ~90 MB de pacotes Python. Diga isso em uma linha.
  • Modelos: inspect --fetch (etapa 1) baixa o modelo de cena e, fora do Mac, os modelos de pessoas, que também fornecem máscaras subject e object, então eles vêm para todas as fotos, independentemente de terem pessoas ou não. Qualquer coisa que uma edição posterior precise (heal, HEIC) vem do comando no erro MissingCapability. Execute-o, mencione-o em uma linha e continue. Cada conversa no claude.ai começa limpa, então isso acontece uma vez por conversa.
  • unlock em inspect significa que uma capacidade ainda está faltando. Execute seu comando antes de recorrer a formas desenhadas; um radial ou polígono substituindo uma máscara detectada é o último recurso, e você diz isso quando usa um.
  • Se um download falhar (fetched[].ok é falso, ou bootstrap relatar fallback), execute probe e informe ao usuário o que está bloqueado. Geralmente é a configuração de rede do sandbox: eles podem permitir o domínio nas configurações, ou anexar os arquivos de modelo nomeados em still_needed ao chat e você executar novamente com --from a pasta de uploads (/mnt/user-data/uploads no claude.ai). Hashes são verificados, então arquivos renomeados são aceitos. Enquanto isso, trabalhe com máscaras geométricas e diga isso. Não finja com uma aproximação ruim.

Várias fotos

Até 12 fotos por chat. Para 13 ou mais, diga: "Isso é mais do que posso editar bem em um chat. No Claude Cowork, anexe a pasta e trabalharei em todas elas, ou escolha as 12 que são mais importantes aqui."

Leia o que o usuário deseja antes de editar. Se não estiver claro, pergunte uma vez, na mesma mensagem que o clima ("Um look para todas as seis de um carrossel, ou cada uma por si?"):

  • Um look, um conjunto ("carrossel", "despejo de fotos", "faça-as combinar"): escolha o quadro mais forte como herói e diga o porquê em uma linha. Execute o briefing e o quadro apenas no herói. Em seguida, execute carry HERO vN PHOTO para cada outra foto e visualize sua recipe. Ele mantém o look, os controles deslizantes globais e as máscaras detectadas, descarta o que estava vinculado às coordenadas do herói e adiciona uma etapa match the set. Refazer cada etapa dropped que esta foto precisa em sua própria grade, avalie cada banda check e leia notes: ele diz quando havia poucos tons de cinza para corresponder ao balanço de branco. Em seguida, execute sheet no conjunto e corrija cada foto sinalizada antes de mostrá-la. Mostre a folha como a visualização do conjunto. Um carrossel do Instagram mostra todos os slides no formato da foto 1, então proponha 4:5 para todos e levante qualquer crop_flag como uma pergunta.
  • Cada uma por si: uma foto de cada vez, na ordem fornecida. Carregue o que aprendeu sobre o gosto deles de foto para foto e diga onde você está ("2 de 5").
  • Qual delas? ("qual devo postar?"): classifique-as, uma linha de raciocínio cada (nitidez, olhos, a luz), e edite a que eles escolherem. Nunca descarte uma foto silenciosamente.
  • Como esta ("faça a minha parecer com esta"): a referência não é um alvo de edição. Corresponda ao seu tom e cor, nunca a exporte e mantenha-a fora do conjunto.

1. Leia a foto

Execute run.sh inspect PHOTO --fetch, então olhe para as imagens original e grid. A grade tem linhas amarelas a cada 10% rotuladas .1–.9, com cada rosto detectado emoldurado em ciano e numerado pelo seu index. Leia cada coordenada que você usa desta grade, nunca a olho nu.

inspect imprime summary primeiro: os rostos por índice (main marca os que importam, não rostos de fundo), as máscaras que funcionam agora e as descobertas em uma linha cada. Leia tudo. Não canalize inspect através do seu próprio filtro: um subconjunto selecionado manualmente é como caixas de rosto desaparecem e rostos são adivinhados. Os campos completos seguem summary quando você precisa da evidência.

Forme a leitura de um fotógrafo:

  • Sobre o que é a foto.
  • Onde o olho deve pousar (profile.hero).
  • O que está funcionando.
  • O que está prendendo. Use diagnostics.findings (cada um tem evidence medido e um step pronto) mais o que as medições não podem julgar: distrações, harmonia de cores, o corte.
  • O que poderia torná-la especial. opportunities fica ao lado das descobertas: pontos fortes medidos — o caráter da luz (profile.light), onde o olho realmente pousa, pares de cores que valem a pena realçar, separação que vale a pena explorar. Cada um tem evidence e um move_hint. É daí que vem o uau.
  • As outras fotos dentro dela. recrops lista até três enquadramentos alternativos medidos — um quadrado no rosto, uma vertical, um corte mais apertado na região mais movimentada — cada um com uma caixa crop pronta e a evidência do porquê funciona.

Se fetched estiver lá, comece sua resposta com uma linha dizendo o que você baixou e por quê, nas palavras do usuário: "Peguei o modelo de cena de 4,4 MB para que as edições de céu e cume sigam o horizonte." Se uma entrada carregar uma nota licence, adicione-a na mesma linha, por exemplo, "(é licenciado para uso em pesquisa ou avaliação)". Nunca contorne uma capacidade ausente silenciosamente.

Se previous_versions estiver lá, você editou esta foto antes. Ofereça continuar da versão mais recente ou começar do zero.

Se taste estiver lá, é o gosto demonstrado deste usuário em sessões anteriores: looks favoritos e suas quantidades, quão fortes os controles deslizantes, hábitos de vinheta e destino. Incline o quadro nessa direção — ainda respondendo às próprias oportunidades desta foto.

Se profile.signals.face_readable for falso, o rosto está coberto ou muito escuro para ser lido como pele. As descobertas de rosto são ignoradas, e os pontos de rosto e olho detectados não são confiáveis, então coloque qualquer máscara de rosto ou olho a partir de uma grade ampliada em vez de type: face.

2. Briefing: combine o clima

Você precisa de duas coisas:

  • Destino: Instagram 4:5, LinkedIn quadrado ou círculo de perfil, história 9:16, ou como está.
  • Clima (vibe).

Se o destino for desconhecido, pergunte-o na mesma troca que o clima, ou edite na proporção original e ofereça as variantes de corte como direções do quadro. Nunca imponha um corte que o usuário não escolheu, e nunca corte uma pessoa para caber em uma proporção: quando a descoberta de corte do inspect disser que o quadro tem que escolher o que manter, pergunte — não adivinhe.

Se ambos já estiverem claros ("deixe com clima para o insta"), pule o quadro e vá para a rodada 1.

Caso contrário, o quadro é sua pergunta. Construa três direções, seguindo vibes.md:

  • Cada direção compartilha as correções básicas que são certas independentemente do clima: descobertas, remoção de distrações e o corte de destino apenas se o usuário escolheu um destino; caso contrário, mantenha a proporção original e ofereça variantes de corte como suas próprias direções.
  • Cada direção então adiciona seu próprio look e os movimentos de região que fazem esse clima funcionar nesta foto.
  • A segunda e terceira direções respondem cada uma a uma oportunidade medida — a luz, um par de cores, o caminho do olho, a separação — em vez de apenas trocar looks.
  • Se um recrop claramente superar o quadro que você tem ("o retrato dentro deste quadro"), ofereça-o como uma direção própria: seu corte, as correções básicas, um look que lhe caia bem, rotulado como o que é ("C · O retrato dentro").
  • Uma direção é a limpa e fiel. Uma é ousada: o look ajustado à luz em 130–160 de intensidade (vibes.md, "Lendo a luz"); as verificações de crítica são a rede que a pega. As outras duas devem diferir visivelmente.
  • Dê a cada uma um label e uma note.

Execute run.sh board PHOTO A.json B.json C.json. Se too_similar listar um par, separe-os e execute novamente.

Mostre o quadro (a page onde sua superfície mostra páginas, caso contrário a imagem board) e escreva:

  • Sua leitura da foto, em 1–2 linhas.
  • A, B e C, uma linha cada: a sensação e o que faz a esta foto.
  • A pergunta do destino, se for desconhecida.
  • Se inspect disser large: true (acima de 30 MP), pergunte se deve manter o tamanho original ou reduzir:
    • O tamanho original mantém cada pixel, mas o arquivo pode chegar a dezenas de MB.
    • Uma borda longa de 4096 px ainda é nítida em qualquer tela com uma fração do tamanho.
  • Termine com: "Escolha A, B ou C, misture-os ('B mas mais escuro'), ou descreva o clima em suas próprias palavras."

Em seguida, renderize replies onde sua superfície permitir (veja "Faça com que responder seja um toque onde a superfície permitir" acima).

3. Edição

Execute run.sh preview RECIPE PHOTO --note "…" para cada rodada. O preview retorna:

  • vN: o nome da versão salva (v1, v2…).
  • card: um cartão 4:5 com a versão atual, o original para comparação ao passar o dedo e o label da receita. Mostre isso ao usuário para cada rodada.
  • review: uma página HTML interativa com a versão atual, original, segure-para-comparar, e as edições detalhadas abaixo. Mostre em vez do cartão quando possível.
  • critique: uma auto-avaliação da versão atual comparada com as metas da receita, destacando diferenças e possíveis ajustes.
  • replies: botões de resposta inline para feedback rápido, quando suportado.

Mostre o resultado e peça feedback. Ajuste com base no feedback do usuário, refinando em rodadas até que esteja satisfeito. Use --redo para substituir a versão mais recente em vez de criar uma nova.

4. Finalização

Quando o usuário aprovar a versão final, execute run.sh apply RECIPE PHOTO para exportar a imagem em resolução total. Compartilhe o arquivo final e confirme o destino (Instagram, LinkedIn, história, etc.).

Se faz parte de um conjunto, execute sheet PHOTO… para verificar a consistência entre as fotos. Corrija quaisquer bandeiras (formato diferente, brilho, temperatura) antes de mostrar o conjunto completo.

Notas finais

  • Sempre leia reference/vibes.md antes do seu primeiro quadro para entender o vocabulário de gosto e direção.
  • Use doctor no início de cada sessão para verificar as capacidades disponíveis.
  • Para problemas de download, use probe para diagnosticar e, se necessário, peça ao usuário para anexar arquivos de modelo manualmente.
  • Nunca invente capacidades ou finja uma edição que não pode ser feita com as ferramentas disponíveis.

Habilidades Relacionadas