Community寫作與編輯github.com

Varnan-Tech/opendirectory

讀取使用者昨天的 Linear 議題與 GitHub 提交記錄,整理成進度更新(完成/進行中/阻礙),並發佈到 Slack。

opendirectory 是什麼?

此技能可自動化每日站會更新,從 Linear 與 GitHub 提取使用者昨天的活動記錄,並整理成標準的「完成/進行中/阻礙」格式,最後發送至 Slack 頻道。支援 Linear API 與 GitHub CLI,需要設定相應的環境變數(LINEAR_API_KEY、SLACK_WEBHOOK_URL、GITHUB_REPO、GITHUB_USERNAME)。使用時,使用者只需說「寫我的站會更新」或「發佈站會」,AI 就會依序檢查設定、擷取資料、格式化內容,並詢問使用者是否要發佈到 Slack 或僅輸出文字。若有缺少環境變數,技能會明確指示如何設定,並在 GitHub 儲存庫未設定時自動跳過提交記錄。最終的站會更新遵守指定的格式規則,例如不使用第一人稱、使用過去式與現在進行式、每項不超過 200 字。

相容平台✓Claude Code~Codex CLI~Cursor✓Gemini CLI
npx skills add https://github.com/Varnan-Tech/opendirectory/tree/main/skills/kill-the-standup

Installed? Explore more 寫作與編輯 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

終結站會

讀取昨天的 Linear 議題與 GitHub 提交記錄,整理成站會更新,並發佈到 Slack。


步驟 1:設定檢查

確認必要的環境變數已設定:

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}"

如果缺少 LINEAR_API_KEY: 停止。告訴使用者:「需要 LINEAR_API_KEY。請至 Linear → 設定 → API → 個人 API 金鑰取得,並加入至您的 .env 檔案。」

如果缺少 SLACK_WEBHOOK_URL: 停止。告訴使用者:「需要 SLACK_WEBHOOK_URL。請在 api.slack.com/apps → 您的應用程式 → 傳入 Webhook 中建立一個 Webhook,並加入至您的 .env 檔案。」

如果缺少 GITHUB_REPO: 繼續。將跳過 GitHub 提交記錄。向使用者說明此情況。


步驟 2:擷取 Linear 活動

計算昨天的日期,格式為 ISO 8601(例如 2026-04-09T00:00:00.000Z)。

取得目前使用者 ID:

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 } }"}'

從回應中擷取 id 欄位,儲存為 LINEAR_USER_ID。

擷取指派給我的議題(自昨天起有更新):

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"}
  }'

分類議題:

  • completedAt 不為 null → 完成
  • state.name 為「In Progress」、「Started」或「In Review」→ 進行中
  • state.name 為「Cancelled」→ 跳過
  • state.name 為「Todo」或「Backlog」→ 跳過(未處理)

如果沒有議題:註記「昨天沒有 Linear 活動。」


步驟 3:擷取 GitHub 提交記錄

如果未設定 GITHUB_REPO,則靜默跳過此步驟。

如果設定了 GITHUB_REPO:

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}]'

處理提交記錄:

  • 擷取每個提交訊息的第一行(第一個換行符之前的內容)
  • 跳過合併提交:捨棄任何以「Merge」開頭的訊息
  • 依訊息文字去重

如果已設定 GITHUB_REPO 但未傳回任何提交記錄:註記「昨天沒有找到提交記錄。」


步驟 4:格式化站會

在撰寫之前,完整閱讀 references/standup-format.md。

按照以下確切結構產出站會:

**完成**
- [ENG-123] 已完成議題的標題
- fix: commit message here

**進行中**
- [ENG-124] 進行中議題的標題

**阻礙**
無阻礙。

來自 standup-format.md 的規則:

  • 不使用第一人稱代名詞(「我」、「我們」)
  • 完成項目使用過去式,進行中項目使用現在進行式
  • 每個 Linear 項目使用 [IDENTIFIER] Title 格式
  • 每個 GitHub 提交記錄使用提交訊息的第一行
  • 如果沒有完成項目:在「完成」下寫「無已完成項目。」
  • 如果沒有進行中項目:在「進行中」下寫「無進行中項目。」
  • 如果沒有阻礙:寫「無阻礙。」
  • 總字數少於 200 字

步驟 5:發佈到 Slack 或輸出

將格式化後的站會呈現給使用者。

詢問:「要發佈到 Slack,還是僅輸出?」

確認發佈時:

curl -s -X POST "$SLACK_WEBHOOK_URL" \
  -H "Content-Type: application/json" \
  -d '{
    "blocks": [
      {
        "type": "section",
        "text": {
          "type": "mrkdwn",
          "text": "*站會 — DATE_HERE*\n\n*完成*\nITEMS\n\n*進行中*\nITEMS\n\n*阻礙*\nITEMS"
        }
      }
    ]
  }'

使用暫存檔或 heredoc 傳遞內文,以避免 shell 引用問題(提交訊息或議題標題中的特殊字元):

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

發佈完成後:「站會已發佈。」

選擇「僅輸出」時: 在程式碼區塊中輸出站會,方便複製貼上。

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

Varnan-Tech/opendirectory

Use when the user asks to generate a blog cover image, thumbnail, or article header. Automatically uses modern typography, brand logos, and Google Search grounding to create beautiful 16:9 images with Gemini 3.1 Flash Image Preview.

Varnan-Tech/opendirectory

World-class brand strategist and naming expert. Uses an interrogation-led discovery phase to extract your brand's DNA, then applies scientific naming frameworks (Phonosemantics) and automated multi-TLD domain checking.

Varnan-Tech/opendirectory

Use when the user asks to generate or update a project's CLAUDE or AGENTS context file from a codebase scan. Writes a focused file under 100 lines containing only the non-obvious build commands, conventions, and gotchas Claude Code needs.

Varnan-Tech/opendirectory

Use when the user wants to verify cold emails, enrich a lead list, or autonomously guess email addresses from a CSV using ValidEmail.co or the open-source Reacher engine.

Varnan-Tech/opendirectory

Competitive intelligence orchestrator tracking companies across 8+ platforms (GitHub, Twitter, Reddit, HN, PH, YC Jobs) with heat scores and AI briefings.

Varnan-Tech/opendirectory

Give it your product URL or description. It finds your top 5 competitors, runs three-track PR research across all of them (editorial, podcasts, communities), identifies which channels appear most frequently, looks up the journalist or host for each, and returns a tiered outreach list with story angles and ready-to-send cold pitch drafts tailored to your product. Use when asked to find PR opportunities, discover where competitors got featured, build a media outreach list, find which journalists cover my space, or get pitch templates for press coverage.

Varnan-Tech/opendirectory

Generate high-converting, deep-dive growth case studies in MDX format. Use this skill when asked to write a case study or blog post about a company's growth, tech stack, or product-led strategy. It handles the full pipeline (researching the company via Tavily, generating a 16:9 cover image, quality checking the draft, uploading assets to cloud storage, and pushing directly to the target repository).

Varnan-Tech/opendirectory

Scans your project for outdated npm, pip, Cargo, Go, or Ruby packages. Runs a CVE security audit. Fetches changelogs, summarizes breaking changes with Gemini, and opens one PR per risk group (patch, minor, major). Includes Diagnosis Mode for install conflicts. Use when asked to update dependencies, check for outdated packages, open dependency PRs, scan for package updates, audit for CVEs, or flag breaking changes in upgrades. Trigger when a user says "check for outdated packages", "update my dependencies", "open PRs for dependency updates", "scan for CVEs", or "which packages need upgrading".

Varnan-Tech/opendirectory

Generates and updates README.md and API reference docs by reading your codebase's functions, routes, types, schemas, and architecture. Uses graphify to build a knowledge graph first, then writes accurate docs from it. Use when asked to write docs, generate a README, document an API, update stale docs, create an API reference from code, add an architecture section, or document a project in any language. Trigger when a user says their docs are missing, outdated, or wants to document their codebase without writing it manually.

Varnan-Tech/opendirectory

Evaluates expired domain candidates against a target niche, scores them by topical relevance, historical activity level, and history cleanliness, then outputs a ranked shortlist with explainable reasoning and risk flags.

Varnan-Tech/opendirectory

Brutally honest developer-experience audit for a GitHub repo. Scores 10 DX dimensions (time-to-first-success, README clarity, visual proof, install, quick-start, docs, examples, community, trust, marketing), writes a shareable roast in the requested tone (brutal/honest/kind), produces a prioritized action plan ranked by impact × effort, and sketches an ideal README. Trigger when user says "roast my repo", "audit my README", "dx audit", "developer experience review", "score my GitHub project", "before launch checklist", or "make my repo shareable".

Varnan-Tech/opendirectory

Drafts and designs a complete HTML email newsletter from a topic or content brief. Outputs paste-ready HTML for Loops, Mailchimp, Beehiiv, Resend, or any standard email platform. Includes subject line options and plain-text fallback. Trigger when a user says "write a newsletter", "draft an email newsletter", "create an HTML email", "design an email for my subscribers", or "write a newsletter about [topic]".

Varnan-Tech/opendirectory

Takes a GitHub PR URL or the current branch and writes a plain-English explanation of what it does and why, then posts it as a PR comment. Use when asked to explain a PR, summarize a pull request, write a plain-English description of a PR, add a summary comment to a PR, or understand what a PR changes. Trigger when a user says "explain this PR", "summarize this pull request", "what does this PR do", "add a comment explaining the PR", or shares a GitHub PR URL and asks what it does.

Varnan-Tech/opendirectory

Audit how often LLMs recommend your brand vs competitors and generate a GEO action plan.

Varnan-Tech/opendirectory

Takes a competitor's public GitHub repo URL, fetches their open issues via the GitHub REST API, filters noise locally, clusters issues into 6 demand categories, computes a demand score per issue and per cluster, and outputs a ranked demand gap report with a GTM messaging brief. Use when asked to scan a competitor's GitHub issues, find what their users are begging for, turn GitHub complaints into product positioning, identify competitor feature gaps, or generate messaging from real user demand. Trigger when a user says "scan competitor issues", "what are users asking for on X repo", "find demand gaps in Y", "turn GitHub issues into messaging", or "what should I build based on competitor complaints".

Varnan-Tech/opendirectory

Find recurring confusion in your repo's GitHub Discussions, rank it by urgency, and draft the actual docs fixes and content angles — with verbatim community quotes and source links as evidence.

Varnan-Tech/opendirectory

SEO keyword research workflow for blog generation using Google Trends data. Use when writing blog posts, planning content calendars, or optimizing articles for search engines. Finds breakout keywords, builds content structure, and generates SEO-optimized blog outlines targeting tech and developer audiences.

Varnan-Tech/opendirectory

Generates a professionally designed case study PDF for B2B SaaS sales and marketing. Supports 7 page layouts, 9 style presets, 1-4 page output. Trigger when user says "create a case study", "write a customer story", "make a case study PDF", "design a success story", "turn this customer win into a PDF".

Varnan-Tech/opendirectory

Generates data visualization charts (bar, line, area, pie, doughnut, scatter, radar, treemap) as PNG using Apache ECharts v6. 1080×1080px default, 5 style presets, highlight annotations. Trigger when user says "create a chart", "visualize data", "make a bar chart", "line graph", "pie chart", "data visualization", "chart this data", "plot", "graph", or "visualize these numbers".

Varnan-Tech/opendirectory

Fetches low-star App Store and Google Play reviews, clusters them into broken-promise patterns, and generates a ranked copy brief with positioning opportunities.

相關技能