@root-signals/scorable-cli 0.4.0 → 0.4.1

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 CHANGED
@@ -24,6 +24,10 @@
24
24
  </a>
25
25
  </p>
26
26
 
27
+ <p align="center">
28
+ <video src="https://github.com/user-attachments/assets/3475573e-b20c-405b-acc6-ee48709998fa" width="800" autoplay loop muted></video>
29
+ </p>
30
+
27
31
  The `scorable` CLI is a command-line tool for interacting with the Scorable API. It lets you manage and execute Judges and Evaluators, view execution logs, and run prompt testing experiments directly from the terminal.
28
32
 
29
33
  Requires **Node.js 20 or higher**.
@@ -74,6 +78,18 @@ export SCORABLE_API_KEY="sk-your-api-key"
74
78
 
75
79
  The key lookup order is: `SCORABLE_API_KEY` env var → `api_key` in `~/.scorable/settings.json` → `temporary_api_key` in `~/.scorable/settings.json`.
76
80
 
81
+ ## Scorable Skills for AI Coding Agents
82
+
83
+ Install Scorable skills into your project so your AI coding agent (Claude Code, Cursor, etc.) can integrate evaluators automatically:
84
+
85
+ ```bash
86
+ scorable skills-add
87
+ ```
88
+
89
+ Once installed, open your coding agent in your AI powered project and use the prompt:
90
+
91
+ > "Integrate scorable evaluators"
92
+
77
93
  ## Judge Management
78
94
 
79
95
  ### List judges
@@ -8,6 +8,6 @@ function buildPtGroup(name) {
8
8
  return pt;
9
9
  }
10
10
  export function registerPromptTestCommands(program) {
11
- program.addCommand(buildPtGroup("pt"));
11
+ program.addCommand(buildPtGroup("pt"), { hidden: true });
12
12
  program.addCommand(buildPtGroup("prompt-test"));
13
13
  }
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerSkillsAddCommand(program: Command): void;
3
+ //# sourceMappingURL=skills-add.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"skills-add.d.ts","sourceRoot":"","sources":["../../src/commands/skills-add.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0B/D"}
@@ -0,0 +1,29 @@
1
+ import { spawn } from "node:child_process";
2
+ import { CliError } from "../types.js";
3
+ import { printSuccess, printInfo } from "../output.js";
4
+ export function registerSkillsAddCommand(program) {
5
+ program
6
+ .command("skills-add")
7
+ .description("Install Scorable Skills for coding agents")
8
+ .action(async () => {
9
+ await new Promise((resolve, reject) => {
10
+ const child = spawn("npx", ["skills", "add", "root-signals/scorable-skills"], {
11
+ stdio: "inherit",
12
+ });
13
+ child.on("close", (code) => {
14
+ if (code !== 0) {
15
+ reject(new CliError(code ?? 1, `skills add exited with code ${code}`));
16
+ }
17
+ else {
18
+ resolve();
19
+ }
20
+ });
21
+ child.on("error", (err) => {
22
+ reject(new CliError(1, `Failed to run npx skills: ${err.message}`));
23
+ });
24
+ });
25
+ console.log();
26
+ printSuccess("Scorable skills installed.");
27
+ printInfo('Open your coding agent in your AI powered project and use the prompt: "Integrate scorable evaluators"');
28
+ });
29
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6CpC,wBAAgB,SAAS,IAAI,OAAO,CAmBnC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAIA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAgDpC,wBAAgB,SAAS,IAAI,OAAO,CAoBnC"}
package/dist/index.js CHANGED
@@ -9,6 +9,7 @@ import { registerPromptTestCommands } from "./commands/prompt-test/index.js";
9
9
  import { registerEvaluatorCommands } from "./commands/evaluator/index.js";
10
10
  import { registerExecutionLogCommands } from "./commands/execution-log/index.js";
11
11
  import { registerAuthCommands } from "./commands/auth/index.js";
12
+ import { registerSkillsAddCommand } from "./commands/skills-add.js";
12
13
  const { version } = createRequire(import.meta.url)("../package.json");
13
14
  function buildBanner(ver) {
14
15
  const logo = chalk.hex("#4D9FFF");
@@ -35,7 +36,9 @@ function buildGettingStarted() {
35
36
  ` ${num("1")} Authenticate ${chalk.dim("(pick one)")}:`,
36
37
  ` ${cmd("$ scorable auth demo-key")} ${chalk.dim("# for quick testing")}`,
37
38
  ` ${cmd("$ scorable auth set-key <api-key>")} ${chalk.dim("# permanent key")}`,
38
- ` ${num("2")} Explore resources:`,
39
+ ` ${num("2")} Install skills for your AI coding agent:`,
40
+ ` ${cmd("$ scorable skills-add")}`,
41
+ ` ${num("3")} Explore resources:`,
39
42
  ` ${cmd("$ scorable judge list")}`,
40
43
  ` ${cmd("$ scorable evaluator list")}`,
41
44
  "",
@@ -57,6 +60,7 @@ export function createCli() {
57
60
  registerEvaluatorCommands(program);
58
61
  registerExecutionLogCommands(program);
59
62
  registerAuthCommands(program);
63
+ registerSkillsAddCommand(program);
60
64
  return program;
61
65
  }
62
66
  if (realpathSync(fileURLToPath(import.meta.url)) === realpathSync(process.argv[1])) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@root-signals/scorable-cli",
3
- "version": "0.4.0",
3
+ "version": "0.4.1",
4
4
  "description": "CLI for Scorable",
5
5
  "license": "Apache-2.0",
6
6
  "author": "Scorable",