# CUDA Python CI Pipeline SVG Regeneration Instructions

This file contains the prompt and requirements for regenerating `ci-pipeline.svg` with the same styling and content.

## Styling Requirements

- Hand-drawn Excalidraw-style design with rough, sketchy borders
- Comic Sans MS font family for all text
- Imperfect lines and curves that mimic hand-drawn aesthetics
- Canvas size: 900x800 pixels
- Color scheme:
  - Trigger Events: #e8f4fd background, #2196F3 border, #1976D2 text
  - Build Stage: #f3e5f5 background, #9C27B0 border, #7B1FA2 text
  - Artifact Storage: #fff3e0 background, #FF9800 border, #F57C00 text
  - Test Stage: #e8f5e8 background, #4CAF50 border, #388E3C text
  - Release Pipeline: #ffebee background, #f44336 border, #D32F2F text

## Content Structure

1. **Title**: "CUDA Python CI Pipeline Flow"

2. **Trigger Events** (top blue box):
   - Push to main branch
   - Pull request
   - Manual workflow dispatch

3. **Build Stage** (purple box):
   - Three platform boxes: linux-64 (Self-hosted), linux-aarch64 (Self-hosted), win-64 (GitHub-hosted)
   - Details: Python versions 3.9-3.13, CUDA 13.0.0 (build-time)
   - Components: cuda-core, cuda-bindings, cuda-pathfinder, cuda-python

4. **Artifact Storage** (orange box):
   - GitHub Artifacts box: Wheel files (.whl), Test artifacts, Documentation (30-day retention)
   - GitHub Cache box: Mini CTK cache

5. **Test Stage** (green box):
   - Three platform boxes: linux-64 (Self-hosted), linux-aarch64 (Self-hosted), win-64 (GitHub-hosted)
   - Details: Download wheels from artifacts, Test against multiple CUDA runtime versions, Run Python unit tests, Cython tests, examples
   - Artifact Flows (in red text):
     • cuda-pathfinder: main → backport
     • cuda-bindings: backport → main

6. **Release Pipeline** (red box):
   - Three sequential boxes: Validation → Publishing → Documentation
   - Validation: Artifact integrity, Git tag verification
   - Publishing: PyPI/TestPyPI, Component or all releases
   - Documentation: GitHub Pages, Release notes
   - Details: Manual workflow dispatch with run ID, Supports individual component or full releases

## Arrow Requirements

- Main flow arrows: Trigger → Build → Artifact → Test → Release
- Additional artifact flow arrows (dashed, orange #FF9800):
  - From GitHub Cache (mini CTK) back to Build Stage with "mini CTK reuse" label
  - From GitHub Artifacts (wheels) to Release Pipeline with "wheel fetch" label
  - **NEW**: From GitHub Cache (mini CTK) to Test Stage with "mini CTK reuse" label
  - **NEW**: From GitHub Artifacts (wheels) to Test Stage with "wheel fetch" label
- Arrow marker definition with hand-drawn style (orange arrow heads, not black)
- Use stroke-dasharray="5,3" for artifact flow arrows

## Critical Arrow Positioning Requirements (UPDATED)

**IMPORTANT**: Arrows must NOT overlap with stage boxes. Ensure proper clearance:

1. **Mini CTK reuse arrow** (GitHub Cache → Build Stage):
   - Arrow endpoint Y coordinate must be BELOW the Build Stage box edge (y=292)
   - Use y=295 or greater for the endpoint to ensure no overlap
   - Position "mini CTK reuse" text to the RIGHT of the arrow (not left) for less visual clutter
   - Text color should be orange (#FF9800) to match arrow

2. **Wheel fetch arrow** (GitHub Artifacts → Release Pipeline):
   - Arrow endpoint Y coordinate must be ABOVE the Release Pipeline box edge (y=652)
   - Use y=645 or smaller for the endpoint to provide proper margin
   - Position "wheel fetch" text between Test Stage and Release Pipeline boxes
   - Text should be to the LEFT of the arrow for better spacing

## Font Size Requirements (UPDATED)

- ALL text labels must use consistent 12pt font size for readability
- No 9pt text - this is too small and hard to read
- Title: 16pt, Stage headers: 14pt, All other text: 12pt

## Key Features

- All boxes use rough, hand-drawn paths (not perfect rectangles)
- Text should be properly sized and positioned within boxes
- Platform boxes within each stage should be clearly separated
- Maintain consistent spacing and alignment
- Orange arrow heads must match the orange arrow color

## Text Positioning

- Use text-anchor="middle" for centered headers
- Use text-anchor="start" for left-aligned bullet points
- Ensure all text fits within their enclosing boxes
- Use transforms for angled text labels on artifact flow arrows
- Artifact flow arrow text positioning is critical - follow positioning requirements above

## Recent Manual Adjustments Applied

- Fixed arrow endpoint positioning to prevent overlap with stage boxes
- Moved mini CTK reuse arrow endpoint from y=285 to y=295
- Moved wheel fetch arrow endpoint from y=650 to y=645
- Repositioned text labels for better visual separation
- Standardized all text to 12pt font size for consistency
- Changed arrow heads from black to orange to match arrow color
