Finding output

Output examples.

Findings rendered as code, margin signals, and action details. Each example comes from a validator in this repo.

Validator output src/services/company.service.ts
import { db } from "../db/client";  ← service imports db client
 
export class CompanyService {
  async deactivate(id: string) {
    return db.from("companies").where({ id }).update({ status: "x" });  ← "companies" appears in 6 services
  }
}
  1. error service-no-db-client src/services/company.service.ts:1

    Route persistence through a repository in src/repositories/.

  2. warn repeated-domain-literals src/services/company.service.ts:5

    Extract into the shared domain table registry.

A service that reaches across the db boundary.
Validator output validators/index.ts
// validators/index.ts
export {  ← expected default export removed
  serviceNoDbClient,
  repeatedDomainLiterals,
  noDumpsterFolders,
} from "./registry";
  1. warn validators-entrypoint-shape validators/index.ts:2

    Validator entrypoint exports named factories only.

Validator registry shape check.
Validator output .agents/skills/opencanon/index.ts
// .agents/skills/opencanon/index.ts
import { defineValidator } from "@opencanon/core"; // ← not allowed  ← workspace package import in skill barrel
import { defineValidator } from "../runtime/core.js"; // ← fixed
  1. error skill-no-workspace-imports .agents/skills/opencanon/index.ts:2

    The skill imports from runtime/.

Skill self-containment check.