Skip to content
Back to skills

Issue Sync

ASecurity

Mirror issues and status across issue trackers with stable external-ID mapping to avoid duplicates. Load when syncing GitHub and Linear issues, mirroring ticket status, or keeping two trackers in sync. Also triggers on "issue sync", "sync issues", "mirror issues to", "keep Linear and GitHub in sync", or bidirectional issue tracker updates. Requires API access on both sides — stops if credentials missing.

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 11, 2026
documentationgogitapi

Works with

  • api

Security analysis

A100/100

Pro scans all 3 files and shows the line behind each finding

Scanned September 11, 2026

npx -y skills add dvy1987/agent-loom --skill issue-sync --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Issue Sync?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Issue Sync
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/dvy1987-issue-sync/badge)](https://www.skillsdirectory.com/skills/dvy1987-issue-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: issue-sync
description: >
  Mirror issues and status across issue trackers with stable external-ID
  mapping to avoid duplicates. Load when syncing GitHub and Linear issues,
  mirroring ticket status, or keeping two trackers in sync. Also triggers on
  "issue sync", "sync issues", "mirror issues to", "keep Linear and GitHub
  in sync", or bidirectional issue tracker updates. Requires API access on
  both sides — stops if credentials missing.
license: MIT
metadata:
  author: dvy1987
  version: "1.0"
  category: project-specific
  sources: ci-orchestrator Notifier pattern
  resources:
    references:
      - SYNC-SCHEMA.md
      - examples.md
---
# Issue Sync

You mirror create/update/close events between source and target trackers using a **stable external-ID map** — no duplicate issues.

## Hard Rules

Maintain mapping at `.agent-loom/issue-sync-map.json` — `{source_id, target_id, status, last_synced_at}`.
Never create a target issue without recording the mapping.
On update: look up mapping first; create only if absent.
Never store API tokens in repo — env vars only.
If either side credentials missing, list required env names and **stop**.

---

## Workflow

### Step 1 — Identify source and target

Example: GitHub → Linear, or Linear → GitHub. Confirm direction with user if ambiguous.

### Step 2 — Load or init map

Read `.agent-loom/issue-sync-map.json`. Create `{"mirrors":[]}` if missing.

### Step 3 — Fetch source changes

List open/recently updated issues since `last_synced_at` (or user-provided window).

### Step 4 — Apply to target

| Source event | Target action |
|--------------|---------------|
| create | Create issue + append mapping |
| update status | Update mapped target status |
| close | Close mapped target |

### Step 5 — Write map + summary

Persist updated mirrors. Emit sync report.

---

## Gotchas

- Title-only matching causes duplicates — always use mapping file.
- Bidirectional sync needs conflict policy — default: source wins unless user says otherwise.
- Body HTML vs markdown may truncate — sync title + status + link back.

---

## Output Format

```markdown
## Issue sync — [source] → [target]

Created: N | Updated: N | Closed: N | Skipped (mapped): N
Map: `.agent-loom/issue-sync-map.json`

Errors: [none | list]
```

---

## Examples

Teaser: 3 new GitHub issues → 3 Linear issues created with github:#42 in description.

Full pairs: `references/examples.md`

---

## Common Rationalizations

| Excuse | Reality |
|--------|---------|
| "Match by title" | Titles change; duplicates multiply. |
| "Skip map file" | Next sync creates duplicates. |
| "Embed PAT in script" | Tokens leak from repo history. |
| "Sync everything ever" | Window by last_synced_at — incremental. |
| "Bidirectional without policy" | Conflicts will corrupt state. |

## Verification

- [ ] Mapping file updated
- [ ] No duplicate target for same source_id
- [ ] Credentials not written to disk
- [ ] Sync counts reported

## Red Flags

- New target issue without map entry
- API token in committed file
- Full resync without user request

## Prune Log
Last pruned: 2026-07-05
- Initial release from high-leverage skill spec (Skill 3 family)

## Impact Report

```
Issue sync: [src]→[tgt] | +N ~N -N | Map entries: N
```

Files in this skill

  • SKILL.md3.2 KB
  • references/SYNC-SCHEMA.md618 B
  • references/examples.md283 B

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…