Skip to content

Add a settings-vocabulary cross-check lint #224

Description

@travisennis

Problem

When a new settings key reuses a word with established meaning (e.g. model vs default_model), nothing flags that its semantics contradict sibling keys. The model-name invariant is now documented in docs/configuration.md (2026-08-09), but there is no mechanical check that documented settings keys stay consistent with the Settings struct fields, so the F-002-class drift can recur silently.

Proposed Solution

A lint (extending scripts/lint-domain-glossary.py or a new script, run from just ci) that cross-references the settings keys documented in docs/configuration.md with the Settings struct fields and flags undocumented keys, renamed keys, or vocabulary conflicts.

Alternatives Considered

A vocabulary table in docs/configuration.md without enforcement.

Additional Context

Recorded in ~/.local/share/cake/DESIRES.md (2026-08-09). The F-001 fix initially went the wrong direction (raw provider id instead of [[models]] name); the invariant is in docs/configuration.md Models section.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:configSettings, profiles, skills, and prompt constructiontype:featureNew capabilities or user-visible improvements

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions