Solana onboarding
This skill carries the components that answer each of those, and the rules for choosing between them. Both are calibrated on evidence: every rule exists because something was measured failing without it.
Components are copied into the user's project. They are not a dependency, there is nothing to keep updated, and the user owns and edits the result.
Output: either a diagnosis of what is missing, or components installed and wired into the project, with the wording agreed rather than assumed.
- Read the reference for a pattern before proposing anything about it. The rules are not derivable from the components.
- Propose copy and wait for the user to confirm, edit or replace it. Product wording is theirs, and a plausible guess survives review by looking finished.
- Say when a screen should not exist. Confirming everything trains people to click through, which is what makes the one dialog that mattered invisible.
- Run the project's build after installing anything, and fix what you broke.
Never:
- Never invent a component. If nothing here fits, say so and describe what would.
- Never add a copy-to-clipboard control for a recovery phrase.
- Never assert the reason an identity verification was rejected. The reasoning
is in
components/kyc-rejection-causes.ts. - Never write a literal colour into a component. Everything paints with
--so-*tokens, which is what lets a copied component adopt the host brand.
Step 1. Work out what is being asked
Route on what the user gave you, not on the words they used. People rarely name the pattern they need.
| What arrived | Where to go |
|---|---|
| An error string or code, or a screenshot of one | references/error-codes.md |
| "Review our onboarding", a repository, a flow to critique | Audit mode, below |
| "I need a confirmation for X", or a described screen | Implement mode, below |
| A term the product uses without explaining | references/glossary.md |
| Anything about creating, importing or social login | references/custody-paths.md first |
If the request is broad, run the audit first. Implementing without diagnosing produces a well-built screen in the wrong place.
Step 2. Load only what the task needs
Every reference is written to be applied on its own.
| File | Holds |
|---|---|
references/patterns/ | One file per pattern: the gap it closes, when it applies, its rules, the copy to propose |
references/risk-classification.md | Whether an action needs a confirmation, and which of the four |
references/custody-paths.md | Create, social login or import, and where the kit stops |
references/error-codes.md | An error code, to the component that answers it |
references/glossary.md | The terms the kit explains, and where the long version lives |
references/copy-rules.md | How to propose wording, and what is not yours to change |
references/installing.md | Copying components into a project without breaking it |
methodology/audit-grid.md | The 30 questions the research scored, for audit mode |
Audit mode
Diagnose before touching anything.
- Find the entry flow: wallet connection, account creation, the first transaction, and any gate between them. Ask if you cannot tell.
- Score it against
methodology/audit-grid.md. Severity is calibrated by what a failure costs the user, not by how wrong it looks. - Look for the two failures that hide well: an irreversible action with no confirmation, and a confirmation a level below the action it guards. The second is more common and harder to see, because the screen looks considered.
- Report gaps ordered by severity, each naming the pattern that closes it. Recommend, do not install.
Names in a codebase are candidates, not conclusions. Confirm before reporting.
Implement mode
- Identify the pattern. For a confirmation, run
references/risk-classification.mdfirst: it also answers "no dialog at all". - Read the project. Framework, styling, whether shadcn tokens exist, where components live, and what the product actually does. The wording depends on that last one.
- Propose the copy and the blocks it needs. Say what you chose and why. Wait.
- Install, following
references/installing.md. - Build. Show it running if you can.


