git-issue-tracker
Skill4 starsChanged 3 months agoApache-2.0View on GitHub
Issue-tracker integration point for git-tracked repos. Premade with GitHub operations (gh CLI — native sub-issues for parent/child, native blocked_by dependencies for blocking, frontier queries). Load whenever a skill or workflow (e.g. wayfinder) needs to publish to, read from, or wire relationships on the repo's issue tracker. Replace the operations below if your tracker isn't GitHub.
In this repository35 other files it gives its agents.
- AGENTS.mdAGENTS.md
- 12-factor-appSkill
- caveman-commitSkill
- caveman-reviewSkill
- cavemanSkill
- conventional-commitsSkill
- creating-pull-requestsSkill
- deep-researchSkill
- dispatching-parallel-agentsSkill
- domain-modelingSkill
- finishing-a-development-branchSkill
- forge-cleanupSkill
- forge-docsSkill
- forge-eu-accessibilitySkill
- forge-flowSkill
- forge-initSkill
- forge-seoSkill
- forge-setupSkill
- forgeSkill
- forge-tailwindcss-conventionsSkill
- frontend-designSkill
- grillingSkill
- kiss-principleSkill
- loopsSkill
- planning-and-task-breakdownSkill
- prototypeSkill
- pr-resolveSkill
- pr-reviewSkill
- resolving-merge-conflictsSkill
- ste100Skill
- subagent-driven-developmentSkill
- use-git-identitySkill
- using-git-worktreesSkill
- verification-before-completionSkill
- wayfinderSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 25
Create a GitHub issue.
- Very specific: line 53
Read a ticket's blockers via gh api repos/<owner>/<repo>/issues/<number>/dependencies/blocked_by --jq '.[].number' (and the reverse via …
≈ “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
Issue tracker
This skill is the tracker integration point for any workflow that needs to talk to the repo's issue tracker (wayfinder, triaging, etc.). It is premade with GitHub operations — swap the body for Jira / Linear / a local-markdown tracker as needed; keep the headings so consuming skills keep working.
The GitHub operations below are adapted from mattpocock/skills — issue-tracker-github.md, with endpoint details verified against the live API.
Conventions
- Create an issue:
gh issue create --title "..." --body "...". Use a heredoc for multi-line bodies (backticks in inline--bodystrings get eaten by shell expansion). - Read an issue:
gh issue view <number> --comments. - List issues:
gh issue list --state openwith--labelfilters as needed. - Comment:
gh issue comment <number> --body "...". - Apply / remove labels:
gh issue edit <number> --add-label "..."/--remove-label "..."(create labels first withgh label create— editing with a nonexistent label fails). - Close:
gh issue close <number> --comment "...". - Numeric database id: several endpoints below need the issue's database id, not its
#numberornode_id:gh api repos/<owner>/<repo>/issues/<number> --jq .id.
When a skill says "publish to the issue tracker"
Create a GitHub issue.
When a skill says "fetch the relevant ticket"
Run gh issue view <number> --comments.
Wayfinding operations
Used by the wayfinder skill. The map is a single issue with child issues as tickets.
- Map: a single issue labelled
wayfinder:map, holding the Destination / Notes / Decisions-so-far / Fog body.gh issue create --label wayfinder:map. Child ticket: an issue linked to the map as a native GitHub sub-issue — do this, don't just mention
#1in the body:gh api repos/<owner>/<repo>/issues/<map-number>/sub_issues \ -F sub_issue_id=<child-database-id>The map's children are then queryable via
gh api repos/<owner>/<repo>/issues/<map-number>/sub_issues --jq '.[].number'and render as sub-issues in the GitHub UI. Labels:wayfinder:<type>(research/prototype/grilling/task/domain-modeling). Once claimed, the ticket is assigned to the driving dev.Blocking: GitHub's native issue dependencies — the canonical, UI-visible representation:
gh api --method POST repos/<owner>/<repo>/issues/<blocked-number>/dependencies/blocked_by \ -F issue_id=<blocker-database-id>Read a ticket's blockers via
gh api repos/<owner>/<repo>/issues/<number>/dependencies/blocked_by --jq '.[].number'(and the reverse via.../dependencies/blocking). Prefer these dedicated endpoints over theissue_dependencies_summaryfield on the issue object, which can lag right after a write. A ticket is unblocked when every blocker is closed.- Frontier query: list the map's open children via the sub-issues endpoint above, drop any with an open blocker (from
dependencies/blocked_by) or an assignee; first in map order wins. - Claim:
gh issue edit <number> --add-assignee @me— the session's first write. - Resolve:
gh issue comment <number> --body "<answer>", thengh issue close <number>, then append a context pointer (gist + link) to the map's Decisions-so-far.
Branch association (map ↔ feat/* branch)
A wayfinder map may have a feat/* branch that lives across the whole effort. The convention is:
- Default name: derived from the map issue's title slug —
feat/<slug>(lowercased, hyphenated). For map title"Auth JWT refactor"→feat/auth-jwt-refactor. forge-flow's step 2 uses this rule to name the branch on first cut. - Optional explicit pointer: the map issue body may carry a
## Feat branchheading with the explicit branch name, overriding the default slug derivation. Example:## Feat branch feat/auth-jwt-refactor - Query — to find an existing branch for a given map issue:
- First read the map body and look for the
## Feat branchheading; if present, treat that as authoritative. - Else compute the slug from the map title and look up
git branch -a --list "feat/<slug>*". The first matching branch (local, then remote-tracking) is the one to reuse. - Else fall back to a
gh pr list --head "feat/<slug>" --state openlookup — an open PR on a matchingfeat/*head is also a hit.
- First read the map body and look for the
The slug-derived name is the association. The explicit pointer exists for cases where the branch was renamed or doesn't follow the default naming rule.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
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.

