Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Track project blockers, bugs, and gaps across sessions — use when issues pile up or need triage
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 245% | 0% |
| case-14 | ✗→✓ | ▲ Improved | 149% | 0% |
| case-15 | ✗→✓ | ▲ Improved | 337% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 91% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 173% | 0% |
Cross-session issue tracking for persistent problem management. Issues are stored in .octo/ISSUES.md and survive across Claude Code sessions.
Core principle: Track → Resolve → Learn.
Use this skill when user wants to:
Do NOT use for:
Trigger: /octo:issues or /octo:issues list
Show all open issues in table format:
markdown## Open Issues | ID | Severity | Category | Description | Created | Phase | |----|----------|----------|-------------|---------|-------| | ISS-20260203-001 | high | integration | Auth not working | 2026-02-03 | Develop | | ISS-20260203-002 | medium | performance | Slow query performance | 2026-02-03 | Deliver |
Pattern Detection: After listing, check if 3+ open issues share the same category. If so, alert:
text⚠ Pattern detected: 3 open issues in category "integration" — may indicate a systemic problem.
Implementation:
.octo/ISSUES.md existsTrigger: /octo:issues add <description>
Add new issue with auto-generated ID.
Flow:
Use AskUserQuestion with two questions:
javascriptAskUserQuestion({ questions: [ { question: "What severity is this issue?", header: "Severity", multiSelect: false, options: [ {label: "critical", description: "Blocks all progress"}, {label: "high", description: "Significant impact"}, {label: "medium", description: "Should address"}, {label: "low", description: "Nice to fix"} ] }, { question: "What category does this issue fall into?", header: "Category", multiSelect: false, options: [ {label: "logic-error", description: "Incorrect behavior or wrong output"}, {label: "integration", description: "Cross-component or API compatibility"}, {label: "quality-gate", description: "Quality gate failures during workflows"}, {label: "security", description: "Security vulnerabilities or concerns"}, {label: "performance", description: "Speed, memory, or scalability issues"}, {label: "ux", description: "User experience or usability problems"}, {label: "architecture", description: "Structural or design pattern issues"} ] } ] })
bash# Check if STATE.md exists if [ -f .octo/STATE.md ]; then grep "current_phase:" .octo/STATE.md else echo "Unknown" fi
Format: ISS-YYYYMMDD-NNN
bash# Get today's date TODAY=$(date +%Y%m%d) # Find existing issues for today grep "ISS-${TODAY}-" .octo/ISSUES.md | tail -1 # Increment sequence number # If ISS-20260203-001 exists, next is ISS-20260203-002
Add new row to Open Issues table:
markdown| ISS-20260203-003 | medium | performance | Slow query performance | 2026-02-03 | Develop |
Preserve existing issues - append only, don't overwrite.
markdown✅ Issue created: ISS-20260203-003 **Severity:** medium **Category:** performance **Description:** Slow query performance **Created:** 2026-02-03 **Phase:** Develop View with: /octo:issues show ISS-20260203-003
Trigger: /octo:issues resolve <id>
Mark issue as resolved and move to Resolved section.
Flow:
bash# Check if issue ID exists in Open Issues grep "ISS-20260203-001" .octo/ISSUES.md
If not found, show error:
markdown❌ Issue ISS-20260203-001 not found in open issues. Use `/octo:issues list` to see all open issues.
markdown**Resolving issue:** ISS-20260203-001 Please provide resolution notes:
Resolved Issues format:
markdown| ID | Severity | Category | Description | Created | Resolved | Resolution | |----|----------|----------|-------------|---------|----------|------------| | ISS-20260203-001 | high | integration | Auth not working | 2026-02-03 | 2026-02-04 | Fixed OAuth token refresh |
markdown✅ Issue resolved: ISS-20260203-001 **Resolution date:** 2026-02-04 **Resolution notes:** Fixed OAuth token refresh View with: /octo:issues show ISS-20260203-001
Trigger: /octo:issues show <id>
Display full details of specific issue.
Flow:
Search both Open and Resolved sections for issue ID.
For open issue:
markdown## Issue Details: ISS-20260203-001 **Status:** Open **Severity:** high **Category:** integration **Description:** Auth not working **Created:** 2026-02-03 **Phase:** Develop **Actions:** - Resolve: `/octo:issues resolve ISS-20260203-001`
For resolved issue:
markdown## Issue Details: ISS-20260203-001 **Status:** Resolved **Severity:** high **Category:** integration **Description:** Auth not working **Created:** 2026-02-03 **Resolved:** 2026-02-04 **Resolution:** Fixed OAuth token refresh
markdown❌ Issue ISS-20260203-001 not found. Use `/octo:issues list` to see all open issues.
When: First time skill is used or .octo/ISSUES.md doesn't exist.
Action:
bash# Create .octo directory if needed mkdir -p .octo # Copy template cp ${HOME}/.claude-octopus/plugin/config/templates/ISSUES.md.template .octo/ISSUES.md # Replace {{PROJECT_NAME}} with actual project name PROJECT_NAME=$(basename $(pwd)) sed -i '' "s/{{PROJECT_NAME}}/$PROJECT_NAME/g" .octo/ISSUES.md
CRITICAL: When adding or resolving issues, NEVER overwrite existing content.
Pattern:
bash# Read existing content EXISTING=$(cat .octo/ISSUES.md) # Modify specific section only # Append new issue to Open Issues table # OR move issue from Open to Resolved # Write back with all content preserved echo "$MODIFIED" > .octo/ISSUES.md
Format: ISS-YYYYMMDD-NNN
Example: ISS-20260203-001
Implementation:
bash#!/bin/bash # Get today's date in YYYYMMDD format TODAY=$(date +%Y%m%d) # Find all issues created today TODAY_ISSUES=$(grep -o "ISS-${TODAY}-[0-9]\{3\}" .octo/ISSUES.md || echo "") if [ -z "$TODAY_ISSUES" ]; then # No issues today, start at 001 NEXT_NUM="001" else # Get highest number for today HIGHEST=$(echo "$TODAY_ISSUES" | sed "s/ISS-${TODAY}-//" | sort -n | tail -1) # Increment NEXT_NUM=$(printf "%03d" $((10#$HIGHEST + 1))) fi # Generate ID ISSUE_ID="ISS-${TODAY}-${NEXT_NUM}" echo "$ISSUE_ID"
| Level | Meaning | Example | |-------|---------|---------| | critical | Blocks all progress | Production down, data loss | | high | Significant impact | Feature broken, security issue | | medium | Should address | Performance degradation, UX issue | | low | Nice to fix | Minor bug, cosmetic issue |
User: "track this bug for later"
1. Use skill-issues to create issue
2. Use skill-debug to investigate if time permits
3. Link issue ID in debug notesUser: "add fixing ISS-20260203-001 to todos"
1. Use skill-task-management to add todo
2. Reference issue ID in todo description
3. Mark issue as resolved when todo completesUser: "implement fix for ISS-20260203-001"
1. Use flow-develop to implement fix
2. Use skill-issues to resolve issue after fix
3. Link commit SHA in resolution notesGood:
Auth token refresh fails after 15 minutesPoor:
Auth brokenCritical: Only for blockers that stop all work High: Significant but workarounds exist Medium: Should fix but not urgent Low: Nice to have
Good:
Fixed OAuth token refresh by updating expiration logic in auth.ts
Commit: abc123Poor:
FixedUser: "track this issue: API rate limiting not working"
Action:
1. Create issue with appropriate severity
2. Record current phase from STATE.md
3. Continue developmentUser: "resolve ISS-20260203-001, fixed in commit abc123"
Action:
1. Ask for resolution notes
2. Move to Resolved section
3. Record resolution date and notesUser: "what issues do we have?"
Action:
1. List all open issues
2. Show severity and phase
3. Offer to show details or resolve| Action | Why It's Wrong | |--------|----------------| | Overwrite ISSUES.md | Lose all existing issues | | Skip severity validation | Invalid data in file | | Duplicate issue IDs | ID collision | | Vague descriptions | Can't remember what issue was | | Resolve without notes | No record of what was done |
| User Intent | Skill Action | Output | |-------------|--------------|--------| | "list issues" | Read and display Open Issues | Table of issues | | "add issue X" | Generate ID, append to file | Issue created | | "resolve ISS-X" | Move to Resolved section | Issue resolved | | "show ISS-X" | Find and display details | Issue details |
Issue tracking → Persistent memory across sessions
Otherwise → Forget problems, repeat mistakesTrack everything. Resolve systematically. Learn from history.
Other measured skills in the registry, with their headline benchmark lift.