klaude-code 1.2.22__py3-none-any.whl → 1.2.23__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 (44) hide show
  1. klaude_code/command/status_cmd.py +1 -1
  2. klaude_code/const/__init__.py +8 -2
  3. klaude_code/core/manager/sub_agent_manager.py +1 -1
  4. klaude_code/core/reminders.py +51 -0
  5. klaude_code/core/task.py +37 -18
  6. klaude_code/core/tool/__init__.py +1 -4
  7. klaude_code/core/tool/skill/__init__.py +0 -0
  8. klaude_code/core/tool/{memory → skill}/skill_tool.py +16 -39
  9. klaude_code/protocol/model.py +2 -1
  10. klaude_code/session/export.py +1 -1
  11. klaude_code/session/store.py +4 -2
  12. klaude_code/skill/__init__.py +27 -0
  13. klaude_code/skill/assets/deslop/SKILL.md +17 -0
  14. klaude_code/skill/assets/dev-docs/SKILL.md +108 -0
  15. klaude_code/skill/assets/handoff/SKILL.md +39 -0
  16. klaude_code/skill/assets/jj-workspace/SKILL.md +20 -0
  17. klaude_code/skill/assets/skill-creator/SKILL.md +139 -0
  18. klaude_code/{core/tool/memory/skill_loader.py → skill/loader.py} +60 -24
  19. klaude_code/skill/manager.py +70 -0
  20. klaude_code/skill/system_skills.py +192 -0
  21. klaude_code/ui/modes/repl/completers.py +103 -3
  22. klaude_code/ui/modes/repl/event_handler.py +7 -3
  23. klaude_code/ui/modes/repl/input_prompt_toolkit.py +42 -3
  24. klaude_code/ui/renderers/assistant.py +7 -2
  25. klaude_code/ui/renderers/developer.py +12 -0
  26. klaude_code/ui/renderers/diffs.py +1 -1
  27. klaude_code/ui/renderers/metadata.py +4 -2
  28. klaude_code/ui/renderers/thinking.py +1 -1
  29. klaude_code/ui/renderers/tools.py +57 -32
  30. klaude_code/ui/renderers/user_input.py +32 -2
  31. klaude_code/ui/rich/markdown.py +22 -17
  32. klaude_code/ui/rich/status.py +1 -13
  33. klaude_code/ui/rich/theme.py +7 -5
  34. {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/METADATA +18 -13
  35. {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/RECORD +38 -35
  36. klaude_code/command/prompt-deslop.md +0 -14
  37. klaude_code/command/prompt-dev-docs-update.md +0 -56
  38. klaude_code/command/prompt-dev-docs.md +0 -46
  39. klaude_code/command/prompt-handoff.md +0 -33
  40. klaude_code/command/prompt-jj-workspace.md +0 -18
  41. klaude_code/core/tool/memory/__init__.py +0 -5
  42. /klaude_code/core/tool/{memory → skill}/skill_tool.md +0 -0
  43. {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/WHEEL +0 -0
  44. {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/entry_points.txt +0 -0
@@ -9,7 +9,7 @@ from typing import Any, ClassVar
9
9
 
10
10
  from rich.console import Console, ConsoleOptions, Group, RenderableType, RenderResult
11
11
  from rich.live import Live
12
- from rich.markdown import CodeBlock, Heading, HorizontalRule, Markdown
12
+ from rich.markdown import CodeBlock, Heading, Markdown, MarkdownElement
13
13
  from rich.rule import Rule
14
14
  from rich.spinner import Spinner
15
15
  from rich.style import Style
@@ -45,12 +45,12 @@ class ThinkingCodeBlock(CodeBlock):
45
45
  yield CodePanel(text, border_style="markdown.code.border")
46
46
 
47
47
 
48
- class SpacedHorizontalRule(HorizontalRule):
48
+ class Divider(MarkdownElement):
49
49
  """A horizontal rule with an extra blank line below."""
50
50
 
51
51
  def __rich_console__(self, console: Console, options: ConsoleOptions) -> RenderResult:
52
- yield from super().__rich_console__(console, options)
53
- yield Text()
52
+ style = console.get_style("markdown.hr", default="none")
53
+ yield Rule(style=style, characters="-")
54
54
 
55
55
 
56
56
  class LeftHeading(Heading):
@@ -77,7 +77,7 @@ class NoInsetMarkdown(Markdown):
77
77
  "fence": NoInsetCodeBlock,
78
78
  "code_block": NoInsetCodeBlock,
79
79
  "heading_open": LeftHeading,
80
- "hr": SpacedHorizontalRule,
80
+ "hr": Divider,
81
81
  }
82
82
 
83
83
 
@@ -89,7 +89,7 @@ class ThinkingMarkdown(Markdown):
89
89
  "fence": ThinkingCodeBlock,
90
90
  "code_block": ThinkingCodeBlock,
91
91
  "heading_open": LeftHeading,
92
- "hr": SpacedHorizontalRule,
92
+ "hr": Divider,
93
93
  }
94
94
 
95
95
 
@@ -108,7 +108,8 @@ class MarkdownStream:
108
108
  console: Console | None = None,
109
109
  spinner: Spinner | None = None,
110
110
  mark: str | None = None,
111
- indent: int = 0,
111
+ left_margin: int = 0,
112
+ right_margin: int = const.MARKDOWN_RIGHT_MARGIN,
112
113
  markdown_class: Callable[..., Markdown] | None = None,
113
114
  ) -> None:
114
115
  """Initialize the markdown stream.
@@ -117,8 +118,9 @@ class MarkdownStream:
117
118
  mdargs (dict, optional): Additional arguments to pass to rich Markdown renderer
118
119
  theme (Theme, optional): Theme for rendering markdown
119
120
  console (Console, optional): External console to use for rendering
120
- mark (str | None, optional): Marker shown before the first non-empty line when indent >= 2
121
- indent (int, optional): Number of spaces to indent all rendered lines on the left
121
+ mark (str | None, optional): Marker shown before the first non-empty line when left_margin >= 2
122
+ left_margin (int, optional): Number of columns to reserve on the left side
123
+ right_margin (int, optional): Number of columns to reserve on the right side
122
124
  markdown_class: Markdown class to use for rendering (defaults to NoInsetMarkdown)
123
125
  """
124
126
  self.printed: list[str] = [] # Stores lines that have already been printed
@@ -140,7 +142,10 @@ class MarkdownStream:
140
142
  self.console = console
141
143
  self.spinner: Spinner | None = spinner
142
144
  self.mark: str | None = mark
143
- self.indent: int = max(indent, 0)
145
+
146
+ self.left_margin: int = max(left_margin, 0)
147
+
148
+ self.right_margin: int = max(right_margin, 0)
144
149
  self.markdown_class: Callable[..., Markdown] = markdown_class or NoInsetMarkdown
145
150
 
146
151
  @property
@@ -160,15 +165,15 @@ class MarkdownStream:
160
165
  # Render the markdown to a string buffer
161
166
  string_io = io.StringIO()
162
167
 
163
- # Determine console width and adjust for left indent so that
164
- # the rendered content plus indent does not exceed the available width.
168
+ # Determine console width and adjust for left margin so that
169
+ # the rendered content plus margins does not exceed the available width.
165
170
  if self.console is not None:
166
171
  base_width = self.console.options.max_width
167
172
  else:
168
173
  probe_console = Console(theme=self.theme)
169
174
  base_width = probe_console.options.max_width
170
175
 
171
- effective_width = max(base_width - self.indent, 1)
176
+ effective_width = max(base_width - self.left_margin - self.right_margin, 1)
172
177
 
173
178
  # Use external console for consistent theming, or create temporary one
174
179
  temp_console = Console(
@@ -182,17 +187,17 @@ class MarkdownStream:
182
187
  temp_console.print(markdown)
183
188
  output = string_io.getvalue()
184
189
 
185
- # Split rendered output into lines, strip trailing spaces, and apply left indent.
190
+ # Split rendered output into lines, strip trailing spaces, and apply left margin.
186
191
  lines = output.splitlines(keepends=True)
187
- indent_prefix = " " * self.indent if self.indent > 0 else ""
192
+ indent_prefix = " " * self.left_margin if self.left_margin > 0 else ""
188
193
  processed_lines: list[str] = []
189
194
  mark_applied = False
190
- use_mark = bool(self.mark) and self.indent >= 2
195
+ use_mark = bool(self.mark) and self.left_margin >= 2
191
196
 
192
197
  for line in lines:
193
198
  stripped = line.rstrip()
194
199
 
195
- # Apply mark to the first non-empty line only when indent is at least 2.
200
+ # Apply mark to the first non-empty line only when left_margin is at least 2.
196
201
  if use_mark and not mark_applied and stripped:
197
202
  stripped = f"{self.mark} {stripped}"
198
203
  mark_applied = True
@@ -22,18 +22,7 @@ BREATHING_SPINNER_NAME = "dots"
22
22
 
23
23
  # Alternating glyphs for the breathing spinner - switches at each "transparent" point
24
24
  _BREATHING_SPINNER_GLYPHS_BASE = [
25
- "",
26
- "✶",
27
- "✲",
28
- "◆",
29
- "❖",
30
- "✧",
31
- "❋",
32
- "✸",
33
- "✻",
34
- "◇",
35
- "✴",
36
- "✷",
25
+ "",
37
26
  ]
38
27
 
39
28
  # Shuffle glyphs on module load for variety across sessions
@@ -114,7 +103,6 @@ def _shimmer_style(console: Console, base_style: Style, intensity: float) -> Sty
114
103
 
115
104
  base_r, base_g, base_b = base_triplet
116
105
  bg_r, bg_g, bg_b = bg_triplet
117
-
118
106
  r = int(bg_r * alpha + base_r * (1.0 - alpha))
119
107
  g = int(bg_g * alpha + base_g * (1.0 - alpha))
120
108
  b = int(bg_b * alpha + base_b * (1.0 - alpha))
@@ -44,8 +44,8 @@ LIGHT_PALETTE = Palette(
44
44
  lavender="#5f87af",
45
45
  diff_add="#2e5a32 on #dafbe1",
46
46
  diff_add_char="#2e5a32 on #aceebb",
47
- diff_remove="#5a2e32 on #ffebe9",
48
- diff_remove_char="#5a2e32 on #ffc1bb",
47
+ diff_remove="#82071e on #ffecec",
48
+ diff_remove_char="#82071e on #ffcfcf",
49
49
  code_theme="ansi_light",
50
50
  text_background="#e0e0e0",
51
51
  )
@@ -65,9 +65,9 @@ DARK_PALETTE = Palette(
65
65
  purple="#afbafe",
66
66
  lavender="#9898b8",
67
67
  diff_add="#c8e6c9 on #1b3928",
68
- diff_add_char="#c8e6c9 on #264f35",
68
+ diff_add_char="#c8e6c9 on #2d6b42",
69
69
  diff_remove="#ffcdd2 on #3d1f23",
70
- diff_remove_char="#ffcdd2 on #5c2d33",
70
+ diff_remove_char="#ffcdd2 on #7a3a42",
71
71
  code_theme="ansi_dark",
72
72
  text_background="#2f3440",
73
73
  )
@@ -102,6 +102,7 @@ class ThemeKey(str, Enum):
102
102
  USER_INPUT_PROMPT = "user.input.prompt"
103
103
  USER_INPUT_AT_PATTERN = "user.at_pattern"
104
104
  USER_INPUT_SLASH_COMMAND = "user.slash_command"
105
+ USER_INPUT_SKILL = "user.skill"
105
106
  # REMINDER
106
107
  REMINDER = "reminder"
107
108
  REMINDER_BOLD = "reminder.bold"
@@ -183,9 +184,10 @@ def get_theme(theme: str | None = None) -> Themes:
183
184
  ThemeKey.INTERRUPT.value: "reverse bold " + palette.red,
184
185
  # USER_INPUT
185
186
  ThemeKey.USER_INPUT.value: palette.magenta,
186
- ThemeKey.USER_INPUT_PROMPT.value: palette.magenta,
187
+ ThemeKey.USER_INPUT_PROMPT.value: "bold " + palette.magenta,
187
188
  ThemeKey.USER_INPUT_AT_PATTERN.value: palette.purple,
188
189
  ThemeKey.USER_INPUT_SLASH_COMMAND.value: "bold reverse " + palette.blue,
190
+ ThemeKey.USER_INPUT_SKILL.value: "bold reverse " + palette.green,
189
191
  # METADATA
190
192
  ThemeKey.METADATA.value: palette.lavender,
191
193
  ThemeKey.METADATA_DIM.value: "dim " + palette.lavender,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: klaude-code
3
- Version: 1.2.22
3
+ Version: 1.2.23
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,25 @@ 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
31
26
  klaude_code/command/prompt_command.py,sha256=rMi-ZRLpUSt1t0IQVtwnzIYqcrXK-MwZrabbZ8dc8U4,2774
32
27
  klaude_code/command/refresh_cmd.py,sha256=575eJ5IsOc1e_7CulMxvTu5GQ6BaXTG1k8IsAqzrwdQ,1244
33
28
  klaude_code/command/registry.py,sha256=avTjsoyLv11SsLsY_qb3OpsRjsSyxIlu7uwJI0Nq6HE,6176
34
29
  klaude_code/command/release_notes_cmd.py,sha256=FIrBRfKTlXEp8mBh15buNjgOrl_GMX7FeeMWxYYBn1o,2674
35
- klaude_code/command/status_cmd.py,sha256=MnHtNdXTMqCJfB4_seHXDJEHYo99D-4ITZcGDCX2ilA,5359
30
+ klaude_code/command/status_cmd.py,sha256=sYmzfex7RVhgrBCjRyD8fsZ6ioZvjVzQ_-FvmcsA7fo,5365
36
31
  klaude_code/command/terminal_setup_cmd.py,sha256=SivM1gX_anGY_8DCQNFZ5VblFqt4sVgCMEWPRlo6K5w,10911
37
32
  klaude_code/command/thinking_cmd.py,sha256=XDyq0q8eb3Os4FyWjr-moiKjmzGIaNhOC9h89y1AZ84,8854
38
33
  klaude_code/config/__init__.py,sha256=Qrqvi8nizkj6N77h2vDj0r4rbgCiqxvz2HLBPFuWulA,120
39
34
  klaude_code/config/config.py,sha256=2jvM6a8zoC-TdRFaLIw3OW5paxxeXC6l-o05ds4RysA,7263
40
35
  klaude_code/config/select_model.py,sha256=KCdFjaoHXyO9QidNna_OGdDrvlEXtRUXKfG-F8kdNLk,5188
41
- klaude_code/const/__init__.py,sha256=XGiZnUaQgNyYiWNNLipVovK035kgDrMmYRuNivvL-q8,4225
36
+ klaude_code/const/__init__.py,sha256=yZCljtZYt0FPIczkU8i9v26Nvipn5x6OPeBE8L8A8wI,4396
42
37
  klaude_code/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
43
38
  klaude_code/core/agent.py,sha256=bWm-UFX_0-KAy5j_YHH8X8o3MJT4-40Ni2EaDP2SL5k,5819
44
39
  klaude_code/core/executor.py,sha256=HmKtj0ZremRcLCGHkPckR_k0FSZh6FZ52-LMRSMZK9c,24882
45
40
  klaude_code/core/manager/__init__.py,sha256=hdIbpnYj6i18byiWjtJIm5l7NYYDQMvafw8fePVPydc,562
46
41
  klaude_code/core/manager/llm_clients.py,sha256=X2oMFWgJcP0tK8GEtMMDYR3HyR6_H8FuyCqpzWF5x2k,871
47
42
  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
43
+ klaude_code/core/manager/sub_agent_manager.py,sha256=DCRlPimgmW_wykkjqAK_dUeeKxNavS8fJ4mhhT7As-E,4872
49
44
  klaude_code/core/prompt.py,sha256=piHP0Cu_u583_RHPjhVvTkdp5GgHQ29y3IM2QFVHITY,3869
50
45
  klaude_code/core/prompts/prompt-claude-code.md,sha256=uuWBv6GrG63mdmBedAHT5U9yOpbHSKFYbbS2xBnUzOE,8290
51
46
  klaude_code/core/prompts/prompt-codex-gpt-5-1-codex-max.md,sha256=SW-y8AmR99JL_9j26k9YVAOQuZ18vR12aT5CWHkZDc4,11741
@@ -57,9 +52,9 @@ klaude_code/core/prompts/prompt-sub-agent-explore.md,sha256=21kFodjhvN0L-c_ZFo4y
57
52
  klaude_code/core/prompts/prompt-sub-agent-oracle.md,sha256=1PLI3snvxnenCOPVrL0IxZnBl5b2xxGhlufHAyLyf60,1376
58
53
  klaude_code/core/prompts/prompt-sub-agent-web.md,sha256=ewS7-h8_u4QZftFpqrZWpht9Ap08s7zF9D4k4md8oD8,2360
59
54
  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
55
+ klaude_code/core/reminders.py,sha256=ivY7k2Iw9XVgsWfMDckSGsbonFRgGjCJM8MeI0dzuEs,23448
56
+ klaude_code/core/task.py,sha256=yJAcs_hFm1NYaLbjj-qbGiJr65Nu76uLD2lGGfseYYg,11773
57
+ klaude_code/core/tool/__init__.py,sha256=fOEwgJMGHT8NkYYE6l1FZ0fDRUmHzC6laA8wESo9j60,1939
63
58
  klaude_code/core/tool/file/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
59
  klaude_code/core/tool/file/_utils.py,sha256=OG4BE9WyJqzH8ilVCL3D9yvAcHk-r-L9snd-E8gO_io,967
65
60
  klaude_code/core/tool/file/apply_patch.py,sha256=LZd3pYQ9ow_TxiFnqYuzD216HmvkLX6lW6BoMd9iQRs,17080
@@ -72,15 +67,14 @@ klaude_code/core/tool/file/read_tool.md,sha256=74SLSl1tq3L0por73M0QV_ws41MRIvGXQ
72
67
  klaude_code/core/tool/file/read_tool.py,sha256=d51eVmDWNVnrhoHyL5_crB8cvCpBNH6S00VAzJfyLgg,12076
73
68
  klaude_code/core/tool/file/write_tool.md,sha256=CNnYgtieUasuHdpXLDpTEsqe492Pf7v75M4RQ3oIer8,613
74
69
  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
79
70
  klaude_code/core/tool/report_back_tool.py,sha256=KRZzQAIxniwXe58SDJcfK_DCf9TFFAx8XC75wPEjmpY,3246
80
71
  klaude_code/core/tool/shell/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
81
72
  klaude_code/core/tool/shell/bash_tool.md,sha256=ILKpnRCBTkU2uSDEdZQjNYo1l6hsM4TO-3RD5zWC61c,3935
82
73
  klaude_code/core/tool/shell/bash_tool.py,sha256=NSWXU_MzKqJBtkljOPNWGTwtAZwxMrCF-y8GC5MysFI,14465
83
74
  klaude_code/core/tool/shell/command_safety.py,sha256=bGsooLovuzq8WmLcZ2v24AVBDj3bZv2p4GSL0IlixvM,13192
75
+ klaude_code/core/tool/skill/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
+ klaude_code/core/tool/skill/skill_tool.md,sha256=UfjJK5EGAd3mf7ym5rIrRdPyV3kBTxNnwzOjNnHOBrE,973
77
+ klaude_code/core/tool/skill/skill_tool.py,sha256=QLcweYEfO-ncv2tdPSqANZrq2U651AG4RjGpFKeAweY,2880
84
78
  klaude_code/core/tool/sub_agent_tool.py,sha256=5n0HDxv4cUzuwBhYiAe3gIJ0s3QgV4GSV12CIIkD_g0,3190
85
79
  klaude_code/core/tool/todo/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
80
  klaude_code/core/tool/todo/todo_write_tool.md,sha256=BFP9qIkzkakzskHwIOPVtDhehkh0F90A5oosyDuC_BE,1682
@@ -127,7 +121,7 @@ klaude_code/protocol/__init__.py,sha256=aGUgzhYqvhuT3Mk2vj7lrHGriH4h9TSbqV1RsRFA
127
121
  klaude_code/protocol/commands.py,sha256=GN6GX9fo7YYtfumrBTpOmOvZofsnzZN2SAxP2X0BjTk,644
128
122
  klaude_code/protocol/events.py,sha256=KUMf1rLNdHQO9cZiQ9Pa1VsKkP1PTMbUkp18bu_jGy8,3935
129
123
  klaude_code/protocol/llm_param.py,sha256=cb4ubLq21PIsMOC8WJb0aid12z_sT1b7FsbNJMr-jLg,4255
130
- klaude_code/protocol/model.py,sha256=yKm2lk80cOLhYB4twD79bfKlTPL2rSY_tNFHJcZ1tPU,13330
124
+ klaude_code/protocol/model.py,sha256=4ZJhB5PRXSZiMv6tFt8YoB4bBMNDQ0s9BcT3WqDu980,13435
131
125
  klaude_code/protocol/op.py,sha256=X3UeXxBOLf_jkEaYXhQSTpjtUV2u1Ot5f4bbPWNdQp4,4241
132
126
  klaude_code/protocol/op_handler.py,sha256=qaWrm2rlskSyF7ukPtxFAKf8brgLsUaVzg6035N-7w0,1565
133
127
  klaude_code/protocol/sub_agent/__init__.py,sha256=Abap5lPLgnSCQsVD3axfeqnj2UtxOcDLGX8e9HugfSU,3964
@@ -138,11 +132,20 @@ klaude_code/protocol/sub_agent/web.py,sha256=Z5vUM367kz8CIexN6UVPG4XxzVOaaRek-Ga
138
132
  klaude_code/protocol/tools.py,sha256=OpGCr47ARKaCHcIlljhEN-p-2h4djgbP5jtfTIoKB-A,359
139
133
  klaude_code/session/__init__.py,sha256=oXcDA5w-gJCbzmlF8yuWy3ezIW9DgFBNUs-gJHUJ-Rc,121
140
134
  klaude_code/session/codec.py,sha256=ummbqT7t6uHHXtaS9lOkyhi1h0YpMk7SNSms8DyGAHU,2015
141
- klaude_code/session/export.py,sha256=EvfmZMTScKdaZ43rT4xqQpi8s1_QZ_anUeW-XQ6l15E,29297
135
+ klaude_code/session/export.py,sha256=_xJGVHSjaVbDOLR5yrYUoVFuY4oIKyq5gNq_jupuVkc,29303
142
136
  klaude_code/session/selector.py,sha256=gijwWQkSV20XYP3Fxr27mFXuqP4ChY2DQm_YuBOTQKw,2888
143
137
  klaude_code/session/session.py,sha256=LDrRlxv35_jJGwxv6Lv_WdBYNY2UZZAZ4vippq8pN_o,16016
144
- klaude_code/session/store.py,sha256=MLNTE-HiwmE3foM7n3AUtPvsf_hdyMHYA66ludTR8KU,6872
138
+ klaude_code/session/store.py,sha256=-e-lInCB3N1nFLlet7bipkmPk1PXmGthuMxv5z3hg5o,6953
145
139
  klaude_code/session/templates/export_session.html,sha256=bA27AkcC7DQRoWmcMBeaR8WOx1z76hezEDf0aYH-0HQ,119780
140
+ klaude_code/skill/__init__.py,sha256=yeWeCfRGPOhT4mx_pjdo4fLondQ_Vx0edBtnFusLhls,839
141
+ klaude_code/skill/assets/deslop/SKILL.md,sha256=XMBER6gOyYnZof_u7l30CZSzmDcINe8XP-n_loah0EQ,873
142
+ klaude_code/skill/assets/dev-docs/SKILL.md,sha256=eHI9v44KZAOcptlnAVp2aq2Ms7WGhncm-zmGUPGmhU8,3810
143
+ klaude_code/skill/assets/handoff/SKILL.md,sha256=GDHrEqWUeAQy7gGhha_y5jzjpv8C-xhk0hqMH5h59v8,1712
144
+ klaude_code/skill/assets/jj-workspace/SKILL.md,sha256=toxoyrBBoGl9Yv4PYrw_gD071LLZ2RoepUR8qTDRn1M,977
145
+ klaude_code/skill/assets/skill-creator/SKILL.md,sha256=0ByoWb9ao0UKSoM5Tmz-Qe5CAPliTrVpUK0gPd9TFqo,5520
146
+ klaude_code/skill/loader.py,sha256=3xGh4udco7tXlrnGFh4Kr5yljtadJ391jKYjaQ2Z3js,10534
147
+ klaude_code/skill/manager.py,sha256=XRSGgGpNJo2Q9pHKpWo-VyMqf_y-dEt9JGtDoC3Eq-U,2088
148
+ klaude_code/skill/system_skills.py,sha256=cfhxk5Jc1OFip-Lamr6RwlAEPq-UA60M3NdwSneKGco,6124
146
149
  klaude_code/trace/__init__.py,sha256=q8uOYhWr2_Mia1aEK_vkqx91YAfFM25ItIB6J8n3_pM,352
147
150
  klaude_code/trace/log.py,sha256=0H_RqkytSpt6AAIFDg-MV_8vA9zsR9BB1UqT6moTTTg,9134
148
151
  klaude_code/ui/__init__.py,sha256=XuEQsFUkJet8HI04cRmNLwnHOUqaPCRy4hF7PJnIfCY,2737
@@ -157,32 +160,32 @@ klaude_code/ui/modes/exec/__init__.py,sha256=RsYa-DmDJj6g7iXb4H9mm2_Cu-KDQOD10RJ
157
160
  klaude_code/ui/modes/exec/display.py,sha256=m2kkgaUoGD9rEVUmcm7Vs_PyAI2iruKCJYRhANjSsKo,1965
158
161
  klaude_code/ui/modes/repl/__init__.py,sha256=35a6SUiL1SDi2i43X2VjHQw97rR7yhbLBzkGI5aC6Bc,1526
159
162
  klaude_code/ui/modes/repl/clipboard.py,sha256=ZCpk7kRSXGhh0Q_BWtUUuSYT7ZOqRjAoRcg9T9n48Wo,5137
160
- klaude_code/ui/modes/repl/completers.py,sha256=z5hDKUZCxtRLKWHtirQqBjTibRFLHPqTCBo7O0YlLLs,24721
163
+ klaude_code/ui/modes/repl/completers.py,sha256=GIvUS9TAFMMPDpoXLuIupEccoqIMEpSEw4IZmKjVo4c,28560
161
164
  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
165
+ klaude_code/ui/modes/repl/event_handler.py,sha256=RRcufuJU8zD7hJes0HDq85lpLn1Q85XetN6x3iLO8fM,23357
166
+ klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=pSephISw0nT4cMcGrVMIks0NJevORxPrHOikbdhmgMY,8082
164
167
  klaude_code/ui/modes/repl/key_bindings.py,sha256=Fxz9Ey2SnOHvfleMeSYVduxuofY0Yo-97hMRs-OMe-o,7800
165
168
  klaude_code/ui/modes/repl/renderer.py,sha256=YJAF3Cx2fmyrmGOHLVRvUlXvlRR8ptYZtngR50Vg7uY,11639
166
169
  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
170
+ klaude_code/ui/renderers/assistant.py,sha256=aYBE0l07G28ij0Nq6Ey8q2d4cvubcdIDKORaPbOa9fI,743
168
171
  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
172
+ klaude_code/ui/renderers/developer.py,sha256=CawltuPSt_8s5lLoYKWYD9htwORbjgHeb4Ap0L2q7R4,6881
173
+ klaude_code/ui/renderers/diffs.py,sha256=A37Wuz1_UIg0-st5le68-DRGz4-kot6N-wy9xEMKdz0,10403
171
174
  klaude_code/ui/renderers/errors.py,sha256=o9pOHRqZ0nxMPwkmV4CG81X7taW1-izvga6RY3fFRMI,516
172
- klaude_code/ui/renderers/metadata.py,sha256=K0D9nx02rulZb2Sz_yOasFvlSFxG5U-VI3mIKD0JqbE,8290
175
+ klaude_code/ui/renderers/metadata.py,sha256=pIMdc1BItuGnORlMMmpjAYZy3g_vTKKjQAckHx53lr8,8305
173
176
  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
177
+ klaude_code/ui/renderers/thinking.py,sha256=XFq-J4cXlZQFqJFUohM8Xv0fOauJqQgiQ3KDiwSIUiw,1769
178
+ klaude_code/ui/renderers/tools.py,sha256=ZNopwuvF_4DNCuqFegtHqv0K7RzAoh6LhtK3Sg1LXkI,21291
179
+ klaude_code/ui/renderers/user_input.py,sha256=e2hZS7UUnzQuQ6UqzSKRDkFJMkKTLUoub1JclHMX40g,3941
177
180
  klaude_code/ui/rich/__init__.py,sha256=zEZjnHR3Fnv_sFMxwIMjoJfwDoC4GRGv3lHJzAGRq_o,236
178
181
  klaude_code/ui/rich/cjk_wrap.py,sha256=ncmifgTwF6q95iayHQyazGbntt7BRQb_Ed7aXc8JU6Y,7551
179
182
  klaude_code/ui/rich/code_panel.py,sha256=MdUP4QSaQJQxX0MQJT0pvrkhpGYZx3gWdIRbZT_Uj_I,3938
180
183
  klaude_code/ui/rich/live.py,sha256=Uid0QAZG7mHb4KrCF8p9c9n1nHLHzW75xSqcLZ4bLWY,2098
181
- klaude_code/ui/rich/markdown.py,sha256=8YgQyX_sQmrXgbDYRyiH4YHKV3zZ5PMz8yfA2hQDAJI,11156
184
+ klaude_code/ui/rich/markdown.py,sha256=fdfJcXPa0tc0Cafo4xqt6rGo8SKCL2CyPA5--AcsntU,11410
182
185
  klaude_code/ui/rich/quote.py,sha256=tZcxN73SfDBHF_qk0Jkh9gWBqPBn8VLp9RF36YRdKEM,1123
183
186
  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
187
+ klaude_code/ui/rich/status.py,sha256=SNJVLHTYn3IScm5jkQc6LW3fO-HxXaj_FmGYUvkem9Q,9500
188
+ klaude_code/ui/rich/theme.py,sha256=ru40YDV79RxeskZzIpgHPf3J4Ol70HMqbLPHU-s7iG8,11288
186
189
  klaude_code/ui/terminal/__init__.py,sha256=GIMnsEcIAGT_vBHvTlWEdyNmAEpruyscUA6M_j3GQZU,1412
187
190
  klaude_code/ui/terminal/color.py,sha256=M-i09DVlLAhAyhQjfeAi7OipoGi1p_OVkaZxeRfykY0,7135
188
191
  klaude_code/ui/terminal/control.py,sha256=6SGNwxorP3jMW9xqnZy2BC0OsJd4DSrS13O3t6YlZzs,4916
@@ -190,7 +193,7 @@ klaude_code/ui/terminal/notifier.py,sha256=wkRM66d98Oh6PujnN4bB7NiQxIYEHqQXverMK
190
193
  klaude_code/ui/terminal/progress_bar.py,sha256=MDnhPbqCnN4GDgLOlxxOEVZPDwVC_XL2NM5sl1MFNcQ,2133
191
194
  klaude_code/ui/utils/__init__.py,sha256=YEsCLjbCPaPza-UXTPUMTJTrc9BmNBUP5CbFWlshyOQ,15
192
195
  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,,
196
+ klaude_code-1.2.23.dist-info/WHEEL,sha256=eh7sammvW2TypMMMGKgsM83HyA_3qQ5Lgg3ynoecH3M,79
197
+ klaude_code-1.2.23.dist-info/entry_points.txt,sha256=7CWKjolvs6dZiYHpelhA_FRJ-sVDh43eu3iWuOhKc_w,53
198
+ klaude_code-1.2.23.dist-info/METADATA,sha256=3CSrp2lOoq2vot5oktv0RZZnlGPoSSX5qaahIdDyY8M,7725
199
+ klaude_code-1.2.23.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)
File without changes