Skip to content

Hypatia AssailReport ingestion path: design + implement #117

Description

@hyperpolymath

Context

The 2026-06-02 v2.5.5 cohort wired panicbot (gitbot-fleet#252) to honour panic-attack's new test_context field. Hypatia ALSO consumes panic-attack scan output — but currently only via rule-mention references (lib/rules/workflow_audit.ex, lib/rules/dogfooding.ex). There is no AssailReport ingestion path in the Hypatia codebase as of 2026-06-02.

What's needed

A Hypatia ingestion module that:

  1. Parses AssailReport JSON from panic-attack assail <target> --output-format json.
  2. Indexes findings by (PA-code, file:line) for cross-referencing with other Hypatia signals (Github Actions runs, CodeQL alerts, Dependabot alerts, etc.).
  3. Routes by classification:
    • suppressed: trueHypatiaBucket.SuppressedByRule (existing kanren-driven)
    • suppressed: true AND test_context: 'test_only' | 'doc'HypatiaBucket.ContextSuppressed (new — surfaces in audit-trail mode, NOT in dashboard counts)
    • suppressed: false AND test_context: 'production' | nullHypatiaBucket.ActiveFinding
  4. Surfaces correlation hits: if a Hypatia rule flagged file:line independently of panic-attack, AND panic-attack also flagged it, raise a 'duplicate signal' marker for the operator.

Why not done in this cohort

Designing a Hypatia ingestion path is a separate scope from the panic-attack-side foundation. Hypatia is Elixir; the schema work + GenServer wire-up is non-trivial. Filing here so the v2.5.5 test_context work has a clear next consumer.

Acceptance

PR in hyperpolymath/hypatia repo that:

  • Adds Hypatia.Ingest.AssailReport module + tests against captured panic-attack JSON fixtures
  • Adds Hypatia.Rules.AssailRouter (or similar) implementing the 4-way routing
  • Documents the integration in Hypatia's wiki

Refs

Metadata

Metadata

Assignees

No one assigned

    Labels

    automationBots, schedulers, dispatch, self-healing, fan-outenhancementNew capability or improvement to existing behaviour

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions