@wbern/claude-instructions 2.4.0 → 2.5.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 +8 -2
- package/bin/cli.js +17 -15
- package/package.json +9 -12
- package/src/README.md +8 -2
package/README.md
CHANGED
|
@@ -28,7 +28,13 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
28
28
|
|
|
29
29
|
**TDD workflow commands for Claude Code CLI.**
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
Claude Code supports [custom slash commands](https://docs.anthropic.com/en/docs/claude-code/slash-commands)—type `/foo` and Claude receives the contents of `foo.md` as instructions (from `.claude/commands/` in your repo or `~/.claude/commands/` in your home directory). This repo provides ready-made commands for Test-Driven Development workflows.
|
|
32
|
+
|
|
33
|
+
While custom commands themselves is really just a glorified method of copy-paste, the way they can be used to bring stability to software development is what's worth trying out.
|
|
34
|
+
|
|
35
|
+
Instead of explaining TDD principles each session, type `/red` to write a failing test, `/green` to make it pass, `/refactor` to clean up. The commands guide Claude through each step methodically—you focus on what to build, Claude handles the how.
|
|
36
|
+
|
|
37
|
+
Also included are commands for commits, PRs, code reviews, and other tasks that come up during day-to-day development.
|
|
32
38
|
|
|
33
39
|
## Installation
|
|
34
40
|
|
|
@@ -63,7 +69,7 @@ Then add a postinstall script to your `package.json`:
|
|
|
63
69
|
"postinstall": "npx @wbern/claude-instructions --scope=project --overwrite"
|
|
64
70
|
},
|
|
65
71
|
"devDependencies": {
|
|
66
|
-
"@wbern/claude-instructions": "^
|
|
72
|
+
"@wbern/claude-instructions": "^2.5.0"
|
|
67
73
|
}
|
|
68
74
|
}
|
|
69
75
|
```
|
package/bin/cli.js
CHANGED
|
@@ -117,18 +117,18 @@ import { createRequire } from "module";
|
|
|
117
117
|
|
|
118
118
|
// scripts/cli.ts
|
|
119
119
|
init_esm_shims();
|
|
120
|
+
import os2 from "os";
|
|
120
121
|
import {
|
|
121
|
-
|
|
122
|
-
text,
|
|
122
|
+
confirm,
|
|
123
123
|
groupMultiselect,
|
|
124
|
-
isCancel,
|
|
125
124
|
intro,
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
isCancel,
|
|
126
|
+
log,
|
|
128
127
|
note,
|
|
129
|
-
|
|
128
|
+
outro,
|
|
129
|
+
select,
|
|
130
|
+
text
|
|
130
131
|
} from "@clack/prompts";
|
|
131
|
-
import os2 from "os";
|
|
132
132
|
|
|
133
133
|
// node_modules/.pnpm/diff@8.0.2/node_modules/diff/libesm/index.js
|
|
134
134
|
init_esm_shims();
|
|
@@ -391,15 +391,17 @@ import * as v2 from "valibot";
|
|
|
391
391
|
|
|
392
392
|
// scripts/cli-generator.ts
|
|
393
393
|
init_esm_shims();
|
|
394
|
-
import
|
|
394
|
+
import os from "os";
|
|
395
395
|
import path4 from "path";
|
|
396
396
|
import { fileURLToPath as fileURLToPath3 } from "url";
|
|
397
|
-
import
|
|
397
|
+
import fs4 from "fs-extra";
|
|
398
|
+
import { applyFixes } from "markdownlint";
|
|
399
|
+
import { lint } from "markdownlint/sync";
|
|
398
400
|
|
|
399
401
|
// scripts/fragment-expander.ts
|
|
400
402
|
init_esm_shims();
|
|
401
|
-
import fs2 from "fs-extra";
|
|
402
403
|
import path2 from "path";
|
|
404
|
+
import fs2 from "fs-extra";
|
|
403
405
|
|
|
404
406
|
// scripts/utils.ts
|
|
405
407
|
init_esm_shims();
|
|
@@ -606,7 +608,7 @@ function parseFrontmatter(content) {
|
|
|
606
608
|
currentArray = [];
|
|
607
609
|
continue;
|
|
608
610
|
}
|
|
609
|
-
if (key === "_order" && !isNaN(Number(value))) {
|
|
611
|
+
if (key === "_order" && !Number.isNaN(Number(value))) {
|
|
610
612
|
value = parseInt(value, 10);
|
|
611
613
|
}
|
|
612
614
|
if (key === "_selectedByDefault") {
|
|
@@ -646,8 +648,6 @@ function generateCommandsMetadata() {
|
|
|
646
648
|
}
|
|
647
649
|
|
|
648
650
|
// scripts/cli-generator.ts
|
|
649
|
-
import { lint } from "markdownlint/sync";
|
|
650
|
-
import { applyFixes } from "markdownlint";
|
|
651
651
|
var __filename3 = fileURLToPath3(import.meta.url);
|
|
652
652
|
var __dirname3 = path4.dirname(__filename3);
|
|
653
653
|
var SCOPES = {
|
|
@@ -987,7 +987,9 @@ ${allowedToolsYaml}
|
|
|
987
987
|
if (template.commands && !template.commands.includes(commandName)) {
|
|
988
988
|
continue;
|
|
989
989
|
}
|
|
990
|
-
content = content
|
|
990
|
+
content = `${content}
|
|
991
|
+
|
|
992
|
+
${template.content}`;
|
|
991
993
|
modified = true;
|
|
992
994
|
}
|
|
993
995
|
if (modified) {
|
|
@@ -1355,7 +1357,7 @@ async function main(args) {
|
|
|
1355
1357
|
}
|
|
1356
1358
|
if (selectedAllowedTools && selectedAllowedTools.length > 0) {
|
|
1357
1359
|
parts.push(
|
|
1358
|
-
`--allowed-tools
|
|
1360
|
+
`--allowed-tools="${selectedAllowedTools.join(",")}"`
|
|
1359
1361
|
);
|
|
1360
1362
|
}
|
|
1361
1363
|
automationNote = `
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wbern/claude-instructions",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.0",
|
|
4
4
|
"description": "TDD workflow commands for Claude Code CLI",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": "./bin/cli.js",
|
|
@@ -44,30 +44,27 @@
|
|
|
44
44
|
"prepare": "husky"
|
|
45
45
|
},
|
|
46
46
|
"devDependencies": {
|
|
47
|
-
"@
|
|
47
|
+
"@biomejs/biome": "^2.3.10",
|
|
48
48
|
"@semantic-release/git": "^10.0.1",
|
|
49
49
|
"@types/fs-extra": "^11.0.4",
|
|
50
|
-
"@types/node": "^
|
|
51
|
-
"@vitest/coverage-v8": "^4.0.
|
|
50
|
+
"@types/node": "^25.0.3",
|
|
51
|
+
"@vitest/coverage-v8": "^4.0.16",
|
|
52
52
|
"diff": "^8.0.2",
|
|
53
|
-
"eslint": "^9.39.1",
|
|
54
53
|
"husky": "^9.1.7",
|
|
55
54
|
"jscpd": "^4.0.5",
|
|
56
|
-
"knip": "^5.
|
|
55
|
+
"knip": "^5.77.0",
|
|
57
56
|
"lint-staged": "^16.2.7",
|
|
58
|
-
"markdownlint-cli": "^0.
|
|
57
|
+
"markdownlint-cli": "^0.47.0",
|
|
59
58
|
"picocolors": "^1.1.1",
|
|
60
|
-
"prettier": "^3.7.2",
|
|
61
59
|
"semantic-release": "^25.0.2",
|
|
62
60
|
"tsup": "^8.5.1",
|
|
63
|
-
"tsx": "^4.
|
|
61
|
+
"tsx": "^4.21.0",
|
|
64
62
|
"typescript": "^5.9.3",
|
|
65
|
-
"
|
|
66
|
-
"vitest": "^4.0.15"
|
|
63
|
+
"vitest": "^4.0.16"
|
|
67
64
|
},
|
|
68
65
|
"dependencies": {
|
|
69
66
|
"@clack/prompts": "^0.11.0",
|
|
70
|
-
"fs-extra": "^11.3.
|
|
67
|
+
"fs-extra": "^11.3.3",
|
|
71
68
|
"markdownlint": "^0.40.0",
|
|
72
69
|
"valibot": "^1.2.0"
|
|
73
70
|
},
|
package/src/README.md
CHANGED
|
@@ -29,7 +29,13 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
|
|
|
29
29
|
|
|
30
30
|
**TDD workflow commands for Claude Code CLI.**
|
|
31
31
|
|
|
32
|
-
|
|
32
|
+
Claude Code supports [custom slash commands](https://docs.anthropic.com/en/docs/claude-code/slash-commands)—type `/foo` and Claude receives the contents of `foo.md` as instructions (from `.claude/commands/` in your repo or `~/.claude/commands/` in your home directory). This repo provides ready-made commands for Test-Driven Development workflows.
|
|
33
|
+
|
|
34
|
+
While custom commands themselves is really just a glorified method of copy-paste, the way they can be used to bring stability to software development is what's worth trying out.
|
|
35
|
+
|
|
36
|
+
Instead of explaining TDD principles each session, type `/red` to write a failing test, `/green` to make it pass, `/refactor` to clean up. The commands guide Claude through each step methodically—you focus on what to build, Claude handles the how.
|
|
37
|
+
|
|
38
|
+
Also included are commands for commits, PRs, code reviews, and other tasks that come up during day-to-day development.
|
|
33
39
|
|
|
34
40
|
## Installation
|
|
35
41
|
|
|
@@ -64,7 +70,7 @@ Then add a postinstall script to your `package.json`:
|
|
|
64
70
|
"postinstall": "npx @wbern/claude-instructions --scope=project --overwrite"
|
|
65
71
|
},
|
|
66
72
|
"devDependencies": {
|
|
67
|
-
"@wbern/claude-instructions": "
|
|
73
|
+
"@wbern/claude-instructions": "^<!-- docs VERSION --><!-- /docs -->"
|
|
68
74
|
}
|
|
69
75
|
}
|
|
70
76
|
```
|