本文へ移動
cccskills
無料GitHub で公開

write-pr

Use when creating or updating a pull request in this repository — how to fill in each section of the PR template with concise, reviewer-friendly content, including the behavior-change table.

インストール方法を見る

含まれるファイル(1)

  • SKILL.md6.4 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Write PR Description

Create or update the pull request for the current branch with a description that helps the reviewer understand why the change exists, the shape of the implementation, and what existing users lose.

Workflow

  1. Read the PR template:

    Read(.github/pull_request_template.md)

  2. Identify or create the pull request:

    • Check the current branch for an existing PR: gh pr view --json url,number,title,state 2>/dev/null.
    • If no PR exists, inspect git status --short --branch and the commits on the current branch.
    • Commit remaining changes, push the branch with an upstream, and create the PR with gh pr create.
    • Follow the repository's git safety rules: never commit to main directly; work lands through a PR.
  3. Gather the context needed to explain the change:

    • Read the linked issue and any relevant task artifacts.
    • Read the complete diff (git diff main...HEAD) and enough surrounding code to understand behavior and ownership.
    • Use gh pr view to collect PR metadata and changed files if the PR already exists.
  4. Write the description following the template sections. The body is in English, the PR title stays an English Conventional Commit, and changesets stay English (see the gen-changesets skill); section headings follow the template verbatim:

    • Related Issue — one line, or Resolve #<number>. Nothing more.
    • Problem — the user need or limitation in a sentence or two. Write See linked issue when the issue already covers it.
    • What changed — what you implemented and why the approach fits; prefer visual outline views (see below) over prose whenever they explain the change better.
    • Behavior Changes and Affected Users — fill the behavior table first, then list affected modules and test coverage; see "Behavior Changes and Affected Users".
    • Checklist — check every box that applies.
  5. Publish the description:

    • Save to a temp file, then gh pr edit <number> --body-file <path> or gh pr create --body-file <path>.
    • Confirm the update succeeded.

Behavior Changes and Affected Users

This section answers one question: after this merges, what do existing users lose? Most regressions in this repository came from nobody answering it, not from logic errors.

Criterion: any input that worked before the change — a config key, an environment variable, a command-line flag, a provider response shape, session data written by an older version, a client request, or a hook payload — must behave the same after it, unless the change is declared here with a way back.

How to write it:

  1. List every observable behavior the diff changes, one row each. Include behavior you consider "unchanged" whose branch conditions moved: does a new condition now match existing inputs before the old one; who reached a deleted or narrowed branch before. Internal packages ship in the CLI release; "internal" does not mean invisible to users. The table shape (example in English):

    BehaviorBeforeAfterWho relies on the old behaviorEscape hatch
    reasoning parsing when reasoning_details is an arraystring reasoning also readstring ignoredOpenAI-compatible gateways that send both formsnone
  2. Name populations, never "some users". Take them from .agents/skills/review-pr/surfaces.md: clients (TUI, print mode, desktop, web, inspector, VS Code, ACP, SDK), provider dialects, platforms, configuration states, data written by older versions, external scripts.

  3. Changed prompt text (system prompt, tool descriptions, reminders): one row per sentence — what the sentence enforced before, who relied on it, what enforces it now. "No test references the sentence" is not evidence of no impact.

  4. Replacements and bypasses (refactors, runtime rebinding, protocol swaps): additionally list the old path's feature inventory — which env vars it honored, which fallbacks it had, which inputs it accepted — and where each item lives in the new path.

  5. Genuinely no observable change: write None, with evidence — which branches, defaults, and contract files are untouched.

  6. After the table: affected modules and the test coverage for each row. A flipped default or a removed behavior must have a test pinning the old behavior for the population that keeps it, and a changeset naming what users lose (see the gen-changesets skill). When there is no way back, ask a maintainer to approve it explicitly in the PR.

Visual Outline for What changed

Prefer structural views over prose. Use the smallest combination that explains the implementation. Omit categories that did not change.

Show logic or algorithm changes as a pseudocode diff:

  on(save)
-   persist immediately
+   debounce 300ms then persist
+   mark state dirty

Show runtime control flow as a call tree diff:

  submitForm
    validate
    persist
+   trackAnalytics
+   if (subscribed)
+     subscribeToEvents

Show file responsibility changes as a shallow file tree diff:

  src/
    session/
      store.ts
+     selectors.ts
+     stream/
+       parse.ts

Show component or UI structure changes as a tree diff:

  <SessionPage>
    <SessionList />
+   <SessionToolbar />
    <MessageStream />
+   <SkillResultCard />
  </SessionPage>

Show component interaction, control flow, or data flow with Mermaid (especially useful for explaining bug mechanics):

sequenceDiagram
    UI->>Daemon: submit
    Daemon->>Worker: stream
    Worker-->>Daemon: chunk
    Daemon-->>UI: stream result

Show key data structure or type changes in a language-specific block:

interface SessionEvents {
  delta: string;
  done: boolean;
}

Rules for visual outlines:

  • Use diff blocks when the point is what changes and the surrounding shape already exists.
  • Show the complete target shape in a language-specific or text block when most of it is new or diff notation would obscure ownership or order.
  • Tell the story in the order that makes it easiest to understand — files first, or data structures first, whichever fits.
  • Write as one human talking to another: simple, coherent, concise language.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Use when developing in packages/agent-core-v2 (the DI × Scope agent engine) — adding or modifying a domain Service, choosing a LifecycleScope, wiring DI dependencies, splitting a domain across scopes, owning or migrating a config section, gating behavior behind an experimental flag, raising coded errors, working on the permission system, writing DI/Scope tests, porting business logic from agent-core (v1) to v2, triaging a main-branch commit against v2, or exposing a v2 domain over server-v2 while keeping the /api/v1 wire contract compatible with released clients. Self-contained guide organized by development stage (orient → design → implement → test → verify) plus align workflows for v1→v2 migration, main-branch commit triage, and server-v2 wire exposure; each file carries the rules, examples, and red lines for its step.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Apply an approved sub-skill grouping by moving user-specified skills into a parent bundle, with timestamped backups of every modified directory.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

dogfood

無料

Systematically explore and test a web application to find bugs, UX issues, and other problems. Use when asked to "dogfood", "QA", "exploratory test", "find issues", "bug hunt", "test this app/site/platform", or review the quality of a web application. Produces a structured report with full reproduction evidence -- step-by-step screenshots, repro videos, and detailed repro steps for every issue -- so findings can be handed directly to the responsible teams.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

electron

無料

Automate Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify, etc.) using agent-browser via Chrome DevTools Protocol. Use when the user needs to interact with an Electron app, automate a desktop app, connect to a running app, control a native app, or test an Electron application. Triggers include "automate Slack app", "control VS Code", "interact with Discord app", "test this Electron app", "connect to desktop app", or any task requiring automation of a native Electron application.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

Use when generating changesets in the pythinker-code repository — deciding whether to write one, which package to list, the bump level, the wording, and the confirmation workflow.

日本語の概要は準備中です。原文の説明を表示しています。

PyModel/pythinker-code292026年10月10日 更新

PyModel のスキルをすべて見る

このスキルの問題を報告する