Task: Add compass codegen entity lint — flag missing variability knobs on a model

Table of Contents

This page documents a task in the Codegen infrastructure follow-ups from DQ commissioning story. It captures the goal, current status, acceptance, and any notes or results.

Goal

Add a compass subcommand that lints an entity .org model file: classify its stereotype, then check for the knobs that stereotype is expected to declare, warning on gaps instead of letting them surface later as a runtime bug (e.g. an empty change-reason dropdown, a silently absent Qt/SQL layer).

Status

Field Value
State BACKLOG
Parent story Codegen infrastructure follow-ups from DQ commissioning
Now Not yet started.
Waiting on Nothing.
Next Begin implementation.
Last touched 2026-07-17

Acceptance

  • compass has a lint command taking a model .org path (or component/entity), reusing the existing org-loader parsing; it reports one warning per missing/inconsistent knob, referencing the same knowledge base as the sibling scaffold task so the two never drift apart; run against all DQ models commissioned so far as a first real use.

Plan

(Implementation strategy. Written when work starts; key decisions are distilled into the parent story's * Decisions at close, but the plan itself stays — it is the historical record of what we did.)

Notes

Scoped narrower than the dormant backlog story Entity evaluation skill and runbook (Sprint 19, still BACKLOG) and its Domain entity evaluation checklist knowledge doc: those cover a full post-generation, live-system health check across twelve layers (DB/Qt/shell/CLI/HTTP/Wt/manual), including manual QA steps like "open the app, edit a field, save". This task is a static lint of the model .org file itself, run before generation, catching declared- vs-expected knob gaps the moment the model is authored rather than after a save silently fails in the UI.

Depends on the knowledge base built in the sibling task Scaffold model .org files per entity type (updated org_entity_meta_model.org, per-stereotype expected-knob list) – both tasks should read from the same source so they can't drift apart. Implementation should reuse the existing org-loader parsing in ores.codegen rather than re-parsing .org files independently.

There's a related, unstarted sibling-story task, B6: Add compass codegen entity archetypes subcommand, for a different but adjacent `compass codegen entity` subcommand (lists the physical-space archetype catalogue). Check for shared CLI plumbing before landing this one's command surface.

Test Scenarios

Manual QA scenarios (scaffolded via compass add test_scenario, run through the QA Validation Runner panel) that verify this task. Link new ones here as they're created; the scenario doc itself links back via its "Verifies task" field.

Scenario State Notes
     

PRs

PR Title
   

Review

Comment summary File Decision Notes
       

Result

Emacs 29.3 (Org mode 9.6.15)