CommunityEscrita e Ediçãogithub.com

croct-tech/agent-skills

Use ao planejar ou implementar personalização ou testes A/B com Croct: criar uma experiência (audiência, slots, conteúdo, prioridade, agendamento, rascunhos), adicionar um experimento (A/B/n, ID da meta principal, alocação de tráfego, variantes, consistência entre dispositivos), escrever o código necessário (slots, `croct.track('goalCompleted', {goalId})`, `orderPlaced`, `leadGenerated`, `userSignedUp`), experimentos server-side de feature flags, experimentos de redirecionamento, receitas de personalização (campanhas UTM, ABM, termos de busca, localização, frete grátis, interesses, leitores de blog, leads, clientes, intenção orgânica, formulários HubSpot) ou ler os dashboards de experiência, experimento, aplicação ou espaço de trabalho (probabilidade de ser a melhor, perda potencial, "Experimento em andamento", "Vencedor recomendado", "Nenhum vencedor claro", "Monitore sua meta"). Frases: "personalize o hero para visitantes do LinkedIn", "A/B teste este CTA", "qual variante venceu?", "por que meu experimento não mostra conversões?".

O que é agent-skills?

Esta skill capacita o agente a planejar, implementar e analisar personalização e testes A/B na plataforma Croct. Ela abrange desde a criação de experiências (definindo audiência, slots e conteúdo) até a configuração de experimentos A/B/n com alocação de tráfego, variantes e consistência entre dispositivos. A skill orienta o agente a garantir que o código necessário esteja presente (slots, rastreamento de eventos como `goalCompleted`, `orderPlaced`), interpretar os resultados dos dashboards usando limiares documentados (como "Probabilidade de ser a melhor" e "Perda potencial") e tomar decisões fundamentadas, como declarar um vencedor ou encerrar um experimento. Também fornece receitas prontas para cenários comuns (campanhas UTM, personalização por localização, frete grátis) e explica como configurar experimentos de feature flags e redirecionamento. A skill suporta as plataformas Croct Web (React, JavaScript, PHP) e enfatiza que uma vez que o slot e a meta existam, toda alteração no experimento é feita via configuração, sem necessidade de mudanças no código.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/croct-tech/agent-skills/tree/HEAD/skills/croct-personalize-and-test

Installed? Explore more Escrita e Edição skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

Perguntar na sua IA favorita

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

Documentação

Personalize e teste com Croct

Profissionais de marketing gerenciam experiências e experimentos no dashboard (app.croct.com). Seu trabalho como agente é:

  1. Planejar: transformar o objetivo do usuário em uma experiência (quem / onde / o que) e, quando ele quiser comprovação, um experimento (hipótese, meta, alocação, variantes).
  2. Escrever o código: garantir que cada área segmentada seja um slot, a conversão seja rastreada como um evento goalCompleted e os dados que a audiência precisa sejam coletados.
  3. Escrever a audiência: uma condição CQL. Para sintaxe além das receitas aqui, carregue a skill croct-cql.
  4. Interpretar resultados: ler os dashboards com os limiares documentados; nunca declare um vencedor que o dashboard não suporte.

Não diga ao usuário que são necessárias alterações de código para iniciar, alterar ou encerrar um experimento. Uma vez que o slot e a meta existam, todo o resto é configuração.

Modelo mental

ConceitoO que éRegras
ExperiênciaConteúdo mostrado a uma audiência em um ou mais slotsDefinida por quem (audiências), onde (slots), o que (conteúdo). Várias audiências permitidas; dê a cada uma seu próprio conteúdo usando grupos de conteúdo.
AudiênciaUma condição CQL avaliada contra o contexto atual do usuárioPode segmentar todos os usuários ou um segmento restrito.
PrioridadeClassificação única por experiênciaQuando as audiências se sobrepõem no mesmo slot, a experiência com prioridade mais alta vence. Sem empates.
ExperimentoUm teste A/B/n dentro de uma experiênciaUm por experiência por vez. Herda a audiência e os slots da experiência. De 2 a 5 variantes.
ID da meta principalA conversão que o experimento otimizaDeve corresponder ao goalId de um evento goalCompleted rastreado.
Alocação de tráfego% de usuários elegíveis que entram no experimentoO restante vê o conteúdo da experiência.

Quem vê o que para um determinado slot:

UsuárioVê
Não está na audiência de nenhuma experiênciaConteúdo padrão do slot
Está na audiência, não alocado para o experimentoConteúdo da experiência
Está na audiência, alocadoConteúdo da variante atribuída
Corresponde a várias experiências no mesmo slotA de maior prioridade

A atribuição é determinística: o ID do visitante é combinado com a chave do experimento, então uma recarga nunca altera a variante. A exposição é rastreada automaticamente. Para usuários identificados, o ID do usuário é a chave de atribuição, então a variante pode acompanhá-los entre dispositivos (usuários anônimos não podem).

Decida o que construir

O usuário quer...Construa
Conteúdo diferente para um segmento conhecidoExperiência com uma audiência, sem experimento
Provar que uma mudança funciona antes de lançá-laExperiência (geralmente "todos os usuários") + experimento
Testar texto, imagens, layout ou uma seçãoExperimento de conteúdo em um slot (uma URL, renderizado no servidor quando possível)
Testar para onde um link levaExperimento de CTA: o slot contém o destino do link
Mostrar ou ocultar um elemento (banner promocional)Avaliação (evaluate/useEvaluation) no código apenas para lógica fixa que o desenvolvedor possui; caso contrário, um slot com um atributo booleano mais uma experiência, para que os profissionais de marketing controlem quem vê. Consulte a regra de avaliação da skill croct-integrate-sdk
Testar funcionalidade ou um fluxo, não conteúdo visívelExperimento de feature flag: um slot com um atributo booleano, ramificado no servidor
Testar duas páginas genuinamente separadas (página reconstruída, outro template, landing page de outra ferramenta)Experimento de redirecionamento. Prefira experimentos de conteúdo quando apenas o conteúdo diferir
Vários limites ou segmentos em uma campanha (frete grátis por estado)Uma experiência, várias audiências, grupos de conteúdo
Uma campanha que inicia, pausa ou retoma em um horário definidoAgendamento (complemento), opcionalmente no fuso horário da audiência

Checklist de implementação

Toda experiência ou experimento precisa destes itens no código antes de ser configurado:

  • Um slot para cada área que muda. Se faltar: npx croct@latest add slot <slot-id>@1 e renderize-o com o SDK (veja as skills croct-use-cli e croct-integrate-sdk). Sem um slot, nenhuma experiência pode alterar a área.
  • Um evento goalCompleted para a conversão (obrigatório para experimentos). O ID da meta deve ser igual ao ID da meta principal do experimento. Se a meta for nova, implante-a antes de iniciar o experimento.
  • Eventos de conversão mais ricos quando relevante: orderPlaced, leadGenerated, userSignedUp preenchem widgets de receita, lead e inscrição junto com a meta.
  • Os dados que a audiência lê. Parâmetros UTM, localização e dados de sessão são automáticos; receitas baseadas em posts, interesses, pedidos, leads ou inscrições exigem o rastreamento desses eventos (veja a skill croct-track-events).
  • Identificação do usuário se as variantes precisarem permanecer consistentes entre dispositivos.

Monitore a meta

// components/HomeHero.tsx (React; @croct/plug-next é idêntico com 'use client')
import type {ReactElement} from 'react';
import {useContent, useCroct} from '@croct/plug-react';

export function HomeHero(): ReactElement {
  const {content} = useContent('home-hero@1');
  const croct = useCroct();

  function handleClick(): void {
    croct.track('goalCompleted', {
      goalId: 'hero-cta-click',
    });
  }

  return (
    <div>
      <h1>{content.title}</h1>
      <p>{content.subtitle}</p>
      <a href={content.button.link} onClick={handleClick}>{content.button.label}</a>
    </div>
  );
}
// JavaScript puro
import croct from '@croct/plug';

croct.track('goalCompleted', {goalId: 'sign-up'});

O evento também aceita value e currency opcionais ({goalId: 'signup', currency: 'USD', value: 50}). Em stacks PHP renderizadas no servidor, monitore no navegador com o helper de template (@croct ... @endcroct em Blade, {% apply croct %} ... {% endapply %} em Twig).

Monitore a meta onde a conversão realmente acontece, no navegador. Para um experimento de redirecionamento, monitore-a em ambas as páginas. Quando a conversão é concluída apenas no servidor (webhook de pagamento, inscrição no backend), use o track independente do SDK JavaScript de @croct/plug/api com uma chave de API: o exemplo da sua documentação é exatamente um evento goalCompleted enviado de um servidor ou script isolado (veja a skill croct-track-events). Ele aceita um userToken opcional; a documentação não diz como um evento enviado sem ele é atribuído ao experimento.

Fluxo de trabalho de experiência (dashboard)

Relate estas etapas ao usuário; você não pode clicá-las sozinho.

  1. Página de Experiências > Nova experiência, nomeie-a.
  2. Aba Audiência > Nova audiência > cole os critérios CQL. Várias audiências permitidas.
  3. Aba Slot > selecione um ou mais slots (combine slots entre páginas para uma jornada consistente).
  4. Aba Conteúdo > edite o conteúdo por slot (e por grupo de conteúdo quando as audiências diferirem).
  5. Aba opcional Experimento (veja abaixo).
  6. Revise as alterações do rascunho, depois Publique (ou agende) — ou Visualize primeiro.

Durante o desenvolvimento, uma audiência como property welcome of page's query is "true" permite que o usuário alterne a experiência com ?welcome=true. Substitua-a por uma audiência real para produção.

Detalhes sobre status, prioridade, agendamento, alterações de rascunho e conteúdo: references/experiences.md.

Fluxo de trabalho de experimento

  1. Escreva a hipótese: a mudança, a métrica que ela move e por quê.
  2. Escolha o ID da meta principal (o dashboard sugere IDs já rastreados). Confirme se ele dispara.
  3. Defina a alocação de tráfego. Use 100% para audiências de nicho. Mantenha-a estável durante todo o teste.
  4. Crie 2 a 5 variantes, geralmente uma é o controle. Uma variante pode copiar o conteúdo do slot ou herdar o conteúdo da experiência em vez de duplicá-lo.
  5. Defina o conteúdo de cada variante (e grupos de conteúdo, se necessário).
  6. Ative a consistência entre dispositivos se os usuários forem identificados e devem manter sua variante.
  7. Visualize cada variante, publique, depois verifique: sessões por variante correspondem à divisão, e uma conversão de teste aparece sob a meta correta.

Nunca altere a distribuição de tráfego ou adicione/remova variantes durante o teste; isso pode invalidar os resultados.

Detalhes, feature flags e redirecionamentos: references/experiments.md e references/flag-and-redirect-experiments.md.

Lendo resultados

O dashboard do experimento mostra um indicador no topo. Aja com base nele:

IndicadorSignificadoFaça
Monitore sua metaNenhum evento de conclusão de meta registradoCorrija o rastreamento; nada mais é significativo
Experimento em andamentoAinda não está estávelEspere. Estável requer cada variante ≥ 1.000 visitantes, cada variante ≥ 25 conversões e ≥ 1 semana em execução
Vencedor recomendadoEstável, e uma variante tem PBB > 95% e perda potencial < 0,1%Aplique o conteúdo vencedor à experiência e pare o experimento
Nenhum vencedor claroEstável, variantes muito semelhantesEncerre sem um vencedor ou teste uma nova hipótese

Antes de ler qualquer métrica, verifique sessões por variante em relação à divisão configurada. Um desequilíbrio persistente significa que a atribuição ou o registro está descartando uma classe de usuários.

Probabilidade de ser a melhor (PBB) e perda potencial vêm de inferência bayesiana com uma distribuição Beta por variante e simulação de Monte Carlo, computadas em tempo real sem amostragem. Explicações, fórmulas e todos os widgets do dashboard: references/analytics.md.

Receitas

Guias condensados (ABM, leitores de blog, clientes, frete grátis, formulários HubSpot, interesses, leads, localização, campanhas de marketing, intenção orgânica, termos de busca), cada um com sua audiência CQL, pré-requisitos de rastreamento e slots sugeridos: references/playbooks.md.

Faça / Não faça

  • Faça implemente e verifique o evento de meta antes de publicar um experimento. Sem ele, o experimento coleta exposições, mas nenhuma conversão.
  • Faça aloque 100% para audiências de nicho para que o teste possa atingir validade estatística.
  • Faça prefira uma URL com conteúdo orientado por slot em vez de redirecionamentos; redirecionamentos adicionam um carregamento de página e distorcem os resultados.
  • Faça mantenha os redirecionamentos temporários (302/307) e proteja contra loops.
  • Faça remova slots obsoletos de feature flag do código após o término de um teste.
  • Não faça declare um vencedor enquanto o dashboard disser "Experimento em andamento", ou apenas com base em contagens brutas (total de pedidos, total de inscrições).
  • Não faça edite a alocação ou a lista de variantes durante o teste.
  • Não faça espere consistência entre dispositivos para usuários anônimos; ela precisa de um usuário identificado.
  • Não faça redirecione para um domínio diferente: o visitante é reconhecido por domínio, então a conversão nunca é atribuída. Para subdomínios, compartilhe a sessão primeiro.
  • Não faça pré-renderize completamente ou armazene em cache uma página que renderiza um slot de experimento; uma variante em cache seria servida a todos.

Documentação ao vivo

  • Índice: https://docs.croct.com/llms.txt
  • Qualquer página como markdown: acrescente .md, ex.: https://docs.croct.com/explanation/experiment.md
  • Pesquisa: https://docs.croct.com/api/search.md?term=<termos>

Individual skills in this repo

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

croct-tech/agent-skills

>- Use when writing, reading, reviewing, or debugging Croct's Contextual Query Language (CQL): audience criteria, `croct.evaluate()` / `useEvaluation` / `<Personalization query>` / Next.js `cql` tag queries, Evaluation API `query` bodies (`/client/web/evaluate`, `/external/web/evaluate`), and dynamic content values (`"type": "dynamic"`, `"expression"`). Covers context variables (user, session, page, location, campaign, cart, device, browser, context, now/today), data types and conversions, accessors and selectors (`'s`, `property X of`, `[1st]`, `[*]`, `[...]`), tests (`is`, `matches`, `is like`, `contains either`, `is between`, `is defined`, `is returning`), quantifiers (`some ... satisfies`), macros, modifiers, event expressions (`user has viewed a page`, `user has abandoned a cart`, `user has completed goal`), audience estimation, and recipes. Triggers: "write an audience", "target mobile users in New York", "CQL syntax error", "audience never matches", "unavailable estimate".

croct-tech/agent-skills

>- Use when connecting Croct to a third-party platform or migrating to Croct from another personalization or experimentation tool. Covers Storyblok (Optimize by Croct app, @croct/plug-storyblok, Storyblok withCroct, resolveContent, croct/plug-storyblok, CroctStoriesApi), Sanity and Strapi (slot fallback, dynamic zones, metadata.contentSource), Shopify Hydrogen storefront events, Shopify custom pixel (croctPixel, PUBLIC_CROCT_SHOPIFY_PIXEL, checkout and order tracking), VTEX, Google Tag Manager data layer, Microsoft Clarity tags, HubSpot forms (hbspt.forms.create, hs-form-event), firmographic providers 6sense, Demandbase, Clearbit Reveal, and ZoomInfo WebSights (firmographics attributes, account-based audiences in CQL), and migrations from Mutiny and Ninetailed (Experience component, Contentful sunset). Triggers include cdn.croct.io/plug-integration scripts, "personalize Storyblok blocks", "track Shopify checkout", "send VTEX events", "ABM personalization", "replace Mutiny".

croct-tech/agent-skills

>- Use when installing or using a Croct SDK in application code: rendering slot content, evaluating CQL queries, server or client fetching, prerendering, identifying users, app ID / API key env vars, testing, or debugging. Covers JavaScript (`@croct/plug`, `croct.fetch`, `croct.evaluate`), React (`@croct/plug-react`, `<CroctProvider>`, `useContent`, `<Slot>`, `useEvaluation`, `useCroct`), Next.js (`@croct/plug-next`, `fetchContent`, `cql`, middleware/proxy, `NEXT_PUBLIC_CROCT_APP_ID`, `CROCT_API_KEY`), Vue (`@croct/plug-vue`), Nuxt (`@croct/plug-nuxt`), Shopify Hydrogen (`@croct/plug-hydrogen`), PHP (`croct/plug-php`), Laravel, Symfony, and Drupal. Triggers: slot IDs like `home-hero@1`, `SlotContent`, "Croct is not plugged in", "initial content is required for server-side rendering", "Did you forget to configure Croct's middleware?", CORS errors.

croct-tech/agent-skills

>- Use when designing or changing Croct content models: regular vs union components, what becomes a component, slot, structure, or primitive attribute; writing component schema JSON (`structure`, `union`, `reference`, `text`, `number`, `boolean`, `list`, `@croct/file`, `@croct/richText` rich text, `format`, `choices`, `optional`, `private`, `position`); writing content definition JSON (`static`/`dynamic` values, `nullable`, `default`, `{{placeholder}}` paths); slot default, localized, experience, experiment, or content group content; schema limit errors (30 attributes, 6 nesting levels, 10 union members, complexity score 50); component versioning and breaking changes (`home-hero@2`); refactoring (duplicate and modify, duplicate and replace, flatten and merge); Markdown in text attributes with `@croct/md-lite`. Phrasings: "model content for a hero", "add an attribute to the banner component", "support variations", "component is too complex", "localize the hero", "translations", `preferredLocale`.

Habilidades Relacionadas