cc-session-tools 3.3.0__tar.gz → 3.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {cc_session_tools-3.3.0/src/cc_session_tools.egg-info → cc_session_tools-3.3.1}/PKG-INFO +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/pyproject.toml +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/resolve.py +3 -3
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/service.py +1 -1
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-schema-design → cc_session_tools-3.3.1/src/cc_session_tools/skills/pm-pdata-design-schema}/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/pm-pdata-do-audit-and-prepare-to-migrate/SKILL.md +6 -6
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-do-migrate → cc_session_tools-3.3.1/src/cc_session_tools/skills/pm-pdata-do-manual-migration}/SKILL.md +6 -6
- {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-conflict-resolution → cc_session_tools-3.3.1/src/cc_session_tools/skills/pm-pdata-resolve-conflicts}/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/pm-project-init/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/pm-project-layout-reference/SKILL.md +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1/src/cc_session_tools.egg-info}/PKG-INFO +1 -1
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/SOURCES.txt +3 -3
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_bundle_discovery.py +9 -8
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/LICENSE +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/README.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/setup.cfg +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccd.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccr.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccst.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/hooks-bundle.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/session-tag-hook.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/hooks_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/claude_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/claude_md_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/context_overrides.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/debug.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/doctor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/doctor_mutes.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/hook_registry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/install_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/levenshtein.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/machine_identity.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/addressing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/cursor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/message.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/move_safety.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/repository.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/retention.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/service.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/occupancy.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/backup.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/classify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/cutover.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/dump.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/formatting.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/importers.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_service.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/manifest.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/naming.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rehydrate.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rename_group.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/reorganize.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/repository.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/session_output.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_check.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_notify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/vector_clock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/vector_clock_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/verify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/write_log.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/picker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/proc_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/prompts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/roots.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/bundled_jobs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cadence.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cursor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/digest.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/due.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/duration.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/jobspec.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/ledger.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/notify.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/reconcile.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/registry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/runner.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/state.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/surface.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/throttle.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/worker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/session_gc.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions_repair.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/shell_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/tasklist.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/telemetry_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/prompts/pdata-migration-claude-md-update.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/prompts/pdata-migration-skills-update.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/analyse-cc-usage/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/clean-hook-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/clean-hook-sessions/scripts/clean-hook-sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/compact-smart/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/context-override/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/delete-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/delete-sessions/scripts/delete_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/do-executor-critic-assessor-loop/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/find-claude-code-session/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/generate-8digit-code/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/generate-8digit-code/scripts/generate_8digit_code.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/list-empty-sessions/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/list-empty-sessions/scripts/list_empty_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/manage-recurring-cc-jobs-using-ccsched/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/hooks/sessionstart-pending-rename.sh +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/scripts/cc_session_rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/scripts/move_session.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/pm-update-central-files/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/analyze_context.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/duplicates.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/measure.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/tokens.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/scripts/usage.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/select-agent-model/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/send-session-message/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/update-command-cache/SKILL.md +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/update-command-cache/scripts/update_command_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/dependency_links.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/entry_points.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/requires.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/top_level.txt +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/attribution.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/ccusage_wrapper.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/data/pricing.json +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/parent_inference.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/parser.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/pricing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/schema.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/session_names.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/__init__.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/after_response.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/bash_hard_deny.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/bash_security_review.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/catchup.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/confirm_8digit.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/context_window_warning.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/last_screenshot.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/marker_allow.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/markers.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/messaging_deliver.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/model_info.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/normalise.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pdata_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pending_migration.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pending_rename.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/session_tag.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/stats.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry_trim.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/transcript.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/worklog_guard.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_after_response.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_attribution.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_bash_hard_deny.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_bash_security_review.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cache_sqlite.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccr_orphans.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_emptiness.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_eta.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_list_mode.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_scope_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_sentinel_sort.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_session_counts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_ccsched_jobs_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_context_override_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_doctor.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_gc_prune.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_gc_report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hook_dispatcher.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_install_prune.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_install_zero_arg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_uninstall.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_install_everything.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_machine_identity_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_main_gate.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_init_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_reconcile_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_rename_group_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_reorganize_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_sync_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_verify_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_repair_sessions_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_sessions_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_shell_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_skills_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_skills_uninstall.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_telemetry_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_telemetry_trim.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccusage_wrapper.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_claude_flags.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_claude_md_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccd.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccd_dry_run.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccr.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_version.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_confirm_8digit.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_context_overrides.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_context_window_warning.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_debug.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_doctor_mutes.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_empty_session.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_hook_cache.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_hooks_install.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_install_sync.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_last_screenshot.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_levenshtein.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_machine_identity.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_marker_allow.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_ccmsg.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_ccsched.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_model_info.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_normalise.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_occupancy.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_parent_inference.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_parser.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_paths.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_pending_migration_hook.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_picker.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_pricing.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_proc_lock.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_prompts.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_query.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_report.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_roots.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_rules.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_scheduler_bundled_jobs.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_schema.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_session_names.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_session_tag.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions_db.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions_repair.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_tasklist.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_telemetry.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_telemetry_store.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_transcript.py +0 -0
- {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_worklog_guard.py +0 -0
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "cc-session-tools"
|
|
7
|
-
version = "3.3.
|
|
7
|
+
version = "3.3.1"
|
|
8
8
|
description = "Claude Code session management CLI tools (ccd, ccr, ccs, claude-code-usage, ccst) and hook library (hooks package)"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { file = "LICENSE" }
|
|
@@ -8,7 +8,7 @@ overwrite (that is rehydrate.py's job for the clean fast-forward case; this modu
|
|
|
8
8
|
|
|
9
9
|
Never auto-merges, never silently keeps one side and discards the other — every record surfaced
|
|
10
10
|
here needs an explicit choice from the caller (ultimately Chris, via the CLI/skill), matching the
|
|
11
|
-
existing `pm-pdata-
|
|
11
|
+
existing `pm-pdata-resolve-conflicts` skill's single-file-conflict framing exactly. Every
|
|
12
12
|
record: `apply_resolution` is all-or-nothing over the whole diff, for the reasons in its own
|
|
13
13
|
docstring.
|
|
14
14
|
|
|
@@ -342,7 +342,7 @@ def _apply_resolution(
|
|
|
342
342
|
f"record_id(s) {collisions}: id collision (the same id was independently assigned to "
|
|
343
343
|
f"two unrelated records) — not resolvable as a local/dump choice, since either pick "
|
|
344
344
|
f"would discard one side's real record; needs a manual, out-of-band fix (see the "
|
|
345
|
-
f"pm-pdata-
|
|
345
|
+
f"pm-pdata-resolve-conflicts skill, point 4)"
|
|
346
346
|
)
|
|
347
347
|
|
|
348
348
|
group_mismatches = sorted(rid for rid, rd in by_id.items() if rd.group_mismatch)
|
|
@@ -351,7 +351,7 @@ def _apply_resolution(
|
|
|
351
351
|
f"record_id(s) {group_mismatches}: group mismatch (same id and created_at, but the "
|
|
352
352
|
f"two sides disagree on record_group) — not resolvable as a local/dump choice. "
|
|
353
353
|
f"Compare each side's content/file_path before assuming a rename is safe (see the "
|
|
354
|
-
f"pm-pdata-
|
|
354
|
+
f"pm-pdata-resolve-conflicts skill, point 5, for why it may instead be a "
|
|
355
355
|
f"same-second id collision), then retry"
|
|
356
356
|
)
|
|
357
357
|
|
|
@@ -310,7 +310,7 @@ def update_record(
|
|
|
310
310
|
content and fields are independent — updating fields never re-serializes content, and vice
|
|
311
311
|
versa. This is deliberate (it's what lets a --field-only update skip resending content), not
|
|
312
312
|
a gap: a record group whose content is designed to mirror its fields is the caller's own
|
|
313
|
-
duplication to keep in sync, on every write, by passing both. See pm-pdata-schema
|
|
313
|
+
duplication to keep in sync, on every write, by passing both. See pm-pdata-design-schema
|
|
314
314
|
SKILL.md's "content and extension fields are never auto-synced" section."""
|
|
315
315
|
if content is None and file_path is None and not fields:
|
|
316
316
|
raise ValueError(
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-schema
|
|
2
|
+
name: pm-pdata-design-schema
|
|
3
3
|
description: Use before writing a genuinely new kind of structured data into any project's ccst pdata store - deciding whether it fits an existing record_group, needs a brand-new group, and whether that group needs an extension table or free-text content suffices. Triggers on "I need to track a new kind of record", "what record_group should this be", "does this need an extension table", "add a new field to ccst pdata", or any session about to call `ccst pdata add`/`schema add-field` for a record shape it hasn't used before. Prevents lazy catch-all groups (`notes`/`misc`) that silently recreate the EAV undifferentiated-bucket problem the schema deliberately rejected.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-pdata-do-audit-and-prepare-to-migrate
|
|
3
|
-
description: Full consistency/completeness audit of a project's central and recordkeeping files - OneDrive sync-conflict cleanup, cross-checking every index/register/log against what it claims to describe, and a pdata-migration readiness pass. Ends by writing a readiness manifest file that feeds `ccst pdata init` (via `pm-project-init`) - the tool-native migration mechanism - and, only for the narrow record shapes it can't express, the deprecated `pm-pdata-do-
|
|
3
|
+
description: Full consistency/completeness audit of a project's central and recordkeeping files - OneDrive sync-conflict cleanup, cross-checking every index/register/log against what it claims to describe, and a pdata-migration readiness pass. Ends by writing a readiness manifest file that feeds `ccst pdata init` (via `pm-project-init`) - the tool-native migration mechanism - and, only for the narrow record shapes it can't express, the deprecated `pm-pdata-do-manual-migration` fallback. Triggers on "review all my central files", "audit the project files", "check everything is up to date and consistent", "get this project ready for pdata", "/pm-pdata-do-audit-and-prepare-to-migrate", or any request for a thorough review/health-check of a project's index/log/register files (as opposed to a single-session wrap-up, which is pm-update-central-files). Especially relevant when a project is scheduled to migrate to pdata - this audit is the recommended prerequisite pass, since a schema design should not be built against files that still have unresolved sync-conflict duplicates or known dangling rows.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# Audit central files
|
|
7
7
|
|
|
8
8
|
> **This audit feeds `ccst pdata init`, not a manual migration.** The readiness manifest this
|
|
9
9
|
> skill produces (Phase 5) is a pre-flight pass for `ccst pdata init` (driven by the
|
|
10
|
-
> `pm-project-init` skill) - the tool-native, default migration mechanism. `pm-pdata-do-
|
|
10
|
+
> `pm-project-init` skill) - the tool-native, default migration mechanism. `pm-pdata-do-manual-migration`
|
|
11
11
|
> is a deprecated fallback for record shapes `ccst pdata init` genuinely can't express; it is not
|
|
12
12
|
> the default next step after this audit.
|
|
13
13
|
|
|
@@ -121,7 +121,7 @@ Give the user a single reviewable delete script for every confirmed-safe deletio
|
|
|
121
121
|
## Phase 4: pdata-readiness pass
|
|
122
122
|
|
|
123
123
|
Compile a dedicated `pdata-readiness-notes.md` (or equivalent) listing, file by file, every
|
|
124
|
-
blocker a future `pm-pdata-schema
|
|
124
|
+
blocker a future `pm-pdata-design-schema` session would hit if it tried to design a schema
|
|
125
125
|
against the file as it currently stands:
|
|
126
126
|
|
|
127
127
|
- Inconsistent separator/delimiter use within one logical column.
|
|
@@ -137,7 +137,7 @@ against the file as it currently stands:
|
|
|
137
137
|
means something different from a genuinely blank one).
|
|
138
138
|
|
|
139
139
|
This file is deliberately NOT a migration plan - it's a findings list for whoever runs the actual
|
|
140
|
-
`pm-pdata-schema
|
|
140
|
+
`pm-pdata-design-schema` session next, so that work isn't designed against a still-messy
|
|
141
141
|
substrate.
|
|
142
142
|
|
|
143
143
|
## Phase 5: write the readiness manifest (for `ccst pdata init`/`pm-project-init` to consume)
|
|
@@ -152,7 +152,7 @@ recorded in the project's own instructions file (`CLAUDE.md`/`AGENTS.md`/equival
|
|
|
152
152
|
session doesn't have to search for it.
|
|
153
153
|
|
|
154
154
|
The manifest must have, in this order, so a `pm-project-init` session running `ccst pdata init`
|
|
155
|
-
(or, for the narrow record shapes it can't express, the deprecated `pm-pdata-do-
|
|
155
|
+
(or, for the narrow record shapes it can't express, the deprecated `pm-pdata-do-manual-migration`
|
|
156
156
|
fallback) can parse it deterministically:
|
|
157
157
|
|
|
158
158
|
1. **Header**: audit date, session/agent identifier, and an explicit "STALE IF" note - state the
|
|
@@ -161,7 +161,7 @@ fallback) can parse it deterministically:
|
|
|
161
161
|
2. **File inventory**: every central/index/recordkeeping file the audit covered, with: full path,
|
|
162
162
|
row/entry count, last-verified-clean date, and its role (`index`, `register`, `log`,
|
|
163
163
|
`narrative`, `derived-artefact`).
|
|
164
|
-
3. **Per-file migration blockers**, in the exact shape `pm-pdata-schema
|
|
164
|
+
3. **Per-file migration blockers**, in the exact shape `pm-pdata-design-schema` and
|
|
165
165
|
`pm-project-init` expect to consume - this is the same content this skill's own Phase 4
|
|
166
166
|
already produces, just formalised into the manifest rather than a standalone prose report:
|
|
167
167
|
inconsistent separators, unstable/non-existent natural keys, mixed date formats, multi-schema
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-do-
|
|
3
|
-
description: Execute a project's actual migration from flat central/index files to a ccst pdata record store - build a migration plan, adversarially verify the plan itself, present it for the user's confirmation, then execute it and write a results file. Consumes the readiness manifest pm-pdata-do-audit-and-prepare-to-migrate produces if one exists, but always explores the project independently too, so it works even without that manifest. Triggers on "migrate this project to pdata", "run the pdata migration", "/pm-pdata-do-
|
|
2
|
+
name: pm-pdata-do-manual-migration
|
|
3
|
+
description: Execute a project's actual migration from flat central/index files to a ccst pdata record store - build a migration plan, adversarially verify the plan itself, present it for the user's confirmation, then execute it and write a results file. Consumes the readiness manifest pm-pdata-do-audit-and-prepare-to-migrate produces if one exists, but always explores the project independently too, so it works even without that manifest. Triggers on "migrate this project to pdata", "run the pdata migration", "/pm-pdata-do-manual-migration", or any request to actually move a project's CSV/index/log files into pdata (as opposed to just auditing readiness, which is pm-pdata-do-audit-and-prepare-to-migrate, or designing the target schema in the abstract, which is pm-pdata-design-schema).
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
#
|
|
6
|
+
# Manually migrate a project to pdata (deprecated fallback)
|
|
7
7
|
|
|
8
8
|
> **Deprecated fallback — `ccst pdata init` is the standard mechanism.** `ccst pdata init`
|
|
9
9
|
> (driven by the `pm-project-init` skill) is the tool-native migration mechanism: classification,
|
|
@@ -25,9 +25,9 @@ description: Execute a project's actual migration from flat central/index files
|
|
|
25
25
|
|
|
26
26
|
- `pm-pdata-do-audit-and-prepare-to-migrate` - readiness audit. Finds and fixes problems in the CURRENT flat files.
|
|
27
27
|
Produces a readiness manifest. Does not touch pdata at all.
|
|
28
|
-
- `pm-pdata-schema
|
|
28
|
+
- `pm-pdata-design-schema` - designs the TARGET record-group schema in the abstract (field names,
|
|
29
29
|
types, groupings) before any data moves.
|
|
30
|
-
- `pm-pdata-do-
|
|
30
|
+
- `pm-pdata-do-manual-migration` (this skill) - takes whatever schema exists (designed via the skill above,
|
|
31
31
|
or designed inline as part of this skill's own plan if no separate design session happened) and
|
|
32
32
|
actually moves the data: `ccst pdata add`/`batch` calls, verification, and a results record.
|
|
33
33
|
|
|
@@ -59,7 +59,7 @@ audit pass would.
|
|
|
59
59
|
|
|
60
60
|
## Step 2: design or confirm the target schema
|
|
61
61
|
|
|
62
|
-
For each central file being migrated, decide (or confirm, if `pm-pdata-schema
|
|
62
|
+
For each central file being migrated, decide (or confirm, if `pm-pdata-design-schema` already
|
|
63
63
|
ran):
|
|
64
64
|
|
|
65
65
|
- **Record group name** - typically the file's own conceptual name (`correspondence-log`,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: pm-pdata-
|
|
2
|
+
name: pm-pdata-resolve-conflicts
|
|
3
3
|
description: Use immediately when `ccst pdata update` or `ccst pdata delete` exits 3 (a version conflict) - takes the CLI's current-vs-attempted diff and presents it to Chris for reconciliation, per spec §6.2's "the session asks Chris how to reconcile" contract. Also use when `ccst pdata resolve` reports a cross-machine fork (a `.pdata-db-dump` conflict between two laptops), or phrasing like "pdata update conflict", "version conflict on a record", "someone else already updated this row", "sync conflict", "pdata fork between machines". Never auto-retries, never silently picks a side, never discards either version.
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-project-init
|
|
3
|
-
description: Use when initializing a brand-new project's ccst pdata store, or migrating an existing ~/cc/<project>'s informally-accumulated flat files into it - drives `ccst pdata init` and applies judgement reviewing its classification report (spec §3's folder-owned/db-owned framework), since the tool's own defaults are deliberately conservative and need a human decision on every ambiguous file. Triggers - "migrate <project> to pdata", "run pdata init for <project>", "set up the data store for <project>", "/pm-project-init". Do NOT use for ccst pdata verify, per-record-group schema design (pm-pdata-schema
|
|
3
|
+
description: Use when initializing a brand-new project's ccst pdata store, or migrating an existing ~/cc/<project>'s informally-accumulated flat files into it - drives `ccst pdata init` and applies judgement reviewing its classification report (spec §3's folder-owned/db-owned framework), since the tool's own defaults are deliberately conservative and need a human decision on every ambiguous file. Triggers - "migrate <project> to pdata", "run pdata init for <project>", "set up the data store for <project>", "/pm-project-init". Do NOT use for ccst pdata verify, per-record-group schema design (pm-pdata-design-schema), or version-conflict reconciliation (pm-pdata-resolve-conflicts) - those are separate skills.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# pm-project-init
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: pm-project-layout-reference
|
|
3
|
-
description: Canonical reference for ~/cc/<project>'s optional folder conventions (correspondence/, meetings-and-calls/, analysis/, workstreams/, workstreams-archived/) and the assessment criteria for using them - which folders a given project needs, when correspondence/ should nest by year, and how a workstream moves from active to archived. Read this before setting up a new project's folders, before reorganising an existing project's layout, or before deciding whether a project's correspondence/ needs splitting. Reference-only - does not perform any reorganisation itself; for an actual flat-to-nested split once you've decided one is needed, see `ccst pdata reorganize`. Triggers - "how should this project be organised", "should correspondence/ be split", "archive this workstream", "/pm-project-layout-reference". Do NOT use for the pdata data-store migration itself (pm-project-init) or per-record-group schema design (pm-pdata-schema
|
|
3
|
+
description: Canonical reference for ~/cc/<project>'s optional folder conventions (correspondence/, meetings-and-calls/, analysis/, workstreams/, workstreams-archived/) and the assessment criteria for using them - which folders a given project needs, when correspondence/ should nest by year, and how a workstream moves from active to archived. Read this before setting up a new project's folders, before reorganising an existing project's layout, or before deciding whether a project's correspondence/ needs splitting. Reference-only - does not perform any reorganisation itself; for an actual flat-to-nested split once you've decided one is needed, see `ccst pdata reorganize`. Triggers - "how should this project be organised", "should correspondence/ be split", "archive this workstream", "/pm-project-layout-reference". Do NOT use for the pdata data-store migration itself (pm-project-init) or per-record-group schema design (pm-pdata-design-schema) - those are separate skills; this one is about folder-owned content and structure, not the data store.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# pm-project-layout-reference
|
|
@@ -123,10 +123,10 @@ src/cc_session_tools/skills/move-session/SKILL.md
|
|
|
123
123
|
src/cc_session_tools/skills/move-session/hooks/sessionstart-pending-rename.sh
|
|
124
124
|
src/cc_session_tools/skills/move-session/scripts/cc_session_rules.py
|
|
125
125
|
src/cc_session_tools/skills/move-session/scripts/move_session.py
|
|
126
|
-
src/cc_session_tools/skills/pm-pdata-
|
|
126
|
+
src/cc_session_tools/skills/pm-pdata-design-schema/SKILL.md
|
|
127
127
|
src/cc_session_tools/skills/pm-pdata-do-audit-and-prepare-to-migrate/SKILL.md
|
|
128
|
-
src/cc_session_tools/skills/pm-pdata-do-
|
|
129
|
-
src/cc_session_tools/skills/pm-pdata-
|
|
128
|
+
src/cc_session_tools/skills/pm-pdata-do-manual-migration/SKILL.md
|
|
129
|
+
src/cc_session_tools/skills/pm-pdata-resolve-conflicts/SKILL.md
|
|
130
130
|
src/cc_session_tools/skills/pm-project-init/SKILL.md
|
|
131
131
|
src/cc_session_tools/skills/pm-project-layout-reference/SKILL.md
|
|
132
132
|
src/cc_session_tools/skills/pm-update-central-files/SKILL.md
|
|
@@ -140,17 +140,18 @@ def test_bundled_prompts_are_no_longer_placeholders():
|
|
|
140
140
|
assert "PLACEHOLDER" not in text
|
|
141
141
|
|
|
142
142
|
|
|
143
|
-
def
|
|
144
|
-
"""pm-pdata-do-audit-and-prepare-to-migrate and pm-pdata-do-
|
|
145
|
-
pm-pdata-audit/pm-pdata-migrate in 3.1.0
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
143
|
+
def test_pm_pdata_audit_and_manual_migration_are_bundled_skills():
|
|
144
|
+
"""pm-pdata-do-audit-and-prepare-to-migrate and pm-pdata-do-manual-migration (renamed from
|
|
145
|
+
pm-pdata-audit/pm-pdata-migrate in 3.1.0, then pm-pdata-do-migrate renamed again to
|
|
146
|
+
pm-pdata-do-manual-migration for clarity once it became a deprecated fallback) were built
|
|
147
|
+
directly under ~/.claude/skills/ in an earlier session - moved into this repo's bundled
|
|
148
|
+
skills/ so ccst skills install / install-everything provision them on every machine, not
|
|
149
|
+
just the one they were authored on. No registry to update - _discover_skills is a directory
|
|
150
|
+
scan (any subdir with a SKILL.md), so this test is really asserting the directories/files
|
|
150
151
|
exist and are named correctly."""
|
|
151
152
|
discovered = {p.name for p in ccst._discover_skills(ccst._discover_source_dir())}
|
|
152
153
|
assert "pm-pdata-do-audit-and-prepare-to-migrate" in discovered
|
|
153
|
-
assert "pm-pdata-do-
|
|
154
|
+
assert "pm-pdata-do-manual-migration" in discovered
|
|
154
155
|
|
|
155
156
|
|
|
156
157
|
def test_compact_smart_is_a_bundled_skill():
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_ccsched.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_sessions_db.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_telemetry.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/hooks-bundle.json
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/session-tag-hook.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/claude_md_install.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/context_overrides.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/machine_identity.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/__init__.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/addressing.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/cursor.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/message.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/move_safety.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/repository.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/retention.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/service.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/classify.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/formatting.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/importers.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_paths.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_service.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/manifest.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rehydrate.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rename_group.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/reorganize.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/repository.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/session_output.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_check.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_notify.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/vector_clock.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/write_log.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/__init__.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/bundled_jobs.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cadence.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cursor.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/digest.py
RENAMED
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/duration.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/jobspec.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/ledger.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/lock.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/notify.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/reconcile.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/registry.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/runner.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/state.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/store.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/surface.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/throttle.py
RENAMED
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/worker.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions_repair.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/telemetry_store.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/compact-smart/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|