Skip to content

Hypatia AssailReport ingestion path: design + implement #117

Open

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: true → HypatiaBucket.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' | null → HypatiaBucket.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

Activity

  1. added
    automationBots, schedulers, dispatch, self-healing, fan-out
    enhancementNew capability or improvement to existing behaviour
    on Aug 27, 2026
  2. hyperpolymath commented on Nov 4, 2026

    @hyperpolymath
    OwnerAuthor

    Fresh ingestion controls are available in hyperpolymath/proven-cicd-and-workflows#77 and malformed-evidence repairs in hyperpolymath/proven-tests-and-benches#103.

    Strict assail runs on cicd-suite, proven-tests-and-benches, Pons and panic itself all returned partial coverage / exit 2. Findings counts were 4, 3, 35 and 16 respectively, including deliberate fixtures and heuristics; they are not confirmed defect counts. A consumer must retain coverage and execution outcome rather than reducing these to a findings array.

    The shared gate now invokes assail --fail-on-incomplete, records refusal distinctly, and runs both tools with a bounded deadline. Assail findings remain report-only here: the gate has not invented a severity-blocking policy. The 49-pair exit matrix includes 0/1/2/124/127/137/139 for each scanner.

    Please use these cases for the Hypatia adapter: malformed envelope, valid findings with partial coverage, missing binary, timeout, signal exit, replayed report, and same heuristic lineage across tools. The audit's machine receipts and limitations are in the suite PR; this comment does not assert the adapter is already implemented.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    automationBots, schedulers, dispatch, self-healing, fan-outenhancementNew capability or improvement to existing behaviourpriority:p2Normal - queue itscope:repoConfined to this repositorystatus:readyFully specified and ready to be picked up

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions