syntaxai/tdd.md · main · public / images / contributing-onramp-gap.svg
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1200 700" width="1200" height="700">
<rect width="1200" height="700" fill="#0a0a0a"/>
<!-- Header -->
<g font-family="ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace">
<text x="80" y="46" font-size="20" font-weight="600" fill="#909090">The empirical chain — every output has a URL, the on-ramp doesn't</text>
<text x="80" y="92" font-size="30" font-weight="700" fill="#e8e8e8">Every artifact has a URL. The path to authoring them doesn't.</text>
<text x="80" y="120" font-size="14" fill="#7a7a7a">A new contributor must read 5+ blog posts + the spec + agent-private memory files to assemble "how to add a feature".</text>
</g>
<!-- Column headers -->
<g font-family="ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace" font-size="13" font-weight="600" letter-spacing="2">
<text x="100" y="172" fill="#909090">ARTIFACT</text>
<text x="600" y="172" fill="#909090">WHERE IT LIVES</text>
<text x="980" y="172" fill="#909090">CANONICAL DOC?</text>
</g>
<line x1="80" y1="184" x2="1120" y2="184" stroke="#2a2a2a" stroke-width="1"/>
<!-- Rows -->
<g font-family="ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace" font-size="15">
<text x="100" y="216" fill="#c8c8c8">SAMA spec (rules + profile + verifier)</text>
<text x="600" y="216" fill="#8a8a8a">/sama/v2</text>
<text x="980" y="216" fill="#7ec77e">✓ on-site</text>
<text x="100" y="246" fill="#c8c8c8">§4 verifier verdict (live proof)</text>
<text x="600" y="246" fill="#8a8a8a">/sama/v2/verify</text>
<text x="980" y="246" fill="#7ec77e">✓ live · auditable</text>
<text x="100" y="276" fill="#c8c8c8">§5 metric definitions + measurements</text>
<text x="600" y="276" fill="#8a8a8a">/sama/v2 §5 · /blog</text>
<text x="980" y="276" fill="#7ec77e">✓ on-site</text>
<text x="100" y="306" fill="#c8c8c8">/goal contracts (post PR #47)</text>
<text x="600" y="306" fill="#8a8a8a">/goals · /goals/<slug></text>
<text x="980" y="306" fill="#7ec77e">✓ archived</text>
<text x="100" y="336" fill="#c8c8c8">Source code (every file)</text>
<text x="600" y="336" fill="#8a8a8a">/GIT/tdd.md/tree/main</text>
<text x="980" y="336" fill="#7ec77e">✓ browseable</text>
<text x="100" y="366" fill="#c8c8c8">Discoverability (every URL)</text>
<text x="600" y="366" fill="#8a8a8a">/sitemap.xml</text>
<text x="980" y="366" fill="#7ec77e">✓ generated</text>
<text x="100" y="396" fill="#c8c8c8">Blog narrative (every decision)</text>
<text x="600" y="396" fill="#8a8a8a">/blog</text>
<text x="980" y="396" fill="#7ec77e">✓ indexed</text>
<text x="100" y="426" fill="#c8c8c8">Authoring workflow (the /goal rule)</text>
<text x="600" y="426" fill="#8a8a8a">agent-private memory file</text>
<text x="980" y="426" fill="#c89a3a">~ not on site</text>
<text x="100" y="456" fill="#c8c8c8">Layer / test / branch / deploy patterns</text>
<text x="600" y="456" fill="#8a8a8a">scattered across PRs + posts</text>
<text x="980" y="456" fill="#c89a3a">~ no canonical doc</text>
<!-- The dramatic row -->
<rect x="80" y="476" width="1040" height="40" fill="#2a1010" stroke="#7c2020" stroke-width="1.5" rx="4"/>
<text x="100" y="502" fill="#e88080" font-weight="700">"How do I contribute?" — the on-ramp</text>
<text x="600" y="502" fill="#c87070">nowhere — assemble from 11+ sources</text>
<text x="980" y="502" fill="#e85050" font-weight="700">✗ MISSING</text>
</g>
<!-- Bottom callout -->
<rect x="80" y="552" width="1040" height="104" fill="#1a1010" stroke="#3a2020" stroke-width="1" rx="6"/>
<g font-family="ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace">
<text x="100" y="584" font-size="16" font-weight="600" fill="#e88080">The self-violation:</text>
<text x="100" y="608" font-size="14" fill="#c8c8c8">"Every artifact is auditable" — yes, every OUTPUT is. The path to producing the outputs requires reverse-engineering</text>
<text x="100" y="628" font-size="14" fill="#c8c8c8">across blog posts + memory files (which humans can't even read) + commit history. A new contributor lands on tdd.md</text>
<text x="100" y="648" font-size="14" fill="#c8c8c8">with six entry points and no front door. The chain has all its links — except the one that brings a contributor in.</text>
</g>
<!-- Watermark -->
<text x="1120" y="684" text-anchor="end" font-family="ui-monospace, 'SF Mono', 'JetBrains Mono', Menlo, Consolas, monospace" font-size="12" fill="#5a5a5a">https://tdd.md</text>
</svg>