Shell side of the Tier 1 closed verify loop (BOU-101). Runs the steps that touch the filesystem / subprocesses against the files a generate tool just wrote, and hands the raw results to boundary.mcp.core.verify for the pure report assembly.
Steps:
core-source-paths discovery.:test-runner
(a fn of the module name). The runner is injected, not hardcoded,
because there is no stable programmatic Kaocha API and the tests
must run in the project's classpath, not the MCP server's; the
default shell-out runner lives in boundary.mcp.shell.test-runner.
Absent runner → an honest :unavailable step (never a silent pass).Malli validation of the generate request happens in the scaffolder service
before any file is written; its failures arrive as :errors on the generate
result and are surfaced by the core report, so there is no separate Malli
step here.
Shell side of the Tier 1 closed verify loop (BOU-101). Runs the steps that
touch the filesystem / subprocesses against the files a generate tool just
wrote, and hands the raw results to boundary.mcp.core.verify for the pure
report assembly.
Steps:
* kondo — clj-kondo over the written .clj files (static; in-process).
* fcis — boundary.tools.check-fcis/check-file over written core/ files,
so FC/IS (BND-806) violations are caught per-file regardless of
the monorepo's `core-source-paths` discovery.
* tests — the project's affected tests, via an injected `:test-runner`
(a fn of the module name). The runner is injected, not hardcoded,
because there is no stable programmatic Kaocha API and the tests
must run in the *project's* classpath, not the MCP server's; the
default shell-out runner lives in boundary.mcp.shell.test-runner.
Absent runner → an honest :unavailable step (never a silent pass).
Malli validation of the generate *request* happens in the scaffolder service
before any file is written; its failures arrive as `:errors` on the generate
result and are surfaced by the core report, so there is no separate Malli
step here.(verify-generated deps result)(verify-generated deps {:keys [module files] :as result} opts)Run the verify loop over a generate result and return the structured report (boundary.mcp.core.verify/build-report shape).
deps — needs :test-runner (optional fn of module name).
result — {:module str :files [{:path :action}] [:errors] :success bool}
opts — {:overridden? bool} (an audited soft-guardrail override).
kondo runs over every written .clj file; FC/IS over the written core/ files; tests over the module (via the injected runner).
Run the verify loop over a generate result and return the structured report
(boundary.mcp.core.verify/build-report shape).
`deps` — needs :test-runner (optional fn of module name).
`result` — {:module str :files [{:path :action}] [:errors] :success bool}
`opts` — {:overridden? bool} (an audited soft-guardrail override).
kondo runs over every written .clj file; FC/IS over the written core/ files;
tests over the module (via the injected runner).cljdoc builds & hosts documentation for Clojure/Script libraries
| Ctrl+k | Jump to recent docs |
| ← | Move to previous article |
| → | Move to next article |
| Ctrl+/ | Jump to the search field |