一键导入
dev-sync-summary
Turn a Pony Development Sync meeting summary into a fact-checked comment on the open "Last Week in Pony" issue
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Turn a Pony Development Sync meeting summary into a fact-checked comment on the open "Last Week in Pony" issue
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create a new "Last Week in Pony" blog post from the open GitHub issue
Ensemble review of ponylang blog and Last Week in Pony prose. Runs lens personas in parallel — house voice, agency, narrative, reader-orientation, tightness, content-honesty, plus a conditional accuracy lens — checks the draft against the AGENTS.md editorial guidelines and the craft rules, and returns Fix/Park findings. Self-contained: no dependency on any other skill. Load after a draft exists, before the post PR.
| name | dev-sync-summary |
| description | Turn a Pony Development Sync meeting summary into a fact-checked comment on the open "Last Week in Pony" issue |
| disable-model-invocation | true |
Turn a raw Pony Development Sync meeting summary (for example, a Zoom AI recap) into a polished, fact-checked comment on the open "Last Week in Pony" issue.
This skill produces raw material, not a finished post. The comment it writes
lands on the open "Last Week in Pony" issue, where the lwip skill later reads
it (alongside the week's other comments) and weaves it into the blog post. Your
job here is one comment: an accurate, readable recap of one Pony Development
Sync. You are not writing the post.
This is the whole job. Get it wrong and you have poisoned the raw material that the post is built from.
Every factual claim in the comment must come from a verifiable source: the raw
summary itself, a linked PR/issue/RFC confirmed with gh, git history, or the
user. This applies to more than the obvious facts. It applies to PR and RFC
numbers, to their titles, to the relationships between items ("fixes the same
bug as", "the opposite of", "stacked on"), to who attended or said what
(including who was driving the "Main Pony" host identity — see Inputs), and to
every characterization — "intermittent", "crash", "long-standing", "minor",
"affects everyone". Duration, severity, history, and impact are factual claims.
If you cannot substantiate one, do not write it.
A raw meeting summary is often machine-generated and lossy. It will mangle
identifiers ("Pony C" for ponyc), guess at titles, and state relationships
nobody confirmed. Treat it as a set of leads to verify, not as copy to polish.
When the summary is ambiguous, when something will not verify, or when you feel yourself reaching for a plausible-sounding detail to smooth a gap: stop and ask the user. Multiple rounds of questions are expected, not a failure. Correctness beats getting a draft up fast. Turn it into an interview if you need to.
Never invent a type name. Never assert a relationship you have not read. Never guess a repository or a number. The numbered steps below place the stop-and-ask gates where they actually bite.
You need three things from the user:
If any are missing, ask before proceeding. If the recording is not posted yet,
do not invent or guess a URL — ask whether to wait for it, omit the Recording:
line, or use a placeholder the user gives you.
Always ask who hosted as "Main Pony." "Main Pony" (often just "Main") is the shared host identity for the sync — usually Joe, but sometimes Sean or someone else. It is a role, not a fixed person, so never assume who it was, and never render the literal "Main Pony" as if it were a name. Ask every time. You only need their real name in the comment when you attribute something specific that Main said or did, but ask up front so the name is on hand and you never guess.
Write in the team's collective voice — "we" — in Sean's prose style: flowing
narrative, varied sentence length, opinions stated plainly, no AI tells. It is a
recap of a group meeting, so "we" is the subject. Do not write it in the
first person "I"; that voice belongs to the finished post, which lwip frames
itself.
For the voice, follow the inline guidance above. From this project's AGENTS.md,
take only two things: the tone notes (Hemingway-esque, conversational, not
clipped) and the owner/repo reference convention. Ignore the blog-post format in
AGENTS.md (front matter, ## Items of Note, footer) — that is for the published
post, not for a comment. AGENTS.md is already in context via the project
CLAUDE.md, so reference it; do not copy it in.
No feature checklists. No choppy sequences of disconnected facts. If a paragraph would lose nothing as a bullet list, rewrite it.
Cite every PR, issue, and RFC as owner/repo NNNN, rendered as a markdown link
to its canonical URL — for example, [ponylang/ponyc 5431](https://github.com/ponylang/ponyc/pull/5431).
No bare "PR 5431"; no one owns a number any more than they own a name.
Always resolve the real title with gh. Never trust the number-to-title mapping
in the raw summary. RFCs live in ponylang/rfcs and may be issues or pull
requests — check which before you link. (In the worked example below, "RFC
232" was issue #232, not a PR.)
Gather inputs. Confirm you have the summary, the date, and the recording URL, and ask who hosted as "Main Pony" this meeting (see Inputs). Ask for anything missing.
Extract and verify every reference. Pull every PR/issue/RFC number out of
the summary. For each, confirm it with gh:
gh pr view N --repo ponylang/ponyc --json title,urlgh issue view N --repo OWNER/REPO --json title,urlCapture the real title and canonical URL from gh, not from the summary.
Stop gate: if a number does not resolve — wrong repo, typo, transposed
digits — do not guess the repo or change the number. Ask the user.
Verify every claimed relationship. Wherever the summary (or your draft) says two items relate — a contrast, a cause, "fixes the same bug", "the opposite symptom", "stacked on" — read the PR bodies (and the diffs if you need them) and confirm the claim holds. Fix it, drop it, or ask. Do not ship a relationship you inferred from titles alone.
Verify characterizations. For every "intermittent", "crash", "long-standing", "minor", "affects everyone", and the like, confirm it against the PR/issue or ask. Drop what you cannot substantiate.
Write the narrative. Team "we", Sean's prose style. Open with a sentence
that frames the shape of the sync, then walk the items with connective
tissue between them. Cite each reference as owner/repo NNNN linked to its
URL. When you attribute something to "Main", use the real name from step 1,
never "Main Pony" or "Main".
Find the open issue. Run:
gh issue list --repo ponylang/ponylang-website --label last-week-in-pony --state open
Stop gate: if this returns zero issues or more than one, do not pick one. Ask the user which issue to use (or to open one).
Guard against duplicates. Read the open issue's comments
(gh issue view N --repo ponylang/ponylang-website --json comments). If one
already begins with {Month Day, Year} Pony Development Sync. for this date,
stop and ask before adding a second — this skill always creates a new
comment, so a re-run would otherwise duplicate.
Pre-post checks. Before posting:
Post the comment. Write the body to a temp file under ~/tmp (create the
directory first with mkdir -p ~/tmp if it is missing) and post a new
comment:
gh issue comment N --repo ponylang/ponylang-website --body-file ~/tmp/dev-sync-comment.md
Use the format:
{Month Day, Year} Pony Development Sync.
Recording: {url}
{narrative}
Report the comment URL to the user, then delete the temp file.
A real run, from the June 10, 2026 sync.
The raw input was a Zoom recap — lossy and not to be trusted as copy:
The meeting focused on reviewing several pull requests and RFCs related to Pony programming language development. Sean presented PR 5431, which proposes splitting one pointer type into two distinct types [...] They also reviewed PR 5420 fixing intermittent crashes during multi-threaded compilation, PR 5423 rejecting self-referential if-type constraints in lambdas and object literals, and PR 5443 fixing incorrect rejection and crashes for if-type conditions inside lambdas. The conversation ended with a brief discussion of RFC 232 regarding allowing optimization options when using Pony C [...]
The posted comment, after verification:
June 10, 2026 Pony Development Sync.
Recording: https://vimeo.com/1200285225
This week's sync was mostly a pass through the review queue, with one larger design conversation up front.
That design conversation was ponylang/ponyc 5431, which splits our single pointer type in two. [...]
Pointerkeeps the memory Pony owns and manages.UnsafePointertakes the foreign memory crossing the FFI boundary. [...]From there it was the queue. ponylang/ponyc 5420 fixes the intermittent crashes we'd been hitting when compiling on multiple threads at once. The next two land on opposite sides of the same corner of the language. ponylang/ponyc 5423 starts rejecting self-referential
iftypeconstraints inside lambdas and object literals [...]. ponylang/ponyc 5443 goes the other way [...].Last on the agenda was ponylang/rfcs 232, about allowing optimization options when using ponyc. [...]
What the verification changed, and why each step exists:
ponyc — the recap mangled the identifier. Step 2.gh, not the recap. The recap's "fixing
incorrect rejection and crashes for if-type conditions inside lambdas" was
missing "and object literals", which ponylang/ponyc 5443's real title
includes. Step 2.ponylang/rfcs 232 links to
/issues/232. Guessing /pull/232 would have 404'd. Step 2.iftype is the real keyword, not "if-type". Voice/accuracy.