About gather
A skill for gathering inspiration before building or revising a design. It searches the user's own saved material first, then compiles references from multiple sources into a board with notes and source links.
Key features
- 01Reviews user-provided material first
- 02Searches the user's saves first
- 03Collects references across sources
- 04Notes what to take from each reference
- 05Organizes links in one board
Use cases
- 01Finding inspiration for a new interface
- 02Gathering references for a redesign
- 03Searching examples for a specific platform
- 04Organizing design directions for review
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ raphaelsalaja/ skills --skill gatherAfter installing, type/gatherin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
board.htmlsources.mdagents/openai.yamlDetails
From the project READMEGather
This skill collects inspiration before a design is built or reworked. It searches the user's own saves first, then wider sources, and returns one board where every reference links back and names what to take.
Evidence for a choice, not a style to copy
A reference shows how one part could work. Taking a whole app's look when the user asked for its top bar is a finding. With no number given, gather at least 20 references from at least three sources.
Use it when the user asks for inspiration, references or "inspo", or says a screen looks bad and asks how to improve it. Building variants from the board belongs to prototype. Rebuilding one reference value for value belongs to match.
1. Name the brief
Write one line naming the surface, its platform and what to look for: layout, navigation, density, type, colour, motion or overall taste. A search with no target is gather-name-the-brief.
Search on the same platform as the work. A desktop or web app takes web and desktop references. Mobile screens for a desktop app is gather-same-platform.
2. Start with what the user gave
Open the tabs, screenshots, links and design files already in the thread before searching anywhere. Searching a pattern library while the user's screenshots sit open in the browser is gather-start-with-given.
3. Search the user's own taste first
Search the user's own library and boards before public sources. Their saves already reflect their taste. Starting from a public library when their own library holds matching saves is gather-own-library-first. How to reach each source is in sources.md.
4. Go wide
Pull from at least three sources. Pattern libraries show flows and screens. Boards and saves show taste: type, colour, photography and mood. A board drawn from one app is gather-go-wide.
Gather the number asked for. When the user asks for more, return new references and leave out those already shown. Repeats under "50 more" is gather-enough-to-choose.
5. Note the part and the link
Each reference gets one line naming the part to take, such as "the top bar" or "the empty state". A reference with no note is gather-name-the-part. Each one keeps its source link, so the user can open the original. An image with no link is gather-link-every-reference.
6. Build one board and open it
Copy board.html to .gather/<brief>/index.html, an ignored folder and never the source tree. Write board.js beside it in the shape its header comment shows, with images in img/, then open it. Links pasted in chat instead of a board is gather-one-board.
The board's look ships with the skill, so write data only. A page with its own markup or styles is gather-shipped-board.
Name each group in two or three words of Title Case, such as "Agent Activity", and put the detail in its note. A group named like a sentence is gather-short-group-names.
7. Save what the user keeps
The user marks picks with Keep on the board and pastes them back with Copy Picks. When the user asks to save the picks, send them where they say: their library, a channel or a board. Read the destination's naming first and match it. A new channel named "FW 26 🔥" beside fashion / inspiration / 2026 / fall winter is gather-match-the-naming.
Check for each item before adding it. A second copy of a saved item is gather-no-duplicates. When a source needs a login or a CAPTCHA, stop and say which one. Working around a login is gather-ask-at-login.
The pair
Every check is a pair. The broken line sits beside the line that replaces it.
| Rule | Broken | Replacement |
|---|---|---|
gather-name-the-brief | "Searching settings pages" | "Desktop settings page, looking for grouping and density" |
gather-same-platform | iOS screens for a desktop app | platform: "web" and desktop apps |
gather-start-with-given | A pattern-library search while the user's tabs are open | The open tabs read first |
gather-own-library-first | A public library searched first | The user's library searched first, then wider |
gather-go-wide | Twenty screens from one app | Saves, boards and a pattern library |
gather-enough-to-choose | "50 more" returns the first 20 again | 50 new references, earlier ids excluded |
gather-name-the-part | A screenshot with no note | "Take the grouped list, not the colours" |
gather-link-every-reference | An image with no source | The image linked to its original |
gather-one-board | Twenty links pasted in chat | .gather/settings/index.html opened, grouped by idea |
gather-shipped-board | A board page written from scratch | board.html copied, only board.js written |
gather-short-group-names | "Activity: thinking, tool calls and steps" | "Agent Activity" |
gather-match-the-naming | A new channel named "FW 26 🔥" | fashion / inspiration / 2026 / fall winter |
gather-no-duplicates | The same pin added twice | Existing items checked and skipped |
gather-ask-at-login | A login worked around | "Pinterest needs you to sign in" |
Reporting
Severity. HIGH is a whole look copied when one part was asked for, or items saved twice or under the wrong name. MEDIUM is the wrong platform, one source only, a board with no links or a hand-written board. LOW is a reference with no note on what to take, or a long group name.
Format. One finding per root cause, citing the request when no file applies:
file:line - [rule-id] what is wrong
request 2 - [rule-id] what is wrong
Then a Rule | Count | Severity summary. Block when any HIGH remains, Approve otherwise. Mark every source you could not reach as Not verified.