Skip to content
Back to skills

Tracker Github Sync

ASecurity

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.

  • 9 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 27, 2026
ai-agentsgit

Works with

  • cli
  • mcp

Security analysis

A100/100

Scanned September 27, 2026

npx -y skills add Ugbot/ai-grind --skill tracker-github-sync --agent claude-code

Installs 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 with every re-scan.

Security grade badge for Tracker Github Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/ugbot-tracker-github-sync/badge)](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.

Download with Pro
SKILL.md
---
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.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…