chore: remove unused assets from git tracking
Keep only the 17 SVGs actually referenced in README.md. Removed 13 unused files from tracking (still on local disk).
|
|
@ -1,232 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="380" viewBox="0 0 850 380">
|
||||
|
||||
<!-- 1. BACKGROUND -->
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
|
||||
<!-- 2. TERMINAL CHROME BAR -->
|
||||
<rect x="0" y="0" width="850" height="46" rx="8" fill="#161b22"/>
|
||||
<rect x="0" y="30" width="850" height="16" fill="#161b22"/>
|
||||
<circle cx="28" cy="23" r="6" fill="#ff5f57"/>
|
||||
<circle cx="48" cy="23" r="6" fill="#febc2e"/>
|
||||
<circle cx="68" cy="23" r="6" fill="#28c840"/>
|
||||
<text x="425" y="28" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681" text-anchor="middle">pbi-cli -- command showcase</text>
|
||||
|
||||
<!-- 3. VERTICAL COLUMN DIVIDER -->
|
||||
<line x1="425" y1="46" x2="425" y2="295" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- 4. COLUMN HEADERS -->
|
||||
<rect x="35" y="52" width="100" height="21" rx="10" fill="#58a6ff" fill-opacity="0.12" stroke="#58a6ff" stroke-width="1"/>
|
||||
<text x="85" y="66" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle" font-weight="bold">MODELING</text>
|
||||
<rect x="440" y="52" width="105" height="21" rx="10" fill="#06d6a0" fill-opacity="0.12" stroke="#06d6a0" stroke-width="1"/>
|
||||
<text x="492" y="66" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#06d6a0" text-anchor="middle" font-weight="bold">REPORTING</text>
|
||||
|
||||
<!-- 5. ROW BACKGROUND HIGHLIGHTS -->
|
||||
<rect x="0" y="84" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
<rect x="425" y="84" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
<rect x="0" y="154" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
<rect x="425" y="154" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
<rect x="0" y="224" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
<rect x="425" y="224" width="425" height="33" fill="#58a6ff" fill-opacity="0.02"/>
|
||||
|
||||
<!-- ===== LEFT COLUMN COMMANDS ===== -->
|
||||
|
||||
<!-- Row 1 y=102: model export -->
|
||||
<text x="38" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> model export</text>
|
||||
|
||||
<!-- Row 2 y=137: dax run -->
|
||||
<text x="38" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> dax run</text>
|
||||
|
||||
<!-- Row 3 y=172: dax add-measure -->
|
||||
<text x="38" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> dax add-measure</text>
|
||||
|
||||
<!-- Row 4 y=207: table list -->
|
||||
<text x="38" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> table list</text>
|
||||
|
||||
<!-- Row 5 y=242: relationship list -->
|
||||
<text x="38" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> relationship list</text>
|
||||
|
||||
<!-- Row 6 y=277: model import -->
|
||||
<text x="38" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="50" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="98" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#a5d6ff"> model import</text>
|
||||
|
||||
<!-- ===== RIGHT COLUMN COMMANDS ===== -->
|
||||
|
||||
<!-- Row 1 y=102: report add-visual -->
|
||||
<text x="443" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="102" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report add-visual</text>
|
||||
|
||||
<!-- Row 2 y=137: report bind-data -->
|
||||
<text x="443" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="137" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report bind-data</text>
|
||||
|
||||
<!-- Row 3 y=172: report add-page -->
|
||||
<text x="443" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="172" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report add-page</text>
|
||||
|
||||
<!-- Row 4 y=207: report list-visuals -->
|
||||
<text x="443" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="207" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report list-visuals</text>
|
||||
|
||||
<!-- Row 5 y=242: report update-theme -->
|
||||
<text x="443" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="242" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report update-theme</text>
|
||||
|
||||
<!-- Row 6 y=277: report export -->
|
||||
<text x="443" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#6e7681">$</text>
|
||||
<text x="455" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#F2C811">pbi-cli</text>
|
||||
<text x="503" y="277" font-family="'Courier New', Courier, monospace" font-size="12" fill="#7ee787"> report export</text>
|
||||
|
||||
<!-- ===== LEFT COLUMN VISUAL ICONS (replacing text badges) ===== -->
|
||||
|
||||
<!-- Row 1: model export → file with up-arrow (TMDL export) -->
|
||||
<g transform="translate(373, 91)">
|
||||
<rect x="0" y="2" width="16" height="14" rx="1.5" fill="#58a6ff" fill-opacity="0.12" stroke="#58a6ff" stroke-width="1"/>
|
||||
<line x1="8" y1="11" x2="8" y2="5" stroke="#58a6ff" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<polygon points="8,3 5,7 11,7" fill="#58a6ff"/>
|
||||
<line x1="3" y1="13" x2="13" y2="13" stroke="#58a6ff" stroke-width="1" opacity="0.5"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 2: dax run → play triangle (DAX execute) -->
|
||||
<g transform="translate(375, 126)">
|
||||
<circle cx="8" cy="8" r="8" fill="#F2C811" fill-opacity="0.12" stroke="#F2C811" stroke-width="1"/>
|
||||
<polygon points="5,4 5,12 13,8" fill="#F2C811" fill-opacity="0.9"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 3: dax add-measure → sparkle / AI star -->
|
||||
<g transform="translate(377, 161)">
|
||||
<path d="M8,0 L9.5,6 L16,8 L9.5,10 L8,16 L6.5,10 L0,8 L6.5,6 Z" fill="#c084fc" fill-opacity="0.85"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 4: table list → rows/grid icon -->
|
||||
<g transform="translate(373, 196)">
|
||||
<rect x="0" y="0" width="16" height="3" rx="1" fill="#8b949e" fill-opacity="0.8"/>
|
||||
<rect x="0" y="5" width="16" height="3" rx="1" fill="#8b949e" fill-opacity="0.6"/>
|
||||
<rect x="0" y="10" width="16" height="3" rx="1" fill="#8b949e" fill-opacity="0.4"/>
|
||||
<rect x="0" y="15" width="16" height="3" rx="1" fill="#8b949e" fill-opacity="0.25"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 5: relationship list → two nodes with edge -->
|
||||
<g transform="translate(373, 231)">
|
||||
<circle cx="4" cy="8" r="4" fill="none" stroke="#8b949e" stroke-width="1.5"/>
|
||||
<circle cx="16" cy="4" r="4" fill="none" stroke="#8b949e" stroke-width="1.5"/>
|
||||
<line x1="4" y1="4" x2="16" y2="4" stroke="#8b949e" stroke-width="1.5"/>
|
||||
<circle cx="4" cy="4" r="1.5" fill="#8b949e"/>
|
||||
<circle cx="16" cy="4" r="1.5" fill="#8b949e"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 6: model import → file with down-arrow -->
|
||||
<g transform="translate(373, 266)">
|
||||
<rect x="0" y="2" width="16" height="14" rx="1.5" fill="#58a6ff" fill-opacity="0.12" stroke="#58a6ff" stroke-width="1"/>
|
||||
<line x1="8" y1="5" x2="8" y2="11" stroke="#58a6ff" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<polygon points="8,14 5,9 11,9" fill="#58a6ff"/>
|
||||
<line x1="3" y1="13" x2="13" y2="13" stroke="#58a6ff" stroke-width="1" opacity="0.5"/>
|
||||
</g>
|
||||
|
||||
<!-- ===== RIGHT COLUMN VISUAL ICONS (replacing text badges) ===== -->
|
||||
|
||||
<!-- Row 1: report add-visual → small bar chart in frame -->
|
||||
<g transform="translate(796, 91)">
|
||||
<rect x="0" y="0" width="20" height="16" rx="2" fill="none" stroke="#06d6a0" stroke-width="1"/>
|
||||
<rect x="2" y="8" width="3" height="6" rx="0.5" fill="#06d6a0" fill-opacity="0.6"/>
|
||||
<rect x="7" y="5" width="3" height="9" rx="0.5" fill="#06d6a0" fill-opacity="0.75"/>
|
||||
<rect x="12" y="2" width="3" height="12" rx="0.5" fill="#06d6a0" fill-opacity="0.9"/>
|
||||
<rect x="17" y="4" width="2" height="10" rx="0.5" fill="#06d6a0" fill-opacity="0.8"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 2: report bind-data → link chain -->
|
||||
<g transform="translate(796, 126)">
|
||||
<circle cx="5" cy="8" r="5" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<circle cx="15" cy="8" r="5" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<rect x="7" y="5" width="6" height="6" rx="2" fill="#06d6a0" fill-opacity="0.35" stroke="#06d6a0" stroke-width="1"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 3: report add-page → page with plus -->
|
||||
<g transform="translate(796, 161)">
|
||||
<rect x="0" y="0" width="14" height="18" rx="2" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<line x1="14" y1="8" x2="20" y2="8" stroke="#06d6a0" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<line x1="17" y1="5" x2="17" y2="11" stroke="#06d6a0" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<line x1="3" y1="6" x2="11" y2="6" stroke="#06d6a0" stroke-width="1" opacity="0.4"/>
|
||||
<line x1="3" y1="9" x2="11" y2="9" stroke="#06d6a0" stroke-width="1" opacity="0.4"/>
|
||||
<line x1="3" y1="12" x2="9" y2="12" stroke="#06d6a0" stroke-width="1" opacity="0.4"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 4: report list-visuals → eye / view icon -->
|
||||
<g transform="translate(796, 196)">
|
||||
<path d="M0,8 C3,2 17,2 20,8 C17,14 3,14 0,8 Z" fill="none" stroke="#8b949e" stroke-width="1.5"/>
|
||||
<circle cx="10" cy="8" r="3.5" fill="none" stroke="#8b949e" stroke-width="1.5"/>
|
||||
<circle cx="10" cy="8" r="1.5" fill="#8b949e" fill-opacity="0.7"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 5: report update-theme → palette circle with color dots -->
|
||||
<g transform="translate(796, 230)">
|
||||
<circle cx="10" cy="10" r="9" fill="none" stroke="#FF9500" stroke-width="1.5"/>
|
||||
<circle cx="10" cy="12" r="3" fill="#0d1117" stroke="#FF9500" stroke-width="1"/>
|
||||
<circle cx="5" cy="5" r="2.5" fill="#06d6a0" fill-opacity="0.9"/>
|
||||
<circle cx="10" cy="2" r="2.5" fill="#F2C811" fill-opacity="0.9"/>
|
||||
<circle cx="15" cy="5" r="2.5" fill="#58a6ff" fill-opacity="0.9"/>
|
||||
<circle cx="17" cy="11" r="2.5" fill="#c084fc" fill-opacity="0.9"/>
|
||||
</g>
|
||||
|
||||
<!-- Row 6: report export → box with up-arrow -->
|
||||
<g transform="translate(796, 266)">
|
||||
<rect x="0" y="6" width="20" height="12" rx="2" fill="none" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
<line x1="10" y1="12" x2="10" y2="2" stroke="#58a6ff" stroke-width="1.5" stroke-linecap="round"/>
|
||||
<polygon points="10,0 6,5 14,5" fill="#58a6ff"/>
|
||||
<line x1="4" y1="10" x2="4" y2="18" stroke="#58a6ff" stroke-width="1" opacity="0.3"/>
|
||||
<line x1="16" y1="10" x2="16" y2="18" stroke="#58a6ff" stroke-width="1" opacity="0.3"/>
|
||||
</g>
|
||||
|
||||
<!-- 7. HORIZONTAL SEPARATOR ABOVE FOOTER -->
|
||||
<line x1="0" y1="295" x2="850" y2="295" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- 8. FOOTER BAR -->
|
||||
<rect x="0" y="295" width="850" height="85" fill="#161b22"/>
|
||||
|
||||
<!-- Footer stat badges with visual icons -->
|
||||
|
||||
<!-- Badge 1: 30+ commands -->
|
||||
<rect x="153" y="318" width="120" height="36" rx="14" fill="#58a6ff" fill-opacity="0.1" stroke="#58a6ff" stroke-width="1"/>
|
||||
<!-- Terminal icon -->
|
||||
<g transform="translate(163, 327)">
|
||||
<rect x="0" y="0" width="16" height="12" rx="2" fill="#58a6ff" fill-opacity="0.15" stroke="#58a6ff" stroke-width="1"/>
|
||||
<text x="2" y="9" font-family="'Courier New', monospace" font-size="7" fill="#58a6ff">$_</text>
|
||||
</g>
|
||||
<text x="225" y="338" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#58a6ff" text-anchor="middle" font-weight="bold">30+ commands</text>
|
||||
|
||||
<!-- Badge 2: Both layers with icon -->
|
||||
<rect x="365" y="318" width="120" height="36" rx="14" fill="#F2C811" fill-opacity="0.1" stroke="#F2C811" stroke-width="1"/>
|
||||
<!-- Stack icon -->
|
||||
<g transform="translate(375, 327)">
|
||||
<rect x="0" y="0" width="16" height="4" rx="1" fill="#58a6ff" fill-opacity="0.7"/>
|
||||
<rect x="0" y="6" width="16" height="4" rx="1" fill="#06d6a0" fill-opacity="0.7"/>
|
||||
</g>
|
||||
<text x="425" y="338" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#F2C811" text-anchor="middle" font-weight="bold">Both layers</text>
|
||||
|
||||
<!-- Badge 3: AI-native with sparkle icon -->
|
||||
<rect x="577" y="318" width="120" height="36" rx="14" fill="#c084fc" fill-opacity="0.1" stroke="#c084fc" stroke-width="1"/>
|
||||
<!-- Sparkle icon -->
|
||||
<g transform="translate(584, 326)">
|
||||
<path d="M6,0 L7.2,4.8 L12,6 L7.2,7.2 L6,12 L4.8,7.2 L0,6 L4.8,4.8 Z" fill="#c084fc" fill-opacity="0.85"/>
|
||||
</g>
|
||||
<text x="637" y="338" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c084fc" text-anchor="middle" font-weight="bold">AI-native</text>
|
||||
|
||||
<!-- Footer subtext -->
|
||||
<text x="425" y="368" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#6e7681" text-anchor="middle">pipx install pbi-cli-tool</text>
|
||||
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 14 KiB |
|
|
@ -1,70 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="480" viewBox="0 0 850 480">
|
||||
<defs>
|
||||
<style>
|
||||
@keyframes blink {
|
||||
0%, 100% { opacity: 1; }
|
||||
50% { opacity: 0; }
|
||||
}
|
||||
.cursor { animation: blink 1s step-end infinite; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="850" height="480" fill="#0d1117"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="425" y="52" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="32" font-weight="bold" fill="#F2C811">Start Vibe Modeling</text>
|
||||
|
||||
<!-- Subtitle -->
|
||||
<text x="425" y="80" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="16" fill="#8b949e">Two commands to transform your Power BI workflow</text>
|
||||
|
||||
<!-- Command 1 background -->
|
||||
<rect x="75" y="105" width="700" height="50" rx="8" ry="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Command 1 text -->
|
||||
<text y="137" font-family="'Cascadia Code', 'Fira Code', 'Consolas', monospace" font-size="18">
|
||||
<tspan x="100" fill="#06d6a0">$</tspan>
|
||||
<tspan fill="#c9d1d9"> pipx install pbi-cli-tool</tspan>
|
||||
</text>
|
||||
|
||||
<!-- Blinking cursor -->
|
||||
<rect class="cursor" x="407" y="119" width="2" height="20" fill="#F2C811"/>
|
||||
|
||||
<!-- Command 2 background -->
|
||||
<rect x="75" y="175" width="700" height="70" rx="8" ry="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Command 2 line 1 -->
|
||||
<text y="205" font-family="'Cascadia Code', 'Fira Code', 'Consolas', monospace" font-size="18">
|
||||
<tspan x="100" fill="#06d6a0">$</tspan>
|
||||
<tspan fill="#c9d1d9"> pbi connect</tspan>
|
||||
</text>
|
||||
|
||||
<!-- Command 2 line 2: checkmark + status -->
|
||||
<text y="230" font-family="'Cascadia Code', 'Fira Code', 'Consolas', monospace" font-size="16">
|
||||
<tspan x="110" fill="#06d6a0">✔ Connected! 7 skills installed.</tspan>
|
||||
</text>
|
||||
|
||||
<!-- Info card background -->
|
||||
<rect x="75" y="270" width="700" height="120" rx="8" ry="8" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3" stroke-width="1"/>
|
||||
|
||||
<!-- LinkedIn row -->
|
||||
<g transform="translate(425, 300)">
|
||||
<!-- LinkedIn "in" badge -->
|
||||
<rect x="-62" y="-14" width="22" height="18" rx="3" ry="3" fill="#0a66c2"/>
|
||||
<text x="-51" y="1" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="13" font-weight="bold" fill="#ffffff">in</text>
|
||||
<!-- LinkedIn handle -->
|
||||
<text x="-30" y="1" font-family="'Segoe UI', Arial, sans-serif" font-size="18" fill="#c9d1d9"> @minasaad1</text>
|
||||
</g>
|
||||
|
||||
<!-- Website -->
|
||||
<text x="425" y="340" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="20" font-weight="bold" fill="#F2C811">mina-saad.com</text>
|
||||
|
||||
<!-- GitHub -->
|
||||
<text x="425" y="372" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#58a6ff">github.com/MinaSaad1/pbi-cli</text>
|
||||
|
||||
<!-- Bottom section -->
|
||||
<text x="425" y="422" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="16" font-weight="600" fill="#c9d1d9">Open source. MIT License. Star it on GitHub.</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="456" text-anchor="middle" font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#8b949e">Like this? Share it with your Power BI team.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 3.2 KiB |
|
|
@ -1,86 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="580" viewBox="0 0 850 580">
|
||||
<defs>
|
||||
<filter id="shadow" x="-2%" y="-2%" width="104%" height="104%">
|
||||
<feDropShadow dx="0" dy="2" stdDeviation="4" flood-color="#000000" flood-opacity="0.3"/>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="850" height="580" fill="#0d1117"/>
|
||||
|
||||
<!-- Title Section -->
|
||||
<text x="425" y="38" font-family="Segoe UI, Arial, sans-serif" font-size="28" font-weight="bold" fill="#58a6ff" text-anchor="middle">DAX Skill</text>
|
||||
<text x="425" y="62" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle">Ask questions about your data in plain English</text>
|
||||
|
||||
<!-- Chat Container -->
|
||||
<rect x="40" y="80" width="770" height="410" rx="8" ry="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Header Bar -->
|
||||
<rect x="40" y="80" width="770" height="36" rx="8" ry="8" fill="#161b22"/>
|
||||
<rect x="40" y="108" width="770" height="8" fill="#161b22"/>
|
||||
<line x1="40" y1="116" x2="810" y2="116" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Traffic Lights -->
|
||||
<circle cx="64" cy="98" r="6" fill="#ff5f57"/>
|
||||
<circle cx="84" cy="98" r="6" fill="#febc2e"/>
|
||||
<circle cx="104" cy="98" r="6" fill="#28c840"/>
|
||||
|
||||
<!-- Claude Code Label -->
|
||||
<text x="130" y="103" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#d97757">Claude Code</text>
|
||||
|
||||
<!-- User Message Bubble -->
|
||||
<rect x="60" y="130" width="450" height="42" rx="12" ry="12" fill="#1a3a5c" stroke="#264d73" stroke-width="1"/>
|
||||
<text x="80" y="156" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#c9d1d9">What are the top 5 products by revenue?</text>
|
||||
|
||||
<!-- Claude Response 1: Querying -->
|
||||
<rect x="60" y="186" width="730" height="80" rx="12" ry="12" fill="#1c1c1c" stroke="#30363d" stroke-width="1"/>
|
||||
<text x="80" y="210" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e">Querying your model...</text>
|
||||
|
||||
<!-- Code Block -->
|
||||
<rect x="76" y="220" width="698" height="34" rx="6" ry="6" fill="#0d1117"/>
|
||||
<text x="92" y="242" font-family="Cascadia Code, Consolas, monospace" font-size="13" fill="#F2C811">EVALUATE TOPN(5, Products, [Revenue], DESC)</text>
|
||||
|
||||
<!-- Claude Response 2: Results Table -->
|
||||
<rect x="60" y="280" width="730" height="198" rx="12" ry="12" fill="#1c1c1c" stroke="#30363d" stroke-width="1"/>
|
||||
<text x="80" y="306" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#c9d1d9">Here are your results:</text>
|
||||
|
||||
<!-- Table Headers -->
|
||||
<text x="100" y="334" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#F2C811">Product</text>
|
||||
<text x="500" y="334" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#F2C811">Revenue</text>
|
||||
|
||||
<!-- Separator Line -->
|
||||
<line x1="80" y1="342" x2="770" y2="342" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Row 1 -->
|
||||
<text x="100" y="364" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#c9d1d9">Adventure Touring Bike</text>
|
||||
<text x="500" y="364" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#06d6a0">$423,000</text>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<text x="100" y="388" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#c9d1d9">Mountain Pro Series</text>
|
||||
<text x="500" y="388" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#06d6a0">$312,500</text>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<text x="100" y="412" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#c9d1d9">Road Elite Carbon</text>
|
||||
<text x="500" y="412" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#06d6a0">$287,200</text>
|
||||
|
||||
<!-- Row 4 -->
|
||||
<text x="100" y="436" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#c9d1d9">Urban Commuter X1</text>
|
||||
<text x="500" y="436" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#06d6a0">$198,400</text>
|
||||
|
||||
<!-- Row 5 -->
|
||||
<text x="100" y="460" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#c9d1d9">Trail Explorer 500</text>
|
||||
<text x="500" y="460" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#06d6a0">$156,800</text>
|
||||
|
||||
<!-- Capability Pills -->
|
||||
<rect x="155" y="504" width="150" height="32" rx="16" ry="16" fill="none" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
<text x="230" y="525" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#58a6ff" text-anchor="middle">Execute Queries</text>
|
||||
|
||||
<rect x="350" y="504" width="150" height="32" rx="16" ry="16" fill="none" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text x="425" y="525" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#F2C811" text-anchor="middle">Validate Syntax</text>
|
||||
|
||||
<rect x="545" y="504" width="150" height="32" rx="16" ry="16" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="620" y="525" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0" text-anchor="middle">Format Results</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="562" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#8b949e" text-anchor="middle">From question to answer in seconds. No DAX syntax required.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 5 KiB |
|
|
@ -1,151 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="580" viewBox="0 0 850 580">
|
||||
<defs>
|
||||
<marker id="arrowDown" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto">
|
||||
<path d="M1,1 L4,7 L7,1" fill="none" stroke="#7b61ff" stroke-width="1.5"/>
|
||||
</marker>
|
||||
<marker id="arrowRollback" markerWidth="8" markerHeight="8" refX="4" refY="4" orient="auto">
|
||||
<path d="M1,1 L4,7 L7,1" fill="none" stroke="#ff6b6b" stroke-width="1.5"/>
|
||||
</marker>
|
||||
<filter id="glow">
|
||||
<feGaussianBlur stdDeviation="2" result="blur"/>
|
||||
<feMerge>
|
||||
<feMergeNode in="blur"/>
|
||||
<feMergeNode in="SourceGraphic"/>
|
||||
</feMerge>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="850" height="580" fill="#0d1117"/>
|
||||
|
||||
<!-- Title Section -->
|
||||
<text x="425" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="28" font-weight="bold" fill="#F2C811" text-anchor="middle">Deploy + Secure</text>
|
||||
<text x="425" y="65" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle">Snapshot, restore, and lock down your model</text>
|
||||
|
||||
<!-- =============================== -->
|
||||
<!-- LEFT PANEL - Deployment Skill -->
|
||||
<!-- =============================== -->
|
||||
<rect x="25" y="85" width="390" height="390" rx="8" fill="#161b22" stroke="#7b61ff" stroke-width="2"/>
|
||||
|
||||
<!-- Panel Header -->
|
||||
<text x="220" y="115" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#7b61ff" text-anchor="middle">Deployment Skill</text>
|
||||
<line x1="45" y1="125" x2="395" y2="125" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- TMDL label -->
|
||||
<text x="55" y="160" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">TMDL</text>
|
||||
|
||||
<!-- Version History Flow -->
|
||||
<!-- v1 Baseline -->
|
||||
<rect x="120" y="145" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
|
||||
<text x="220" y="168" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v1 Baseline</text>
|
||||
|
||||
<!-- Arrow v1 -> v2 -->
|
||||
<line x1="220" y1="181" x2="220" y2="205" stroke="#7b61ff" stroke-width="2" marker-end="url(#arrowDown)"/>
|
||||
|
||||
<!-- v2 + Measures -->
|
||||
<rect x="120" y="210" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
|
||||
<text x="220" y="233" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v2 + Measures</text>
|
||||
|
||||
<!-- Arrow v2 -> v3 -->
|
||||
<line x1="220" y1="246" x2="220" y2="270" stroke="#7b61ff" stroke-width="2" marker-end="url(#arrowDown)"/>
|
||||
|
||||
<!-- v3 + RLS -->
|
||||
<rect x="120" y="275" width="200" height="36" rx="6" fill="#0d1117" stroke="#30363d" stroke-width="1.5"/>
|
||||
<text x="220" y="298" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9" text-anchor="middle">v3 + RLS</text>
|
||||
|
||||
<!-- Rollback curved arrow from v3 back to v1 -->
|
||||
<path d="M120,293 Q60,293 60,228 Q60,163 120,163" fill="none" stroke="#ff6b6b" stroke-width="2" stroke-dasharray="5,3" marker-end="url(#arrowRollback)"/>
|
||||
<text x="42" y="232" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#ff6b6b" text-anchor="middle" transform="rotate(-90, 42, 232)">Rollback</text>
|
||||
|
||||
<!-- Commands -->
|
||||
<text x="220" y="345" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi database export-tmdl</text>
|
||||
<text x="220" y="365" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi database import-tmdl</text>
|
||||
|
||||
<!-- Decorative icons for deployment -->
|
||||
<g transform="translate(340, 145)" opacity="0.4">
|
||||
<rect x="0" y="0" width="28" height="28" rx="4" fill="none" stroke="#7b61ff" stroke-width="1"/>
|
||||
<path d="M8,20 L14,8 L20,20 Z" fill="none" stroke="#7b61ff" stroke-width="1.2"/>
|
||||
</g>
|
||||
|
||||
<!-- =============================== -->
|
||||
<!-- RIGHT PANEL - Security Skill -->
|
||||
<!-- =============================== -->
|
||||
<rect x="435" y="85" width="390" height="390" rx="8" fill="#161b22" stroke="#06d6a0" stroke-width="2"/>
|
||||
|
||||
<!-- Panel Header -->
|
||||
<text x="630" y="115" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#06d6a0" text-anchor="middle">Security Skill</text>
|
||||
<line x1="455" y1="125" x2="805" y2="125" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- RLS User Icons -->
|
||||
<!-- East User -->
|
||||
<circle cx="510" cy="170" r="22" fill="#1a3a5c" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
<text x="510" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#58a6ff" text-anchor="middle">E</text>
|
||||
<text x="510" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">East</text>
|
||||
|
||||
<!-- West User -->
|
||||
<circle cx="630" cy="170" r="22" fill="#1a3a5c" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
<text x="630" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#58a6ff" text-anchor="middle">W</text>
|
||||
<text x="630" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">West</text>
|
||||
|
||||
<!-- Admin User -->
|
||||
<circle cx="750" cy="170" r="22" fill="#1a3a5c" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="750" y="176" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#06d6a0" text-anchor="middle">A</text>
|
||||
<text x="750" y="205" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">Admin</text>
|
||||
|
||||
<!-- Arrows from users to Filter -->
|
||||
<line x1="510" y1="192" x2="555" y2="248" stroke="#30363d" stroke-width="1.5"/>
|
||||
<line x1="630" y1="192" x2="630" y2="248" stroke="#30363d" stroke-width="1.5"/>
|
||||
<line x1="750" y1="192" x2="705" y2="248" stroke="#30363d" stroke-width="1.5"/>
|
||||
|
||||
<!-- Filter Box -->
|
||||
<rect x="555" y="248" width="150" height="34" rx="6" fill="#0d1117" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="630" y="270" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0" text-anchor="middle">Filter</text>
|
||||
|
||||
<!-- Data rows showing different visibility -->
|
||||
<!-- East sees -->
|
||||
<rect x="470" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
|
||||
<text x="520" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle">East data</text>
|
||||
|
||||
<!-- West sees -->
|
||||
<rect x="580" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
|
||||
<text x="630" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle">West data</text>
|
||||
|
||||
<!-- Admin sees all -->
|
||||
<rect x="690" y="300" width="100" height="26" rx="4" fill="#0d1117" stroke="#30363d" stroke-width="1"/>
|
||||
<text x="740" y="317" font-family="Segoe UI, Arial, sans-serif" font-size="11" fill="#06d6a0" text-anchor="middle">All data</text>
|
||||
|
||||
<!-- Filter expression -->
|
||||
<text x="630" y="355" font-family="Consolas, Courier New, monospace" font-size="12" fill="#d97757" text-anchor="middle">[Region] = "East"</text>
|
||||
|
||||
<!-- Commands -->
|
||||
<text x="630" y="400" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi security-role create</text>
|
||||
<text x="630" y="420" font-family="Consolas, Courier New, monospace" font-size="12" fill="#58a6ff" text-anchor="middle">pbi security-role add-filter</text>
|
||||
|
||||
<!-- Decorative lock icon for security -->
|
||||
<g transform="translate(770, 380)" opacity="0.35">
|
||||
<rect x="2" y="10" width="20" height="14" rx="3" fill="none" stroke="#06d6a0" stroke-width="1.2"/>
|
||||
<path d="M7,10 V6 Q7,1 12,1 Q17,1 17,6 V10" fill="none" stroke="#06d6a0" stroke-width="1.2"/>
|
||||
</g>
|
||||
|
||||
<!-- =============================== -->
|
||||
<!-- CAPABILITY PILLS -->
|
||||
<!-- =============================== -->
|
||||
<g transform="translate(0, 495)">
|
||||
<!-- Pill 1: TMDL Export/Import -->
|
||||
<rect x="145" y="0" width="170" height="34" rx="17" fill="none" stroke="#7b61ff" stroke-width="1.5"/>
|
||||
<text x="230" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#7b61ff" text-anchor="middle">TMDL Export/Import</text>
|
||||
|
||||
<!-- Pill 2: Transaction Safety -->
|
||||
<rect x="340" y="0" width="170" height="34" rx="17" fill="none" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text x="425" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#F2C811" text-anchor="middle">Transaction Safety</text>
|
||||
|
||||
<!-- Pill 3: Role-Based Filters -->
|
||||
<rect x="535" y="0" width="170" height="34" rx="17" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="620" y="22" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0" text-anchor="middle">Role-Based Filters</text>
|
||||
</g>
|
||||
|
||||
<!-- =============================== -->
|
||||
<!-- FOOTER -->
|
||||
<!-- =============================== -->
|
||||
<text x="425" y="560" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#8b949e" text-anchor="middle">Version control your models. Secure them with one prompt.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 8.9 KiB |
|
|
@ -1,110 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="580" viewBox="0 0 850 580">
|
||||
<defs>
|
||||
<style>
|
||||
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;600;700&family=JetBrains+Mono:wght@400;500&display=swap');
|
||||
.title { font-family: 'Inter', sans-serif; font-weight: 700; }
|
||||
.subtitle { font-family: 'Inter', sans-serif; font-weight: 400; }
|
||||
.body { font-family: 'Inter', sans-serif; font-weight: 400; }
|
||||
.bold { font-family: 'Inter', sans-serif; font-weight: 600; }
|
||||
.mono { font-family: 'JetBrains Mono', monospace; font-weight: 400; }
|
||||
</style>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="850" height="580" fill="#0d1117" rx="0"/>
|
||||
|
||||
<!-- Title Section -->
|
||||
<text x="425" y="42" text-anchor="middle" class="title" font-size="28" fill="#F2C811">Docs + Diagnostics</text>
|
||||
<text x="425" y="68" text-anchor="middle" class="subtitle" font-size="16" fill="#8b949e">Auto-document everything. Find bottlenecks instantly.</text>
|
||||
|
||||
<!-- Left Panel - Docs Skill -->
|
||||
<rect x="25" y="90" width="390" height="380" fill="#161b22" stroke="#ff6b6b" stroke-width="2" rx="8"/>
|
||||
<text x="220" y="122" text-anchor="middle" class="title" font-size="18" fill="#ff6b6b">Docs Skill</text>
|
||||
<line x1="45" y1="134" x2="395" y2="134" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Data Dictionary Table Header -->
|
||||
<text x="70" y="162" class="bold" font-size="13" fill="#F2C811">Table</text>
|
||||
<text x="175" y="162" class="bold" font-size="13" fill="#F2C811">Column</text>
|
||||
<text x="310" y="162" class="bold" font-size="13" fill="#F2C811">Type</text>
|
||||
<line x1="45" y1="172" x2="395" y2="172" stroke="#30363d" stroke-width="1" stroke-dasharray="4,3"/>
|
||||
|
||||
<!-- Table Rows -->
|
||||
<text x="70" y="194" class="body" font-size="12" fill="#c9d1d9">Sales</text>
|
||||
<text x="175" y="194" class="body" font-size="12" fill="#c9d1d9">Amount</text>
|
||||
<text x="310" y="194" class="body" font-size="12" fill="#c9d1d9">Decimal</text>
|
||||
|
||||
<text x="70" y="216" class="body" font-size="12" fill="#c9d1d9">Sales</text>
|
||||
<text x="175" y="216" class="body" font-size="12" fill="#c9d1d9">OrderDate</text>
|
||||
<text x="310" y="216" class="body" font-size="12" fill="#c9d1d9">DateTime</text>
|
||||
|
||||
<text x="70" y="238" class="body" font-size="12" fill="#c9d1d9">Product</text>
|
||||
<text x="175" y="238" class="body" font-size="12" fill="#c9d1d9">Name</text>
|
||||
<text x="310" y="238" class="body" font-size="12" fill="#c9d1d9">String</text>
|
||||
|
||||
<text x="70" y="260" class="body" font-size="12" fill="#c9d1d9">Product</text>
|
||||
<text x="175" y="260" class="body" font-size="12" fill="#c9d1d9">Category</text>
|
||||
<text x="310" y="260" class="body" font-size="12" fill="#c9d1d9">String</text>
|
||||
|
||||
<text x="70" y="282" class="body" font-size="12" fill="#c9d1d9">Calendar</text>
|
||||
<text x="175" y="282" class="body" font-size="12" fill="#c9d1d9">Date</text>
|
||||
<text x="310" y="282" class="body" font-size="12" fill="#c9d1d9">DateTime</text>
|
||||
|
||||
<text x="70" y="310" class="body" font-size="12" fill="#8b949e">... 82 more columns</text>
|
||||
|
||||
<line x1="45" y1="326" x2="395" y2="326" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Command and Result -->
|
||||
<text x="220" y="352" text-anchor="middle" class="mono" font-size="12" fill="#58a6ff">pbi model document</text>
|
||||
<text x="220" y="376" text-anchor="middle" class="body" font-size="12" fill="#06d6a0">Generated complete data dictionary</text>
|
||||
|
||||
<!-- Right Panel - Diagnostics Skill -->
|
||||
<rect x="435" y="90" width="390" height="380" fill="#161b22" stroke="#ffd166" stroke-width="2" rx="8"/>
|
||||
<text x="630" y="122" text-anchor="middle" class="title" font-size="18" fill="#ffd166">Diagnostics Skill</text>
|
||||
<line x1="455" y1="134" x2="805" y2="134" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Health Check Results -->
|
||||
<!-- Check mark - Relationships OK -->
|
||||
<text x="470" y="164" class="body" font-size="14" fill="#06d6a0">✓</text>
|
||||
<text x="492" y="164" class="body" font-size="14" fill="#06d6a0">Relationships OK</text>
|
||||
|
||||
<!-- Check mark - No Circular Deps -->
|
||||
<text x="470" y="190" class="body" font-size="14" fill="#06d6a0">✓</text>
|
||||
<text x="492" y="190" class="body" font-size="14" fill="#06d6a0">No Circular Deps</text>
|
||||
|
||||
<!-- Warning - 3 Unused Measures -->
|
||||
<text x="470" y="216" class="body" font-size="14" fill="#febc2e">⚠</text>
|
||||
<text x="492" y="216" class="body" font-size="14" fill="#febc2e">3 Unused Measures</text>
|
||||
|
||||
<!-- Error - Missing Date Table -->
|
||||
<text x="470" y="242" class="body" font-size="14" fill="#ff6b6b">✗</text>
|
||||
<text x="492" y="242" class="body" font-size="14" fill="#ff6b6b">Missing Date Table</text>
|
||||
|
||||
<line x1="455" y1="260" x2="805" y2="260" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Query Trace Section -->
|
||||
<text x="470" y="286" class="bold" font-size="14" fill="#ffd166">Query Trace</text>
|
||||
<text x="470" y="310" class="mono" font-size="11" fill="#8b949e">SELECT ... FROM Sales</text>
|
||||
<text x="470" y="334" class="body" font-size="12" fill="#ff6b6b">Duration: 2.4s</text>
|
||||
<text x="470" y="356" class="body" font-size="12" fill="#06d6a0">Recommendation: Add index</text>
|
||||
|
||||
<line x1="455" y1="372" x2="805" y2="372" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Command -->
|
||||
<text x="630" y="398" text-anchor="middle" class="mono" font-size="12" fill="#58a6ff">pbi trace start</text>
|
||||
|
||||
<!-- Capability Pills -->
|
||||
<!-- Data Dictionary pill -->
|
||||
<rect x="175" y="490" width="140" height="32" rx="16" fill="none" stroke="#ff6b6b" stroke-width="1.5"/>
|
||||
<text x="245" y="511" text-anchor="middle" class="bold" font-size="14" fill="#ff6b6b">Data Dictionary</text>
|
||||
|
||||
<!-- Query Tracing pill -->
|
||||
<rect x="355" y="490" width="140" height="32" rx="16" fill="none" stroke="#ffd166" stroke-width="1.5"/>
|
||||
<text x="425" y="511" text-anchor="middle" class="bold" font-size="14" fill="#ffd166">Query Tracing</text>
|
||||
|
||||
<!-- Health Check pill -->
|
||||
<rect x="535" y="490" width="140" height="32" rx="16" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="605" y="511" text-anchor="middle" class="bold" font-size="14" fill="#06d6a0">Health Check</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="555" text-anchor="middle" class="subtitle" font-size="15" fill="#8b949e">Know your model inside out. Fix problems before they reach production.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.2 KiB |
|
|
@ -1,104 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="440" viewBox="0 0 850 440">
|
||||
<defs>
|
||||
<linearGradient id="dl-glow" x1="0%" y1="0%" x2="100%" y2="0%">
|
||||
<stop offset="0%" stop-color="#F2C811" stop-opacity="0"/>
|
||||
<stop offset="50%" stop-color="#F2C811" stop-opacity="0.15"/>
|
||||
<stop offset="100%" stop-color="#F2C811" stop-opacity="0"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="dl-b1" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#EBBB14"/>
|
||||
<stop offset="100%" stop-color="#B25400"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="dl-b2" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#F9E583"/>
|
||||
<stop offset="100%" stop-color="#DE9800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="dl-b3" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#F9E68B"/>
|
||||
<stop offset="100%" stop-color="#F3CD32"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
|
||||
<!-- Badge -->
|
||||
<rect x="285" y="12" width="280" height="28" rx="14" fill="#161b22" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text x="425" y="31" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" text-anchor="middle" font-weight="bold">THE FIRST CLI FOR BOTH LAYERS</text>
|
||||
|
||||
<!-- Main title -->
|
||||
<text x="425" y="72" font-family="'Segoe UI', Arial, sans-serif" font-size="24" fill="#e6edf3" text-anchor="middle" font-weight="bold">One CLI. Two Layers. Complete Control.</text>
|
||||
<text x="425" y="96" font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#8b949e" text-anchor="middle">pbi-cli connects Claude Code to both your semantic model and your report design</text>
|
||||
|
||||
<rect x="60" y="110" width="730" height="1" fill="url(#dl-glow)"/>
|
||||
|
||||
<!-- ============ LEFT: Semantic Model Layer ============ -->
|
||||
<rect x="55" y="125" width="340" height="270" rx="10" fill="#161b22" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
|
||||
<!-- Layer header -->
|
||||
<text x="225" y="149" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#58a6ff" text-anchor="middle" font-weight="bold">Semantic Model Layer</text>
|
||||
<line x1="70" y1="160" x2="380" y2="160" stroke="#58a6ff" stroke-width="1" stroke-opacity="0.2"/>
|
||||
|
||||
<!-- Power BI logo centered -->
|
||||
<g transform="translate(197, 172)">
|
||||
<rect x="30" y="0" width="16" height="40" rx="3" fill="url(#dl-b1)"/>
|
||||
<rect x="15" y="12" width="16" height="28" rx="3" fill="url(#dl-b2)"/>
|
||||
<rect x="0" y="22" width="16" height="18" rx="3" fill="url(#dl-b3)"/>
|
||||
</g>
|
||||
|
||||
<text x="225" y="228" font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#58a6ff" text-anchor="middle" font-weight="bold">Live .NET Connection</text>
|
||||
<text x="225" y="246" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">Direct TOM interop via pythonnet</text>
|
||||
|
||||
<!-- Commands -->
|
||||
<circle cx="75" cy="268" r="3" fill="#58a6ff" opacity="0.6"/>
|
||||
<text x="87" y="272" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi measure create</text>
|
||||
<circle cx="75" cy="288" r="3" fill="#58a6ff" opacity="0.6"/>
|
||||
<text x="87" y="292" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi dax execute</text>
|
||||
<circle cx="75" cy="308" r="3" fill="#58a6ff" opacity="0.6"/>
|
||||
<text x="87" y="312" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi database export-tmdl</text>
|
||||
<circle cx="75" cy="328" r="3" fill="#58a6ff" opacity="0.6"/>
|
||||
<text x="87" y="332" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi relationship create</text>
|
||||
|
||||
<!-- 7 skills badge -->
|
||||
<rect x="165" y="360" width="120" height="24" rx="12" fill="#58a6ff" fill-opacity="0.1" stroke="#58a6ff" stroke-width="1"/>
|
||||
<text x="225" y="376" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#58a6ff" text-anchor="middle" font-weight="600">7 Claude Skills</text>
|
||||
|
||||
<!-- ============ RIGHT: Report Layer ============ -->
|
||||
<rect x="455" y="125" width="340" height="270" rx="10" fill="#161b22" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
|
||||
<!-- Layer header -->
|
||||
<text x="625" y="149" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#06d6a0" text-anchor="middle" font-weight="bold">Report Layer</text>
|
||||
<line x1="470" y1="160" x2="780" y2="160" stroke="#06d6a0" stroke-width="1" stroke-opacity="0.2"/>
|
||||
|
||||
<!-- NEW badge -->
|
||||
<rect x="730" y="135" width="50" height="20" rx="10" fill="#06d6a0"/>
|
||||
<text x="755" y="150" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#0d1117" text-anchor="middle" font-weight="bold">NEW</text>
|
||||
|
||||
<!-- Report icon centered -->
|
||||
<g transform="translate(608, 172)">
|
||||
<rect x="0" y="0" width="34" height="42" rx="4" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<line x1="5" y1="9" x2="29" y2="9" stroke="#06d6a0" stroke-width="0.8" stroke-opacity="0.3"/>
|
||||
<rect x="6" y="16" width="6" height="20" rx="1" fill="#06d6a0" opacity="0.4"/>
|
||||
<rect x="14" y="10" width="6" height="26" rx="1" fill="#06d6a0" opacity="0.6"/>
|
||||
<rect x="22" y="5" width="6" height="31" rx="1" fill="#06d6a0" opacity="0.8"/>
|
||||
</g>
|
||||
|
||||
<text x="625" y="228" font-family="'Segoe UI', Arial, sans-serif" font-size="14" fill="#06d6a0" text-anchor="middle" font-weight="bold">PBIR File Operations</text>
|
||||
<text x="625" y="246" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">Read/write JSON, no connection</text>
|
||||
|
||||
<!-- Commands -->
|
||||
<circle cx="465" cy="268" r="3" fill="#06d6a0" opacity="0.6"/>
|
||||
<text x="477" y="272" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi visual add --type bar</text>
|
||||
<circle cx="465" cy="288" r="3" fill="#06d6a0" opacity="0.6"/>
|
||||
<text x="477" y="292" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi visual bind --category</text>
|
||||
<circle cx="465" cy="308" r="3" fill="#06d6a0" opacity="0.6"/>
|
||||
<text x="477" y="312" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi filters add-topn --n 10</text>
|
||||
<circle cx="465" cy="328" r="3" fill="#06d6a0" opacity="0.6"/>
|
||||
<text x="477" y="332" font-family="'Courier New', Courier, monospace" font-size="12" fill="#e6edf3">pbi report set-theme</text>
|
||||
|
||||
<!-- 5 skills badge -->
|
||||
<rect x="565" y="360" width="120" height="24" rx="12" fill="#06d6a0" fill-opacity="0.1" stroke="#06d6a0" stroke-width="1"/>
|
||||
<text x="625" y="376" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#06d6a0" text-anchor="middle" font-weight="600">5 Claude Skills</text>
|
||||
|
||||
<!-- ============ Footer stats ============ -->
|
||||
<text x="425" y="425" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#8b949e" text-anchor="middle">27 command groups | 125+ subcommands | 32 visual types | 12 Claude skills</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.8 KiB |
|
|
@ -1,113 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="520" viewBox="0 0 850 520">
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="425" y="35" font-family="'Segoe UI', Arial, sans-serif" font-size="18" fill="#F2C811" text-anchor="middle" font-weight="bold">22 Command Groups</text>
|
||||
<text x="425" y="52" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#8b949e" text-anchor="middle">Covering the full Tabular Object Model</text>
|
||||
|
||||
<!-- Row 1 -->
|
||||
<rect x="22" y="68" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="90" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">connect</text>
|
||||
<text x="32" y="118" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Link to Power BI Desktop</text>
|
||||
|
||||
<rect x="227" y="68" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="90" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">dax</text>
|
||||
<text x="237" y="118" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Execute and validate DAX queries</text>
|
||||
|
||||
<rect x="432" y="68" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="90" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">measure</text>
|
||||
<text x="442" y="118" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Create, update, delete measures</text>
|
||||
|
||||
<rect x="637" y="68" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="647" y="90" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">table</text>
|
||||
<text x="647" y="118" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Manage tables and schemas</text>
|
||||
|
||||
<!-- Row 2 -->
|
||||
<rect x="22" y="140" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="162" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">column</text>
|
||||
<text x="32" y="190" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Add, rename, hide columns</text>
|
||||
|
||||
<rect x="227" y="140" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="162" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">relationship</text>
|
||||
<text x="237" y="190" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Define table joins and cardinality</text>
|
||||
|
||||
<rect x="432" y="140" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="162" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">model</text>
|
||||
<text x="442" y="190" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Model metadata and statistics</text>
|
||||
|
||||
<rect x="637" y="140" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="647" y="162" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">database</text>
|
||||
<text x="647" y="190" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">TMDL/TMSL import and export</text>
|
||||
|
||||
<!-- Row 3 -->
|
||||
<rect x="22" y="212" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="234" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">security-role</text>
|
||||
<text x="32" y="262" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Row-level security roles</text>
|
||||
|
||||
<rect x="227" y="212" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="234" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">calc-group</text>
|
||||
<text x="237" y="262" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Calculation groups and items</text>
|
||||
|
||||
<rect x="432" y="212" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="234" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">partition</text>
|
||||
<text x="442" y="262" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Table partitions and refresh</text>
|
||||
|
||||
<rect x="637" y="212" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="647" y="234" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">perspective</text>
|
||||
<text x="647" y="262" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">User perspectives and views</text>
|
||||
|
||||
<!-- Row 4 -->
|
||||
<rect x="22" y="284" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="306" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">hierarchy</text>
|
||||
<text x="32" y="334" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Column hierarchies and levels</text>
|
||||
|
||||
<rect x="227" y="284" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="306" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">expression</text>
|
||||
<text x="237" y="334" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Named M/Power Query sources</text>
|
||||
|
||||
<rect x="432" y="284" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="306" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">calendar</text>
|
||||
<text x="442" y="334" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Date table configuration</text>
|
||||
|
||||
<rect x="637" y="284" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="647" y="306" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">trace</text>
|
||||
<text x="647" y="334" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Query tracing and profiling</text>
|
||||
|
||||
<!-- Row 5 -->
|
||||
<rect x="22" y="356" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="378" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">transaction</text>
|
||||
<text x="32" y="406" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Atomic multi-step changes</text>
|
||||
|
||||
<rect x="227" y="356" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="378" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">advanced</text>
|
||||
<text x="237" y="406" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Culture and locale settings</text>
|
||||
|
||||
<rect x="432" y="356" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="378" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">repl</text>
|
||||
<text x="442" y="406" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Interactive DAX shell</text>
|
||||
|
||||
<rect x="637" y="356" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="647" y="378" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">skills</text>
|
||||
<text x="647" y="406" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Claude Code AI skill packs</text>
|
||||
|
||||
<!-- Row 6 -->
|
||||
<rect x="22" y="428" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="32" y="450" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">disconnect</text>
|
||||
<text x="32" y="478" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Close active connection</text>
|
||||
|
||||
<rect x="227" y="428" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="237" y="450" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">connections</text>
|
||||
<text x="237" y="478" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Manage saved sessions</text>
|
||||
|
||||
<rect x="432" y="428" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.3"/>
|
||||
<text x="442" y="450" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold">setup</text>
|
||||
<text x="442" y="478" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">Environment and DLL check</text>
|
||||
|
||||
<!-- Summary cell -->
|
||||
<rect x="637" y="428" width="195" height="62" rx="6" fill="#161b22" stroke="#F2C811" stroke-opacity="0.8"/>
|
||||
<text x="734" y="456" font-family="'Segoe UI', Arial, sans-serif" font-size="15" fill="#F2C811" text-anchor="middle" font-weight="bold">100+ Subcommands</text>
|
||||
<text x="734" y="478" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e" text-anchor="middle">Full TOM coverage</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="510" font-family="'Courier New', Courier, monospace" font-size="12" fill="#58a6ff" text-anchor="middle" font-weight="bold">pbi <group> <command> [options]</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.7 KiB |
|
|
@ -1,19 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="475" height="135" viewBox="0 0 475 135">
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
<text font-family="'Courier New', Courier, monospace" font-size="14.5" fill="#7A6508" xml:space="preserve">
|
||||
<tspan x="21" y="29">██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗</tspan>
|
||||
<tspan x="21" y="47">██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║</tspan>
|
||||
<tspan x="21" y="65">██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║</tspan>
|
||||
<tspan x="21" y="83">██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║</tspan>
|
||||
<tspan x="21" y="101">██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║</tspan>
|
||||
<tspan x="21" y="119">╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝</tspan>
|
||||
</text>
|
||||
<text font-family="'Courier New', Courier, monospace" font-size="14.5" fill="#F2C811" xml:space="preserve">
|
||||
<tspan x="20" y="28">██████╗ ██████╗ ██╗ ██████╗ ██╗ ██╗</tspan>
|
||||
<tspan x="20" y="46">██╔══██╗ ██╔══██╗ ██║ ██╔════╝ ██║ ██║</tspan>
|
||||
<tspan x="20" y="64">██████╔╝ ██████╔╝ ██║ ███╗ ██║ ██║ ██║</tspan>
|
||||
<tspan x="20" y="82">██╔═══╝ ██╔══██╗ ██║ ╚══╝ ██║ ██║ ██║</tspan>
|
||||
<tspan x="20" y="100">██║ ██████╔╝ ██║ ╚██████╗ ███████╗ ██║</tspan>
|
||||
<tspan x="20" y="118">╚═╝ ╚═════╝ ╚═╝ ╚═════╝ ╚══════╝ ╚═╝</tspan>
|
||||
</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.1 KiB |
|
|
@ -1,111 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="480" viewBox="0 0 850 480">
|
||||
<!-- Background -->
|
||||
<rect width="850" height="480" fill="#0d1117"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="425" y="42" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="28" font-weight="bold" fill="#F2C811">How It Works</text>
|
||||
|
||||
<!-- Subtitle -->
|
||||
<text x="425" y="68" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#8b949e">Two commands. That is all.</text>
|
||||
|
||||
<!-- ==================== STEP 1 - INSTALL ==================== -->
|
||||
<g transform="translate(142, 0)">
|
||||
<!-- Step number circle -->
|
||||
<circle cx="0" cy="105" r="18" fill="#F2C811"/>
|
||||
<text x="0" y="111" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#0d1117">1</text>
|
||||
|
||||
<!-- Card -->
|
||||
<rect x="-100" y="135" width="200" height="180" rx="8" fill="#161b22" stroke="#F2C811" stroke-opacity="0.4" stroke-width="1"/>
|
||||
|
||||
<!-- Terminal header bar -->
|
||||
<rect x="-88" y="147" width="176" height="24" rx="4" fill="#21262d"/>
|
||||
<!-- Traffic light dots -->
|
||||
<circle cx="-74" cy="159" r="4" fill="#ff5f56"/>
|
||||
<circle cx="-60" cy="159" r="4" fill="#ffbd2e"/>
|
||||
<circle cx="-46" cy="159" r="4" fill="#27c93f"/>
|
||||
|
||||
<!-- Terminal text -->
|
||||
<text x="-78" y="198" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0">$ pipx install</text>
|
||||
<text x="-78" y="218" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0"> pbi-cli-tool</text>
|
||||
<text x="-78" y="252" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0">✓ Installed!</text>
|
||||
|
||||
<!-- Label -->
|
||||
<text x="0" y="340" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#F2C811">INSTALL</text>
|
||||
<!-- Sublabel -->
|
||||
<text x="0" y="360" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">One-line install via pipx</text>
|
||||
</g>
|
||||
|
||||
<!-- ==================== ARROW 1 to 2 ==================== -->
|
||||
<defs>
|
||||
<marker id="arrowhead" markerWidth="10" markerHeight="7" refX="10" refY="3.5" orient="auto">
|
||||
<polygon points="0 0, 10 3.5, 0 7" fill="#F2C811" fill-opacity="0.4"/>
|
||||
</marker>
|
||||
</defs>
|
||||
<line x1="260" y1="225" x2="305" y2="225" stroke="#F2C811" stroke-opacity="0.4" stroke-width="2" stroke-dasharray="6,4" marker-end="url(#arrowhead)"/>
|
||||
|
||||
<!-- ==================== STEP 2 - CONNECT ==================== -->
|
||||
<g transform="translate(425, 0)">
|
||||
<!-- Step number circle -->
|
||||
<circle cx="0" cy="105" r="18" fill="#F2C811"/>
|
||||
<text x="0" y="111" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#0d1117">2</text>
|
||||
|
||||
<!-- Card -->
|
||||
<rect x="-100" y="135" width="200" height="180" rx="8" fill="#161b22" stroke="#F2C811" stroke-opacity="0.4" stroke-width="1"/>
|
||||
|
||||
<!-- Terminal header bar -->
|
||||
<rect x="-88" y="147" width="176" height="24" rx="4" fill="#21262d"/>
|
||||
<!-- Traffic light dots -->
|
||||
<circle cx="-74" cy="159" r="4" fill="#ff5f56"/>
|
||||
<circle cx="-60" cy="159" r="4" fill="#ffbd2e"/>
|
||||
<circle cx="-46" cy="159" r="4" fill="#27c93f"/>
|
||||
|
||||
<!-- Terminal text -->
|
||||
<text x="-78" y="198" font-family="Consolas, Monaco, monospace" font-size="13" fill="#58a6ff">$ pbi connect</text>
|
||||
<text x="-78" y="220" font-family="Consolas, Monaco, monospace" font-size="13" fill="#8b949e">Scanning for Power BI...</text>
|
||||
<text x="-78" y="248" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0">✓ Connected to</text>
|
||||
<text x="-78" y="264" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0"> Adventure Works</text>
|
||||
<text x="-78" y="290" font-family="Consolas, Monaco, monospace" font-size="13" fill="#F2C811"> 7 skills installed</text>
|
||||
|
||||
<!-- Label -->
|
||||
<text x="0" y="340" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#F2C811">CONNECT</text>
|
||||
<!-- Sublabel -->
|
||||
<text x="0" y="360" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">Auto-detects Power BI Desktop</text>
|
||||
</g>
|
||||
|
||||
<!-- ==================== ARROW 2 to 3 ==================== -->
|
||||
<line x1="543" y1="225" x2="588" y2="225" stroke="#F2C811" stroke-opacity="0.4" stroke-width="2" stroke-dasharray="6,4" marker-end="url(#arrowhead)"/>
|
||||
|
||||
<!-- ==================== STEP 3 - CHAT ==================== -->
|
||||
<g transform="translate(708, 0)">
|
||||
<!-- Step number circle -->
|
||||
<circle cx="0" cy="105" r="18" fill="#F2C811"/>
|
||||
<text x="0" y="111" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#0d1117">3</text>
|
||||
|
||||
<!-- Card -->
|
||||
<rect x="-100" y="135" width="200" height="180" rx="8" fill="#161b22" stroke="#F2C811" stroke-opacity="0.4" stroke-width="1"/>
|
||||
|
||||
<!-- Chat header -->
|
||||
<rect x="-88" y="147" width="176" height="24" rx="4" fill="#21262d"/>
|
||||
<text x="-74" y="163" font-family="Segoe UI, Arial, sans-serif" font-size="11" font-weight="bold" fill="#8b949e">Claude Code</text>
|
||||
|
||||
<!-- User chat bubble -->
|
||||
<rect x="-82" y="182" width="164" height="30" rx="6" fill="#1a3a5c"/>
|
||||
<text x="-72" y="201" font-family="Segoe UI, Arial, sans-serif" font-size="12" fill="#c9d1d9">Create a date table</text>
|
||||
|
||||
<!-- Claude response bubble -->
|
||||
<rect x="-82" y="222" width="164" height="44" rx="6" fill="#1c1c1c"/>
|
||||
<text x="-72" y="240" font-family="Consolas, Monaco, monospace" font-size="11" fill="#8b949e">Running:</text>
|
||||
<text x="-72" y="256" font-family="Consolas, Monaco, monospace" font-size="11" fill="#58a6ff">pbi calendar generate</text>
|
||||
|
||||
<!-- Check result -->
|
||||
<text x="-78" y="290" font-family="Consolas, Monaco, monospace" font-size="13" fill="#06d6a0">✓ Date table created</text>
|
||||
|
||||
<!-- Label -->
|
||||
<text x="0" y="340" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="18" font-weight="bold" fill="#F2C811">CHAT</text>
|
||||
<!-- Sublabel -->
|
||||
<text x="0" y="360" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">Claude picks the right skill</text>
|
||||
</g>
|
||||
|
||||
<!-- ==================== FOOTER ==================== -->
|
||||
<text x="425" y="440" text-anchor="middle" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#8b949e">Claude auto-discovers 7 Power BI skills. No commands to memorize.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.4 KiB |
|
|
@ -1,104 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="560" viewBox="0 0 850 560">
|
||||
<defs>
|
||||
<filter id="shadow" x="-2%" y="-2%" width="104%" height="104%">
|
||||
<feDropShadow dx="0" dy="2" stdDeviation="4" flood-color="#000000" flood-opacity="0.3"/>
|
||||
</filter>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="850" height="560" fill="#0d1117"/>
|
||||
|
||||
<!-- Title section -->
|
||||
<text x="425" y="40" font-family="Segoe UI, Arial, sans-serif" font-size="28" font-weight="bold" fill="#F2C811" text-anchor="middle">Modeling Skill</text>
|
||||
<text x="425" y="64" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#8b949e" text-anchor="middle">Describe your schema. Claude builds it.</text>
|
||||
|
||||
<!-- Chat container -->
|
||||
<rect x="40" y="84" width="770" height="396" rx="8" ry="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Header bar -->
|
||||
<rect x="40" y="84" width="770" height="36" rx="8" ry="8" fill="#161b22"/>
|
||||
<rect x="40" y="104" width="770" height="16" fill="#161b22"/>
|
||||
<line x1="40" y1="120" x2="810" y2="120" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Traffic lights -->
|
||||
<circle cx="64" cy="102" r="6" fill="#ff5f57"/>
|
||||
<circle cx="84" cy="102" r="6" fill="#febc2e"/>
|
||||
<circle cx="104" cy="102" r="6" fill="#28c840"/>
|
||||
|
||||
<!-- Claude Code label -->
|
||||
<text x="130" y="107" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#d97757">Claude Code</text>
|
||||
|
||||
<!-- User message -->
|
||||
<rect x="70" y="134" width="600" height="56" rx="12" ry="12" fill="#1a3a5c"/>
|
||||
<text x="88" y="157" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#c9d1d9">Create a star schema with Sales as the fact table,</text>
|
||||
<text x="88" y="178" font-family="Segoe UI, Arial, sans-serif" font-size="16" fill="#c9d1d9">linked to Products, Calendar, Customers, and Store</text>
|
||||
|
||||
<!-- Claude response -->
|
||||
<rect x="70" y="204" width="710" height="262" rx="12" ry="12" fill="#1c1c1c"/>
|
||||
|
||||
<!-- "Building star schema..." -->
|
||||
<text x="88" y="230" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e">Building star schema...</text>
|
||||
|
||||
<!-- Check item 1: Sales (fact) -->
|
||||
<text x="88" y="258" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0">✔</text>
|
||||
<text x="108" y="258" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9">Created table </text>
|
||||
<text x="201" y="258" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0">Sales</text>
|
||||
<text x="240" y="258" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e"> (fact)</text>
|
||||
|
||||
<!-- Check item 2: Products -->
|
||||
<text x="88" y="284" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0">✔</text>
|
||||
<text x="108" y="284" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9">Created table </text>
|
||||
<text x="201" y="284" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0">Products</text>
|
||||
<text x="265" y="284" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e"> linked to Sales</text>
|
||||
|
||||
<!-- Check item 3: Calendar -->
|
||||
<text x="88" y="310" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0">✔</text>
|
||||
<text x="108" y="310" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9">Created table </text>
|
||||
<text x="201" y="310" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0">Calendar</text>
|
||||
<text x="264" y="310" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e"> linked to Sales</text>
|
||||
|
||||
<!-- Check item 4: Customers -->
|
||||
<text x="88" y="336" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0">✔</text>
|
||||
<text x="108" y="336" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9">Created table </text>
|
||||
<text x="201" y="336" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0">Customers</text>
|
||||
<text x="276" y="336" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e"> linked to Sales</text>
|
||||
|
||||
<!-- Check item 5: Store -->
|
||||
<text x="88" y="362" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0">✔</text>
|
||||
<text x="108" y="362" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#c9d1d9">Created table </text>
|
||||
<text x="201" y="362" font-family="Segoe UI, Arial, sans-serif" font-size="14" font-weight="bold" fill="#06d6a0">Store</text>
|
||||
<text x="237" y="362" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#8b949e"> linked to Sales</text>
|
||||
|
||||
<!-- Separator line -->
|
||||
<line x1="88" y1="380" x2="760" y2="380" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Summary: "5 tables, 4 relationships created" -->
|
||||
<text x="88" y="404" font-family="Segoe UI, Arial, sans-serif" font-size="16" font-weight="bold" fill="#F2C811">5 tables, 4 relationships created</text>
|
||||
|
||||
<!-- Sub-summary -->
|
||||
<text x="88" y="424" font-family="Segoe UI, Arial, sans-serif" font-size="13" fill="#8b949e">All relationships are one-to-many, single direction</text>
|
||||
|
||||
<!-- Capability pills -->
|
||||
<!-- Total width of 4 pills: 4 pills with padding. Let's center them. -->
|
||||
<!-- Pill widths: Tables ~90, Relationships ~130, Measures ~100, Date Tables ~115 -->
|
||||
<!-- Total ~435 + 3*16 gaps = 483. Start x = (850-483)/2 = 183.5 -->
|
||||
|
||||
<!-- Pill: Tables -->
|
||||
<rect x="148" y="494" width="90" height="30" rx="15" ry="15" fill="none" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text x="193" y="514" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#F2C811" text-anchor="middle">Tables</text>
|
||||
|
||||
<!-- Pill: Relationships -->
|
||||
<rect x="254" y="494" width="130" height="30" rx="15" ry="15" fill="none" stroke="#7b61ff" stroke-width="1.5"/>
|
||||
<text x="319" y="514" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#7b61ff" text-anchor="middle">Relationships</text>
|
||||
|
||||
<!-- Pill: Measures -->
|
||||
<rect x="400" y="494" width="100" height="30" rx="15" ry="15" fill="none" stroke="#06d6a0" stroke-width="1.5"/>
|
||||
<text x="450" y="514" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#06d6a0" text-anchor="middle">Measures</text>
|
||||
|
||||
<!-- Pill: Date Tables -->
|
||||
<rect x="516" y="494" width="115" height="30" rx="15" ry="15" fill="none" stroke="#58a6ff" stroke-width="1.5"/>
|
||||
<text x="573.5" y="514" font-family="Segoe UI, Arial, sans-serif" font-size="14" fill="#58a6ff" text-anchor="middle">Date Tables</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="550" font-family="Segoe UI, Arial, sans-serif" font-size="15" fill="#8b949e" text-anchor="middle">From description to working schema in one prompt.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.4 MiB |
|
|
@ -1,69 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="420" viewBox="0 0 850 420">
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="425" y="32" font-family="'Segoe UI', Arial, sans-serif" font-size="18" fill="#F2C811" text-anchor="middle" font-weight="bold">100x More Efficient Than MCP</text>
|
||||
<text x="425" y="50" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle">Token cost per operation: MCP tool call vs CLI command</text>
|
||||
|
||||
<!-- Chart area -->
|
||||
<rect x="40" y="65" width="770" height="300" rx="8" fill="#161b22" stroke="#30363d" stroke-width="1"/>
|
||||
|
||||
<!-- Row 1: connect -->
|
||||
<text x="120" y="100" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="end">connect</text>
|
||||
<!-- MCP bar -->
|
||||
<rect x="135" y="86" width="600" height="14" rx="3" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="742" y="98" font-family="'Courier New', Courier, monospace" font-size="11" fill="#ff6b6b">4,800</text>
|
||||
<!-- CLI bar -->
|
||||
<rect x="135" y="104" width="4" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="146" y="116" font-family="'Courier New', Courier, monospace" font-size="11" fill="#06d6a0">~30</text>
|
||||
|
||||
<!-- Row 2: dax query -->
|
||||
<text x="120" y="155" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="end">dax query</text>
|
||||
<!-- MCP bar -->
|
||||
<rect x="135" y="141" width="575" height="14" rx="3" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="717" y="153" font-family="'Courier New', Courier, monospace" font-size="11" fill="#ff6b6b">4,600</text>
|
||||
<!-- CLI bar -->
|
||||
<rect x="135" y="159" width="5" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="147" y="171" font-family="'Courier New', Courier, monospace" font-size="11" fill="#06d6a0">~35</text>
|
||||
|
||||
<!-- Row 3: measure -->
|
||||
<text x="120" y="210" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="end">measure</text>
|
||||
<!-- MCP bar -->
|
||||
<rect x="135" y="196" width="550" height="14" rx="3" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="692" y="208" font-family="'Courier New', Courier, monospace" font-size="11" fill="#ff6b6b">4,400</text>
|
||||
<!-- CLI bar -->
|
||||
<rect x="135" y="214" width="4" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="146" y="226" font-family="'Courier New', Courier, monospace" font-size="11" fill="#06d6a0">~28</text>
|
||||
|
||||
<!-- Row 4: model stats -->
|
||||
<text x="120" y="265" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="end">model</text>
|
||||
<!-- MCP bar -->
|
||||
<rect x="135" y="251" width="525" height="14" rx="3" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="667" y="263" font-family="'Courier New', Courier, monospace" font-size="11" fill="#ff6b6b">4,200</text>
|
||||
<!-- CLI bar -->
|
||||
<rect x="135" y="269" width="4" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="146" y="281" font-family="'Courier New', Courier, monospace" font-size="11" fill="#06d6a0">~25</text>
|
||||
|
||||
<!-- Row 5: export -->
|
||||
<text x="120" y="320" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#c9d1d9" text-anchor="end">export</text>
|
||||
<!-- MCP bar -->
|
||||
<rect x="135" y="306" width="563" height="14" rx="3" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="705" y="318" font-family="'Courier New', Courier, monospace" font-size="11" fill="#ff6b6b">4,500</text>
|
||||
<!-- CLI bar -->
|
||||
<rect x="135" y="324" width="4" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="146" y="336" font-family="'Courier New', Courier, monospace" font-size="11" fill="#06d6a0">~32</text>
|
||||
|
||||
<!-- Legend -->
|
||||
<rect x="230" y="378" width="14" height="14" rx="2" fill="#ff6b6b" fill-opacity="0.7"/>
|
||||
<text x="250" y="390" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#ff6b6b">MCP tool call</text>
|
||||
|
||||
<rect x="380" y="378" width="14" height="14" rx="2" fill="#06d6a0"/>
|
||||
<text x="400" y="390" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#06d6a0">CLI command</text>
|
||||
|
||||
<text x="530" y="390" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#8b949e">|</text>
|
||||
|
||||
<text x="550" y="390" font-family="'Segoe UI', Arial, sans-serif" font-size="12" fill="#F2C811" font-weight="bold">~130x savings</text>
|
||||
|
||||
<!-- Footer -->
|
||||
<text x="425" y="414" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#8b949e" text-anchor="middle">Same capabilities, fraction of the cost. Your AI budget goes 100x further.</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 4.4 KiB |
|
|
@ -1,128 +0,0 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="850" height="390" viewBox="0 0 850 390">
|
||||
<defs>
|
||||
<linearGradient id="wf-bar1" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#EBBB14"/>
|
||||
<stop offset="100%" stop-color="#B25400"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wf-bar2" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#F9E583"/>
|
||||
<stop offset="100%" stop-color="#DE9800"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="wf-bar3" x1="50%" y1="0%" x2="50%" y2="100%">
|
||||
<stop offset="0%" stop-color="#F9E68B"/>
|
||||
<stop offset="100%" stop-color="#F3CD32"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
|
||||
<!-- Background -->
|
||||
<rect width="100%" height="100%" fill="#0d1117" rx="8"/>
|
||||
|
||||
<!-- Title -->
|
||||
<text x="425" y="32" font-family="'Segoe UI', Arial, sans-serif" font-size="18" fill="#F2C811" text-anchor="middle" font-weight="bold">The VIBE BI Workflow</text>
|
||||
|
||||
<!-- ==================== NODE 1: Claude Code ==================== -->
|
||||
<!-- Step badge -->
|
||||
<circle cx="130" cy="61" r="13" fill="#d97757" fill-opacity="0.2" stroke="#d97757" stroke-width="1.5"/>
|
||||
<text x="130" y="66" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#d97757" font-weight="bold" text-anchor="middle">1</text>
|
||||
<!-- Card -->
|
||||
<rect x="30" y="75" width="200" height="190" rx="10" fill="#161b22" stroke="#d97757" stroke-width="1.5"/>
|
||||
<!-- Header band -->
|
||||
<path d="M 40,75 L 220,75 A 10,10 0 0,1 230,85 L 230,127 L 30,127 L 30,85 A 10,10 0 0,1 40,75 Z" fill="#d97757" fill-opacity="0.12"/>
|
||||
<!-- Claude starburst icon -->
|
||||
<g transform="translate(130,101)">
|
||||
<line x1="0" y1="-12" x2="0" y2="12" stroke="#d97757" stroke-width="2.5"/>
|
||||
<line x1="-12" y1="0" x2="12" y2="0" stroke="#d97757" stroke-width="2.5"/>
|
||||
<line x1="-8.5" y1="-8.5" x2="8.5" y2="8.5" stroke="#d97757" stroke-width="2"/>
|
||||
<line x1="8.5" y1="-8.5" x2="-8.5" y2="8.5" stroke="#d97757" stroke-width="2"/>
|
||||
<line x1="-5" y1="-11" x2="5" y2="11" stroke="#d97757" stroke-width="1.5" opacity="0.6"/>
|
||||
<line x1="11" y1="-5" x2="-11" y2="5" stroke="#d97757" stroke-width="1.5" opacity="0.6"/>
|
||||
<line x1="5" y1="-11" x2="-5" y2="11" stroke="#d97757" stroke-width="1.5" opacity="0.6"/>
|
||||
<line x1="-11" y1="-5" x2="11" y2="5" stroke="#d97757" stroke-width="1.5" opacity="0.6"/>
|
||||
</g>
|
||||
<!-- Node name and subtitle -->
|
||||
<text x="130" y="142" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#d97757" font-weight="bold" text-anchor="middle">Claude Code</text>
|
||||
<text x="130" y="157" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#8b949e" text-anchor="middle">AI Assistant</text>
|
||||
<!-- Divider -->
|
||||
<line x1="45" y1="165" x2="215" y2="165" stroke="#d97757" stroke-opacity="0.2" stroke-width="1"/>
|
||||
<!-- Bullets -->
|
||||
<circle cx="52" cy="175.5" r="2.5" fill="#d97757" opacity="0.7"/>
|
||||
<text x="62" y="179" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Reads TMDL + PBIR source files</text>
|
||||
<circle cx="52" cy="192.5" r="2.5" fill="#d97757" opacity="0.7"/>
|
||||
<text x="62" y="196" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Understands model + report state</text>
|
||||
<circle cx="52" cy="209.5" r="2.5" fill="#d97757" opacity="0.7"/>
|
||||
<text x="62" y="213" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Plans and executes changes</text>
|
||||
|
||||
<!-- ==================== NODE 2: pbi-cli ==================== -->
|
||||
<!-- Step badge -->
|
||||
<circle cx="425" cy="61" r="13" fill="#F2C811" fill-opacity="0.2" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text x="425" y="66" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold" text-anchor="middle">2</text>
|
||||
<!-- Card -->
|
||||
<rect x="325" y="75" width="200" height="190" rx="10" fill="#161b22" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<!-- Header band -->
|
||||
<path d="M 335,75 L 515,75 A 10,10 0 0,1 525,85 L 525,127 L 325,127 L 325,85 A 10,10 0 0,1 335,75 Z" fill="#F2C811" fill-opacity="0.12"/>
|
||||
<!-- Terminal icon -->
|
||||
<g transform="translate(401,87)">
|
||||
<rect x="0" y="0" width="48" height="28" rx="4" fill="#F2C811" fill-opacity="0.1" stroke="#F2C811" stroke-width="1.5"/>
|
||||
<text font-family="'Courier New', Courier, monospace" font-size="11" fill="#F2C811" x="5" y="19">$ pbi-cli</text>
|
||||
</g>
|
||||
<!-- Node name and subtitle -->
|
||||
<text x="425" y="142" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#F2C811" font-weight="bold" text-anchor="middle">pbi-cli</text>
|
||||
<text x="425" y="157" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#8b949e" text-anchor="middle">The Bridge</text>
|
||||
<!-- Divider -->
|
||||
<line x1="340" y1="165" x2="510" y2="165" stroke="#F2C811" stroke-opacity="0.2" stroke-width="1"/>
|
||||
<!-- Bullets -->
|
||||
<circle cx="347" cy="175.5" r="2.5" fill="#F2C811" opacity="0.7"/>
|
||||
<text x="357" y="179" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Runs targeted CLI commands</text>
|
||||
<circle cx="347" cy="192.5" r="2.5" fill="#F2C811" opacity="0.7"/>
|
||||
<text x="357" y="196" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Writes TMDL + PBIR files</text>
|
||||
<circle cx="347" cy="209.5" r="2.5" fill="#F2C811" opacity="0.7"/>
|
||||
<text x="357" y="213" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">~30 tokens per operation</text>
|
||||
|
||||
<!-- ==================== NODE 3: Power BI Desktop ==================== -->
|
||||
<!-- Step badge -->
|
||||
<circle cx="720" cy="61" r="13" fill="#EBBB14" fill-opacity="0.2" stroke="#EBBB14" stroke-width="1.5"/>
|
||||
<text x="720" y="66" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#EBBB14" font-weight="bold" text-anchor="middle">3</text>
|
||||
<!-- Card -->
|
||||
<rect x="620" y="75" width="200" height="190" rx="10" fill="#161b22" stroke="#EBBB14" stroke-width="1.5"/>
|
||||
<!-- Header band -->
|
||||
<path d="M 630,75 L 810,75 A 10,10 0 0,1 820,85 L 820,127 L 620,127 L 620,85 A 10,10 0 0,1 630,75 Z" fill="#EBBB14" fill-opacity="0.12"/>
|
||||
<!-- Power BI bars icon -->
|
||||
<rect x="724" y="83" width="16" height="34" rx="3" fill="url(#wf-bar1)"/>
|
||||
<rect x="712" y="92" width="16" height="25" rx="3" fill="url(#wf-bar2)"/>
|
||||
<rect x="700" y="101" width="16" height="16" rx="3" fill="url(#wf-bar3)"/>
|
||||
<!-- Node name and subtitle -->
|
||||
<text x="720" y="142" font-family="'Segoe UI', Arial, sans-serif" font-size="13" fill="#EBBB14" font-weight="bold" text-anchor="middle">Power BI Desktop</text>
|
||||
<text x="720" y="157" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#8b949e" text-anchor="middle">Live Preview</text>
|
||||
<!-- Divider -->
|
||||
<line x1="635" y1="165" x2="805" y2="165" stroke="#EBBB14" stroke-opacity="0.2" stroke-width="1"/>
|
||||
<!-- Bullets -->
|
||||
<circle cx="642" cy="175.5" r="2.5" fill="#EBBB14" opacity="0.7"/>
|
||||
<text x="652" y="179" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Detects file changes instantly</text>
|
||||
<circle cx="642" cy="192.5" r="2.5" fill="#EBBB14" opacity="0.7"/>
|
||||
<text x="652" y="196" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Refreshes model live</text>
|
||||
<circle cx="642" cy="209.5" r="2.5" fill="#EBBB14" opacity="0.7"/>
|
||||
<text x="652" y="213" font-family="'Segoe UI', Arial, sans-serif" font-size="10.5" fill="#8b949e">Report updates in real time</text>
|
||||
|
||||
<!-- ==================== FORWARD ARROW 1: Node 1 to Node 2 ==================== -->
|
||||
<line x1="234" y1="170" x2="317" y2="170" stroke="#F2C811" stroke-width="2" stroke-dasharray="6,4" stroke-opacity="0.6"/>
|
||||
<polygon points="321,170 313,165 313,175" fill="#F2C811" fill-opacity="0.6"/>
|
||||
<text x="277" y="158" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#F2C811" text-anchor="middle" fill-opacity="0.9">CLI commands</text>
|
||||
<rect x="247" y="174" width="60" height="14" rx="7" fill="#06d6a0" fill-opacity="0.12" stroke="#06d6a0" stroke-width="0.8"/>
|
||||
<text x="277" y="184" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#06d6a0" text-anchor="middle">~30 tokens</text>
|
||||
|
||||
<!-- ==================== FORWARD ARROW 2: Node 2 to Node 3 ==================== -->
|
||||
<line x1="529" y1="170" x2="612" y2="170" stroke="#F2C811" stroke-width="2" stroke-dasharray="6,4" stroke-opacity="0.6"/>
|
||||
<polygon points="616,170 608,165 608,175" fill="#F2C811" fill-opacity="0.6"/>
|
||||
<text x="572" y="158" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#F2C811" text-anchor="middle" fill-opacity="0.9">TMDL + PBIR files</text>
|
||||
<rect x="537" y="174" width="70" height="14" rx="7" fill="#58a6ff" fill-opacity="0.12" stroke="#58a6ff" stroke-width="0.8"/>
|
||||
<text x="572" y="184" font-family="'Segoe UI', Arial, sans-serif" font-size="9" fill="#58a6ff" text-anchor="middle">auto-detected</text>
|
||||
|
||||
<!-- ==================== RETURN LOOP ARROW ==================== -->
|
||||
<path d="M 820,255 C 820,305 720,320 425,320 C 130,320 30,305 30,255"
|
||||
fill="none" stroke="#F2C811" stroke-width="1.5" stroke-dasharray="6,4" stroke-opacity="0.4"/>
|
||||
<polygon points="30,255 25,265 35,265" fill="#F2C811" fill-opacity="0.4"/>
|
||||
<text x="425" y="338" font-family="'Segoe UI', Arial, sans-serif" font-size="11" fill="#F2C811" text-anchor="middle" fill-opacity="0.6">reads updated model + report · loop continues</text>
|
||||
|
||||
<!-- ==================== VIBE BI BADGE ==================== -->
|
||||
<text x="425" y="375" font-family="'Segoe UI', Arial, sans-serif" font-size="10" fill="#8b949e" text-anchor="middle">Powered by VIBE BI · Vibe-Driven Business Intelligence</text>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.4 KiB |