synthesizing-cc-bigpicture · diff
git:20260411.af2e024 to git:20260411.a0d1d86
18 added, 85 removed. Audit A to A.
---
name: synthesizing-cc-bigpicture
description: Synthesizes a living big-picture meta-plan from Claude Code sessions, plans, tasks, and team communications. Use when orienting across projects, assessing reasoning modes, or creating a plan-to-plan overview.
compatibility: Designed for Claude Code
metadata:
allowed-tools: Read, Grep, Glob
argument-hint: [project-name] [time-range] [output-path]
context: fork
---
# Big-Picture Synthesis
**Target**: $ARGUMENTS
Synthesizes a **plan to plan** — an overarching view across all Claude Code
artifacts. A reasoning tool that connects sessions, plans, tasks, and memories
into a coherent narrative of what you're working on, why, and where you're headed.
## Arguments
| Position | Name | Required | Default | Description |
|----------|------|----------|---------|-------------|
| 1 | `project-name` | no | all projects | Filter to a single project (substring, case-insensitive). Use `all` for all. |
| 2 | `time-range` | no | all time | E.g. `7d`, `30d`, `this-week`. |
| 3 | `output-path` | no | auto | Where to write output. |
**Default output path:**
- `project-name` set: `<decoded-project-path>/docs/bigpicture.md`
- `all` or omitted: `~/.claude/bigpicture.md`
- Explicit `output-path`: overrides both.
**Project matching**: Matched against decoded `~/.claude/projects/<encoded-path>/`
directories (`-` → `/` in encoding). Substring match on any path segment.
**Examples:**
```
/synthesizing-cc-bigpicture # All → ~/.claude/bigpicture.md
/synthesizing-cc-bigpicture Agents-eval # Single → project docs/
/synthesizing-cc-bigpicture Agents-eval 7d # Single, last 7 days
/synthesizing-cc-bigpicture all 30d ./bigpicture.md # All, 30 days, custom path
```
- ## Two Reasoning Axes
-
- Track per work stream to surface where you are and what shift is needed.
-
- ### Diverge / Converge
-
- - **Diverge**: Expanding — brainstorming, exploring options, opening questions
- - **Converge**: Narrowing — selecting approaches, committing, closing decisions
- - **Signals**: Open questions in plans = diverging. Task completion clustering = converging.
- - **Alert**: Diverging for N sessions without convergence → decision debt
-
- ### Strategic / Tactical
-
- - **Strategic** (top-down, deductive): Principles → plans → tasks. PRD → architecture → implementation.
- - **Tactical** (bottom-up, inductive): Observations → patterns → principles. Bugs → learnings → plan revisions.
- - **Signals**: PRD→task flow = strategic. AGENT_LEARNINGS, blockers→revisions = tactical.
- - **Alert**: All strategic (no implementation feedback) or all tactical (reactive without direction)
-
## When to Use
- Starting a work session — orient across projects
- Planning what to work on next — strategic prioritization
- Sprint/week boundary — maintain the meta-plan
- Feeling stuck — surface current reasoning mode and whether a shift is needed
## Do Not Use
- Searching a specific past conversation (use `/resume` or `/history`)
- Per-session context (session-memory does this automatically)
- Real-time usage monitoring (use `/insights`)
- ## CC Data Sources
-
- ```
- ~/.claude/
- ├── history.jsonl # Global prompt log (display, timestamp, project, sessionId)
- ├── stats-cache.json # Daily aggregates (messageCount, sessionCount, toolCallCount)
- ├── projects/<encoded-path>/
- │ ├── memory/MEMORY.md # Per-project persistent knowledge
- │ ├── <session-uuid>.jsonl # Full transcripts (metadata-scan only)
- │ ├── <session-uuid>/subagents/ # Subagent transcripts
- │ └── subagents/*.jsonl # Subagent session transcripts
- ├── session-summaries/*.md # Per-session distilled summaries
- ├── plans/*.md # Plan mode files
- ├── tasks/<session-or-team-name>/ # Tasks (*.json, skip .lock/.highwatermark)
- └── teams/<team-name>/ # config.json + inboxes/<member>.json
- ```
-
- See `references/cc-entry-types.md` for JSONL entry type reference.
-
## Project Filtering
When `project-name` is set (not `all`), ALL data collection and output must
respect the filter. Apply these rules once, consistently:
1. **Session allowlist**: From `history.jsonl`, collect `sessionId` values whose
`project` field matches (case-insensitive).
2. **Project dirs**: Filter `~/.claude/projects/*/` to matching decoded paths.
3. **Plans**: Content-based — include only plans mentioning the project name.
4. **Tasks**: Match task dir names against session allowlist (UUIDs) or filtered
team names.
5. **Teams**: Include only teams whose `config.json` references the project name.
6. **Session .jsonl**: Only read files whose UUID is in the session allowlist.
7. **Output**: Every section scoped to filtered data only. Exception:
"Cross-Project Connections" may reference other projects as outbound links.
## Workflow
1. **Parse arguments** — Apply defaults per Arguments table. Resolve output path.
2. **Check existing** — If bigpicture.md exists at output path, load for
incremental update (preserve structure, refresh content).
3. **Discover & filter projects** — Glob `~/.claude/projects/*/`. Decode paths.
Apply project filter if set. Build session allowlist from `history.jsonl`.
4. **Progressive retrieval** — Escalate through tiers, stop when every output
section has concrete evidence. See `references/progressive-retrieval.md`
for tier definitions, cost estimates, and the escalation rule. Start at
Tier 1 (metadata-only).
5. **Collect signals** — Following the progressive retrieval tiers, collect
- signals starting from Tier 1 (sequential, metadata-first, no subagents):
- - **Activity**: `stats-cache.json` — daily counts for trajectory
- - **Sessions**: `history.jsonl` — unique sessionIds, timestamps, topics
- - **Memory**: `projects/*/memory/MEMORY.md` — persistent knowledge
- - **Plans**: `plans/*.md` — goals, open questions, decisions
- - **Tasks**: `tasks/*/*.json` — dependency graph, status
- - **Teams**: `teams/*/config.json` + `inboxes/*.json` — structure, comms
- - **Session summaries**: `session-summaries/*.md` — distilled session insights (skip if directory absent)
- - **Session metadata**: First+last 5 lines of `.jsonl` — timestamps, branches
- - **Subagent transcripts**: Glob `~/.claude/projects/*/subagents/*.jsonl`,
- read first 5 + last 5 lines of each (cap at 10 most recent by mtime).
- Extract: agent name/type, task summary, outcome (success/error), duration.
- - **Project docs**: Decoded project path → `CHANGELOG.md`, `AGENT_REQUESTS.md`
-
- **Critical**: Never bulk-read full `.jsonl` transcripts. Use `history.jsonl`
- for discovery and first+last lines for metadata only.
+ signals starting from Tier 1. See `references/cc-data-sources.md` for the
+ full data source layout. Walk these in order (sequential, metadata-first,
+ no subagents):
+ - `stats-cache.json`, `history.jsonl`, project memory, plans, tasks, teams
+ - Session metadata (first+last 5 lines of each `.jsonl`)
+ - Session summaries (skip if directory absent)
+ - Subagent transcripts (first+last 5 lines, cap 10 most recent by mtime)
+ - Project docs (`CHANGELOG.md`, `AGENT_REQUESTS.md`)
- 6. **Classify reasoning modes** per work stream:
- - Open questions vs. closed decisions → diverge/converge
- - Plan-driven tasks vs. learning entries → strategic/tactical
- - Flag imbalances (see alerts above)
+ 6. **Classify reasoning modes** per work stream — diverge/converge and
+ strategic/tactical. See `references/reasoning-modes.md` for axis definitions,
+ signals, and alert conditions.
7. **Synthesize** — Group by project → time clusters. Link plans↔sessions↔tasks.
Surface blockers, trajectory, recurring themes, cross-project connections.
- 8. **Output** using format below. Write to output path.
-
- ## Output Format
-
- ```markdown
- # Big Picture — <date>
-
- ## Reasoning Mode Summary
- | Project | Phase | D/C | S/T | Alert |
- |---------|-------|-----|-----|-------|
-
- ## Active Work Streams
- ### <Project>
- - **Status:** active/stalled — N sessions in last 7d
- - **Focus:** <from memory, session summaries + latest sessions>
- - **Mode:** <diverging+tactical = exploring> | <converging+strategic = building>
- - **Key decisions / Open questions:** <from plans>
- - **Tasks:** N open / N total — blockers: <list>
- - **Subagent activity:** <if present, summarize recent agent runs: type, outcome>
- - **Trajectory:** accelerating/steady/stalled
-
- ## Cross-Project Connections
- ## Active Plans
- ## TODOs & DONEs
- ## Blockers & Stale Items
- ## Mode Transitions Needed
- ```
+ 8. **Output** using the template in `references/output-template.md`. Write to
+ output path.
## Common Pitfalls
- **Data dump**: If output exceeds ~200 lines, raise abstraction. Interpret, don't list.
- **Reading full transcripts**: Use `history.jsonl` + first/last lines only.
- **False mode classification**: Reasoning modes are heuristic signals, not verdicts.
- **Spawning subagents**: Don't. Sequential within fork context is sufficient.
## Quality Check
- Correct > Complete > Minimal (ACE-FCA)
- ~100-200 lines output
- Every claim traces to a specific CC artifact
- Incremental update preserves structure, refreshes content
## References
- See `references/cc-entry-types.md` for JSONL session entry type taxonomy.
+ - `references/progressive-retrieval.md` — tier escalation rule and cost estimates
+ - `references/cc-data-sources.md` — full `~/.claude/` directory layout
+ - `references/cc-entry-types.md` — JSONL session entry type taxonomy
+ - `references/reasoning-modes.md` — diverge/converge and strategic/tactical axes
+ - `references/output-template.md` — standard output format