К основному содержанию
скилл CX Codex

draft-issue-to-external-repository — скилл для Claude Code: issue

Готовит GitHub issue для репозитория, которым вы не владеете: изучает шаблоны и стиль проекта, уточняет замысел с вами и сохраняет текст в файл.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add dyoshikawa/rulesync --skill draft-issue-to-external-repository -a claude-code
Открыть на GitHub

Что делает draft-issue-to-external-repository

Скилл разбирает ваш запрос на два поля: target_repo в форме owner/repo и intent — сырую идею, которую он должен заострить. Если чего-то не хватает, он спросит. Для репозиториев под вашим собственным владельцем он не предназначен: там лучше create-issue или create-issue-with-websearch.

Дальше идёт разведка. Скилл смотрит описание репозитория, последние 20 issue в любом состоянии, список шаблонов в .github/ISSUE_TEMPLATE, доступные метки и, если есть, CONTRIBUTING.md. Параллельно он ищет первоисточники по теме через WebSearch и WebFetch, может обратиться к deepwiki MCP или отдать глубокое исследование субагенту. Утверждение, на котором держится черновик, он сверяет минимум с одним первоисточником, а расхождение двух источников выносит в текст, а не выбирает сторону молча.

Перед полным текстом скилл согласует с вами тон (предложение или прямая просьба), границы объёма, явные не-цели и цифры, если они нужны. Черновик пишется на языке разговора, финальная версия — только на английском, с сохранением таблиц и блоков кода. Публикация идёт через gh issue create, и вот тут стоит быть готовым к отказу: fine-grained PAT часто не даёт создавать issue в чужих репозиториях. Скилл не долбится повторно, а кладёт готовый текст в tmp/external-repository-issues/<owner>-<repo>-<slug>.md с метаданными сверху, чтобы вы опубликовали вручную.

Какие задачи решает

  • сформулировать issue в чужой репозиторий по его шаблону
  • узнать стиль заголовков и набор меток целевого проекта
  • проверить утверждение по первоисточникам до отправки
  • согласовать тон и границы предложения с автором
  • сохранить готовый текст, когда gh не имеет прав на публикацию

Примеры запросов агенту

  • Подготовь issue в owner/repo: хочу предложить новый интегратор
  • Собери черновик issue для owner/repo, тон — предложение, а не требование
  • Оформи issue в owner/repo и сохрани в файл, если запостить не получится

Как установить draft-issue-to-external-repository

1Через Skills CLI (Vercel)

npx skills add dyoshikawa/rulesync --skill draft-issue-to-external-repository -a claude-code

2Вручную: положить файлы

~/.claude/skills/draft-issue-to-external-repository/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/draft-issue-to-external-repository/

По шагам, с командами для каждой платформы: Как установить скилл в Claude Code: пять способов

Вопросы о draft-issue-to-external-repository

Как установить draft-issue-to-external-repository в Claude?

Выполните npx skills add dyoshikawa/rulesync --skill draft-issue-to-external-repository -a claude-code. Скилл окажется в ~/.claude/skills/draft-issue-to-external-repository/SKILL.md.

Что делает draft-issue-to-external-repository?

Изучает соглашения чужого репозитория и тему предложения, уточняет с вами объём и тон, а затем выдаёт финальный текст issue на английском.

Куда попадёт текст, если опубликовать не удалось?

В tmp/external-repository-issues/<owner>-<repo>-<slug>.md. Сверху файла будет блок с предлагаемым заголовком, целевым репозиторием и метками, которые применяет шаблон.

Исходный текст

SKILL.md · MIT
---
name: draft-issue-to-external-repository
description: >-
  Draft a GitHub issue targeting a third-party repository (outside this
  project's owner). Researches the target repo's conventions and the topic in
  depth, iterates with the user on scope and tone, and produces a final body
  saved to tmp/external-repository-issues/*.md for the user to post manually
  when gh auth lacks permission on the target.
targets:
  - "*"
---

arguments = the user's request

Parse `arguments` as:

- `target_repo`: the target repository in `owner/repo` form (or a URL)
- `intent`: the rough idea the user wants to propose (may be vague — this skill is designed to sharpen it)

If `target_repo` is not provided, ask the user which repository to file against.
If `intent` is not provided, ask the user what they want to propose.

This skill is for proposing a change to a repository **we do not own**. When the target is a repo under the user's own owner, prefer `create-issue` or `create-issue-with-websearch` instead.

## Step 1: Inspect the Target Repository

Before drafting anything, understand the target repo's conventions. Run in parallel:

- `gh repo view <owner/repo> --json description,url,defaultBranchRef,primaryLanguage,latestRelease`
- `gh issue list --repo <owner/repo> --limit 20 --state all --json number,title,labels,state` — read recent titles to learn the house style (prefix tags like `[FEATURE]`, casing, length).
- `gh api repos/<owner/repo>/contents/.github/ISSUE_TEMPLATE` — list templates. If a feature-request template exists, fetch it with `gh api` or a raw URL and note the required sections plus any auto-applied title prefix / labels.
- `gh label list --repo <owner/repo>` — note which labels exist (do not invent labels later).
- Optionally fetch `CONTRIBUTING.md` / `CODE_OF_CONDUCT.md` if present to catch any issue-filing rules.

If no issue template exists, plan to use a light structure (Problem / Proposal / Alternatives / Additional context) that mirrors common feature-request templates.

## Step 2: Research the Topic

Ground the proposal in primary sources before writing anything opinionated.

- Use `WebSearch` / `WebFetch` for official docs of the target project, release notes, and any pre-existing discussion (open/closed issues, PRs, RFCs).
- Use the deepwiki MCP (`mcp__deepwiki__ask_question`, `mcp__deepwiki__read_wiki_contents`) against the target repo for structural questions — it is often faster and more definitive than grepping manually.
- For deep or multi-angle investigation, delegate to a subagent (`Agent` with `subagent_type: "general-purpose"`) with a self-contained prompt. Ask for a definitive answer, not a hedged summary.
- Cross-check any claim the draft will rely on against at least one primary source. If two sources disagree, note the disagreement in the draft rather than silently picking a side.

## Step 3: Ground the Proposal in This Repo

If the proposal implies work on our side (e.g., a new target, a new integrator, a new feature), inspect this repository's state so the draft is accurate:

- Which features / directories / schemas exist here and will need to map to the target's concepts?
- Prefer targeted symbol and search tools over reading whole files.
- If the proposal includes popularity / adoption claims, verify the numbers before writing them down. For npm downloads: `curl -s "https://api.npmjs.org/downloads/point/<start>:<end>/<package>"`. For stars/forks: `gh repo view <owner/repo> --json stargazerCount,forkCount`.

## Step 4: Align with the User on Scope and Tone

Before drafting the full body, surface the design choices that most shape the final issue. Ask the user about:

- **Temperature**: "Please consider this" (proposal + offer) vs. "Please implement this" (request). This changes how forceful the body reads and whether to include an explicit implementation offer.
- **Scope boundaries**: minimum-viable vs. full surface. A small, shippable proposal is usually easier to get accepted; follow-ups can be called out explicitly.
- **Hard non-goals**: things deliberately out of scope. Name them so the maintainer doesn't have to ask.
- **Any claims that need numbers**: adoption stats, benchmarks, etc.

Iterate briefly — one or two rounds — until the scope is pinned down. Do not start drafting the full body while these are still open.

## Step 5: Draft in the Conversation Language First

Draft the body in the conversation language (typically Japanese for this user) so the user can review and correct efficiently. Keep the structure that the target repo's template dictates — if the template uses bold-heading prompts like `**Describe the solution you'd like**`, match that exactly. If there is no template, fall back to plain conversational paragraphs.

Style guidance:

- Write like a human teammate proposing to peers in another team, not like an automated bot.
- Lead with the problem and the "why", not with the solution.
- Use small, tight mapping tables when concepts map across systems — tables are much easier to read than a wall of bullets for that case.
- State open questions as concrete decisions the maintainer needs to make, each with the options considered.
- If an implementation offer is appropriate (confirmed in Step 4), close with a short, concrete commitment ("happy to put up the PR — new integrator, target profile, and tests against a sample package").
- Avoid filler like "Thanks for maintaining this great project!" unless genuinely warranted.

Iterate with the user on the draft until they approve it.

## Step 6: Translate the Approved Draft to English

All issue content (title, body, labels) **must be in English** regardless of the conversation language. Translate faithfully — do not "improve" content during translation. Preserve tables, code fences, and links verbatim.

Title conventions:

- If the target template auto-applies a title prefix (e.g., `[FEATURE] `), keep it.
- Otherwise pick a short, imperative title (under 70 characters) that names the change.

## Step 7: Try Posting, Fall Back to Disk

Attempt to create the issue directly:

```bash
gh issue create --repo <owner/repo> \
  --title "<title>" \
  --body-file <path to english body>
```

If the template auto-applies labels, do not pass `--label` (the template wins). If no template auto-applies labels, pass only labels that exist in the repo's label vocabulary gathered in Step 1.

If posting fails (common cause: fine-grained PATs cannot create issues on repos outside the user's owner — `Resource not accessible by personal access token`), do **not** retry blindly. Instead:

1. Save the final English body to `tmp/external-repository-issues/<owner>-<repo>-<slug>.md`, where `<slug>` is a short kebab-case summary of the proposal.
2. At the top of that file include a metadata block (before the issue body) with:
   - `# <suggested issue title>`
   - Target repo
   - Template path used (if any)
   - Suggested title
   - Auto-applied labels (from template frontmatter, if any)
   - A pre-filled new-issue URL of the form `https://github.com/<owner>/<repo>/issues/new?template=<template-filename>` when a template exists, otherwise `https://github.com/<owner>/<repo>/issues/new`
   - A `---` horizontal rule separating the metadata from the issue body
3. Report the path to the user and explain how to post (web UI paste, or re-authenticate `gh` with `gh auth login --web` and let this skill retry).

## Step 8: Report

Output:

- If posted: the issue URL, title, and any labels applied.
- If saved to disk: the absolute path of the saved file, the suggested title, and the pre-filled new-issue URL.
- A one-line summary of the proposal's scope (what's in, what's out).
- Any open questions the draft left for the maintainer to decide.

© dyoshikawa · MIT · dyoshikawa/rulesync

Похожие скиллы

Все скиллы по теме «Git и GitHub» →
gh-issue-sync mitsuhiko Синхронизирует GitHub Issues с локальными Markdown-файлами. Подходит для поиска, правок, создания и разбора задач из редактора или терминала. CX Codex +1 23 300установок oss-issue-triage Samuel Berthe Проектирует систему разбора issues и пул-реквестов под реальные силы команды мейнтейнеров: метки, приём заявок, сроки ответа, дежурства. CX Codex +1 10 400установок github-triage code-yeongyu Читает все открытые issues и PR в репозитории и пишет отчёты с доказательствами. Ничего не комментирует и не закрывает. CX Codex +1 2 700установок load-issues NeoLabHQ Скилл забирает все открытые issues текущего репозитория через gh и раскладывает их по отдельным markdown-файлам. Пригодится, когда нужно работать с задачами вне GitHub. CX Codex +1 1 200установок issue-create modelcontextprotocol Проводит создание issue в репозитории от проверки дублей до карточки на доске с приоритетом. Пригодится, когда работа нашлась по ходу задачи и её нужно завести отдельно. CX Codex +1 ★ 91 547звёзд репо github-issue-creator microsoft Превращает голосовые заметки, логи ошибок и скриншоты в структурированные баг-репорты в формате GitHub Markdown. Сохраняет готовые файлы в папку /issues/. 63установок

Из того же набора11

rebase-latest-main Скилл проводит агента по шагам: проверить ветку, сделать fetch, ребейзнуть на origin/main и разрулить конфликты. Полезен, когда ветка отстала от main. CX Codex +1 ★ 1 552звёзд репо prs-awaiting-author Показывает открытые пул-реквесты, по которым следующий шаг за автором: упал CI, не отвечены замечания ревью, ждёт ответа вопрос мейнтейнера. CX Codex +1 ★ 1 552звёзд репо porting-another-repository Разбирает фичу в текущем репозитории и правила целевого, а потом пишет план переноса в tmp/ — файлами, которые вы применяете руками. CX Codex +1 ★ 1 552звёзд репо goal-release Ведёт релиз целиком: открывает PR, ждёт зелёный CI, мержит и обновляет формулу Homebrew. Пригодится, когда версию надо выпустить одной командой. CX Codex +1 ★ 1 552звёзд репо git-worktree-runner Скилл учит агента управлять git worktree через CLI-обёртку gtr: создавать, открывать в редакторе, запускать команды и удалять. CX Codex +1 ★ 1 552звёзд репо create-issue Скилл, который оформляет GitHub issue по шагам: собирает данные, изучает код, пишет описание на английском и ставит метки. Пригодится, когда лень вручную разбираться с шаблоном и gh label list. CX Codex +1 ★ 1 552звёзд репо clean-branches Скилл проходит по локальным веткам git, находит слитые и осиротевшие и удаляет их по одной, с отчётом в конце. CX Codex +1 ★ 1 552звёзд репо batch-all-issues Скилл проходит по всем открытым issue по одному: проверяет факты через веб-поиск, закрывает ненужные и доводит остальные до merge. CX Codex +1 ★ 1 552звёзд репо

Спонсоры проекта

Компании, которые помогают держать аналитику открытой