Bridge devtools-mcp tracker tasks to GitHub issues and git history: create a GitHub issue from a task (criteria checklist included), sync remote state and spot drift, close remote issues, and auto-link commits by putting task keys in commit messages. Use when a tracked task needs a public issue, when reconciling tracker vs GitHub state, or when wiring commits to tasks.
Scanned 9/27/2026
npx -y skills add Ugbot/ai-grind --skill tracker-github-sync --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Tracker Github Sync?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ugbot-tracker-github-sync)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: tracker-github-sync
description: >
Bridge devtools-mcp tracker tasks to GitHub issues and git history: create a
GitHub issue from a task (criteria checklist included), sync remote state and
spot drift, close remote issues, and auto-link commits by putting task keys
in commit messages. Use when a tracked task needs a public issue, when
reconciling tracker vs GitHub state, or when wiring commits to tasks.
---
# GitHub sync and commit linking
## Auth
Set `GITHUB_TOKEN` (or `GH_TOKEN`) in the environment the MCP server runs in,
a fine-grained token with issue write access to the target repo, or a classic
token with `repo` scope. No token is stored by the tracker. (If you use the
`gh` CLI: `$env:GITHUB_TOKEN = gh auth token`.)
## Task → issue
```
tracker_issue(action="create", key="GRIND-7", repo="owner/name")
```
Creates the issue with:
- title = task title,
- body = task description + the acceptance criteria as a markdown checklist
(`- [x]` met / `- [ ]` open, with test refs) + a `Tracked as GRIND-7` footer,
- labels = the task's tags,
and stores the ref (number, URL, state) on the task. One issue per
(task, provider); re-creating is rejected, so sync instead.
## Sync and drift
```
tracker_issue(action="sync", key="GRIND-7")
```
Pulls remote state, stamps `last_synced`, and reports **drift**: local task
done/cancelled while the remote issue is still open, or the remote closed
while the local task isn't. Resolve drift deliberately: close the remote
(`action="close"`) or update the local status; the tool never auto-changes
either side.
`provider="gitlab"` is reserved (the interface exists; calls return a clear
not-implemented error).
## Commits → tasks
Two ways to link commit hashes:
- **Convention + scan** (preferred): put the task key in the commit message
(`git commit -m "GRIND-7: implement tag filter"`), then
`tracker_commits(action="scan", repo="C:/path/to/repo")`. The scan reads
`git log` (default last 500, `max_commits=` up to 5000), links every commit
mentioning a known task key, and is idempotent, so re-scan freely. Keys whose
project or task doesn't exist are counted and skipped, never errors.
- **Manual**: `tracker_commits(action="link", key="GRIND-7", repo="…",
commit="<hash>", message="optional snippet")`.
Linked commits appear in `tracker_task(action="get", key=…)` and
`tracker_query(view="commits", project=…)`.
## End-of-feature checklist
1. `tracker_commits(action="scan", repo=".")` sweeps the branch's commits.
2. `tracker_criteria` records all green → `tracker_status(… status="done")`.
3. `tracker_issue(action="close", key=…)` or let `sync` flag the drift.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!