Install
$ agentstack add skill-edloidas-skills-labels-sync ✓ 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
Labels Sync: GitHub Label Synchronization
Purpose
Synchronize GitHub repository labels with a predefined set of standard labels, or export the current repository labels as reusable JSON. The skill can compare the repo against a JSON definition, apply the missing changes, or return the repo's current label definitions in copy-ready form.
When to Use This Skill
Use when the user asks to:
- "Sync labels", "update labels", "fix labels"
- "Check labels", "show label differences", "preview label changes"
- "Manage GitHub labels", "set up labels"
- "Apply standard labels to this repo"
- "Export labels", "get current labels", "show labels JSON", "copy labels to another repo"
Trigger phrases: "labels-sync", "labels sync", "sync labels", "label sync", "github labels", "check labels", "export labels", "get labels"
Operations
For sync and check flows, the script compares repository labels against the defined list and reports:
- CREATE: Labels in the definition but not in the repository
- UPDATE: Labels that exist but have different name case, description, or color
- DELETE: Labels in the repository but not in the definition
- UNCHANGED: Labels that match exactly
For export flows, the script reads the current repository labels and returns a normalized JSON array with:
namedescriptioncolor
Execution Steps
Step 1: Determine Intent
From the command arguments or conversation context, determine the user's intent:
Apply changes if user explicitly requests (keywords in args or context):
apply,sync,update,fix,set,enforce- Example:
labels-sync applyor "sync my labels"
Report only if user wants to check (keywords):
check,list,show,preview,dry-run,diff- Example:
labels-sync checkor "show label differences"
Export current labels if user wants reusable output (keywords):
get,export,read,copy,json- Example:
labels-sync getor "export current labels so I can copy them to another repo"
If intent is unclear or no arguments are provided, use AskUserQuestion when available. Otherwise ask in normal chat with a short numbered list and wait for the user's reply:
Check(Recommended) — Compare the repo labels against the bundled definitionGet— Export the repo's current labels as reusable JSONApply— Sync the repo labels to match the bundled definition
Step 2: Export Current Labels When Requested
For get/export mode, fetch and return the current repository labels directly:
scripts/sync-labels.sh --get
Return the output in a fenced json block so the user can copy it into another repository later. Keep the fields in the reusable definition shape:
[
{
"name": "bug",
"description": "Something isn't working",
"color": "B60205"
}
]
If the user explicitly asks for only name and color, summarize those fields in the prose response, but keep the script output in the full reusable format unless they ask to omit descriptions.
Step 3: Read Label Definitions for Sync/Check
Read the label definitions from the bundled JSON file:
references/labels.json
Use the Read tool to load the file contents.
Skip this step for get/export mode.
Step 4: Execute Sync Script
Pipe the label JSON to the sync script:
For dry-run (report only):
cat references/labels.json | scripts/sync-labels.sh
For applying changes, add --apply flag:
cat references/labels.json | scripts/sync-labels.sh --apply
Step 5: Present Results
Parse the JSON output and present as a readable markdown report:
Labels to Create
| Name | Description | Color | |------|-------------|-------| | ... | ... | ... |
Labels to Update
| Name | Field | From | To | |------|-------|------|-----| | ... | ... | ... | ... |
Labels to Delete
| Name | |------| | ... |
Unchanged Labels
- label1, label2, label3...
If no changes are needed, report that all labels are already in sync.
If changes were applied, confirm success. If any errors occurred, report them.
For get/export mode, prefer returning the exact JSON in a fenced code block first, then optionally add a short summary table of label names and colors if that helps the user scan it.
Customization
To customize the label set, edit the JSON file at:
references/labels.json
Each label entry requires three fields:
name— Label name (case-sensitive)description— Short descriptioncolor— Hex color without#prefix (e.g.,B60205)
Bundled Files
scripts/sync-labels.sh— Generic sync/export script (exports current labels, or reads stdin JSON, diffs viajq, and applies viagh)references/labels.json— Label definitions (single source of truth)
Prerequisites
ghCLI authenticated (gh auth login)jqinstalled- Must be run from within a GitHub repository
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: edloidas
- Source: edloidas/skills
- License: MIT
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.