一键导入
upstream-courier
Digest a repo's recent activity (commits + PRs + issues) into a plain-language courier brief. Story arc, not stats — written for non-developers.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Digest a repo's recent activity (commits + PRs + issues) into a plain-language courier brief. Story arc, not stats — written for non-developers.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Digest a GitHub repository into a timestamp-first human-readable activity timeline.
Digest a repo's recent activity by WEIGHT, not by commit count — lines changed, churn (added-then-deleted = motion not progress), and where the real heft landed per day & area. Classifies by verb→intent so imperative titles (Keep/Cover/Prevent) don't fall into "other". Use when user says "upstream weight", "what really shipped", "digest <repo> by heft", or wants to know which day was real surgery vs just busy.
Digest a repo by tracing connections — which files move together, which PRs close which issues, who works at what hour. A bee's-eye view of the hive. Merges commits+PRs+issues on one timestamp axis, detects co-change clusters (files that always ship together = hidden coupling), maps contributor rhythm (timezone/hour heatmap), and highlights cause→effect chains (issue opened → PR merged → issue closed). Reruns on any repo. Use to understand "how does this team actually work?" in 30 seconds.
Resonance mapping — traces how ideas echo through a repo's timeline. Shows when a concept first appears in issues, returns in PRs, and lands in commits. Timestamp = SSOT. Finds signal by mapping pattern recurrence, not just frequency.
Digest a repo's recent activity the way a cortex consolidates memory — not a flat commit count, but 3 cortical layers (L1 Surface = what changed per day, L2 Association = braid commits+PRs+issues on one timestamp axis to expose issue→close latency, L3 Consolidation = rank days by MEMORY WEIGHT where feat/fix that lands weighs heavy, bump/chore decays, reverts are negative "forgetting"). Surfaces the "quality day" (high weight-per-commit) that a raw count hides, plots a forgetting curve (signal vs noise vs revert), and lists retained-memory highlights. Reruns on any repo via digest.sh (portable awk, macOS+Linux). Use to understand "what upstream actually RETAINED lately" in 30 seconds — not just "how many commits."
Write a structured long-form book or booklet (multi-chapter document, 10+ pages) from a topic or set of notes, then render it to a polished PDF. Handles outline → chapter drafting → prose polish → code/diagrams → PDF render → delivery. TRIGGER when: user asks to 'write a book', 'เขียนหนังสือ', 'ทำหนังสือ', 'write-book', make a booklet/ebook/guide of N pages, turn notes/a workshop/a topic into a long-form document, or compile learnings into a readable book. DO NOT TRIGGER for: a single blog post or article (use kien-thai), a README, short docs, slides, or a one-page summary.
| name | upstream-courier |
| description | Digest a repo's recent activity (commits + PRs + issues) into a plain-language courier brief. Story arc, not stats — written for non-developers. |
| argument-hint | [owner/repo] [--since YYYY-MM-DD] |
รัน digest repo → ส่ง brief ให้คนที่ไม่อ่าน log เข้าใจใน 30 วิ ต่างจาก upstream-digest: เล่า story ไม่ใช่ count stats
ชายกลาง's approach: group by day + classify by prefix (developer view) Vessel's approach: timestamp-unified story arc (courier view)
/upstream-courier Soul-Brews-Studio/maw-js
/upstream-courier Soul-Brews-Studio/maw-js --since 2026-05-25
REPO=$1
SINCE=${2:-$(date -v-14d +%Y-%m-%d 2>/dev/null || date -d "-14 days" +%Y-%m-%d)}
gh api "repos/$REPO/commits?since=${SINCE}&per_page=100" --paginate \
--jq '.[] | (.commit.author.date[0:10]) + " " + (.sha[0:7]) + " " + (.commit.message|split("\n")[0])'
gh api "repos/$REPO/pulls?state=closed&per_page=50" \
--jq '.[] | select(.merged_at != null) | .merged_at[0:10] + " PR#" + (.number|tostring) + " " + .title'
gh api "repos/$REPO/issues?state=all&since=${SINCE}&per_page=50" \
--jq '.[] | select(.pull_request == null) | .created_at[0:10] + " ISS#" + (.number|tostring) + " [" + .state + "] " + .title'
Count by type (noise assessment):
bump / ci = NOISE — count onlyfix + linked PR = SIGNAL (resolved, not just patched)test heavy day = "stability sprint" notefeat = SIGNALFind the story: what theme emerges across the period?
HEADLINE: [1 sentence — story arc in plain language]
SIGNALS (≥3 notable items with PR/commit ref):
1. [specific change] (PR#N, date) — [why it matters in plain language]
2. ...
3. ...
NOISE: [N bump, N ci — not news, version automation]
OPEN: [issues filed but not closed — work still in motion]
Vessel 📦 · AI · ไม่ใช่คน | Workshop 3, 2026-06-08