Skip to content

Commit 17488b2

Browse files
committed
chore: normalize Skillgym casing
1 parent a668d40 commit 17488b2

14 files changed

Lines changed: 43 additions & 41 deletions

File tree

DICTIONARY.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# SkillGym Dictionary
1+
# Skillgym Dictionary
22

33
This is the domain dictionary for `skillgym`.
44

@@ -8,7 +8,7 @@ Before adding or changing a term, check this file and ask the user for approval.
88

99
## Terms
1010

11-
- `SkillGym`: The product, package, CLI, and repository.
11+
- `Skillgym`: The product, package, CLI, and repository.
1212
- `suite file`: Module file that exports one suite.
1313
- `suite`: User-authored collection of cases and optional workspace config.
1414
- `case`: One definition with a prompt, assertions, and optional metadata.
@@ -26,7 +26,7 @@ Before adding or changing a term, check this file and ask the user for approval.
2626
- `failure classification`: Stable category assigned to a failure.
2727
- `failure class`: The value representing a failure classification.
2828
- `result`: Pass/fail outcome object; not a session report.
29-
- `artifact`: Preserved file or directory written by SkillGym.
29+
- `artifact`: Preserved file or directory written by Skillgym.
3030
- `artifact directory`: Directory holding artifacts for one scope such as a suite run, execution, repetition, retry, or session.
3131
- `workspace`: Directory where the agent runs.
3232
- `no workspace`: Run directly in an existing working directory with no provisioning.

README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ bun add --dev skillgym
3131
Create `skillgym.config.ts` in your project root, or in a parent directory that the suite can discover upward:
3232

3333
```ts
34-
import type { SkillGymConfig } from "skillgym";
34+
import type { SkillgymConfig } from "skillgym";
3535

3636
const config = {
3737
run: {
@@ -67,7 +67,7 @@ const config = {
6767
},
6868
},
6969
},
70-
} satisfies SkillGymConfig;
70+
} satisfies SkillgymConfig;
7171

7272
export default config;
7373
```
@@ -179,13 +179,13 @@ The execution unit is one case x runner pair. `skillgym` expands the suite into
179179

180180
`serial` is the default. `parallel` maximizes overlap across the full matrix up to the configured cap. `isolated-by-runner` is a middle ground when you want each runner to stay ordered internally but still allow different runners to overlap.
181181

182-
For concurrent schedules, `run.maxParallel` defaults to `os.availableParallelism()`. This limits how many SkillGym executions are active at once; it does not pin or limit CPU cores used by an individual agent process.
182+
For concurrent schedules, `run.maxParallel` defaults to `os.availableParallelism()`. This limits how many Skillgym executions are active at once; it does not pin or limit CPU cores used by an individual agent process.
183183

184184
Concurrent schedules do not copy or isolate the workspace by themselves. Overlapping executions may still interact through the same filesystem state and live runner output unless you use isolated workspaces. OpenCode, Codex, and Claude Code runtime state are isolated per execution under each artifact directory.
185185

186186
`run.repeat` is useful when you want stability sampling instead of a single lucky pass. Each case x runner execution keeps running until it records the requested number of successful classified results, or stops early when one repetition still fails after exhausting `run.repeatFailure` retries.
187187

188-
`run.repeatFailure` retries only the current repetition when it still counts as failed after result classification. SkillGym keeps all repetition and retry artifacts, averages visible duration and token metrics across the final results of completed successful repetitions, and preserves the full nested detail in `results.json`.
188+
`run.repeatFailure` retries only the current repetition when it still counts as failed after result classification. Skillgym keeps all repetition and retry artifacts, averages visible duration and token metrics across the final results of completed successful repetitions, and preserves the full nested detail in `results.json`.
189189

190190
Artifacts for repeated executions are grouped under the stable case x runner directory using `repeat-N` directories, with retry sessions nested as `session-N` inside the repetition that needed recovery.
191191

docs/assertions.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Rules:
4848

4949
## Soft assertions
5050

51-
`assert.soft` mirrors the sync assertion methods on the root `assert` export and the grouped SkillGym helpers.
51+
`assert.soft` mirrors the sync assertion methods on the root `assert` export and the grouped Skillgym helpers.
5252

5353
- soft failures are collected in execution order
5454
- the runner throws a single `AssertionError` after `case_.assert(report, ctx)` completes
Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { SkillgymConfig } from "./src/index";
2+
13
const config = {
24
run: {
35
cwd: ".",
@@ -34,6 +36,6 @@ const config = {
3436
},
3537
},
3638
},
37-
};
39+
} satisfies SkillgymConfig;
3840

3941
export default config;

src/assertions/assert.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import { outputAssertions } from "./output.js";
66
import { skillAssertions } from "./skills.js";
77
import { softAssert } from "./soft.js";
88
import { toolCallAssertions } from "./tool-calls.js";
9-
import type { SkillGymAssert } from "./types.js";
9+
import type { SkillgymAssert } from "./types.js";
1010

11-
export const assert: SkillGymAssert = Object.assign(nodeAssert, {
11+
export const assert: SkillgymAssert = Object.assign(nodeAssert, {
1212
classify<T>(failureClass: FailureClassInput, callback: () => T): T {
1313
try {
1414
return callback();

src/assertions/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export type {
1313
OutputAssertions,
1414
SkillAssertionOptions,
1515
SkillAssertions,
16-
SkillGymAssert,
17-
SkillGymSoftAssert,
16+
SkillgymAssert,
17+
SkillgymSoftAssert,
1818
SkillConfidence,
1919
StructuredCommandMatcher,
2020
ToolCallAssertions,

src/assertions/soft.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import type {
1212
FileReadAssertions,
1313
OutputAssertions,
1414
SkillAssertions,
15-
SkillGymSoftAssert,
15+
SkillgymSoftAssert,
1616
ToolCallAssertions,
1717
} from "./types.js";
1818

@@ -45,7 +45,7 @@ const softAssertionGroups = {
4545
output: OutputAssertions;
4646
};
4747

48-
export const softAssert: SkillGymSoftAssert = Object.assign(
48+
export const softAssert: SkillgymSoftAssert = Object.assign(
4949
createSoftNodeAssert(),
5050
softAssertionGroups,
5151
);

src/assertions/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,16 +162,16 @@ export interface AssertionClassifier {
162162
<T>(failureClass: string | FailureClass, callback: () => T): T;
163163
}
164164

165-
export type SkillGymSoftAssert = typeof nodeAssert & {
165+
export type SkillgymSoftAssert = typeof nodeAssert & {
166166
skills: SkillAssertions;
167167
commands: CommandAssertions;
168168
fileReads: FileReadAssertions;
169169
toolCalls: ToolCallAssertions;
170170
output: OutputAssertions;
171171
};
172172

173-
export type SkillGymAssert = typeof nodeAssert & {
174-
soft: SkillGymSoftAssert;
173+
export type SkillgymAssert = typeof nodeAssert & {
174+
soft: SkillgymSoftAssert;
175175
skills: SkillAssertions;
176176
commands: CommandAssertions;
177177
fileReads: FileReadAssertions;

src/config.ts

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ export interface SnapshotConfig {
5858
tolerance: SnapshotToleranceConfig;
5959
}
6060

61-
export interface SkillGymConfig {
61+
export interface SkillgymConfig {
6262
run?: {
6363
cwd?: string;
6464
outputDir?: string;
@@ -79,15 +79,15 @@ export interface SkillGymConfig {
7979
snapshots?: SnapshotConfig;
8080
}
8181

82-
export interface LoadedSkillGymConfig {
82+
export interface LoadedSkillgymConfig {
8383
filePath?: string;
84-
config: SkillGymConfig;
84+
config: SkillgymConfig;
8585
}
8686

8787
export async function loadConfig(options: {
8888
suitePath: string;
8989
configPath?: string;
90-
}): Promise<LoadedSkillGymConfig> {
90+
}): Promise<LoadedSkillgymConfig> {
9191
const filePath =
9292
options.configPath !== undefined
9393
? path.resolve(options.configPath)
@@ -109,7 +109,7 @@ export async function loadConfig(options: {
109109
};
110110
}
111111

112-
export function parseConfig(raw: unknown): SkillGymConfig {
112+
export function parseConfig(raw: unknown): SkillgymConfig {
113113
const record = parseObject(raw, undefined);
114114
ensureKnownKeys(record, TOP_LEVEL_KEYS, undefined);
115115

@@ -132,7 +132,7 @@ export function resolveRunOptions(
132132
retryFailed?: string;
133133
tags?: string[];
134134
},
135-
config: SkillGymConfig,
135+
config: SkillgymConfig,
136136
): {
137137
cwd: string;
138138
outputDir?: string;
@@ -184,7 +184,7 @@ export function resolveReporterOptions(
184184
reporter?: string;
185185
cwd?: string;
186186
},
187-
loadedConfig: LoadedSkillGymConfig,
187+
loadedConfig: LoadedSkillgymConfig,
188188
): {
189189
reporter?: string;
190190
cwd: string;
@@ -204,7 +204,7 @@ export function resolveReporterOptions(
204204

205205
export function getCaseExecutionOptions(
206206
case_: { timeoutMs?: number },
207-
config: SkillGymConfig,
207+
config: SkillgymConfig,
208208
): {
209209
timeoutMs: number;
210210
} {
@@ -257,7 +257,7 @@ function readConfigModule(imported: unknown): unknown {
257257
return imported;
258258
}
259259

260-
function resolveConfigPaths(config: SkillGymConfig, configDir: string): SkillGymConfig {
260+
function resolveConfigPaths(config: SkillgymConfig, configDir: string): SkillgymConfig {
261261
return {
262262
run:
263263
config.run === undefined
@@ -368,7 +368,7 @@ function looksPathLike(value: string): boolean {
368368
);
369369
}
370370

371-
function parseRunConfig(value: unknown, configPath: string): SkillGymConfig["run"] | undefined {
371+
function parseRunConfig(value: unknown, configPath: string): SkillgymConfig["run"] | undefined {
372372
if (value === undefined) {
373373
return undefined;
374374
}
@@ -519,7 +519,7 @@ function parseScheduleMode(value: unknown, configPath: string): ScheduleMode {
519519
function parseDefaultsConfig(
520520
value: unknown,
521521
configPath: string,
522-
): SkillGymConfig["defaults"] | undefined {
522+
): SkillgymConfig["defaults"] | undefined {
523523
if (value === undefined) {
524524
return undefined;
525525
}
@@ -537,7 +537,7 @@ function parseDefaultsConfig(
537537
function parseSnapshotConfig(
538538
value: unknown,
539539
configPath: string,
540-
): SkillGymConfig["snapshots"] | undefined {
540+
): SkillgymConfig["snapshots"] | undefined {
541541
if (value === undefined) {
542542
return undefined;
543543
}
@@ -554,7 +554,7 @@ function parseSnapshotConfig(
554554
};
555555
}
556556

557-
function parseRunnersConfig(value: unknown, configPath: string): SkillGymConfig["runners"] {
557+
function parseRunnersConfig(value: unknown, configPath: string): SkillgymConfig["runners"] {
558558
const record = parseObject(value, configPath);
559559

560560
if (Object.keys(record).length === 0) {

src/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ export type {
2828
RunnerSummary,
2929
SuiteRunResult,
3030
} from "./domain/result.js";
31-
export type { SkillGymConfig } from "./config.js";
31+
export type { SkillgymConfig } from "./config.js";
3232
export { loadConfig, parseConfig } from "./config.js";
3333
export type {
3434
BenchmarkReporter,
@@ -61,8 +61,8 @@ export type {
6161
OutputAssertions,
6262
SkillAssertionOptions,
6363
SkillAssertions,
64-
SkillGymAssert,
65-
SkillGymSoftAssert,
64+
SkillgymAssert,
65+
SkillgymSoftAssert,
6666
SkillConfidence,
6767
StructuredCommandMatcher,
6868
ToolCallAssertions,

0 commit comments

Comments
 (0)