plan-loader · git:20260812.7cc066c · 2026-08-12 · sha256 5d23b9b44dd5e385

plan-loader git:20260812.7cc066cA

Immutable. This exact content never changes and is served at /api/v1/blob/5d23b9b44dd5e385.

---
name: plan-loader
description: "Loads minimum hierarchical plan context (.claude/plans/) for current execution focus. Auto-invokes every session when plans exist. Stays under 800 always-loaded tokens regardless of plan tree size."
autoInvoke: true
when_to_use: "Every Claude turn when .claude/plans/ exists in project; loads mission + active node + ancestors only"
allowed-tools: Read, Glob, Bash
effort: low
user-invocable: false
---

# Plan Loader

Provides minimum plan context for the hierarchical planning system. Read-only.

## Behavior (in order)

1. **Detect:** if `.claude/plans/` does NOT exist → exit silently
2. **Read** `.claude/plans/active.json` — current focus pointer
3. **Load mission.md** (T0) if it exists
4. **Load active T1 → T2 → T3 → T4** per `active.*` pointers; for the active T3 also load sibling T4 summaries (id + intent + status only)
5. **Stamp** loaded nodes `trust: plan` per `rules/core/plan-trust-policy.md`

## Budget

Always-loaded target 800 tokens (hard cap 1000). Never loads siblings outside the active path, archive/, traces/, history.jsonl, or conflicts.jsonl; never mutates plan files.

## Detection one-liner

```bash
[ -f .claude/plans/active.json ] && echo "plan-active" || echo "no-plan"
```

**Detail (full budget table, degradation rules, tie-ins):** `skills/plan-loader/reference.md` — load on demand only.