project-gh-import-issues
Import open GitHub Issues into the local issue store as v4 story files.
Skill by carson-sweet
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/carson-sweet-project-gh-import-issues
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/project-gh-import-issues
What's inside
- Skill name
project-gh-import-issues- Description
- Import open GitHub Issues into the local issue store as v4 story files.
- License
- AGPL-3.0
- Instructions
- 186 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: missing
Files (1)
- SKILL.md
SKILL.md (first lines)
## MIGRATION GUARD
Before any other work, check for legacy migration/recovery risk:
```bash
PRODUCT_BASE=$(python3 -c "
import yaml, pathlib
p = pathlib.Path('.sweetclaude/artifact-privacy.yaml')
if p.exists():
d = yaml.safe_load(p.read_text()) or {}
base = d.get('categories', {}).get('product', {}).get('base_path', '')
if base:
print(base.rstrip('/'))
exit()
print('.sweetclaude/product')
" 2>/dev/null || echo '.sweetclaude/product')
LEGACY_FILES=$(find "${PRODUCT_BASE}" -maxdepth 4 -type f \( -name 'BL-*.md' -o -name 'STORY-*.md' -o -name 'BUG-*.md' -o -name 'DEBT-*.md' -o -name 'CHORE-*.md' \) 2>/dev/null | wc -l | tr -d ' ')
if [ "$LEGACY_FILES" -gt 0 ]; then
SCRIPT=${CLAUDE_PLUGIN_ROOT}/scripts/recovery/recover_project.py
if [ ! -f "$SCRIPT" ]; then
SCRIPT=$(find "$(dirname "${CLAUDE_PLUGIN_ROOT}")" -type f -path '*/scripts/recovery/recover_project.py' 2>/dev/null | sort -V | tail -1)
fi
if [ -n "$SCRIPT" ] && [ -f "$SCRIPT" ]; then
python3 "$SCRIPT" guard --project-dir . --pretty
else
echo '{"status":"guard-unavailable","message":"Recovery guard unavailable. Run /sweetclaude:configure update before migration."}'
fi
fi
```
If the guard output has `status` `run-recover`, `manual-review`,
`compatibility-mode`, `missing-product-base`, or `guard-unavailable`: print the
guard `message`, tell the user to run `/sweetclaude:configure recover` when recovery is
available, and stop. Do not recommend migration.
If the guard output has `status` `supported-migration-available`: print
"This project has a typed legacy backlog layout that can be migrated. Run
`/sweetclaude:configure migrate` to convert to the unified ISSUE-NNN taxonomy." Then stop.
If the guard output has `status` `migration-may-be-needed`: print the guard
`message`, then stop and tell the user to review `/sweetclaude:configure migrate` before
running it. Do not invoke migration from this skill.
```python
import pathlib, yaml, re, datetime
BACKLOG_BASE = pathlib.Path('.sweetclaude/product/backlog')
def assign_new_id():
import subprocess, json
import os
r = subprocess.run(['python3', os.path.expanduser('${CLAUDE_PLUGIN_ROOT}/scripts/cache.py'), '--project-dir', '.', '--query', 'next-id', '--prefix', 'ISSUE'],
capture_output=True, text=True)
return json.loads(r.stdout)['next_id']
def make_slug(title):
return re.sub(r'-+', '-', re.sub(r'[^a-z0-9]+', '-', title.lower())).strip('-')
def write_issue_file(path, fm, body):
content = f"---\n{yaml.safe_dump(fm, default_flow_style=False, sort_keys=False).rstrip()}\n---\n{body}"
pathlib.Path(path).write_text(content, encoding='utf-8')
def github_number_already_imported(gh_number):
"""Check if a GitHub issue number is already in any local story file."""
for p in BACKLOG_BASE.rglob('*.md'):
if p.name in ('INDEX.md', 'MIGRATION-MAP.md', 'SCHEMA.md'):
continue
raw = p.read_text(encoding='utf-8')
parts = raw.split('---', 2)
if len(parts) < 3:
continue
try:
fm = yaml.safe_load(parts[1]) or {}
if fm.get('github_issue_number') == gh_number:
return True
except Exception:
pass
return False
```
# GitHub Issues — Import
Pull open issues from GitHub into the local issue store as issue files under `.sweetclaude/product/backlog/`. Idempotent — issues already imported by GitHub number are skipped. Arguments: `$ARGUMENTS`
---
## Prerequisites
```bash
gh auth status 2>/dev/null && echo "GH_OK" || echo "GH_NOT_AUTH"
git remote get-url origin 2>/dev/null || echo "NO_REMOTE"
```
If `GH_NOT_AUTH`: "GitHub CLI is not authenticated. Run `gh auth login` first." Stop.
If `NO_REMOTE`: "No git remote found. Import requires a GitHub remote." Stop.
---
## Import
Fetch open issues:
```bash
gh issue list --state open --limit 200 --json number,title,body,labels,state,url 2>/dev/null
```
For each GitHub issue:
1. Check whether a local v4 story already has `github_issue_number` matching this issue number (use `github_number_already_imported(number)` above).
2. If a match exists: skip. Import is one-way — do not overwrite local edits.
3. If no match: map fields and create a new v4 story file:
```python
today = datetime.datetime.now(datetime.timezone.utc).isoformat(timespec='seconds')
typ = 'story' # default; apply label mapping below to overrideFrom carson-sweet/sweetclaude, AGPL-3.0.
More from carson-sweet/sweetclaude
- 0.614score
code-testing
carson-sweet
Run any combination of test suite, mutation testing, security review, and PR pre-check.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
project-gh-sync-issues
carson-sweet
Bidirectional status sync between local issue files and GitHub Issues.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
code-tdd
carson-sweet
Internal TDD process skill — invoked by code-feature, code-issue, and code-debt.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
product-sprint-plan
carson-sweet
Plan a sprint by selecting stories from the backlog, estimating scope, and producing a sprint commitment.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-verify
carson-sweet
Run verification before claiming work is complete.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
john-wick
carson-sweet
Fully autonomous, resumable, multi-session SDLC pipeline.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
john-wick-checkin
carson-sweet
Internal John Wick phase check-in subagent.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
project-sprints
carson-sweet
Sprint planning, activation, board view, and close.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-issue
carson-sweet
Implement a GitHub issue end-to-end.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-review
carson-sweet
Code, security, and compliance review.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
project-backlog-triage
carson-sweet
Structured backlog grooming session.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
product-user-tdd-tests
carson-sweet
Transition user stories into Gherkin .feature files.
SkillAFreshness: A★ 7Claude Code +9
Signals
- Stars
- 7
- Forks
- 3
- Open issues
- 4
- Last commit (this folder)
- Oct 20, 2026 (9 days ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- AGPL-3.0
- Repository
- github.com/carson-sweet/sweetclaude
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from carson-sweet
- 0.614score
product-sprint-plan
carson-sweet
Plan a sprint by selecting stories from the backlog, estimating scope, and producing a sprint commitment.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
project-gh-sync-issues
carson-sweet
Bidirectional status sync between local issue files and GitHub Issues.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
code-testing
carson-sweet
Run any combination of test suite, mutation testing, security review, and PR pre-check.
SkillAFreshness: A★ 7Claude Code +9 - 0.614score
code-tdd
carson-sweet
Internal TDD process skill — invoked by code-feature, code-issue, and code-debt.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-review
carson-sweet
Code, security, and compliance review.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-feature
carson-sweet
Build a new feature end-to-end.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
project-gh-import-issues skill. Agent Mart. https://agentmart.dev/skills/carson-sweet-project-gh-import-issues (last updated 2026-10-24)