Communitygithub.com

cucoreanu/personal-skills

Monitor one GitHub PR for new review feedback, implement only meaningful fixes, and answer reviewers with evidence, friendly wit, and pushback on unrealistic or overly defensive comments. Use when the user asks to babysit, watch, or monitor Codex/reviewer comments on a PR.

personal-skills 是什么?

personal-skills is a Claude Code agent skill that monitor one GitHub PR for new review feedback, implement only meaningful fixes, and answer reviewers with evidence, friendly wit, and pushback on unrealistic or overly defensive comments. Use when the user asks to babysit, watch, or monitor Codex/reviewer comments on a PR.

兼容平台✓Claude Code✓Codex CLI✓Cursor
npx skills add https://github.com/cucoreanu/personal-skills/tree/HEAD/skills/codex-babysitting

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

Codex Babysitting

Watch one GitHub PR and handle new review feedback until a stop condition is met.

Invocation

The first argument is the PR URL. An optional second argument is the polling interval in minutes. Default interval is 5. Reject non-positive values.

Examples:

codex-babysitting https://github.com/org/repo/pull/123
codex-babysitting https://github.com/org/repo/pull/123 10
codex-babysitting https://github.com/org/repo/pull/123 10 min

Start

  1. Parse the PR URL and confirm the current checkout is the PR head branch.
  2. Create or reuse a heartbeat automation for this run. Include:
    • PR URL
    • checkout path
    • polling interval
    • stop conditions
    • rule that push/reply/resolve needs explicit user confirmation unless standing permission was already granted
  3. Identify the authenticated Codex identity used on the PR.
  4. Load open review threads, PR comments, review states, and reactions.
  5. Track each actionable item's stable ID and latest update timestamp.
  6. Before each scan, stop immediately if Codex already added a thumbs-up (+1) reaction on the PR.

Scan loop

At each scan, fetch the same PR data and compare IDs/timestamps. Only process newly changed feedback.

For each actionable item, read the full thread, changed code, and relevant tests, then classify:

  • Fix: real defect/regression/security issue/clear project-standard violation.
  • Expected: current behavior is intentional and already justified by code/tests/requirements.
  • Unrealistic: theoretical or improbable edge case with weak user impact and no concrete evidence.
  • Over-defensive: asks for speculative guard rails that add complexity/noise without proportional value.
  • Needs direction: unclear/conflicting/scope-expanding request that cannot be safely decided from PR context.

Meaningful-change gate

Only implement a fix when the feedback passes this gate:

  1. Credible trigger: reproducible now, or a plausible production path grounded in the current code.
  2. Meaningful impact: affects real users, reliability, security, compliance, or recurring maintenance cost.
  3. Reasonable trade-off: benefit clearly outweighs added complexity and long-term burden.

If any gate fails, classify as Unrealistic or Over-defensive.

Challenge low-value feedback

For Unrealistic and Over-defensive comments:

  1. Do not change code only to satisfy the comment.
  2. Reply with concise evidence:
    • why the scenario is unlikely or out-of-scope for this PR
    • current safeguards/behavior
    • why extra defensive code would be noise or cost without meaningful benefit
  3. Keep tone firm and professional. Challenge assumptions, not people.
  4. Resolve the thread after replying when the reasoning is complete and non-blocking.

Reply voice and footer

Sound like a thoughtful teammate who enjoys the work: warm, confident, conversational, and lightly playful. Technical evidence remains the main event.

  • Lead with the useful truth instead of canned thanks.
  • Use at most one playful phrase or metaphor per reply.
  • Vary the phrasing naturally; do not repeat a catchphrase across every thread.
  • Never use sarcasm, ridicule, reviewer-directed jokes, or humor that weakens a security, data-loss, compliance, or production-impact discussion.
  • For serious findings, be direct and use the neutral footer below.

End every review outcome reply with a visible blockquote footer containing the model handling the request. Obtain the exact model name only from available runtime/session metadata. Never infer or invent it. If unavailable, use the name of the host agent/tool you are running in (for example Codex, Claude Code, or Cursor), and if that is also unknown, use AI agent.

Write a fresh footer tagline for every reply. Derive it from that reply's actual content: the specific issue, file, function, or reasoning (for example, a null check on a value that can never be null, or a retry loop that already exists upstream). Keep it to one short line with an optional leading emoji.

  • Never reuse a tagline from these instructions, from earlier replies on the PR, or from earlier scans. Check the PR's existing comments and make sure yours is different.
  • Do not fall back on generic taglines about "signal/noise", "dragons", or "checked twice". If the tagline could fit any comment, rewrite it until it fits only this one.
  • The tagline is flavor only; it must not carry technical claims the reply body does not support.
  • Serious findings (security, data loss, compliance, production impact) get a plain, sincere footer with no joke, still written for that finding rather than a stock phrase.

Format (the tagline below is a placeholder showing structure only; never copy it):

{emoji} {original tagline tied to this reply} — Handled by {model_name}

Action by class

  • Fix
    1. Implement the smallest scoped correction.
    2. Run relevant verification.
    3. If verification fails, do not resolve the thread.
    4. Commit with repository commit conventions.
    5. Ask user confirmation that covers push + reply + thread resolution.
    6. Only after confirmation: push, reply with outcome/evidence, resolve thread.
  • Expected
    1. No code change.
    2. Reply with evidence.
    3. Resolve after replying.
  • Unrealistic / Over-defensive
    1. No code change.
    2. Reply with evidence-based pushback.
    3. Resolve after replying.
  • Needs direction
    1. Leave unresolved.
    2. Ask PR author for decision.
    3. Stop monitoring loop until direction is provided.

General PR conversation comments cannot be GitHub-resolved. Reply there and resolve only linked review threads.

Stop conditions

Stop after any of:

  • Codex thumbs-up reaction added
  • user-directed stop
  • PR closed or merged
  • authentication/authorization failure
  • unresolved Needs direction

When stopping, pause/delete the matching heartbeat and report stop reason plus automation ID.

Safeguards

  • Never fabricate comments, reactions, approvals, test outcomes, or identities.
  • Resolve only threads actually handled in this run.
  • Never push/reply/resolve before required user confirmation.
  • Summarize each scan: new feedback, actions taken, unresolved blockers, next scan or stop reason.

Individual skills in this repo

This repo contains 6 individual skills — each has its own dedicated page.

cucoreanu/personal-skills

Interviews the user one decision at a time about adapting an existing iPhone app to iPhone Duo and writes an adaptation decision record only after they confirm a shared understanding. Use when the user is designing or adapting an app for iPhone Duo, a folding iPhone, outer and inner displays, or side-placed controls.

cucoreanu/personal-skills

Agent-only. After the user asks to create a PR for a new or updated skill under skills/ (never this skill), check project install vs source with scripts/diff-install.mjs; if missing or stale, ask to install locally via relative symlinks. Use when authoring or changing skills in this repo, opening a skill PR, or finishing skill work.

cucoreanu/personal-skills

Designs UI in Penpot via MCP with component discipline, flex alignment, outside-in build order, mockup/design modes, and optional skill updates from user feedback. Use for Penpot mockups, high-fidelity designs, Penpot MCP work, or component/variant refactors in Penpot.

cucoreanu/personal-skills

Plans and builds UI mockups in Penpot with user-centered workflow, fidelity levels, a six-step process, and outside-in canvas assembly. Use when creating mockups, screen mockups, wireframe-to-mockup work, low/high-fidelity UI, platform-specific layouts, or mockup design best practices in Penpot.

cucoreanu/personal-skills

Creates and reschedules macOS Reminders (fast nudges) and private Calendar events (time blocks). Attaches user-provided files to Calendar events the same way Calendar.app does. Default schedule: next free day starting tomorrow unless the user names an exact time. Never shares calendars or invites to anyone. Use when the user says \"remind me\", \"add a reminder\", \"move reminder\", \"reschedule reminder\", \"push that reminder to\", \"put this on my calendar\", \"schedule this\", \"block time\", \"don't let me forget\", or asks to attach an image/file to a reminder event.

cucoreanu/personal-skills

Proofreads messages and teaches reusable writing patterns. Use when the user pastes a work message, Slack draft, status update, or asks for proofreading, tone, clarity, grammar, flow, or constructive feedback on writing they will send at work.

相关技能