launch-summary
Summarizes what shipped across the Atllas repos over a daily or weekly window, written for non-developers.
Skill by ptrandev
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/ptrandev-launch-summary
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/launch-summary
What's inside
- Skill name
launch-summary- Description
- Summarizes what shipped across the Atllas repos over a daily or weekly window, written for non-developers. Groups the result by product and credits who built and merged each change. Counts only PRs merged to each repo's default branch. Use for "what did we launch today", "weekly summary", or "launch recap".
- License
- MIT
- Instructions
- 205 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (1)
- SKILL.md
SKILL.md (first lines)
## Instructions
Generate a **non-developer-friendly launch summary** from merged pull requests across four GitHub repos: `Atllas-Inc/codebase`, `Atllas-Inc/aicc-queues`, `Atllas-Inc/neema-simple-hyzl`, and `Atllas-Inc/pointsgpt`.
The skill takes one argument, the window: `daily` or `weekly`. **If the user gives no argument, use `daily`.** The window sets the timeframe and nothing else. Every later step is shared.
### Step 1: Determine the date range
- `daily`: the last 24 hours, a rolling window ending now.
- `weekly`: the current calendar week, Monday 00:00 UTC through today.
If the user specified a different range, a specific day, or a specific week, use that instead.
### Step 2: Fetch merged PRs from every repo
Only PRs merged **into the repo's default branch** count. The `base:` filter excludes PRs merged into release branches and feature branches.
**Never hardcode `base:master`.** The default branch differs per repo: `codebase` and `aicc-queues` use `master`, `neema-simple-hyzl` and `pointsgpt` use `main`. Read it from `repos/<repo>` so a repo added later needs no edit here.
**Never use `gh pr list`.** It calls the GitHub GraphQL API, which Claude Code sessions block with a 403. Use the REST endpoints below.
`search/issues` filters on merge date server-side, so no `--limit` can drop a PR that was opened long ago and merged inside the window. It returns the author, but not the merger and not the changed files. Step 2 therefore calls `pulls/{n}` for every PR to read `merged_by`. It also calls `pulls/{n}/files` for each repo that ships a phone app, to tell Mobile PRs from App PRs.
Two repos ship one: `codebase` under `apps/atllas-app/`, and `pointsgpt` under `ios/`. The `mobile_prefix` function below holds the prefix per repo. An empty value means no phone app.
`product_name` holds the customer-facing name per repo. The summary is grouped by that name, so every repo needs a row.
`display_name` turns a GitHub login into a person's real name, and caches each lookup in `/tmp/ls_names.tsv` so one person costs one call.
Add a repo by appending it to the `for REPO in ...` list and giving it a `product_name` row. **Never put the repo list in a variable.** This block runs under `zsh`, which does not word-split an unquoted variable, so a list in a variable is read as one repo name.
Run the whole block in one Bash invocation so `SINCE` is computed once:
```bash
set -euo pipefail
WINDOW=daily # daily | weekly
case "$WINDOW" in
daily)
SINCE=$(date -u -v-24H +%Y-%m-%dT%H:%M:%SZ 2>/dev/null || date -u -d "24 hours ago" +%Y-%m-%dT%H:%M:%SZ 2>/dev/null)
[ -n "$SINCE" ] || { echo "ERROR: could not compute a 24-hours-ago timestamp with this system's date(1). Aborting." >&2; exit 1; }
HEADER="## 🚀 Daily Launch Summary: $(date -u +%Y-%m-%d)"
EMPTY="Nothing shipped in the last 24 hours."
;;
weekly)
WEEK_START=$(date -v-Mon +%Y-%m-%d 2>/dev/null || date -d "last Monday" +%Y-%m-%d 2>/dev/null)
[ -n "$WEEK_START" ] || { echo "ERROR: could not compute the start of the week with this system's date(1). Aborting." >&2; exit 1; }
SINCE="${WEEK_START}T00:00:00Z"
HEADER="## 🚀 Weekly Launch Summary: Week of ${WEEK_START}"
EMPTY="Nothing shipped this week."
;;
esac
UNTIL=""
NAMES=/tmp/ls_names.tsv
: > "$NAMES"
echo "Window starts: $SINCE"
echo "Header: $HEADER"
echo "Empty-result line: $EMPTY"
mobile_prefix() {
case "$1" in
codebase) echo '^apps/atllas-app/' ;;
pointsgpt) echo '^ios/' ;;
*) echo '' ;;
esac
}
product_name() {
case "$1" in
codebase) echo 'Atllas' ;;
aicc-queues) echo 'AI Calling' ;;
neema-simple-hyzl) echo 'Hyzl' ;;
pointsgpt) echo 'PointsGPT' ;;
*) echo "$1" ;;
esac
}
display_name() {
[ -n "$1" ] || { echo ''; return; }
local hit
hit=$(awk -F'\t' -v l="$1" '$1==l {print $2; exit}' "$NAMES")
if [ -z "$hit" ]; then
hit=$(gh api "users/$1" --jq '.name // .login')
printf '%s\t%s\n' "$1" "$hit" >> "$NAMES"
fi
echo "$hit"
}
search_prs() {
gh api -X GET search/issues \
-f q="repo:$1 is:pr is:merged base:$2 merged:>=$SINCE" \
-f per_page=100 --paginate \
--jq '.items[] | {number, title, mergedAt: .pull_request.merged_at, body, author: .user.login, labels: [.labels[].name]}'
}
: > /tmp/ls_prs.jsonl
for REPO in Atllas-Inc/codebase Atllas-Inc/aicc-queues Atllas-Inc/neema-simple-hyzl Atllas-Inc/pointsgpt; do
NAME="${REPO#*/}"
BASE=$(gh api "repos/$REPO" --jq .default_branch)
PRODUCT=$(product_name "$NAME")
PREFIX=$(mobile_prefix "$NAME")
echo "$REPO: base $BASE, product $PRODUCT"
search_prs "$REPO" "$BASE" | while read -r row; do
n=$(jq -r .number <<<"$row")
m=false
if [ -n "$PREFIX" ]; then
if gh api "repos/$REPO/pulls/$n/files?per_page=100" --paginate --jq '.[].filename' \
| grep -q "$PREFIX"; then m=true; fi
fi
MERGER_LOGIN=$(gh api "repos/$REPO/pulls/$n" --jq '.merged_by.login // ""')
AUTHOR=$(display_name "$(jq -r .author <<<"$row")")
MERGER=$(display_name "$MERGER_LOGIN")
jq -c --arg repo "$NAME" --arg product "$PRODUCT" --argjson m "$m" \
--arg authorName "$AUTHOR" --arg mergerName "$MERGER" \
'. + {repo: $repo, product: $product, mobile: $m, authorName: $authorName, mergerName: $mergerName}' <<<"$row"
done >> /tmp/ls_prs.jsonl
done
jq -s --arg until "$UNTIL" '[.[] | select($until == "" or .mergedAt < $until)]' /tmp/ls_prs.jsonlFrom ptrandev/agent-skills, MIT.
More from ptrandev/agent-skills
- 0.592score
pointsgpt-support
ptrandev
Triages the PointsGPT #pointsgpt-support Slack alerts.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
review-pr
ptrandev
Reviews GitHub PRs where you are the requested reviewer, applying Phillip's engineering bar.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
ui-walkthrough
ptrandev
Walks a PR's UI changes and demonstrates its behavior changes in a real browser, judges what it sees, and posts the screenshots and video to GitHub as the…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
full-send
ptrandev
End-to-end feature workflow: take a Linear ticket or a raw idea, implement it, self-review, open a PR, address every bot review thread, then capture UI and…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
babysit-prs
ptrandev
Triages unresolved review threads on open PRs that you authored, fixes the safe ones, replies with the fixing commit, and leaves anything ambiguous open with…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
phillip
ptrandev
Self-review of the current uncommitted change against Phillip's engineering bar, before it becomes a PR.
SkillAFreshness: A★ 1Claude Code +9 - 0.579score
delegate
ptrandev
Tells the agent to hand work to subagents and stay the orchestrator.
SkillAFreshness: A★ 1Claude Code +9 - 0.552score
plain-english
ptrandev
Extracts the signal from bloated or evasive text: the bottom line, every claim with its strength marked, what it does not say, and what it implies without…
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
claude
ptrandev
Calls the Claude Code CLI for an independent review, adversarial challenge, or codebase consultation.
SkillBFreshness: B★ 1Claude Code +9 - 0.552score
mockup
ptrandev
Builds one self-contained HTML file that looks like the real product and walks a proposed change through every state, interactively, before the change is built.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
debrief
ptrandev
End-of-session confidence audit.
SkillBFreshness: B★ 1Claude Code +9 - 0.547score
skill-edit
ptrandev
Rewrites one skill file in this repository to the house style in AGENTS.md, without losing an instruction.
SkillBFreshness: B★ 1Claude Code +9
Signals
- Stars
- 1
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Sep 26, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/ptrandev/agent-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from ptrandev
- 0.592score
pointsgpt-support
ptrandev
Triages the PointsGPT #pointsgpt-support Slack alerts.
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
ui-walkthrough
ptrandev
Walks a PR's UI changes and demonstrates its behavior changes in a real browser, judges what it sees, and posts the screenshots and video to GitHub as the…
SkillAFreshness: A★ 1Claude Code +9 - 0.587score
review-pr
ptrandev
Reviews GitHub PRs where you are the requested reviewer, applying Phillip's engineering bar.
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
full-send
ptrandev
End-to-end feature workflow: take a Linear ticket or a raw idea, implement it, self-review, open a PR, address every bot review thread, then capture UI and…
SkillAFreshness: A★ 1Claude Code +9 - 0.584score
babysit-prs
ptrandev
Triages unresolved review threads on open PRs that you authored, fixes the safe ones, replies with the fixing commit, and leaves anything ambiguous open with…
SkillAFreshness: A★ 1Claude Code +9 - 0.580score
phillip
ptrandev
Self-review of the current uncommitted change against Phillip's engineering bar, before it becomes a PR.
SkillAFreshness: A★ 1Claude Code +9
Cite this page
launch-summary skill. Agent Mart. https://agentmart.dev/skills/ptrandev-launch-summary (last updated 2026-10-24)