cc-session-tools 3.3.0__tar.gz → 3.3.2__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.2}/PKG-INFO +1 -1
  2. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/pyproject.toml +1 -1
  3. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/classify.py +1 -1
  4. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/cutover.py +1 -1
  5. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/importers.py +1 -1
  6. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_service.py +1 -1
  7. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/manifest.py +2 -2
  8. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/resolve.py +3 -3
  9. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/service.py +1 -1
  10. {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-schema-design → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-design-schema}/SKILL.md +1 -1
  11. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/pm-pdata-do-audit-and-prepare-to-migrate/SKILL.md +9 -9
  12. {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-project-init → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-do-init}/SKILL.md +3 -3
  13. {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-do-migrate → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-do-manual-migration}/SKILL.md +7 -7
  14. {cc_session_tools-3.3.0/src/cc_session_tools/skills/pm-pdata-conflict-resolution → cc_session_tools-3.3.2/src/cc_session_tools/skills/pm-pdata-resolve-conflicts}/SKILL.md +1 -1
  15. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/pm-project-layout-reference/SKILL.md +2 -2
  16. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2/src/cc_session_tools.egg-info}/PKG-INFO +1 -1
  17. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/SOURCES.txt +4 -4
  18. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_bundle_discovery.py +9 -8
  19. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/LICENSE +0 -0
  20. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/README.md +0 -0
  21. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/setup.cfg +0 -0
  22. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/__init__.py +0 -0
  23. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/__init__.py +0 -0
  24. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccd.py +0 -0
  25. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccmsg.py +0 -0
  26. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccr.py +0 -0
  27. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccs.py +0 -0
  28. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccsched.py +0 -0
  29. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/ccst.py +0 -0
  30. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_ccmsg.py +0 -0
  31. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_ccsched.py +0 -0
  32. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_sessions_db.py +0 -0
  33. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/cli/migrate_telemetry.py +0 -0
  34. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/hooks-bundle.json +0 -0
  35. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/config/session-tag-hook.json +0 -0
  36. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/hooks_install.py +0 -0
  37. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/__init__.py +0 -0
  38. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/claude_flags.py +0 -0
  39. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/claude_md_install.py +0 -0
  40. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/context_overrides.py +0 -0
  41. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/db.py +0 -0
  42. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/debug.py +0 -0
  43. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/doctor.py +0 -0
  44. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/doctor_mutes.py +0 -0
  45. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/hook_registry.py +0 -0
  46. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/install_sync.py +0 -0
  47. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/levenshtein.py +0 -0
  48. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/machine_identity.py +0 -0
  49. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/__init__.py +0 -0
  50. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/addressing.py +0 -0
  51. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/cursor.py +0 -0
  52. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/lock.py +0 -0
  53. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/message.py +0 -0
  54. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/move_safety.py +0 -0
  55. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/repository.py +0 -0
  56. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/retention.py +0 -0
  57. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/service.py +0 -0
  58. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/messaging/store.py +0 -0
  59. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/occupancy.py +0 -0
  60. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/paths.py +0 -0
  61. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/__init__.py +0 -0
  62. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/backup.py +0 -0
  63. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/dump.py +0 -0
  64. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/formatting.py +0 -0
  65. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/init_paths.py +0 -0
  66. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/naming.py +0 -0
  67. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rehydrate.py +0 -0
  68. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/rename_group.py +0 -0
  69. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/reorganize.py +0 -0
  70. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/repository.py +0 -0
  71. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/session_output.py +0 -0
  72. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/store.py +0 -0
  73. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_check.py +0 -0
  74. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_lock.py +0 -0
  75. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/sync_notify.py +0 -0
  76. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/vector_clock.py +0 -0
  77. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/vector_clock_store.py +0 -0
  78. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/verify.py +0 -0
  79. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/pdata/write_log.py +0 -0
  80. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/picker.py +0 -0
  81. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/proc_lock.py +0 -0
  82. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/prompts.py +0 -0
  83. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/roots.py +0 -0
  84. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/rules.py +0 -0
  85. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/__init__.py +0 -0
  86. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/bundled_jobs.py +0 -0
  87. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cadence.py +0 -0
  88. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/cursor.py +0 -0
  89. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/digest.py +0 -0
  90. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/due.py +0 -0
  91. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/duration.py +0 -0
  92. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/jobspec.py +0 -0
  93. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/ledger.py +0 -0
  94. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/lock.py +0 -0
  95. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/notify.py +0 -0
  96. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/reconcile.py +0 -0
  97. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/registry.py +0 -0
  98. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/runner.py +0 -0
  99. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/state.py +0 -0
  100. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/store.py +0 -0
  101. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/surface.py +0 -0
  102. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/throttle.py +0 -0
  103. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/scheduler/worker.py +0 -0
  104. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/session_gc.py +0 -0
  105. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions.py +0 -0
  106. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions_db.py +0 -0
  107. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/sessions_repair.py +0 -0
  108. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/shell_install.py +0 -0
  109. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/tasklist.py +0 -0
  110. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/lib/telemetry_store.py +0 -0
  111. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/src/cc_session_tools/prompts/pdata-migration-skills-update.md +0 -0
  113. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/analyse-cc-usage/SKILL.md +0 -0
  114. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/clean-hook-sessions/SKILL.md +0 -0
  115. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/src/cc_session_tools/skills/compact-smart/SKILL.md +0 -0
  117. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/context-override/SKILL.md +0 -0
  118. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/delete-sessions/SKILL.md +0 -0
  119. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/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.2}/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.2}/src/cc_session_tools/skills/generate-8digit-code/SKILL.md +0 -0
  123. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/src/cc_session_tools/skills/list-empty-sessions/SKILL.md +0 -0
  125. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/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.2}/src/cc_session_tools/skills/move-session/SKILL.md +0 -0
  128. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/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.2}/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.2}/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.2}/src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.md +0 -0
  133. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/reduce-persistent-context/SKILL.md +0 -0
  134. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/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.2}/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.2}/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.2}/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.2}/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.2}/src/cc_session_tools/skills/select-agent-model/SKILL.md +0 -0
  141. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/send-session-message/SKILL.md +0 -0
  142. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools/skills/update-command-cache/SKILL.md +0 -0
  143. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2}/src/cc_session_tools.egg-info/dependency_links.txt +0 -0
  145. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/entry_points.txt +0 -0
  146. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/requires.txt +0 -0
  147. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/cc_session_tools.egg-info/top_level.txt +0 -0
  148. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/__init__.py +0 -0
  149. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/attribution.py +0 -0
  150. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/cache.py +0 -0
  151. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/ccusage_wrapper.py +0 -0
  152. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/cli.py +0 -0
  153. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/data/pricing.json +0 -0
  154. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/parent_inference.py +0 -0
  155. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/parser.py +0 -0
  156. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/pricing.py +0 -0
  157. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/query.py +0 -0
  158. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/report.py +0 -0
  159. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/schema.py +0 -0
  160. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/claude_code_usage/session_names.py +0 -0
  161. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/__init__.py +0 -0
  162. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/after_response.py +0 -0
  163. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/bash_hard_deny.py +0 -0
  164. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/bash_security_review.py +0 -0
  165. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/cache.py +0 -0
  166. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/catchup.py +0 -0
  167. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/confirm_8digit.py +0 -0
  168. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/context_window_warning.py +0 -0
  169. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/last_screenshot.py +0 -0
  170. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/marker_allow.py +0 -0
  171. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/markers.py +0 -0
  172. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/messaging_deliver.py +0 -0
  173. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/model_info.py +0 -0
  174. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/normalise.py +0 -0
  175. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pdata_sync.py +0 -0
  176. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pending_migration.py +0 -0
  177. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/pending_rename.py +0 -0
  178. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/session_tag.py +0 -0
  179. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/stats.py +0 -0
  180. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry.py +0 -0
  181. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry_query.py +0 -0
  182. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/telemetry_trim.py +0 -0
  183. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/transcript.py +0 -0
  184. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/src/hooks/worklog_guard.py +0 -0
  185. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_after_response.py +0 -0
  186. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_attribution.py +0 -0
  187. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_bash_hard_deny.py +0 -0
  188. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_bash_security_review.py +0 -0
  189. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cache.py +0 -0
  190. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cache_sqlite.py +0 -0
  191. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccr_orphans.py +0 -0
  192. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_emptiness.py +0 -0
  193. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_eta.py +0 -0
  194. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_list_mode.py +0 -0
  195. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_scope_flags.py +0 -0
  196. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_sentinel_sort.py +0 -0
  197. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccs_session_counts.py +0 -0
  198. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_ccsched_jobs_cli.py +0 -0
  199. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_cli.py +0 -0
  200. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_context_override_cli.py +0 -0
  201. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_doctor.py +0 -0
  202. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_gc_prune.py +0 -0
  203. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_gc_report.py +0 -0
  204. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hook_dispatcher.py +0 -0
  205. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_install_prune.py +0 -0
  206. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_install_zero_arg.py +0 -0
  207. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_hooks_uninstall.py +0 -0
  208. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_install_everything.py +0 -0
  209. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_machine_identity_cli.py +0 -0
  210. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_main_gate.py +0 -0
  211. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_cli.py +0 -0
  212. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_init_cli.py +0 -0
  213. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_reconcile_cli.py +0 -0
  214. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_rename_group_cli.py +0 -0
  215. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_reorganize_cli.py +0 -0
  216. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_sync_cli.py +0 -0
  217. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_pdata_verify_cli.py +0 -0
  218. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_repair_sessions_cli.py +0 -0
  219. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_sessions_cli.py +0 -0
  220. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_shell_install.py +0 -0
  221. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_skills_install.py +0 -0
  222. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_skills_uninstall.py +0 -0
  223. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_telemetry_query.py +0 -0
  224. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccst_telemetry_trim.py +0 -0
  225. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_ccusage_wrapper.py +0 -0
  226. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_claude_flags.py +0 -0
  227. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_claude_md_install.py +0 -0
  228. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli.py +0 -0
  229. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccd.py +0 -0
  230. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccd_dry_run.py +0 -0
  231. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccr.py +0 -0
  232. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_ccs.py +0 -0
  233. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_cli_version.py +0 -0
  234. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_confirm_8digit.py +0 -0
  235. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_context_overrides.py +0 -0
  236. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_context_window_warning.py +0 -0
  237. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_db.py +0 -0
  238. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_debug.py +0 -0
  239. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_doctor_mutes.py +0 -0
  240. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_empty_session.py +0 -0
  241. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_hook_cache.py +0 -0
  242. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_hooks_install.py +0 -0
  243. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_install_sync.py +0 -0
  244. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_last_screenshot.py +0 -0
  245. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_levenshtein.py +0 -0
  246. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_machine_identity.py +0 -0
  247. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_marker_allow.py +0 -0
  248. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_ccmsg.py +0 -0
  249. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_ccsched.py +0 -0
  250. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_sessions_db.py +0 -0
  251. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_migrate_telemetry.py +0 -0
  252. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_model_info.py +0 -0
  253. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_normalise.py +0 -0
  254. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_occupancy.py +0 -0
  255. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_parent_inference.py +0 -0
  256. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_parser.py +0 -0
  257. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_paths.py +0 -0
  258. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_pending_migration_hook.py +0 -0
  259. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_picker.py +0 -0
  260. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_pricing.py +0 -0
  261. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_proc_lock.py +0 -0
  262. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_prompts.py +0 -0
  263. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_query.py +0 -0
  264. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_report.py +0 -0
  265. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_roots.py +0 -0
  266. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_rules.py +0 -0
  267. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_scheduler_bundled_jobs.py +0 -0
  268. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_schema.py +0 -0
  269. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_session_names.py +0 -0
  270. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_session_tag.py +0 -0
  271. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions.py +0 -0
  272. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions_db.py +0 -0
  273. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_sessions_repair.py +0 -0
  274. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_tasklist.py +0 -0
  275. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_telemetry.py +0 -0
  276. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_telemetry_store.py +0 -0
  277. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/tests/test_transcript.py +0 -0
  278. {cc_session_tools-3.3.0 → cc_session_tools-3.3.2}/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.2
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.2"
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 @@ apart by a generic scan; guessing wrong here would silently bake a per-project
8
8
  judgement call into shared tooling, which this plan must not do (see the
9
9
  per-project inventory doc, not this module, for those calls). Every markdown/
10
10
  text/unknown-extension file defaults to folder-owned; a human (via the
11
- pm-project-init skill) reviews the printed report and flips individual entries
11
+ pm-pdata-do-init skill) reviews the printed report and flips individual entries
12
12
  to db-owned with an explicit record_group/strategy.
13
13
  """
14
14
  from __future__ import annotations
@@ -14,7 +14,7 @@ from cc_session_tools.lib.pdata.manifest import ManifestEntry
14
14
  def _pointer_file_content(*, project: str, entry: ManifestEntry) -> str:
15
15
  """Generic pointer content (spec pdata/init-pointer-files): the record_group now
16
16
  holding this file's data, its field/schema table, and an example query — plus,
17
- when the entry carries preface_text (set by hand per pm-project-init's
17
+ when the entry carries preface_text (set by hand per pm-pdata-do-init's
18
18
  garbled-CSV-header fix recipe), that text verbatim under its own heading."""
19
19
  lines = [
20
20
  f"# {Path(entry.path).name} — migrated to pdata",
@@ -89,7 +89,7 @@ def import_json_array_rows(project_root: Path, entry: ManifestEntry) -> list[Imp
89
89
  path = project_root / entry.path
90
90
  created_at = _mtime(path)
91
91
  data: Any = json.loads(path.read_text(encoding="utf-8"))
92
- # A hand-edited manifest entry (pm-project-init Step 4 instructs editing this
92
+ # A hand-edited manifest entry (pm-pdata-do-init Step 4 instructs editing this
93
93
  # file directly) can assign 'json-array-rows' to a file whose actual JSON
94
94
  # shape isn't an array of objects. Validate the shape here and raise
95
95
  # ValueError — the exact exception type write()'s per-entry
@@ -136,7 +136,7 @@ def _render_report(m: Manifest) -> str:
136
136
  lines.append(
137
137
  " ⚠ worth double-checking — these field names read as sentence "
138
138
  "fragments, not column names; this file's header may not be what it "
139
- "looks like (see pm-project-init's garbled-CSV-header caveat)"
139
+ "looks like (see pm-pdata-do-init's garbled-CSV-header caveat)"
140
140
  )
141
141
  lines.append(
142
142
  "Review/override entries in the proposal file listed below before running --write."
@@ -44,7 +44,7 @@ class ManifestEntry:
44
44
  # --write skips any entry that already carries one instead of re-importing it
45
45
  # (spec pdata/init-write-idempotency). None for an entry never yet migrated.
46
46
  migrated_at: str | None = None
47
- # Hand-set during review (pm-project-init's garbled-CSV-header fix recipe):
47
+ # Hand-set during review (pm-pdata-do-init's garbled-CSV-header fix recipe):
48
48
  # header/provenance text stripped from the source file before migration,
49
49
  # preserved verbatim here so cutover.archive_entries can carry it into the
50
50
  # entry's pointer file (spec pdata/init-pointer-files). None when not applicable.
@@ -95,7 +95,7 @@ def load(path: Path) -> Manifest:
95
95
  """Raises ValueError (never a raw KeyError/TypeError/AttributeError) for any
96
96
  malformed proposal file — a missing "project"/"entries" key, an "entries" that
97
97
  isn't a list, an entry that isn't an object, or an entry with an unexpected
98
- field shape. This is a real hand-edit surface (pm-project-init Step 4
98
+ field shape. This is a real hand-edit surface (pm-pdata-do-init Step 4
99
99
  instructs editing this file directly), so a shape error here must reach
100
100
  _cmd_pdata_init's `except (FileNotFoundError, ValueError)` and dry_run's
101
101
  `except ValueError` and produce the documented exit-2 validation error instead
@@ -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-pdata-do-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-pdata-do-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,10 +137,10 @@ 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
- ## Phase 5: write the readiness manifest (for `ccst pdata init`/`pm-project-init` to consume)
143
+ ## Phase 5: write the readiness manifest (for `ccst pdata init`/`pm-pdata-do-init` to consume)
144
144
 
145
145
  Once the audit reaches a settled state (per your own stopping rule - typically two consecutive
146
146
  clean verification rounds, or a documented pragmatic stop), write one machine-and-human-readable
@@ -151,8 +151,8 @@ otherwise the project's own top-level docs location. Its existence and location
151
151
  recorded in the project's own instructions file (`CLAUDE.md`/`AGENTS.md`/equivalent) so a future
152
152
  session doesn't have to search for it.
153
153
 
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`
154
+ The manifest must have, in this order, so a `pm-pdata-do-init` session running `ccst pdata init`
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,8 +161,8 @@ 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
165
- `pm-project-init` expect to consume - this is the same content this skill's own Phase 4
164
+ 3. **Per-file migration blockers**, in the exact shape `pm-pdata-design-schema` and
165
+ `pm-pdata-do-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
168
168
  single files, machine-specific paths, null-value conventions that aren't real nulls.
@@ -1,9 +1,9 @@
1
1
  ---
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.
2
+ name: pm-pdata-do-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-pdata-do-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
- # pm-project-init
6
+ # pm-pdata-do-init
7
7
 
8
8
  Drives `ccst pdata init` (spec §7) end to end and applies the judgement the tool itself
9
9
  deliberately does not: `ccst pdata init`'s automatic classifier only proposes CSV/JSON files as
@@ -1,12 +1,12 @@
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
- > (driven by the `pm-project-init` skill) is the tool-native migration mechanism: classification,
9
+ > (driven by the `pm-pdata-do-init` skill) is the tool-native migration mechanism: classification,
10
10
  > a human-reviewable manifest, backup, verify, atomic cutover, and shipped post-write doc/skill-
11
11
  > update prompts. It is the default choice wherever it is available, and this skill is superseded
12
12
  > by it for any file `ccst pdata init`'s classifier can already handle (a normal CSV/JSON file
@@ -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-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-pdata-do-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
@@ -64,7 +64,7 @@ These criteria apply to any of the folders above, not just `correspondence/`:
64
64
 
65
65
  These five folders hold folder-owned content by definition - genuinely file-shaped material
66
66
  (attachments, PDFs, `.eml` originals) that isn't a good fit for becoming pdata rows. A project
67
- being pdata-migrated (see `pm-project-init`) says nothing about whether it also has any of these
67
+ being pdata-migrated (see `pm-pdata-do-init`) says nothing about whether it also has any of these
68
68
  five folders, and vice versa - they're orthogonal. `home` is the concrete example: it's
69
69
  pdata-migrated (its structured data now lives in SQLite) and still has a live `correspondence/`
70
70
  folder full of `.md`+`.pdf` pairs, untouched by the migration, sitting right next to its `data/`
@@ -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.2
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,11 +123,11 @@ 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
130
- src/cc_session_tools/skills/pm-project-init/SKILL.md
128
+ src/cc_session_tools/skills/pm-pdata-do-init/SKILL.md
129
+ src/cc_session_tools/skills/pm-pdata-do-manual-migration/SKILL.md
130
+ src/cc_session_tools/skills/pm-pdata-resolve-conflicts/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
133
133
  src/cc_session_tools/skills/reduce-persistent-context/CALIBRATION.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():