community-sweep
Land community pull requests as the contributor and answer community issues on thedotmack/claude-mem. Takes stock of every open…
Generate a "Journey Into [Project]" narrative report analyzing a project's entire development history from claude-mem's timeline. Use when asked for a timeline report, project history analysis, development journey, or full project report.
Claude Code
$ npx -y skills add thedotmack/claude-mem --skill timeline-report --agent claude-code
Codex
$ npx skills add thedotmack/claude-mem --skill timeline-report -a codex -y
Cursor
$ npx skills add thedotmack/claude-mem --skill timeline-report -a cursor -y
Gemini CLI
$ npx skills add thedotmack/claude-mem --skill timeline-report -a gemini-cli -y
GitHub Copilot
$ npx skills add thedotmack/claude-mem --skill timeline-report -a github-copilot -y
OpenCode
$ npx skills add thedotmack/claude-mem --skill timeline-report -a opencode -y
Windsurf
$ npx skills add thedotmack/claude-mem --skill timeline-report -a windsurf -y
name: timeline-report description: Generate a "Journey Into [Project]" narrative report analyzing a project's entire development history from claude-mem's timeline. Use when asked for a timeline report, project history analysis, development journey, or full project report.
Generate a comprehensive narrative analysis of a project's entire development history using claude-mem's persistent memory timeline.
Use when users ask for:
The claude-mem worker must be running. The project must have claude-mem observations recorded.
**Resolve the worker port** (do this once at the start and reuse `$WORKER_PORT` in every curl call below):
WORKER_PORT="${CLAUDE_MEM_WORKER_PORT:-$(node -e "const fs=require('fs'),p=require('path'),os=require('os');const uid=(typeof process.getuid==='function'?process.getuid():77);const fallback=String(37700+(uid%100));try{const s=JSON.parse(fs.readFileSync(p.join(os.homedir(),'.claude-mem','settings.json'),'utf-8'));process.stdout.write(String(s.CLAUDE_MEM_WORKER_PORT||fallback));}catch{process.stdout.write(fallback);}" 2>/dev/null)}"This honors `CLAUDE_MEM_WORKER_PORT` env, then `~/.claude-mem/settings.json`, then falls back to the per-UID default `37700 + (uid % 100)` — matching how the worker itself picks its port. Required for multi-account setups (#2101) and any user who has overridden the default port (#2103).
Ask the user which project to analyze if not obvious from context. The project name is typically the directory name of the project (e.g., "tokyo", "my-app"). If the user says "this project", use the current working directory's basename.
**Worktree Detection:** Before using the directory basename, check if the current directory is a git worktree. In a worktree, the data source is the **parent project**, not the worktree directory itself. Run:
git_dir=$(git rev-parse --git-dir 2>/dev/null) git_common_dir=$(git rev-parse --git-common-dir 2>/dev/null) if [ "$git_dir" != "$git_common_dir" ]; then # We're in a worktree — resolve the parent project name parent_project=$(basename "$(dirname "$git_common_dir")") echo "Worktree detected. Parent project: $parent_project" else parent_project=$(basename "$PWD") fi echo "$parent_project"
If a worktree is detected, use `$parent_project` (the basename of the parent repo) as the project name for all API calls. Inform the user: "Detected git worktree. Using parent project '[name]' as the data source."
Use Bash to fetch the complete timeline from the claude-mem worker API:
curl -s "http://localhost:${WORKER_PORT}/api/context/inject?project=PROJECT_NAME&full=true"This returns the entire compressed timeline -- every observation, session boundary, and summary across the project's full history. The response is pre-formatted markdown optimized for LLM consumption.
**Token estimates:** The full timeline size depends on the project's history:
If the response is empty or returns an error, the worker may not be running or the project name may be wrong. Try `curl -s "http://localhost:${WORKER_PORT}/api/search?query=*&limit=1"` to verify the worker is healthy.
Before proceeding, estimate the token count of the fetched timeline (roughly 1 token per 4 characters). Report this to the user:
Timeline fetched: ~X observations, estimated ~Yk tokens. This analysis will consume approximately Yk input tokens + ~5-10k output tokens. Proceed? (y/n)
Wait for user confirmation before continuing if the timeline exceeds 100K tokens.
Deploy an Agent (using the Task tool) with the full timeline and the following analysis prompt. Pass the ENTIRE timeline as context to the agent. The agent should also be instructed to query the SQLite database at `~/.claude-mem/claude-mem.db` for the Token Economics section.
**Agent prompt:**
You are a technical historian analyzing a software project's complete development timeline from claude-mem's persistent memory system. The timeline below contains every observation, session boundary, and summary recorded across the project's entire history. You also have access to the claude-mem SQLite database at ~/.claude-mem/claude-mem.db. Use it to run queries for the Token Economics & Memory ROI section. The database has an "observations" table with columns: id, memory_session_id, project, text, type, title, subtitle, facts, narrative, concepts, files_read, files_modified, prompt_number, discovery_tokens, created_at, created_at_epoch, content_hash, generated_by_model, relevance_count, merged_into_project, agent_type, agent_id, metadata. Write a comprehensive narrative report titled "Journey Into [PROJECT_NAME]" that covers: ## Required Sections 1. **Project Genesis** -- When and how the project started. What were the first commits, the initial vision, the founding technical decisions? What problem was being solved? 2. **Architectural Evolution** -- How did the architecture change over time? What were the major pivots? Why did they happen? Trace the evolution from initial design through each significant restructuring. 3. **Key Breakthroughs** -- Identify the "aha" moments: when a difficult problem was finally solved, when a new approach unlocked progress, when a prototype first worked. These are the observations where the tone shifts from investigation to resolution. 4. **Work Patterns** -- Analyze the rhythm of development. Identify debugging cycles (clusters of
Persistent Context Across Sessions for Every Agent – Captures everything your agent does during sessions, compresses it with AI, and injects relevant context back into future sessions. Works with Claude Code, OpenClaw, Codex, Gemini, Hermes, Copilot, OpenCode + More
Land community pull requests as the contributor and answer community issues on thedotmack/claude-mem. Takes stock of every open…
Believable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude…
Use this when setting up claude-mem on Cursor: local or remote worker, local host-login observer or remote cmem.ai inference.
Use this when the user asks to search memory, "did we already solve this?", "how did we do X last time?", or wants work from…
Use this when fulfilling claude-mem observer jobs on Grok Bot: reply only skip_summary or one full observation XML, never prose.
This skill should be used when the user asks to "set up claude-mem", "pair claude-mem", "connect cmem", "add my cmem key", "set…
Keep a durable record of work passed between Bots in the shared Hindsight memory bank. Use when handing work to another Bot, when…
Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…
Install, configure, and operate MemPalace, including a private local palace, a shared-brain hub, or a client joining an existing…