contracts.rules_oob_registry

Page actions AI-ready formats and sharing
Open LLM text
Share with AI
Ask Claude Ask ChatGPT Ask Gemini Ask Copilot

OOB registry / layout consistency check.

Fails loud at startup when the OOB registry contains blocks (e.g. shell_actions_oob) that no layout template defines. Without the matching {% region %} or {% block…

OOB registry / layout consistency check.

Fails loud at startup when the OOB registry contains blocks (e.g. shell_actions_oob) that no layout template defines. Without the matching {% region %} or {% block %}, the registered region is inert — OOB swaps would silently fail at render time, so reachingapp.check()with an orphaned registration is almost always a bug.

Severity tiering:

  • optional=False(default): ERROR. Render-time pre-check would raise BlockNotFoundErroron a request hitting this layout, so flagging at startup is the earlier, cheaper signal.
  • optional=True: WARNING. Apps that intentionally register regions for some-but-not-all layouts opt in; the render path silently skips them.

Apps that need the pre-0.5.0 behavior can demote globally with app.override_contract_severity("oob_registry", Severity.WARNING).

contracts.rules_oob_registry

Name Type Default Description
type
qualified_name
element_type
description
source_file
line_number
is_autodoc
autodoc_element
_autodoc_template
_autodoc_url_path
_autodoc_page_type
title
doc_content_hash

Symbols on this page

check_oob_registry_coverage
function
def check_oob_registry_coverage(oob_registry: OOBRegistry | None, layout_templates: list[str], kida_env: Environment | None) -> list[ContractIssue]

Emit ERROR/WARNING issues for OOB blocks absent from all layouts.

For each block in the OOB registry, checks whether at least one layout template defines that block. Non-optional orphans emit ERROR (render would raise); optional orphans emit WARNING (render silently skips).

Parameters

Name Type Default Description
oob_registry OOBRegistry | None
layout_templates list[str]
kida_env Environment | None

View source · /home/runner/work/chirp/chirp/site/../src/chirp/contracts/rules_oob_registry.py:1