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.
- klaude_code/command/status_cmd.py +1 -1
- klaude_code/const/__init__.py +8 -2
- klaude_code/core/manager/sub_agent_manager.py +1 -1
- klaude_code/core/reminders.py +51 -0
- klaude_code/core/task.py +37 -18
- klaude_code/core/tool/__init__.py +1 -4
- klaude_code/core/tool/skill/__init__.py +0 -0
- klaude_code/core/tool/{memory → skill}/skill_tool.py +16 -39
- klaude_code/protocol/model.py +2 -1
- klaude_code/session/export.py +1 -1
- klaude_code/session/store.py +4 -2
- klaude_code/skill/__init__.py +27 -0
- klaude_code/skill/assets/deslop/SKILL.md +17 -0
- klaude_code/skill/assets/dev-docs/SKILL.md +108 -0
- klaude_code/skill/assets/handoff/SKILL.md +39 -0
- klaude_code/skill/assets/jj-workspace/SKILL.md +20 -0
- klaude_code/skill/assets/skill-creator/SKILL.md +139 -0
- klaude_code/{core/tool/memory/skill_loader.py → skill/loader.py} +60 -24
- klaude_code/skill/manager.py +70 -0
- klaude_code/skill/system_skills.py +192 -0
- klaude_code/ui/modes/repl/completers.py +103 -3
- klaude_code/ui/modes/repl/event_handler.py +7 -3
- klaude_code/ui/modes/repl/input_prompt_toolkit.py +42 -3
- klaude_code/ui/renderers/assistant.py +7 -2
- klaude_code/ui/renderers/developer.py +12 -0
- klaude_code/ui/renderers/diffs.py +1 -1
- klaude_code/ui/renderers/metadata.py +4 -2
- klaude_code/ui/renderers/thinking.py +1 -1
- klaude_code/ui/renderers/tools.py +57 -32
- klaude_code/ui/renderers/user_input.py +32 -2
- klaude_code/ui/rich/markdown.py +22 -17
- klaude_code/ui/rich/status.py +1 -13
- klaude_code/ui/rich/theme.py +7 -5
- {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/METADATA +18 -13
- {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/RECORD +38 -35
- klaude_code/command/prompt-deslop.md +0 -14
- klaude_code/command/prompt-dev-docs-update.md +0 -56
- klaude_code/command/prompt-dev-docs.md +0 -46
- klaude_code/command/prompt-handoff.md +0 -33
- klaude_code/command/prompt-jj-workspace.md +0 -18
- klaude_code/core/tool/memory/__init__.py +0 -5
- /klaude_code/core/tool/{memory → skill}/skill_tool.md +0 -0
- {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/WHEEL +0 -0
- {klaude_code-1.2.22.dist-info → klaude_code-1.2.23.dist-info}/entry_points.txt +0 -0
klaude_code/ui/rich/markdown.py
CHANGED
|
@@ -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,
|
|
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
|
|
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
|
-
|
|
53
|
-
yield
|
|
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":
|
|
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":
|
|
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
|
-
|
|
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
|
|
121
|
-
|
|
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
|
-
|
|
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
|
|
164
|
-
# the rendered content plus
|
|
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.
|
|
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
|
|
190
|
+
# Split rendered output into lines, strip trailing spaces, and apply left margin.
|
|
186
191
|
lines = output.splitlines(keepends=True)
|
|
187
|
-
indent_prefix = " " * self.
|
|
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.
|
|
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
|
|
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
|
klaude_code/ui/rich/status.py
CHANGED
|
@@ -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))
|
klaude_code/ui/rich/theme.py
CHANGED
|
@@ -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="#
|
|
48
|
-
diff_remove_char="#
|
|
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 #
|
|
68
|
+
diff_add_char="#c8e6c9 on #2d6b42",
|
|
69
69
|
diff_remove="#ffcdd2 on #3d1f23",
|
|
70
|
-
diff_remove_char="#ffcdd2 on #
|
|
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.
|
|
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
|
-
#
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
##
|
|
26
|
-
- **
|
|
27
|
-
- **
|
|
28
|
-
- **
|
|
29
|
-
- **
|
|
30
|
-
- **
|
|
31
|
-
- **
|
|
32
|
-
- **
|
|
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=
|
|
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=
|
|
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=
|
|
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=
|
|
61
|
-
klaude_code/core/task.py,sha256=
|
|
62
|
-
klaude_code/core/tool/__init__.py,sha256=
|
|
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=
|
|
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=
|
|
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
|
|
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=
|
|
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=
|
|
163
|
-
klaude_code/ui/modes/repl/input_prompt_toolkit.py,sha256=
|
|
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=
|
|
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=
|
|
170
|
-
klaude_code/ui/renderers/diffs.py,sha256=
|
|
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=
|
|
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=
|
|
175
|
-
klaude_code/ui/renderers/tools.py,sha256=
|
|
176
|
-
klaude_code/ui/renderers/user_input.py,sha256=
|
|
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=
|
|
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=
|
|
185
|
-
klaude_code/ui/rich/theme.py,sha256=
|
|
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.
|
|
194
|
-
klaude_code-1.2.
|
|
195
|
-
klaude_code-1.2.
|
|
196
|
-
klaude_code-1.2.
|
|
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>
|
|
File without changes
|
|
File without changes
|
|
File without changes
|