> ## Documentation Index
> Fetch the complete documentation index at: https://docs.devinenterprise.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Transforme PRDs em itens de sprint

export const UseCaseHero = ({title, description, prompt, category, features, devinUrl, agent, intent, playbookId, type}) => {
  const encodedPrompt = encodeURIComponent(prompt || '');
  const tag = 'docs-use-case-gallery';
  const utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=hero-cta';
  const agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  const devinHref = type === 'schedule' ? 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + (prompt ? '&prompt=' + encodedPrompt : '') : type === 'review' ? 'https://app.devin.ai/review?' + utm : agent === 'ada' ? 'https://app.devin.ai/search?' + utm + '&noSubmit=true' + (prompt ? '&prompt=' + encodedPrompt : '') : devinUrl ? devinUrl.includes('?') ? devinUrl + '&' + utm + agentParams : devinUrl + '?' + utm + agentParams : prompt ? 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encodedPrompt : 'https://app.devin.ai/?' + utm + agentParams;
  const buttonLabel = type === 'schedule' ? 'Schedule in Devin ↗' : type === 'review' ? 'Set Up Devin Review ↗' : agent === 'advanced' ? 'Try in Devin ↗' : agent === 'dana' ? 'Try in Dana ↗' : agent === 'ada' ? 'Try in Ask Devin ↗' : 'Try in Devin ↗';
  const featureList = features ? features.split(',').map(f => f.trim()) : [];
  return <div className="uc-hero">
      <div className="uc-hero-inner">
        <div className="uc-hero-left">
          <h1 className="uc-hero-title">{title}</h1>
          <p className="uc-hero-desc">{description}</p>
          <div>
            <a href={devinHref} target="_blank" rel="noopener noreferrer" className="try-in-devin-btn">
              {buttonLabel}
            </a>
          </div>
        </div>
        <div className="uc-hero-meta">
          <div className="uc-meta-item">
            <span className="uc-meta-label">Author</span>
            <span className="uc-meta-value">Cognition</span>
          </div>
          <div className="uc-meta-item">
            <span className="uc-meta-label">Category</span>
            <span className="uc-meta-value">{category}</span>
          </div>
          {featureList.length > 0 && <div className="uc-meta-item">
              <span className="uc-meta-label">Features</span>
              <span className="uc-meta-value">{featureList.join(', ')}</span>
            </div>}
        </div>
      </div>
    </div>;
};

export const PromptBlock = ({children, type, agent, intent, playbookId}) => {
  var utm = 'utm_source=docs&utm_medium=use-case-gallery&utm_campaign=prompt-block';
  var tag = 'docs-use-case-gallery';
  var agentParams = (agent ? '&agent=' + agent : '') + (intent ? '&intent=' + intent : '') + (playbookId ? '&playbookId=' + playbookId : '');
  var label = type === 'schedule' ? 'Schedule in Devin' : type === 'playbook' ? 'Create Playbook' : type === 'knowledge' ? 'Add to Knowledge' : agent === 'advanced' ? 'Try in Devin' : agent === 'dana' ? 'Try in Dana' : agent === 'ada' ? 'Try in Ask Devin' : 'Try in Devin';
  var buildUrl = function (text) {
    var encoded = encodeURIComponent(text);
    if (type === 'schedule') return 'https://app.devin.ai/settings/schedules/create?' + utm + agentParams + '&prompt=' + encoded;
    if (type === 'playbook') return 'https://app.devin.ai/settings/playbooks/create?' + utm + '&body=' + encoded;
    if (type === 'knowledge') return 'https://app.devin.ai/knowledge?' + utm + '&body=' + encoded;
    if (agent === 'ada') return 'https://app.devin.ai/search?' + utm + '&noSubmit=true&prompt=' + encoded;
    return 'https://app.devin.ai/?tags=' + tag + '&' + utm + agentParams + '&prompt=' + encoded;
  };
  const ref = React.useRef(null);
  const [href, setHref] = React.useState('#');
  React.useEffect(() => {
    if (!ref.current) return;
    var codeEl = ref.current.querySelector('pre code');
    if (codeEl) {
      var text = codeEl.textContent.trim();
      if (text) setHref(buildUrl(text));
    }
    var header = ref.current.querySelector('[data-component-part="code-block-header"]');
    if (header && !header.querySelector('.prompt-block-devin-link')) {
      var link = document.createElement('a');
      link.href = href;
      link.target = '_blank';
      link.rel = 'noopener noreferrer';
      link.className = 'prompt-block-devin-link';
      link.style.cssText = 'display:inline-flex;align-items:center;gap:6px;text-decoration:none;color:#fff;font-size:11px;font-weight:500;padding:4px 10px;border-radius:6px;white-space:nowrap;background:#317CFF;transition:background 0.2s;margin-left:8px;';
      link.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg> ' + label;
      link.onmouseenter = function () {
        link.style.background = '#2968D9';
      };
      link.onmouseleave = function () {
        link.style.background = '#317CFF';
      };
      header.appendChild(link);
    }
    var existingLink = ref.current.querySelector('.prompt-block-devin-link');
    if (existingLink && href !== '#') existingLink.href = href;
  });
  return <div className="prompt-block" ref={ref}>{children}</div>;
};

<UseCaseHero title="Transforme PRDs em tickets de sprint" description="Aponte o Devin para um PRD no Notion e obtenha tickets do Linear com escopo definido para cada pacote de trabalho." prompt="Leia o PRD nesta página do Notion: [cole a URL do Notion]. Investigue nossa base de código para entender a arquitetura atual e, em seguida, divida o projeto em pacotes de trabalho independentes. Para cada pacote de trabalho, crie um ticket no Linear com uma descrição, critérios de aceitação, estimativa de complexidade (S/M/L) e lista de arquivos a serem modificados." category="Gerenciamento de projetos" features="Integrações, MCP" />

<div className="uc-detail-wrapper">
  <Tip>Não quer configurar isso manualmente? Cole o link desta página em uma sessão do Devin e peça para ele configurar tudo para você.</Tip>

  <Steps>
    <Step title="Conecte Notion e Linear">
      Devin lê seu PRD diretamente do Notion usando o [Notion MCP](/pt-BR/work-with-devin/mcp). Vá para **Settings > Connections > MCP servers**, encontre **Notion** e clique em **Enable**. Você será solicitado a autorizar o acesso ao seu workspace do Notion — conceda acesso de leitura ao workspace onde seus PRDs estão.

      Sua [integração com o Linear](/pt-BR/integrations/linear) também precisa estar conectada. Vá para **Settings > Connections > Linear** e clique em **Connect**. Em seguida, selecione os times nos quais o Devin deve criar tickets. Depois de conectado, o Devin passa a ter ferramentas nativas do Linear automaticamente — nenhum MCP separado do Linear é necessário.
    </Step>

    <Step title="Aponte o Devin para o seu PRD">
      Compartilhe a URL da página do Notion e diga ao Devin exatamente como estruturar os tickets. Seja específico sobre o nome do projeto no Linear, o formato dos seus tickets e quaisquer convenções do time.

      <PromptBlock>
        ```txt PRD to tickets theme={null}
        Leia o PRD nesta página do Notion:
        https://notion.so/yourteam/user-profiles-v2-abc123

        Investigue nossa base de código para entender a arquitetura atual de
        perfis de usuário e, em seguida, divida este projeto em pacotes de
        trabalho independentes.

        Para cada pacote de trabalho, crie um ticket no Linear no projeto
        "User Profiles V2" com:
        - Uma descrição clara da mudança e por que ela é necessária
        - Critérios de aceitação
        - Estimativa de complexidade (S/M/L)
        - Lista de arquivos que provavelmente serão modificados

        Ordene os tickets pela sequência de implementação sugerida e indique
        quaisquer dependências entre eles.
        ```
      </PromptBlock>

      Se o seu time segue um template específico de ticket, adicione-o como uma entrada em [Knowledge](/pt-BR/product-guides/knowledge) em vez de repeti-lo em todo prompt. Por exemplo: "Todos os tickets de engenharia devem incluir: Descrição, Critérios de Aceitação, Notas Técnicas e estimativa de tamanho em T-shirt." Devin aplica Knowledge automaticamente a todas as sessões.
    </Step>

    <Step title="Revise o detalhamento dos tickets">
      Devin lê o PRD completo via Notion MCP, pesquisa sua base de código para mapear a arquitetura relevante e então cria tickets no Linear com escopo alinhado a fronteiras de código independentes. Ele publica um resumo como este:

      | Ticket | Título                                                                  | Tamanho | Dependências |
      | ------ | ----------------------------------------------------------------------- | ------- | ------------ |
      | UP-101 | Adicionar endpoint de upload de avatar em `/api/users/avatar`           | S       | Nenhuma      |
      | UP-102 | Criar página de configurações de perfil em `src/pages/settings/profile` | M       | Nenhuma      |
      | UP-103 | Migrar tabela `users` para suportar bio e links sociais                 | M       | Nenhuma      |
      | UP-104 | Construir componente de cartão de pré-visualização de perfil            | S       | UP-103       |
      | UP-105 | Adicionar alternância público/privado às configurações de perfil        | M       | UP-103       |
      | UP-106 | Indexar novos campos de perfil no Elasticsearch para busca de usuários  | L       | UP-103       |

      Cada ticket no Linear inclui critérios de aceitação, caminhos de arquivos e notas de implementação extraídos do PRD e da base de código reais — não de descrições genéricas.
    </Step>

    <Step title="Refine e inicie a implementação">
      Revise os tickets no Linear. Se algum estiver muito amplo, peça ao Devin para dividi-lo. Quando estiver pronto, você pode atribuir o Devin a cada um desses tickets no Linear para iniciar a implementação ou adicionar o rótulo `!implement` para usar o playbook de implementação padrão.

      <PromptBlock playbookId="b6ba73c577084d2392720a2abf51dc26">
        ```txt Implement a ticket theme={null}
        Implemente UP-101: adicionar endpoint de upload de avatar em /api/users/avatar.
        Siga os critérios de aceitação no ticket. Abra uma PR quando terminar.
        ```
      </PromptBlock>
    </Step>
  </Steps>
</div>
