Agents: architect, claude-researcher, designer, engineer, issue-worker, pentester, pr-reviewer, swarm-coder, swarm-reviewer, swarm-validator Skills: backlog, create-scheduled-task, json-pretty, optimise-claude, playwright-cli, project-plan, resume-tailoring, save-doc, youtube-transcriber, z-image Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
4.2 KiB
| name | description |
|---|---|
| backlog | Check Gitea repo for open issues and surface the next task to work on. Scans for TODOs in the codebase if no issues exist, creates issues for them, then offers options. USE WHEN user says "backlog", "what should I work on", "next task", "open issues", "check issues", "/backlog", or wants to find work to do. |
Backlog - Find Next Task
When to Activate This Skill
- "/backlog"
- "What should I work on?"
- "Check for open issues"
- "Any tasks to do?"
- "What's next?"
- "Show me the backlog"
Core Workflow
Step 1: Detect the current repo
Extract the Gitea owner/repo from the git remote:
# Extract owner/repo from the git remote URL
# Adapt the pattern to match your Gitea hostname
git remote get-url origin 2>/dev/null | sed -n 's|.*://[^/]*/\(.*\)\.git|\1|p'
If no Gitea remote is found, ask the user which repo to check.
Step 2: Fetch open issues from Gitea
Primary method — use gitea-mcp MCP server:
Use ToolSearch to load mcp__gitea-mcp__list_repo_issues, then call it:
mcp__gitea-mcp__list_repo_issues(owner="{owner}", repo="{repo}", state="open", type="issues", limit=20)
Fallback — if MCP is unavailable, use curl:
curl -s -H "Authorization: token $GITEA_TOKEN" \
"$GITEA_URL/api/v1/repos/{owner/repo}/issues?state=open&type=issues&limit=20&sort=priority" \
| python -m json.tool
Gitea API base: $GITEA_URL/api/v1
Auth token: $GITEA_TOKEN environment variable
Step 3: Branch based on results
Path A: Open issues exist
Present issues to the user as numbered options:
Found 3 open issues for owner/repo:
1. #12 — Add dark mode toggle (enhancement)
Labels: feature, ui
Created: 2d ago
2. #10 — Fix audio recording on Wayland (bug)
Labels: bug, audio
Created: 5d ago
3. #8 — Add export to markdown (feature)
Labels: feature
Created: 1w ago
Which issue would you like to work on?
Include: issue number, title, labels, relative age. If there are many issues, show the top 5-7 most relevant (prioritize bugs, then features, then enhancements).
Path B: No open issues — scan for TODOs
Use Grep to scan the codebase for TODO/FIXME/HACK/XXX markers:
Grep pattern: "(TODO|FIXME|HACK|XXX):?\s"
Exclude: .git/, node_modules/, __pycache__/, .venv/, *.lock, *.min.*
For each TODO found:
- Read surrounding context (a few lines around the match)
- Group related TODOs if they're in the same function/section
- Create a Gitea issue for each distinct task:
Primary method — use gitea-mcp MCP server:
Use ToolSearch to load mcp__gitea-mcp__create_issue, then call it:
mcp__gitea-mcp__create_issue(owner="{owner}", repo="{repo}", title="Clear, actionable title", body="Found in `file/path.py:42`:\n\n```\n# TODO: the original comment\n```\n\nContext: brief description.")
Fallback — if MCP is unavailable, use curl:
curl -s -X POST \
-H "Authorization: token $GITEA_TOKEN" \
-H "Content-Type: application/json" \
"$GITEA_URL/api/v1/repos/{owner/repo}/issues" \
-d '{
"title": "Clear, actionable title derived from the TODO",
"body": "Found in `file/path.py:42`:\n\n```\n# TODO: the original comment\n```\n\nContext: brief description of what needs to be done.",
"labels": []
}'
After creating issues, present them as options (same format as Path A).
Path C: No issues and no TODOs
No open issues and no TODO markers found in owner/repo.
The backlog is clear — nice work!
Issue Creation Guidelines
- Title: Imperative verb form, concise ("Add export feature", "Fix audio clipping on short recordings")
- Body: Include the file path and line number, the TODO text, and brief surrounding context
- Deduplication: Before creating, check if an open issue with a very similar title already exists
- Grouping: If multiple TODOs clearly relate to the same task (e.g., in the same function), combine them into one issue
Key Principles
- Always detect repo from git remote — don't hardcode repos
- Present options clearly so the user can pick their next task quickly
- Only create issues for genuine TODOs, not commented-out code or documentation examples
- Keep issue titles actionable and concise