ADR-0007 names seven material clause kinds. src/schemas/lease_clause.py ships ClauseSchema = dict[str, Any] in v0.2 with a docstring acknowledging the v0.2.x patch.
Each clause kind needs its own typed slot structure so the lease provenance check can validate clause-internal completeness (e.g., a break_clause schema without conditions is itself a veto candidate).
Scope:
- Add
RentScheduleSlots, BreakClauseSlots, OptionsToRenewSlots, etc. as frozen dataclasses
- Extend
ExtractedClause.schema to be a union of these typed slot structures, dispatched by criticality + clause_kind
- Add structural validation hooks in
LeaseProvenanceCheck for missing slot fields per kind
- New veto reason code:
PROV-INCOMPLETE-SLOT for kind-specific missing slots
Priority: P1. Composite 16/27.
ADR-0007 names seven material clause kinds.
src/schemas/lease_clause.pyshipsClauseSchema = dict[str, Any]in v0.2 with a docstring acknowledging the v0.2.x patch.Each clause kind needs its own typed slot structure so the lease provenance check can validate clause-internal completeness (e.g., a
break_clauseschema withoutconditionsis itself a veto candidate).Scope:
RentScheduleSlots,BreakClauseSlots,OptionsToRenewSlots, etc. as frozen dataclassesExtractedClause.schemato be a union of these typed slot structures, dispatched bycriticality + clause_kindLeaseProvenanceCheckfor missing slot fields per kindPROV-INCOMPLETE-SLOTfor kind-specific missing slotsPriority: P1. Composite 16/27.