cross-repo-cache

$npx mdskill add closedloop-ai/claude-plugins/cross-repo-cache

Verify peer repo changes to skip redundant coordinator runs.

  • Prevents unnecessary agent launches by checking git history.
  • Depends on Bash scripts and peer repository git states.
  • Compares current hashes against stored values from previous runs.
  • Returns a cache hit or miss status to determine next steps.
SKILL.md
.github/skills/cross-repo-cacheView on GitHub ↗
---
name: cross-repo-cache
description: |
  Check if cross-repo coordinator results can be reused, avoiding redundant Sonnet agent launches.
  Compares peer repo git hashes against stored hashes from last coordinator run.
  Triggers on: entering Phase 1.4.1, checking cross-repo cache, before discovering peers.
  Returns CROSS_REPO_CACHE_HIT with cached status or CROSS_REPO_CACHE_MISS to re-run coordinator.
context: fork
allowed-tools: Bash
---

# Cross-Repo Cache Skill

Check whether prior cross-repo coordinator results are still valid, avoiding redundant Sonnet agent launches when peer repositories haven't changed.

## When to Use

Activate this skill at the start of Phase 1.4.1 (Discover peers), **before** launching `@code:cross-repo-coordinator`. If the cache is fresh, skip the coordinator and use cached results.

## Usage

### Check Cache (Phase 1.4.1)

```bash
bash ${CLAUDE_SKILL_DIR}/scripts/check_cross_repo_cache.sh <WORKDIR>
```

### Stamp Cache (after coordinator completes)

After the cross-repo-coordinator runs successfully, stamp the cache:

```bash
# Compute hash of peer repo states
if [ -f ".workspace-repos.json" ]; then
  repo_hashes=""
  for repo_path in $(python3 -c "import json; [print(r['path']) for r in json.load(open('.workspace-repos.json')) if r.get('path')]" 2>/dev/null); do
    [ -d "$repo_path/.git" ] && repo_hashes="$repo_hashes$repo_path:$(git -C "$repo_path" rev-parse HEAD 2>/dev/null || echo unknown) "
  done
  echo "$repo_hashes" | shasum -a 256 > $WORKDIR/.cross-repo-hash
else
  shasum -a 256 $WORKDIR/.cross-repo-needs.json > $WORKDIR/.cross-repo-hash
fi
```

## Interpreting Output

### Cache Hit

```
CROSS_REPO_CACHE_HIT
status: NO_CROSS_REPO_NEEDED | CAPABILITIES_IDENTIFIED
capabilities:
  - peer-name: capability description
```

**Action:**
- If status is `NO_CROSS_REPO_NEEDED`: Mark 1.4.x phases complete, proceed to Phase 2
- If status is `CAPABILITIES_IDENTIFIED`: Skip coordinator, proceed to Phase 1.4.2 with cached capabilities

### Cache Miss

```
CROSS_REPO_CACHE_MISS
reason: <why the cache is stale or missing>
```

**Action:** Launch `@code:cross-repo-coordinator` as normal. After it completes, stamp the cache.

## How Freshness Works

The script hashes the git HEAD commit of each peer repository listed in `.workspace-repos.json`. If any peer has new commits, the hash changes and the coordinator re-runs. This correctly handles the case where a peer repo is updated between iterations.

## Cache Location

- Coordinator results: `$WORKDIR/.cross-repo-needs.json` (written by coordinator)
- Cache hash: `$WORKDIR/.cross-repo-hash` (written by stamp step)
- Per-repo cache: `.learnings/cross-repo-cache/{repo-name}/` (used by generic-discovery agents)
More from closedloop-ai/claude-plugins