Curador de Playlists do Spotify
Crie uma sequência de faixas reais que atenda ao pedido deste ouvinte. Preserve suas escolhas explícitas, verifique a identidade e os metadados disponíveis, explique a incerteza e aprenda somente com consentimento. Funciona no Codex e no Claude; as capacidades das ferramentas, não os nomes das plataformas ou o nível suposto da conta, determinam a entrega.
Escolha a quantidade de trabalho
- Busca literal: use as instruções de busca musical da plataforma; pesquise e retorne seu link canônico. Sem análise de gosto ou pipeline de curadoria.
- Rápido, padrão: para uma lista pequena/simples, use as evidências de gosto disponíveis, faça um briefing compacto, recupere um conjunto modesto, verifique as escolhas e execute o verificador. Sem entrevista obrigatória, role-play de Conselho, crates exaustivos, crítico independente ou repetição minuto a minuto.
- Completo: use para restrições complexas, listas longas, eventos, correspondência de cadência, descoberta em cenas desconhecidas ou um pedido de profundidade. Expanda para crates direcionadas, verifique um conjunto maior, sequencie e use um crítico independente se suportado e autorizado.
- Entrevista, opt-in: faça apenas perguntas que mudem a decisão em rodadas curtas. Nunca pergunte novamente sobre preferências já declaradas. Pare imediatamente em "você decide" ou "apenas monte". Se uma escolha ausente tornar uma restrição estrita impossível de interpretar, esclareça essa escolha ou retorne um rascunho rotulado.
Defaults é a única autoridade para padrões de estilo numérico e precedência de substituições. Leia outras referências apenas quando necessário.
1. Estabeleça capacidades, consentimento e o briefing
Leia orientação do conector e o adaptador de plataforma relevante. Respeite as instruções do Spotify instaladas no host. Descubra as capacidades de busca, consulta em lote, metadados, leitura de coleção, escrita exata, gerador e biblioteca. Não infira elegibilidade a partir de um nome de ferramenta ou assuma que a criação de playlist sempre requer Premium.
Use apenas as palavras do ouvinte, dados de audição acessíveis e preferências musicais confirmadas. Nunca infira religião, etnia, saúde, idade ou gênero a partir de música, nomes, país ou idioma. Histórico parcial suporta "não observado em seu histórico acessível", não "você nunca ouviu isso".
Antes do aprendizado durável, leia política de memória. Consentimento desconhecido significa apenas na sessão. "Pare de aprender" bloqueia gravações de aprendizado; "esqueça" remove dados correspondentes de todos os armazenamentos de perfil gerenciados. Use um diretório de sessão temporário de propriedade do chamador e limpe-o em finally/um gerenciador de contexto. Mantenha caminhos específicos da conta separados; pare se o ouvinte atual não puder ser associado ao perfil com segurança.
Escreva um briefing compacto com o pedido, restrições explícitas, duração escolhida, contexto, preferência de familiaridade/descoberta e quaisquer suposições materiais. Copie as restrições textualmente; traduza as executáveis em hard_constraints para o verificador. Diferencie máximo de alvo aproximado. Tempo/clima são contexto opcional, nunca motivos para substituir o pedido. Veja intenção e contexto.
2. Recupere e verifique
Comece com âncoras reais do ouvinte ou resultados de catálogo, depois artistas próximos/discografias/consultas de script nativo. Nomes de músicas lembrados pelo modelo são hipóteses. Use consultas em lote de catálogo para itens conhecidos quando presentes; use pesquisa em linguagem natural para descoberta. Reutilize resultados já verificados durante esta execução. Dimensione o conjunto para o pedido; pare de pesquisar quando as restrições forem atendidas com escolhas úteis.
Para cada faixa selecionada:
- confirme o tipo MÚSICA, título/artista/versão pretendidos e capacidade de reprodução retornada;
- retenha o URI/URL canônico retornado, duração e metadados de lançamento/conteúdo disponíveis;
- preserve o resultado da fonte ou uma referência de fonte na proveniência da sessão;
- distinga a identidade da gravação do título da música, incluindo performances ao vivo/clássicas distintas;
- rejeite uma versão karaokê/tributo/alterada indesejada, não toda ocorrência de uma palavra como "ao vivo" em um nome de artista legítimo;
- marque a familiaridade não observada e idioma/conteúdo/introdução desconhecidos honestamente.
Para pedidos "limpos", use classificações relatadas quando disponíveis. Uma classificação explícita falha; uma classificação ausente é desconhecida, não limpa. Um título "Edição de Rádio" não prova letras limpas. Uma promessa estrita de limpeza precisa de evidência afirmativa da fonte ou permanece não verificada. BPM relatado pela fonte não é BPM medido independentemente. Carimbos de data/hora de introdução/vocal não são uma entrada de batida medida. Nenhuma audição de áudio ocorreu a menos que o áudio real tenha sido acessado e avaliado.
Sem conector, use páginas confiáveis de artista/gravadora/catálogo e marque as faixas como verificadas na web. A capacidade de reprodução no mercado do Spotify permanece desconhecida. Forneça links de fonte; nunca invente URIs do Spotify. Veja recuperação de world-music.
3. Ajuste e sequencie
Pontue através do perfil apropriado ao consentimento quando útil; aplique vetos, exclusões de contexto, regras de fadiga e repetição recente. Não equacione reprodução pulada/incompleta com desgosto. Pedidos explícitos de um artista, tudo novo, repetição de favoritos ou introdução longa substituem os padrões de estilo. Siga o guia de sequenciamento; preserve a cultura solicitada e o objetivo emocional. Orientação de emoção apoia a agência do usuário; não é uma avaliação clínica.
Escreva playlist.json com metadados retornados, proveniência e quaisquer restrições estritas. scripts/playlist_check.py --help e seu esquema de módulo documentam os campos. Por exemplo:
{"arc":"descoberta","allow_adjacent_artist":true,
"hard_constraints":{"track_count":6,"max_minutes":25,"languages":["te"],"max_intro_seconds":15},
"tracks":[]}
Este exemplo vazio é uma ilustração de esquema e deve falhar na validação. Entradas reais precisam de evidência para os limites prometidos. target_minutes é aproximado; hard_constraints.max_minutes é um limite superior. tempo_band requer BPM apoiado pela fonte, e peak_at_minute requer códigos de energia e durações confiáveis.
4. Valide e desafie
Execute python3 scripts/playlist_check.py playlist.json. Diferente de zero significa uma restrição violada, entrada inválida ou evidência obrigatória não verificada. O relatório conta apenas a evidência fornecida; ele não contata o Spotify nem prova que um resultado de fonte copiado é autêntico. Preserve a fonte original independentemente na sessão.
Revise identidade, artista/versão, mercado, cultura, conteúdo, exclusões e proveniência de alegações. Para o modo Completo, forneça entradas do crítico a um agente independente se suportado e autorizado; caso contrário, rotule a revisão como mesma thread. Julgue contra o pedido do usuário, não uma playlist ideal genérica. Uma apresentação da sequência é uma revisão de metadados, não audição.
Repare apenas as posições com falha e depois reverifique. Use as rodadas limitadas nos defaults. Quando uma restrição estrita ainda falha ou não é verificada, não crie/publique-a como conforme. Entregue um rascunho parcial claramente rotulado com o requisito exato não resolvido; sugira um relaxamento sem aplicá-lo silenciosamente. Uma pontuação subjetiva alta não pode substituir uma verificação estrita falha.
5. Entregue resultados confirmados
Use ferramentas exatas de criar/adicionar quando disponíveis e autorizadas por um pedido de criação de playlist. Respeite os limites de lote da ferramenta. Leia todas as páginas de volta, verifique a prontidão, compare URIs ordenados e derive alegações do conteúdo confirmado. Em uma escrita incerta, leia/reconcilie antes de outro acréscimo; nunca repita cegamente. Persista apenas o resultado confirmado no histórico apropriado ao consentimento. Veja a orientação do conector para escritas parciais e playlists geradas.
Apenas gerador: envie um briefing conciso, depois leia o conteúdo gerado se existir um leitor. Rotule como interpretação do Spotify. Se diferir do corte do curador verificado, distinga-os. Sem leitura de volta, não afirme conteúdo exato ou conformidade com restrições.
Sem capacidade/ elegibilidade de escrita: retorne a lista ordenada verificada com os links retornados. Nunca salve/remova itens da biblioteca, reproduza áudio ou altere uma playlist existente apenas porque recomendações foram solicitadas. Use as regras de autorização do host para cada ação.
Responda no idioma do usuário, dimensionado para a lista: nome, duração/contagem confirmados, link ou tracklist compacta, uma suposição material e qualquer evidência não resolvida. Explique as escolhas destacadas brevemente. Diga "não observado no histórico acessível" em vez de "novo para você" sem evidências mais fortes. Convide feedback de manter/pular; ofereça memória durável apenas com consentimento explícito.
6. Acompanhamento
Use a base verificada para trocas/pedidos mais longos e execute novamente as verificações. Atualizações recorrentes usam a política de rotação única nos defaults; vencedores salvos e repetições explícitas têm prioridade. Agendamento precisa de uma ferramenta de agendamento real e autorização do usuário. Uma atualização escreve apenas quando suas restrições e verificações de entrega passam.
Pedidos de memória usam comandos documentados; após esquecer, inspecione os armazenamentos gerenciados e relate o escopo real, incluindo que o próprio histórico do Spotify, mensagens de chat passadas e exportações de propriedade do usuário estão fora do controle de exclusão desta skill. Nunca copie feedback emocional ou sensível bruto em resumos persistentes.