| 1 | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1280 720" width="1280" height="720"> |
| 2 | <defs> |
| 3 | <filter id="cardShadow7" x="-15%" y="-15%" width="140%" height="140%"> |
| 4 | <feGaussianBlur in="SourceAlpha" stdDeviation="10"/> |
| 5 | <feOffset dx="0" dy="5" result="offsetBlur"/> |
| 6 | <feFlood flood-color="#000000" flood-opacity="0.18" result="shadowColor"/> |
| 7 | <feComposite in="shadowColor" in2="offsetBlur" operator="in" result="shadow"/> |
| 8 | <feMerge> |
| 9 | <feMergeNode in="shadow"/> |
| 10 | <feMergeNode in="SourceGraphic"/> |
| 11 | </feMerge> |
| 12 | </filter> |
| 13 | <linearGradient id="titleBar7" x1="0%" y1="0%" x2="100%" y2="0%"> |
| 14 | <stop offset="0%" stop-color="#D4A574"/> |
| 15 | <stop offset="100%" stop-color="#60A5FA"/> |
| 16 | </linearGradient> |
| 17 | </defs> |
| 18 | |
| 19 | <!-- Background --> |
| 20 | <rect width="1280" height="720" fill="#0D1117"/> |
| 21 | |
| 22 | <!-- Header --> |
| 23 | <g id="header"> |
| 24 | <rect x="60" y="40" width="4" height="30" fill="#D4A574"/> |
| 25 | <text x="76" y="63" font-family="Arial, Helvetica, sans-serif" font-size="14" fill="#8B949E" letter-spacing="3">CLASSIFIER</text> |
| 26 | <text x="60" y="105" font-family="Arial, Helvetica, sans-serif" font-size="40" font-weight="bold" fill="#E6EDF3">Reasoning-Blind by Design</text> |
| 27 | <rect x="60" y="115" width="200" height="3" fill="url(#titleBar7)"/> |
| 28 | </g> |
| 29 | |
| 30 | <!-- Image area (left side) — Fig.3 What the classifier sees --> |
| 31 | <g id="classifier-image"> |
| 32 | <rect x="60" y="145" width="530" height="465" rx="12" fill="#161B22" stroke="#30363D" stroke-width="1" filter="url(#cardShadow7)"/> |
| 33 | <image href="../images/image_2.png" x="70" y="155" width="510" height="445" preserveAspectRatio="xMidYMid meet"/> |
| 34 | <text x="325" y="628" text-anchor="middle" font-family="Calibri, Arial, sans-serif" font-size="11" fill="#6E7681">Figure 3: What the Classifier Sees</text> |
| 35 | </g> |
| 36 | |
| 37 | <!-- Right side content --> |
| 38 | <!-- What's stripped --> |
| 39 | <g id="stripped-section"> |
| 40 | <use data-icon="chunk/eye-slash" x="630" y="150" width="30" height="30" fill="#F97316"/> |
| 41 | <text x="670" y="173" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#F97316">What Gets Stripped</text> |
| 42 | |
| 43 | <rect x="630" y="195" width="580" height="36" rx="6" fill="#F97316" fill-opacity="0.08"/> |
| 44 | <text x="646" y="219" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#F97316">✕ Assistant text</text> |
| 45 | <text x="870" y="219" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">— can't "talk" classifier into bad calls</text> |
| 46 | |
| 47 | <rect x="630" y="240" width="580" height="36" rx="6" fill="#F97316" fill-opacity="0.05"/> |
| 48 | <text x="646" y="264" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#F97316">✕ Tool results</text> |
| 49 | <text x="870" y="264" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">— primary prompt-injection defense</text> |
| 50 | </g> |
| 51 | |
| 52 | <rect x="630" y="295" width="580" height="1" fill="#30363D"/> |
| 53 | |
| 54 | <!-- What remains --> |
| 55 | <g id="remains-section"> |
| 56 | <use data-icon="chunk/eye" x="630" y="315" width="30" height="30" fill="#34D399"/> |
| 57 | <text x="670" y="338" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#34D399">What Remains</text> |
| 58 | |
| 59 | <rect x="630" y="360" width="580" height="36" rx="6" fill="#34D399" fill-opacity="0.08"/> |
| 60 | <text x="646" y="384" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#34D399">✓ User messages</text> |
| 61 | <text x="870" y="384" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">— the ground truth for intent</text> |
| 62 | |
| 63 | <rect x="630" y="405" width="580" height="36" rx="6" fill="#34D399" fill-opacity="0.05"/> |
| 64 | <text x="646" y="429" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#34D399">✓ Tool call commands</text> |
| 65 | <text x="870" y="429" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#8B949E">— the executable payload</text> |
| 66 | </g> |
| 67 | |
| 68 | <rect x="630" y="460" width="580" height="1" fill="#30363D"/> |
| 69 | |
| 70 | <!-- Key insight --> |
| 71 | <g id="insight"> |
| 72 | <use data-icon="chunk/shield-check" x="630" y="480" width="30" height="30" fill="#60A5FA"/> |
| 73 | <text x="670" y="503" font-family="Arial, Helvetica, sans-serif" font-size="22" font-weight="bold" fill="#60A5FA">Why It Works</text> |
| 74 | |
| 75 | <text x="630" y="535" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#E6EDF3">Judge what the agent did, not what it said.</text> |
| 76 | <text x="630" y="560" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#E6EDF3">Shorter transcript = easier to read, less room</text> |
| 77 | <text x="630" y="582" font-family="Calibri, Arial, sans-serif" font-size="16" fill="#E6EDF3">for agent framing to color the decision.</text> |
| 78 | </g> |
| 79 | |
| 80 | <!-- Bottom insight bar --> |
| 81 | <g id="complementary-note"> |
| 82 | <rect x="60" y="640" width="1160" height="40" rx="8" fill="#1C2333" stroke="#30363D" stroke-width="1"/> |
| 83 | <text x="640" y="666" text-anchor="middle" font-family="Calibri, Arial, sans-serif" font-size="14" fill="#D4A574">Action-level blocking is orthogonal to chain-of-thought monitoring — the two are complementary.</text> |
| 84 | </g> |
| 85 | |
| 86 | <!-- Footer --> |
| 87 | <g id="footer"> |
| 88 | <text x="1220" y="700" text-anchor="end" font-family="Calibri, Arial, sans-serif" font-size="11" fill="#6E7681">07 / 10</text> |
| 89 | </g> |
| 90 | </svg> |
| 91 |