explainmyrepo 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,165 @@
1
+ <div align="center">
2
+
3
+ # explainmyrepo
4
+
5
+ ### Point it at any GitHub repo. Get back an explainer a stranger โ€” and their AI โ€” actually understands.
6
+
7
+ ## ๐ŸŒ The website โ€” there is only ONE
8
+
9
+ # โ†’ **[explainmyrepo.isovision.ai](https://explainmyrepo.isovision.ai)** โ†
10
+
11
+ This is the live site: the concept, the full process, and all six example explainers on one page.
12
+
13
+ > **Heads up:** the old `repo-explainer-website.vercel.app` was an earlier draft that told people to run a command (`npx repo-explainer`) that was never published. It now **redirects here**. If you ever land on anything other than **explainmyrepo.isovision.ai**, you're on the wrong (old) page.
14
+
15
+ *Complex repos deserve clear introductions. This builds them, then refuses to ship until they're good.*
16
+
17
+ </div>
18
+
19
+ <!-- DIAGRAM: hero (a dense, unreadable repo on the left transformed into a clear, art-directed explainer page on the right) -->
20
+
21
+ ---
22
+
23
+ ## The problem it solves
24
+
25
+ Most repositories are opaque. Open one cold and you can't quickly tell **what it is**, **why it matters**, **how it's built**, or **how to use it**. The README is usually a wall of text written by someone who already knows the answer โ€” so it assumes you do too.
26
+
27
+ That hurts twice over now:
28
+
29
+ - **A human** lands on your repo, doesn't get it in thirty seconds, and leaves.
30
+ - **An AI** (Claude Code, Cursor) is asked about your repo and *guesses*, because it has no grounded understanding of the actual source.
31
+
32
+ A longer README doesn't fix opacity. The goal is bigger than documentation:
33
+
34
+ > Take someone from *"I've never seen this before"* to *"Oh, I get why this was created, the problem it solves, what it does, why it's elegant, how it works โ€” and I'm ready to go implement it."*
35
+
36
+ That's the bar. `explainmyrepo` exists to clear it, on every build.
37
+
38
+ ---
39
+
40
+ ## What you get โ€” three artifacts from one command
41
+
42
+ One command reads a repo and produces three things, each quality-gated:
43
+
44
+ <!-- DIAGRAM: three-outputs (one GitHub URL โ†’ a live explainer page for humans + a GitHub repo you own + a downloadable AI knowledge pack for their AI) -->
45
+
46
+ 1. **A live explainer web page** โ€” the link you share. A bespoke, art-directed walkthrough with a real architecture diagram and a real data-flow diagram drawn from the code itself.
47
+ 2. **A GitHub repo you own** โ€” you're invited as a collaborator on the explainer's own repo, so you can edit it. It's yours.
48
+ 3. **A downloadable AI knowledge pack** โ€” a drop-in `.zip` containing a vector knowledge base of the repo, a search CLI, and an MCP server, so Claude Code or Cursor answer from the **real source** instead of guessing.
49
+
50
+ ---
51
+
52
+ ## How it works โ€” the process
53
+
54
+ `explainmyrepo` is not a template filler and not a doc scraper. It's a single Claude Code **skill** that holds the judgment (the *brain*) plus small, pure **tools** that do the mechanics โ€” with one data contract flowing between them. No brittle multi-phase pipeline.
55
+
56
+ The brain runs the repo through an ordered sequence. Each step has one job:
57
+
58
+ <!-- DIAGRAM: pipeline (read โ†’ understand โ†’ conceive โ†’ author โ†’ visualize โ†’ assemble โ†’ grade โŸฒ โ†’ ship) -->
59
+
60
+ 1. **Read** โ€” clone the repo and confirm it's reachable (public, private, or your own, via authenticated access).
61
+ 2. **Understand** โ€” build a real RVF vector knowledge base from the actual code: structure-aware chunks, local 384-dim embeddings (`bge-small-en-v1.5`), plus an extracted symbol index, dependency graph, and entrypoints. Then author a plain-language primer. Everything downstream is grounded in this KB โ€” **no invented capabilities**.
62
+ 3. **Conceive** โ€” before writing a word, invent *this repo's* art direction: a visual metaphor that fits (PhotonLayer โ†’ prism, ruvn โ†’ evidence dossier, ruqu โ†’ Bloch-sphere orb), a palette, a type personality, a layout rhythm, a hero concept, and a copy voice. This is why every explainer looks different.
63
+ 4. **Author** โ€” write the copy along a **comprehension arc** โ€” the questions a newcomer actually asks, in order: *What world am I in? Why does this exist? What does it do? Why is it clever? How is it built? Could I use it? How do I start?* Every claim is traceable to a KB passage.
64
+ 5. **Visualize** โ€” generate imagery on two tracks: emotional/illustrative images via `gpt-image-2` (hero, problem, scenario), and crisp **vector diagrams** via `ascii-to-svg` for structure. An **architecture diagram and a data-flow diagram are mandatory on every page**, drawn from the repo's *real* dependency graph and entrypoints โ€” never invented.
65
+ 6. **Assemble** โ€” render the page **once** onto a shared design system (no incremental marker-patching), build the downloadable AI knowledge pack, and wire in SEO + social (JSON-LD, a 1200ร—630 social card, `llms.txt` for AI crawlers).
66
+ 7. **Grade** โ€” the quality gate. Render the real page, score it, and **refine in a loop until it clears the bar** (see below).
67
+ 8. **Ship** โ€” deploy the already-great page to its own URL (Netlify by default, provider-agnostic), create the explainer GitHub repo and invite you in, set its topics + description, and email you the scorecard, both screenshots, and every link.
68
+
69
+ ---
70
+
71
+ ## The quality gate โ€” why the output is a class above
72
+
73
+ This is the part that makes the difference. A generic generator emits something and stops. `explainmyrepo` **does not ship until an independent critic and a set of operator questions both pass.**
74
+
75
+ <!-- DIAGRAM: quality-gate (render @ 390px + 1440px โ†’ vision critic scores Gate A substance + Gate B craft โ†’ 5 operator YES/NO questions โ†’ refine loop until mean โ‰ฅ 90, min axis โ‰ฅ 85, all YES โ†’ ship) -->
76
+
77
+ The gate renders the live page in a real browser at **390px (mobile)** and **1440px (desktop)**, takes full-page screenshots, and scores them on **two independent rubrics**:
78
+
79
+ - **Gate A โ€” "Do they actually get it?"** (substance): visual effectiveness, storytelling, clueless-to-convinced, usefulness-to-*you*, completeness of the arc, and implementation confidence.
80
+ - **Gate B โ€” "Did someone who gives a shit make this?"** (craft / anti-slop): typography, alignment, spacing, polish, and imagery craft โ€” including whether the diagrams are genuinely explanatory.
81
+
82
+ To pass, on **both devices**, the scorecard must hit an **exemplar-anchored bar: mean โ‰ฅ 90 and minimum axis โ‰ฅ 85**. The bar is pinned to the project's own praised example sites (~88 headline / ~92 mean on an honest harsh grader) โ€” not an impossible "95 on everything." The minimum-axis floor is the anti-slop catch: one weak axis (a raw ASCII diagram, a pretty-but-empty image) scores ~50 and fails the whole build.
83
+
84
+ On top of the numbers, the operator must answer **YES to all five questions** โ€” a separate, independent gate:
85
+
86
+ 1. Would this make me believe I understand this?
87
+ 2. Would this make it approachable?
88
+ 3. Would this explain it for somebody who doesn't understand it?
89
+ 4. Would it give me confidence I understand the architecture?
90
+ 5. Does it make me smile โ€” "oh, that's cool"?
91
+
92
+ A single axis below the bar, or a single NO, names the exact weakness, reopens just that slot, re-renders, and re-grades. **Iterating over a few revisions is expected by design** โ€” it's how the build climbs to genuinely high quality. Three sets of eyes see the same pixels: the vision-model critic, the operator, and finally you (the owner) on delivery. If a repo genuinely can't reach the bar, the build **says so honestly** rather than shipping slop and calling it done.
93
+
94
+ ---
95
+
96
+ ## One brain, three doors
97
+
98
+ The judgment lives in **one** place โ€” a Claude Code skill. The same core is exposed through three thin adapters that each run the *identical* skill; none of them contains explainer logic of its own. Improve the brain once, and it improves everywhere.
99
+
100
+ <!-- DIAGRAM: three-doors (one skill = the brain โ†’ exposed as a Claude Code plugin ยท an npx CLI ยท a hosted website) -->
101
+
102
+ - **Claude Code plugin** โ€” run it from inside Claude Code.
103
+ - **npx CLI** โ€” the one-liner below.
104
+ - **Hosted website** โ€” paste a GitHub URL in the browser.
105
+
106
+ ---
107
+
108
+ ## Get started
109
+
110
+ ```bash
111
+ # Point it at any GitHub repo. Walk away. Get back a live page, a repo you own, and an AI pack.
112
+ npx explainmyrepo https://github.com/owner/repo
113
+ ```
114
+
115
+ **What you need:** Node 18+, a GitHub repo URL, and your own API keys (Anthropic for the authoring brain, OpenAI for `gpt-image-2` imagery).
116
+
117
+ **What happens:** it reads the repo, understands it, art-directs and writes the page, generates the imagery and the real architecture + data-flow diagrams, grades the result on mobile and desktop until it clears the bar, then deploys it.
118
+
119
+ **What you get back:** a live URL (in your terminal and by email), a GitHub repo you're a collaborator on, and the downloadable AI knowledge pack โ€” plus the scorecard and both screenshots, so you're the final set of eyes.
120
+
121
+ > **Honest status:** the engine is built and proven. The `npx` package and the Claude Code plugin are **being published** โ€” until that's live the one-liner above won't resolve from npm yet; today it runs as the Claude Code skill in this repo. We won't show the command as "done" until it actually installs.
122
+
123
+ ---
124
+
125
+ ## See a real one
126
+
127
+ The agenticow explainer below was generated end to end from [`ruvnet/agenticow`](https://github.com/ruvnet/agenticow): a captivating hero, a plain-language walkthrough, **a real architecture diagram and data-flow diagram drawn from agenticow's own code**, concrete use-cases, and a one-click AI knowledge pack.
128
+
129
+ ### [Open the live agenticow explainer โ†’](https://stuinfla.github.io/Repo-Explainer/agenticow/)
130
+
131
+ The bar these are calibrated against โ€” five hand-built explainers, five completely different looks, same engine, same gate:
132
+
133
+ | | | |
134
+ |---|---|---|
135
+ | **PhotonLayer** โ€” optical-AI: light computes the answer before any chip wakes up. | **ruqu** โ€” a quantum-computing simulator in your browser (Rust + WASM). | **ruvn** โ€” turns a question into a graded, cited evidence dossier. |
136
+ | **MetaHarness** โ€” gives any project its own AI assistant that knows *that* project. | **Agentic QE** โ€” replaces manual testing with a fleet of specialist AI agents. | **agenticow** โ€” git for agent memory: copy-on-write vector branching. |
137
+
138
+ ---
139
+
140
+ ## Built with
141
+
142
+ | Layer | Tool |
143
+ |---|---|
144
+ | Knowledge base | RVF single-file vector DB (`@ruvector/rvf`) + `bge-small-en-v1.5` (local, 384-dim) |
145
+ | Imagery | `gpt-image-2` (illustration) + `ascii-to-svg` (architecture / flow diagrams) |
146
+ | Quality gate | Playwright dual-viewport render + vision grading (Claude by default, or any vision model you configure) |
147
+ | Hosting | Netlify by default (provider-agnostic adapter) |
148
+
149
+ The full recipe lives in [`docs/adr/0005-skill-based-explainer-recipe.md`](docs/adr/0005-skill-based-explainer-recipe.md); the domain model in [`docs/ddd/explainmyrepo-recipe-domain.md`](docs/ddd/explainmyrepo-recipe-domain.md).
150
+
151
+ ---
152
+
153
+ ## Credit
154
+
155
+ The tools in the examples above belong to [Reuven Cohen / @ruvnet](https://github.com/ruvnet). `explainmyrepo` is an independent project that exists to help more people โ€” and their AIs โ€” discover, understand, and adopt great work.
156
+
157
+ ---
158
+
159
+ <div align="center">
160
+
161
+ Built by **[Stuart Kerr](https://stuart-kerr-card.netlify.app)** at **[ISOvision.ai](https://isovision.ai)**.
162
+
163
+ *Complex repos deserve clear introductions.*
164
+
165
+ </div>