@makerx/yoke 0.10.0 → 0.11.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 +4 -4
- package/dist/cli.js +6 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -28,10 +28,10 @@ yoke sync --user # ~/.claude/skills
|
|
|
28
28
|
## CLI
|
|
29
29
|
|
|
30
30
|
```bash
|
|
31
|
-
yoke sync [--user]
|
|
32
|
-
yoke review [number]
|
|
33
|
-
yoke review-ci
|
|
34
|
-
yoke models
|
|
31
|
+
yoke sync [--user] [--force] # write yoke's skills
|
|
32
|
+
yoke review [number] # review a PR (used by /review)
|
|
33
|
+
yoke review-ci # add the CI review workflow (used by /review-ci)
|
|
34
|
+
yoke models # list each provider's models
|
|
35
35
|
```
|
|
36
36
|
|
|
37
37
|
## Configuration
|
package/dist/cli.js
CHANGED
|
@@ -7,7 +7,7 @@ import { Command } from "commander";
|
|
|
7
7
|
// package.json
|
|
8
8
|
var package_default = {
|
|
9
9
|
name: "@makerx/yoke",
|
|
10
|
-
version: "0.
|
|
10
|
+
version: "0.11.0",
|
|
11
11
|
description: "Lean, user-invoked Claude Code skills for MakerX AI-assisted delivery, plus the CLI they call.",
|
|
12
12
|
license: "MIT",
|
|
13
13
|
author: "MakerX",
|
|
@@ -2227,12 +2227,12 @@ function skillsRoot(user, cwd = process.cwd(), home = homedir3()) {
|
|
|
2227
2227
|
function isOwnedByUser(skillFile) {
|
|
2228
2228
|
return existsSync8(skillFile) && !readFileSync8(skillFile, "utf8").includes(ownerMarker);
|
|
2229
2229
|
}
|
|
2230
|
-
function syncSkills(destination, userDestination, skills = bundledSkills) {
|
|
2230
|
+
function syncSkills(destination, userDestination, force = false, skills = bundledSkills) {
|
|
2231
2231
|
const result = { written: [], skipped: [] };
|
|
2232
2232
|
for (const skill of skills) {
|
|
2233
2233
|
const target = join9(skill.userLevel ? userDestination : destination, skill.name);
|
|
2234
2234
|
const skillFile = join9(target, "SKILL.md");
|
|
2235
|
-
if (isOwnedByUser(skillFile)) {
|
|
2235
|
+
if (!force && isOwnedByUser(skillFile)) {
|
|
2236
2236
|
result.skipped.push(target);
|
|
2237
2237
|
continue;
|
|
2238
2238
|
}
|
|
@@ -2246,13 +2246,13 @@ function syncSkills(destination, userDestination, skills = bundledSkills) {
|
|
|
2246
2246
|
// src/cli.ts
|
|
2247
2247
|
var { version } = package_default;
|
|
2248
2248
|
var program = new Command("yoke").description("Lean Claude Code skills and the CLI they call.").version(version);
|
|
2249
|
-
program.command("sync").description("Write yoke's skills into this repo's .claude/skills, or ~/.claude/skills with --user").option("--user", "write to ~/.claude/skills instead, for every repo").action((options) => {
|
|
2249
|
+
program.command("sync").description("Write yoke's skills into this repo's .claude/skills, or ~/.claude/skills with --user").option("--user", "write to ~/.claude/skills instead, for every repo").option("--force", "overwrite same-named skills that yoke didn't write").action((options) => {
|
|
2250
2250
|
const user = options.user ?? false;
|
|
2251
2251
|
const cwd = process.cwd();
|
|
2252
2252
|
const display = (path) => path.startsWith(cwd) ? relative(cwd, path) : path;
|
|
2253
|
-
const { written, skipped } = syncSkills(skillsRoot(user), skillsRoot(true));
|
|
2253
|
+
const { written, skipped } = syncSkills(skillsRoot(user), skillsRoot(true), options.force ?? false);
|
|
2254
2254
|
for (const file of written) console.log(`wrote ${display(file)}`);
|
|
2255
|
-
for (const dir of skipped) console.log(`skipped ${display(dir)} (
|
|
2255
|
+
for (const dir of skipped) console.log(`skipped ${display(dir)} (not yoke's skill; rerun with --force to overwrite it)`);
|
|
2256
2256
|
});
|
|
2257
2257
|
var pr = program.command("pr").description("Pull request commands");
|
|
2258
2258
|
pr.command("raise").description("Validate a PR title and body, then create the PR with gh").requiredOption("--title <title>", "single-line PR title").requiredOption("--body <body>", "PR body with ## What, ## Why and optionally ## How").option("--base <branch>", "base branch (defaults to the repo default)").option("--no-draft", "create a ready-for-review PR instead of a draft").addHelpText("after", raiseGuide).action((options) => {
|