klaude-code 1.2.22__py3-none-any.whl → 1.2.24__py3-none-any.whl

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 (56) hide show
  1. klaude_code/command/prompt-jj-describe.md +32 -0
  2. klaude_code/command/status_cmd.py +1 -1
  3. klaude_code/{const/__init__.py → const.py} +11 -2
  4. klaude_code/core/executor.py +1 -1
  5. klaude_code/core/manager/sub_agent_manager.py +1 -1
  6. klaude_code/core/reminders.py +51 -0
  7. klaude_code/core/task.py +37 -18
  8. klaude_code/core/tool/__init__.py +1 -4
  9. klaude_code/core/tool/file/read_tool.py +23 -1
  10. klaude_code/core/tool/file/write_tool.py +7 -3
  11. klaude_code/core/tool/skill/__init__.py +0 -0
  12. klaude_code/core/tool/{memory → skill}/skill_tool.py +16 -39
  13. klaude_code/llm/openai_compatible/client.py +29 -102
  14. klaude_code/llm/openai_compatible/stream.py +272 -0
  15. klaude_code/llm/openrouter/client.py +29 -109
  16. klaude_code/llm/openrouter/{reasoning_handler.py → reasoning.py} +24 -2
  17. klaude_code/protocol/model.py +15 -2
  18. klaude_code/session/export.py +1 -1
  19. klaude_code/session/store.py +4 -2
  20. klaude_code/skill/__init__.py +27 -0
  21. klaude_code/skill/assets/deslop/SKILL.md +17 -0
  22. klaude_code/skill/assets/dev-docs/SKILL.md +108 -0
  23. klaude_code/skill/assets/handoff/SKILL.md +39 -0
  24. klaude_code/skill/assets/jj-workspace/SKILL.md +20 -0
  25. klaude_code/skill/assets/skill-creator/SKILL.md +139 -0
  26. klaude_code/{core/tool/memory/skill_loader.py → skill/loader.py} +60 -24
  27. klaude_code/skill/manager.py +70 -0
  28. klaude_code/skill/system_skills.py +192 -0
  29. klaude_code/ui/core/stage_manager.py +0 -3
  30. klaude_code/ui/modes/repl/completers.py +103 -3
  31. klaude_code/ui/modes/repl/event_handler.py +101 -49
  32. klaude_code/ui/modes/repl/input_prompt_toolkit.py +55 -6
  33. klaude_code/ui/modes/repl/renderer.py +24 -17
  34. klaude_code/ui/renderers/assistant.py +7 -2
  35. klaude_code/ui/renderers/developer.py +12 -0
  36. klaude_code/ui/renderers/diffs.py +1 -1
  37. klaude_code/ui/renderers/metadata.py +6 -8
  38. klaude_code/ui/renderers/sub_agent.py +28 -5
  39. klaude_code/ui/renderers/thinking.py +16 -10
  40. klaude_code/ui/renderers/tools.py +83 -34
  41. klaude_code/ui/renderers/user_input.py +32 -2
  42. klaude_code/ui/rich/markdown.py +40 -20
  43. klaude_code/ui/rich/status.py +15 -19
  44. klaude_code/ui/rich/theme.py +70 -17
  45. {klaude_code-1.2.22.dist-info → klaude_code-1.2.24.dist-info}/METADATA +18 -13
  46. {klaude_code-1.2.22.dist-info → klaude_code-1.2.24.dist-info}/RECORD +49 -45
  47. klaude_code/command/prompt-deslop.md +0 -14
  48. klaude_code/command/prompt-dev-docs-update.md +0 -56
  49. klaude_code/command/prompt-dev-docs.md +0 -46
  50. klaude_code/command/prompt-handoff.md +0 -33
  51. klaude_code/command/prompt-jj-workspace.md +0 -18
  52. klaude_code/core/tool/memory/__init__.py +0 -5
  53. klaude_code/llm/openai_compatible/stream_processor.py +0 -83
  54. /klaude_code/core/tool/{memory → skill}/skill_tool.md +0 -0
  55. {klaude_code-1.2.22.dist-info → klaude_code-1.2.24.dist-info}/WHEEL +0 -0
  56. {klaude_code-1.2.22.dist-info → klaude_code-1.2.24.dist-info}/entry_points.txt +0 -0
@@ -25,7 +25,18 @@ class Palette:
25
25
  diff_remove: str
26
26
  diff_remove_char: str
27
27
  code_theme: str
28
- text_background: str
28
+ code_background: str
29
+ green_background: str
30
+ blue_grey_background: str
31
+ # Sub-agent backgrounds (corresponding to sub_agent_colors order)
32
+ cyan_background: str
33
+ green_sub_background: str
34
+ blue_sub_background: str
35
+ purple_background: str
36
+ orange_background: str
37
+ red_background: str
38
+ grey_background: str
39
+ yellow_background: str
29
40
 
30
41
 
31
42
  LIGHT_PALETTE = Palette(
@@ -44,10 +55,20 @@ LIGHT_PALETTE = Palette(
44
55
  lavender="#5f87af",
45
56
  diff_add="#2e5a32 on #dafbe1",
46
57
  diff_add_char="#2e5a32 on #aceebb",
47
- diff_remove="#5a2e32 on #ffebe9",
48
- diff_remove_char="#5a2e32 on #ffc1bb",
58
+ diff_remove="#82071e on #ffecec",
59
+ diff_remove_char="#82071e on #ffcfcf",
49
60
  code_theme="ansi_light",
50
- text_background="#e0e0e0",
61
+ code_background="#e0e0e0",
62
+ green_background="#e8f1e9",
63
+ blue_grey_background="#e8e9f1",
64
+ cyan_background="#e0f0f0",
65
+ green_sub_background="#e0f0e0",
66
+ blue_sub_background="#e0e8f5",
67
+ purple_background="#ede0f5",
68
+ orange_background="#f5ebe0",
69
+ red_background="#f5e0e0",
70
+ grey_background="#e8e8e8",
71
+ yellow_background="#f5f5e0",
51
72
  )
52
73
 
53
74
  DARK_PALETTE = Palette(
@@ -65,16 +86,30 @@ DARK_PALETTE = Palette(
65
86
  purple="#afbafe",
66
87
  lavender="#9898b8",
67
88
  diff_add="#c8e6c9 on #1b3928",
68
- diff_add_char="#c8e6c9 on #264f35",
89
+ diff_add_char="#c8e6c9 on #2d6b42",
69
90
  diff_remove="#ffcdd2 on #3d1f23",
70
- diff_remove_char="#ffcdd2 on #5c2d33",
91
+ diff_remove_char="#ffcdd2 on #7a3a42",
71
92
  code_theme="ansi_dark",
72
- text_background="#2f3440",
93
+ code_background="#2f3440",
94
+ green_background="#23342c",
95
+ blue_grey_background="#313848",
96
+ cyan_background="#1a3333",
97
+ green_sub_background="#1b3928",
98
+ blue_sub_background="#1a2a3d",
99
+ purple_background="#2a2640",
100
+ orange_background="#3d2a1a",
101
+ red_background="#3d1f23",
102
+ grey_background="#2a2d30",
103
+ yellow_background="#3d3a1a",
73
104
  )
74
105
 
75
106
 
76
107
  class ThemeKey(str, Enum):
77
108
  LINES = "lines"
109
+
110
+ # PANEL
111
+ SUB_AGENT_RESULT_PANEL = "panel.sub_agent_result"
112
+ WRITE_MARKDOWN_PANEL = "panel.write_markdown"
78
113
  # DIFF
79
114
  DIFF_FILE_NAME = "diff.file_name"
80
115
  DIFF_REMOVE = "diff.remove"
@@ -92,9 +127,9 @@ class ThemeKey(str, Enum):
92
127
  METADATA_DIM = "metadata.dim"
93
128
  METADATA_BOLD = "metadata.bold"
94
129
  # SPINNER_STATUS
95
- SPINNER_STATUS = "spinner.status"
96
- SPINNER_STATUS_TEXT = "spinner.status.text"
97
- SPINNER_STATUS_TEXT_BOLD = "spinner.status.text.bold"
130
+ STATUS_SPINNER = "spinner.status"
131
+ STATUS_TEXT = "spinner.status.text"
132
+ STATUS_TEXT_BOLD = "spinner.status.text.bold"
98
133
  # STATUS
99
134
  STATUS_HINT = "status.hint"
100
135
  # USER_INPUT
@@ -102,6 +137,7 @@ class ThemeKey(str, Enum):
102
137
  USER_INPUT_PROMPT = "user.input.prompt"
103
138
  USER_INPUT_AT_PATTERN = "user.at_pattern"
104
139
  USER_INPUT_SLASH_COMMAND = "user.slash_command"
140
+ USER_INPUT_SKILL = "user.skill"
105
141
  # REMINDER
106
142
  REMINDER = "reminder"
107
143
  REMINDER_BOLD = "reminder.bold"
@@ -161,6 +197,7 @@ class Themes:
161
197
  thinking_markdown_theme: Theme
162
198
  code_theme: str
163
199
  sub_agent_colors: list[Style]
200
+ sub_agent_backgrounds: list[Style]
164
201
 
165
202
 
166
203
  def get_theme(theme: str | None = None) -> Themes:
@@ -169,6 +206,9 @@ def get_theme(theme: str | None = None) -> Themes:
169
206
  app_theme=Theme(
170
207
  styles={
171
208
  ThemeKey.LINES.value: palette.grey3,
209
+ # PANEL
210
+ ThemeKey.SUB_AGENT_RESULT_PANEL.value: f"on {palette.blue_grey_background}",
211
+ ThemeKey.WRITE_MARKDOWN_PANEL.value: f"on {palette.green_background}",
172
212
  # DIFF
173
213
  ThemeKey.DIFF_FILE_NAME.value: palette.blue,
174
214
  ThemeKey.DIFF_REMOVE.value: palette.diff_remove,
@@ -182,19 +222,19 @@ def get_theme(theme: str | None = None) -> Themes:
182
222
  ThemeKey.ERROR_BOLD.value: "bold " + palette.red,
183
223
  ThemeKey.INTERRUPT.value: "reverse bold " + palette.red,
184
224
  # USER_INPUT
185
- ThemeKey.USER_INPUT.value: palette.magenta,
186
- ThemeKey.USER_INPUT_PROMPT.value: palette.magenta,
225
+ ThemeKey.USER_INPUT.value: "bold " + palette.magenta,
226
+ ThemeKey.USER_INPUT_PROMPT.value: "bold " + palette.magenta,
187
227
  ThemeKey.USER_INPUT_AT_PATTERN.value: palette.purple,
188
228
  ThemeKey.USER_INPUT_SLASH_COMMAND.value: "bold reverse " + palette.blue,
229
+ ThemeKey.USER_INPUT_SKILL.value: "bold reverse " + palette.green,
189
230
  # METADATA
190
231
  ThemeKey.METADATA.value: palette.lavender,
191
232
  ThemeKey.METADATA_DIM.value: "dim " + palette.lavender,
192
233
  ThemeKey.METADATA_BOLD.value: "bold " + palette.lavender,
193
- # SPINNER_STATUS
194
- ThemeKey.SPINNER_STATUS.value: palette.blue,
195
- ThemeKey.SPINNER_STATUS_TEXT.value: palette.blue,
196
- ThemeKey.SPINNER_STATUS_TEXT_BOLD.value: "bold " + palette.blue,
197
234
  # STATUS
235
+ ThemeKey.STATUS_SPINNER.value: palette.blue,
236
+ ThemeKey.STATUS_TEXT.value: palette.blue,
237
+ ThemeKey.STATUS_TEXT_BOLD.value: "bold italic " + palette.blue,
198
238
  ThemeKey.STATUS_HINT.value: palette.grey2,
199
239
  # REMINDER
200
240
  ThemeKey.REMINDER.value: palette.grey1,
@@ -263,7 +303,10 @@ def get_theme(theme: str | None = None) -> Themes:
263
303
  ),
264
304
  thinking_markdown_theme=Theme(
265
305
  styles={
266
- "markdown.code": palette.grey1 + " italic on " + palette.text_background,
306
+ # THINKING (used for left-side mark in thinking output)
307
+ ThemeKey.THINKING.value: "italic " + palette.grey2,
308
+ ThemeKey.THINKING_BOLD.value: "bold italic " + palette.grey1,
309
+ "markdown.code": palette.grey1 + " italic on " + palette.code_background,
267
310
  "markdown.code.block": palette.grey1,
268
311
  "markdown.code.border": palette.grey3,
269
312
  "markdown.h1": "bold reverse",
@@ -290,4 +333,14 @@ def get_theme(theme: str | None = None) -> Themes:
290
333
  Style(color=palette.grey1),
291
334
  Style(color=palette.yellow),
292
335
  ],
336
+ sub_agent_backgrounds=[
337
+ Style(bgcolor=palette.cyan_background),
338
+ Style(bgcolor=palette.green_sub_background),
339
+ Style(bgcolor=palette.blue_sub_background),
340
+ Style(bgcolor=palette.purple_background),
341
+ Style(bgcolor=palette.orange_background),
342
+ Style(bgcolor=palette.red_background),
343
+ Style(bgcolor=palette.grey_background),
344
+ Style(bgcolor=palette.yellow_background),
345
+ ],
293
346
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 1.2.22
3
+ Version: 1.2.24
4
4
  Summary: Add your description here
5
5
  Requires-Dist: anthropic>=0.66.0
6
6
  Requires-Dist: chardet>=5.2.0
@@ -18,18 +18,23 @@ Requires-Dist: typer>=0.17.3
18
18
  Requires-Python: >=3.13
19
19
  Description-Content-Type: text/markdown
20
20
 
21
- # Minimal Code Agent CLI (Klaude Code)
22
-
23
- An minimal and opinionated code agent with multi-model support.
24
-
25
- ## Key Features
26
- - **Adaptive Tooling**: Model-aware toolsets (Claude Code tools for Sonnet, Codex `apply_patch` for GPT-5.1/Codex).
27
- - **Multi-Provider Support**: Compatible with `anthropic-messages-api`,`openai-responses-api`, and `openai-compatible-api`(`openrouter-api`), featuring interleaved thinking, OpenRouter's provider sorting etc.
28
- - **Structured Sub-Agent Output**: Main agent defines output JSON schema for sub-agents; sub-agents use `report_back` tool with constrained decoding to return schema-compliant structured data.
29
- - **Skill System**: Extensible support for loading Claude Skills.
30
- - **Session Management**: Robust context preservation with resumable sessions (`--continue`).
31
- - **Simple TUI**: Clean interface offering full visibility into model responses, reasoning and actions.
32
- - **Core Utilities**: Slash commands, sub-agents, image pasting, terminal notifications, file mentioning, and auto-theming.
21
+ # Klaude Code
22
+
23
+ Multi-model code agent CLI.
24
+
25
+ ## Features
26
+ - **Multi-provider**: Anthropic, OpenAI Responses API, OpenRouter
27
+ - **Keep reasoning item in context**: Interleaved thinking support
28
+ - **Model-aware tools**: Claude Code tools for Sonnet, `apply_patch` for GPT-5/Codex
29
+ - **Structured sub-agent output**: Define JSON schema, get schema-compliant responses via constrained decoding
30
+ - **Recursive `@file` mentions**: Circular dependency protection, relative path resolution
31
+ - **Reminders**: Cooldown-based todo tracking and instruction reinforcement
32
+ - **External file sync**: Monitoring for external edits (linter, manual)
33
+ - **Interrupt handling**: Ctrl+C preserves partial responses and synthesizes tool cancellation results
34
+ - **Output truncation**: Large outputs saved to file system with snapshot links
35
+ - **Skills**: Built-in + user + project Agent Skills (with implicit invocation by Skill tool or explicit invocation by typing `$`)
36
+ - **Sessions**: Resumable with `--continue`
37
+ - **Extras**: Slash commands, sub-agents, image paste, terminal notifications, auto-theming
33
38
 
34
39
  ## Installation
35
40
 
@@ -22,30 +22,26 @@ klaude_code/command/export_cmd.py,sha256=Cs7YXWtos-ZfN9OEppIl8Xrb017kDG7R6hGiilq
22
22
  klaude_code/command/export_online_cmd.py,sha256=kOVmFEW7gEEFvaKnXL8suNenktLyTW-13bT64NBGwUQ,5861
23
23
  klaude_code/command/help_cmd.py,sha256=yQJnVtj6sgXQdGsi4u9aS7EcjJLSrXccUA-v_bqmsRw,1633
24
24
  klaude_code/command/model_cmd.py,sha256=GmDln1N6u7eWLK15tm_lcdDJBY8qI0ih48h6AhijafI,1665
25
- klaude_code/command/prompt-deslop.md,sha256=Qpd8P_iVNv6DMg5EZotSivDaxx3SDqOUhMsIFCE3sdo,1309
26
- klaude_code/command/prompt-dev-docs-update.md,sha256=g1IWIWIa-3qlNOw5mBA4N9H1_nvYcw8AKo7XoQw_AZQ,1855
27
- klaude_code/command/prompt-dev-docs.md,sha256=PU9iT6XdUEH6grfSjHVma7xKOQcA__ZTKlEDkbbO0hA,1783
28
- klaude_code/command/prompt-handoff.md,sha256=RXIeXNwOpSpkwAyNFSvQFoo077TVkbj11fqQ2r8aCh4,1638
29
25
  klaude_code/command/prompt-init.md,sha256=a4_FQ3gKizqs2vl9oEY5jtG6HNhv3f-1b5RSCFq0A18,1873
30
- klaude_code/command/prompt-jj-workspace.md,sha256=BtSH3atgvE0j7n3j2EnSS6vuPUJDhEnUHDFZ5qq93QE,919
26
+ klaude_code/command/prompt-jj-describe.md,sha256=n-7hiXU8oodCMR3ipNyRR86pAUzXMz6seloU9a6QQnY,974
31
27
  klaude_code/command/prompt_command.py,sha256=rMi-ZRLpUSt1t0IQVtwnzIYqcrXK-MwZrabbZ8dc8U4,2774
32
28
  klaude_code/command/refresh_cmd.py,sha256=575eJ5IsOc1e_7CulMxvTu5GQ6BaXTG1k8IsAqzrwdQ,1244
33
29
  klaude_code/command/registry.py,sha256=avTjsoyLv11SsLsY_qb3OpsRjsSyxIlu7uwJI0Nq6HE,6176
34
30
  klaude_code/command/release_notes_cmd.py,sha256=FIrBRfKTlXEp8mBh15buNjgOrl_GMX7FeeMWxYYBn1o,2674
35
- klaude_code/command/status_cmd.py,sha256=MnHtNdXTMqCJfB4_seHXDJEHYo99D-4ITZcGDCX2ilA,5359
31
+ klaude_code/command/status_cmd.py,sha256=sYmzfex7RVhgrBCjRyD8fsZ6ioZvjVzQ_-FvmcsA7fo,5365
36
32
  klaude_code/command/terminal_setup_cmd.py,sha256=SivM1gX_anGY_8DCQNFZ5VblFqt4sVgCMEWPRlo6K5w,10911
37
33
  klaude_code/command/thinking_cmd.py,sha256=XDyq0q8eb3Os4FyWjr-moiKjmzGIaNhOC9h89y1AZ84,8854
38
34
  klaude_code/config/__init__.py,sha256=Qrqvi8nizkj6N77h2vDj0r4rbgCiqxvz2HLBPFuWulA,120
39
35
  klaude_code/config/config.py,sha256=2jvM6a8zoC-TdRFaLIw3OW5paxxeXC6l-o05ds4RysA,7263
40
36
  klaude_code/config/select_model.py,sha256=KCdFjaoHXyO9QidNna_OGdDrvlEXtRUXKfG-F8kdNLk,5188
41
- klaude_code/const/__init__.py,sha256=XGiZnUaQgNyYiWNNLipVovK035kgDrMmYRuNivvL-q8,4225
37
+ klaude_code/const.py,sha256=H6CDlh1-AkV3TUe7pDOBA6VaS-81uuWG12NmqERetaA,4483
42
38
  klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
39
  klaude_code/core/agent.py,sha256=bWm-UFX_0-KAy5j_YHH8X8o3MJT4-40Ni2EaDP2SL5k,5819
44
- klaude_code/core/executor.py,sha256=HmKtj0ZremRcLCGHkPckR_k0FSZh6FZ52-LMRSMZK9c,24882
40
+ klaude_code/core/executor.py,sha256=E8IdgNEzcHnWoN9q9VMZljcXoCqWWRU7XzleCZ7jhtA,24907
45
41
  klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
46
42
  klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
47
43
  klaude_code/core/manager/llm_clients_builder.py,sha256=pPZ_xBh-_ipV66L-9a1fnwNos4iik82Zkq0E0y3WrfI,1521
48
- klaude_code/core/manager/sub_agent_manager.py,sha256=GC54N5xErSa-ATLNQphnfZfKlt089uwuvYY9rTeh8Uk,4866
44
+ klaude_code/core/manager/sub_agent_manager.py,sha256=DCRlPimgmW_wykkjqAK_dUeeKxNavS8fJ4mhhT7As-E,4872
49
45
  klaude_code/core/prompt.py,sha256=piHP0Cu_u583_RHPjhVvTkdp5GgHQ29y3IM2QFVHITY,3869
50
46
  klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
51
47
  klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
@@ -57,9 +53,9 @@ klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4y
57
53
  klaude_code/core/prompts/prompt-sub-agent-oracle.md,sha256=1PLI3snvxnenCOPVrL0IxZnBl5b2xxGhlufHAyLyf60,1376
58
54
  klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=ewS7-h8_u4QZftFpqrZWpht9Ap08s7zF9D4k4md8oD8,2360
59
55
  klaude_code/core/prompts/prompt-sub-agent.md,sha256=dmmdsOenbAOfqG6FmdR88spOLZkXmntDBs-cmZ9DN_g,897
60
- klaude_code/core/reminders.py,sha256=uSsHjWoGb1kNlBeKE8NiiF5iH79MGu-bC1ycrwmKHfI,21872
61
- klaude_code/core/task.py,sha256=_wvxo1YrfhhNI0BCsaA2JG-mAj3myd82vkn7ulENfgQ,10460
62
- klaude_code/core/tool/__init__.py,sha256=OY4ma0ym_m4Dl6wOh9SF_4hGxgWVb_-TFzuAg3_zy8M,2024
56
+ klaude_code/core/reminders.py,sha256=ivY7k2Iw9XVgsWfMDckSGsbonFRgGjCJM8MeI0dzuEs,23448
57
+ klaude_code/core/task.py,sha256=yJAcs_hFm1NYaLbjj-qbGiJr65Nu76uLD2lGGfseYYg,11773
58
+ klaude_code/core/tool/__init__.py,sha256=fOEwgJMGHT8NkYYE6l1FZ0fDRUmHzC6laA8wESo9j60,1939
63
59
  klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
60
  klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-E8gO_io,967
65
61
  klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
@@ -69,18 +65,17 @@ klaude_code/core/tool/file/diff_builder.py,sha256=b53S4Ebw7aPmd9AZ97Pxu6MRcnUIdV
69
65
  klaude_code/core/tool/file/edit_tool.md,sha256=rEcUjJuPC46t1nXWjTDxplDcxWDbzTWsr6_bYt5_aRI,1110
70
66
  klaude_code/core/tool/file/edit_tool.py,sha256=wuXISJRTWobNCKjkQ01UpoA13I0Zxcg1r7hXErAQxnQ,10897
71
67
  klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQpfLb8dmtp0,1351
72
- klaude_code/core/tool/file/read_tool.py,sha256=d51eVmDWNVnrhoHyL5_crB8cvCpBNH6S00VAzJfyLgg,12076
68
+ klaude_code/core/tool/file/read_tool.py,sha256=HFA4lYaS_eV9C0UjXCuIVXhbD6OKrpkq4WN33z0EgP0,12877
73
69
  klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
74
- klaude_code/core/tool/file/write_tool.py,sha256=YLQca640fUNA1P95qX52A7I-PaJuReEOLlxRnDcSe44,5414
75
- klaude_code/core/tool/memory/__init__.py,sha256=oeBpjUXcAilCtYXhiXDzavw5-BE_pbB2ZxsFJKTTcdc,143
76
- klaude_code/core/tool/memory/skill_loader.py,sha256=WGC3svsasEIM8yDAjFmFId1HQuEhuD3KFEvgoXcHmD4,8870
77
- klaude_code/core/tool/memory/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
78
- klaude_code/core/tool/memory/skill_tool.py,sha256=8SC4asNZSKfExuhzbyGz4f2cr78PgCpNkut_31IHePw,3602
70
+ klaude_code/core/tool/file/write_tool.py,sha256=j9OCPnCXIg4RC-DF5yw7U5_X1KMNBnqxn1exF-XqFeo,5682
79
71
  klaude_code/core/tool/report_back_tool.py,sha256=KRZzQAIxniwXe58SDJcfK_DCf9TFFAx8XC75wPEjmpY,3246
80
72
  klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
73
  klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
82
74
  klaude_code/core/tool/shell/bash_tool.py,sha256=NSWXU_MzKqJBtkljOPNWGTwtAZwxMrCF-y8GC5MysFI,14465
83
75
  klaude_code/core/tool/shell/command_safety.py,sha256=bGsooLovuzq8WmLcZ2v24AVBDj3bZv2p4GSL0IlixvM,13192
76
+ klaude_code/core/tool/skill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
77
+ klaude_code/core/tool/skill/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
78
+ klaude_code/core/tool/skill/skill_tool.py,sha256=QLcweYEfO-ncv2tdPSqANZrq2U651AG4RjGpFKeAweY,2880
84
79
  klaude_code/core/tool/sub_agent_tool.py,sha256=5n0HDxv4cUzuwBhYiAe3gIJ0s3QgV4GSV12CIIkD_g0,3190
85
80
  klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
81
  klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
@@ -110,14 +105,14 @@ klaude_code/llm/codex/__init__.py,sha256=8vN2j2ezWB_UVpfqQ8ooStsBeLL5SY4SUMXOXdW
110
105
  klaude_code/llm/codex/client.py,sha256=0BAOiLAdk2PxBEYuC_TGOs4_h6yfNZr1YWuf1lzkBxM,5329
111
106
  klaude_code/llm/input_common.py,sha256=NxiYlhGRFntiLiKm5sKLCF0xGYW6DwcyvIhj6KAZoeU,8533
112
107
  klaude_code/llm/openai_compatible/__init__.py,sha256=ACGpnki7k53mMcCl591aw99pm9jZOZk0ghr7atOfNps,81
113
- klaude_code/llm/openai_compatible/client.py,sha256=ctGJAZkg3vUNN34RoTTZsakC22u4kVNmtOmun1GszvU,7991
108
+ klaude_code/llm/openai_compatible/client.py,sha256=sMzHxaDZ4CRDgwSr1pZPqpG6YbHJA-Zk0cFyC_r-ihA,4396
114
109
  klaude_code/llm/openai_compatible/input.py,sha256=rtWVjpwb9tLrinucezmncQXet8MerUxE5Gxc32sfDr4,3750
115
- klaude_code/llm/openai_compatible/stream_processor.py,sha256=EOJeoWlQGHrDj6chMclflj9RMqFgE1X7cdieQ5U5rZI,3415
110
+ klaude_code/llm/openai_compatible/stream.py,sha256=_OlnD5IBAq4xS5tb3mZUObZFGjXP-66lY4g8cxErRoo,10808
116
111
  klaude_code/llm/openai_compatible/tool_call_accumulator.py,sha256=kuw3ceDgenQz2Ccc9KYqBkDo6F1sDb5Aga6m41AIECA,4071
117
112
  klaude_code/llm/openrouter/__init__.py,sha256=_As8lHjwj6vapQhLorZttTpukk5ZiCdhFdGT38_ASPo,69
118
- klaude_code/llm/openrouter/client.py,sha256=9QeqXCwDjtqQWkW3h8qwJ6B3qAv1RmssQNJcCVS3wzc,9087
113
+ klaude_code/llm/openrouter/client.py,sha256=zUkH7wkiYUJMGS_8iaVwdhzUnry7WLw4Q1IDQtncmK0,4864
119
114
  klaude_code/llm/openrouter/input.py,sha256=aHVJCejkwzWaTM_EBbgmzKWyZfttAws2Y7QDW_NCnZk,5671
120
- klaude_code/llm/openrouter/reasoning_handler.py,sha256=r8I2F-oFTCkqJpINv74SCQZXwAuQZym7wJi5ScSe6hs,3378
115
+ klaude_code/llm/openrouter/reasoning.py,sha256=d6RU6twuGfdf0mXGQoxSNRzFaSa3GJFV8Eve5GzDXfU,4472
121
116
  klaude_code/llm/registry.py,sha256=grgHetTd-lSxTXiY689QW_Zd6voaid7qBqSnulpg_fE,1734
122
117
  klaude_code/llm/responses/__init__.py,sha256=WsiyvnNiIytaYcaAqNiB8GI-5zcpjjeODPbMlteeFjA,67
123
118
  klaude_code/llm/responses/client.py,sha256=XEsVehevQJ0WFbEVxIkI-su7VwIcaeq0P9eSrIRcGug,10184
@@ -127,7 +122,7 @@ klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFA
127
122
  klaude_code/protocol/commands.py,sha256=GN6GX9fo7YYtfumrBTpOmOvZofsnzZN2SAxP2X0BjTk,644
128
123
  klaude_code/protocol/events.py,sha256=KUMf1rLNdHQO9cZiQ9Pa1VsKkP1PTMbUkp18bu_jGy8,3935
129
124
  klaude_code/protocol/llm_param.py,sha256=cb4ubLq21PIsMOC8WJb0aid12z_sT1b7FsbNJMr-jLg,4255
130
- klaude_code/protocol/model.py,sha256=yKm2lk80cOLhYB4twD79bfKlTPL2rSY_tNFHJcZ1tPU,13330
125
+ klaude_code/protocol/model.py,sha256=aJUavwtGWY-XiDF6qk2ZV6FwEfjTqOnXZeznB7_zc_4,13606
131
126
  klaude_code/protocol/op.py,sha256=X3UeXxBOLf_jkEaYXhQSTpjtUV2u1Ot5f4bbPWNdQp4,4241
132
127
  klaude_code/protocol/op_handler.py,sha256=qaWrm2rlskSyF7ukPtxFAKf8brgLsUaVzg6035N-7w0,1565
133
128
  klaude_code/protocol/sub_agent/__init__.py,sha256=Abap5lPLgnSCQsVD3axfeqnj2UtxOcDLGX8e9HugfSU,3964
@@ -138,18 +133,27 @@ klaude_code/protocol/sub_agent/web.py,sha256=Z5vUM367kz8CIexN6UVPG4XxzVOaaRek-Ga
138
133
  klaude_code/protocol/tools.py,sha256=OpGCr47ARKaCHcIlljhEN-p-2h4djgbP5jtfTIoKB-A,359
139
134
  klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
140
135
  klaude_code/session/codec.py,sha256=ummbqT7t6uHHXtaS9lOkyhi1h0YpMk7SNSms8DyGAHU,2015
141
- klaude_code/session/export.py,sha256=EvfmZMTScKdaZ43rT4xqQpi8s1_QZ_anUeW-XQ6l15E,29297
136
+ klaude_code/session/export.py,sha256=_xJGVHSjaVbDOLR5yrYUoVFuY4oIKyq5gNq_jupuVkc,29303
142
137
  klaude_code/session/selector.py,sha256=gijwWQkSV20XYP3Fxr27mFXuqP4ChY2DQm_YuBOTQKw,2888
143
138
  klaude_code/session/session.py,sha256=LDrRlxv35_jJGwxv6Lv_WdBYNY2UZZAZ4vippq8pN_o,16016
144
- klaude_code/session/store.py,sha256=MLNTE-HiwmE3foM7n3AUtPvsf_hdyMHYA66ludTR8KU,6872
139
+ klaude_code/session/store.py,sha256=-e-lInCB3N1nFLlet7bipkmPk1PXmGthuMxv5z3hg5o,6953
145
140
  klaude_code/session/templates/export_session.html,sha256=bA27AkcC7DQRoWmcMBeaR8WOx1z76hezEDf0aYH-0HQ,119780
141
+ klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
142
+ klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
143
+ klaude_code/skill/assets/dev-docs/SKILL.md,sha256=eHI9v44KZAOcptlnAVp2aq2Ms7WGhncm-zmGUPGmhU8,3810
144
+ klaude_code/skill/assets/handoff/SKILL.md,sha256=GDHrEqWUeAQy7gGhha_y5jzjpv8C-xhk0hqMH5h59v8,1712
145
+ klaude_code/skill/assets/jj-workspace/SKILL.md,sha256=toxoyrBBoGl9Yv4PYrw_gD071LLZ2RoepUR8qTDRn1M,977
146
+ klaude_code/skill/assets/skill-creator/SKILL.md,sha256=0ByoWb9ao0UKSoM5Tmz-Qe5CAPliTrVpUK0gPd9TFqo,5520
147
+ klaude_code/skill/loader.py,sha256=3xGh4udco7tXlrnGFh4Kr5yljtadJ391jKYjaQ2Z3js,10534
148
+ klaude_code/skill/manager.py,sha256=XRSGgGpNJo2Q9pHKpWo-VyMqf_y-dEt9JGtDoC3Eq-U,2088
149
+ klaude_code/skill/system_skills.py,sha256=cfhxk5Jc1OFip-Lamr6RwlAEPq-UA60M3NdwSneKGco,6124
146
150
  klaude_code/trace/__init__.py,sha256=q8uOYhWr2_Mia1aEK_vkqx91YAfFM25ItIB6J8n3_pM,352
147
151
  klaude_code/trace/log.py,sha256=0H_RqkytSpt6AAIFDg-MV_8vA9zsR9BB1UqT6moTTTg,9134
148
152
  klaude_code/ui/__init__.py,sha256=XuEQsFUkJet8HI04cRmNLwnHOUqaPCRy4hF7PJnIfCY,2737
149
153
  klaude_code/ui/core/__init__.py,sha256=2NakrTDcxem5D0atyEY_Rxv1BbKCeZweF63L6AAq6r8,23
150
154
  klaude_code/ui/core/display.py,sha256=NwFQ9oKi8i3T5EsYDRrTpGBr3BZI0Ggns37JuQEOH54,3540
151
155
  klaude_code/ui/core/input.py,sha256=GqEos_VKRpfzQg0LQvr3210gzu2mw0_7OpPyNXmF3LI,2533
152
- klaude_code/ui/core/stage_manager.py,sha256=QeKIbeqlQk4TwwjCirXdv6Yp__-kxL58ytgYVUTYdkY,1711
156
+ klaude_code/ui/core/stage_manager.py,sha256=5rJ7Fg3vf_4x9PTt6VOZ-SVRpg9jAZhZkCh_tQslLNg,1578
153
157
  klaude_code/ui/modes/__init__.py,sha256=ByDPbyYYU4o5kdnEes3b1VEV173RI9XAXyzkFbrApEY,26
154
158
  klaude_code/ui/modes/debug/__init__.py,sha256=1-1tAk7FtENdYzExSttYdHiJ-qH3DIQ5yYJ51ms2uSg,13
155
159
  klaude_code/ui/modes/debug/display.py,sha256=7_j9NGZqL4wE2LWhF1TjDHac4MfaWlYN2RHZCTfQad8,1096
@@ -157,32 +161,32 @@ klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJ
157
161
  klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
158
162
  klaude_code/ui/modes/repl/__init__.py,sha256=35a6SUiL1SDi2i43X2VjHQw97rR7yhbLBzkGI5aC6Bc,1526
159
163
  klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
160
- klaude_code/ui/modes/repl/completers.py,sha256=z5hDKUZCxtRLKWHtirQqBjTibRFLHPqTCBo7O0YlLLs,24721
164
+ klaude_code/ui/modes/repl/completers.py,sha256=GIvUS9TAFMMPDpoXLuIupEccoqIMEpSEw4IZmKjVo4c,28560
161
165
  klaude_code/ui/modes/repl/display.py,sha256=0u4ISeOoYjynF7InYyV-PMOZqP44QBbjYOLOL18V0c0,2245
162
- klaude_code/ui/modes/repl/event_handler.py,sha256=gsdSHD_53AnR5UXrwDrMrknVI9Bcrxaq9C8gNjTQpmY,23065
163
- klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=uF88c9OpJpf2KAxowX04ieOm58qIg5lQigc1GNnozX0,6298
166
+ klaude_code/ui/modes/repl/event_handler.py,sha256=UUJYhNRSTFj7CVi_IG-fe3B5-pv9odcBvqgbJxeoQp0,25161
167
+ klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=Jbpk-jOmBNBhw3hKkB8YzGSXRduIH9YOGMhMIPzF3gk,8564
164
168
  klaude_code/ui/modes/repl/key_bindings.py,sha256=Fxz9Ey2SnOHvfleMeSYVduxuofY0Yo-97hMRs-OMe-o,7800
165
- klaude_code/ui/modes/repl/renderer.py,sha256=YJAF3Cx2fmyrmGOHLVRvUlXvlRR8ptYZtngR50Vg7uY,11639
169
+ klaude_code/ui/modes/repl/renderer.py,sha256=Apg_z6D7JTmzxGN9os64bjlG9LxfOAgqjAAmiXA8fMc,12247
166
170
  klaude_code/ui/renderers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
167
- klaude_code/ui/renderers/assistant.py,sha256=Dxy6v4pX28RyWhnrjBteY8_NvDIi_jQa-j0mWt-eqWY,569
171
+ klaude_code/ui/renderers/assistant.py,sha256=nO_QNJ2e9TwtU2IlojO9lCMWNFUNmcE9Ezz-WW748_w,743
168
172
  klaude_code/ui/renderers/common.py,sha256=5RdXC3ngtlhfmxRlbwOPtHtbXhAoWwbHoGX78tZcaTc,2284
169
- klaude_code/ui/renderers/developer.py,sha256=r7Rb2OQKfDiv5pMszgN8PcdW9k7KbOLTXzL4rT6uc7s,6536
170
- klaude_code/ui/renderers/diffs.py,sha256=8NlIySQqN1smIwLePdWzdFeiny-trCY14RQZ1VDlkA0,10407
173
+ klaude_code/ui/renderers/developer.py,sha256=CawltuPSt_8s5lLoYKWYD9htwORbjgHeb4Ap0L2q7R4,6881
174
+ klaude_code/ui/renderers/diffs.py,sha256=A37Wuz1_UIg0-st5le68-DRGz4-kot6N-wy9xEMKdz0,10403
171
175
  klaude_code/ui/renderers/errors.py,sha256=o9pOHRqZ0nxMPwkmV4CG81X7taW1-izvga6RY3fFRMI,516
172
- klaude_code/ui/renderers/metadata.py,sha256=K0D9nx02rulZb2Sz_yOasFvlSFxG5U-VI3mIKD0JqbE,8290
173
- klaude_code/ui/renderers/sub_agent.py,sha256=grQ_9G_7iYHdCpxrM0qDAKEMQfXcxBv0bI0GPe3s0lE,4961
174
- klaude_code/ui/renderers/thinking.py,sha256=hUIJzgsjvpK2cM_C2103cG4gz785FUt1PtQsQtgji9s,1764
175
- klaude_code/ui/renderers/tools.py,sha256=jG5mCatTMxHMAkiwxVif5hkioPZ178c4YxI-rT_sQA8,20532
176
- klaude_code/ui/renderers/user_input.py,sha256=rDdOYvbgJ6oePQAtyTCK-KhARfLKytpTZboZ-cFIuJQ,2603
176
+ klaude_code/ui/renderers/metadata.py,sha256=b1aNqLjyaqErP4O5YSEXg7ychJcNTKpZ6hTmdcNJX84,8190
177
+ klaude_code/ui/renderers/sub_agent.py,sha256=-8aDIIG4vmqwSSJepYy_tn2vmChAHOLjwmPWN2o_B_Y,5728
178
+ klaude_code/ui/renderers/thinking.py,sha256=y5ICt0eJvpn2rtv5-_x6FDWyOYAnJHkfTdBWCr4Y6Yk,1946
179
+ klaude_code/ui/renderers/tools.py,sha256=W24deCM4GhZT69gzo3FwZ0QVYbQ-x5Bo2-y5nFkOsdE,22268
180
+ klaude_code/ui/renderers/user_input.py,sha256=e2hZS7UUnzQuQ6UqzSKRDkFJMkKTLUoub1JclHMX40g,3941
177
181
  klaude_code/ui/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
178
182
  klaude_code/ui/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
179
183
  klaude_code/ui/rich/code_panel.py,sha256=MdUP4QSaQJQxX0MQJT0pvrkhpGYZx3gWdIRbZT_Uj_I,3938
180
184
  klaude_code/ui/rich/live.py,sha256=Uid0QAZG7mHb4KrCF8p9c9n1nHLHzW75xSqcLZ4bLWY,2098
181
- klaude_code/ui/rich/markdown.py,sha256=8YgQyX_sQmrXgbDYRyiH4YHKV3zZ5PMz8yfA2hQDAJI,11156
185
+ klaude_code/ui/rich/markdown.py,sha256=_B7yWgBpSY8I8MBTX1_qvDCmyIZY0I-EnPrmoShQ2iQ,12126
182
186
  klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
183
187
  klaude_code/ui/rich/searchable_text.py,sha256=DCVZgEFv7_ergAvT2v7XrfQAUXUzhmAwuVAchlIx8RY,2448
184
- klaude_code/ui/rich/status.py,sha256=KvBZwPX2EkPaxDadj6AQzFs2Wmze13wQpK_kLIB35e8,9622
185
- klaude_code/ui/rich/theme.py,sha256=l6EDIK50W00YHk4tCUSJA54J9PlTHnfZhNfeZSzTcu0,11160
188
+ klaude_code/ui/rich/status.py,sha256=JOB-Yb3_HBwKb8K-NHFVkjxCPLkDuAJYboS6JzNqMVc,9590
189
+ klaude_code/ui/rich/theme.py,sha256=GpPd_BD7rkCpmWDjdOYoW65UgJSMxAjA28Sgv5GbUNg,13291
186
190
  klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
187
191
  klaude_code/ui/terminal/color.py,sha256=M-i09DVlLAhAyhQjfeAi7OipoGi1p_OVkaZxeRfykY0,7135
188
192
  klaude_code/ui/terminal/control.py,sha256=6SGNwxorP3jMW9xqnZy2BC0OsJd4DSrS13O3t6YlZzs,4916
@@ -190,7 +194,7 @@ klaude_code/ui/terminal/notifier.py,sha256=wkRM66d98Oh6PujnN4bB7NiQxIYEHqQXverMK
190
194
  klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
191
195
  klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
192
196
  klaude_code/ui/utils/common.py,sha256=tqHqwgLtAyP805kwRFyoAL4EgMutcNb3Y-GAXJ4IeuM,2263
193
- klaude_code-1.2.22.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
194
- klaude_code-1.2.22.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
195
- klaude_code-1.2.22.dist-info/METADATA,sha256=8oDw2_kjHPrLuNM1B3JmcyEQ4Vxd3YBVvsr1GQ0fTnc,7678
196
- klaude_code-1.2.22.dist-info/RECORD,,
197
+ klaude_code-1.2.24.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
198
+ klaude_code-1.2.24.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
199
+ klaude_code-1.2.24.dist-info/METADATA,sha256=2hkiGL2H3Kze2MNzy6FcrtEG0KSh-t6tPBpgwjJreDk,7725
200
+ klaude_code-1.2.24.dist-info/RECORD,,
@@ -1,14 +0,0 @@
1
- ---
2
- description: Remove AI code slop
3
- from: https://cursor.com/cn/link/command?name=deslop&text=%23%20Remove%20AI%20code%20slop%0A%0ACheck%20the%20diff%20against%20main%2C%20and%20remove%20all%20AI%20generated%20slop%20introduced%20in%20this%20branch.%0A%0AThis%20includes%3A%0A-%20Extra%20comments%20that%20a%20human%20wouldn%27t%20add%20or%20is%20inconsistent%20with%20the%20rest%20of%20the%20file%0A-%20Extra%20defensive%20checks%20or%20try%2Fcatch%20blocks%20that%20are%20abnormal%20for%20that%20area%20of%20the%20codebase%20(especially%20if%20called%20by%20trusted%20%2F%20validated%20codepaths)%0A-%20Casts%20to%20any%20to%20get%20around%20type%20issues%0A-%20Any%20other%20style%20that%20is%20inconsistent%20with%20the%20file%0A%0AReport%20at%20the%20end%20with%20only%20a%201-3%20sentence%20summary%20of%20what%20you%20changed
4
- ---
5
-
6
- Check $ARGUMENTS, and remove all AI generated slop.
7
-
8
- This includes:
9
- - Extra comments that a human wouldn't add or is inconsistent with the rest of the file
10
- - Extra defensive checks or try/catch blocks that are abnormal for that area of the codebase (especially if called by trusted / validated codepaths)
11
- - Casts to any to get around type issues
12
- - Any other style that is inconsistent with the file
13
-
14
- Report at the end with only a 1-3 sentence summary of what you changed
@@ -1,56 +0,0 @@
1
- ---
2
- description: Update dev documentation before context compaction
3
- from: https://github.com/diet103/claude-code-infrastructure-showcase/blob/main/.claude/commands/dev-docs-update.md
4
- ---
5
-
6
- We're approaching context limits. Please update the development documentation to ensure seamless continuation after context reset.
7
-
8
- ## Required Updates
9
-
10
- ### 1. Update Active Task Documentation
11
- For each task in `/dev/active/`:
12
- - Update `[task-name]-context.md` with:
13
- - Current implementation state
14
- - Key decisions made this session
15
- - Files modified and why
16
- - Any blockers or issues discovered
17
- - Next immediate steps
18
- - Last Updated timestamp
19
-
20
- - Update `[task-name]-tasks.md` with:
21
- - Mark completed tasks as ✅
22
- - Add any new tasks discovered
23
- - Update in-progress tasks with current status
24
- - Reorder priorities if needed
25
-
26
- ### 2. Capture Session Context
27
- Include any relevant information about:
28
- - Complex problems solved
29
- - Architectural decisions made
30
- - Tricky bugs found and fixed
31
- - Integration points discovered
32
- - Testing approaches used
33
- - Performance optimizations made
34
-
35
- ### 3. Update Memory (if applicable)
36
- - Store any new patterns or solutions in project memory/documentation
37
- - Update entity relationships discovered
38
- - Add observations about system behavior
39
-
40
- ### 4. Document Unfinished Work
41
- - What was being worked on when context limit approached
42
- - Exact state of any partially completed features
43
- - Commands that need to be run on restart
44
- - Any temporary workarounds that need permanent fixes
45
-
46
- ### 5. Create Handoff Notes
47
- If switching to a new conversation:
48
- - Exact file and line being edited
49
- - The goal of current changes
50
- - Any uncommitted changes that need attention
51
- - Test commands to verify work
52
-
53
- ## Additional Context:
54
- $ARGUMENTS
55
-
56
- **Priority**: Focus on capturing information that would be hard to rediscover or reconstruct from code alone.
@@ -1,46 +0,0 @@
1
- ---
2
- description: Create a comprehensive strategic plan with structured task breakdown
3
- from: https://github.com/diet103/claude-code-infrastructure-showcase/blob/main/.claude/commands/dev-docs.md
4
- ---
5
-
6
- Create a comprehensive, actionable plan for:
7
- $ARGUMENTS
8
-
9
- ## Instructions
10
-
11
- 1. **Analyze the request** and determine the scope of planning needed
12
- 2. **Examine relevant files** in the codebase to understand current state
13
- 3. **Create a structured plan** with:
14
- - Executive Summary
15
- - Current State Analysis
16
- - Proposed Future State
17
- - Implementation Phases (broken into sections)
18
- - Detailed Tasks (actionable items with clear acceptance criteria)
19
- - Risk Assessment and Mitigation Strategies
20
- - Success Metrics
21
- - Required Resources and Dependencies
22
- - Timeline Estimates
23
-
24
- 4. **Task Breakdown Structure**:
25
- - Each major section represents a phase or component
26
- - Number and prioritize tasks within sections
27
- - Include clear acceptance criteria for each task
28
- - Specify dependencies between tasks
29
- - Estimate effort levels (S/M/L/XL)
30
-
31
- 5. **Create task management structure**:
32
- - Create directory: `dev/active/[task-name]/` (relative to project root)
33
- - Generate three files:
34
- - `[task-name]-plan.md` - The comprehensive plan
35
- - `[task-name]-context.md` - Key files, decisions, dependencies
36
- - `[task-name]-tasks.md` - Checklist format for tracking progress
37
- - Include "Last Updated: YYYY-MM-DD" in each file
38
-
39
- 6. **Stop and Consult**: Pause and negotiate the plan with the user.
40
-
41
- ## Quality Standards
42
- - Plans must be self-contained with all necessary context
43
- - Use clear, actionable language
44
- - Include specific technical details where relevant
45
- - Consider both technical and business perspectives
46
- - Account for potential risks and edge cases
@@ -1,33 +0,0 @@
1
- ---
2
- description: Write a HANDOFF.md for another agent to continue the conversation
3
- from: amp-cli https://ampcode.com/manual#handoff
4
- ---
5
-
6
- Write a HANDOFF.md file in the current working directory for another agent to continue this conversation.
7
-
8
- Extract relevant context from the conversation above to facilitate continuing this work. Write from my perspective (first person: "I did...", "I told you...").
9
-
10
- Consider what would be useful to know based on my request below. Relevant questions include:
11
- - What did I just do or implement?
12
- - What instructions did I give you that are still relevant (e.g., follow patterns in the codebase)?
13
- - Did I provide a plan or spec that should be included?
14
- - What important information did I share (certain libraries, patterns, constraints, preferences)?
15
- - What key technical details did I discover (APIs, methods, patterns)?
16
- - What caveats, limitations, or open questions remain?
17
-
18
- Extract only what matters for the specific request below. Skip irrelevant questions. Choose an appropriate length based on the complexity of the request.
19
-
20
- Focus on capabilities and behavior, not file-by-file changes. Avoid excessive implementation details (variable names, storage keys, constants) unless critical.
21
-
22
- Format: Plain text with bullets. No markdown headers, no bold/italic, no code fences. Use workspace-relative paths for files.
23
-
24
- List file or directory paths (workspace-relative) relevant to accomplishing the goal in the following format:
25
- <example>
26
- @src/project/main.py
27
- @src/project/llm/
28
- </example>
29
-
30
- My request:
31
- $ARGUMENTS
32
-
33
- <system>If the request section is empty, ask for clarification about the goal</system>
@@ -1,18 +0,0 @@
1
- ---
2
- description: Create a jj workspace before starting work to enable parallel Clauding
3
- ---
4
- <task>
5
- $ARGUMENTS
6
- </task>
7
- <system>
8
- You are now in jj-workspace mode. Before working on any task, you MUST first create a dedicated jj workspace. This allows multiple Claude sessions to work in parallel without conflicts.
9
-
10
- If the <task> above is empty, inform the user that you are ready to work in jj-workspace mode and waiting for a task description. Once provided, follow the steps below.
11
-
12
- When a task is provided, follow these steps:
13
- 1. Generate a short, descriptive workspace name based on the task (e.g., `workspace-add-login` or `workspace-fix-typo`)
14
- 2. Run `jj workspace add <workspace-name>` to create the workspace
15
- 3. Change into the workspace directory: `cd <workspace-name>`
16
- 4. Describe the change: `jj describe -m '<brief task description>'`
17
- 5. Continue all subsequent work within this workspace directory
18
- </system>
@@ -1,5 +0,0 @@
1
- from .skill_loader import SkillLoader
2
- from .skill_tool import SkillTool
3
-
4
- skill_loader = SkillLoader()
5
- SkillTool.set_skill_loader(skill_loader)