@wbern/claude-instructions 1.20.0 โ 1.21.0
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.
- package/README.md +1 -23
- package/bin/cli.js +18 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -134,7 +134,7 @@ Only the first file found is used.
|
|
|
134
134
|
|
|
135
135
|
### Main Workflow
|
|
136
136
|
|
|
137
|
-
|
|
137
|
+
This is the core TDD workflow. Additional utility commands (worktrees, spikes, etc.) are listed in [Available Commands](#available-commands) below.
|
|
138
138
|
|
|
139
139
|
```mermaid
|
|
140
140
|
flowchart TB
|
|
@@ -179,28 +179,6 @@ flowchart TB
|
|
|
179
179
|
style Done fill:#c8e6c9
|
|
180
180
|
```
|
|
181
181
|
|
|
182
|
-
### Other Commands
|
|
183
|
-
|
|
184
|
-
Available anytime during your workflow:
|
|
185
|
-
|
|
186
|
-
```mermaid
|
|
187
|
-
flowchart TB
|
|
188
|
-
Utils[<b>UTILITIES</b>]
|
|
189
|
-
Utils --> Spike[๐ฌ /spike<br/>Exploratory coding before TDD]
|
|
190
|
-
Utils --> TDD[๐ /tdd<br/>Remind agent about TDD]
|
|
191
|
-
Utils --> AddCommand[โ /add-command<br/>Create custom commands]
|
|
192
|
-
Utils --> Summarize[๐ /summarize<br/>Summarize conversation<br/><i>Optional: Beads MCP</i>]
|
|
193
|
-
Utils --> Gap[๐ /gap<br/>Find unaddressed items<br/><i>Optional: Beads MCP</i>]
|
|
194
|
-
Utils --> Beepboop[๐ค /beepboop<br/>AI attribution]
|
|
195
|
-
|
|
196
|
-
Worktree[<b>WORKTREE MANAGEMENT</b>]
|
|
197
|
-
Worktree --> WorktreeAdd[โ /worktree-add<br/>Create new worktree<br/><i>Requires: GitHub MCP</i>]
|
|
198
|
-
Worktree --> WorktreeCleanup[๐งน /worktree-cleanup<br/>Clean up merged worktrees<br/><i>Requires: GitHub MCP</i>]
|
|
199
|
-
|
|
200
|
-
style Utils fill:#fff9c4
|
|
201
|
-
style Worktree fill:#f3e5f5
|
|
202
|
-
```
|
|
203
|
-
|
|
204
182
|
## Available Commands
|
|
205
183
|
|
|
206
184
|
### Planning
|
package/bin/cli.js
CHANGED
|
@@ -742,8 +742,7 @@ var CLI_OPTIONS = [
|
|
|
742
742
|
key: "prefix",
|
|
743
743
|
type: "string",
|
|
744
744
|
description: "Add prefix to command names",
|
|
745
|
-
example: "--prefix=my-"
|
|
746
|
-
requiredForNonInteractive: true
|
|
745
|
+
example: "--prefix=my-"
|
|
747
746
|
},
|
|
748
747
|
{
|
|
749
748
|
flag: "--commands",
|
|
@@ -926,10 +925,10 @@ async function main(args) {
|
|
|
926
925
|
let selectedCommands;
|
|
927
926
|
let selectedAllowedTools;
|
|
928
927
|
let cachedExistingFiles;
|
|
929
|
-
if (args?.variant && args?.scope
|
|
928
|
+
if (args?.variant && args?.scope) {
|
|
930
929
|
variant = args.variant;
|
|
931
930
|
scope = args.scope;
|
|
932
|
-
commandPrefix = args.prefix;
|
|
931
|
+
commandPrefix = args.prefix ?? "";
|
|
933
932
|
selectedCommands = args.commands;
|
|
934
933
|
if (args.updateExisting) {
|
|
935
934
|
cachedExistingFiles = await checkExistingFiles(
|
|
@@ -1034,7 +1033,14 @@ async function main(args) {
|
|
|
1034
1033
|
allowedTools: selectedAllowedTools
|
|
1035
1034
|
});
|
|
1036
1035
|
const skipFiles = [];
|
|
1037
|
-
|
|
1036
|
+
const shouldSkipConflicts = args?.skipOnConflict || !isInteractiveTTY();
|
|
1037
|
+
if (args?.overwrite) {
|
|
1038
|
+
for (const file of existingFiles) {
|
|
1039
|
+
if (!file.isIdentical) {
|
|
1040
|
+
log.info(`Overwriting ${file.filename}`);
|
|
1041
|
+
}
|
|
1042
|
+
}
|
|
1043
|
+
} else if (!shouldSkipConflicts) {
|
|
1038
1044
|
const conflictingFiles = existingFiles.filter((f) => !f.isIdentical);
|
|
1039
1045
|
const hasMultipleConflicts = conflictingFiles.length > 1;
|
|
1040
1046
|
let overwriteAllSelected = false;
|
|
@@ -1089,12 +1095,18 @@ async function main(args) {
|
|
|
1089
1095
|
}
|
|
1090
1096
|
}
|
|
1091
1097
|
}
|
|
1092
|
-
} else if (
|
|
1098
|
+
} else if (shouldSkipConflicts) {
|
|
1093
1099
|
for (const file of existingFiles) {
|
|
1094
1100
|
if (!file.isIdentical) {
|
|
1095
1101
|
skipFiles.push(file.filename);
|
|
1102
|
+
log.warn(`Skipping ${file.filename} (conflict)`);
|
|
1096
1103
|
}
|
|
1097
1104
|
}
|
|
1105
|
+
if (skipFiles.length > 0 && !isInteractiveTTY()) {
|
|
1106
|
+
log.info(
|
|
1107
|
+
"To resolve conflicts, run interactively or use --overwrite to overwrite"
|
|
1108
|
+
);
|
|
1109
|
+
}
|
|
1098
1110
|
}
|
|
1099
1111
|
const result = await generateToDirectory(
|
|
1100
1112
|
void 0,
|