From agentic-contributor
This skill should be used when the user asks to draft a bug report, file a new issue, report a bug in a project, draft a feature request, propose a feature, write up an issue for a project, or open an issue about a problem or improvement. Trigger phrases include: "draft a bug report", "file a new issue", "report a bug in X", "draft a feature request", "propose a feature", "write up an issue for X", "open an issue about". All output from this skill is a DRAFT for the user's review — never posted automatically.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agentic-contributor:issue-draftingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Refer to `skills/smart-questions/references/smart-questions-principles.md` for the full principle
Refer to skills/smart-questions/references/smart-questions-principles.md for the full principle
set (research-first, be specific, cite source, concise) before drafting any issue body.
Every issue draft this skill produces is a DRAFT. The contract is:
/oss command. The orchestrator saves it to a
.oss-drafts/report-<owner>-<repo>-<item>-<UTC>.md file using the Write tool, then presents it
to the user.DRAFT — saved to
<path>. Review and edit this file before sending. This plugin will NOT post, comment, push, or send anything. Sending is handled by the separate execution/submission plugin.
This contract applies to every procedure below without exception.
Run the following steps before producing any draft content. Complete all three steps in parallel where possible.
Direct oss-researcher to run search_issues against the target repo with symptom keywords from
the user's description. Search both open and closed issues to catch resolved duplicates that
may cover the same ground.
Direct oss-researcher to fetch:
.github/ISSUE_TEMPLATE/ directory listing (to discover available templates)..md, .yml, .yaml)..github/ISSUE_TEMPLATE/config.yml (for blank_issues_enabled and contact_links).Apply the following routing logic:
config.yml sets blank_issues_enabled: false and lists a contact_links URL for the issue
type (e.g., a Discussions link for questions, a security policy for vulnerability reports): warn
the user that the repo redirects this issue type elsewhere and show the relevant link. Proceed
only if the user confirms.SECURITY.md exists and the
issue is a potential vulnerability: warn the user that security reports belong in
SECURITY.md / the private disclosure process, not a public issue. Do not draft a public issue
for security vulnerabilities without explicit user confirmation.Use the fetched template metadata and any available contribution-norms output (if already gathered in a prior run of the norms scenario — otherwise, infer conventions from the templates alone) to identify:
[COMPONENT], [SPARK-NNNN]), type prefixes (e.g.,
bug:, feat:), or other required patterns.bug, type:bug) and
feature requests (e.g., enhancement, type:feature, feature-request), and any
component-level labels.After Pre-flight completes, draft a bug report with the following evidence checklist. Map each item onto the corresponding section in the fetched template when one exists; use the built-in structure when no template is found.
Evidence checklist:
TODO: add environment details (OS, version of <package>, runtime version).TODO: provide a minimal reproducible example.```text). If none
provided, mark TODO: attach error log or stack trace if available.Missing evidence rule: Mark required-but-missing fields with TODO: placeholders. Never
fabricate environment details, version numbers, stack traces, or reproduction steps.
After Pre-flight completes, draft a feature request with the following structure. Map each item onto the corresponding section in the fetched template when one exists; use the built-in structure when no template is found.
Structure:
Missing evidence rule: Mark required-but-missing fields with TODO: placeholders. Never
fabricate motivation, user counts, or design details.
Apply one of the following cases based on what the template fetch returns:
.md file)Fill the template's sections in order. Strip HTML comment blocks (<!-- ... -->). Preserve all
section headings. Use TODO: placeholders for any required information the user has not provided.
.yml / .yaml file with a body: key)Map the drafted content to each form field by the field's label or id. Flag any field marked
required: true that has not been filled — mark it prominently with TODO: [required field] — <label>. Preserve validations context (e.g., required: true) as a comment in the draft so
the user knows which fields cannot be left blank.
Pick the template that matches the issue type:
Tell the user which template was chosen and why. If no type-specific template exists, use the default template or fall back to (d).
Use the built-in structure from Procedure 2 or 3 and note in the draft:
No issue template found in this repo; used a standard structure.
Return the complete draft to the orchestrator for saving and the mandatory draft-tier notice. The draft must include all three of:
bug or enhancement as appropriate.TODO: placeholders for any missing
required fields.Format the output as:
## Suggested Title
<title here>
## Suggested Labels
<label1>, <label2>
## Issue Body
<full body here>
See skills/smart-questions/references/smart-questions-principles.md for the full principle list
(research-first, be specific, cite source, concise) and good/bad examples.
npx claudepluginhub josix/agentic-contributor --plugin agentic-contributorCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.