Przejdź do treści
Biblioteka skilli
Produktywność osobista · Automatyzacja

kill-the-standup

/kill-the-standup

Odczytuje wczorajsze zadania z Linear i commity z GitHuba, układa raport standupu (zrobione, w toku, blokery) i publikuje go na Slacku.

Repozytorium
opendirectory ↗
Licencja
MIT
Ostatnia zmiana repozytorium
17.10.2026

Ocena i bezpieczeństwo

100/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść35 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
5
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
2
Przestarzałość

Brak sygnałów. Repozytorium zmienione 17.10.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Odczytuje wczorajsze zadania z Linear i commity z GitHuba, układa raport standupu (zrobione, w toku, blokery) i publikuje go na Slacku.

Wyzwalacze z opisu

write my standuppost standupgenerate standup updatewhat did I do yesterdaykill the standup
Oryginalny opis (EN)

Reads yesterday's Linear issues and GitHub commits for the authenticated user, formats a standup update (done / doing / blockers), and posts it to Slack. Use when asked to write a standup, generate a standup update, post to the standup channel, summarize yesterday's work, or automate the daily standup. Trigger when a user says "write my standup", "post standup", "generate standup update", "what did I do yesterday", or "kill the standup".

Jak działa

  1. Step 1: Setup Check
  2. Step 2: Fetch Linear Activity
  3. Step 3: Fetch GitHub Commits
  4. Step 4: Format Standup
  5. Step 5: Post to Slack or Output
Sekcje z nagłówków SKILL.md, w oryginale · 163 linii, 630 słów
Podgląd SKILL.md
---
name: kill-the-standup
description: Reads yesterday's Linear issues and GitHub commits for the authenticated user, formats a standup update (done / doing / blockers), and posts it to Slack. Use when asked to write a standup, generate a standup update, post to the standup channel, summarize yesterday's work, or automate the daily standup. Trigger when a user says "write my standup", "post standup", "generate standup update", "what did I do yesterday", or "kill the standup".
author: OpenDirectory
version: 1.0.0
---

# Kill the Standup

Read yesterday's Linear issues and GitHub commits. Format a standup update. Post it to Slack.

---

## Step 1: Setup Check

Confirm required env vars are set:

```bash
echo "LINEAR_API_KEY: ${LINEAR_API_KEY:+set}"
echo "SLACK_WEBHOOK_URL: ${SLACK_WEBHOOK_URL:+set}"
echo "GITHUB_REPO: ${GITHUB_REPO:-not set}"
echo "GITHUB_USERNAME: ${GITHUB_USERNAME:-not set}"
```

**If LINEAR_API_KEY is missing:**
Stop. Tell the user: "LINEAR_API_KEY is required. Get it from Linear → Settings → API → Personal API keys. Add it to your .env file."

**If SLACK_WEBHOOK_URL is missing:**
Stop. Tell the user: "SLACK_WEBHOOK_URL is required. Create an Incoming Webhook at api.slack.com/apps → Your App → Incoming Webhooks. Add it to your .env file."

**If GITHUB_REPO is missing:**
Continue. GitHub commits will be skipped. Note this to the user.

---

## Step 2: Fetch Linear Activity

Compute yesterday's date in ISO 8601 format (e.g. `2026-04-09T00:00:00.000Z`).

**Get current user ID:**
```bash
curl -s -X POST https://api.linear.app/graphql \
  -H "Authorization: Bearer $LINEAR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query": "query { viewer { id name email } }"}'
```

Extract the `id` field from the response. Store as `LINEAR_USER_ID`.

**Fetch issues assigned to me, updated since yesterday:**
```bash
curl -s -X POST https://api.linear.app/graphql \
  -H "Authorization: Bearer $LINEAR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "query($since: DateTime!, $userId: ID!) { issues(first: 50, filter: { assignee: { id: { eq: $userId } } updatedAt: { gte: $since } }) { edges { node { identifier title state { name } url completedAt updatedAt createdAt } } } }",
    "variables": {"since": "YESTERDAY_ISO", "userId": "LINEAR_USER_ID"}
  }'
```

**Categorize issues:**
- `completedAt` is non-null → **Done**
- `state.name` is "In Progress", "Started", or "In Review" → **Doing**
- `state.name` is "Cancelled" → skip
- `state.name` is "Todo" or "Backlog" → skip (not worked on)

If zero issues: note "No Linear activity found for yesterday."

---

## Step 3: Fetch GitHub Commits

Skip this step silently if GITHUB_REPO is not set.

If GITHUB_REPO is set:

```bash
gh api "repos/$GITHUB_REPO/commits?author=${GITHUB_USERNAME:-$(gh api user --jq .login)}&since=YESTERDAY_ISO&per_page=30" \
  --jq '[.[] | {message: .commit.message, url: .html_url}]'
```

**Process commits:**
- Extract the first line of each commit message (everything before the first newline)
- Skip merge commits: drop any message starting with "Merge"
- Deduplicate by message text

If GITHUB_REPO is set but returns zero commits: note "No commits found yesterday."

---

## Step 4: Format Standup

Read `references/standup-format.md` in full before writing.

Produce the standup in this exact structure:

```
**Done**
- [ENG-123] Title of completed issue
- fix: commit message here

**Doing**
- [ENG-124] Title of in-progress issue

**Blockers**
No blockers.
```

Rules from standup-format.md:
- No first-person pronouns ("I", "we")
- Past tense for Done items, present continuous for Doing items
- Each Linear item uses the `[IDENTIFIER] Title` format
- Each GitHub commit uses the first line of the commit message
- If no Done items: write "Nothing completed." under Done
- If no Doing items: write "Nothing in progress." under Doing
- If no blockers: write "No blockers."
- Under 200 words total

---

## Step 5: Post to Slack or Output

Present the formatted standup to the user.

Ask: "Post this to Slack, or output only?"

**On confirmation to post:**

```bash
curl -s -X POST "$SLACK_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*Standup — DATE_HERE*\n\n*Done*\nITEMS\n\n*Doing*\nITEMS\n\n*Blockers*\nITEMS"
        }
      }
    ]
  }'
```

Pass the body via a temp file or heredoc to avoid shell quoting issues with special characters in commit messages or issue titles:

```bash
cat > /tmp/standup-payload.json << 'ENDJSON'
{
  "blocks": [
    {
      "type": "section",
      "text": {
        "type": "mrkdwn",
        "text": "STANDUP_CONTENT_HERE"
      }
    }
  ]
}
ENDJSON
curl -s -X POST "$SLACK_WEBHOOK_URL" -H "Content-Type: application/json" -d @/tmp/standup-payload.json
```

After posting: "Standup posted."

**On "output only":** Print the standup in a code block for copy-paste.


Pliki w paczce (5)
  • .env.example 1 KB
  • README.md 4 KB
  • SKILL.md 5 KB
  • evals/evals.json 2 KB
  • references/standup-format.md 2 KB

Wersje

W bazie nie ma innych skilli o nazwie kill-the-standup.

Migawka bazy z 28.10.2026 · wersja paczki c71fdda1b1d1 (skrót SHA-256 całej paczki)

Pobrania w ostatnich 30 dniach: 0 · ranking

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100p-daily-standup
    Zbiera aktywność z poprzedniego dnia roboczego i publikuje aktualizację standupu na Slacku.
  • 84daily-standup
    Generuje codzienne raporty standup z GitHuba i Linear, podsumowując, nad czym użytkownik pracował wczoraj i co ma na dziś.
  • 100daily-meeting-update
    Generuje interaktywnie aktualizację na standup: pobiera aktywność z GitHuba, Jiry i historii sesji Claude Code, zadaje cztery pytania (wczoraj, dziś, blokery, tematy) i tworzy sformatowany Markdown.
  • 100standup
    Generuje aktualizację na codzienny standup z ostatniej aktywności: wczorajszych commitów, PR i zmian w zadaniach, w formacie wczoraj, dziś, blokady.
  • 100standup
    Generuje aktualizację na codzienny standup z ostatniej aktywności: wczorajszych commitów, PR i zmian w zadaniach, w formacie wczoraj, dziś, blokady.
  • 100daily-meeting-update
    Generuje interaktywne podsumowania na codzienny standup z GitHub, Jiry i historii sesji AI: co zrobiono, plan na dziś i blokery.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.