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.
1. 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).
2. 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 |
3. 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.
4. 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.)
5. Notes
Scoped narrower than the Entity evaluation skill and runbook story
(Sprint 19; discarded 2026-09-03 as superseded by the method-skill task in
the drift-rollout story) and the entity commissioning process
reference's per-layer criteria: 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.
6. 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 |
|---|---|---|
7. PRs
| PR | Title |
|---|---|
8. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|