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.
Files changed (278) hide show
  1. {cc_session_tools-3.3.0/src/cc_session_tools.egg-info → cc_session_tools-3.3.1}/PKG-INFO +1 -1
  2. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/pyproject.toml +1 -1
  3. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/resolve.py +3 -3
  4. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/service.py +1 -1
  5. {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
  6. {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
  7. {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
  8. {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
  9. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/pm-project-init/SKILL.md +1 -1
  10. {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
  11. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1/src/cc_session_tools.egg-info}/PKG-INFO +1 -1
  12. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/SOURCES.txt +3 -3
  13. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_bundle_discovery.py +9 -8
  14. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/LICENSE +0 -0
  15. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/README.md +0 -0
  16. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/setup.cfg +0 -0
  17. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/__init__.py +0 -0
  18. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/__init__.py +0 -0
  19. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccd.py +0 -0
  20. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccmsg.py +0 -0
  21. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccr.py +0 -0
  22. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccs.py +0 -0
  23. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccsched.py +0 -0
  24. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/ccst.py +0 -0
  25. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_ccmsg.py +0 -0
  26. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_ccsched.py +0 -0
  27. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_sessions_db.py +0 -0
  28. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/cli/migrate_telemetry.py +0 -0
  29. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/hooks-bundle.json +0 -0
  30. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/config/session-tag-hook.json +0 -0
  31. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/hooks_install.py +0 -0
  32. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/__init__.py +0 -0
  33. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/claude_flags.py +0 -0
  34. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/claude_md_install.py +0 -0
  35. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/context_overrides.py +0 -0
  36. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/db.py +0 -0
  37. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/debug.py +0 -0
  38. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/doctor.py +0 -0
  39. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/doctor_mutes.py +0 -0
  40. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/hook_registry.py +0 -0
  41. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/install_sync.py +0 -0
  42. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/levenshtein.py +0 -0
  43. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/machine_identity.py +0 -0
  44. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/__init__.py +0 -0
  45. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/addressing.py +0 -0
  46. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/cursor.py +0 -0
  47. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/lock.py +0 -0
  48. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/message.py +0 -0
  49. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/move_safety.py +0 -0
  50. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/repository.py +0 -0
  51. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/retention.py +0 -0
  52. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/service.py +0 -0
  53. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/messaging/store.py +0 -0
  54. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/occupancy.py +0 -0
  55. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/paths.py +0 -0
  56. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/__init__.py +0 -0
  57. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/backup.py +0 -0
  58. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/classify.py +0 -0
  59. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/cutover.py +0 -0
  60. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/dump.py +0 -0
  61. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/formatting.py +0 -0
  62. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/importers.py +0 -0
  63. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_paths.py +0 -0
  64. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/init_service.py +0 -0
  65. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/manifest.py +0 -0
  66. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/naming.py +0 -0
  67. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rehydrate.py +0 -0
  68. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/rename_group.py +0 -0
  69. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/reorganize.py +0 -0
  70. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/repository.py +0 -0
  71. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/session_output.py +0 -0
  72. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/store.py +0 -0
  73. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_check.py +0 -0
  74. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_lock.py +0 -0
  75. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/sync_notify.py +0 -0
  76. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/vector_clock.py +0 -0
  77. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/vector_clock_store.py +0 -0
  78. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/verify.py +0 -0
  79. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/pdata/write_log.py +0 -0
  80. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/picker.py +0 -0
  81. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/proc_lock.py +0 -0
  82. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/prompts.py +0 -0
  83. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/roots.py +0 -0
  84. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/rules.py +0 -0
  85. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/__init__.py +0 -0
  86. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/bundled_jobs.py +0 -0
  87. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cadence.py +0 -0
  88. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/cursor.py +0 -0
  89. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/digest.py +0 -0
  90. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/due.py +0 -0
  91. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/duration.py +0 -0
  92. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/jobspec.py +0 -0
  93. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/ledger.py +0 -0
  94. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/lock.py +0 -0
  95. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/notify.py +0 -0
  96. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/reconcile.py +0 -0
  97. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/registry.py +0 -0
  98. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/runner.py +0 -0
  99. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/state.py +0 -0
  100. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/store.py +0 -0
  101. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/surface.py +0 -0
  102. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/throttle.py +0 -0
  103. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/scheduler/worker.py +0 -0
  104. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/session_gc.py +0 -0
  105. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions.py +0 -0
  106. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions_db.py +0 -0
  107. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/sessions_repair.py +0 -0
  108. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/shell_install.py +0 -0
  109. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/tasklist.py +0 -0
  110. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/lib/telemetry_store.py +0 -0
  111. {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
  112. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/prompts/pdata-migration-skills-update.md +0 -0
  113. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/analyse-cc-usage/SKILL.md +0 -0
  114. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/clean-hook-sessions/SKILL.md +0 -0
  115. {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
  116. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/compact-smart/SKILL.md +0 -0
  117. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/context-override/SKILL.md +0 -0
  118. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/delete-sessions/SKILL.md +0 -0
  119. {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
  120. {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
  121. {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
  122. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/generate-8digit-code/SKILL.md +0 -0
  123. {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
  124. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/list-empty-sessions/SKILL.md +0 -0
  125. {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
  126. {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
  127. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/move-session/SKILL.md +0 -0
  128. {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
  129. {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
  130. {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
  131. {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
  132. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.md +0 -0
  133. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/reduce-persistent-context/SKILL.md +0 -0
  134. {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
  135. {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
  136. {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
  137. {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
  138. {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
  139. {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
  140. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/select-agent-model/SKILL.md +0 -0
  141. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/send-session-message/SKILL.md +0 -0
  142. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools/skills/update-command-cache/SKILL.md +0 -0
  143. {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
  144. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/dependency_links.txt +0 -0
  145. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/entry_points.txt +0 -0
  146. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/requires.txt +0 -0
  147. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/cc_session_tools.egg-info/top_level.txt +0 -0
  148. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/__init__.py +0 -0
  149. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/attribution.py +0 -0
  150. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/cache.py +0 -0
  151. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/ccusage_wrapper.py +0 -0
  152. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/cli.py +0 -0
  153. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/data/pricing.json +0 -0
  154. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/parent_inference.py +0 -0
  155. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/parser.py +0 -0
  156. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/pricing.py +0 -0
  157. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/query.py +0 -0
  158. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/report.py +0 -0
  159. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/schema.py +0 -0
  160. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/claude_code_usage/session_names.py +0 -0
  161. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/__init__.py +0 -0
  162. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/after_response.py +0 -0
  163. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/bash_hard_deny.py +0 -0
  164. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/bash_security_review.py +0 -0
  165. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/cache.py +0 -0
  166. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/catchup.py +0 -0
  167. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/confirm_8digit.py +0 -0
  168. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/context_window_warning.py +0 -0
  169. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/last_screenshot.py +0 -0
  170. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/marker_allow.py +0 -0
  171. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/markers.py +0 -0
  172. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/messaging_deliver.py +0 -0
  173. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/model_info.py +0 -0
  174. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/normalise.py +0 -0
  175. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pdata_sync.py +0 -0
  176. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pending_migration.py +0 -0
  177. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/pending_rename.py +0 -0
  178. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/session_tag.py +0 -0
  179. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/stats.py +0 -0
  180. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry.py +0 -0
  181. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry_query.py +0 -0
  182. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/telemetry_trim.py +0 -0
  183. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/transcript.py +0 -0
  184. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/src/hooks/worklog_guard.py +0 -0
  185. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_after_response.py +0 -0
  186. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_attribution.py +0 -0
  187. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_bash_hard_deny.py +0 -0
  188. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_bash_security_review.py +0 -0
  189. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cache.py +0 -0
  190. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cache_sqlite.py +0 -0
  191. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccr_orphans.py +0 -0
  192. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_emptiness.py +0 -0
  193. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_eta.py +0 -0
  194. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_list_mode.py +0 -0
  195. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_scope_flags.py +0 -0
  196. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_sentinel_sort.py +0 -0
  197. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccs_session_counts.py +0 -0
  198. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_ccsched_jobs_cli.py +0 -0
  199. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_cli.py +0 -0
  200. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_context_override_cli.py +0 -0
  201. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_doctor.py +0 -0
  202. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_gc_prune.py +0 -0
  203. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_gc_report.py +0 -0
  204. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hook_dispatcher.py +0 -0
  205. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_install_prune.py +0 -0
  206. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_install_zero_arg.py +0 -0
  207. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_hooks_uninstall.py +0 -0
  208. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_install_everything.py +0 -0
  209. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_machine_identity_cli.py +0 -0
  210. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_main_gate.py +0 -0
  211. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_cli.py +0 -0
  212. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_init_cli.py +0 -0
  213. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_reconcile_cli.py +0 -0
  214. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_rename_group_cli.py +0 -0
  215. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_reorganize_cli.py +0 -0
  216. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_sync_cli.py +0 -0
  217. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_pdata_verify_cli.py +0 -0
  218. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_repair_sessions_cli.py +0 -0
  219. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_sessions_cli.py +0 -0
  220. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_shell_install.py +0 -0
  221. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_skills_install.py +0 -0
  222. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_skills_uninstall.py +0 -0
  223. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_telemetry_query.py +0 -0
  224. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccst_telemetry_trim.py +0 -0
  225. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_ccusage_wrapper.py +0 -0
  226. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_claude_flags.py +0 -0
  227. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_claude_md_install.py +0 -0
  228. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli.py +0 -0
  229. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccd.py +0 -0
  230. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccd_dry_run.py +0 -0
  231. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccr.py +0 -0
  232. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_ccs.py +0 -0
  233. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_cli_version.py +0 -0
  234. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_confirm_8digit.py +0 -0
  235. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_context_overrides.py +0 -0
  236. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_context_window_warning.py +0 -0
  237. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_db.py +0 -0
  238. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_debug.py +0 -0
  239. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_doctor_mutes.py +0 -0
  240. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_empty_session.py +0 -0
  241. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_hook_cache.py +0 -0
  242. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_hooks_install.py +0 -0
  243. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_install_sync.py +0 -0
  244. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_last_screenshot.py +0 -0
  245. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_levenshtein.py +0 -0
  246. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_machine_identity.py +0 -0
  247. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_marker_allow.py +0 -0
  248. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_ccmsg.py +0 -0
  249. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_ccsched.py +0 -0
  250. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_sessions_db.py +0 -0
  251. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_migrate_telemetry.py +0 -0
  252. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_model_info.py +0 -0
  253. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_normalise.py +0 -0
  254. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_occupancy.py +0 -0
  255. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_parent_inference.py +0 -0
  256. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_parser.py +0 -0
  257. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_paths.py +0 -0
  258. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_pending_migration_hook.py +0 -0
  259. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_picker.py +0 -0
  260. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_pricing.py +0 -0
  261. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_proc_lock.py +0 -0
  262. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_prompts.py +0 -0
  263. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_query.py +0 -0
  264. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_report.py +0 -0
  265. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_roots.py +0 -0
  266. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_rules.py +0 -0
  267. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_scheduler_bundled_jobs.py +0 -0
  268. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_schema.py +0 -0
  269. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_session_names.py +0 -0
  270. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_session_tag.py +0 -0
  271. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions.py +0 -0
  272. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions_db.py +0 -0
  273. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_sessions_repair.py +0 -0
  274. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_tasklist.py +0 -0
  275. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_telemetry.py +0 -0
  276. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_telemetry_store.py +0 -0
  277. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_transcript.py +0 -0
  278. {cc_session_tools-3.3.0 → cc_session_tools-3.3.1}/tests/test_worklog_guard.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cc-session-tools
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: Claude Code session management CLI tools (ccd, ccr, ccs, claude-code-usage, ccst) and hook library (hooks package)
5
5
  Author: raffishquartan
6
6
  License: MIT License
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "cc-session-tools"
7
- version = "3.3.0"
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-conflict-resolution` skill's single-file-conflict framing exactly. Every
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-conflict-resolution skill, point 4)"
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-conflict-resolution skill, point 5, for why it may instead be a "
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-design
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-design
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-migrate` 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.
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-migrate`
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-design` session would hit if it tried to design a 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-design` session next, so that work isn't designed against a still-messy
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-migrate`
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-design` and
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-migrate
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-migrate", 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-schema-design).
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
- # Migrate a project to pdata
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-design` - designs the TARGET record-group schema in the abstract (field names,
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-migrate` (this skill) - takes whatever schema exists (designed via the skill above,
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-design` already
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-conflict-resolution
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-design), or version-conflict reconciliation (pm-pdata-conflict-resolution) - those are separate skills.
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-design) - those are separate skills; this one is about folder-owned content and structure, not the data store.
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
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: cc-session-tools
3
- Version: 3.3.0
3
+ Version: 3.3.1
4
4
  Summary: Claude Code session management CLI tools (ccd, ccr, ccs, claude-code-usage, ccst) and hook library (hooks package)
5
5
  Author: raffishquartan
6
6
  License: MIT License
@@ -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-conflict-resolution/SKILL.md
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-migrate/SKILL.md
129
- src/cc_session_tools/skills/pm-pdata-schema-design/SKILL.md
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 test_pm_pdata_audit_and_migrate_are_bundled_skills():
144
- """pm-pdata-do-audit-and-prepare-to-migrate and pm-pdata-do-migrate (renamed from
145
- pm-pdata-audit/pm-pdata-migrate in 3.1.0 for clarity) were built directly under
146
- ~/.claude/skills/ in an earlier session - moved into this repo's bundled skills/ so
147
- ccst skills install / install-everything provision them on every machine, not just the
148
- one they were authored on. No registry to update - _discover_skills is a directory scan
149
- (any subdir with a SKILL.md), so this test is really asserting the directories/files
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-migrate" in discovered
154
+ assert "pm-pdata-do-manual-migration" in discovered
154
155
 
155
156
 
156
157
  def test_compact_smart_is_a_bundled_skill():