# Morning Standup Brief Generator

> 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', 'подготовь меня к стендапу', 'дейли бриф', 'утренний бриф'.

- **Type:** Skill
- **Install:** `agentstack add skill-kirkruglov-claude-skills-kit-morning-standup-brief-generator`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [KirKruglov](https://agentstack.voostack.com/s/kirkruglov)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [KirKruglov](https://github.com/KirKruglov)
- **Source:** https://github.com/KirKruglov/claude-skills-kit/tree/main/skills/morning-standup-brief-generator

## Install

```sh
agentstack add skill-kirkruglov-claude-skills-kit-morning-standup-brief-generator
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# Morning Standup Brief Generator

This 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.

**Input:**
- Path to a working directory (or Cowork session folder) containing `.md` and/or `.txt` files

**Output:**
- Standup brief displayed in chat
- File `standup-brief-YYYY-MM-DD.md` saved to the working directory

---

## Language Detection

Detect the user's language from their message:
- If Russian (or contains Cyrillic): respond in Russian
- If English (or other Latin-script language): respond in English
- If ambiguous: respond in the language of the trigger phrase used

---

## Instructions

### Step 1: Validate Input

1. Check if the user has provided a working directory path.
   - 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/"
   - If path is provided but does not exist: report "Folder not found: [path]. Please check the path and try again."

2. Check for readable files (`.md` and `.txt`) in the directory.
   - 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."

3. Check if a `standup-brief-YYYY-MM-DD.md` file for today's date already exists.
   - If it exists: ask "A standup brief for today already exists. Overwrite it?"
   - If user confirms: proceed. If user declines: stop cleanly.

### Step 2: Discover and Filter Files

1. List all `.md` and `.txt` files in the directory (non-recursive; top level only).
2. Apply time filter: prioritize files **modified in the last 48 hours**.
   - If no files modified in last 48 hours: include all files and note "No recent changes found — using all files in folder."
   - 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)."
3. Build a list of files to process. For each file, note its name and modification date.

### Step 3: Extract Task Signals

Read each selected file and extract the following:

1. **Completed items** (for Yesterday section):
   - Lines containing `- [x]`, `[x]`, `✓`, `DONE`, `COMPLETED`
   - Include the item text (trim markers)

2. **Open tasks** (for Today section):
   - Lines containing `- [ ]`, `[ ]`, `TODO`, `#task`, `#todo`
   - Order by earliest deadline if dates are present (e.g., `(due YYYY-MM-DD)`, `by [date]`)

3. **Blockers** (for Blockers section):
   - Lines containing `BLOCKER`, `BLOCKED`, `#blocked`, `waiting on`, `waiting for`, `depends on`, `stuck`
   - Also: open tasks with no progress markers that appear in multiple files or are repeated

4. **Questions / Awaiting response** (for Questions section):
   - Lines containing `?`, `ASK`, `#question`, `waiting for [name]`, `@[name]`, `ожидаю`, `вопрос:`

**Edge Cases:**
- 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)`.
- If a file contains mixed languages (EN + RU): process all markers in both languages; output in the dominant language of the file content.

### Step 4: Prioritize and Deduplicate

1. Remove duplicate items (same text appearing in multiple files — keep once).
2. Sort Today items:
   - Items with explicit deadlines first (nearest deadline at top)
   - Then remaining open tasks in order of file appearance
3. Limit sections to reasonable length:
   - Yesterday: max 7 items
   - Today: max 7 items
   - Blockers: list all (no cap)
   - Questions: list all (no cap)
4. If a section has no items: write `— none` under that section header.

### Step 5: Compose and Output Brief

1. Build the standup brief using the Output Format template below.
2. Insert today's date (YYYY-MM-DD) in the title.
3. Add a footer line listing all source files processed.
4. Display the full brief in chat.
5. Save as `standup-brief-YYYY-MM-DD.md` in the working directory.
   - Confirm save with: "Brief saved to: [path]/standup-brief-YYYY-MM-DD.md"

---

## Output Format

```markdown
# Standup Brief — YYYY-MM-DD

## Yesterday (Done)
- [completed item 1]
- [completed item 2]

## Today (Plan)
- [open task 1]
- [open task 2]

## Blockers
- [blocker 1]
— none (if no blockers found)

## Questions / Awaiting Response
- [question or pending action 1]
— none (if nothing pending)

---
*Generated: YYYY-MM-DD | Sources: [file1.md, file2.md, ...]*
```

**Field rules:**
- Each item is one line, starting with `- `
- No sub-bullets (keep scannable for standup format)
- Completed items: state what was finished, not the task description alone
- Today items: actionable verb + object (e.g., "Review PR #42", "Send status update to Alex")
- Blockers: name the blocker and who/what is blocking
- Questions: include the recipient if known (e.g., "Awaiting answer from @Maria on API spec")

---

## Negative Cases

- **No path provided + no active Cowork folder:** Stop. Report: "Please provide the path to your working folder."
- **Folder not found at path:** Stop. Report: "Folder not found: [path]. Check the path and retry."
- **Folder is empty (no .md/.txt):** Stop. Report: "No readable files (.md, .txt) found in [path]. Add notes or task files first."
- **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."
- **Today's brief already exists (user declines overwrite):** Stop cleanly. Report: "Keeping existing brief at [path]/standup-brief-YYYY-MM-DD.md."

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [KirKruglov](https://github.com/KirKruglov)
- **Source:** [KirKruglov/claude-skills-kit](https://github.com/KirKruglov/claude-skills-kit)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-kirkruglov-claude-skills-kit-morning-standup-brief-generator
- Seller: https://agentstack.voostack.com/s/kirkruglov
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
