ruvnet/ruflo · error

No contract baseline found. Capturing initial contracts...

Error message

No contract baseline found. Capturing initial contracts...

What it means

Bootstrap path in ApiContractValidator.validateAll(): no stored contract baseline file exists yet, so instead of validating, the validator captures the current MCP tool contracts as the initial baseline and returns an empty validation list. First-run behavior, not a failure.

Source

Thrown at v3/@claude-flow/testing/src/regression/api-contract.ts:291

    const contracts: StoredContracts = {
      version: '1.0.0',
      capturedAt: Date.now(),
      contracts: MCP_TOOLS,
    };

    await this.saveContracts(contracts);
    this.cachedContracts = contracts;

    return contracts;
  }

  /**
   * Validate all contracts against baseline
   */
  async validateAll(): Promise<ContractValidation[]> {
    const baseline = await this.loadContracts();
    if (!baseline) {
      console.warn('No contract baseline found. Capturing initial contracts...');
      await this.captureContracts();
      return [];
    }

    const validations: ContractValidation[] = [];

    for (const current of MCP_TOOLS) {
      const baselineContract = baseline.contracts.find((c) => c.name === current.name);

      if (!baselineContract) {
        // New endpoint added
        validations.push({
          endpoint: current.name,
          valid: true,
          breaking: false,
          message: 'New endpoint added',
          diffs: [{
            type: 'added',

View on GitHub (pinned to fa13ee4ad6)

Solutions

  1. Commit the captured initial contract baseline to the repo so subsequent runs compare against it.
  2. If the baseline was expected to exist, check the baseline storage path and restore it from version control.
  3. Review the captured contracts before accepting them as the new baseline.
Defensive patterns

Strategy: fallback

When it happens

Trigger: API contract regression test runs in a repo/branch with no previously captured contract snapshot (first run, cleared snapshot directory, or new endpoint); the harness records the current contract as the baseline instead of diffing.

Common situations: See trigger scenarios.


AI-assisted analysis of ruvnet/ruflo@fa13ee4ad6 (2026-08-18). Data as JSON: /api/errors/236ee351d0300d9f. Report an issue: GitHub.