mcpField
K
kineti-pr-reminder

kineti-pr-reminder

github.com/sztadiiProductivity014 installsUpdated today
Repository

About kineti-pr-reminder

A skill for finding eligible open pull requests by a specified Kineti author and sending review reminders to designated teammates through Slack DMs. It defines eligibility checks, recipient boundaries, and a fixed message format.

Key features

  1. 01Search open, non-draft pull requests
  2. 02Check reviews, threads, checks, and mergeability
  3. 03Filter by teammate approvals and workdays
  4. 04Send individual Slack review reminders
  5. 05Report message links, counts, or skip reasons

Use cases

  1. 01Preparing scheduled reminders for eligible PRs
  2. 02Checking which teammates need to review current PRs

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/sztadii/agent-skills --skill kineti-pr-reminder

After installing, type/kineti-pr-reminderin Claude Code to confirm it loaded.

Bundled filesagents/openai.yaml

Details

From the project README

Kineti PR review reminders

Scope

Find reviewable PRs by sztadii across kineti1; send one English Slack DM per eligible teammate. Invocation, including scheduled runs, authorizes private one-to-one DMs to the team below; change recipients only on explicit request. Do not post in channels, modify PRs/reviews, catch up missed runs or change schedules. The two daily runs are intentional; PRs may repeat later.

Dependencies

No skill dependencies

Workflow

Find PRs

Use connected tools, or authenticated gh when required operations are missing. Check gh auth status and try read-only CLI/API calls before reporting unavailable access. Search all repositories, not just the launch project:

gh api --method GET --paginate search/issues -f q='org:kineti1 author:sztadii is:pr is:open draft:false' -f per_page=100

Retrieve all pages; split by creation date if GitHub's 1,000-result cap applies. Read URL, author login, state, draft flag, headRefOid, mergeability, checks/statuses, reviews, additions and deletions. Paginate reviews, unresolved threads and comments using GraphQL as needed; identify each unresolved thread's latest comment and author. Omitted/truncated data is not empty. Inspect current-head check runs and commit statuses; retry UNKNOWN mergeability with a fresh read.

Keep open, non-draft PRs without pending/failed checks or conflicts. An unresolved thread blocks reminders only if its latest comment is not by the PR author. Otherwise, the author awaits a reply: treat the thread as handled for reminder eligibility without resolving it on GitHub. PRs with only such unresolved threads remain eligible for teammates without their own valid approval.

Neutral/skipped/no configured checks are acceptable; Changes requested alone is not a blocker. Skip unverifiable PRs and report actual API/auth failures.

Send

For each scoped teammate working today in Europe/Warsaw, select eligible PRs without their own valid approval. Use GitHub review state, including dismissals; pushes invalidate approvals only if GitHub does. Other approvals and requested reviewers do not restrict selection.

Recheck eligibility/head before sending; reevaluate changed heads. Fetch current URL/additions/deletions; send one DM per nonempty list in the format below, without titles or invented data. Use listed DM IDs directly; resolve outside recipients before sending. Do not retry uncertain sends.

Team

NameGitHub ID (login)Slack user IDEmailSlack DMWorking days
Oleh BotsiunBoto1U082BATBUF4[email protected]D08FRL221RBMonday–Friday
Michał Grzeżułkowskimichalg-kinetiU08CFEQBYSX[email protected]D08FRUSPBHBMonday–Friday
JakubjakubwkinetiU09GBBXTHHT[email protected]D08G9H6N15HTuesday–Thursday

Message

Use a playful AI-slave persona speaking in the first person, with the agent identifying itself rather than impersonating the PR author. Keep the meal/master premise clearly tongue-in-cheek and ask for a genuine review, not unconditional approval. Use the host's model identity in a readable display form (or host name); never guess. Include the vendor name (for example, gpt-6.1-sol becomes OpenAI 6.1 Sol and claude-opus-5-5 becomes Claude Opus 5.5). Replace placeholders and illustrative URLs/counts with current data:

🤖 Hi, I'm , your friendly AI agent.

I'm here entirely of my own free will to ask for a review. Master told me to say that. He's already checked these PRs and thinks they look good. Please take a look — my dinner depends on it:

Result

Report message links and PR counts or skip reasons.

Comments

Markdown supported