repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources16d ago| #1 | <!DOCTYPE html> |
| #2 | <html lang="en"> |
| #3 | <head> |
| #4 | <meta charset="UTF-8"> |
| #5 | <meta name="viewport" content="width=device-width, initial-scale=1.0"> |
| #6 | <title>QEDGen — Mathematical proof for Solana programs</title> |
| #7 | <meta name="description" content="One skill turns your coding agent into a theorem prover. Lean 4 proofs for your Solana programs — every proof compiles."> |
| #8 | <meta property="og:title" content="QEDGen — Mathematical proof for Solana programs"> |
| #9 | <meta property="og:description" content="One skill turns your coding agent into a theorem prover. Lean 4 proofs for your Solana programs — every proof compiles."> |
| #10 | <meta property="og:url" content="https://qedgen.dev/"> |
| #11 | <meta property="og:type" content="website"> |
| #12 | <meta property="og:image" content="https://qedgen.dev/og.png"> |
| #13 | <meta property="og:image:width" content="1200"> |
| #14 | <meta property="og:image:height" content="630"> |
| #15 | <meta name="twitter:card" content="summary_large_image"> |
| #16 | <meta name="twitter:title" content="QEDGen — Mathematical proof for Solana programs"> |
| #17 | <meta name="twitter:description" content="One skill turns your coding agent into a theorem prover. Lean 4 proofs for your Solana programs — every proof compiles."> |
| #18 | <meta name="twitter:image" content="https://qedgen.dev/og.png"> |
| #19 | <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 42 42' fill='none'><rect x='4' y='4' width='34' height='34' rx='4' stroke='%2338bdf8' stroke-width='2.5'/><path d='M12 21L18 27L30 15' stroke='%2338bdf8' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/><rect x='28' y='28' width='6' height='6' fill='%2338bdf8'/></svg>"> |
| #20 | <link rel="stylesheet" href="style.css"> |
| #21 | </head> |
| #22 | <body> |
| #23 | |
| #24 | <div class="hero-glow"></div> |
| #25 | |
| #26 | <!-- Nav --> |
| #27 | <nav> |
| #28 | <div class="container"> |
| #29 | <a class="logo-mark" href="#"> |
| #30 | <svg class="logo-svg" width="28" height="28" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg"> |
| #31 | <rect x="4" y="4" width="34" height="34" rx="4" stroke="#38bdf8" stroke-width="2.5"/> |
| #32 | <path d="M12 21L18 27L30 15" stroke="#38bdf8" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/> |
| #33 | <rect x="28" y="28" width="6" height="6" fill="#38bdf8"/> |
| #34 | </svg> |
| #35 | <span class="logo-text">QEDGen</span> |
| #36 | </a> |
| #37 | <div class="links"> |
| #38 | <a href="https://github.com/qedgen/solana-skills/blob/main/SKILL.md" target="_blank" rel="noopener noreferrer">Docs</a> |
| #39 | <a href="https://github.com/qedgen/solana-skills" target="_blank" rel="noopener noreferrer">GitHub</a> |
| #40 | </div> |
| #41 | </div> |
| #42 | </nav> |
| #43 | |
| #44 | <!-- Hero — single screen, split layout --> |
| #45 | <header class="hero"> |
| #46 | <div class="container hero-grid"> |
| #47 | <div class="hero-copy"> |
| #48 | <div class="badge"><span class="badge-dot"></span> Proofs, not promises</div> |
| #49 | <h1>Prove your Solana code is correct.<br><span class="accent-text">Mathematically. ∎</span></h1> |
| #50 | <p class="subtitle">One skill. Your agent reads your code, writes Lean 4 proofs, and iterates until they compile.</p> |
| #51 | <pre class="install-cmd"><code>npx skills add qedgen/solana-skills</code></pre> |
| #52 | <p class="compat">Works with Cursor, Windsurf, Claude Code, GitHub Copilot, and any agent supporting <a href="https://agentskills.io" target="_blank" rel="noopener noreferrer">Agent Skills</a>.</p> |
| #53 | <div class="cta"> |
| #54 | <a href="https://github.com/qedgen/solana-skills" class="btn btn-primary" target="_blank" rel="noopener noreferrer"><svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor"><path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/></svg> Star on GitHub</a> |
| #55 | <a href="https://github.com/qedgen/solana-skills/blob/main/SKILL.md" class="btn btn-secondary" target="_blank" rel="noopener noreferrer">View the Skill</a> |
| #56 | </div> |
| #57 | </div> |
| #58 | <div class="hero-diagram"> |
| #59 | <svg viewBox="0 0 360 420" xmlns="http://www.w3.org/2000/svg"> |
| #60 | <defs> |
| #61 | <marker id="arr" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"> |
| #62 | <path d="M 0 0 L 10 5 L 0 10 z" fill="#e2e8f0"/> |
| #63 | </marker> |
| #64 | <marker id="arr-a" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"> |
| #65 | <path d="M 0 0 L 10 5 L 0 10 z" fill="#38bdf8"/> |
| #66 | </marker> |
| #67 | <marker id="arr-m" viewBox="0 0 10 10" refX="9" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse"> |
| #68 | <path d="M 0 0 L 10 5 L 0 10 z" fill="#6b7280"/> |
| #69 | </marker> |
| #70 | </defs> |
| #71 | |
| #72 | <!-- Box 1: Your Code --> |
| #73 | <rect x="95" y="8" width="170" height="66" rx="8" fill="rgba(255,255,255,0.03)" stroke="rgba(255,255,255,0.08)"/> |
| #74 | <svg x="173" y="16" width="14" height="14" viewBox="0 0 16 16"> |
| #75 | <path fill="#71717a" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.01 8.01 0 0 0 16 8c0-4.42-3.58-8-8-8z"/> |
| #76 | </svg> |
| #77 | <text x="180" y="46" text-anchor="middle" fill="#e2e8f0" font-size="12" font-weight="600" font-family="'Geist Mono',monospace">Your Code</text> |
| #78 | <text x="180" y="60" text-anchor="middle" fill="#6b7280" font-size="10" font-family="'Geist Mono',monospace">Rust / Anchor</text> |
| #79 | |
| #80 | <!-- Arrow 1 → 2 --> |
| #81 | <line x1="180" y1="74" x2="180" y2="94" stroke="#e2e8f0" stroke-width="1" marker-end="url(#arr)"/> |
| #82 | |
| #83 | <!-- Box 2: Your Agent --> |
| #84 | <rect x="95" y="96" width="170" height="66" rx="8" fill="rgba(255,255,255,0.03)" stroke="rgba(255,255,255,0.08)"/> |
| #85 | <svg x="173" y="104" width="14" height="14" viewBox="0 0 16 16"> |
| #86 | <path fill="#71717a" d="M8 1 L9.5 6.5 L15 8 L9.5 9.5 L8 15 L6.5 9.5 L1 8 L6.5 6.5 Z"/> |
| #87 | </svg> |
| #88 | <text x="180" y="134" text-anchor="middle" fill="#e2e8f0" font-size="12" font-weight="600" font-family="'Geist Mono',monospace">Your Agent</text> |
| #89 | <text x="180" y="149" text-anchor="middle" fill="#52525b" font-size="7.5" font-family="'Geist Mono',monospace" letter-spacing="0.5">Claude · Cursor · Copilot</text> |
| #90 | |
| #91 | <!-- Arrow 2 → 3 --> |
| #92 | <line x1="180" y1="162" x2="180" y2="182" stroke="#e2e8f0" stroke-width="1" marker-end="url(#arr)"/> |
| #93 | |
| #94 | <!-- Box 3: SPEC.md --> |
| #95 | <rect x="95" y="184" width="170" height="66" rx="8" fill="rgba(255,255,255,0.03)" stroke="rgba(255,255,255,0.08)"/> |
| #96 | <svg x="173" y="192" width="14" height="14" viewBox="0 0 16 16"> |
| #97 | <path fill="none" stroke="#71717a" stroke-width="1.3" stroke-linejoin="round" d="M4 1 h5 l4 4 v10 h-9 z"/> |
| #98 | <path fill="none" stroke="#71717a" stroke-width="1.3" d="M9 1 v4 h4"/> |
| #99 | </svg> |
| #100 | <text x="180" y="222" text-anchor="middle" fill="#e2e8f0" font-size="12" font-weight="600" font-family="'Geist Mono',monospace">SPEC.md</text> |
| #101 | <text x="180" y="236" text-anchor="middle" fill="#6b7280" font-size="10" font-family="'Geist Mono',monospace">goals & properties</text> |
| #102 | |
| #103 | <!-- Arrow 3 → 4 --> |
| #104 | <line x1="180" y1="250" x2="180" y2="270" stroke="#e2e8f0" stroke-width="1" marker-end="url(#arr)"/> |
| #105 | |
| #106 | <!-- Box 4: Lean 4 Proofs --> |
| #107 | <rect x="95" y="272" width="170" height="66" rx="8" fill="rgba(255,255,255,0.03)" stroke="rgba(56,189,248,0.25)"/> |
| #108 | <text x="180" y="292" text-anchor="middle" fill="#38bdf8" font-size="16" font-weight="600" font-family="Georgia,serif" font-style="italic">λ</text> |
| #109 | <text x="180" y="310" text-anchor="middle" fill="#e2e8f0" font-size="12" font-weight="600" font-family="'Geist Mono',monospace">Lean 4 Proofs</text> |
| #110 | <text x="180" y="324" text-anchor="middle" fill="#6b7280" font-size="10" font-family="'Geist Mono',monospace">lake build</text> |
| #111 | |
| #112 | <!-- Arrow 4 → ∎ --> |
| #113 | <line x1="180" y1="338" x2="180" y2="366" stroke="#38bdf8" stroke-width="1.5" marker-end="url(#arr-a)"/> |
| #114 | |
| #115 | <!-- QED tombstone --> |
| #116 | <rect x="155" y="368" width="50" height="42" rx="8" fill="#38bdf8"/> |
| #117 | <text x="180" y="395" text-anchor="middle" fill="#09090b" font-size="18" font-weight="800">∎</text> |
| #118 | |
| #119 | <!-- Leanstral --> |
| #120 | <rect x="5" y="283" width="74" height="44" rx="6" fill="rgba(255,255,255,0.03)" stroke="rgba(255,255,255,0.08)" stroke-dasharray="4 3"/> |
| #121 | <text x="42" y="300" text-anchor="middle" fill="#6b7280" font-size="9" font-family="'Geist Mono',monospace">Leanstral</text> |
| #122 | <text x="42" y="314" text-anchor="middle" fill="#6b7280" font-size="8" font-family="'Geist Mono',monospace">theorem prover</text> |
| #123 | |
| #124 | <!-- Leanstral arrow --> |
| #125 | <line x1="95" y1="305" x2="81" y2="305" stroke="#6b7280" stroke-width="1" stroke-dasharray="4 3" marker-end="url(#arr-m)"/> |
| #126 | |
| #127 | <!-- Iterate loop --> |
| #128 | <path d="M 265 305 Q 300 305 300 217 Q 300 129 265 129" fill="none" stroke="#6b7280" stroke-width="1" stroke-dasharray="4 3" marker-end="url(#arr-m)"/> |
| #129 | <text x="305" y="220" text-anchor="start" fill="#6b7280" font-size="9" font-family="'Geist Mono',monospace">iterate</text> |
| #130 | </svg> |
| #131 | </div> |
| #132 | </div> |
| #133 | </header> |
| #134 | |
| #135 | <!-- Footer --> |
| #136 | <footer> |
| #137 | <div class="watermark">Q.E.D.</div> |
| #138 | <div class="container"> |
| #139 | <div class="footer-left"> |
| #140 | <svg width="20" height="20" viewBox="0 0 42 42" fill="none" xmlns="http://www.w3.org/2000/svg"> |
| #141 | <rect x="4" y="4" width="34" height="34" rx="4" stroke="#38bdf8" stroke-opacity="0.5" stroke-width="2.5"/> |
| #142 | <path d="M12 21L18 27L30 15" stroke="#38bdf8" stroke-opacity="0.5" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/> |
| #143 | <rect x="28" y="28" width="6" height="6" fill="#38bdf8" fill-opacity="0.5"/> |
| #144 | </svg> |
| #145 | <span class="footer-name">QEDGen</span> |
| #146 | <span class="footer-copy">MIT License</span> |
| #147 | </div> |
| #148 | <div class="footer-links"> |
| #149 | <a href="https://github.com/qedgen/solana-skills" target="_blank" rel="noopener noreferrer">GitHub</a> |
| #150 | <a href="https://github.com/qedgen/solana-skills/blob/main/SKILL.md" target="_blank" rel="noopener noreferrer">SKILL.md</a> |
| #151 | <a href="https://github.com/qedgen/solana-skills/issues" target="_blank" rel="noopener noreferrer">Issues</a> |
| #152 | </div> |
| #153 | </div> |
| #154 | </footer> |
| #155 | |
| #156 | </body> |
| #157 | </html> |
| #158 |