Skip to content

Verification inventory

Generated from gate sources, coverage and complexity ratchets, and exact test-double declarations and imports. Counts are inventory, not quality scores. A larger count records a larger reviewed surface; it does not make that surface better.

Parser boundary: this generator reads the repository’s current flat string arrays, numeric constants, fallow complexity overrides, and exact helper exports. Unsupported or stale shapes fail generation instead of being silently omitted.

File Rule Searched roots Allowlist / exception constants Limitation
test/api-group-gate.test.ts THE API PAGE IS ORGANISED BY SEAM, AND THAT ORGANISATION IS HELD (#188). typedoc.json
packages/core/src
packages/harness/core
none (0) Holds that every documented export carries @group, that the subdivided group carries @category, and that both names are declared in the config’s order lists. Which group a symbol belongs in is a judgement it cannot make.
test/browser-bundle-gate.test.ts The browser zone must bundle for the browser (#211). packages/web/src/main.tsx none (0) Builds the web entry for the browser target; a node:-only module reachable from it fails by the bundler’s own error. It does not run the bundle.
test/check-coverage.test.ts The coverage GATE’s own arithmetic (#53 S2). scripts/check-coverage.ts none (0) Exercises synthetic LCOV records; it does not run the suite or measure live coverage.
test/complexity-ratchet.test.ts Re-measures the cognitive-complexity pins, per FUNCTION (#264). .fallowrc.jsonc
package.json
none (0) Re-runs the gate’s own fallow command and asserts each per-function pin is live and equal to its function’s score; whether the pinned complexity is warranted is not a question it can ask.
test/coverage-manifest.test.ts THE COVERAGE DENOMINATOR (#slop-factory port). packages/core/src
packages/harness/core
packages/harness/extensions
packages/web/src
ENTRY_POINT_EXCEPTIONS = 4
VENDORED_DIRECTORIES = 1
Importability enters files into Bun’s denominator; it does not prove that their behavior was exercised.
test/dependency-gate.test.ts What the dependency manifests claim, held against what the code actually imports (#218, #223). packages
scripts
test
none (0) Reads import specifiers from code lines — type-only imports included, which is the point — and versions from the manifests. That the installer honoured a pin is bun.lock’s record, not this scan’s; a specifier resolving to no installed package is treated as a matcher fixture and left to tsc.
test/docs-gate.test.ts The docs cannot drift (#168, goals §3.3): a page either quotes source and is checked against it, or is generated from source and is diffed against it. docs stated allowlist = 0 Recognizes generated first-line markers and TypeScript fences backed by current top-level declaration shapes.
test/duplicate-shapes-gate.test.ts One place for every shape: no TypeBox schema is declared outside @enso/core (#53, #255). packages
scripts
test
none (0) Matches a named TypeBox declaration in any export spelling, across line breaks, whole-file — so a commented-out declaration is reported and a schema built by a helper rather than declared is not.
test/gate-abort.test.ts The gate’s blind spot, closed (#157): a tool that dies mid-run and still exits 0. scripts/gate.ts
docs/verification.md
README.md
none (0) Recognizes the known fatal stderr banners; arbitrary tool corruption with different output is outside the matcher. It also holds the two pages that state what the gate IS — the step lists and the gate census — against GATES and the generated inventory, but says nothing about the prose around them.
test/glossary-gate.test.ts The glossary’s Retired table, applied to the source tree (#165, docs/glossary.md → Retired). packages/core/src
packages/web/src
packages/harness
scripts
test
RETIRED_ALLOWED = 2
VENDOR_ROOTS = 2
Matches retired words and paths, not a retired meaning expressed under a new word.
test/harness-barrel-gate.test.ts THE HARNESS BARREL IS ITS CONSUMPTION, AND THAT IS CHECKED (#263). packages/harness/core/index.ts
packages/harness/extensions
none (0) Compares the barrel’s re-exported names with the names imported through it by the extensions; a name imported directly from a module rather than through the barrel is outside it, and so is module reachability.
test/logging-gate.test.ts Every record goes through the one logger (#132), and the substrate stays behind it. packages/core/src
packages/harness
packages/web/e2e
packages/web/src
scripts
LOGTAPE_ALLOWED = 3 Line-scans direct console calls and any string naming the LogTape substrate; comments and test directories are skipped, and an allowlist row that matches nothing is reported.
test/mermaid-gate.test.ts EVERY DIAGRAM IN THE DOCS PARSES (#188). docs none (0) Parses every mermaid fence under docs/ and names the ones mermaid refuses. It cannot say a diagram is true, readable, or in agreement with the prose beside it — only that it renders rather than showing the reader a parse error.
test/naming-gate.test.ts The naming gate’s exemption for externally-fixed KEYS (#82, PR #83 review), and the severity that decides whether a tier blocks (#250) or merely mentions. packages
scripts
EXEMPTED_KEY_SITES = 1 The executable fixture covers the externally fixed dir key and asserts each diagnostic’s severity; the site scan recognizes that key spelling and reports an exemption no file spells. The counted EXEMPTED_KEY_SITES row counts exempted FILES — the exempted NAMES live in scripts/lint/naming-policy.ts, which the test imports and this generator does not parse.
test/no-lint-suppressions.test.ts The gate may not be talked out of, one line at a time. packages
scripts
test
VENDORED_DIRECTORIES = 1
stated allowlist = 0
Matches the linter, dead-code and type-checker suppression pragmas by family prefix, anywhere in a line and in any comment form, across known source extensions; vendored code is outside the scan, and a suppression written in a file extension the walker does not read is not seen.
test/presentation-gate.test.ts Presentation stays presentation (#121 item 4, #31). packages/web/src/components none (0) Matches provenance text and static imports; dynamically assembled dependencies are outside the import matcher.
test/prose-citation-gate.test.ts THE PROSE LINE CITATION, RESOLVED (#244, #320 review). docs none (0) Resolves a line citation written beside a symbol the cited file declares exactly once; a bare range with no symbol beside it, and a symbol the file only uses, are outside it.
test/secret-scan-gate.test.ts The range .github/workflows/secret-scan.yml hands gitleaks is the coverage of the only gate that stops a committed secret, so it is asserted here rather than read (#209). .github/workflows/secret-scan.yml none (0) Runs the git log the scanner runs, over fixture histories, with the flags read out of the workflow; it pins what gitleaks is handed, not that gitleaks ran or what its rules matched.
test/site-gate.test.ts THE SITE IS A PROJECTION OF docs/, AND THE PROJECTION IS TOTAL (#188). docs
site/astro.config.ts
.github/workflows/docs-site.yml
none (0) Holds that every page under docs/ projects with a title, that every page the sidebar names exists, and that each link class is rewritten for a route. Whether the BUILT site serves them is the site gate step, which builds and crawls.
test/style-tokens-gate.test.ts The pages size and colour themselves with TOKENS, never literals: a colour is a theme variable (text-chart-2, bg-primary), a size a Tailwind variable — the spacing scale, or a named measure in styles/global.css’s @theme (max-w-context-view, w-debug-pane). packages/web/src PIXELS_ALLOWED = 3 A line scan of page code: it refuses Tailwind arbitrary values, hex colours, colour functions, raw palette colours and pixel lengths or *_PX constants. A bare number handed to a style prop under another name, and anything in the vendored components or the stylesheet, are outside it.
test/vendor-gate.test.ts The seam has an owner: only the host and the pi extensions may name the vendor (#145). packages/core/src
packages/web/src
packages/harness
packages/web/e2e
scripts
test
VENDOR_IMPORT_ALLOWED = 2
VENDOR_NAMED_ALLOWED = 16
VENDOR_ROOTS = 2
Line-scans static words and package strings; structural type leaks and runtime-assembled names are not visible.
Ratchet Value Location Reason
Coverage line floor 0.91 scripts/check-coverage.ts — TOTAL_LINE_COVERAGE_FLOOR Minimum aggregate line coverage accepted by the coverage gate.
Coverage function floor 0.89 scripts/check-coverage.ts — TOTAL_FUNCTION_COVERAGE_FLOOR Minimum aggregate function coverage accepted by the coverage gate.
Complexity ceiling cognitive max 25 package.json — complexity:check Global cognitive-complexity ceiling for code without a narrower pin.
Complexity pin cognitive max 68 .fallowrc.jsonc — packages/harness/core/shell-segments.ts:extractFlatShellCommandSegments The shell character-scanner: one linear read of the quote/escape state machine, kept close to upstream oh-my-pi so a diff stays reviewable.
Complexity pin cognitive max 50 .fallowrc.jsonc — packages/harness/core/shell-segments.ts:literalShellWord Same scanner: the quoted-word reader.
Complexity pin cognitive max 32 .fallowrc.jsonc — packages/harness/core/shell-segments.ts:skipShellWord Same scanner: the word skipper.
Complexity pin cognitive max 28 .fallowrc.jsonc — packages/harness/extensions/guards/index.ts:decide The tool_call guard dispatch: bash patch, then the write denials in precedence order, then the reader gate. The precedence order IS the security contract the file header documents; splitting it hides it.
Complexity pin cognitive max 26 .fallowrc.jsonc — packages/web/src/thread-debug.tsx:ThreadDebugView The debug drawer’s view: one branch per record kind it renders. Biome scored it at or under 25; fallow’s scorer counts its JSX conditionals one higher. Pinned at the measured score when complexity moved to fallow.
Allowlist / exception count 4 test/coverage-manifest.test.ts — ENTRY_POINT_EXCEPTIONS Program entry points execute at import time and are verified by live receipts.
Allowlist / exception count 1 test/coverage-manifest.test.ts — VENDORED_DIRECTORIES Vendored presentation code shares the lint and coverage exclusion boundary.
Allowlist count 0 test/docs-gate.test.ts — stated empty allowlist Generated pages and sourced fences have no drift exceptions.
Allowlist / exception count 2 test/glossary-gate.test.ts — RETIRED_ALLOWED Named sites may retain retired words only for the documented vendor leak or contract test.
Allowlist / exception count 2 test/glossary-gate.test.ts — VENDOR_ROOTS The vendor runtime’s own roots may retain its vocabulary.
Allowlist / exception count 3 test/logging-gate.test.ts — LOGTAPE_ALLOWED Only the logging schema and process configurators may name the logging substrate.
Allowlist / exception count 1 test/naming-gate.test.ts — EXEMPTED_KEY_SITES Pins every production file relying on an externally fixed property-key spelling.
Allowlist / exception count 1 test/no-lint-suppressions.test.ts — VENDORED_DIRECTORIES Vendored upstream code is excluded from linting and therefore from the suppression scan.
Allowlist count 0 test/no-lint-suppressions.test.ts — stated empty allowlist Lint suppressions have no per-file or per-line allowance.
Allowlist / exception count 3 test/style-tokens-gate.test.ts — PIXELS_ALLOWED The debug pages’ virtualized log lists: the virtualizer places rows by arithmetic in pixels, so their row height is a pixel number by contract.
Allowlist / exception count 2 test/vendor-gate.test.ts — VENDOR_IMPORT_ALLOWED One row since #215 widened the walk to tests: the guard corpus resolves the runtime to pin its path replica against it. The bundle has imported no vendor-scoped package since L6 (#162).
Allowlist / exception count 16 test/vendor-gate.test.ts — VENDOR_NAMED_ALLOWED Pins every first-party code site that still names a vendor extension, tests included. Most rows are sites #215 revealed by widening the walk rather than sites that were added; each carries its reason and the condition that removes it.
Allowlist / exception count 2 test/vendor-gate.test.ts — VENDOR_ROOTS The host and extension roots own the vendor boundary and may name it.
Double / factory File Seam Production surface driven Consumer tests / count
recordEnsoLogs packages/core/src/__tests__/log-recorder.ts LogTape in-memory sink, one for every package (#178) every record through ensoLogger — extension audits, web and server records 13 files: packages/harness/extensions/guards/__tests__/guards.test.ts
packages/harness/extensions/logging/__tests__/logging.test.ts
packages/harness/extensions/web-fetch/__tests__/web-fetch.test.ts
packages/harness/extensions/web-search/__tests__/web-search.test.ts
packages/web/src/__tests__/follow-connection.test.ts
packages/web/src/host/__tests__/agent-host.test.ts
packages/web/src/host/__tests__/extension-ui-context.test.ts
packages/web/src/server/__tests__/follow.test.ts
packages/web/src/server/__tests__/logs-route.test.ts
packages/web/src/server/__tests__/logs-tail-route.test.ts
packages/web/src/server/__tests__/observation-log.test.ts
packages/web/src/server/__tests__/server-handler.test.ts
packages/web/src/server/__tests__/thread-registry.test.ts
DOM environment / releaseDom packages/web/src/__tests__/dom-environment.ts process-scoped browser globals mounted React components and browser events 18 files: packages/web/src/__tests__/add-project.test.tsx
packages/web/src/__tests__/command-palette.test.tsx
packages/web/src/__tests__/context-activity.test.tsx
packages/web/src/__tests__/context-browser.test.tsx
packages/web/src/__tests__/context-dialog.test.tsx
packages/web/src/__tests__/context-trend.test.tsx
packages/web/src/__tests__/fonts.test.ts
packages/web/src/__tests__/markdown-image.test.tsx
packages/web/src/__tests__/model-state.test.tsx
packages/web/src/__tests__/page-clock.test.tsx
packages/web/src/__tests__/questionnaire-card.test.tsx
packages/web/src/__tests__/start-session.test.tsx
packages/web/src/__tests__/thread-pane.test.tsx
packages/web/src/__tests__/transcript-reveal.test.ts
packages/web/src/debug/__tests__/day-stats-screen.test.tsx
packages/web/src/debug/__tests__/debug-screen.test.tsx
packages/web/src/debug/__tests__/log-tail-screen.test.tsx
packages/web/src/debug/__tests__/thread-timeline-screen.test.tsx
createScriptedFetch packages/web/src/__tests__/scripted-server.ts injected fetch and streamed follow body browser HTTP/SSE adapters, prompts, dialogs, aborts, and history 2 files: packages/web/src/__tests__/follow-connection.test.ts
packages/web/src/__tests__/thread-pane.test.tsx
SNAPSHOT_IDLE packages/web/src/__tests__/scripted-server.ts reusable EnsoFollowSnapshot fixture browser follow snapshot handling 2 files: packages/web/src/__tests__/follow-connection.test.ts
packages/web/src/__tests__/thread-pane.test.tsx
liveThread packages/web/src/server/__tests__/bundle-route.test.ts ThreadView over createFakeHostedThread diagnostic bundle serialization of live threads 1 file: packages/web/src/server/__tests__/bundle-route.test.ts
createFakeAgentHost packages/web/src/server/__tests__/fake-hosted-thread.ts the one fake of the storage seam (#178): AgentHost over a stored-thread map stored-thread listing, history reads, thread building 5 files: packages/web/src/server/__tests__/follow.test.ts
packages/web/src/server/__tests__/logs-tail-route.test.ts
packages/web/src/server/__tests__/server-handler.test.ts
packages/web/src/server/__tests__/thread-context-route.test.ts
packages/web/src/server/__tests__/thread-stats-route.test.ts
createFakeHostedThread packages/web/src/server/__tests__/fake-hosted-thread.ts the one fake of the thread-runtime seam (#178): recording ThreadRuntime / HostedThread server routes, registry lifecycle, follow feed, bundle — everything driven over a ThreadRuntime 7 files: packages/web/src/server/__tests__/bundle-route.test.ts
packages/web/src/server/__tests__/follow.test.ts
packages/web/src/server/__tests__/logs-tail-route.test.ts
packages/web/src/server/__tests__/server-handler.test.ts
packages/web/src/server/__tests__/thread-context-route.test.ts
packages/web/src/server/__tests__/thread-registry.test.ts
packages/web/src/server/__tests__/thread-stats-route.test.ts
openFollow packages/web/src/server/__tests__/follow-reader.ts real HTTP SSE reader thread follow endpoint frames and keepalive comments 3 files: packages/web/src/server/__tests__/follow-reader.test.ts
packages/web/src/server/__tests__/follow.test.ts
packages/web/src/server/__tests__/server-handler.test.ts
fakeHost (follow) packages/web/src/server/__tests__/follow.test.ts createFakeAgentHost over createFakeHostedThread with a scripted prompt acceptance follow snapshots, observations, dialogs, and abort behavior 1 file: packages/web/src/server/__tests__/follow.test.ts
fakeHost (server handler) packages/web/src/server/__tests__/server-handler.test.ts createFakeAgentHost over createFakeHostedThread with a scripted prompt and a picc-shaped inspection server request routing and runtime event delivery 1 file: packages/web/src/server/__tests__/server-handler.test.ts
fakeHosted packages/web/src/server/__tests__/thread-registry.test.ts createFakeHostedThread with a pending abort and a failing clear thread registry acquire, abort, queue clearing, and disposal 1 file: packages/web/src/server/__tests__/thread-registry.test.ts