v0.6.1 — single-source analyzer rules
Analyzer design rules are now single-sourced: each rule is authored once and
rendered into both the prompt's full guidance and its one-line self-check, so
the two can no longer drift apart. No change to the design judgment itself —
eval holds at 6/6 on vanilla petclinic with no regression versus v0.6.0.
Changed
- Rule-as-object model in the analyzer prompt.
analyzer.mddefines a Rule
concept (id/title/guidance/why/appliesWhen/severity/
assertion); therules/*.mdfiles carry normalized frontmatter plus an
assertion:line, and the prompt gains an explicit "Apply the rules" step. AnalyzeServiceloads rules once and renders them twice. Rules are read
into a singleRulerecord and rendered into both{RULES}(full guidance)
and{SELF_CHECK_RULES}(one assertion line each) from the same objects;
the separate dev/jar loaders collapse into oneloadRules().