agentleFS
dannys-code-cornerdannys-code-corner/incan/.agents/skills/create-github-issue/SKILL.md

create-github-issue

Skill73 starsChanged 5 days agoApache-2.0View on GitHub

Drafts a GitHub issue title and body using the target repository's issue templates under .github/ISSUE_TEMPLATE. Use when the user asks to create, draft, or file a GitHub issue, bug report, feature request, chore, documentation issue, or RFC proposal, or wants issue text that matches the repo's template.

7 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

6 rules. 0 are common, 4 are distinctive, and 2 are very specific to this project.

  • 0

    Common

    Most of the 6 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If multiple fit or none fit, list the available name values and ask the user to pick.

    line 20
  2. Distinctive:

    Before creating or updating an issue, manually scan the title and body for these banned patterns:

    line 36
  3. Distinctive:

    Use these replacements instead:

    line 44
  4. Distinctive:

    If the only known command uses an absolute local path, rewrite it before publication.

    line 51
  5. Distinctive:

    Use complete sentences. Do not leave required sections empty without calling that out.

    line 69
  6. Very specific:

    Steps: Use IncQL/.github/ISSUE_TEMPLATE/feature_request.yml (or the repo’s equivalent).

    line 106

“Common” is measured: kept by at least 6 in 10 of the 6 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

GitHub issue draft (repository templates)

Workflow

  1. Identify the repository root — Use the path the user gives, or infer from context (e.g. incan/, IncQL/). If unclear, ask which repo the issue is for.
  2. Discover templates — List .github/ISSUE_TEMPLATE/*.yml in that repository. Ignore config.yml (it only configures the template picker, not form fields).
  3. Choose the template — Match the user's intent to a file by reading each YAML's name and description:
    • Bug → usually bug_report.yml
    • Feature → feature_request.yml
    • Refactor / CI / deps / cleanup → chore.yml
    • Docs → documentation.yml
    • RFC / large language or tooling change → rfc_proposal.yml
      If multiple fit or none fit, list the available name values and ask the user to pick.
  4. Read the selected YAML — Parse the form from disk. Do not assume field names or area dropdowns match another repository; IncQL, Incan, and other repos differ (e.g. "Area" options).
  5. Gather facts from the user or codebase — Reproduction steps, expected vs actual, versions, logs, links to files/RFCs, acceptance criteria. If the user is reporting work discovered while coding, use file paths, commands run, and error text from context.
  6. Produce the draft — See Output format. For YAML body block semantics (markdown vs textarea vs dropdown vs checkboxes), use reference.md.
  7. Run the public text safety gate — Before showing the draft to the user or calling any GitHub issue creation/update tool, inspect the exact title and body that will be published. Public issue text must not contain local absolute paths, personal workspace paths, usernames from local paths, machine-specific temporary directories, shell prompts, or environment details that are not needed to reproduce the issue. Replace them with repo-relative paths, generic commands, or neutral placeholders.
  8. Optional: related PR or branch — If the issue tracks follow-up work, mention the branch or PR link in the body where the template has a freeform section.

Public Text Safety Gate

GitHub issues are public by default and edits may remain visible in history. Treat the first publication as permanent.

Before creating or updating an issue, manually scan the title and body for these banned patterns:

  • local absolute paths, including /Users/..., /home/..., /private/..., /tmp/..., and C:\Users\...
  • personal workspace segments copied from a local checkout path
  • commands that invoke a binary through an absolute local path
  • local machine usernames, hostnames, shell prompts, or editor-specific transient paths
  • private notes, agent state paths, scratch files, or temporary repro directories

Use these replacements instead:

  • repo-relative paths such as examples/session_read_transform_write_csv.incn
  • generic commands such as incan run examples/session_read_transform_write_csv.incn
  • neutral environment descriptions such as macOS, Linux, release/v0.3, or Incan 0.3.0-rc6
  • short repro files embedded directly in the issue body when possible

If the only known command uses an absolute local path, rewrite it before publication. Do not publish first and clean it up afterward.

Fallbacks

  • No *.yml forms — Use .github/ISSUE_TEMPLATE/*.md if present; mirror its headings and guidance.
  • No templates at all — Use a minimal structure: Summary, Steps / context, Expected vs actual (bugs) or Problem, Proposal, Acceptance criteria (features), and state that the repo has no issue templates.

Output format

Return markdown the user can paste into GitHub (blank issue or “Open a blank issue”), plus metadata lines:

  1. Suggested title — One line. Use the YAML title prefix when present (e.g. bug - short subject).
  2. Labels — If the YAML defines labels:, list them for the user to add in the GitHub UI.
  3. Issue type — If the YAML defines type: (e.g. Bug, Feature), mention it for GitHub’s issue type field when applicable.
  4. Body — For each form block in order:
    • Render markdown blocks as-is.
    • Render textarea / input / dropdown / checkboxes as ## {label} sections with filled content (see reference.md).

Use complete sentences. Do not leave required sections empty without calling that out.

Examples

Example: Bug (conceptual)

User: "Draft an issue for incan: the compiler crashes on empty match arms."

Steps: Open incan/.github/ISSUE_TEMPLATE/bug_report.yml, map Area / Summary / Reproduction / Output / Environment.

Fragment of output:

**Suggested title:** bug - Compiler panic on empty match arms

**Labels:** bug

## Area

- Compiler (frontend/backend/codegen)

## Summary

Expected: Typechecker or parser should report a clear diagnostic for empty match arms.
Actual: Compiler panics with ...

## Reproduction steps

1. Create `repro.incn` with ...
2. Run `incan build repro.incn`
...

Example: Feature (conceptual)

User: "Feature request for IncQL: add substrait export helper."

Steps: Use IncQL/.github/ISSUE_TEMPLATE/feature_request.yml (or the repo’s equivalent). Fill Problem statement, Proposed solution, Alternatives, Scope — using IncQL-specific areas from that file’s dropdown.

Quality checklist

  • Template file was read from the correct repo; config.yml was not used as the form.
  • Dropdown and checkbox options match that file’s YAML, not another project’s.
  • Required sections are filled or explicitly flagged as missing.
  • Title prefix and labels match the YAML when present.
  • Public text safety gate passed on the exact issue title/body before publishing.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.