gitwise-cli 0.24.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 (172) hide show
  1. gitwise_cli-0.24.2/.gitignore +38 -0
  2. gitwise_cli-0.24.2/CHANGELOG.md +313 -0
  3. gitwise_cli-0.24.2/LICENSE +21 -0
  4. gitwise_cli-0.24.2/PKG-INFO +151 -0
  5. gitwise_cli-0.24.2/README.md +122 -0
  6. gitwise_cli-0.24.2/bin/gitwise +24 -0
  7. gitwise_cli-0.24.2/gitwise/__init__.py +11 -0
  8. gitwise_cli-0.24.2/gitwise/__main__.py +113 -0
  9. gitwise_cli-0.24.2/gitwise/_cli_completions.py +88 -0
  10. gitwise_cli-0.24.2/gitwise/_cli_dispatch.py +469 -0
  11. gitwise_cli-0.24.2/gitwise/_cli_introspection.py +275 -0
  12. gitwise_cli-0.24.2/gitwise/_cli_parser.py +345 -0
  13. gitwise_cli-0.24.2/gitwise/_cli_setup_agents.py +439 -0
  14. gitwise_cli-0.24.2/gitwise/_i18n_data.json +1934 -0
  15. gitwise_cli-0.24.2/gitwise/_paths.py +22 -0
  16. gitwise_cli-0.24.2/gitwise/_runtime_config.py +246 -0
  17. gitwise_cli-0.24.2/gitwise/audit.py +338 -0
  18. gitwise_cli-0.24.2/gitwise/branches.py +183 -0
  19. gitwise_cli-0.24.2/gitwise/clean.py +197 -0
  20. gitwise_cli-0.24.2/gitwise/commit.py +142 -0
  21. gitwise_cli-0.24.2/gitwise/conflicts.py +112 -0
  22. gitwise_cli-0.24.2/gitwise/context.py +163 -0
  23. gitwise_cli-0.24.2/gitwise/design.py +383 -0
  24. gitwise_cli-0.24.2/gitwise/diff.py +309 -0
  25. gitwise_cli-0.24.2/gitwise/doctor.py +116 -0
  26. gitwise_cli-0.24.2/gitwise/git.py +254 -0
  27. gitwise_cli-0.24.2/gitwise/health.py +345 -0
  28. gitwise_cli-0.24.2/gitwise/i18n.py +99 -0
  29. gitwise_cli-0.24.2/gitwise/log.py +329 -0
  30. gitwise_cli-0.24.2/gitwise/merge.py +193 -0
  31. gitwise_cli-0.24.2/gitwise/optimize.py +212 -0
  32. gitwise_cli-0.24.2/gitwise/output.py +652 -0
  33. gitwise_cli-0.24.2/gitwise/pick.py +102 -0
  34. gitwise_cli-0.24.2/gitwise/pr.py +543 -0
  35. gitwise_cli-0.24.2/gitwise/py.typed +0 -0
  36. gitwise_cli-0.24.2/gitwise/schema.py +49 -0
  37. gitwise_cli-0.24.2/gitwise/setup.py +551 -0
  38. gitwise_cli-0.24.2/gitwise/setup_agents/__init__.py +36 -0
  39. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/__init__.py +17 -0
  40. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/aider.py +5 -0
  41. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/base.py +5 -0
  42. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/codex.py +5 -0
  43. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/continue_adapter.py +5 -0
  44. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/cursor.py +5 -0
  45. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/opencode.py +5 -0
  46. gitwise_cli-0.24.2/gitwise/setup_agents/adapters/pi.py +5 -0
  47. gitwise_cli-0.24.2/gitwise/setup_agents/exec.py +449 -0
  48. gitwise_cli-0.24.2/gitwise/setup_agents/format.py +164 -0
  49. gitwise_cli-0.24.2/gitwise/setup_agents/plan.py +254 -0
  50. gitwise_cli-0.24.2/gitwise/setup_agents/plan_gitfiles.py +167 -0
  51. gitwise_cli-0.24.2/gitwise/setup_agents/plan_skills.py +256 -0
  52. gitwise_cli-0.24.2/gitwise/setup_agents/providers/__init__.py +96 -0
  53. gitwise_cli-0.24.2/gitwise/setup_agents/providers/aider.py +11 -0
  54. gitwise_cli-0.24.2/gitwise/setup_agents/providers/base.py +79 -0
  55. gitwise_cli-0.24.2/gitwise/setup_agents/providers/claude.py +408 -0
  56. gitwise_cli-0.24.2/gitwise/setup_agents/providers/codex.py +11 -0
  57. gitwise_cli-0.24.2/gitwise/setup_agents/providers/continue_adapter.py +11 -0
  58. gitwise_cli-0.24.2/gitwise/setup_agents/providers/cursor.py +11 -0
  59. gitwise_cli-0.24.2/gitwise/setup_agents/providers/opencode.py +11 -0
  60. gitwise_cli-0.24.2/gitwise/setup_agents/providers/pi.py +11 -0
  61. gitwise_cli-0.24.2/gitwise/setup_agents/state.py +141 -0
  62. gitwise_cli-0.24.2/gitwise/setup_agents/types.py +48 -0
  63. gitwise_cli-0.24.2/gitwise/show.py +118 -0
  64. gitwise_cli-0.24.2/gitwise/snapshot.py +110 -0
  65. gitwise_cli-0.24.2/gitwise/stash.py +188 -0
  66. gitwise_cli-0.24.2/gitwise/status.py +93 -0
  67. gitwise_cli-0.24.2/gitwise/suggest.py +148 -0
  68. gitwise_cli-0.24.2/gitwise/summarize.py +202 -0
  69. gitwise_cli-0.24.2/gitwise/sync.py +257 -0
  70. gitwise_cli-0.24.2/gitwise/tag.py +252 -0
  71. gitwise_cli-0.24.2/gitwise/undo.py +145 -0
  72. gitwise_cli-0.24.2/gitwise/update.py +42 -0
  73. gitwise_cli-0.24.2/gitwise/utils/__init__.py +1 -0
  74. gitwise_cli-0.24.2/gitwise/utils/git_output.py +51 -0
  75. gitwise_cli-0.24.2/gitwise/utils/json_envelope.py +58 -0
  76. gitwise_cli-0.24.2/gitwise/utils/parsing.py +34 -0
  77. gitwise_cli-0.24.2/gitwise/worktree.py +182 -0
  78. gitwise_cli-0.24.2/install.sh +53 -0
  79. gitwise_cli-0.24.2/pyproject.toml +121 -0
  80. gitwise_cli-0.24.2/share/agents/skills/git-audit/SKILL.md +25 -0
  81. gitwise_cli-0.24.2/share/agents/skills/git-clean/SKILL.md +22 -0
  82. gitwise_cli-0.24.2/share/agents/skills/git-optimize/SKILL.md +21 -0
  83. gitwise_cli-0.24.2/share/aider/CONVENTIONS.md.template +8 -0
  84. gitwise_cli-0.24.2/share/aider/aider.conf.yml.template +4 -0
  85. gitwise_cli-0.24.2/share/claude/CLAUDE.md.template +9 -0
  86. gitwise_cli-0.24.2/share/claude/rules/gitwise.md +16 -0
  87. gitwise_cli-0.24.2/share/claude/settings.json.template +47 -0
  88. gitwise_cli-0.24.2/share/claude/skills/git-audit/SKILL.md +25 -0
  89. gitwise_cli-0.24.2/share/claude/skills/git-clean/SKILL.md +22 -0
  90. gitwise_cli-0.24.2/share/claude/skills/git-optimize/SKILL.md +21 -0
  91. gitwise_cli-0.24.2/share/codex/agents/gitwise.toml.template +18 -0
  92. gitwise_cli-0.24.2/share/continue/rules/gitwise.md.template +14 -0
  93. gitwise_cli-0.24.2/share/cursor/rules/gitwise.mdc.template +16 -0
  94. gitwise_cli-0.24.2/share/git-config-modern.txt +48 -0
  95. gitwise_cli-0.24.2/share/hooks/commit-msg +22 -0
  96. gitwise_cli-0.24.2/share/hooks/pre-commit +19 -0
  97. gitwise_cli-0.24.2/share/opencode/agents/gitwise.md.template +14 -0
  98. gitwise_cli-0.24.2/share/pi/skills/gitwise.md.template +14 -0
  99. gitwise_cli-0.24.2/share/schemas/v1/input/audit.json +40 -0
  100. gitwise_cli-0.24.2/share/schemas/v1/input/branches.json +51 -0
  101. gitwise_cli-0.24.2/share/schemas/v1/input/clean.json +52 -0
  102. gitwise_cli-0.24.2/share/schemas/v1/input/commands.json +36 -0
  103. gitwise_cli-0.24.2/share/schemas/v1/input/commit.json +63 -0
  104. gitwise_cli-0.24.2/share/schemas/v1/input/completions.json +51 -0
  105. gitwise_cli-0.24.2/share/schemas/v1/input/conflicts.json +46 -0
  106. gitwise_cli-0.24.2/share/schemas/v1/input/context.json +36 -0
  107. gitwise_cli-0.24.2/share/schemas/v1/input/diff.json +56 -0
  108. gitwise_cli-0.24.2/share/schemas/v1/input/doctor.json +36 -0
  109. gitwise_cli-0.24.2/share/schemas/v1/input/health.json +36 -0
  110. gitwise_cli-0.24.2/share/schemas/v1/input/log.json +71 -0
  111. gitwise_cli-0.24.2/share/schemas/v1/input/merge.json +63 -0
  112. gitwise_cli-0.24.2/share/schemas/v1/input/optimize.json +44 -0
  113. gitwise_cli-0.24.2/share/schemas/v1/input/pick.json +63 -0
  114. gitwise_cli-0.24.2/share/schemas/v1/input/pr.json +51 -0
  115. gitwise_cli-0.24.2/share/schemas/v1/input/schema.json +48 -0
  116. gitwise_cli-0.24.2/share/schemas/v1/input/setup-agents.json +108 -0
  117. gitwise_cli-0.24.2/share/schemas/v1/input/setup.json +55 -0
  118. gitwise_cli-0.24.2/share/schemas/v1/input/show.json +46 -0
  119. gitwise_cli-0.24.2/share/schemas/v1/input/snapshot.json +36 -0
  120. gitwise_cli-0.24.2/share/schemas/v1/input/stash.json +68 -0
  121. gitwise_cli-0.24.2/share/schemas/v1/input/status.json +36 -0
  122. gitwise_cli-0.24.2/share/schemas/v1/input/suggest.json +36 -0
  123. gitwise_cli-0.24.2/share/schemas/v1/input/summarize.json +44 -0
  124. gitwise_cli-0.24.2/share/schemas/v1/input/sync.json +55 -0
  125. gitwise_cli-0.24.2/share/schemas/v1/input/tag.json +73 -0
  126. gitwise_cli-0.24.2/share/schemas/v1/input/undo.json +60 -0
  127. gitwise_cli-0.24.2/share/schemas/v1/input/update.json +40 -0
  128. gitwise_cli-0.24.2/share/schemas/v1/input/worktree.json +50 -0
  129. gitwise_cli-0.24.2/tests/__init__.py +0 -0
  130. gitwise_cli-0.24.2/tests/conftest.py +143 -0
  131. gitwise_cli-0.24.2/tests/test_adapters.py +449 -0
  132. gitwise_cli-0.24.2/tests/test_audit.py +98 -0
  133. gitwise_cli-0.24.2/tests/test_branches.py +55 -0
  134. gitwise_cli-0.24.2/tests/test_clean.py +265 -0
  135. gitwise_cli-0.24.2/tests/test_commit.py +100 -0
  136. gitwise_cli-0.24.2/tests/test_conflicts.py +45 -0
  137. gitwise_cli-0.24.2/tests/test_context.py +28 -0
  138. gitwise_cli-0.24.2/tests/test_design.py +647 -0
  139. gitwise_cli-0.24.2/tests/test_diff.py +168 -0
  140. gitwise_cli-0.24.2/tests/test_doctor.py +51 -0
  141. gitwise_cli-0.24.2/tests/test_edge_cases.py +93 -0
  142. gitwise_cli-0.24.2/tests/test_git.py +140 -0
  143. gitwise_cli-0.24.2/tests/test_git_output_utils.py +26 -0
  144. gitwise_cli-0.24.2/tests/test_health.py +28 -0
  145. gitwise_cli-0.24.2/tests/test_i18n.py +91 -0
  146. gitwise_cli-0.24.2/tests/test_json_envelope_utils.py +36 -0
  147. gitwise_cli-0.24.2/tests/test_log.py +113 -0
  148. gitwise_cli-0.24.2/tests/test_main.py +331 -0
  149. gitwise_cli-0.24.2/tests/test_md_links_script.py +44 -0
  150. gitwise_cli-0.24.2/tests/test_merge.py +63 -0
  151. gitwise_cli-0.24.2/tests/test_optimize.py +99 -0
  152. gitwise_cli-0.24.2/tests/test_output.py +92 -0
  153. gitwise_cli-0.24.2/tests/test_parsing_utils.py +36 -0
  154. gitwise_cli-0.24.2/tests/test_pick.py +74 -0
  155. gitwise_cli-0.24.2/tests/test_pr.py +326 -0
  156. gitwise_cli-0.24.2/tests/test_roadmap_baseline_script.py +57 -0
  157. gitwise_cli-0.24.2/tests/test_sa_plan.py +406 -0
  158. gitwise_cli-0.24.2/tests/test_sa_unit.py +463 -0
  159. gitwise_cli-0.24.2/tests/test_schema_catalog.py +45 -0
  160. gitwise_cli-0.24.2/tests/test_setup.py +203 -0
  161. gitwise_cli-0.24.2/tests/test_setup_agents.py +953 -0
  162. gitwise_cli-0.24.2/tests/test_show.py +37 -0
  163. gitwise_cli-0.24.2/tests/test_snapshot.py +28 -0
  164. gitwise_cli-0.24.2/tests/test_stash.py +81 -0
  165. gitwise_cli-0.24.2/tests/test_status.py +52 -0
  166. gitwise_cli-0.24.2/tests/test_suggest.py +67 -0
  167. gitwise_cli-0.24.2/tests/test_summarize.py +108 -0
  168. gitwise_cli-0.24.2/tests/test_sync.py +79 -0
  169. gitwise_cli-0.24.2/tests/test_sync_changelog_es_script.py +51 -0
  170. gitwise_cli-0.24.2/tests/test_tag.py +105 -0
  171. gitwise_cli-0.24.2/tests/test_undo.py +58 -0
  172. gitwise_cli-0.24.2/tests/test_worktree.py +91 -0
@@ -0,0 +1,38 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+ *.pyo
4
+ .pytest_cache/
5
+ .mypy_cache/
6
+ .ruff_cache/
7
+ dist/
8
+ *.egg-info/
9
+ tests/fixtures/repos/
10
+ .env
11
+ .envrc
12
+ .venv/
13
+ .coverage
14
+ .coverage.*
15
+ coverage.xml
16
+ htmlcov/
17
+
18
+ *.bak
19
+ CLAUDE.md.bak*
20
+ AGENTS.md.bak*
21
+
22
+ .claude/
23
+ .agentskills/
24
+ .opencode/
25
+ review/
26
+
27
+ # >>> gitwise managed (do not edit between markers) >>>
28
+ # Claude Code local/personal files (do not commit)
29
+ .claude/settings.local.json
30
+ .claude/.credentials.json
31
+ # Snapshot regenerated each gitwise run (timestamps change)
32
+ .claude/git-snapshot.md
33
+ # Backups from gitwise setup-agents
34
+ *.bak
35
+ CLAUDE.md.bak*
36
+ AGENTS.md.bak*
37
+ # <<< gitwise managed <<<
38
+ .aider.conf.yml
@@ -0,0 +1,313 @@
1
+ # Changelog
2
+
3
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
4
+ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5
+
6
+ ## v0.24.2 (2026-06-16)
7
+
8
+ ### Fix
9
+
10
+ - **packaging**: rename distribution to gitwise-cli to avoid PyPI name conflict
11
+
12
+ ## v0.24.1 (2026-06-16)
13
+
14
+ ### Fix
15
+
16
+ - **ci**: replace invalid action SHAs in publish-pypi workflow
17
+
18
+ ## v0.24.0 (2026-06-16)
19
+
20
+ ### Feat
21
+
22
+ - enable pip and brew distribution with packaging, security, and refactor fixes (#54)
23
+
24
+ ## v0.23.0 (2026-06-16)
25
+
26
+ ### Notes
27
+
28
+ - Semver realignment for the breaking changes shipped in `v0.22.1`. The
29
+ underlying changes are documented in the `v0.22.1` entry below; this
30
+ release contains no additional functional changes. The minor bump was
31
+ triggered when a subsequent `docs:` commit included the literal string
32
+ `BREAKING CHANGE:` in its body (explaining the convention rule itself),
33
+ which commitizen detected as a breaking-change marker. The CHANGELOG
34
+ section for this version is intentionally empty of items because
35
+ commitizen filters `docs:` commits out of the rendered output.
36
+
37
+ ## v0.22.1 (2026-06-16)
38
+
39
+ > **Note on versioning:** This release contains breaking changes to the JSON
40
+ > output of `optimize`, `clean`, and `setup`. Under strict semver with
41
+ > `major_version_zero = true` it should have been `v0.23.0`. The patch
42
+ > increment was the result of a `fix:` commit lacking the `BREAKING CHANGE:`
43
+ > footer that commitizen needs to detect breaking changes. The next minor
44
+ > bump will resync; meanwhile this entry documents the breaks explicitly so
45
+ > consumers can react.
46
+
47
+ ### Fix
48
+
49
+ - **optimize/clean/setup**: `--json` now executes the same write paths as the
50
+ TTY mode (closes #45). Previously the JSON branch printed a plan and
51
+ returned `ok:true` without running any side effects, silently breaking
52
+ agents/CI that drove gitwise in JSON mode. (#50)
53
+ - **sync**: `sync --pull` on diverged branches now returns an actionable hint
54
+ in EN/ES plus a structured `suggested_commands` array in the JSON envelope
55
+ (closes #43). (#50)
56
+
57
+ ### Breaking Changes
58
+
59
+ - **optimize/clean/setup**: `--json` on a write command now requires `--yes`
60
+ to execute side effects. Without `--yes` the command returns `rc=2` and
61
+ emits an `error_envelope` with `code:"yes_required"`. Use `--dry-run` for
62
+ plan-only inspection. (#50)
63
+ - **clean (JSON only)**: domain-specific error array renamed from `errors`
64
+ to `delete_errors` to avoid collision with the envelope-level `errors[]`
65
+ field used by `error_envelope`. (#50)
66
+ - **optimize/clean/setup (JSON only)**: all three commands now emit through
67
+ the unified `ok_envelope`/`error_envelope` helpers. Shape:
68
+ `{v, ok, applied, dry_run, ...payload}` on success and
69
+ `{v, ok:false, error, errors:[{code, message, hint}], ...payload}` on
70
+ failure. (#50)
71
+
72
+ ## v0.22.0 (2026-05-23)
73
+
74
+ ### Feat
75
+
76
+ - **schema**: add versioned schema catalog and CI validation (#41)
77
+
78
+ ## v0.21.0 (2026-05-23)
79
+
80
+ ### Feat
81
+
82
+ - **cli**: add P2 commands/schema introspection with resilient dependency fallbacks (#40)
83
+
84
+ ## v0.20.0 (2026-05-23)
85
+
86
+ ### Feat
87
+
88
+ - implement P1 completions, rich help, and env docs (#38)
89
+
90
+ ## v0.19.0 (2026-05-23)
91
+
92
+ ### Feat
93
+
94
+ - close P0 agent safety and JSON error consistency (#37)
95
+
96
+ ## v0.18.0 (2026-05-23)
97
+
98
+ ### Feat
99
+
100
+ - **release**: auto-sync CHANGELOG.es on bump
101
+
102
+ ### Fix
103
+
104
+ - **ci**: eliminate workflow_call auth failure and cache collisions on main (#36)
105
+ - **setup-agents**: restore rollback correctness and isolate claude core
106
+
107
+ ### Refactor
108
+
109
+ - **setup-agents**: canonical local default and transactional rollback
110
+
111
+ ## v0.17.0 (2026-05-23)
112
+
113
+ ### Feat
114
+
115
+ - **setup-agents**: add providers flag and legacy migration flow
116
+
117
+ ### Fix
118
+
119
+ - **setup-agents**: address PR review feedback and strict JSON behavior
120
+
121
+ ## v0.16.0 (2026-05-23)
122
+
123
+ ### Feat
124
+
125
+ - **setup-agents**: canonical-first layout and json v3
126
+
127
+ ### Fix
128
+
129
+ - **setup-agents**: address PR review feedback
130
+
131
+ ## v0.15.3 (2026-05-23)
132
+
133
+ ### Refactor
134
+
135
+ - **setup-agents**: providers foundation and claude wrapper extraction (#32)
136
+
137
+ ## v0.15.2 (2026-05-22)
138
+
139
+ ### Fix
140
+
141
+ - version version badget
142
+
143
+ ## v0.15.1 (2026-05-22)
144
+
145
+ ### Fix
146
+
147
+ - **release**: align roadmap and lockfile with v0.15.0 (#30)
148
+
149
+ ## v0.15.0 (2026-05-22)
150
+
151
+ ### Feat
152
+
153
+ - **setup**: add safe hooks strategy with native Git support (#29)
154
+
155
+ ## v0.14.2 (2026-05-22)
156
+
157
+ ### Refactor
158
+
159
+ - unify command dispatch, shared utils, and JSON envelopes (#27)
160
+
161
+ ## v0.14.1 (2026-05-22)
162
+
163
+ ### Fix
164
+
165
+ - **audit**: resolve post-merge review follow-ups and docs mismatches (#26)
166
+
167
+ ## v0.14.0 (2026-05-22)
168
+
169
+ ### Feat
170
+
171
+ - **pr**: improve view comments and checks readability (#25)
172
+
173
+ ## v0.13.0 (2026-05-21)
174
+
175
+ ### Feat
176
+
177
+ - unify human output styling and global JSON modes (#24)
178
+
179
+ ## v0.12.2 (2026-05-20)
180
+
181
+ ### Fix
182
+
183
+ - **ci**: unblock auto-release — workflow_call, dev deps, scoped permissions
184
+ - full audit — 35 items across security, quality, performance and CI
185
+
186
+ ## v0.12.1 (2026-05-19)
187
+
188
+ ### Refactor
189
+
190
+ - split AGENTS.md into scoped rules for opencode and Claude Code (#21)
191
+
192
+ ## v0.12.0 (2026-05-19)
193
+
194
+ ### Feat
195
+
196
+ - demo, subprocess coverage, agent adapters (#20)
197
+
198
+ ## v0.11.0 (2026-05-19)
199
+
200
+ ### Feat
201
+
202
+ - Rich migration — full color system with WCAG AA themes (#19)
203
+
204
+ ## v0.10.3 (2026-05-18)
205
+
206
+ ### Refactor
207
+
208
+ - 6-phase architecture cleanup + guidelines expansion (#17)
209
+
210
+ ## v0.10.2 (2026-05-17)
211
+
212
+ ### Refactor
213
+
214
+ - Phase 10 — require_root() DRY + edge case tests (#16)
215
+
216
+ ## v0.10.1 (2026-05-17)
217
+
218
+ ### Fix
219
+
220
+ - Phase 9 — Cross-verification fixes from multi-review audit (#15)
221
+
222
+ ## v0.10.0 (2026-05-17)
223
+
224
+ ### Feat
225
+
226
+ - Phase 8 — command enhancements (#14)
227
+
228
+ ## v0.9.0 (2026-05-17)
229
+
230
+ ### Feat
231
+
232
+ - Phase 7 — final aliases, ROADMAP & CHANGELOG (#13)
233
+
234
+ ## v0.8.0 (2026-05-16)
235
+
236
+ ### Feat
237
+
238
+ - Phase 7 — final aliases, ROADMAP & CHANGELOG (#13)
239
+ - Phase 6 — naming cleanup & UX enhancements (#12)
240
+
241
+ ## v0.7.0 (2026-05-16)
242
+
243
+ ### Feat
244
+
245
+ - Phase 5 — polish & UX improvements (#11)
246
+
247
+ ## v0.6.0 (2026-05-16)
248
+
249
+ ### Feat
250
+
251
+ - Phase 4 — advanced workflows (tag, merge, conflicts, suggest, pick)
252
+
253
+ ## v0.5.0 (2026-05-16)
254
+
255
+ ### Feat
256
+
257
+ - Phase 3 — AI enhancements (context, health, stash, audit)
258
+
259
+ ## v0.4.0 (2026-05-16)
260
+
261
+ ### Feat
262
+
263
+ - Phase 2 — sync + GitHub integration (sync, pr, undo, diff --full)
264
+
265
+ ## v0.3.0 (2026-05-16)
266
+
267
+ ### Feat
268
+
269
+ - Phase 1 — core daily operations (log, show, commit, branches)
270
+
271
+ ## v0.2.4 (2026-05-16)
272
+
273
+ ### Fix
274
+
275
+ - resolve CI auto-release cancellation and deprecation warnings (#6)
276
+
277
+ ## v0.2.3 (2026-05-16)
278
+
279
+ ### Fix
280
+
281
+ - resolve all AGENTS.md guideline violations (i18n, code style, boundaries) (#5)
282
+
283
+ ## v0.2.2 (2026-05-15)
284
+
285
+ ### Fix
286
+
287
+ - remove persist-credentials: false from release checkout
288
+ - harden CI/CD pipeline — security, reliability, efficiency
289
+
290
+ ## v0.2.1 (2026-05-15)
291
+
292
+ ### Fix
293
+
294
+ - match commitizen changelog format in release notes extraction
295
+
296
+ ## v0.2.0 (2026-05-15)
297
+
298
+ ### Feat
299
+
300
+ - add automated release via commitizen bump on merge to main
301
+ - apply i18n to all modules — replace 200+ hardcoded Spanish strings
302
+ - add adaptive terminal colors with dark/light theme detection
303
+ - add i18n system with es/en string catalog
304
+ - add lefthook hooks, commitizen versioning, fix CI
305
+
306
+ ### Fix
307
+
308
+ - auto-release bump bug, harden CI workflows, eliminate double CI
309
+ - address PR review — template format bug, redundant logic, missed string
310
+ - eliminate cache race condition in CI
311
+ - resolve CI failures, add dependabot, harden release workflow
312
+
313
+ ## v0.1.0 (2026-05-14)
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Deiner
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1,151 @@
1
+ Metadata-Version: 2.4
2
+ Name: gitwise-cli
3
+ Version: 0.24.2
4
+ Summary: Python CLI for optimizing git workflows and Claude Code integration
5
+ Author-email: Deiner <drzioner@gmail.com>
6
+ License-Expression: MIT
7
+ License-File: LICENSE
8
+ Keywords: automation,claude-code,cli,developer-tools,git
9
+ Classifier: Development Status :: 4 - Beta
10
+ Classifier: Environment :: Console
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Operating System :: MacOS
14
+ Classifier: Operating System :: Microsoft :: Windows
15
+ Classifier: Operating System :: POSIX :: Linux
16
+ Classifier: Programming Language :: Python :: 3
17
+ Classifier: Programming Language :: Python :: 3.10
18
+ Classifier: Programming Language :: Python :: 3.11
19
+ Classifier: Programming Language :: Python :: 3.12
20
+ Classifier: Programming Language :: Python :: 3.13
21
+ Classifier: Programming Language :: Python :: 3.14
22
+ Classifier: Topic :: Software Development :: Version Control :: Git
23
+ Classifier: Typing :: Typed
24
+ Requires-Python: >=3.10
25
+ Requires-Dist: rich-argparse<2,>=1.8.0
26
+ Requires-Dist: rich<15,>=13.0
27
+ Requires-Dist: shtab<2,>=1.8.0
28
+ Description-Content-Type: text/markdown
29
+
30
+ # gitwise
31
+
32
+ [English](README.md) | [Español](README.es.md)
33
+
34
+ Python CLI for optimized Git workflows and coding agents integration.
35
+
36
+ [![CI](https://github.com/drzioner/gitwise/actions/workflows/ci.yml/badge.svg)](https://github.com/drzioner/gitwise/actions/workflows/ci.yml)
37
+ [![Coverage](https://codecov.io/gh/drzioner/gitwise/graph/badge.svg)](https://codecov.io/gh/drzioner/gitwise)
38
+ [![Version](https://img.shields.io/github/v/release/drzioner/gitwise?display_name=tag)](https://github.com/drzioner/gitwise/releases)
39
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
40
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
41
+ [![Docs: EN/ES](https://img.shields.io/badge/docs-EN%20%7C%20ES-0A7EA4)](docs/README.md)
42
+
43
+ gitwise addresses three daily pain points:
44
+
45
+ 1. AI context bloat from raw `git diff`
46
+ 2. Slow repositories without modern Git maintenance settings
47
+ 3. Unsafe commit flows that bypass GPG signing rules
48
+
49
+ ## Requirements
50
+
51
+ - Python >= 3.10
52
+ - git >= 2.29
53
+ - macOS or Linux
54
+
55
+ ## Install
56
+
57
+ ```bash
58
+ git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
59
+ bash ~/.local/share/gitwise/install.sh
60
+ ```
61
+
62
+ Update an existing installation:
63
+
64
+ ```bash
65
+ gitwise update
66
+ ```
67
+
68
+ ## Quick Start
69
+
70
+ ```bash
71
+ gitwise doctor
72
+ gitwise setup --dry-run
73
+ gitwise setup-agents --local --dry-run
74
+ gitwise summarize
75
+ ```
76
+
77
+ ## Most Used Commands
78
+
79
+ | Command | Purpose |
80
+ |---|---|
81
+ | `gitwise doctor` | Check Python, git, platform, optional tools |
82
+ | `gitwise setup` | Apply modern Git defaults safely |
83
+ | `gitwise setup-agents` | Install canonical agents layout + optional provider config |
84
+ | `gitwise audit` | Detect stale branches, graph/cache gaps, large blobs |
85
+ | `gitwise summarize` | Compact context for humans and AI |
86
+ | `gitwise diff` | Focused changed-file view (`--stat`, `--staged`, `--patch`) |
87
+ | `gitwise worktree` | Create and clean worktree-based branch setups |
88
+ | `gitwise status` | Enhanced status with staged/unstaged and ahead/behind |
89
+ | `gitwise commands --json` | List subcommands with aliases and metadata |
90
+ | `gitwise schema <command> --json` | Return versioned JSON Schema for command inputs |
91
+ | `gitwise completions <shell>` | Generate shell completion scripts (bash/zsh/fish) |
92
+ | `gitwise pr` | List/check/view PRs via GitHub CLI |
93
+
94
+ For all commands, examples, aliases, and JSON usage, see:
95
+
96
+ - [Command reference (English)](docs/reference/commands.md)
97
+ - [Referencia de comandos (Español)](docs/es/reference/commands.md)
98
+
99
+ ## Documentation
100
+
101
+ - [Documentation index (English)](docs/README.md)
102
+ - [Indice de documentacion (Español)](docs/es/README.md)
103
+ - [Contributing guide](CONTRIBUTING.md)
104
+ - [Guia de contribucion](CONTRIBUTING.es.md)
105
+ - [Security policy](SECURITY.md)
106
+ - [Politica de seguridad](SECURITY.es.md)
107
+ - [Code of Conduct](CODE_OF_CONDUCT.md)
108
+ - [Código de conducta](CODE_OF_CONDUCT.es.md)
109
+ - [Git conventions](CONVENTIONS.md)
110
+ - [Convenciones Git](CONVENTIONS.es.md)
111
+
112
+ ## GPG and Safety Model
113
+
114
+ `setup` and `setup-agents` never modify `commit.gpgsign` or `user.signingkey`.
115
+
116
+ - Git layer: `setup` manages hooks safely (`--hooks-mode preserve|native|legacy|skip`) to validate signing key availability and conventional commits.
117
+ - Agent layer: deny-rules block `--no-gpg-sign`, `--no-verify`, and `-c commit.gpgsign=false`.
118
+
119
+ ## Environment Variables
120
+
121
+ | Variable | Description |
122
+ |---|---|
123
+ | `GITWISE_DEBUG=1` | Print each `git` subprocess command to stderr |
124
+ | `GITWISE_LOG_JSON=1` | Emit structured stderr logs as JSON lines |
125
+ | `GITWISE_JSON_PRETTY=1` | Pretty-print JSON output by default |
126
+ | `GITWISE_LANG=es` / `GITWISE_LANG=en` | Force output locale |
127
+ | `GITWISE_THEME=dark` / `GITWISE_THEME=light` / `GITWISE_THEME=auto` | Override color theme selection |
128
+ | `GITWISE_NO_COLOR=1` | Disable ANSI color output |
129
+ | `GITWISE_OUTPUT=agent` | Force machine-oriented output mode |
130
+ | `GITWISE_AGENT=1` | Alias to enable agent output mode |
131
+ | `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
132
+ | `GITWISE_WIDTH=<columns>` | Override output width |
133
+ | `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
134
+
135
+ ## Shell Completions
136
+
137
+ Generate completions script per shell:
138
+
139
+ ```bash
140
+ gitwise completions bash > ~/.local/share/bash-completion/completions/gitwise
141
+ gitwise completions zsh > ~/.zsh/completions/_gitwise
142
+ gitwise completions fish > ~/.config/fish/completions/gitwise.fish
143
+ ```
144
+
145
+ ## Demo
146
+
147
+ [![asciicast](https://asciinema.org/a/6tm4TnYMygEQT7ef.svg)](https://asciinema.org/a/6tm4TnYMygEQT7ef)
148
+
149
+ ## License
150
+
151
+ [MIT](LICENSE) - Deiner
@@ -0,0 +1,122 @@
1
+ # gitwise
2
+
3
+ [English](README.md) | [Español](README.es.md)
4
+
5
+ Python CLI for optimized Git workflows and coding agents integration.
6
+
7
+ [![CI](https://github.com/drzioner/gitwise/actions/workflows/ci.yml/badge.svg)](https://github.com/drzioner/gitwise/actions/workflows/ci.yml)
8
+ [![Coverage](https://codecov.io/gh/drzioner/gitwise/graph/badge.svg)](https://codecov.io/gh/drzioner/gitwise)
9
+ [![Version](https://img.shields.io/github/v/release/drzioner/gitwise?display_name=tag)](https://github.com/drzioner/gitwise/releases)
10
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
11
+ [![Python 3.10+](https://img.shields.io/badge/python-3.10%2B-blue.svg)](https://www.python.org/downloads/)
12
+ [![Docs: EN/ES](https://img.shields.io/badge/docs-EN%20%7C%20ES-0A7EA4)](docs/README.md)
13
+
14
+ gitwise addresses three daily pain points:
15
+
16
+ 1. AI context bloat from raw `git diff`
17
+ 2. Slow repositories without modern Git maintenance settings
18
+ 3. Unsafe commit flows that bypass GPG signing rules
19
+
20
+ ## Requirements
21
+
22
+ - Python >= 3.10
23
+ - git >= 2.29
24
+ - macOS or Linux
25
+
26
+ ## Install
27
+
28
+ ```bash
29
+ git clone https://github.com/drzioner/gitwise.git ~/.local/share/gitwise
30
+ bash ~/.local/share/gitwise/install.sh
31
+ ```
32
+
33
+ Update an existing installation:
34
+
35
+ ```bash
36
+ gitwise update
37
+ ```
38
+
39
+ ## Quick Start
40
+
41
+ ```bash
42
+ gitwise doctor
43
+ gitwise setup --dry-run
44
+ gitwise setup-agents --local --dry-run
45
+ gitwise summarize
46
+ ```
47
+
48
+ ## Most Used Commands
49
+
50
+ | Command | Purpose |
51
+ |---|---|
52
+ | `gitwise doctor` | Check Python, git, platform, optional tools |
53
+ | `gitwise setup` | Apply modern Git defaults safely |
54
+ | `gitwise setup-agents` | Install canonical agents layout + optional provider config |
55
+ | `gitwise audit` | Detect stale branches, graph/cache gaps, large blobs |
56
+ | `gitwise summarize` | Compact context for humans and AI |
57
+ | `gitwise diff` | Focused changed-file view (`--stat`, `--staged`, `--patch`) |
58
+ | `gitwise worktree` | Create and clean worktree-based branch setups |
59
+ | `gitwise status` | Enhanced status with staged/unstaged and ahead/behind |
60
+ | `gitwise commands --json` | List subcommands with aliases and metadata |
61
+ | `gitwise schema <command> --json` | Return versioned JSON Schema for command inputs |
62
+ | `gitwise completions <shell>` | Generate shell completion scripts (bash/zsh/fish) |
63
+ | `gitwise pr` | List/check/view PRs via GitHub CLI |
64
+
65
+ For all commands, examples, aliases, and JSON usage, see:
66
+
67
+ - [Command reference (English)](docs/reference/commands.md)
68
+ - [Referencia de comandos (Español)](docs/es/reference/commands.md)
69
+
70
+ ## Documentation
71
+
72
+ - [Documentation index (English)](docs/README.md)
73
+ - [Indice de documentacion (Español)](docs/es/README.md)
74
+ - [Contributing guide](CONTRIBUTING.md)
75
+ - [Guia de contribucion](CONTRIBUTING.es.md)
76
+ - [Security policy](SECURITY.md)
77
+ - [Politica de seguridad](SECURITY.es.md)
78
+ - [Code of Conduct](CODE_OF_CONDUCT.md)
79
+ - [Código de conducta](CODE_OF_CONDUCT.es.md)
80
+ - [Git conventions](CONVENTIONS.md)
81
+ - [Convenciones Git](CONVENTIONS.es.md)
82
+
83
+ ## GPG and Safety Model
84
+
85
+ `setup` and `setup-agents` never modify `commit.gpgsign` or `user.signingkey`.
86
+
87
+ - Git layer: `setup` manages hooks safely (`--hooks-mode preserve|native|legacy|skip`) to validate signing key availability and conventional commits.
88
+ - Agent layer: deny-rules block `--no-gpg-sign`, `--no-verify`, and `-c commit.gpgsign=false`.
89
+
90
+ ## Environment Variables
91
+
92
+ | Variable | Description |
93
+ |---|---|
94
+ | `GITWISE_DEBUG=1` | Print each `git` subprocess command to stderr |
95
+ | `GITWISE_LOG_JSON=1` | Emit structured stderr logs as JSON lines |
96
+ | `GITWISE_JSON_PRETTY=1` | Pretty-print JSON output by default |
97
+ | `GITWISE_LANG=es` / `GITWISE_LANG=en` | Force output locale |
98
+ | `GITWISE_THEME=dark` / `GITWISE_THEME=light` / `GITWISE_THEME=auto` | Override color theme selection |
99
+ | `GITWISE_NO_COLOR=1` | Disable ANSI color output |
100
+ | `GITWISE_OUTPUT=agent` | Force machine-oriented output mode |
101
+ | `GITWISE_AGENT=1` | Alias to enable agent output mode |
102
+ | `GITWISE_GIT_TIMEOUT=<seconds>` | Override git subprocess timeout |
103
+ | `GITWISE_WIDTH=<columns>` | Override output width |
104
+ | `GITWISE_BIN_DIR` | Install location (default: `~/.local/bin`) |
105
+
106
+ ## Shell Completions
107
+
108
+ Generate completions script per shell:
109
+
110
+ ```bash
111
+ gitwise completions bash > ~/.local/share/bash-completion/completions/gitwise
112
+ gitwise completions zsh > ~/.zsh/completions/_gitwise
113
+ gitwise completions fish > ~/.config/fish/completions/gitwise.fish
114
+ ```
115
+
116
+ ## Demo
117
+
118
+ [![asciicast](https://asciinema.org/a/6tm4TnYMygEQT7ef.svg)](https://asciinema.org/a/6tm4TnYMygEQT7ef)
119
+
120
+ ## License
121
+
122
+ [MIT](LICENSE) - Deiner
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env bash
2
+ # gitwise entry-point — resolves symlinks, uses venv Python when available
3
+ set -euo pipefail
4
+
5
+ _self="${BASH_SOURCE[0]}"
6
+ _max_depth=32
7
+ while [ -L "$_self" ] && [ $((_max_depth--)) -gt 0 ]; do
8
+ _dir="$(cd "$(dirname "$_self")" && pwd -P)"
9
+ _self="$(readlink "$_self")"
10
+ [[ "$_self" != /* ]] && _self="$_dir/$_self"
11
+ done
12
+ SCRIPT_DIR="$(cd "$(dirname "$_self")" && pwd -P)"
13
+ PROJECT_ROOT="$(dirname "$SCRIPT_DIR")"
14
+
15
+ VENV_PYTHON="$PROJECT_ROOT/.venv/bin/python"
16
+ if [[ -x "$VENV_PYTHON" ]]; then
17
+ PYTHONPATH="$PROJECT_ROOT${PYTHONPATH:+:$PYTHONPATH}" exec "$VENV_PYTHON" -m gitwise "$@"
18
+ fi
19
+
20
+ if ! command -v python3 &>/dev/null; then
21
+ echo "error: python3 not found. Run 'uv sync' or install Python 3.10+" >&2
22
+ exit 127
23
+ fi
24
+ PYTHONPATH="$PROJECT_ROOT${PYTHONPATH:+:$PYTHONPATH}" exec python3 -m gitwise "$@"
@@ -0,0 +1,11 @@
1
+ __version__ = "0.24.2"
2
+
3
+
4
+ def get_version() -> str:
5
+ from importlib.metadata import PackageNotFoundError
6
+ from importlib.metadata import version as _version
7
+
8
+ try:
9
+ return _version("gitwise")
10
+ except PackageNotFoundError:
11
+ return __version__