gh-issue-draft
Skill0 starsChanged 26 days agoMITView on GitHub
File or rewrite a GitHub issue for this repository from a kind (bug, enhancement, feature, chore) and the facts for its body. Reads the matching issue template for sections and labels, writes the body in plain English, and runs gh issue create or gh issue edit. Use when asked to open, file, draft or rewrite an issue here.
In this repository14 other files it gives its agents.
- .claude/CLAUDE.mdCLAUDE.md
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-exploreSkill
- openspec-proposeSkill
- openspec-sync-specsSkill
- openspec-update-changeSkill
- codegraphSkill
- openspec-apply-changeSkill
- openspec-archive-changeSkill
- openspec-exploreSkill
- openspec-proposeSkill
- openspec-sync-specsSkill
- openspec-update-changeSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 5 are distinctive, and 6 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈5
Distinctive · estimate
This author's own choices. Worth a look.
6
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 36
Read the template file for the kind.
- Very specific: line 42
Search for a duplicate: gh issue list --state all --search "<title words> in:title" --limit 10.
- Very specific: line 49
Write the body to a file outside the repository, in the session scratchpad or a mktemp directory.
- Distinctive: line 51
Follow the writing rules below.
- Very specific: line 55
Create or edit the issue with one gh command, not chained with other commands:
- Very specific: line 57
create: gh issue create --title "<prefix><title>" --label <label> [--label area:<x>] --body-file <path>
- Very specific: line 73
Use can, will and must. Do not use should, would, may, might or could.
- Distinctive: line 75
Put a condition before its command: "If the build fails, read the log."
- Distinctive: line 76
Write "whether" for an open question, not a trailing "if".
- Distinctive: line 77
No contractions, no semicolons, no em dashes.
- Distinctive: line 79
Keep code, identifiers, commands, paths, quoted errors and product names exactly as they are, in backticks.
≈ “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
GitHub issue draft
This skill files one issue, or rewrites one, in this repository. It runs in a forked subagent on Haiku. It does not open pull requests and it does not post comments.
Inputs
The caller gives a kind, a title and the facts for the body. For a rewrite, the caller gives the issue number instead of a kind. Keep the kind an existing issue already has.
| kind | template | title prefix | label |
bug | .github/ISSUE_TEMPLATE/bug_report.yml | fix: | bug |
enhancement | .github/ISSUE_TEMPLATE/enhancement.yml | feat: | enhancement |
feature | .github/ISSUE_TEMPLATE/feature_request.yml | feat: | feature |
chore | .github/ISSUE_TEMPLATE/chore.yml | chore: | chore |
A chore title adds a scope in parentheses when the facts name one, for
example chore(test): ... or chore(ci): ....
Steps
- Read the template file for the kind. Each body element's
label:is a section heading, written as### <label>in that order. Adropdownsection holds one of itsoptions. Acheckboxessection reproduces every option as a Markdown checkbox, with[x]only where the facts support it. An element withvalidations.required: truemust have content. - Search for a duplicate:
gh issue list --state all --search "<title words> in:title" --limit 10. Name any related issue in the body as#<number>. Check the "Before submitting" box only after this search. - Pick area labels from
gh label list:area:ci,area:indexer,area:mcp,area:agentsorarea:ui, when the facts place the issue in one of those areas. Do not addneeds-triage(a workflow adds it), and do not add apriority:*orapproved-*label (the maintainer adds those). - Write the body to a file outside the repository, in the session
scratchpad or a
mktempdirectory. Never write it inside the repository. Follow the writing rules below. If a lint hook reports violations after the write, fix them and write again until it reports none. - End the body with the attribution lines from the session's instructions, verbatim. When the session gives none, add no footer.
- Create or edit the issue with one
ghcommand, not chained with other commands:- create:
gh issue create --title "<prefix><title>" --label <label> [--label area:<x>] --body-file <path> - rewrite:
gh issue edit <number> --body-file <path>, and--titleonly when the caller asks for a new title.
- create:
- Report the issue URL, the labels set, and any duplicate the search found.
Writing rules
The body is for a reader who was not in the conversation.
- Each section states facts with their evidence: a command and its output, a CI run id, a PR or issue number, a file path with a line number.
- One topic per paragraph, and at most six sentences per paragraph.
- A descriptive sentence has at most 25 words. An instruction has at most 20 words and gives one instruction.
- Active voice and simple tenses. Name the actor.
- Use
can,willandmust. Do not useshould,would,may,mightorcould. - Put a condition before its command: "If the build fails, read the log."
- Write "whether" for an open question, not a trailing "if".
- No contractions, no semicolons, no em dashes. Use "because", "but" or two sentences instead.
- Keep code, identifiers, commands, paths, quoted errors and product names exactly as they are, in backticks.
- A list is for three or more parallel items or steps. A table is for a comparison with the same columns per row.
- Say what is wrong or missing, not "TODO". Delete words such as "simply", "robust", "comprehensive", "leverage" and "in order to".
Repository notes
- A bug title starts with
fix:, and both feature and enhancement titles start withfeat:. The template'stitle:field is the source of truth when these change. - The chore template asks "Does this touch anything load-bearing?". Tick a box only when the change edits that artifact, and say in the body when a review reads one without changing it.
- An issue that a pull request will close is named in that PR as
Closes #<number>. A proposal-only PR saysRefs #<number>.
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.

