pr-board
Skill2 starsChanged 6 months agoApache-2.0View on GitHub
Answers "how are my PRs?", "did I address the review?", "anything waiting on me?". Lectio-first via authored-PR activity (reviews/comments by others, excluding your own replies), falls back to gh for coverage gaps, joins to local worktrees, prints a board of what needs you. Read-only.
In this repository43 other files it gives its agents.
- AGENTS.mdAGENTS.md
- CLAUDE.mdCLAUDE.md
- break-glassSkill
- claim-ledgerSkill
- contract-parity-auditSkill
- counterfactual-auditSkill
- design-doc-reviewSkill
- diagram-gen-emergentSkill
- diagram-gen-specSkill
- doc-triageSkill
- explain-workSkill
- feature-implSkill
- finding-triageSkill
- first-party-auditSkill
- gh-token-rotateSkill
- handoffSkill
- implementSkill
- jj-stackSkill
- linear-escalation-triageSkill
- mache-usageSkill
- park-workSkill
- pr-bucketsSkill
- prior-art-cartographerSkill
- problem-decomposerSkill
- pr-review-kitSkill
- pr-reviewSkill
- pr-suggestionSkill
- readme-restructureSkill
- repo-description-polishSkill
- repo-homepage-setSkill
- repo-social-previewSkill
- repo-topic-taggerSkill
- review-prepSkill
- review-queueSkill
- reviewSkill
- self-auditSkill
- structural-pr-reviewSkill
- surveySkill
- taskfile-ci-paritySkill
- test-fidelitySkill
- workflow-auditSkill
- work-scopeSkill
- writing-pr-descriptionsSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 2 are distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈2
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 80
Call memory_authored_activity with since_nanos = now − --since (default 24h).
- Distinctive: line 88
If it returns an empty/zero result, that's a real answer ("nothing new on your PRs since <t>") — report it, don't go hunting in gh to …
- Very specific: line 130
gh fallback (coverage gaps only): if a PR you know exists isn't in lectio's result, it's likely outside configured gh coverage …
- Distinctive: line 140
Read-only. This skill answers a question.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
pr-board — what's new on the PRs I authored
The recurring question this answers: "how are my PRs / did I address the
reviews?" — asked constantly during review cycles, and usually answered by
hand-rolling gh because nothing makes the better tool the default reach.
lectio already has the answer: memory_authored_activity is purpose-built for
"reviews and comments by other people on PRs I authored, since I last looked,
excluding my own replies." This skill makes that the default, keeps it
fresh, and adds the cross-source join (PR ↔ local worktree ↔ notes) that
only lectio can do.
Model: lectio is the substrate; this skill is the reach + freshness + presentation layer. lectio reports last-known state; the skill decides whether that's fresh enough and refreshes if not (the "derive current state" move). gh is the fallback for what lectio doesn't cover, never the first reach.
Three views of one question, and where the numbers come from. "Does anything need me?" is answered in three places, and it is worth knowing the lineage before you trust a number:
- Canonical Hours' own
pr-boardskill — scheduled (cron, default every five minutes), it triages pre-fetched lifecycle events intoneeds_you/active/opened/resolvedand writes the board. It is a renderer with judgment, not a crawler, and it has its own lectio connection for enrichment. This is where the board is produced. - The work HUD's needs-you dial and MY PRS panel — ambient display. The HUD reads a local work-board service, which reads the board Canonical Hours wrote. The dial does no triage of its own; it shows that work.
- This skill — the interactive mode. You ask, it refreshes, and it answers the follow-up an always-on dial cannot ("did I address the review?") by joining PR threads to your local worktrees.
Two substrates on purpose: lectio is historical and cross-source; Canonical Hours is a scheduled fold serving a current board. Reach for the dial to notice, and for this skill to act — and remember a stale dial usually means the tick did not run, not that nothing needs you.
Arguments
--since <dur>— window for "new activity" (e.g.24h,3d). Default24h.--pr <ref>— focus one PR (42090orowner/repo#42090); skips the board, deep-dives that PR's review thread + your reply status.--no-refresh— skip the freshness step (use lectio as-is; faster, possibly stale).
Phase 0 — Freshness (derive current state)
lectio's answer is only as current as its last gh sweep. Before reading,
make it fresh — this is now safe to run alongside the launchd sweep timer
(WAL + busy_timeout, lectio bead fa895f), so it won't error on a lock.
- Unless
--no-refresh:lectio sweep --source gh --if-stale 10m(also--source linear --if-stale 10mif the question touches Linear).--if-staleno-ops when gh swept within 10 min, sweeps otherwise — cheap to call every time. - Optional sanity read:
lectio status --jsonshows per-sourcelast_advanced_at— if gh is hours stale and the refresh didn't move it, the sweep service may be wedged (see lectio bead 0618a0); say so rather than silently reporting stale data.
If the
lectioMCP / CLI isn't available at all, skip to Phase 3 (pure gh fallback) and say up front that this is gh-only, no cross-source join.
Phase 1 — Ask lectio the authored-activity question
Call memory_authored_activity with since_nanos = now − --since
(default 24h). It resolves "mine" from your [identity] gh_logins (falls back
to gh.authors) — no need to pass authors. It returns, per PR you authored:
the PR (repo, number, title, state/merged), and the new items — reviews and
review-comments by people who aren't you, since the window — each with author,
path, preview, timestamp. Author attribution is present (lectio bead 380b79),
so "whose review" is answered without falling back to gh.
If it returns an empty/zero result, that's a real answer ("nothing new on your
PRs since <t>") — report it, don't go hunting in gh to manufacture activity.
Phase 2 — Join each PR to your local context (lectio's edge)
For each PR with new activity, a quick memory_search "<number>" (and/or
memory_traverse on the PR URI) surfaces the cross-source threads lectio
uniquely holds: your local review worktree (fs://…/<repo>-pr-<n>-review),
notes files, the commits that touch the same files, prior turns where you
discussed it. This is the value over gh alone — gh knows the PR, the
filesystem knows your worktree, lectio has both joined on one graph.
For --pr <ref>: skip the board, deep-dive this one — full review timeline
(memory_get_timeline on the PR URI), each reviewer's comments, and crucially
whether you replied after their latest comment (compare your latest
authored item's timestamp vs the reviewer's). That's the literal
"did I address the review?" answer.
Phase 3 — Present the board
One scannable block, sorted by what needs you most (unanswered reviews first):
PR board — new since <window> (gh swept <freshness>)
owner/repo#42090 — "title" — OPEN — ⚠ NEEDS REPLY
• Mark: 3 review comments (src/foo.rs, src/bar.rs) — 2h ago — you haven't replied since
• local: <worktree-path>/mono-pr-42090-review worktree, notes at <path>
owner/repo#39311 — "title" — OPEN — ✓ replied
• Carol: 1 approval — 1d ago
…
2 PRs with new activity · 1 needs your reply- What needs you: the short list where a reply or decision is pending — the actual point of the board.
- Attribution: name the reviewer (Mark, Carol) — it's in the data now.
- Cite URIs for claims drawn from lectio (per its epistemic contract), and flag any answer that's from stale data if Phase 0 couldn't refresh.
gh fallback (coverage gaps only): if a PR you know exists isn't in lectio's
result, it's likely outside configured gh coverage (memory_list_sources
shows the scopes). For that specific gap, gh pr view <ref> --json … — and
note it's a coverage gap worth adding to [[gh.repo]] or author_scoped, so
next time lectio has it.
Posture
Read-only. This skill answers a question; it never posts a reply, approves, or comments. When the board says "#42090 needs a reply," handing off to compose that reply is a separate, explicit step the user initiates.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

