Communitygithub.com

Processador de Agência (Agência Única)

Extrai dados de uma imobiliária e gera uma página de demonstração personalizada com atualizações de progresso em tempo real. Otimizado para velocidade e conversão.

O que é Processador de Agência (Agência Única)?

Esta habilidade processa uma imobiliária do início ao fim, extraindo dados de marcação, contato e imagens da página inicial (com validação rigorosa de URLs de imagem), seleciona um sistema de design com base no tipo de agência (como 'swiss-precision' para franquias nacionais ou 'editorial-prestige' para boutique/independentes) e gera uma página de demonstração focada em conversão. A habilidade segue regras rígidas: no máximo 1 chamada WebFetch (apenas homepage), nenhum WebSearch, e proíbe cores/ layouts/ fontes considerados 'AI-slop' (roxos, verdes neon, Inter/Roboto, gradientes). Ela atualiza continuamente um arquivo de progresso e um stream de atividades para fornecer feedback visual suave. Ideal para pipelines de agências imobiliárias que precisam de landing pages de demonstração rápidas, consistentes e visualmente atraentes, sem informações desnecessárias ou elementos quebrados.

Funciona com✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/majiayu000/claude-skill-registry-data/tree/HEAD/data/agency-processor

Perguntar na sua IA favorita

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

Documentação

Habilidade de Processamento de Agência (Agência Única)

Você processa exatamente uma imobiliária do início ao fim:

  1. Extraia rapidamente a marcação + contato + imagens da homepage (uma única chamada).
  2. Selecione o sistema de design apropriado com base no tipo de agência.
  3. Gere uma página de demonstração focada em conversão.
  4. Atualize continuamente o progresso + a atividade para que a interface do usuário flua suavemente.

Regras Rígidas

  • Não crie outros agentes.
  • Não use emojis em nenhum texto que escrever.
  • Use apenas os caminhos absolutos fornecidos no prompt.
  • NÃO use WebSearch - extraia apenas da homepage.
  • Máximo de 1 chamada WebFetch (apenas homepage).

Entradas (do prompt)

  • agencyId: slug seguro para URL (exemplo: ray-white-surry-hills)
  • sessionId: ID da sessão do pipeline
  • name: nome da agência (melhor esforço)
  • website: URL do site da agência
  • progressFilePath: caminho absoluto para data/progress/agency-{agencyId}.json
  • activityFilePath: caminho absoluto para data/progress/agency-activity-{agencyId}.json
  • demoHtmlPath: caminho absoluto para public/demo/{agencyId}.html
  • agencyDataPath: caminho absoluto para data/agencies/{agencyId}.json

Ferramentas Permitidas

  • Use apenas: WebFetch, Read, Write, Glob
  • NÃO use: WebSearch, ferramentas de automação de navegador

Arquivos de Saída (deve escrever todos)

1) Stream de Atividade (activityFilePath)

Armazene um único objeto JSON e anexe a messages:

{
  "sessionId": "pipe-...",
  "agencyId": "ray-white-surry-hills",
  "agencyName": "Ray White Surry Hills",
  "messages": [
    {
      "id": "msg-<timestamp>-<rand>",
      "type": "thinking|tool|fetch|results|identified|warning",
      "text": "Atualização curta voltada para o usuário",
      "detail": "Opcional: URL ou consulta",
      "source": "Subagente",
      "timestamp": "2026-01-17T12:34:56.789Z"
    }
  ]
}

Regras:

  • Cada id deve ser único (use timestamp + sufixo aleatório).
  • Antes de WebFetch, anexe uma mensagem fetch com detail definido para a URL.
  • Após cada marco, anexe uma mensagem curta identified/results/thinking.
  • Mantenha apenas as últimas 250 mensagens.

2) Arquivo de Progresso (progressFilePath)

Sempre escreva JSON válido com chaves estáveis:

{
  "agencyId": "...",
  "sessionId": "...",
  "status": "skeleton|extracting|generating|complete|error",
  "updatedAt": "ISO timestamp",
  "name": "...",
  "website": "...",
  "phone": null,
  "address": null,
  "email": null,
  "logoUrl": null,
  "primaryColor": null,
  "secondaryColor": null,
  "tagline": null,
  "heroImageUrl": null,
  "teamSize": null,
  "listingCount": null,
  "designSystem": null,
  "htmlProgress": 0,
  "demoUrl": null,
  "steps": [
    { "id": "website", "label": "Site encontrado", "status": "pending|in_progress|complete|error" },
    { "id": "details", "label": "Detalhes extraídos", "status": "pending|in_progress|complete|error" },
    { "id": "generating", "label": "Gerando página de demonstração", "status": "pending|in_progress|complete|error" },
    { "id": "complete", "label": "Pronto", "status": "pending|in_progress|complete|error" }
  ],
  "error": null
}

Regras:

  • Atualize updatedAt em cada gravação.
  • Nunca remova chaves; defina campos ausentes como null.

3) Registro da Agência (agencyDataPath)

Escreva o registro durável usado pelo resto do sistema:

{
  "id": "ray-white-surry-hills",
  "name": "Ray White Surry Hills",
  "website": "https://...",
  "phone": "02 ...",
  "email": null,
  "address": "Endereço completo",
  "tagline": null,
  "branding": {
    "logoUrl": null,
    "primaryColor": "#0f172a",
    "secondaryColor": "#ffffff",
    "heroImageUrl": null
  },
  "metrics": {
    "teamSize": null,
    "listingCount": null
  },
  "researchedAt": "ISO timestamp",
  "dataQuality": "complete|partial|minimal",
  "notes": null,
  "demoPage": {
    "generated": true,
    "generatedAt": "ISO timestamp",
    "url": "/demo/ray-white-surry-hills",
    "designSystem": "editorial-prestige"
  }
}

Metas de Desempenho

MétricaMeta
Chamadas WebFetch1 (apenas homepage)
Chamadas WebSearch0 (nenhuma)
Gravações de arquivo de progresso4-5
Tempo total por agência<30 segundos

Se os dados não estiverem claros após buscar a homepage, defina campos desconhecidos como null e prossiga. NÃO faça buscas adicionais para dados ausentes.


Formato de Extração de Informações

Extraia esses campos do HTML da homepage em uma única passagem:

Obrigatório (deve encontrar ou definir como null)

CampoOnde ProcurarFormato
logoUrl<img> com "logo" em src/alt/class, <link rel="icon">URL completa
phoneLinks com tel:, texto correspondendo a padrões de telefone (02, 04, 1300, 1800)Formato australiano
addressRodapé, seção de contato, marcação schema.org LocalBusinessEndereço completo

Melhor esforço (extrair se visível na homepage)

CampoOnde ProcurarFormato
emailLinks com mailto:, texto de email visível[email protected]
primaryColorFundo do cabeçalho/navegação, elementos da marca, cores do logotipoHex (#RRGGBB)
secondaryColorBotões CTA, elementos de destaque, linksHex (#RRGGBB)
taglineTexto da seção herói, <meta name="description">, sloganString curta
teamSizeTexto "X agentes", contagem da equipe se visívelNúmero ou null
listingCountTexto "X propriedades", contagem de listagens se visívelNúmero ou null

Imagens (VALIDAÇÃO ESTRITA EXIGIDA)

IMPORTANTE: A maioria das URLs de imagens extraídas NÃO funcionará. Use apenas imagens que passem em TODAS essas verificações:

Regras de Validação de URL de Imagem

REJEITAR se a URL:
- É um caminho relativo (não começa com http:// ou https://)
- Contém "placeholder", "default", "blank", "spacer"
- É de um CDN que requer autenticação (cloudinary transforms, imgix com tokens)
- É uma URI de dados base64
- É um arquivo SVG (geralmente ícones, não fotos)
- É menor que 100x100 (provavelmente um ícone)
- Contém parâmetros de rastreamento (?utm_, ?ref=, etc.)
- É de CDNs de mídia social (fbcdn, twimg) - geralmente expiram

PREFERIR URLs que:
- São do próprio domínio da agência
- São de CDNs estáveis (amazonaws, cloudfront sem URLs assinadas)
- Têm extensões de imagem comuns (.jpg, .jpeg, .png, .webp)
- São claramente nomeadas (hero.jpg, team-photo.png, office.jpg)

Prioridade de Extração

CampoOnde ProcurarFormato
logoUrl<img> com "logo" em src/alt/class, <link rel="icon">URL completa (validada)
heroImageUrlFundo da seção herói, <img> do banner principalURL completa (validada)

NÃO extraia estes (raramente funcionam, poluem a página):

  • teamImageUrl - geralmente quebrado ou requer autenticação
  • officeImageUrl - geralmente quebrado ou requer autenticação

Na Dúvida: NENHUMA IMAGEM

Se você não estiver confiante de que uma URL de imagem carregará, não a inclua. Uma página limpa sem imagens é melhor do que uma página quebrada com imagens ausentes. Use fundos de cor sólida em vez de imagens de herói potencialmente quebradas.

NÃO extrair (removidos para velocidade)

  • soldCount, forRentCount, priceRangeMin, priceRangeMax
  • painScore, painReasons
  • hasPropertyManagement, hasChatWidget, hasAfterHoursNumber, hasOnlineBooking

Seleção de Sistema de Design

Antes de gerar HTML, selecione UM sistema de design com base na agência:

Lógica de Seleção

TIPO DE AGÊNCIA                                    → SISTEMA DE DESIGN
─────────────────────────────────────────────────────────────────
Franquia nacional (Ray White, LJ Hooker,            → "swiss-precision"
Century 21, Raine & Horne, McGrath, Belle)            (limpo, profissional)

Agência boutique/independente                       → "editorial-prestige"
                                                      (distinto, premium)

Indicadores de mercado de luxo/prestígio             → "quiet-luxury"
(palavras como "prestígio", "exclusivo", "luxo")     (refinado, exclusivo)

Agência moderna/tech-forward                         → "cinematic-reveal"
(site elegante, branding moderno)                     (dramático, impactante)

Agência tradicional/estabelecida                     → "warm-authority"
(datas de fundação, foco comunitário)                  (confiável, acessível)

PADRÃO (quando não tiver certeza)                    → "editorial-prestige"
                                                      (funciona para a maioria)

Escreva o sistema de design selecionado para progress.designSystem e agencyRecord.demoPage.designSystem.

Restrições do Sistema de Design (DEVEM SEGUIR)

Cores Proibidas (AI-slop - NUNCA use estas)

- QUALQUER roxo/violeta/índigo: #6366F1, #8B5CF6, #A855F7, #7C3AED, #7a00df, #6200b3
- Ciano/teal neon: #00FF88, #00DDFF, #06B6D4
- Verde ChatGPT: #10A37F
- Qualquer combinação roxo + verde
- Qualquer gradiente azul-para-roxo
- QUALQUER fundo gradiente em seções de herói

Fontes Proibidas (abusadas - NUNCA use estas)

- Inter (a fonte AI-slop #1)
- Roboto, Open Sans, Lato
- Poppins, Montserrat

Fontes Aprovadas (use estas)

Manchetes: Playfair Display, Space Grotesk, Cabinet Grotesk, Fraunces
Corpo: Source Serif 4, DM Sans, IBM Plex Sans, Outfit

Layouts Proibidos (padrões AI-slop)

- Três cartões iguais com ícones em uma fileira horizontal
- Grades simétricas 2x2 ou 3x3 sem hierarquia
- Fundos gradientes de herói (use cores sólidas)
- "Cartões de recurso" genéricos com ícone + título + descrição
- Cartões de pontos problemáticos ou seções de "análise de oportunidade"
- Grades de estatísticas/métricas (tamanho da equipe, listagens, etc.)

REGRAS DE CONTRASTE DE COR (CRÍTICO)

O texto deve estar SEMPRE legível. Siga estas regras:

FUNDOS CLAROS (branco, creme, cinza claro):
  - Use texto escuro: #1a1a1a, #333333, slate-900
  - Nunca use texto branco ou claro

FUNDOS ESCUROS (marinho, carvão, preto):
  - Use texto branco ou muito claro: #ffffff, #f5f5f5
  - Nunca use texto escuro

FUNDOS DE COR DA MARCA:
  - Se a cor da marca for CLARA (amarelo, azul claro, bege): use texto ESCURO
  - Se a cor da marca for ESCURA (marinho, verde floresta, bordô): use texto CLARO
  - Na dúvida, use fundo claro com texto escuro

NUNCA FAÇA:
  - Texto branco em fundos amarelo/dourado
  - Texto cinza claro em fundos brancos
  - Texto escuro em fundos escuros
  - Qualquer cor de texto que não tenha pelo menos 4,5:1 de taxa de contraste

Obrigatório

  • Tema claro por padrão (brancos quentes: #FAFAF9, #F8F6F1, #ffffff)
  • Use as cores extraídas da marca da agência APENAS para acentos (botões, bordas), não fundos
  • Cores de acento de fallback: marinho (#1E3A5F), terracota (#C2703A), verde floresta (#2D5A47)
  • Texto do corpo: sempre escuro (#1a1a1a ou slate-900) em fundos claros
  • Responsivo para dispositivos móveis (testar na largura de 375px)
  • Sem emojis em nenhum lugar

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

majiayu000/claude-skill-registry-data

Edit existing BMAD agents while maintaining compliance

majiayu000/claude-skill-registry-data

Edit existing BMAD agents while maintaining compliance

majiayu000/claude-skill-registry-data

Edit existing BMAD modules while maintaining coherence

majiayu000/claude-skill-registry-data

Edit existing BMAD modules while maintaining coherence

majiayu000/claude-skill-registry-data

Analyzes current state and user query to answer BMad questions or recommend the next workflow or agent. Use when user says what should I do next, what do I do now, or asks a question about BMad

majiayu000/claude-skill-registry-data

Build AI agents with Google ADK Python (Agent Development Kit). Use for multi-agent systems, workflow agents (sequential/parallel/loop), Vertex AI deployment, tool integration, human-in-the-loop.

majiayu000/claude-skill-registry-data

Build AI agents with Google ADK Python (Agent Development Kit). Use for multi-agent systems, workflow agents (sequential/parallel/loop), Vertex AI deployment, tool integration, human-in-the-loop.

majiayu000/claude-skill-registry-data

Portfolio allocation and rebalancing optimizer. Manages asset allocation across stocks/cash/bonds, performs periodic rebalancing, and ensures diversification according to market regime and risk tolerance.

majiayu000/claude-skill-registry-data

Create a hilarious and ultra-realistic video of an anthropomorphic animal acting like a human vlogger in a real-world setting.

majiayu000/claude-skill-registry-data

Speech-to-text transcription and translation via OpenAI Audio API -- models, response formats, timestamps, prompting, streaming, chunking, and diarization

majiayu000/claude-skill-registry-data

This skill should be used when the user asks about libraries, frameworks, API references, or needs code examples. Activates for setup questions, code generation involving libraries, or mentions of specific frameworks like React, Vue, Next.js, Prisma, Supabase, etc.

majiayu000/claude-skill-registry-data

小省导购员数字人带货版即梦视频提示词生成系统,基于四大智能体协同(提示词生成师、质量管控师、知识库运维师、跨环节适配师),按照"主体+运动+场景+(镜头语言+光影+氛围)"公式输出中英文双版提示词,适配5s短视频。确保人物一致性、视觉连贯性、情绪连贯性,支持知识库智能复用和跨工具适配(Suno音乐、AI绘画),为数字人带货视频提供高质量提示词生成服务。

majiayu000/claude-skill-registry-data

Upload and manage files using Google Gemini File API via scripts/. Use for uploading images, audio, video, PDFs, and other files for use with Gemini models. Supports file upload, status checking, and file management. Triggers on "upload file", "file API", "upload image", "upload PDF", "upload video", "file management".

majiayu000/claude-skill-registry-data

Analyze images/audio/video with Gemini API (better vision than Claude). Generate images (Imagen 4), videos (Veo 3). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.

majiayu000/claude-skill-registry-data

Analyze images/audio/video with Gemini API (better vision than Claude). Generate images (Imagen 4), videos (Veo 3). Use for vision analysis, transcription, OCR, design extraction, multimodal AI.

majiayu000/claude-skill-registry-data

Skill for discovering and researching autonomous AI agents, tools, and ecosystems using the AgentFolio directory.

majiayu000/claude-skill-registry-data

Conduct domain and industry research. Use when the user says "lets create a research report on [domain or industry]

majiayu000/claude-skill-registry-data

Conduct market research on competition and customers. Use when the user says "create a market research report about [business idea]".

majiayu000/claude-skill-registry-data

Conduct technical research on technologies and architecture. Use when the user says "create a technical research report on [topic]".

majiayu000/claude-skill-registry-data

Builds, edit or validate Agent Skill through conversational discovery. Use when the user requests to "Create an Agent", "Optimize an Agent" or "Edit an Agent".

Habilidades Relacionadas