{"id":"7e0d1401-6deb-4ff5-a946-b8cc64822b0b","shortId":"JWNNs8","kind":"skill","title":"morning-standup-brief-generator","tagline":"Compile local notes, tasks, and project files into a structured standup brief — no connectors required. Use when preparing for morning standup, daily sync, or team check-in. Triggers: 'morning standup brief', 'daily brief', 'prepare me for standup', 'подготовь меня к стендапу', '","description":"# Morning Standup Brief Generator\n\nThis skill compiles local notes, task files, and project documents into a structured daily standup brief in the format: **Yesterday / Today / Blockers / Questions**. It works entirely from local files — no MCP connectors, external APIs, or technical setup required.\n\n**Input:**\n- Path to a working directory (or Cowork session folder) containing `.md` and/or `.txt` files\n\n**Output:**\n- Standup brief displayed in chat\n- File `standup-brief-YYYY-MM-DD.md` saved to the working directory\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 if the user has provided a working directory path.\n   - If no path is provided and no Cowork session folder is active: stop and report: \"Please provide the path to your working folder. Example: /Users/yourname/work-notes/\"\n   - If path is provided but does not exist: report \"Folder not found: [path]. Please check the path and try again.\"\n\n2. Check for readable files (`.md` and `.txt`) in the directory.\n   - If the folder exists but contains no `.md` or `.txt` files: report \"No readable files found (.md, .txt). Add notes or task files to the folder and try again.\"\n\n3. Check if a `standup-brief-YYYY-MM-DD.md` file for today's date already exists.\n   - If it exists: ask \"A standup brief for today already exists. Overwrite it?\"\n   - If user confirms: proceed. If user declines: stop cleanly.\n\n### Step 2: Discover and Filter Files\n\n1. List all `.md` and `.txt` files in the directory (non-recursive; top level only).\n2. Apply time filter: prioritize files **modified in the last 48 hours**.\n   - If no files modified in last 48 hours: include all files and note \"No recent changes found — using all files in folder.\"\n   - If more than 20 files match: limit to those modified in the last 48 hours and notify: \"Found [N] files — filtered to [M] recently modified (last 48h).\"\n3. Build a list of files to process. For each file, note its name and modification date.\n\n### Step 3: Extract Task Signals\n\nRead each selected file and extract the following:\n\n1. **Completed items** (for Yesterday section):\n   - Lines containing `- [x]`, `[x]`, `✓`, `DONE`, `COMPLETED`\n   - Include the item text (trim markers)\n\n2. **Open tasks** (for Today section):\n   - Lines containing `- [ ]`, `[ ]`, `TODO`, `#task`, `#todo`\n   - Order by earliest deadline if dates are present (e.g., `(due YYYY-MM-DD)`, `by [date]`)\n\n3. **Blockers** (for Blockers section):\n   - Lines containing `BLOCKER`, `BLOCKED`, `#blocked`, `waiting on`, `waiting for`, `depends on`, `stuck`\n   - Also: open tasks with no progress markers that appear in multiple files or are repeated\n\n4. **Questions / Awaiting response** (for Questions section):\n   - Lines containing `?`, `ASK`, `#question`, `waiting for [name]`, `@[name]`, `ожидаю`, `вопрос:`\n\n**Edge Cases:**\n- If a file contains no structured task markers: extract bullet points and short sentences as candidate items; mark section as `(extracted from notes — no formal task markers found)`.\n- If a file contains mixed languages (EN + RU): process all markers in both languages; output in the dominant language of the file content.\n\n### Step 4: Prioritize and Deduplicate\n\n1. Remove duplicate items (same text appearing in multiple files — keep once).\n2. Sort Today items:\n   - Items with explicit deadlines first (nearest deadline at top)\n   - Then remaining open tasks in order of file appearance\n3. Limit sections to reasonable length:\n   - Yesterday: max 7 items\n   - Today: max 7 items\n   - Blockers: list all (no cap)\n   - Questions: list all (no cap)\n4. If a section has no items: write `— none` under that section header.\n\n### Step 5: Compose and Output Brief\n\n1. Build the standup brief using the Output Format template below.\n2. Insert today's date (YYYY-MM-DD) in the title.\n3. Add a footer line listing all source files processed.\n4. Display the full brief in chat.\n5. Save as `standup-brief-YYYY-MM-DD.md` in the working directory.\n   - Confirm save with: \"Brief saved to: [path]/standup-brief-YYYY-MM-DD.md\"\n\n---\n\n## Output Format\n\n```markdown\n# Standup Brief — YYYY-MM-DD\n\n## Yesterday (Done)\n- [completed item 1]\n- [completed item 2]\n\n## Today (Plan)\n- [open task 1]\n- [open task 2]\n\n## Blockers\n- [blocker 1]\n— none (if no blockers found)\n\n## Questions / Awaiting Response\n- [question or pending action 1]\n— none (if nothing pending)\n\n---\n*Generated: YYYY-MM-DD | Sources: [file1.md, file2.md, ...]*\n```\n\n**Field rules:**\n- Each item is one line, starting with `- `\n- No sub-bullets (keep scannable for standup format)\n- Completed items: state what was finished, not the task description alone\n- Today items: actionable verb + object (e.g., \"Review PR #42\", \"Send status update to Alex\")\n- Blockers: name the blocker and who/what is blocking\n- Questions: include the recipient if known (e.g., \"Awaiting answer from @Maria on API spec\")\n\n---\n\n## Negative Cases\n\n- **No path provided + no active Cowork folder:** Stop. Report: \"Please provide the path to your working folder.\"\n- **Folder not found at path:** Stop. Report: \"Folder not found: [path]. Check the path and retry.\"\n- **Folder is empty (no .md/.txt):** Stop. Report: \"No readable files (.md, .txt) found in [path]. Add notes or task files first.\"\n- **All files are binary or unreadable:** Skip unreadable files silently; if all files are unreadable, report: \"Could not read any files in [path]. Files may be in unsupported formats.\"\n- **Today's brief already exists (user declines overwrite):** Stop cleanly. Report: \"Keeping existing brief at [path]/standup-brief-YYYY-MM-DD.md.\"","tags":["morning","standup","brief","generator","claude","skills","kit","kirkruglov","agent-skills","agentic-skills","ai-agents","ai-skills"],"capabilities":["skill","source-kirkruglov","skill-morning-standup-brief-generator","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/morning-standup-brief-generator","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 (5,821 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:37.896Z","embedding":null,"createdAt":"2026-05-18T13:21:15.385Z","updatedAt":"2026-05-18T19:13:37.896Z","lastSeenAt":"2026-05-18T19:13:37.896Z","tsv":"'/standup-brief-yyyy-mm-dd.md':690,910 '/users/yourname/work-notes':198 '1':160,163,299,406,558,635,704,712,718,731 '2':219,294,315,424,570,646,707,715 '20':352 '3':259,376,394,451,592,658 '4':483,554,616,668 '42':781 '48':325,333,362 '48h':375 '5':630,675 '7':600,604 'action':730,775 'activ':185,815 'add':248,659,859 'alex':786 'alon':772 'alreadi':269,280,897 'also':468 'ambigu':148 'and/or':102 'answer':803 'api':85,807 'appear':476,564,591 'appli':316 'ask':274,492 'await':485,725,802 'binari':868 'block':459,460,794 'blocker':73,452,454,458,606,716,717,722,787,790 'brief':4,17,37,39,50,67,107,277,634,639,672,686,695,896,907 'build':377,636 'bullet':511,756 'candid':517 'cap':610,615 'case':501,810 'chang':342 'chat':110,674 'check':32,164,213,220,260,839 'check-in':31 'clean':292,903 'compil':6,54 'complet':407,417,702,705,762 'compos':631 'confirm':286,683 'connector':19,83 'contain':100,131,235,413,431,457,491,505,533 'content':552 'could':881 'cowork':97,181,816 'cyril':132 'daili':27,38,65 'date':268,392,440,450,650 'dd':448,654,699,740 'deadlin':438,577,580 'declin':290,900 'dedupl':557 'depend':465 'descript':771 'detect':119,120 'directori':95,117,172,229,308,682 'discov':295 'display':108,669 'document':61 'domin':547 'done':416,701 'due':444 'duplic':560 'e.g':443,778,801 'earliest':437 'edg':500 'empti':846 'en':536 'english':137,146 'entir':77 'exampl':197 'exist':206,233,270,273,281,898,906 'explicit':576 'extern':84 'extract':395,403,510,522 'field':744 'file':12,58,80,104,111,223,240,244,252,264,298,305,320,329,337,346,353,368,381,386,401,479,504,532,551,567,590,666,853,863,866,873,877,885,888 'file1.md':742 'file2.md':743 'filter':297,318,369 'finish':767 'first':578,864 'folder':99,183,196,208,232,255,348,817,827,828,835,844 'follow':405 'footer':661 'formal':526 'format':70,643,692,761,893 'found':210,245,343,366,529,723,830,837,856 'full':671 'generat':5,51,736 'header':628 'hour':326,334,363 'includ':335,418,796 'input':90,162 'insert':647 'instruct':158 'item':408,420,518,561,573,574,601,605,622,703,706,747,763,774 'keep':568,757,905 'known':800 'languag':118,124,143,152,535,543,548 'last':324,332,361,374 'latin':141 'latin-script':140 'length':597 'level':313 'limit':355,593 'line':412,430,456,490,662,750 'list':300,379,607,612,663 'local':7,55,79 'm':371 'maria':805 'mark':519 'markdown':693 'marker':423,474,509,528,540 'match':354 'max':599,603 'may':889 'mcp':82 'md':101,224,237,246,302,854 'md/.txt':848 'messag':127 'mix':534 'mm':447,653,698,739 'modif':391 'modifi':321,330,358,373 'morn':2,25,35,48 'morning-standup-brief-gener':1 'multipl':478,566 'n':367 'name':389,496,497,788 'nearest':579 'negat':809 'non':310 'non-recurs':309 'none':624,719,732 'note':8,56,249,339,387,524,860 'noth':734 'notifi':365 'object':777 'one':749 'open':425,469,585,710,713 'order':435,588 'output':105,544,633,642,691 'overwrit':282,901 'path':91,173,176,192,200,211,215,689,812,823,832,838,841,858,887,909 'pend':729,735 'phrase':156 'plan':709 'pleas':189,212,820 'point':512 'pr':780 'prepar':23,40 'present':442 'priorit':319,555 'proceed':287 'process':383,538,667 'progress':473 'project':11,60 'provid':169,178,190,202,813,821 'question':74,484,488,493,611,724,727,795 'read':398,883 'readabl':222,243,852 'reason':596 'recent':341,372 'recipi':798 'recurs':311 'remain':584 'remov':559 'repeat':482 'report':188,207,241,819,834,850,880,904 'requir':20,89 'respond':133,144,149 'respons':486,726 'retri':843 'review':779 'ru':537 'rule':745 'russian':129,135 'save':113,676,684,687 'scannabl':758 'script':142 'section':411,429,455,489,520,594,619,627 'select':400 'send':782 'sentenc':515 'session':98,182 'setup':88 'short':514 'signal':397 'silent':874 'skill':53 'skill-morning-standup-brief-generator' 'skip':871 'sort':571 'sourc':665,741 'source-kirkruglov' 'spec':808 'standup':3,16,26,36,43,49,66,106,276,638,694,760 'standup-brief-yyyy-mm-dd.md':112,263,678 'start':751 'state':764 'status':783 'step':159,293,393,553,629 'stop':186,291,818,833,849,902 'structur':15,64,507 'stuck':467 'sub':755 'sub-bullet':754 'sync':28 'task':9,57,251,396,426,433,470,508,527,586,711,714,770,862 'team':30 'technic':87 'templat':644 'text':421,563 'time':317 'titl':657 'today':72,266,279,428,572,602,648,708,773,894 'todo':432,434 'top':312,582 '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' 'tri':217,257 'trigger':34,155 'trim':422 'txt':103,226,239,247,304,855 'unread':870,872,879 'unsupport':892 'updat':784 'use':21,157,344,640 'user':122,167,285,289,899 'valid':161 'verb':776 'wait':461,463,494 'who/what':792 'work':76,94,116,171,195,681,826 'write':623 'x':414,415 'yesterday':71,410,598,700 'yyyi':446,652,697,738 'yyyy-mm-dd':445,651,696,737 'вопрос':499 'к':46 'меня':45 'ожидаю':498 'подготовь':44 'стендапу':47","prices":[{"id":"60c3343d-e9ce-4673-99d9-ae7462029b95","listingId":"7e0d1401-6deb-4ff5-a946-b8cc64822b0b","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:15.385Z"}],"sources":[{"listingId":"7e0d1401-6deb-4ff5-a946-b8cc64822b0b","source":"github","sourceId":"KirKruglov/claude-skills-kit/morning-standup-brief-generator","sourceUrl":"https://github.com/KirKruglov/claude-skills-kit/tree/main/skills/morning-standup-brief-generator","isPrimary":false,"firstSeenAt":"2026-05-18T13:21:15.385Z","lastSeenAt":"2026-05-18T19:13:37.896Z"}],"details":{"listingId":"7e0d1401-6deb-4ff5-a946-b8cc64822b0b","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"KirKruglov","slug":"morning-standup-brief-generator","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":"30422d1e605da38f5c3fbc91609c772457b85c43","skill_md_path":"skills/morning-standup-brief-generator/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/KirKruglov/claude-skills-kit/tree/main/skills/morning-standup-brief-generator"},"layout":"multi","source":"github","category":"claude-skills-kit","frontmatter":{"name":"morning-standup-brief-generator","description":"Compile local notes, tasks, and project files into a structured standup brief — no connectors required. Use when preparing for morning standup, daily sync, or team check-in. Triggers: 'morning standup brief', 'daily brief', 'prepare me for standup', 'подготовь меня к стендапу', 'дейли бриф', 'утренний бриф'."},"skills_sh_url":"https://skills.sh/KirKruglov/claude-skills-kit/morning-standup-brief-generator"},"updatedAt":"2026-05-18T19:13:37.896Z"}}