project-issues
Manage project issues — list, view, create, update, and close.
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-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 26, 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-issues
What's inside
- Skill name
project-issues- Description
- Manage project issues — list, view, create, update, and close.
- License
- AGPL-3.0
- Instructions
- 543 lines in SKILL.md · view on GitHub
Agent Skills spec issues
- name: missing
- body: 543 lines (spec recommends under 500)
- files: referenced but missing: scripts/status.py
Files (1)
- SKILL.md
SKILL.md (first lines)
## Issue tracker selection
Read the canonical project setting before inspecting local artifacts:
```bash
ISSUE_TRACKER=$(python3 - <<'PY'
import pathlib, yaml
p = pathlib.Path('.sweetclaude/state/sweetclaude.yaml')
try:
d = yaml.safe_load(p.read_text()) or {}
except (OSError, yaml.YAMLError):
d = {}
print(d.get('project', {}).get('issue_tracker', 'local'))
PY
)
```
`project.issue_tracker` is `local` by default. If it is `github`, GitHub
Issues are the project system of record: do **not** read, create, migrate, or
sync `.sweetclaude/product` issue files. This includes skipping the local
migration guard below.
Only `local` and `github` are valid values. If the setting contains anything
else, report the invalid value and stop rather than guessing a tracker.
`tracker local` and `tracker github` explicitly change this per-project
setting. Treat clear natural-language requests as the same operation. For
example, “use GitHub for this project's issues”, “track issues on GitHub”, and
“stop using local issue tracking” mean `tracker github`; “use local issues
again” means `tracker local`. If the request is ambiguous about the project or
tracker, ask one clarification question rather than changing configuration.
Before changing to `github`, run the connection check below. Then update only
`project.issue_tracker` in `.sweetclaude/state/sweetclaude.yaml` with an atomic
replace; do not import, export, or delete issues as a side effect:
```python
import os, pathlib, tempfile, yaml
path = pathlib.Path('.sweetclaude/state/sweetclaude.yaml')
data = yaml.safe_load(path.read_text(encoding='utf-8')) or {}
data.setdefault('project', {})['issue_tracker'] = '<local-or-github>'
with tempfile.NamedTemporaryFile('w', dir=path.parent, suffix='.tmp',
delete=False, encoding='utf-8') as tmp:
yaml.safe_dump(data, tmp, default_flow_style=False, sort_keys=False,
allow_unicode=True)
temp_path = tmp.name
os.replace(temp_path, path)
```
Confirm the selected system of record. Process this configuration operation
before routing the remaining arguments.
First verify the connection:
```bash
gh auth status 2>/dev/null && git remote get-url origin 2>/dev/null
```
If authentication or an `origin` remote is unavailable, explain which is
missing and stop. Never silently fall back to local issue files.
For `github`, route `$ARGUMENTS` directly to GitHub:
| Arguments | GitHub operation |
|---|---|
| (empty), `list`, `backlog` | `gh issue list --state open --limit 100` |
| `view <number>` | `gh issue view <number>` |
| `new` | Collect title and description one question at a time, then `gh issue create --title "..." --body "..."` |
| `update <number>` | Show `gh issue view <number>`, collect title/body/assignee/label changes, then use `gh issue edit` with only those fields |
| `close <number>` or `decline <number>` | Confirm when necessary, then `gh issue close <number>` |
| `reopen <number>` | `gh issue reopen <number>` |
Use GitHub issue numbers in this mode (for example, `#42` or `42`), not
`ISSUE-NNN`. `triage` is not a file move in GitHub mode: apply or remove the
repository's existing `triage` label with `gh issue edit`. Do not create labels
implicitly; if no suitable label exists, say so and leave the issue unchanged.
Report the GitHub URL returned by each mutation.
The local-only operations and rules below apply only when `ISSUE_TRACKER` is
`local`.
## 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. RunFrom 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
project-gh-import-issues
carson-sweet
Import open GitHub Issues into the local issue store as v4 story files.
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
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
code-verify
carson-sweet
Run verification before claiming work is complete.
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.614score
project-gh-import-issues
carson-sweet
Import open GitHub Issues into the local issue store as v4 story files.
SkillAFreshness: A★ 7Claude Code +9 - 0.611score
code-review
carson-sweet
Code, security, and compliance review.
SkillAFreshness: A★ 7Claude Code +9
Cite this page
project-issues skill. Agent Mart. https://agentmart.dev/skills/carson-sweet-project-issues (last updated 2026-10-24)