skills/agent-session-format-check/SKILL.md
Verify agent session format compatibility for Agent Sessions. Use when any agent CLI updates, when monitoring flags drift, or when bumping max verified versions (fixtures + docs + tests). Covers session schema, usage/limits tracking, storage backends, and discovery path contracts for all supported agents.
npx skillsauth add jazzyalex/agent-sessions agent-session-format-checkInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Quickly verify whether a newer agent CLI version changes the local session format, usage/limits schema, or storage layout — and whether Agent Sessions can safely bump its verified support.
Evidence-first:
Related skill: agent-support-matrix — maintains the matrix YAML, ledger, and
update-checklist workflow. This skill focuses on detection and evidence collection;
agent-support-matrix focuses on recording and gating version bumps.
Process doc: docs/agent-support/monitoring.md — defines the severity model, cadence
(daily/weekly), and escalation workflow that feeds into this skill.
Run weekly monitoring:
./scripts/agent_watch.py --mode weekly
Report path prints to stdout and is written under
scripts/probe_scan_output/agent_watch/*/report.json.
In report.json, check each agent under results.<agent>:
verified_version, installed.parsed_version, upstream.parsed_versionweekly.local_schema (newest local session used for fingerprinting)weekly.schema_diff and evidence.schema_matches_baselineseverity and recommendationInterpretation:
installed == verified and upstream == verified: no action.installed/upstream > verified and schema_matches_baseline == true: safe to bump (after approval).schema_matches_baseline == false: collect evidence and plan a parser/fixture update.Usage and limits tracking can drift independently of session schema. Monitor both.
token_count / rate_limits event structure.codex_status_capture.sh output schema — parsed as
codex_status_json by agent_watch.py.report.json → results.codex.probes[codex_status_probe].ok return true?
If not, investigate whether Codex changed its status output format.claude_usage_capture.sh output schema — parsed as
claude_usage_json../scripts/claude-status --json records status.claude.com
indicator/incidents (parsed as claude_status_json).results.claude.probes[claude_usage_probe].ok — if false, the usage API
response format may have changed, or authentication may be required.parsing_failed, auth required, etc.), treat as high severity
because the UI can break.claude_usage_capture.sh can fail with exit 16 when Claude auth tokens are exhausted.
The /usage TUI command itself stops working in this state. This is not a format
change — resolution requires claude auth login. The failure is intermittent and clears
after re-authentication. The Swift side silently retains the last known good snapshot.
OpenCode uses a multi-file JSON tree (storage/session/, storage/message/,
storage/part/) — not JSONL. The monitoring fingerprints this tree structure.
~/.local/share/opencode/storage/
session/<project>/ses_*.json
message/<sessionId>/msg_*.json
part/<messageId>/*.json
session/message/part would
indicate a storage expansion.version, migration, schema_version fields in
session records or new migration files in the OpenCode repo.opencode_storage_latest_session kind scans the full tree (session + messages + parts)._opencode_storage_session_tree_schema_fingerprint() walks messages and parts for a
session and reports keys per record kind..db, .sqlite, or .bolt file appears under the storage root, the current
scanner will not detect it. Risk keywords in agent-watch-config.json will flag
release notes mentioning these backends, but a file-extension scan of the storage root
is not yet implemented.agent_watch.py that checks for *.db,
*.sqlite, *.bolt files under the OpenCode storage root during weekly scans.Each agent has a discovery_path_contract in agent-watch-config.json defining the
expected file layout Agent Sessions uses to discover sessions. If an upstream agent moves
or renames its storage, discovery breaks even if the parser still works.
Weekly monitoring checks these contracts. When a contract fails:
severity escalates to high.Key contracts (simplified from regexes in agent-watch-config.json):
| Agent | Expected pattern |
|----------|-----------------|
| Codex | */sessions/YYYY/MM/DD/rollout-*.jsonl |
| Claude | ~/.claude/projects/**/*.{jsonl,ndjson} |
| OpenCode | */opencode/storage/session/*/ses_*.json |
| Droid | ~/.factory/sessions/**/*.jsonl |
| Gemini | ~/.gemini/tmp/<hash>/(chats/)?session-*.json |
| Copilot | ~/.copilot/session-state/*.jsonl |
| OpenClaw | */agents/<id>/sessions/*.jsonl |
From the weekly report (all agents):
results.<agent>.weekly.local_schema.file (newest session).unknown_types, unknown_keys (additive drift),
missing_types, missing_keys (may mean "not observed in this sample").ok status for usage probes.Optional (recommended when a bump is needed):
scripts/agent_captures/<timestamp>/<agent>/.Resources/Fixtures/stage0/agents/<agent>/.session_meta payload keys.token_count, rate_limits, billing) when emitted.docs/agent-support/agent-support-matrix.yml (agents.<key>.max_verified_version)docs/agent-support/agent-support-ledger.ymldocs/agent-json-tracking.md under "Upstream Version Check Log"xcodebuild -project AgentSessions.xcodeproj -scheme AgentSessions \
-destination 'platform=macOS' test
./scripts/xcode_test_stable.sh -only-testing:AgentSessionsTests/SessionParserTests
When turning a real session into a committed fixture:
tools
Capture deterministic macOS screenshots for testing, docs, release notes, and marketing assets. Use when asked to automate app screenshots, batch-generate screenshot sets, standardize window sizing/composition, or choose between Peekaboo and native macOS screenshot tooling.
development
Maintain Agent Sessions agent support matrix and JSON/JSONL parsing compatibility. Use when checking upstream agent releases for session format changes, updating max verified versions in docs/agent-support/agent-support-matrix.yml, or updating docs/agent-json-tracking.md and fixtures/tests.
development
Use when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release.
tools
Use when work should span one or more detached tasks but still behave like one job with a single owner context. TaskFlow is the durable flow substrate under authoring layers like Lobster, ACPX, plugins, or plain code. Keep conditional logic in the caller; use TaskFlow for flow identity, child-task linkage, waiting state, revision-checked mutations, and user-facing emergence.