Finding output
Output examples.
Findings rendered as code, margin signals, and action details. Each example comes from a validator in this repo.
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
}
}
- error service-no-db-client src/services/company.service.ts:1
Route persistence through a repository in src/repositories/.
- warn repeated-domain-literals src/services/company.service.ts:5
Extract into the shared domain table registry.
// opencanon/conventions/index.ts
export default [ ← generated docs are stale
serviceDbBoundary,
repeatedDomainLiterals,
noDumpsterFolders,
];
- warn generated-doc-drift opencanon/conventions/index.ts:2
Run opencanon canon render conventions, then review the Markdown diff.
{
"ok": false,
"error": { ← runtime failure is explicit
"kind": "problem",
"message": "Project runtime is not initialized",
"action": "Run opencanon setup --yes"
}
}
- error explicit-error-contracts runtime-response.json:3
Clients receive one error payload with a predictable recovery action.