contracts.rules_form_routes

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

Form action → route contract matching.

Validates that<form action="/path" method="post">targets have routes withFormContractdeclarations. This complements the existing target check (which validates URL existence) by surfacing POST routes that…

Form action → route contract matching.

Validates that<form action="/path" method="post">targets have routes withFormContractdeclarations. This complements the existing target check (which validates URL existence) by surfacing POST routes that may silently ignore form data or lack validation.

contracts.rules_form_routes

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_form_action_contracts
function
def check_form_action_contracts(template_sources: dict[str, str], router: Router) -> list[ContractIssue]

Info when a form POSTs to a route without a FormContract.

Routes that accept POST without declaring a FormContract may silently ignore form data or lack proper validation. This is INFO-level because many routes legitimately handle form data without a formal contract.

Parameters

Name Type Default Description
template_sources dict[str, str] —
router Router —

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