From galeharness-cli
Discover session files for a repo across Claude Code, Codex, and Cursor, and extract session metadata (timestamps, branch, cwd, size, platform). Invoked by session-research agents — not intended for direct user queries.
npx claudepluginhub wangrenzhu-ola/galeharnesscodingcli --plugin galeharness-cliThis skill uses the workspace's default tool permissions.
Agent-facing primitive. Discover session files and emit session metadata as JSONL across Claude Code, Codex, and Cursor.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Agent-facing primitive. Discover session files and emit session metadata as JSONL across Claude Code, Codex, and Cursor.
This skill exists so that agents researching session history do not need to know the layout of session stores on disk or the JSONL shapes of each platform. The scripts under scripts/ own that knowledge.
Space-separated positional args:
<repo> — repo folder name (e.g., my-project). Used for directory matching in Claude Code and Cursor, and as the CWD filter for Codex sessions.<days> — scan window in days (e.g., 7). Session files older than this are skipped.<platform> (optional) — one of claude, codex, cursor. Omit to search all three.Run the discovery-plus-metadata pipeline from the skill's own scripts/ directory:
bash scripts/discover-sessions.sh <repo> <days> [--platform <platform>] \
| tr '\n' '\0' \
| xargs -0 python3 scripts/extract-metadata.py --cwd-filter <repo>
Return the raw stdout verbatim — one JSON object per session, then a final _meta line. Callers parse the JSONL directly, so do not paraphrase, reformat, or summarize.
If discovery finds no files, the pipeline still emits a clean _meta line (files_processed: 0). Return that as-is.
Each session line is a JSON object. Common fields across platforms:
platform — claude, codex, or cursorfile — absolute path to the session JSONLsize — file size in bytests — session start timestamp (ISO 8601)session — session identifierPlatform-specific fields:
branch (git branch) and last_ts (last message timestamp).cwd (working directory), source, cli_version, model, last_ts.ts is derived from file mtime and session from the containing directory name.The final _meta line has files_processed, parse_errors, and optionally filtered_by_cwd (count of Codex sessions dropped by the CWD filter).
If the discovery script errors (e.g., unreadable home directory, permission failure), let the error surface to the caller. Do not substitute git log, file listings, or other sources — this skill's contract is session metadata, nothing else.
If _meta reports parse_errors > 0, return the JSONL as-is. The caller decides how to handle partial data.