qissue
Draft, review, and create one GitHub issue through the optional Qissue adapter and an existing gh CLI login. Use when the user asks to file or report a bug, feature request, or question, including "cr
SKILL.mdplugins/qissue-adapter/skills/qissue/SKILL.md
GitHubQissue
Create one reviewed GitHub issue without handling GitHub tokens inside QE. Keep QE responsible for deciding and explaining the work; delegate the external mutation to the bundled adapter script.
Workflow
- Run
command -v ghandgh auth status.- If
ghis missing, stop and show the platform-appropriate installation command. - If authentication is missing, stop and ask the user to run
gh auth login. Never request, receive, echo, or store a PAT.
- If
- Determine the issue type:
bug,feature, orquestion. Ask only when intent is ambiguous. - Draft a title of at most 80 characters and a focused body:
bug: reproduction, expected behavior, actual behavior, relevant bounded logs.feature: problem, proposed outcome, alternatives or constraints.question: context, attempts, and the unresolved question.
- Remove secrets, credentials, private URLs, and unrelated raw logs. Do not attach files unless explicitly authorized.
- Show the exact repository, label, title, and body. Obtain explicit confirmation before creating the issue.
- Invoke
scripts/create-issue.mjsonly after confirmation. Prefer sending this JSON request through the tool's stdin channel:
{
"repo": "inho-team/qe-framework",
"type": "bug",
"title": "short issue title",
"body": "focused issue body"
}
Resolve the script relative to this SKILL.md. In Claude, run node "${CLAUDE_PLUGIN_ROOT}/skills/qissue/scripts/create-issue.mjs"; in other clients, use the installed skill's absolute path. If the client cannot supply stdin directly, create one exact temporary JSON file through its filesystem-writing tool, pass --request-file=/absolute/path, and delete only that verified temporary file after the command finishes. Never interpolate user content into bash -c, sh -c, eval, or a shell command string.
- Return the created issue URL. On adapter failure, report the fixed error code and safe diagnostic; do not retry an external write without user approval.
Adapter contract
- Default repository:
inho-team/qe-framework; override only with a repository matchingowner/name. - GitHub host:
github.comonly. Authentication and creation are pinned to that host. - Accepted types and labels:
bug,feature,question. - The script appends bounded QE, OS, and Node environment metadata.
- The script calls
ghwith direct argv and--body-file=-; it never launches a shell. - Use
--dry-runbefore confirmation when a machine-readable preview is useful. Dry-run never callsgh. - Issue creation is the only authorized external mutation. Do not close, edit, comment on, or bulk-create issues.
Failure handling
QISSUE_GH_MISSING: install GitHub CLI, then retry.QISSUE_GH_AUTH: rungh auth login, verify withgh auth status, then retry.QISSUE_INVALID_REQUEST: correct the bounded request fields and preview again.QISSUE_CREATE_FAILED: show the adapter's bounded diagnostic and ask before retrying.QISSUE_INVALID_RESPONSE: creation returned no canonical GitHub issue URL; do not claim success.
Safety boundary
- Never collect GitHub tokens or ask the user to paste credentials into chat.
- Never build the
ghcall with shell interpolation. - Never create an issue before the explicit preview confirmation.
- Never include completion evidence, logs, or environment values that may contain secrets without redaction.