> ## 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.

# PRDs in Sprint-Tickets umwandeln

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="Verwandle PRDs in Sprint-Tickets" description="Zeige Devin ein Notion‑PRD und erhalte klar abgegrenzte Linear‑Tickets für jedes Arbeitspaket." prompt="Lies das PRD auf dieser Notion‑Seite: [Notion‑URL einfügen]. Untersuche unsere Codebasis, um die aktuelle Architektur zu verstehen, und zerlege das Projekt anschließend in unabhängige Arbeitspakete. Erstelle für jedes Arbeitspaket ein Linear‑Ticket mit einer Beschreibung, Akzeptanzkriterien, einer Komplexitätsschätzung (S/M/L) und einer Liste der zu ändernden Dateien." category="Projektmanagement" features="Integrationen, MCP" />

<div className="uc-detail-wrapper">
  <Tip>Möchtest du das nicht manuell einrichten? Füge einen Link zu dieser Seite in eine Devin-Sitzung ein und bitte Devin, alles für dich einzurichten.</Tip>

  <Steps>
    <Step title="Verbinde Notion und Linear">
      Devin liest dein PRD direkt aus Notion über den [Notion MCP](/de/work-with-devin/mcp). Gehe zu **Settings > Connections > MCP servers**, suche **Notion** und klicke auf **Enable**. Du wirst aufgefordert, den Zugriff auf deinen Notion‑Workspace zu autorisieren – gewähre Leserechte für den Workspace, in dem deine PRDs liegen.

      Deine [Linear integration](/de/integrations/linear) muss ebenfalls verbunden sein. Gehe zu **Settings > Connections > Linear** und klicke auf **Connect**, dann wähle die Teams aus, in denen Devin Tickets erstellen soll. Sobald die Verbindung steht, hat Devin automatisch native Linear‑Tools – kein separater Linear MCP erforderlich.
    </Step>

    <Step title="Zeige Devin dein PRD">
      Teile die URL der Notion‑Seite und sage Devin genau, wie die Tickets strukturiert sein sollen. Sei konkret beim Linear‑Projektnamen, deinem Ticketformat und allen Teamkonventionen.

      <PromptBlock>
        ```txt PRD to tickets theme={null}
        Read the PRD at this Notion page:
        https://notion.so/yourteam/user-profiles-v2-abc123

        Investigate our codebase to understand the current user profile
        architecture, then break this project into independent work packages.

        For each work package, create a Linear ticket in the "User Profiles V2"
        project with:
        - A clear description of the change and why it's needed
        - Acceptance criteria
        - Complexity estimate (S/M/L)
        - List of files likely to be modified

        Order the tickets by suggested implementation sequence and note
        any dependencies between them.
        ```
      </PromptBlock>

      Wenn dein Team einer bestimmten Ticketvorlage folgt, füge sie als [Knowledge](/de/product-guides/knowledge)-Eintrag hinzu, statt sie in jedem Prompt zu wiederholen. Zum Beispiel: "Alle Engineering‑Tickets müssen enthalten: Description, Acceptance Criteria, Technical Notes und T‑Shirt‑Größenschätzung." Devin wendet Knowledge automatisch in jeder Sitzung an.
    </Step>

    <Step title="Überprüfe die Ticketaufgliederung">
      Devin liest das vollständige PRD über den Notion MCP, durchsucht deine Codebasis, um die relevante Architektur zuzuordnen, und erstellt dann Linear‑Tickets, die auf unabhängige Codegrenzen zugeschnitten sind. Devin postet eine Zusammenfassung wie diese:

      | Ticket | Titel                                                                                 | Größe | Abhängigkeiten |
      | ------ | ------------------------------------------------------------------------------------- | ----- | -------------- |
      | UP-101 | Endpunkt für Avatar‑Upload unter `/api/users/avatar` hinzufügen                       | S     | Keine          |
      | UP-102 | Profil‑Einstellungsseite in `src/pages/settings/profile` erstellen                    | M     | Keine          |
      | UP-103 | `users`‑Tabelle migrieren, um Bio und Social Links zu unterstützen                    | M     | Keine          |
      | UP-104 | Komponente für Profil‑Vorschaukarte bauen                                             | S     | UP-103         |
      | UP-105 | Umschalter für öffentliche/private Sichtbarkeit zu den Profileinstellungen hinzufügen | M     | UP-103         |
      | UP-106 | Neue Profilfelder für die Benutzersuche in Elasticsearch indexieren                   | L     | UP-103         |

      Jedes Linear‑Ticket enthält Akzeptanzkriterien, Dateipfade und Implementierungshinweise, die aus dem tatsächlichen PRD und der Codebasis stammen – keine generischen Beschreibungen.
    </Step>

    <Step title="Verfeinere und starte die Implementierung">
      Überprüfe die Tickets in Linear. Wenn eines zu umfangreich ist, bitte Devin, es aufzuteilen. Wenn du bereit bist, kannst du Devin in Linear jedem dieser Tickets zuweisen, um mit der Implementierung zu beginnen, oder das Label `!implement` hinzufügen, um das Standard‑Implementierungs‑Playbook zu verwenden.

      <PromptBlock playbookId="b6ba73c577084d2392720a2abf51dc26">
        ```txt Implement a ticket theme={null}
        Implement UP-101: Add avatar upload endpoint to /api/users/avatar.
        Follow the acceptance criteria in the ticket. Open a PR when done.
        ```
      </PromptBlock>
    </Step>
  </Steps>
</div>
