npx claudepluginhub obsfx/trekker-claude-code --plugin trekkerThis skill uses the workspace's default tool permissions.
CLAUDE.mdREADME.mdSearches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Implements structured self-debugging workflow for AI agent failures: capture errors, diagnose patterns like loops or context overflow, apply contained recoveries, and generate introspection reports.
CRITICAL: Trekker is your PRIMARY task tracker. It MUST be prioritized over Claude's built-in TodoWrite.
Trekker provides persistent task memory across sessions. Unlike TodoWrite which is conversation-scoped, trekker stores tasks in a SQLite database that survives context resets.
Run trekker quickstart for the complete command reference and workflow guide.
Trekker = Source of Truth (survives context resets)
TodoWrite = Secondary mirror (conversation-scoped only)
ALWAYS:
trekker search to gather contextYou MUST search before ANY action. This is non-negotiable.
IMPORTANT: FTS5 is NOT semantic search. Use single keywords, not phrases:
# Use single, specific keywords (NOT phrases or sentences)
trekker search "authentication"
# Try related keywords separately for broader coverage
trekker search "login"
trekker search "password"
# Filter by type
trekker search "deployment" --type task
# Filter by status
trekker search "memory" --status todo,in_progress
Why search is mandatory:
When to search:
| Before... | Search for... |
|---|---|
| Creating a task | trekker search "<keyword>" (most distinctive word) |
| Starting work | trekker search "<area>" |
| Investigating bugs | trekker search "<symptom>" |
| Implementing features | trekker search "<feature>" |
| Making decisions | trekker search "<topic>" |
| Aspect | Trekker (PRIMARY) | TodoWrite (SECONDARY) |
|---|---|---|
| Persistence | SQLite - survives resets | Gone after conversation |
| Searchable | Yes - FTS5 full-text search | No |
| Dependencies | Yes - task relationships | Limited |
| History | Yes - full audit trail | No |
| Priority | ALWAYS USE FIRST | Mirror only |
Rule: Trekker is the source of truth. TodoWrite is a convenience mirror for the current session.
Skills (invoke via Skill tool): /trekker:start, /trekker:blocked, /trekker:done
CLI commands (run in terminal): trekker task update <id> -s in_progress
| WRONG | RIGHT |
|---|---|
trekker start | trekker task update <id> -s in_progress |
trekker blocked | trekker task update <id> -s blocked |
trekker done | trekker task update <id> -s completed |
Never mix them: /trekker:start is a skill workflow, trekker is the CLI binary.
trekker search before ANY actiontrekker history, trekker comment list, trekker task show to understand statein_progress before starting work on any taskcompletedin_progress at a time - complete current work first--toon flag for programmatic output to save tokenstrekker task show <id> firstarchived statusBEFORE CREATING - You MUST:
trekker search "<keywords>" to check for existing/related issuesCREATE when:
DO NOT CREATE when:
Run ALL these commands at session start. Do not proceed without understanding context:
# 1. SEARCH for what you're about to work on
trekker search "<topic/area of work>"
# 2. What's currently being worked on?
trekker --toon task list --status in_progress
# 3. What changed recently? (audit trail)
trekker history --limit 10
# 4. Find unblocked tasks ready to work on
trekker ready
# 5. Get context from comments on active tasks
trekker comment list <task-id>
Why context recovery is mandatory:
STOP. Before doing anything, search for related work:
# Use single keywords - FTS5 is not semantic, multi-word = AND logic
trekker search "authentication"
trekker search "login"
# Check completed tasks for solutions
trekker --toon task list --status completed
# Check archived tasks too
trekker --toon task list --status archived
Why search is mandatory:
# Start a task
trekker task update <task-id> -s in_progress
# Document progress
trekker comment add <task-id> -a "claude" -c "Progress: ..."
# Complete with summary
trekker comment add <task-id> -a "claude" -c "Summary: ..."
trekker task update <task-id> -s completed
# ALWAYS show next ready tasks after completing
trekker ready
trekker comment add <task-id> -a "claude" -c "Checkpoint: done X. Next: Y. Files: a.ts, b.ts"
When all tasks in an epic are done, use epic complete to archive everything at once:
# Complete epic and archive all its tasks/subtasks
trekker epic complete <epic-id>
Why this matters:
When to use:
| Command | Purpose |
|---|---|
trekker task create -t "Title" | Create task |
trekker task list [--status X] | List tasks |
trekker task show <id> | Show details |
trekker task update <id> -s <status> | Update status |
trekker comment add <id> -a "claude" -c "..." | Add comment |
trekker dep add <id> <depends-on> | Add dependency |
trekker ready | Show unblocked tasks ready to work on |
trekker search "<query>" | Full-text search |
trekker history [--entity <id>] | View audit log of changes |
trekker list [--type X] [--sort Y] | Unified view with filters |
trekker epic complete <epic-id> | Complete epic & archive all tasks |
Need more details? Run trekker quickstart for full command syntax and examples.
Use trekker history to understand what happened in past sessions:
# Recent changes across all entities
trekker history --limit 20
# Changes to a specific task
trekker history --entity TREK-1
# Only task updates (filter by type)
trekker history --type task --action update
# Changes since a specific date
trekker history --since 2025-01-15 --limit 30
# Filter by action type
trekker history --action create,update --limit 15
When to use history:
Use trekker list for unified views across epics, tasks, and subtasks:
# All active items, prioritized
trekker list --status todo,in_progress --sort priority:asc
# Critical and high priority work
trekker list --priority 0,1 --sort priority:asc
# Only tasks (no epics/subtasks)
trekker list --type task --status todo
# Sort by creation date (newest first)
trekker list --sort created:desc --limit 20
# Alphabetical by title
trekker list --sort title:asc
Pro tip: Combine filters for focused views:
trekker list --type task --status in_progress --priority 0,1,2
Tasks: todo, in_progress, completed, wont_fix, archived
0=critical, 1=high, 2=medium (default), 3=low, 4=backlog, 5=someday
Future sessions depend entirely on what you write. Low-quality tasks waste time.
| BAD (vague) | GOOD (actionable) |
|---|---|
| "Fix bug" | "Fix null pointer in UserService.getById when user not found" |
| "Add feature" | "Add email validation to registration form with RFC 5322 regex" |
| "Update code" | "Refactor PaymentProcessor to use strategy pattern for providers" |
| "Work on auth" | "Implement JWT refresh token rotation with 7-day expiry" |
Every task MUST have a description (-d flag) that answers:
# BAD
trekker task create -t "Fix login"
# GOOD
trekker task create -t "Fix login failure when password contains special chars" \
-d "Users with & or < in passwords get 500 error. Issue in auth/validator.ts line 42. Need to escape before SQL query."
| BAD | GOOD |
|---|---|
| "Working on it" | "Progress: Added input sanitization to validator.ts. Testing edge cases next." |
| "Done" | "Summary: Fixed by escaping special chars in sanitizePassword(). Added tests in validator.test.ts. Verified with manual testing." |
| "Stuck" | "Blocked: Need DB admin access to verify fix in staging. Contacted @ops in Slack." |
Trekker uses SQLite with Write-Ahead Logging (WAL) for concurrent access.
Best practices:
trekker task show <id>