Get the FREE Ultimate OpenClaw Setup Guide β†’

ship-digest

npx machina-cli add skill PHY041/claude-agent-skills/ship-digest --openclaw
Files (1)
SKILL.md
3.6 KB

Ship Digest Skill

Automatically detect new GitHub repos and turn them into social media announcements.


Setup

export GITHUB_USERNAME="yourusername"

How It Works

  1. Fetch your GitHub repos sorted by pushed_at
  2. Compare against a state file (memory/ship-digest-state.json)
  3. For any new repo pushed today β†’ analyze README + commits
  4. Generate a technical digest + social media drafts
  5. Send drafts for approval (NEVER auto-post)

Workflow

Step 1: Fetch New Repos

gh api /users/$GITHUB_USERNAME/repos?sort=pushed&per_page=10

Compare pushed_at timestamps against state file. A repo is "new" if:

  • Not in state file at all, OR
  • pushed_at is today and has 3+ new commits since last check

Step 2: Analyze Repo Content

# README
gh api /repos/$GITHUB_USERNAME/{repo}/readme --jq .content | base64 -d

# Recent commits
gh api /repos/$GITHUB_USERNAME/{repo}/commits?per_page=5

# File tree (for tech stack detection)
gh api /repos/$GITHUB_USERNAME/{repo}/git/trees/HEAD?recursive=1 --jq '[.tree[].path] | join(", ")'

Step 3: Generate Ship Digest

Output format:

🚒 Ship Digest β€” [date]

Caught a new repo: **{repo_name}**, pushed today.

**What you shipped:**
[2-3 sentence technical description based on README + commits]

πŸ“Š **{N} lines** in initial commit. [Tech stack summary].
β†’ github.com/{username}/{repo}

---

**✍️ DRAFT β€” Option A: [Hook type]**
[Twitter draft A]

**✍️ DRAFT β€” Option B: [Hook type]**
[Twitter draft B]

Reply "A" or "B" to post, or tell me what to change.

Step 4: Await Approval

User picks Option A or B (or requests edits). Then post using social-post skill or twitter-cultivate skill.

NEVER auto-post without explicit user confirmation.


Draft Generation Rules

Voice

  • First-person, authentic, no hype
  • Lead with the problem solved OR the interesting technical choice
  • Include one specific metric (lines of code, platforms supported, speed improvement)

Hook Types to Try

  1. Contrarian Hook β€” "Everyone says X, but actually Y"
  2. Data Hook β€” "[Number] lines. [N] platforms. [capability]."
  3. Problem Hook β€” "Every [person] hits [pain point] eventually..."
  4. Story Hook β€” "Been thinking about [problem] for [time]. Finally shipped something."

Banned Words

Never use: revolutionize, supercharge, game-changer, 10x, viral, hacks, disrupt, groundbreaking


State File

Location: memory/ship-digest-state.json

{
  "github_username": "yourusername",
  "last_checked": "ISO8601",
  "known_repos": {
    "repo-name": {
      "pushed_at": "ISO8601",
      "last_commit_count": 42,
      "announced": true
    }
  }
}

Cron Schedule

Runs 2x daily: 09:00 and 16:00 (your local time).

If no new repos: reply HEARTBEAT_OK.

Source

git clone https://github.com/PHY041/claude-agent-skills/blob/main/skills/ship-digest/SKILL.mdView on GitHub

Overview

Automatically detect new GitHub repos pushed today for a specified user, write a concise technical digest from the README and recent commits, and draft Twitter/Reddit posts for approval. It maintains a memory state to distinguish truly new repos and ensures you approve before posting.

How This Skill Works

It fetches repos sorted by pushed_at for the configured GitHub username, compares them against memory/ship-digest-state.json to identify new repos, analyzes the README, recent commits, and file tree to infer the tech stack, then generates a Ship Digest and social drafts. Drafts are presented for approval and will not be posted automatically until you confirm.

When to Use It

  • You want to announce a new repo you pushed today and capture technical details.
  • You need ready-to-post Twitter or Reddit drafts for a fresh project.
  • You want a quick recap of what you shipped for teammates or followers.
  • You’re monitoring your GitHub profile for new activity and want automatic summaries.
  • You want to trigger from phrases like 'ship digest' or 'what did I ship' to start the workflow.

Quick Start

  1. Step 1: Set GITHUB_USERNAME (export GITHUB_USERNAME="yourusername").
  2. Step 2: Trigger the skill with 'ship digest' to scan today’s repos and generate drafts.
  3. Step 3: Review the 2 draft options and approve the one you want posted (no auto-post).

Best Practices

  • Set and maintain the GITHUB_USERNAME environment variable for accurate detection.
  • Review both A and B draft options and tailor them to platform constraints (Twitter character limit, Reddit style).
  • Keep the memory state up to date with last_checked and known_repos to minimize false positives.
  • Include a concise README-based description and at least one concrete metric in the digest.
  • Never auto-post; use the approved workflow to publish via social-post or twitter-cultivate.

Example Use Cases

  • 🚒 Ship Digest β€” 2026-03-08: New repo 'data-pipeline-toolkit' pushed today. What you shipped: README with architecture overview; 2 commits. Tech stack: Python, Docker. github.com/yourusername/data-pipeline-toolkit
  • 🚒 Ship Digest β€” 2026-03-08: New repo 'ui-components' pushed today. What you shipped: small component library; 1 README update + 4 UI modules. Tech stack: TypeScript, React. github.com/yourusername/ui-components
  • 🚒 Ship Digest β€” 2026-03-08: New repo 'monitoring-stack' pushed today. What you shipped: monitoring dashboard and config; 3 commits. Tech stack: Go, Prometheus, Grafana. github.com/yourusername/monitoring-stack
  • 🚒 Ship Digest β€” 2026-03-08: New repo 'ml-pipelines' pushed today. What you shipped: data processing pipelines described in README; 3 commits. Tech stack: Python, ML frameworks. github.com/yourusername/ml-pipelines
  • 🚒 Ship Digest β€” 2026-03-08: New repo 'infra-templates' pushed today. What you shipped: IaC templates with Terraform; 2 commits. Tech stack: Terraform, AWS. github.com/yourusername/infra-templates

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers β†—