vigiles API reference
    Preparing search index...

    Interface ArmsMeasureSpec

    A task scored against checks across NAMED arms (the harness variable on/off).

    interface ArmsMeasureSpec {
        allowedTools?: readonly string[];
        arms: Record<string, EvalArm>;
        checks: readonly Check<RunContext>[];
        effort?: string | number;
        fixture?: Record<string, string>;
        model?: string;
        spacingSec?: number;
        stubSkillBodies?: boolean;
        task: string;
        timeoutMs?: number;
        trials?: number;
    }
    Index

    Properties

    allowedTools?: readonly string[]
    arms: Record<string, EvalArm>

    The arms to compare (settings / plugin / pluginDir per arm).

    checks: readonly Check<RunContext>[]
    effort?: string | number

    Reasoning budget for the run (claude --effort, e.g. "low" or an integer). Lives here beside model because it is part of the MEASUREMENT — it moves the output distribution, not the sample size — so it is hashed into the lock and the cache, and never read from an env var. Omit for the harness default.

    fixture?: Record<string, string>
    model?: string
    spacingSec?: number
    stubSkillBodies?: boolean

    Stub each arm's skill BODIES (frontmatter kept) before the run — the A/B counterpart to MeasureSpec.stubSkillBodies. For firing comparisons (does description variant A fire more than B?), every arm that sets pluginDir / skillsDir is repackaged with bodies stripped so each run stops at selection — a fraction of the tokens. Arms without one are left untouched. Don't combine with judged/quality checks. See stubSkillBody.

    task: string
    timeoutMs?: number
    trials?: number