Install
$ agentstack add skill-diversioteam-agent-skills-marketplace-github-ticket ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
GitHub Ticket Skill
When to Use This Skill
Use this Skill when you want to:
- create GitHub issues without opening the browser
- capture backlog work quickly with smart defaults
- fetch or list issues across
monolithand a small repo set - view your assigned work
- route planning work into repo-local execution issues
- add created issues to
Diversio Workwith the right board fields - keep GitHub issue creation skill-driven instead of form-driven
This Skill is the GitHub-native replacement for the old clickup-ticket workflow. Issue forms in monolith are a human fallback and a schema reference, not the primary creation path.
Prerequisites
Before doing anything else:
- Run
gh auth status. - Confirm
ghis authenticated for the right GitHub account. - Confirm the token has the scopes needed for the requested action:
repofor issue read/writeread:orgfor org visibilityprojectwhen project add or field hydration is expected
- Fail fast if
ghis missing or unauthenticated.
Preferred auth model:
- normal
ghlogin - no plugin-specific token in the common case
- if project hydration is part of the workflow and
projectscope is missing,
prefer gh auth refresh -s project
Default Operating Model
Treat these defaults as the steady-state baseline unless the user overrides them:
- planning repo:
DiversioTeam/monolith - execution repos:
DiversioTeam/Django4LyfeDiversioTeam/Diversio-FrontendDiversioTeam/Optimo-FrontendDiversioTeam/diversio-dsDiversioTeam/infrastructureDiversioTeam/nabooDiversioTeam/diversio-serverlessDiversioTeam/launchpadDiversioTeam/skiddieDiversioTeam/terraform-modulesDiversioTeam/agent-skills-marketplace- canonical IDs: native GitHub issue numbers
- legacy ClickUp
GH-xxxxIDs: metadata only when applicable
Routing rules:
- If you are in the monolith root and no repo is specified, prefer
DiversioTeam/monolith.
- If you are inside a repo checkout and no repo is specified, prefer that repo
as the execution repo after normalizing the git remote into owner/repo.
- If the work clearly spans repos or still needs planning, create the issue in
DiversioTeam/monolith.
- If the user asks for implementation work in a specific repo, create the
issue in that repo when issues are enabled there.
- If repo detection yields a GitHub repo outside the default execution list,
it is still valid to use that repo; do not reject it only because it is not prelisted in config.
Local Config
Default config path:
CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/github-ticket"
CONFIG_FILE="${CONFIG_DIR}/config.json"
Use a small JSON file with fields like:
planning_repoexecution_reposbacklog_labelsquick_issue_labelsproject_ownerproject_numberproject_field_defaults- optional
path_repo_map
See references/config-and-body-shape.md for a sample config and issue body.
For the current Diversio baseline, prefer organization project #2 (Diversio Work) unless the user overrides project placement. Treat project_field_defaults as a display-name keyed map for stable defaults like Status and Priority, not as a place to hard-code field or option IDs. Prefer runtime repo detection from the current git checkout before falling back to path_repo_map. In worktree-heavy setups, avoid hard-coded absolute path maps unless there is a real non-git edge case.
Repo Alias Map
Allow these shorthand values when the user names a repo informally:
monolith->DiversioTeam/monolithbackend->DiversioTeam/Django4Lyfefrontend->DiversioTeam/Diversio-Frontendoptimo-frontend->DiversioTeam/Optimo-Frontenddesign-system->DiversioTeam/diversio-dsinfrastructure->DiversioTeam/infrastructurenaboo->DiversioTeam/naboodiversio-serverless->DiversioTeam/diversio-serverlesslaunchpad->DiversioTeam/launchpadskiddie->DiversioTeam/skiddieterraform-modules->DiversioTeam/terraform-modulesagent-skills-marketplace->DiversioTeam/agent-skills-marketplaceskills-marketplace->DiversioTeam/agent-skills-marketplace
If a repo alias is ambiguous, ask one short clarifying question.
Command Modes
configure
Goal:
- validate
ghauth - create or update local defaults
- keep prompts minimal
Workflow:
- Run
gh auth status. - Detect the current checkout path and repo if possible:
- prefer
git rev-parse --show-toplevel - then
git remote get-url origin - normalize SSH or HTTPS GitHub remotes into
owner/repo
- Create
${XDG_CONFIG_HOME:-$HOME/.config}/github-ticket/config.jsonif missing. - Gather only the missing defaults:
- planning repo
- preferred execution repos
- backlog labels
- quick-issue labels
- project owner/number
- optional project field defaults such as
StatusandPriority - only add
path_repo_mapwhen repo detection via git is insufficient
Use jq to write or update the config rather than inventing a custom format. If project config is present but gh auth status shows no project scope, surface that clearly instead of pretending project hydration will work.
get-issue
Accepted input formats:
1234#1234owner/repo#1234- a GitHub issue URL
Behavior:
- Resolve the issue reference to a repo plus number.
- Use
gh issue view. - Return title, state, assignees, labels, body summary, and key links.
- If the issue is in another repo, show that clearly.
list-issues
Prefer the smallest backend that matches the ask:
- one repo:
gh issue list - cross-repo or richer filtering:
gh search issues
Support these filters:
- repo
- assignee
- label
- open / closed state
imported: clickup- updated recently
Keep the filter model smaller than the old ClickUp plugin.
my-issues
This is the convenience view for assigned work.
Default behavior:
- search across the planning repo plus configured execution repos
- show open issues assigned to
@me - prefer recently updated or explicitly blocked work near the top
Use gh search issues --assignee @me --state open when a cross-repo query is needed.
create-issue
This is the full interactive creation path.
Gather:
- title
- work type
- target repo
- problem or request
- success criteria
- optional constraints or non-goals
- optional supporting links
- optional legacy ClickUp metadata
Then:
- Choose the repo using the routing rules.
- Build the canonical issue body.
- Apply labels:
- always include
triageunless the user says otherwise - map work type to
type:*labels when available
- Create the issue with
gh issue create. - If project config exists, or the current Diversio baseline applies, add the
issue to the project with gh project item-add.
- If the project add succeeds, hydrate the common project fields immediately:
StatusTarget Repo- optional
Priority
- For
Status, prefer:
Readyfor scoped, actionable workBlockedwhen the issue depends on incomplete upstream workInboxonly for intentionally rough capture
- For
Target Repo, map the destination repository to the matching project
option when that field exists. If there is no exact option for that repo, use other instead of leaving the field blank.
- Never block issue creation on project assignment or field hydration, but do
report the failure clearly so the user is not left with invisible board items.
- If project hydration fails because of missing
projectscope, say that
explicitly and point at gh auth refresh -s project.
quick-issue
This should stay under three prompts.
Required input:
- title
Preferred flow:
- Infer repo from current directory or config.
- Use default quick-issue labels.
- Create a minimal but useful body.
- If the result is still intentionally rough, prefer
Status: Inboxwhen
adding it to a project. Only upgrade to Ready when the issue is already actionable from the captured context.
- Return the created issue URL.
add-to-backlog
This is the fastest capture path.
Default behavior:
- repo:
DiversioTeam/monolith - labels:
triageplus configured backlog labels - minimal body with problem/request plus optional links
- when added to
Diversio Work, preferStatus: Inbox
Do not over-prompt. If the user only gives a title, create the issue.
create-linked-issue
Use this when turning planning work into explicit follow-up or execution work.
Safe default:
- Read the source issue.
- Create the new issue in the target repo.
- Mention the source issue in the new body.
- Add reciprocal comments with
gh issue commenton both issues. - If the new issue is added to a project, prefer
Readyunless its own
dependency chain means it should start in Blocked.
Do not rely on child-issue-only GitHub features for MVP behavior.
route
Use this when a planning issue in monolith should become repo-local execution work.
Behavior:
- Read the planning issue.
- Decide the target repo or confirm it with one short question.
- Call the same creation logic as
create-linked-issue. - Leave the planning issue open unless the user explicitly wants it closed.
Project Hygiene
When the issue lands in Diversio Work, treat project visibility as part of the ticket workflow instead of optional cleanup.
- If a work item should show up in active board views, do not leave
Status
blank.
Inboxis appropriate for rough backlog capture; it is not appropriate for
already-scoped execution work.
quick-issueandadd-to-backlogmay legitimately chooseInboxeven when
a global config default says Ready, because the capture mode is part of the semantics.
Readyis the default for issue-sized, actionable work that can be picked
up now.
Blockedis the default when dependency text likerequires,depends on,
or blocked by means the issue should exist on the board but not enter the active queue yet.
- When the project has a
Target Repofield, set it to the repo that will own
execution so grouped board views stay useful. If the project does not have a dedicated option for that repo, use other.
- After creation, verify the issue is attached to the expected project and is
not hidden by a blank Status.
Project Commands
Use the GitHub CLI's project commands directly instead of inventing ad hoc GraphQL:
- Resolve the project metadata:
gh project view --owner --format json
- Resolve field ids and single-select option ids:
gh project field-list --owner --format json
- Add the issue to the project:
gh project item-add --owner --url
- Resolve the project item id by matching the created issue:
gh project item-list --owner --format json
- Update one field per call with
gh project item-edit:
--single-select-option-idfor fields likeStatus,Target Repo, and
Priority
--project-idis required for non-draft issue field edits
Do not assume field ids or option ids are stable across projects. Read them from the active project each time unless a higher-level cache is explicitly in scope.
Canonical Issue Body
Generated issues should use these sections in this order:
## Problem or request## Success criteria## Constraints / non-goals## Supporting links## Legacy metadata
Only include Legacy metadata when there is actual ClickUp carryover.
Keep the body aligned with the monolith issue forms so manual and skill-created issues look comparable.
Implementation Backend
Prefer this command set:
gh issue creategh issue viewgh issue listgh search issuesgh issue commentgh project viewgh project field-listgh project item-addgh project item-listgh project item-editgh api
Use gh api only when a simpler gh issue ... subcommand does not cover the action cleanly.
Output Expectations
When this Skill completes a write action, always return:
- repo
- issue number
- title
- URL
- labels applied
- whether project add succeeded or was skipped
- which project fields were applied, skipped, or failed
When it completes a read or list action, keep the response scan-friendly and show enough context that the user does not need to open GitHub immediately.
Adjacent Skill Fallout
This Skill unblocks the GitHub issue workflow, but it does not by itself clean up every older ClickUp assumption elsewhere.
Known follow-up areas:
backend-pr-workflowbackend-atomic-commit- repo-local harness docs or commands that still require
clickup_*branches
If those older instructions conflict with repo-local GitHub workflow docs, the repo-local GitHub workflow docs should win.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: DiversioTeam
- Source: DiversioTeam/agent-skills-marketplace
- License: MIT
- Homepage: https://engineering.diversio.com
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.