{"id":"3f025dd8-51b1-475e-9d43-02be877881da","shortId":"dcggL8","kind":"skill","title":"research-folder-synthesizer","tagline":"Synthesize a folder of mixed local files (articles, notes, excerpts) into a structured thematic report with key findings and gaps. Use when consolidating research before writing a report, PRD, or strategy doc. Triggers: 'synthesize my research folder', 'research synthesis', 'turn","description":"# Research Folder Synthesizer\n\nThis skill synthesizes a folder of heterogeneous local files (markdown notes, plain-text articles, research excerpts) into a structured thematic report. It clusters ideas across files, surfaces key findings and contradictions, and produces a single `research-synthesis.md` ready to use as a foundation for reports, PRDs, or strategy documents.\n\n**Input:**\n- A folder path or list of local file paths (`.md`, `.txt`, plain text)\n- Optional: a focus question or research angle to guide thematic clustering\n\n**Output:**\n- `research-synthesis.md` — structured markdown with executive summary, named themes, key findings, contradictions/gaps, and source index\n\n---\n\n## Language Detection\n\nDetect the user's language from their message:\n- If Russian (or contains Cyrillic): respond in Russian\n- If English (or other Latin-script language): respond in English\n- If ambiguous: respond in the language of the trigger phrase used\n\n---\n\n## Instructions\n\n### Step 1: Validate Input\n\n1. Check that the user has provided a folder path or a list of files.\n   - If nothing provided: stop and report — \"No files found. Provide a folder path or paste file contents directly.\"\n\n2. Attempt to read all files at the provided path.\n   - Log each file name and detected type (`.md`, `.txt`, or plain text) in the report preamble.\n   - Skip unreadable files (binary, images, etc.); add them to a \"Skipped files\" list — do not stop the pipeline.\n   - If all files are unreadable: stop and report — \"No readable text found. Provide `.md`, `.txt`, or plain-text files.\"\n\n3. If only one file is provided: note that cross-source comparison will be unavailable; proceed with single-source synthesis.\n\n4. If >20 files: note that depth per file will be reduced for brevity; proceed.\n\n**Negative Cases:**\n- Folder path not provided or folder empty → stop with clear message (Step 1.1).\n- All files unreadable → stop with clear message (Step 1.2).\n- User provides a URL instead of local files → clarify: \"This skill works with local files. Paste the text directly or save it as a `.txt` file first.\"\n\n---\n\n### Step 2: Extract Content from Each File\n\n1. Read each accessible file fully.\n\n2. For each file, extract:\n   - **Main claims** — central arguments or conclusions the source makes.\n   - **Data points** — specific facts, numbers, quotes, or named entities.\n   - **Notable phrases** — distinctive language worth preserving in attribution.\n\n3. If the user provided a focus question, flag which files directly address it.\n\n4. Build an internal per-file summary (not shown in output, used in Steps 3–4).\n\n---\n\n### Step 3: Identify Cross-File Themes\n\n1. Compare per-file summaries and cluster related ideas.\n   - Group by shared topic, argument direction, or domain.\n   - Assign a short descriptive label to each cluster (e.g., \"Market sizing\", \"User pain points\", \"Competitive landscape\").\n\n2. Aim for 2–5 themes; merge closely related clusters.\n\n3. For each theme, note which files contribute and what they each say.\n\n**Edge Case:**\n- If files cover entirely unrelated topics with no clear overlap: create one theme per topic; note in the executive summary that the research collection is heterogeneous.\n\n---\n\n### Step 4: Detect Contradictions and Gaps\n\n1. Within each theme, look for:\n   - **Contradictions** — two sources making conflicting claims about the same fact or trend.\n   - **Gaps** — topics implied by the research question or by some sources but absent from all others.\n\n2. Log each contradiction as: \"[Source A] says X; [Source B] says Y.\"\n\n3. Log each gap as: \"[Topic] not addressed in any source.\"\n\n4. If neither contradictions nor gaps are found: write \"No contradictions detected across sources.\"\n\n---\n\n### Step 5: Assemble and Write Report\n\n1. Compose the report following the Output Format below.\n\n2. Write the executive summary last (after themes and findings are complete).\n\n3. Save the report as `research-synthesis.md` in the working directory.\n\n4. Confirm the save path to the user.\n\n---\n\n## Output Format\n\n```\n# Research Synthesis: [topic or folder name]\n**Date:** YYYY-MM-DD\n**Files processed:** N\n**Skipped files:** N (or \"none\")\n**Focus question:** [question or \"none\"]\n\n---\n\n## Executive Summary\n[3–5 sentences covering: scope of research, main conclusion, and key tension across sources]\n\n---\n\n## Themes\n\n### Theme 1: [Label]\n[2–4 sentences. Key claim derived from this theme. Supporting sources listed.]\n**Sources:** file-a.md, file-b.txt\n\n### Theme 2: [Label]\n[2–4 sentences.]\n**Sources:** file-c.md\n\n---\n\n## Key Findings\n- [Finding 1] *(Source: file-a.md)*\n- [Finding 2] *(Source: file-b.txt)*\n...\n\n---\n\n## Contradictions & Gaps\n- **Contradiction:** [Description] — file-a.md says X; file-b.txt says Y.\n- **Gap:** [Topic area] not addressed in any source.\n*(Or: \"No contradictions detected across sources.\")*\n\n---\n\n## Source Index\n| File | Type | Main Topic | Language |\n|------|------|------------|----------|\n| file-a.md | Markdown | UX research | EN |\n| file-b.txt | Plain text | Competitor notes | RU |\n\n---\n\n## Skipped Files\n- image.png — unreadable format\n*(Or omit section if no files were skipped)*\n```\n\n**Field rules:**\n- Executive summary: 3–5 sentences; no bullet points.\n- Theme labels: 2–5 words, title case, descriptive.\n- Key findings: one concrete, specific statement per bullet; always attributed to a source.\n- Contradictions/gaps: always present; state \"none\" explicitly if clean.\n\n---\n\n## Edge Cases\n\n1. **Files in multiple languages (e.g., EN + RU mix):** Detect predominant language for the report; note language of each file in the source index; do not translate source content.\n2. **Single file provided:** Produce internal theme clustering from that file alone; note \"Cross-source comparison unavailable — only one file processed.\"\n3. **Very large folder (>20 files):** Process all; condense per-file summary to 3 key points max; add a note that depth is reduced.\n4. **User provides focus question:** Weight and flag content relevant to the question in each theme section; add a \"Focus Answer\" paragraph after the executive summary.\n\n---\n\n## Negative Cases\n\n- Folder path not provided or folder is empty → \"No files found. Provide a folder path or paste file contents directly.\" Stop.\n- All files are unreadable (binary, images only) → \"No readable text found. Provide `.md`, `.txt`, or plain-text files.\" Stop.\n- User asks to synthesize a URL or web page → \"This skill works with local files. Paste the text directly or save it as a `.txt` file first.\" Stop.","tags":["research","folder","synthesizer","claude","skills","kit","kirkruglov","agent-skills","agentic-skills","ai-agents","ai-skills","awesome-list"],"capabilities":["skill","source-kirkruglov","skill-research-folder-synthesizer","topic-agent-skills","topic-agentic-skills","topic-ai-agents","topic-ai-skills","topic-awesome-list","topic-claude","topic-claude-ai","topic-claude-ai-skills","topic-claude-code","topic-claude-cowork","topic-claude-memory","topic-claude-skills"],"categories":["claude-skills-kit"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/KirKruglov/claude-skills-kit/research-folder-synthesizer","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add KirKruglov/claude-skills-kit","source_repo":"https://github.com/KirKruglov/claude-skills-kit","install_from":"skills.sh"}},"qualityScore":"0.453","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 7 github stars · SKILL.md body (6,518 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:13:38.707Z","embedding":null,"createdAt":"2026-05-18T13:21:16.504Z","updatedAt":"2026-05-18T19:13:38.707Z","lastSeenAt":"2026-05-18T19:13:38.707Z","tsv":"'1':179,182,374,449,540,618,701,729,832 '1.1':330 '1.2':339 '2':215,368,380,483,486,574,627,703,719,721,733,803,861 '20':303,887 '3':279,411,440,443,493,587,639,685,795,883,897 '4':301,425,441,535,598,649,704,722,908 '5':487,613,686,796,804 'absent':570 'access':377 'across':73,610,697,758 'add':247,901,925 'address':423,594,750 'aim':484 'alon':872 'alway':817,823 'ambigu':167 'angl':117 'answer':928 'area':748 'argument':388,463 'articl':12,62 'ask':978 'assembl':614 'assign':467 'attempt':216 'attribut':410,818 'b':584 'binari':244,961 'breviti':314 'build':426 'bullet':799,816 'case':317,507,807,831,935 'central':387 'check':183 'claim':386,551,707 'clarifi':348 'clean':829 'clear':327,336,516 'close':490 'cluster':71,121,456,474,492,868 'collect':531 'compar':450 'comparison':291,877 'competit':481 'competitor':775 'complet':638 'compos':619 'conclus':390,693 'concret':812 'condens':891 'confirm':650 'conflict':550 'consolid':27 'contain':150 'content':213,370,860,916,954 'contradict':79,537,546,577,601,608,736,738,756 'contradictions/gaps':133,822 'contribut':500 'cover':510,688 'creat':518 'cross':289,446,875 'cross-fil':445 'cross-sourc':288,874 'cyril':151 'data':394 'date':665 'dd':669 'depth':307,905 'deriv':708 'descript':470,739,808 'detect':138,139,230,536,609,757,841 'direct':214,358,422,464,955,995 'directori':648 'distinct':405 'doc':36 'document':96 'domain':466 'e.g':475,837 'edg':506,830 'empti':324,943 'en':771,838 'english':156,165 'entir':511 'entiti':402 'etc':246 'excerpt':14,64 'execut':127,526,630,683,793,932 'explicit':827 'extract':369,384 'fact':397,555 'field':791 'file':11,56,74,105,196,204,212,220,227,243,252,261,278,283,304,309,332,347,354,365,373,378,383,421,431,447,453,499,509,670,674,762,779,788,833,851,863,871,881,888,894,945,953,958,975,991,1002 'file-a.md':716,731,740,767 'file-b.txt':717,735,743,772 'file-c.md':725 'find':22,77,132,636,727,728,732,810 'first':366,1003 'flag':419,915 'focus':113,417,678,911,927 'folder':3,7,41,46,52,99,190,208,318,323,663,886,936,941,949 'follow':622 'format':625,658,782 'found':205,270,605,946,967 'foundat':90 'fulli':379 'gap':24,539,558,590,603,737,746 'group':459 'guid':119 'heterogen':54,533 'idea':72,458 'identifi':444 'imag':245,962 'image.png':780 'impli':560 'index':136,761,855 'input':97,181 'instead':344 'instruct':177 'intern':428,866 'key':21,76,131,695,706,726,809,898 'label':471,702,720,802 'landscap':482 'languag':137,143,162,171,406,766,836,843,848 'larg':885 'last':632 'latin':160 'latin-script':159 'list':102,194,253,714 'local':10,55,104,346,353,990 'log':225,575,588 'look':544 'main':385,692,764 'make':393,549 'markdown':57,125,768 'market':476 'max':900 'md':107,232,272,969 'merg':489 'messag':146,328,337 'mix':9,840 'mm':668 'multipl':835 'n':672,675 'name':129,228,401,664 'negat':316,934 'neither':600 'none':677,682,826 'notabl':403 'note':13,58,286,305,497,523,776,847,873,903 'noth':198 'number':398 'omit':784 'one':282,519,811,880 'option':111 'other':573 'output':122,436,624,657 'overlap':517 'page':985 'pain':479 'paragraph':929 'past':211,355,952,992 'path':100,106,191,209,224,319,653,937,950 'per':308,430,452,521,815,893 'per-fil':429,451,892 'phrase':175,404 'pipelin':258 'plain':60,109,235,276,773,973 'plain-text':59,275,972 'point':395,480,800,899 'prd':33 'prds':93 'preambl':240 'predomin':842 'present':824 'preserv':408 'proceed':295,315 'process':671,882,889 'produc':81,865 'provid':188,199,206,223,271,285,321,341,415,864,910,939,947,968 'question':114,418,564,679,680,912,920 'quot':399 'read':218,375 'readabl':268,965 'readi':85 'reduc':312,907 'relat':457,491 'relev':917 'report':19,32,69,92,202,239,266,617,621,642,846 'research':2,28,40,42,45,63,116,530,563,659,691,770 'research-folder-synthes':1 'research-synthesis.md':84,123,644 'respond':152,163,168 'ru':777,839 'rule':792 'russian':148,154 'save':360,640,652,997 'say':505,581,585,741,744 'scope':689 'script':161 'section':785,924 'sentenc':687,705,723,797 'share':461 'short':469 'shown':434 'singl':83,298,862 'single-sourc':297 'size':477 'skill':49,350,987 'skill-research-folder-synthesizer' 'skip':241,251,673,778,790 'sourc':135,290,299,392,548,568,579,583,597,611,698,713,715,724,730,734,753,759,760,821,854,859,876 'source-kirkruglov' 'specif':396,813 'state':825 'statement':814 'step':178,329,338,367,439,442,534,612 'stop':200,256,264,325,334,956,976,1004 'strategi':35,95 'structur':17,67,124 'summari':128,432,454,527,631,684,794,895,933 'support':712 'surfac':75 'synthes':4,5,38,47,50,980 'synthesi':43,300,660 'tension':696 'text':61,110,236,269,277,357,774,966,974,994 'themat':18,68,120 'theme':130,448,488,496,520,543,634,699,700,711,718,801,867,923 'titl':806 'topic':462,513,522,559,592,661,747,765 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agents' 'topic-ai-skills' 'topic-awesome-list' 'topic-claude' 'topic-claude-ai' 'topic-claude-ai-skills' 'topic-claude-code' 'topic-claude-cowork' 'topic-claude-memory' 'topic-claude-skills' 'translat':858 'trend':557 'trigger':37,174 'turn':44 'two':547 'txt':108,233,273,364,970,1001 'type':231,763 'unavail':294,878 'unread':242,263,333,781,960 'unrel':512 'url':343,982 'use':25,87,176,437 'user':141,186,340,414,478,656,909,977 'ux':769 'valid':180 'web':984 'weight':913 'within':541 'word':805 'work':351,647,988 'worth':407 'write':30,606,616,628 'x':582,742 'y':586,745 'yyyi':667 'yyyy-mm-dd':666","prices":[{"id":"5803bd95-257f-4106-99b5-a52a51e191ca","listingId":"3f025dd8-51b1-475e-9d43-02be877881da","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"KirKruglov","category":"claude-skills-kit","install_from":"skills.sh"},"createdAt":"2026-05-18T13:21:16.504Z"}],"sources":[{"listingId":"3f025dd8-51b1-475e-9d43-02be877881da","source":"github","sourceId":"KirKruglov/claude-skills-kit/research-folder-synthesizer","sourceUrl":"https://github.com/KirKruglov/claude-skills-kit/tree/main/skills/research-folder-synthesizer","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:16.504Z","lastSeenAt":"2026-05-18T19:13:38.707Z"}],"details":{"listingId":"3f025dd8-51b1-475e-9d43-02be877881da","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"KirKruglov","slug":"research-folder-synthesizer","github":{"repo":"KirKruglov/claude-skills-kit","stars":7,"topics":["agent-skills","agentic-skills","ai","ai-agents","ai-skills","awesome-list","claude","claude-ai","claude-ai-skills","claude-code","claude-cowork","claude-memory","claude-skills","memory-management","productivity","productivity-tools","project-management"],"license":"mit","html_url":"https://github.com/KirKruglov/claude-skills-kit","pushed_at":"2026-05-18T04:27:46Z","description":"40+ curated agent skills for Claude Cowork and Claude.ai — ready-to-use tools for non-technical users: project management, productivity, and AI workflow automation","skill_md_sha":"aabd44e66ab406c2566f0a907dc8532ec6eaba77","skill_md_path":"skills/research-folder-synthesizer/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/KirKruglov/claude-skills-kit/tree/main/skills/research-folder-synthesizer"},"layout":"multi","source":"github","category":"claude-skills-kit","frontmatter":{"name":"research-folder-synthesizer","description":"Synthesize a folder of mixed local files (articles, notes, excerpts) into a structured thematic report with key findings and gaps. Use when consolidating research before writing a report, PRD, or strategy doc. Triggers: 'synthesize my research folder', 'research synthesis', 'turn my notes into a report', 'синтезируй папку с исследованиями', 'синтез ресёрча', 'сведи файлы в отчёт'."},"skills_sh_url":"https://skills.sh/KirKruglov/claude-skills-kit/research-folder-synthesizer"},"updatedAt":"2026-05-18T19:13:38.707Z"}}