Skip to content

Add local cache system for external ticketing/documentation systems #142

Description

@Jeffallan

Problem

Workflow commands make repeated API calls to external systems (Jira, Linear, GitHub Issues, Confluence, etc.) during each session. This causes:

  • Slow context gathering (19,307 Read operations in usage data, many for external content)
  • Session failures when APIs are slow or unavailable
  • Redundant fetching of unchanged data

Proposal

Implement a generalized local cache system that works with any supported ticketing/documentation backend:

Cache Structure

.claude/cache/
├── tickets/
│   ├── index.json          # Ticket metadata + relationships
│   └── {ticket-key}.json   # Individual ticket details
├── docs/
│   └── {doc-id}.json       # Cached documentation pages
└── sync-state.json         # Last sync timestamps per source

Behavior

  1. On first run: Fetch all relevant data, populate cache
  2. On subsequent runs: Read from cache first, sync only changes
  3. Manual refresh: /sync-cache command to force full refresh
  4. Automatic expiry: Configurable TTL per data type

Backend Abstraction

Cache system should be backend-agnostic:

  • Jira adapter: Maps Epic Link relationships
  • Linear adapter: Maps project/issue hierarchies
  • GitHub adapter: Maps labels/milestones
  • Confluence adapter: Maps space/page structure

Benefits

  • Eliminates API as workflow bottleneck
  • Enables offline/degraded-mode operation
  • Faster epic planning (query local JSON vs. API round-trips)

Relates To

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestworkflowWorkflow commands and automation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions