research-synthesis
Skill10 starsChanged 33 days agoMITView on GitHub
Use when a Figma section holds reference screenshots (competitors, current product, other references) with or without notes and the user wants them turned into one readable document: problem statement, objectives, shared patterns, current state, scope, directions. Triggers include "actionable pointers", "synthesize my research", "problem statement and objectives", "one place to look at all these notes", "turn my stickies into a doc", or a refs section link plus a request for directions.
27 other projects use a version of this.
Adopted by
Most recently taken up by
- deanpeters/Product-Manager-Skillstheir own version, first seen Nov 15, 2026
- okou-ai/okou-skillstheir own version, first seen Nov 11, 2026
- TrueImmortal82/open-code-skillstheir own version, first seen Nov 8, 2026
- nisarth/claude-skills-storetheir own version, first seen Nov 8, 2026
- sander217/sanstudiotheir own version, first seen Nov 8, 2026
- michaelalber/ai-toolkittheir own version, first seen Nov 1, 2026
Used with
Projects with it also use competitive-analysis, literature-review and 2 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
AnthropicSkillcompetitive-analysis
Framework for building competitive landscape decks — market positioning, competitor deep-dives, comparative analysis, strategic synthesis. Use when the user asks for a competitive landscape, competitor analysis, peer comparison, market positioning assessment, strategic review, or investment memo deck. Also triggers on "who are the competitors to X", "benchmark X against peers", "build a market map", or any request to systematically evaluate competitive dynamics across an industry.
Also in 3 projects that use this
JDerekLomasSkillliterature-review
Conduct comprehensive, systematic literature reviews using multiple academic databases (PubMed, arXiv, bioRxiv, Semantic Scholar, etc.). This skill should be used when conducting systematic literature reviews, meta-analyses, research synthesis, or comprehensive literature searches across biomedical, scientific, and technical domains. Creates professionally formatted markdown documents and PDFs with verified citations in multiple citation styles (APA, Nature, Vancouver, etc.).
Also in 3 projects that use this
OpenAISkillbrainstorming
You MUST use this before any creative work - creating features, building components, adding functionality, or modifying behavior. Explores user intent, requirements and design before implementation.
Also in 3 projects that use this
BlockSkillfrontend-design
Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
Also in 4 projects that use this
Other versions27 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 27
- anthropics/knowledge-work-plugins★ 36ksame name
- deanpeters/Product-Manager-Skills★ 8ksame name
- modimihir07/agentic-os★ 209same name
- poemswe/co-researcher★ 139same name
- okou-ai/okou-skills★ 81same name
- vm0-ai/vm0-skills★ 81same name
- henrique-simoes/Istara★ 15same name
- MUZI-LYY/design-team-ai-skills★ 9same name
- shayan-m81/layerwright★ 8same name
- michaelalber/ai-toolkit★ 3same name
17 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository5 other files it gives its agents.
- design-annotationsSkill
- design-first-draftSkill
- design-organizeSkill
- design-researchSkill
- dev-handoffSkill
The file
Show its rules and text
We split this skill into the rules it gives an agent
14 rules. 0 are common, 7 are distinctive, and 7 are very specific to this project.
0
Common
Most of the 25 edited versions we read keep these.
7
Distinctive
This author's own choices. Worth a look.
7
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 30
Use TaskCreate for each step.
- Very specific: line 59
Comments: if the file has comments on the section, note their count (read via get_design_context only if the user asks for them.
- Distinctive: line 69
Notes found: Ask one question:
- Distinctive: line 76
No notes found: Ask one question with three paths:
- Distinctive: line 85
Stop after asking. Do not read notes or draft anything until the user answers.
- Distinctive: line 89
Only when stickies exist and they use more than one fill colour.
- Very specific: line 113
Keep the transcript in a local data file (research/<slug>-notes.json or inline in the generator script).
- Distinctive: line 115
Verify the count: notes transcribed must equal notes inventoried.
- Distinctive: line 137
All notes (collapsed by default, grouped by source, verbatim text, screen label, deep link)
- Very specific: line 140
Every claim carries a chip that deep-links to the source note: https://www.figma.com/design/<fileKey>/<fileName>?node-id=<A-B>.
- Very specific: line 142
Statuses for shared patterns: Use only: Not present, Present, weaker, Present, Open question, Deferred.
- Distinctive: line 159
After each round, edit the data structure, rebuild both outputs, republish to the same URL.
- Very specific: line 163
Write research/<slug>-research-board.html and .md into the user's project (or the directory they name).
- Very specific: line 164
If the Artifact tool is available, publish the HTML there and reuse the same file path on every republish so the URL stays stable.
“Common” is measured: kept by at least 6 in 10 of the 25 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Research Synthesis
Turn a canvas of reference screenshots and observations into one document a manager can read in ten minutes: problem, objectives, shared patterns, current state, scope, directions, feature ideas, and a collapsed inventory of every source note. This is the follow-up to design-research: capture puts screens on the canvas, this skill turns what was noticed about them into a synthesis.
The document is the user's audit, written in their voice for their audience. Claude organises and compresses. Claude does not rank, recommend, or decide.
REQUIRED SUB-SKILL: load figma:figma-use before any use_figma call.
Quick Reference
| Step | What | Key decision |
| 0 | Prerequisites | Figma MCP available |
| 1 | Inventory the section | Screens, sub-sections, notes of every kind |
| 2 | Gate on observations | Use existing notes, add more, or gather them |
| 3 | Gate on colour legend | Only if notes are colour coded |
| 4 | Read every note | Widgets need screenshots, not the plugin API |
| 5 | Map notes to screens | Nearest tile by x within the same sub-section |
| 6 | Draft the synthesis | One data structure, two outputs |
| 7 | Review pass with the user | Voice, facts, priorities |
| 8 | Publish | Artifact when available, files always |
BEFORE YOU START: Create Tasks
Use TaskCreate for each step. Mark in_progress when starting and completed when done.
- "Step 0: Prerequisites"
- "Step 1: Inventory the section"
- "Step 2: Gate on observations"
- "Step 3: Gate on colour legend"
- "Step 4: Read every note"
- "Step 5: Map notes to screens"
- "Step 6: Draft the synthesis"
- "Step 7: Review pass"
- "Step 8: Publish"
Step 0: Prerequisites
- Figma MCP (remote server):
mcp__figma__get_metadata,mcp__figma__use_figma,mcp__figma__get_screenshotmust be available. If not, seeshared/common-steps.md, "Figma MCP Setup". - figma-use skill loaded before any
use_figmacall. - Extract
fileKeyandnodeIdfrom the URL.node-id=A-Bis nodeA:B.
Step 1: Inventory the Section
One read-only use_figma call. Find the page that owns the node, switch to it, then collect:
- Sub-sections (one per source: a competitor, the current product, other references) with ids and bounds.
- Screens: rectangles with an
IMAGEfill, or frames, directly inside each sub-section, with their label text (the TEXT node above each tile). - Notes of every kind:
WIDGETnodes named "Sticky note" (or any widget) with position and size.- Instances whose component name contains "note" or "annotation" (dev-note components).
- Loose
TEXTnodes longer than about 25 characters that are not tile labels. - Direction or idea stubs: sections or frames whose names look like
v1,Option A,Direction.
- Comments: if the file has comments on the section, note their count (read via
get_design_contextonly if the user asks for them; they are optional input).
get_metadata on a large section can exceed the output limit. When it does, read the saved file in chunks or use use_figma with findAllWithCriteria and return only ids, names, types and bounds.
Report the inventory in one short block: N sources, N screens, N notes by kind, N direction stubs. Name the page.
Step 2: Gate on Observations
Behaviour depends on what Step 1 found.
Notes found. Ask one question:
I found N notes across M sources (K stickies, J dev notes, L text notes). Use these as the observations, or do you want to add more before I read them?
- Use them as they are
- I will add more on the canvas and come back
- Use them, and I will add a few in chat now
No notes found. Ask one question with three paths:
The section has N screens but no observations yet. How do you want to gather them?
- I will add notes on the canvas and come back
- I will dictate observations in chat, source by source
- Review each screen yourself and draft observations for my approval before synthesising
If the user picks the third path: screenshot each tile, write two to four observations per screen as plain factual statements (what is on the screen, what is required, what is hidden, how many steps), present them grouped by source in a table, and wait for approval. Approved observations become the note set. Never move to Step 6 on unapproved drafts.
Stop after asking. Do not read notes or draft anything until the user answers.
Step 3: Gate on Colour Legend
Only when stickies exist and they use more than one fill colour.
Ask once:
Your stickies use these colours: [swatch list with counts]. What does each mean? (For example: observation, problem, strong idea, idea to explore.)
If the user already stated the legend in their request, record it and do not ask again. If there is one colour, or the user says colours carry no meaning, treat every note as an observation and infer sentiment from wording. Never assign a legend without asking.
Step 4: Read Every Note
Stickies are widgets. The plugin API cannot read their text. widgetSyncedState returns {}, findAllWithCriteria does not descend into them, inner node ids from get_metadata resolve to null, and get_design_context on a widget returns "node type not supported". Read them visually:
// One use_figma call. Max 5 ids per call: only the first 5 inline images are returned.
const page = await figma.getNodeByIdAsync('<pageId>');
await figma.setCurrentPageAsync(page);
const ids = ['<widgetId1>','<widgetId2>','<widgetId3>','<widgetId4>','<widgetId5>'];
for (const id of ids) { const n = await figma.getNodeByIdAsync(id); await n.screenshot({ scale: 1.5 }); }
return { order: ids }; // images arrive in this order; map by index- Fan the calls out: emit all batches in one message so they run in parallel.
- Transcribe each note verbatim, including typos. Fix nothing in the inventory. Record the fill colour from the image.
- Dev-note instances and loose TEXT nodes are readable through
characters; read them in one call. - Keep the transcript in a local data file (
research/<slug>-notes.jsonor inline in the generator script). Every later step reads from it.
Verify the count: notes transcribed must equal notes inventoried. Report any note that could not be read.
Step 5: Map Notes to Screens
A note belongs to the sub-section that contains it (or whose bounds contain its position if it sits at the parent level). Within that sub-section, the nearest tile by x position is its screen. Record screen as the tile's label text. When a note sits between two tiles, record both labels.
Close-up crops the user added next to a full screen count as screens too.
Step 6: Draft the Synthesis
Build one data structure (notes, patterns, findings, scope, directions, ideas, questions, gaps) and generate both outputs from it: an HTML page and a Markdown copy. Re-runs after the user adds notes are then a data edit and a rebuild, not a rewrite. The output contract and voice rules are in synthesis-template.md. Read it before drafting.
Section order:
- Problem (three to four sentences)
- Objectives (two to four, the user's own priority first)
- Shared patterns (table: pattern, who does it, current product today, neutral status)
- Current state (one line per finding, each with a source chip)
- Scope: proposed v1, patterns to avoid
- Directions (one card per direction stub: summary from the user's text, source references, open questions, optional visual direction, optional schematic wireframe)
- Open decisions
- Feature ideas, separate track (grouped; enhancements and new features, not flow work)
- All notes (collapsed by default, grouped by source, verbatim text, screen label, deep link)
- Coverage and gaps (sources without notes, duplicates, unreadable notes)
Every claim carries a chip that deep-links to the source note: https://www.figma.com/design/<fileKey>/<fileName>?node-id=<A-B>.
Statuses for shared patterns. Use only: Not present, Present, weaker, Present, Open question, Deferred. A pattern the current product has in some form is Present, weaker, never Not present.
Directions. Summarise each from the user's own stub text. List the open questions the stub raises. A schematic wireframe (rectangles only, drawn inline as SVG using the page's theme tokens) is optional and must be labelled schematic. No scores, no bars, no fit matrix, no recommendation, no ordering by preference.
Visual direction (optional). Add a one-line visual direction to a card only when the user asks for one, or when the stub or notes talk about look and feel (palette, type, density, mood, a reference product's style). Write it from the user's words with refs, for example "Calm and spacious, neutral greys with one accent, after <competitor>". If the user wants one shared style for all directions, record it once under Scope as "Visual direction" instead. design-first-draft reads these lines when no design system exists.
Claims about the current product. Notes are the user's impressions and can be wrong. Where a note asserts something about the product's behaviour, phrase it as the note's observation, and flag it in the review pass if the screens contradict it.
Step 7: Review Pass
Present the draft and ask for corrections in one message. Expect, and apply without argument, feedback of these kinds:
- Voice: less negative about the product, no second person, no Claude opinions.
- Facts: a note was wrong, a competitor does or does not do something, a status is too harsh.
- Priorities: which objective is primary, what is out of scope, what belongs on a separate track.
- Order: sections the audience cares about move up.
After each round, edit the data structure, rebuild both outputs, republish to the same URL. Keep a one-line changelog in the reply.
Step 8: Publish
- Write
research/<slug>-research-board.htmland.mdinto the user's project (or the directory they name). - If the Artifact tool is available, publish the HTML there and reuse the same file path on every republish so the URL stays stable. Load
artifact-designbefore the first publish. - Reply with the link, then a short list of what changed. No summary of the document itself; the document is the summary.
Common Mistakes
| Mistake | Fix |
Calling get_design_context on a sticky widget | Unsupported node type. Screenshot the widget inside use_figma, five per call. |
| Requesting 10+ widget screenshots in one call | Only the first five inline images come back. Batch by five, fan out in parallel. |
| Inventing a colour legend | Ask once. Colours are personal conventions and differ per user. |
| Drafting before the observation gate | Stop after the question in Step 2. The user may want to add notes first. |
| Scoring or ranking directions | Directions are the user's options for their managers. Summarise, list open questions, stop. |
| "Everyone does X" | Count. Name who does it. Note who takes the same approach as the current product. |
Marking a weaker version as Not present | If the product has any form of it, status is Present, weaker. |
| Second person in the document ("your note", "you asked") | Audit voice. "The note on <screen> states…" or drop the attribution. |
| Reasoning paragraphs explaining why a section exists | Delete them. Lists, tables, chips. The reader is skimming. |
| Recommending which direction to take | Out of scope. Even when asked "what do you think", answer in chat, not in the document. |
| Correcting a user's note silently | Keep the verbatim text in the inventory; add a bracketed correction after it once the user confirms. |
| Em-dashes anywhere in the output | Use commas, full stops or colons. |
Chaining
- Before:
design-research(screens on the canvas, optional observations next to them),design-annotations(if the user wants dev-note style observations placed next to screens instead of stickies). - After:
design-first-draftbuilds first-draft screens for each direction (the directions section is its brief); the feature ideas section is a backlog seed for the user's task tracker.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

