Skip to content

Feat/validator causal analytics#4

Merged
fklosowski merged 20 commits intomainfrom
feat/validator-causal-analytics
May 6, 2026
Merged

Feat/validator causal analytics#4
fklosowski merged 20 commits intomainfrom
feat/validator-causal-analytics

Conversation

@fklosowski
Copy link
Copy Markdown
Collaborator

Three feature releases (0.6.0, 0.7.0, 0.7.1) shipped on top of
0.5.2. Net effect: validator went from "catches problems" to
"attributes, scores, and self-corrects" via a rule engine + an
end-to-end-trustworthy analytics pipeline.

Headline numbers

  • Rule modules: 0 → 86.
  • Fix-proposal rate (DEMO): ~0 → 45 / 99 (45%).
  • Confidence coverage: 0% → 89% of emits.
  • Health score (DEMO): 91 → 95 / 100.
  • Tests: ~+200 unit + ~+25 integration; suite at HEAD 1825+ / 1826, all green except one pre-existing flake.
  • Analytics schema: migrated v1 → v6 (idempotent, no
    backfills).
  • pos-cli 0.6.7 + current LSP + modernized modules support

What changed

Analytics pipeline (0.6.0)

  • Fixed three silent bugs: outcomes.fix_applied always null,
    hint_md_hash dropped on ingest, heuristic fixes never reached
    analytics. Numbers were misleading before this.
  • A1–A4: outcome dedup, default-confidence stamping, gating
    dashboard_live calls out of analytics, ${check}.unmatched
    fallback for unattributed emits.
  • Manual rule overrides
    (force_enable / force_disable / clear) persisted at
    .pos-supervisor/rule-overrides.json + dashboard form.
  • New endpoints: /api/blob, /api/engine/impact,
    /api/engine/rule-overrides,
    /api/analytics/fix-rule-performance.

Rule engine + hint quality (0.6.0 → 0.7.0)

  • Neuro-symbolic engine introduced with bridgeRulesOntoUnattributed
    late-push attribution.
  • AT-RISK rules rewritten: MissingPartial.module_path now
    enumerates real module paths via Levenshtein;
    TranslationKeyExists.suggest_nearest strips locale prefixes (was
    re-breaking t lookups); NonGetRenderingPage split into 3
    intent-aware subrules; InvalidLayout picks
    .liquid vs .html.liquid from existing layouts.
  • 13 bucket-B .unmatched checks promoted to rule modules with
    structured guidance (DeprecatedTag, PartialCallArguments,
    GraphQLVariablesCheck, MissingAsset, MissingPage,
    LiquidHTMLSyntaxError, OrphanedPartial, SchemaProperty,
    SchemaYAML, MissingSlug, MissingContentForLayout,
    ParserBlockingScript, TranslationMissingLocaleKey,
    UnusedDocParam).
  • New structural check pos-supervisor:NonGetRenderingPage +
    pipeline step verifyMissingPartialsOnDisk (suppresses
    scaffold-write race).
  • pos-supervisor:HtmlInPage suppressed on partial-rendering pages;
    pos-supervisor:MissingDocBlock scope narrowed to partials only.

Parser blind-spot + dashboard fix (0.7.1)

  • GraphQLVariablesCheck.required regression spiral fixed: parser
    now flags {% graphql %} calls truncated by multi-line , inside
    {% liquid %} blocks. New sub-rule parser_blind_spot + new
    structural check pos-supervisor:GraphqlMultilineInLiquidBlock
    redirect agent at the syntactic root cause instead of looping.
  • Dashboard GET /api/hints 404 fixed for the 12+ rule-driven
    checks with no static .md file — endpoint now branches
    static / rule, drilldown panel shows [RULE-DRIVEN] /
    [STATIC] source badge and the correct file path.

Dashboard

  • POS-CLI tab (data-clean / deploy) — 0.5.2.
  • Adaptive Mode Impact panel, code-context drilldown, journey
    timeline clickable nodes, confidence column, live-console picker
    sync, override form — 0.6.0.
  • Source-aware hint drilldown — 0.7.1.

@fklosowski fklosowski merged commit 1c2e727 into main May 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant