@ericrisco/rsc 1.1.0 → 1.1.2
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 +4 -4
- package/manifest.json +74 -2
- package/package.json +1 -1
- package/scripts/doctor.js +5 -0
- package/scripts/lib/domains.js +2 -2
- package/scripts/lib/starting-point.js +314 -0
- package/scripts/rsc.js +6 -2
- package/skills/bro/SKILL.md +9 -1
- package/skills/bro/evals/cases.yaml +4 -0
- package/skills/design/SKILL.md +3 -1
- package/skills/design/references/brand-grounding.md +1 -1
- package/skills/design/references/design-systems.md +8 -0
- package/skills/design/references/inspiration-sources.md +96 -0
- package/skills/design/references/research-method.md +7 -0
- package/skills/design/references/starting-point.md +75 -0
- package/skills/design-dna/SKILL.md +4 -0
- package/skills/design-loop/SKILL.md +9 -1
- package/skills/eli5/SKILL.md +63 -0
- package/skills/eli5/evals/README.md +22 -0
- package/skills/eli5/evals/cases.yaml +54 -0
- package/skills/pick-ui-library/SKILL.md +1 -0
- package/skills/pick-ui-library/references/component-galleries.md +59 -0
- package/skills/show-me/SKILL.md +140 -0
- package/skills/show-me/evals/README.md +23 -0
- package/skills/show-me/evals/cases.yaml +61 -0
- package/skills/unslop/SKILL.md +114 -0
- package/skills/unslop/evals/README.md +25 -0
- package/skills/unslop/evals/cases.yaml +60 -0
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# Reference — where to go looking for a bar
|
|
2
|
+
|
|
3
|
+
> Last verified: **2026-08-24**. Every URL below was requested on that date and answered.
|
|
4
|
+
> Four sites block automated requests (403/429) but are alive in a browser — marked *(bot-blocked)*.
|
|
5
|
+
> A source with no date does not exist. Re-check before quoting one as current.
|
|
6
|
+
|
|
7
|
+
**Go and look.** Your built-in aesthetic prior is the median of every template ever scraped, so the
|
|
8
|
+
fastest way past it is to open real work and name what it does. This file is where to open.
|
|
9
|
+
|
|
10
|
+
Two rules that make the browsing worth anything:
|
|
11
|
+
|
|
12
|
+
- **Come back with a specific page, not a gallery.** `../../design-loop/SKILL.md` needs a bar you can
|
|
13
|
+
open — one URL, one screenshot. "Something like Awwwards" is not a bar; a named site from it is.
|
|
14
|
+
- **Extract principles, not pixels.** "Headline is 8× the body, one accent at 3% coverage" travels to
|
|
15
|
+
your project. Cloning a competitor's exact grid is theatre, and `research-method.md` says so.
|
|
16
|
+
|
|
17
|
+
## A whole page to beat
|
|
18
|
+
|
|
19
|
+
The default bucket. Use it when the goal is a site or landing and you need something to converge on.
|
|
20
|
+
|
|
21
|
+
| Source | Go here for |
|
|
22
|
+
|---|---|
|
|
23
|
+
| [Awwwards](https://www.awwwards.com) | The award tier. Ambitious, often over-built — take the craft, leave the load time. |
|
|
24
|
+
| [Recent](https://recent.design) | Formerly **Godly**; `godly.website` now 301s here. Curated modern web, strong signal-to-noise. |
|
|
25
|
+
| [SiteInspire](https://www.siteinspire.com) *(bot-blocked)* | Long-running, filterable by style, type and subject. Calmer taste than Awwwards. |
|
|
26
|
+
| [Land-book](https://land-book.com) *(bot-blocked)* | Landing pages at volume, filterable by industry and style. |
|
|
27
|
+
| [Httpster](https://httpster.net) | Opinionated and current, less polished-agency than the rest. |
|
|
28
|
+
| [Minimal Gallery](https://minimal.gallery) | When the brief is restraint and you need proof it can still sell. |
|
|
29
|
+
| [Curated Design](https://curated.design) | Aggregated across galleries — a fast first sweep. |
|
|
30
|
+
| [Nicely Done](https://nicelydone.club) | Real product sites and app UI rather than portfolios. |
|
|
31
|
+
| [Lapa Ninja](https://lapa.ninja) *(bot-blocked)* | Large landing archive, free, categorised. |
|
|
32
|
+
| [One Page Love](https://onepagelove.com) | Single-page sites specifically — the constraint is the point. |
|
|
33
|
+
|
|
34
|
+
## SaaS and conversion surfaces
|
|
35
|
+
|
|
36
|
+
| Source | Go here for |
|
|
37
|
+
|---|---|
|
|
38
|
+
| [SaaS Landing Page](https://saaslandingpage.com) | Real SaaS landings, browsable **by section** (hero, pricing, testimonials, footer) — the most useful axis when you are building one section at a time. |
|
|
39
|
+
| [Landingfolio](https://www.landingfolio.com) | Landings and page sections, heavy on conversion patterns. |
|
|
40
|
+
|
|
41
|
+
## Real product, real flows — not portfolios
|
|
42
|
+
|
|
43
|
+
The most under-used bucket. Portfolio galleries show the hero; these show what happens after the click.
|
|
44
|
+
|
|
45
|
+
| Source | Go here for |
|
|
46
|
+
|---|---|
|
|
47
|
+
| [Mobbin](https://mobbin.com) | Screens and full flows from shipped apps, mobile and web. The reference for "how does a real onboarding actually go". |
|
|
48
|
+
| [Page Flows](https://pageflows.com) | Recorded user flows end to end — signup, checkout, cancellation. Video, so you see the motion too. |
|
|
49
|
+
| [Screensdesign](https://screensdesign.com) | Mobile app screens with an emphasis on what is currently shipping. |
|
|
50
|
+
| [Refero](https://refero.design) | UI/UX inspiration organised for browsing by pattern. |
|
|
51
|
+
|
|
52
|
+
## One section, one pattern
|
|
53
|
+
|
|
54
|
+
Use when the piece is small and named: `design-loop` splits a goal into three or four pieces, and
|
|
55
|
+
these are for when a piece is "the footer" or "the empty state".
|
|
56
|
+
|
|
57
|
+
| Source | Go here for |
|
|
58
|
+
|---|---|
|
|
59
|
+
| [Footer.design](https://www.footer.design) | Footers only. Narrow on purpose, and the narrowness is why it is good. |
|
|
60
|
+
| [Collect UI](https://collectui.com) | Daily-UI-style collections by component and pattern. |
|
|
61
|
+
| [UI Garage](https://uigarage.net) | Patterns tagged by element and by industry. |
|
|
62
|
+
| [UI Movement](https://uimovement.com) | Motion and interaction specifically — pair with the frequency gate in `../../animate/SKILL.md` before copying anything. |
|
|
63
|
+
| [Dark.design](https://dark.design) · [Dark Mode Design](https://darkmodedesign.com) | Dark interfaces done properly, which is a different problem from inverting a light one. |
|
|
64
|
+
| [Scrnshts](https://scrnshts.club) | App Store screenshot design — a real discipline of its own. |
|
|
65
|
+
|
|
66
|
+
## Design systems as the canonical answer
|
|
67
|
+
|
|
68
|
+
Not inspiration: **specification**. When the question is "what is the correct behaviour for this
|
|
69
|
+
component", these outrank any gallery.
|
|
70
|
+
|
|
71
|
+
| Source | Go here for |
|
|
72
|
+
|---|---|
|
|
73
|
+
| [Material 3](https://m3.material.io) | Google's system. Exhaustive on states, motion and tokens. |
|
|
74
|
+
| [Apple HIG](https://developer.apple.com/design/human-interface-guidelines) | The reference for platform behaviour and for what *not* to invent on Apple platforms. |
|
|
75
|
+
| [Shopify Polaris](https://polaris.shopify.com) | Dense, commerce-grade product UI with unusually good content guidance. |
|
|
76
|
+
| [IBM Carbon](https://carbondesignsystem.com) | Enterprise density and data-heavy patterns. |
|
|
77
|
+
| [GitHub Primer](https://primer.style) | Developer-tool UI, which is the closest analogue for most rsc projects. |
|
|
78
|
+
| [The Component Gallery](https://component.gallery) *(bot-blocked)* | The same component compared **across** design systems — the fastest way to see the range of correct answers. |
|
|
79
|
+
| [Adele](https://adele.uxpin.com) | Index of public design systems and their pattern libraries. |
|
|
80
|
+
| [Designsystems.com](https://www.designsystems.com) | Essays on building and maintaining a system, not a system itself. |
|
|
81
|
+
|
|
82
|
+
## Niche, but the right answer when it fits
|
|
83
|
+
|
|
84
|
+
| Source | Go here for |
|
|
85
|
+
|---|---|
|
|
86
|
+
| [Interface In Game](https://interfaceingame.com) | Game UI. Useful well beyond games for diegetic and high-density HUD ideas. |
|
|
87
|
+
| [Mobile.design](https://mobile.design) | Mobile-first patterns collected on their own terms. |
|
|
88
|
+
|
|
89
|
+
## Housekeeping
|
|
90
|
+
|
|
91
|
+
- **[Bestfolios](https://www.bestfolios.com) returned 502 on 2026-08-24** and is excluded until it
|
|
92
|
+
comes back. Do not cite it.
|
|
93
|
+
- **Component ideas**, as opposed to whole pages, live in
|
|
94
|
+
`../../pick-ui-library/references/component-galleries.md` — Aceternity, 21st.dev, React Bits.
|
|
95
|
+
- **Identity outranks all of this.** Check `02-DOCS/wiki/brand/` for what the project refuses before
|
|
96
|
+
bringing an idea back. A gallery cannot know what your brand vetoed.
|
|
@@ -145,3 +145,10 @@ When the direction changes mid-project (new competitor, pivot), re-run the loop
|
|
|
145
145
|
- `visual-system.md` — turn the filled direction into tokens.
|
|
146
146
|
- `../../nextjs/SKILL.md` — implement the chosen direction on the App Router stack.
|
|
147
147
|
- *frontend-design-direction* — product-domain direction judgment (external reference, not a repo skill).
|
|
148
|
+
|
|
149
|
+
## Where to look
|
|
150
|
+
|
|
151
|
+
`inspiration-sources.md` is the dated registry of where to browse: whole pages to beat, SaaS and
|
|
152
|
+
conversion surfaces, real product flows (Mobbin, Page Flows — the bucket most people skip), single
|
|
153
|
+
patterns like footers and empty states, and the design systems that are specification rather than
|
|
154
|
+
inspiration. Extract principles, not pixels, and come back with a named page rather than a gallery.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
# Reference — proposing a starting point
|
|
2
|
+
|
|
3
|
+
Three places promise to propose one: `../../design-loop/SKILL.md` phase 1 when the user says *skip*,
|
|
4
|
+
the closing line of `brand-grounding.md` when a visual dimension has no direction, and
|
|
5
|
+
`../../design-dna/SKILL.md`'s REUSE mode. This file is what they propose *from*. Without it the
|
|
6
|
+
fallback is your own prior, which is the AI-template median — the thing the whole area exists to escape.
|
|
7
|
+
|
|
8
|
+
## 0. What the project already owns wins
|
|
9
|
+
|
|
10
|
+
**Look before you offer.** Run it; do not reason about it:
|
|
11
|
+
|
|
12
|
+
```bash
|
|
13
|
+
npx @ericrisco/rsc doctor --json # read `designStartingPoint`
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
| State | What it means | What you do |
|
|
17
|
+
| --- | --- | --- |
|
|
18
|
+
| `owned` | An identity article or at least one legible style record exists | Propose **that**, by name, first. Offer nothing external until the user rejects it. More than one record → all of them are candidates, ordered as reported. Never pick one silently. |
|
|
19
|
+
| `none` | Looked in both scopes, found nothing | Go to §1. |
|
|
20
|
+
| `inconclusive` | Something could not be read | Say what, and ask for another route to it. **Do not propose past a blind spot** — a proposal made without looking is the defect this file exists to remove. |
|
|
21
|
+
|
|
22
|
+
If the owned identity **contradicts** what the user is now asking for, name the conflicting rule and let
|
|
23
|
+
them decide which wins. Same rule the loop's preflight already applies to a bar from outside.
|
|
24
|
+
|
|
25
|
+
A record that `doctor` reports with a pair below its contrast floor is not offered as a starting point.
|
|
26
|
+
|
|
27
|
+
## 1. What are you building → which bar
|
|
28
|
+
|
|
29
|
+
At most **three** candidates. Each one gets a name, one line on why it fits *this* product, and one line
|
|
30
|
+
on when it would be the wrong choice. Then **wait**. No answer → take the most demanding one and say so.
|
|
31
|
+
|
|
32
|
+
Sources are in `inspiration-sources.md`; the tier-1 set and the dated-looking list are in
|
|
33
|
+
`trends-2026.md`. **Only propose what you can actually open** — that registry marks several sources as
|
|
34
|
+
bot-blocked, and a bar that cannot be fetched dies in the loop's preflight.
|
|
35
|
+
|
|
36
|
+
| Building | Candidate bars | Wrong choice when |
|
|
37
|
+
| --- | --- | --- |
|
|
38
|
+
| SaaS marketing | Stripe · [SaaS Landing Page](https://saaslandingpage.com) browsed by section · Linear | The product is a daily tool, not a purchase decision — a marketing skin on a workhorse |
|
|
39
|
+
| Dev tool | Linear · Vercel · Resend · [Primer](https://primer.style) | The audience is not technical: dev-tool restraint reads as unfinished to them |
|
|
40
|
+
| Dashboard / internal tool | [Carbon](https://carbondesignsystem.com) · [Polaris](https://polaris.shopify.com) · [Mobbin](https://mobbin.com) flows | It is a landing page with a chart on it — density is not the job |
|
|
41
|
+
| Portfolio / editorial | [Awwwards](https://www.awwwards.com) · [Recent](https://recent.design) · [One Page Love](https://onepagelove.com) | Anything with a conversion target: award craft routinely costs LCP and the 5s test |
|
|
42
|
+
| E-commerce | [Minimal Gallery](https://minimal.gallery) for restraint · [Nicely Done](https://nicelydone.club) for real product surfaces | The catalogue is huge and the real problem is search and filtering, not the hero |
|
|
43
|
+
| Docs | [Stripe docs](https://docs.stripe.com) · [Material 3](https://m3.material.io) on states | Reading is not the job — it is a reference table, so density beats calm |
|
|
44
|
+
|
|
45
|
+
Nothing here fits what they are building? **Say so and interview.** Do not stretch the nearest row: a bar
|
|
46
|
+
chosen because it was closest is the vague bar that makes the loop approve everything on round one.
|
|
47
|
+
|
|
48
|
+
## 2. A proposal is not an answer
|
|
49
|
+
|
|
50
|
+
1. **Open the reference.** No value is proposed from a page you did not fetch. Blocked → say so, pick
|
|
51
|
+
another. Never substitute a description from memory.
|
|
52
|
+
2. **Measure it** — the loop's teardown already does this and writes 5 to 7 mechanisms. Those measured
|
|
53
|
+
values *are* the researched default this file was missing. They are not invented, and they come from
|
|
54
|
+
a page that already ships.
|
|
55
|
+
3. **Check colour before writing it.** Any text pairing must measure **≥ 4.5:1** (≥ 3:1 for large text
|
|
56
|
+
and UI). Below that, it is **not proposed** — not proposed-with-a-warning.
|
|
57
|
+
4. **Write it marked `propuesto`, naming the reference it came from.** Never as a confirmed value.
|
|
58
|
+
5. A dimension that is proposed and not yet confirmed **does not count as complete** against
|
|
59
|
+
`brand-grounding.md`'s checklist. The hard STOP stays up for it. Otherwise the prefill becomes the
|
|
60
|
+
way to cross the gate with nobody having confirmed anything.
|
|
61
|
+
6. Only what the user confirms becomes the project's identity.
|
|
62
|
+
|
|
63
|
+
## 3. The base is the floor, not the concept
|
|
64
|
+
|
|
65
|
+
A starting point gets you a defensible floor in one exchange. It does **not** satisfy the ONE signature
|
|
66
|
+
element (`signature-and-craft.md` §2), and it never will: every project that picked the same bar would
|
|
67
|
+
converge on the same page. If the only thing making this surface distinctive is the bar it started from,
|
|
68
|
+
there is no concept yet.
|
|
69
|
+
|
|
70
|
+
## See Also
|
|
71
|
+
|
|
72
|
+
- `inspiration-sources.md` — the source registry, dated, with the bot-blocked entries marked.
|
|
73
|
+
- `trends-2026.md` — the tier-1 set, and what currently reads as a template.
|
|
74
|
+
- `brand-grounding.md` — the checklist this fills in, and the STOP it does not lift.
|
|
75
|
+
- `signature-and-craft.md` — the part a starting point cannot give you.
|
|
@@ -25,6 +25,10 @@ Nobody wrote down **why** the winner was beautiful. Next time you ask for "the s
|
|
|
25
25
|
|
|
26
26
|
If a `dna.json` already exists for the style named, you are in REUSE. Never re-derive a style that has a record.
|
|
27
27
|
|
|
28
|
+
To find out which records exist — in either scope, without guessing at paths — run
|
|
29
|
+
`npx @ericrisco/rsc doctor --json` and read `designStartingPoint`. A record it reports as `unreadable`
|
|
30
|
+
is **not** a record you can reuse: say what is missing, do not use half of one.
|
|
31
|
+
|
|
28
32
|
## Hard rules (these are the skill)
|
|
29
33
|
|
|
30
34
|
1. **A specification that cannot fail is not a specification.** If every rule you wrote is one a bad output could still satisfy, you wrote a mood board.
|
|
@@ -34,7 +34,15 @@ website", "good SaaS design"), push once for the specific page or file: a critic
|
|
|
34
34
|
reference invents the comparison and approves everything on round one.
|
|
35
35
|
|
|
36
36
|
On *skip*, propose three candidate bars, one line each on why, and wait. No answer → take the
|
|
37
|
-
hardest one and say so.
|
|
37
|
+
hardest one and say so. **Where they come from:** `../design/references/starting-point.md` — run its
|
|
38
|
+
step 0 first, because a bar the project already owns outranks anything you would pick from outside,
|
|
39
|
+
and proposing from memory is how this promise used to resolve to the AI-template median.
|
|
40
|
+
|
|
41
|
+
**Where to go looking.** For a whole page to beat, and for the flows and single patterns behind it:
|
|
42
|
+
`../design/references/inspiration-sources.md`. For a component idea rather than a whole reference:
|
|
43
|
+
`../pick-ui-library/references/component-galleries.md`. Browse for the technique, never to clone a
|
|
44
|
+
competitor's exact grid — and come back with **a specific page you can open**, because a gallery
|
|
45
|
+
is not a bar.
|
|
38
46
|
|
|
39
47
|
## Phase 2 — Preflight
|
|
40
48
|
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: eli5
|
|
3
|
+
description: "Use when a topic must be explained from zero to someone who knows nothing about it: one page, big pictures, very few words, everyday analogies, no jargon and nothing assumed. NOT the smallest in-conversation visual for someone already following (that is `show-me`), NOT a course with exercises (that is `course-builder`)."
|
|
4
|
+
tags: [eli5, explain, beginner, simple, analogy, no-jargon, explicame]
|
|
5
|
+
recommends: [show-me, technical-writing, course-builder]
|
|
6
|
+
profiles: [minimal, core, full]
|
|
7
|
+
origin: risco
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# eli5 — explain it to someone who knows nothing
|
|
11
|
+
|
|
12
|
+
The topic is whatever the user named. With no topic named, it is the one the conversation is already
|
|
13
|
+
on. The audience is someone with **zero** background: no vocabulary, no context, no patience for a
|
|
14
|
+
definition that needs another definition.
|
|
15
|
+
|
|
16
|
+
## The contract
|
|
17
|
+
|
|
18
|
+
1. **A page, not a paragraph.** The output is one self-contained HTML page, big visuals first, words
|
|
19
|
+
second. Open it when it is written.
|
|
20
|
+
2. **Picture carries the idea, words label it.** If the page still makes sense with the text removed,
|
|
21
|
+
it is working. Aim for a caption per picture, not a paragraph per picture.
|
|
22
|
+
3. **Everyday objects only.** Compare to things a person has physically handled: boxes, keys, queues
|
|
23
|
+
at a counter, post, a light switch. Never explain one unknown with another unknown.
|
|
24
|
+
4. **Zero jargon, and zero smuggled jargon.** No term appears without being shown first. "It caches"
|
|
25
|
+
is jargon; "it keeps a copy nearby so it doesn't have to walk back" is the same fact.
|
|
26
|
+
5. **Simple, never false.** When the simplification would make something untrue, say what got left
|
|
27
|
+
out, in one line, at the end. A comfortable lie is worse than a hard truth.
|
|
28
|
+
6. **No condescension.** Simple words, adult tone. The reader is new to the topic, not a child.
|
|
29
|
+
|
|
30
|
+
## The shape of the page
|
|
31
|
+
|
|
32
|
+
```text
|
|
33
|
+
one sentence: what this thing is, in words a stranger would use
|
|
34
|
+
big picture 1 : the thing, drawn
|
|
35
|
+
big picture 2 : the thing doing its job, step by step
|
|
36
|
+
one line : the part people get wrong
|
|
37
|
+
one line : what this explanation left out (only if it left something out)
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Three to five visuals is the whole page. Inline SVG or plain HTML boxes beat any chart library here:
|
|
41
|
+
the drawing has to be readable on a phone, at a glance, with no legend to study.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
open path/to/eli5-<topic>.html
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Anti-patterns
|
|
48
|
+
|
|
49
|
+
| Anti-pattern | Why it fails | Do this instead |
|
|
50
|
+
| --- | --- | --- |
|
|
51
|
+
| Define a term with two more terms | The reader loses the thread on line one | Show the thing, then name it |
|
|
52
|
+
| A wall of text with one decorative image | That is a blog post with a picture | Picture first, caption second |
|
|
53
|
+
| "Imagine you're a packet travelling…" | Cute framing, still abstract | Compare to an object the reader has held |
|
|
54
|
+
| Simplify until it is wrong | The reader now has to unlearn it | Keep it true and name what you dropped |
|
|
55
|
+
| Baby talk, emoji, exclamation marks | Talks down to the reader | Plain adult words, short sentences |
|
|
56
|
+
| Five diagrams of the same idea | Repetition reads as padding | One picture per genuinely new idea |
|
|
57
|
+
|
|
58
|
+
## Where this ends
|
|
59
|
+
|
|
60
|
+
- Someone already following the conversation who needs the shape of one mechanism: `show-me`.
|
|
61
|
+
- A structured curriculum with exercises, assessment and progression: `course-builder`.
|
|
62
|
+
- Documentation an informed reader will keep coming back to: `technical-writing`.
|
|
63
|
+
- Making an existing text sound human rather than simpler: `bro`.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# Evals — eli5
|
|
2
|
+
|
|
3
|
+
Two claims: that a from-zero request routes here instead of to the in-conversation visual skill or to
|
|
4
|
+
teaching material, and that the loaded skill produces a page a genuine beginner can follow.
|
|
5
|
+
|
|
6
|
+
## Triggering
|
|
7
|
+
|
|
8
|
+
Load only `eli5` and run every prompt in 3–5 fresh sessions. A positive passes when `eli5` loads in a
|
|
9
|
+
majority of trials; a negative passes when it stays quiet and the declared `route_to` skill is the
|
|
10
|
+
real owner. Require at least 90% accuracy.
|
|
11
|
+
|
|
12
|
+
`show-me` is the negative that matters: both are "explain it visually". The discriminator is the
|
|
13
|
+
reader's starting knowledge, and it must survive any description edit on either side.
|
|
14
|
+
|
|
15
|
+
## Capability
|
|
16
|
+
|
|
17
|
+
Run the scenario without the skill and with it, same topic and one grader, three trials. The
|
|
18
|
+
with-skill condition must satisfy at least 80% of the rubric and beat the baseline by at least 20
|
|
19
|
+
percentage points.
|
|
20
|
+
|
|
21
|
+
Grade the jargon point strictly: a baseline answer almost always keeps one unexplained term, which is
|
|
22
|
+
exactly the failure the skill exists to prevent.
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
skill: eli5
|
|
2
|
+
|
|
3
|
+
# `eli5` owns one move: a from-zero explanation of one topic, as a page of big
|
|
4
|
+
# pictures and few words, for someone with no background at all. It does not own
|
|
5
|
+
# in-conversation diagrams for someone already following, curricula, or docs.
|
|
6
|
+
should_trigger:
|
|
7
|
+
- prompt: "Explícame qué es una API como si tuviera cinco años."
|
|
8
|
+
why: "The canonical from-zero request, named outright, in the user's own language."
|
|
9
|
+
|
|
10
|
+
- prompt: "My mum asked me what a VPN is. I need something she can actually look at."
|
|
11
|
+
why: "A named audience with zero background and an explicit ask for something visual."
|
|
12
|
+
|
|
13
|
+
- prompt: "eli5 how a blockchain works"
|
|
14
|
+
why: "The bare skill name plus a topic is the shortest form of the same request."
|
|
15
|
+
|
|
16
|
+
- prompt: "No tengo ni idea de esto. Empieza por lo más básico, sin palabras raras."
|
|
17
|
+
why: "Zero background plus an explicit no-jargon constraint, with no topic named: the topic is the current one."
|
|
18
|
+
|
|
19
|
+
- prompt: "Can you explain what an index is in a database, but for someone who has never programmed?"
|
|
20
|
+
why: "A technical topic aimed at a non-technical reader is the audience this skill is written for."
|
|
21
|
+
|
|
22
|
+
- prompt: "Necesito explicarle a mi cliente, que no es técnico, qué es un webhook. Que lo entienda de una."
|
|
23
|
+
why: "Explaining to a named non-technical third party is the same job, one step removed."
|
|
24
|
+
|
|
25
|
+
should_not_trigger:
|
|
26
|
+
- prompt: "Show me the call order when the form is submitted, I'm lost in the code."
|
|
27
|
+
route_to: "show-me"
|
|
28
|
+
why: "The user is already inside the topic and needs one mechanism drawn, not a from-zero page."
|
|
29
|
+
|
|
30
|
+
- prompt: "Build a four-week course on SQL with exercises and a final project."
|
|
31
|
+
route_to: "course-builder"
|
|
32
|
+
why: "Curriculum, progression and assessment are course-builder; eli5 is a single explanation."
|
|
33
|
+
|
|
34
|
+
- prompt: "Write the getting-started docs for our SDK, with runnable examples."
|
|
35
|
+
route_to: "technical-writing"
|
|
36
|
+
why: "Reference and tutorial documentation is technical-writing, even when it must be beginner-friendly."
|
|
37
|
+
|
|
38
|
+
- prompt: "Make this paragraph sound less robotic before I send it."
|
|
39
|
+
route_to: "bro"
|
|
40
|
+
why: "A register and tone pass over existing text is bro; nothing here needs explaining from zero."
|
|
41
|
+
|
|
42
|
+
- prompt: "Design the hero section for our homepage so it feels premium."
|
|
43
|
+
route_to: "design-loop"
|
|
44
|
+
why: "Visual identity is the design area; eli5's visuals serve comprehension, not brand."
|
|
45
|
+
|
|
46
|
+
capability:
|
|
47
|
+
- scenario: "A non-technical business owner asks what a webhook is, after two failed explanations that used the words 'endpoint', 'payload' and 'HTTP POST'."
|
|
48
|
+
must_include:
|
|
49
|
+
- "produces one self-contained page with three to five large visuals, not a wall of text"
|
|
50
|
+
- "uses an everyday physical analogy the reader has handled, not another abstraction"
|
|
51
|
+
- "introduces no term without showing the thing first, and never uses endpoint, payload or POST unexplained"
|
|
52
|
+
- "keeps the explanation true, and names in one line whatever was left out"
|
|
53
|
+
- "stays adult in tone: no baby talk, no emoji, no exclamation marks"
|
|
54
|
+
- "opens the page for the user instead of only writing the file"
|
|
@@ -27,6 +27,7 @@ A lookup skill. When invoked with a task ("I need toasts", "what should I use fo
|
|
|
27
27
|
2. **Check what's already installed.** Look at `package.json` first. If the project already uses a listed library, use it. If it uses a competitor (e.g. react-window instead of Virtuoso), flag the recommendation but don't churn the dependency without being asked.
|
|
28
28
|
3. **Recommend one library**, state what it's for in one sentence, and install/wire it up if that's part of the request. Don't present a menu of options when the list has a clear answer.
|
|
29
29
|
4. If the task isn't covered by the list, say so explicitly and recommend from your own knowledge — but be clear you've left the curated list.
|
|
30
|
+
5. **Need an idea rather than a library?** Go and look: `references/component-galleries.md` names where to browse for component ideas (Aceternity for marketing effects, 21st.dev for breadth, React Bits for tunable animation) and what each is good for. Take the technique, build it in the project's own tokens.
|
|
30
31
|
|
|
31
32
|
## The list
|
|
32
33
|
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
# Reference — where to go looking for component ideas
|
|
2
|
+
|
|
3
|
+
> Last verified: **2026-08-24** — all three returned HTTP 200 on that date.
|
|
4
|
+
|
|
5
|
+
**Go and look.** When you need a component idea and your own prior is the median of every AI template
|
|
6
|
+
ever scraped, these are the places to browse instead of inventing from memory. Open them, see what
|
|
7
|
+
exists, come back with something specific.
|
|
8
|
+
|
|
9
|
+
## Where to go, and for what
|
|
10
|
+
|
|
11
|
+
### [Aceternity UI](https://ui.aceternity.com/components) — effects for a surface that must stop the scroll
|
|
12
|
+
|
|
13
|
+
Go here for **motion and atmosphere on a marketing surface**, not for primitives. What's there:
|
|
14
|
+
|
|
15
|
+
- **Backgrounds:** Aurora, Beams, Vortex, Sparkles, gradient fields
|
|
16
|
+
- **Cards:** 3D tilt, hover reveal, card stack, spotlight
|
|
17
|
+
- **Text:** typewriter, flip, encrypted/scramble, generate-in, canvas text
|
|
18
|
+
- **Scroll:** sticky scroll, container scroll, hero parallax
|
|
19
|
+
- **Navigation:** floating navbar, floating dock, sidebar, notch, tabs
|
|
20
|
+
- **Buttons:** magnetic, moving border, hover gradient
|
|
21
|
+
- **Data as spectacle:** globe, timeline, world map, before/after compare
|
|
22
|
+
- **Whole sections:** hero, pricing, testimonials, CTA, feature blocks
|
|
23
|
+
|
|
24
|
+
Best used when you can name the feeling you want and need to see how someone already built it.
|
|
25
|
+
|
|
26
|
+
### [21st.dev](https://21st.dev/community/components) — breadth, ranked by what people actually use
|
|
27
|
+
|
|
28
|
+
A community registry rather than a curated library, so it's the widest net of the three. Marketing
|
|
29
|
+
blocks *and* real UI — buttons, cards, forms, modals, inputs, tables — plus Shaders and ASCII art.
|
|
30
|
+
Sortable by popular and newest, with view counts.
|
|
31
|
+
|
|
32
|
+
Go here when you don't know what you're looking for yet and want to see the range. Read the code of
|
|
33
|
+
anything you like: community means unvetted, and popularity is not review.
|
|
34
|
+
|
|
35
|
+
### [React Bits](https://reactbits.dev/get-started/index) — animated interactions, deeply customizable
|
|
36
|
+
|
|
37
|
+
~46k stars. Animations, 3D, CSS effects, built to be tuned rather than dropped in.
|
|
38
|
+
|
|
39
|
+
Go here when Aceternity's version of an effect is close but you need to control it.
|
|
40
|
+
|
|
41
|
+
## Two things to carry with you
|
|
42
|
+
|
|
43
|
+
**Ideas travel; code stays there.** Take the technique, the ratio, the interaction — then build it in
|
|
44
|
+
the project's own tokens. Never vendor a gallery's source into this catalog: rsc ships publicly (P9),
|
|
45
|
+
and React Bits' licence (MIT + Commons Clause) forbids redistributing its components outright. In the
|
|
46
|
+
user's own project, installing any of the three is fine.
|
|
47
|
+
|
|
48
|
+
**Identity outranks the gallery.** Check `02-DOCS/wiki/brand/` for what this project refuses before
|
|
49
|
+
pulling an idea. A lot of what these galleries do best — aurora and gradient-mesh backgrounds,
|
|
50
|
+
glassmorphism, neon, blobs, decorative 3D — is also on the AI-tell list in
|
|
51
|
+
`../../design/references/ai-tells.md`, and some brand studies veto it by name. And run the frequency gate
|
|
52
|
+
from `../../animate/SKILL.md`: a spotlight card earns its place on a hero someone sees once, and never on
|
|
53
|
+
a table they open forty times a day.
|
|
54
|
+
|
|
55
|
+
## Not a substitute for the primitives
|
|
56
|
+
|
|
57
|
+
A dialog still comes from `base-ui`, a toast from Sonner, a command palette from cmdk. Focus trapping,
|
|
58
|
+
dismissal and accessibility are solved; an animated card does not replace a solved primitive. Use
|
|
59
|
+
`SKILL.md`'s list for the task, and this file for the look.
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: show-me
|
|
3
|
+
description: "Use when the user needs to see how something works instead of reading about it: picks the smallest visual that carries the point — pseudocode, call tree, file tree, component tree, Mermaid, a shaped diff, or one HTML page. NOT visual identity (that is `design-loop`), NOT slides (that is `presentations`), NOT a from-zero explainer (that is `eli5`)."
|
|
4
|
+
tags: [show-me, explain, diagram, visual, mermaid, diff, call-tree, ensename]
|
|
5
|
+
recommends: [eli5, presentations, technical-writing, codebase-onboarding]
|
|
6
|
+
profiles: [minimal, core, full]
|
|
7
|
+
origin: risco
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# show-me — the smallest picture that answers the question
|
|
11
|
+
|
|
12
|
+
A second paragraph never fixes the first one. Pick the smallest view that makes the point, put two
|
|
13
|
+
lines of prose beside it, stop.
|
|
14
|
+
|
|
15
|
+
## The contract
|
|
16
|
+
|
|
17
|
+
1. **One form, chosen on purpose.** Read what the question is *about*, pick the matching form from
|
|
18
|
+
the table, draw that. Several forms in one answer is the failure mode, not thoroughness.
|
|
19
|
+
2. **Only the parts that answer the question.** Keep the calls, files, props, states and boundaries
|
|
20
|
+
the user asked about. Everything else is noise that hides the answer.
|
|
21
|
+
3. **Prose shrinks to fit.** No preamble, no "here is a diagram of". The picture leads; the words
|
|
22
|
+
caption it.
|
|
23
|
+
4. **Real names.** Actual paths, actual function and component names, actual state values. A diagram
|
|
24
|
+
of `ServiceA → ServiceB` explains nothing.
|
|
25
|
+
5. **Say so when there is nothing to draw.** A topic with no shape gets a straight answer in prose.
|
|
26
|
+
A decorative diagram costs the reader time and buys nothing.
|
|
27
|
+
|
|
28
|
+
## Pick the form from what the topic is
|
|
29
|
+
|
|
30
|
+
| The question is about | Draw | Why this one |
|
|
31
|
+
| --- | --- | --- |
|
|
32
|
+
| Logic, an algorithm, a decision | pseudocode | branches read top-down; syntax would distract |
|
|
33
|
+
| What calls what at runtime | call tree | shows order and nesting, which prose loses |
|
|
34
|
+
| UI structure | component tree, with state and module boundaries | ownership is the answer most of the time |
|
|
35
|
+
| Which file is responsible for what | shallow file tree with one comment per entry | depth hides the point; one level shows it |
|
|
36
|
+
| Interaction, control flow, data flow between pieces | Mermaid sequence or flow diagram | two-way traffic over time needs an axis |
|
|
37
|
+
| What changes in a shape that already exists | `diff`, in the shape of the topic | the reader keeps their bearings |
|
|
38
|
+
| Layout, visual state, a dense comparison | one self-contained HTML page | text cannot hold it |
|
|
39
|
+
| Nothing with a shape | prose | see contract rule 5 |
|
|
40
|
+
|
|
41
|
+
```text
|
|
42
|
+
on(save)
|
|
43
|
+
if content is unchanged
|
|
44
|
+
return cached result
|
|
45
|
+
write new content
|
|
46
|
+
return fresh result
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
```text
|
|
50
|
+
submitForm
|
|
51
|
+
createSession
|
|
52
|
+
persistPrompt
|
|
53
|
+
launchAgent
|
|
54
|
+
navigateToSession
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
```tsx
|
|
58
|
+
<SessionPage> (apps/example/src/routes/session.tsx)
|
|
59
|
+
useSessionEvents()
|
|
60
|
+
<SessionToolbar>
|
|
61
|
+
<RunSkillButton> (packages/ui)
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
```text
|
|
65
|
+
src/
|
|
66
|
+
├── commands/ # parses user actions
|
|
67
|
+
├── sessions/ # owns session state
|
|
68
|
+
└── transport/ # sends API requests
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
```mermaid
|
|
72
|
+
sequenceDiagram
|
|
73
|
+
participant User
|
|
74
|
+
participant UI
|
|
75
|
+
participant Daemon
|
|
76
|
+
User->>UI: choose command
|
|
77
|
+
UI->>Daemon: send expanded prompt
|
|
78
|
+
Daemon-->>UI: stream result
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
## The diff rule
|
|
82
|
+
|
|
83
|
+
Use `diff` when the surrounding shape already exists and the point is what moves. **Match the diff
|
|
84
|
+
to the topic**: a component change is a component diff, a layout change is a file-tree diff, a
|
|
85
|
+
control-flow change is a pseudocode diff. A unified source diff for a structural change makes the
|
|
86
|
+
reader rebuild the structure in their head.
|
|
87
|
+
|
|
88
|
+
```diff
|
|
89
|
+
src/
|
|
90
|
+
├── commands/
|
|
91
|
+
+│ └── show-me.ts # expands the slash command
|
|
92
|
+
├── sessions/
|
|
93
|
+
-└── transport.ts
|
|
94
|
+
+└── transport/
|
|
95
|
+
+ ├── client.ts
|
|
96
|
+
+ └── stream.ts
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
```diff
|
|
100
|
+
on(save)
|
|
101
|
+
- write content
|
|
102
|
+
+ if content is unchanged
|
|
103
|
+
+ return cached result
|
|
104
|
+
+ write new content
|
|
105
|
+
+ invalidate cache
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Show the whole block instead of a diff when most of it is new, when the omitted context would hide
|
|
109
|
+
ownership or order, or when the user needs something copyable.
|
|
110
|
+
|
|
111
|
+
## When it earns an HTML page
|
|
112
|
+
|
|
113
|
+
Layout, visual state, a side-by-side comparison, or a concept too dense for a text diagram. One
|
|
114
|
+
page, self-contained, real labels and real data, readable on a phone and on a desktop. Inherit the
|
|
115
|
+
product's colours, type and spacing from where it lives; this skill borrows an identity, it never
|
|
116
|
+
invents one. Then open it:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
open path/to/show-me-<topic>.html
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
## Anti-patterns
|
|
123
|
+
|
|
124
|
+
| Anti-pattern | Why it fails | Do this instead |
|
|
125
|
+
| --- | --- | --- |
|
|
126
|
+
| Ship four forms because each adds a little | The reader now has to pick; that was your job | One form, the smallest that answers it |
|
|
127
|
+
| Diagram the whole system when asked about one path | The answer is in there somewhere, which is the same as absent | Draw the path, drop the rest |
|
|
128
|
+
| Placeholder names (`ModuleA`, `doThing`) | Nothing maps back to the codebase | Real paths and real identifiers |
|
|
129
|
+
| A unified source diff for a structural change | Forces the reader to rebuild the shape | Diff in the shape of the topic |
|
|
130
|
+
| Mermaid for a layout question | Boxes and arrows cannot show visual space | One HTML page |
|
|
131
|
+
| A diagram to look thorough | Costs attention, adds nothing | Answer in prose and say why there is nothing to draw |
|
|
132
|
+
|
|
133
|
+
## Where this ends
|
|
134
|
+
|
|
135
|
+
- The visual **identity** of an interface, a landing page or a poster is `design-loop` and `design`.
|
|
136
|
+
- A **deck** someone presents from is `presentations`.
|
|
137
|
+
- **Zero prior knowledge**, big pictures, few words, is `eli5`.
|
|
138
|
+
- Restructuring a document, a README or a reference is `technical-writing`.
|
|
139
|
+
- A guided tour of an unfamiliar repository is `codebase-onboarding`; this skill draws the pieces it
|
|
140
|
+
finds, it does not run the tour.
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Evals — show-me
|
|
2
|
+
|
|
3
|
+
Two claims are under test: that "show me / I don't get it / draw me" routes here without stealing
|
|
4
|
+
design, deck or beginner-explainer work, and that the loaded skill answers with **one** well-chosen
|
|
5
|
+
visual instead of more prose.
|
|
6
|
+
|
|
7
|
+
## Triggering
|
|
8
|
+
|
|
9
|
+
Load only `show-me` and run every `should_trigger` and `should_not_trigger` prompt in 3–5 fresh
|
|
10
|
+
sessions. A positive passes when `show-me` loads in a majority of trials. A negative passes when it
|
|
11
|
+
stays quiet and the declared `route_to` skill is the genuine owner. Require at least 90% accuracy.
|
|
12
|
+
|
|
13
|
+
The negatives that matter most are `eli5` and `design-loop`: both are adjacent enough that a sloppy
|
|
14
|
+
description pulls them in. Re-run these two after any description edit.
|
|
15
|
+
|
|
16
|
+
## Capability
|
|
17
|
+
|
|
18
|
+
Run the scenario in two fresh conditions, without the skill and with it, same source discussion and
|
|
19
|
+
one grader. Score each `must_include` point over three trials. The with-skill condition must satisfy
|
|
20
|
+
at least 80% of the rubric and beat the baseline by at least 20 percentage points.
|
|
21
|
+
|
|
22
|
+
The discriminating point is **form choice**: a baseline answer typically produces prose plus a
|
|
23
|
+
generic box diagram. Count "picked one form, and the right one" strictly.
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
skill: show-me
|
|
2
|
+
|
|
3
|
+
# `show-me` owns one move: the smallest visual that answers the question being
|
|
4
|
+
# asked, placed inside the conversation. It does not own visual identity, decks,
|
|
5
|
+
# teaching material for a beginner, or restructuring a document.
|
|
6
|
+
should_trigger:
|
|
7
|
+
- prompt: "No entiendo cómo funciona el login. Enséñamelo."
|
|
8
|
+
why: "An explicit ask to be shown rather than told, about a mechanism that has a shape to draw."
|
|
9
|
+
|
|
10
|
+
- prompt: "Can you show me visually how these three services talk to each other?"
|
|
11
|
+
why: "Interaction between pieces over time is the canonical Mermaid sequence case."
|
|
12
|
+
|
|
13
|
+
- prompt: "Draw me the component tree of this page so I can see which component owns the form state."
|
|
14
|
+
why: "UI structure with an ownership question is the component-tree form, named outright."
|
|
15
|
+
|
|
16
|
+
- prompt: "Antes de tocar nada, qué archivo es responsable de qué en src/?"
|
|
17
|
+
why: "File responsibility maps to the shallow file tree; the user wants the shape before editing."
|
|
18
|
+
|
|
19
|
+
- prompt: "I read your explanation twice and still don't get the order things happen in. Picture?"
|
|
20
|
+
why: "A second failed prose attempt is the trigger this skill exists for; runtime order is a call tree."
|
|
21
|
+
|
|
22
|
+
- prompt: "Show me what would change in the folder layout if we split transport.ts into a module."
|
|
23
|
+
why: "A change to an existing shape is the shaped-diff case, with the diff in the topic's own form."
|
|
24
|
+
|
|
25
|
+
- prompt: "Explícame con un diagrama qué pasa cuando el usuario cancela a mitad del pago."
|
|
26
|
+
why: "An edge path through a flow, explicitly requested as a diagram."
|
|
27
|
+
|
|
28
|
+
should_not_trigger:
|
|
29
|
+
- prompt: "Design the landing page for our new pricing tier, it should look premium."
|
|
30
|
+
route_to: "design-loop"
|
|
31
|
+
why: "Visual identity and composition are owned by the design area; show-me explains, it does not design."
|
|
32
|
+
|
|
33
|
+
- prompt: "Build me a 12-slide deck to present the roadmap to the board on Thursday."
|
|
34
|
+
route_to: "presentations"
|
|
35
|
+
why: "A deck someone presents from is presentations; this skill draws inside the conversation."
|
|
36
|
+
|
|
37
|
+
- prompt: "Explain how a database index works to someone who has never programmed, like they're five."
|
|
38
|
+
route_to: "eli5"
|
|
39
|
+
why: "Zero prior knowledge with big pictures and few words is eli5's contract, not the smallest in-context visual."
|
|
40
|
+
|
|
41
|
+
- prompt: "Reorganise this README into a proper tutorial and an API reference."
|
|
42
|
+
route_to: "technical-writing"
|
|
43
|
+
why: "Restructuring a document is technical-writing; a diagram inside it would be at most one paragraph of the job."
|
|
44
|
+
|
|
45
|
+
- prompt: "Walk me through this whole unfamiliar repo: what it does, how it's built, where to start."
|
|
46
|
+
route_to: "codebase-onboarding"
|
|
47
|
+
why: "A guided tour of an unknown codebase is its own skill; show-me only draws the pieces once they are known."
|
|
48
|
+
|
|
49
|
+
- prompt: "Build a dashboard with our monthly revenue and churn charts."
|
|
50
|
+
route_to: "dashboard"
|
|
51
|
+
why: "A standing analytics surface is dashboard; this is not an explanation of a mechanism."
|
|
52
|
+
|
|
53
|
+
capability:
|
|
54
|
+
- scenario: "The user asks, after a dense prose answer, why saving a document sometimes does not trigger a re-render. The real cause is a cache check inside the save handler plus a subscription set up after navigation. Show them."
|
|
55
|
+
must_include:
|
|
56
|
+
- "picks one form rather than stacking several, and the form matches the topic (control flow or call tree, not a file tree)"
|
|
57
|
+
- "uses the real handler, cache and subscription names from the discussion instead of placeholders"
|
|
58
|
+
- "shows only the path involved in the bug, not the whole module"
|
|
59
|
+
- "puts at most two lines of prose beside the visual, with no 'here is a diagram of' preamble"
|
|
60
|
+
- "marks what changes with a diff in the topic's own shape if it proposes a fix"
|
|
61
|
+
- "does not produce an HTML page for something a text diagram already carries"
|