Catches the mistakes coding agents repeat before they merge: a pull-request gate with no model call and no API key.
brevio-core scan now checks 13 scanned rules of the 123 in the catalogue (110 documented): R5.5 flags subprocess
calls with shell=True and os.system calls with interpolated strings in Python; R10.1 flags single-line requests
calls without timeout= in Python; R16.2 flags "*" and "latest" dependency ranges in package.json; and R18.2
flags single-line target="_blank" anchor tags without rel="noopener noreferrer"..execute(f"SELECT ...") and .$queryRawUnsafe template literals,
as well as hidden directional and Unicode tag control characters.NEXT_PUBLIC_, VITE_, REACT_APP_).brevio-core scan --fix and the MCP fix tool now rewrite target="_blank" anchor tags that have no rel=
attribute to add rel="noopener noreferrer" (R18.2).docs/rules now links to the interactive rule playground on brevio.pro.brevio-core baseline records the findings a repository has today in .brevio/baseline.json, so a scan reports
only new ones. An entry names the file, the rule and a hash of the line, so moving a line does not make it new.scan --fail-on chooses what fails: new (the default), all, none for a trial, or error for error-level
findings only.brevio-core init sets a repository up in one step: the pull-request workflow, a block of agent rules in
AGENTS.md and a baseline, with --with precommit,hook,mcp for more. It shows a diff and asks first, never rewrites
a file you have, and init --undo takes back what it wrote.brevio-core: ignore R9.2 -- reason) silences one finding in a scan a person
runs. Without a reason it does not count.brevio-core.toml at the root and in any folder chooses the rules, leaves paths out, and sets warn or error per
rule and per path. extends reads an organisation policy from a file in the repository or a checkout pinned to a
commit; it never fetches one.brevio-core config shows what applies to a file or folder.stable, preview (reports, never fails) or deprecated (reports nothing, keeps its ID).pk_ keys.exclude in brevio-core.toml..d.ts, .d.mts, .d.cts): it holds types, no code that runs.eval, new Function and dangerouslySetInnerHTML findings have their own rule, R2.8. Earlier builds reported
them as R2.5, the SSRF and timeout guard.preview: it reports and never fails a scan.brevio-core hook run is the hook a coding client calls after an edit and before it stops. It reads the client’s
event, scans the changed lines and hands the findings back in that client’s own format, so the agent fixes them
without a human turn. It gives up quietly on an error or past its time budget.hook install writes the hooks for Claude Code and Cursor, and the agent skill for the clients that load skills.scan --format agent prints one short line per finding with a fix hint, as the hook and the MCP server do.learn --staged, learn --worktree and learn --dry-run compile a guard from a fix that is not committed yet,
and show what it would match before anything is written.scan --format markdown prints the findings as an escaped table, with links to the rule pages.brevio-core aeo scores a folder of built HTML pages, with its robots.txt and llms.txt, against the AEO
rubric, as text, Markdown or JSON, and fails below --min. It reads local files only and refuses a URL with a hint
to save the page first.AGENTS.md block and a README, ready to become a template
repository.MANIFEST.json that maps every file to its source, and a .pyz single-file build with its SBOM
and checksum in the release notes.