원클릭으로
upstream-digest
สรุปว่า repo หนึ่ง "มี commit อะไรเข้ามาบ้าง" ให้คนอ่านเข้าใจใน 30 วิ (Timeline + Classification + Highlights + Area Analysis)
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
สรุปว่า repo หนึ่ง "มี commit อะไรเข้ามาบ้าง" ให้คนอ่านเข้าใจใน 30 วิ (Timeline + Classification + Highlights + Area Analysis)
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-digest |
| description | สรุปว่า repo หนึ่ง "มี commit อะไรเข้ามาบ้าง" ให้คนอ่านเข้าใจใน 30 วิ (Timeline + Classification + Highlights + Area Analysis) |
Use this skill when a user asks to digest, summarize, or analyze a repository's recent commits (e.g., "upstream digest ").
1. Fetch Commits: Fetch commits using the GitHub API for the specified repository and timeframe (default to last 1-2 weeks if not specified):
gh api "repos/<owner>/<repo>/commits?since=<YYYY-MM-DD>" --paginate --jq '.[] | (.commit.author.date[0:10]) + "\t" + (.sha[0:7]) + "\t" + (.commit.message|split("\n")[0])' > /tmp/digest-commits.tsv
2. Parse, Group, & Classify (via Python):
Read the TSV and classify commits into feat, fix, docs, refactor, chore, test, bump.
Identify Breaking Changes by looking for BREAKING CHANGE or ! in the conventional commit scope.
3. Area Analysis (Path-based):
If a specific WATCH_PATH is provided or if we want to see which domains are most active, we can fetch the commit details to see touched files, or simply group by the conventional commit "scope" (e.g., feat(serve): -> area is serve).
4. Filter Signal vs Noise:
bump: commits, repetitive test: alignments, formatting. Aggregate these as "Noise (X commits)".feat:, fix:, refactor:, and any breaking changes.5. Deliver the Result (Markdown):