Skip to content

Recipe 19: CI failure classification #19

Closed

Description

@CompleteDotTech

Recipe 19 of 60 · Level 2 (Easy) · Software engineering · Choice

Use case

Classify recorded continuous-integration failures as test regressions, dependency problems, infrastructure failures, or unknown to select the next diagnostic workflow.

What to build

The folder recipes/19-ci-failure-classification/ with notebook.ipynb, README.md, and fixtures/, meeting the recipe contract. Start from python tools/new_recipe.py 19 and the template in recipes/_template/.

Build notes

  • Recorded, synthetic CI log excerpts. Outcomes: test_regression, dependency_problem, infrastructure_failure, unknown.
  • Python trims logs to the relevant excerpt before the request and picks the next diagnostic workflow from a table.
  • Include logs where a dependency error surfaces as a failing test.

Decision design

  • Choice. Options are a fixed set supplied by Python, including the fallback outcome this use case names. Show the choice, the per-option probabilities, and the confidence for individual examples before aggregating.

Level 2 scope

Context-sensitive matching, scoring, or verification with candidate sets and explicit uncertain or no-match outcomes.

Acceptance criteria

  • recipes/19-ci-failure-classification/notebook.ipynb runs top to bottom offline, with no key and no network, and its outputs are committed
  • Live mode is opt-in (JEV_COOKBOOK_LIVE=1 with TYPESAFE_API_KEY) and uses the same question definitions as the offline run
  • Fixtures are synthetic, include the hard cases named in the build notes, carry gold labels, and pass the fixture validator
  • Every response fixture records its provenance, and the notebook states which mode it ran in
  • Evaluation: Accuracy and a confusion matrix.
  • Candidate sets are assembled by Python and shown to the reader
  • The uncertain or no-match outcome is exercised by several fixtures and reported separately in the evaluation
  • No statement about Jev's quality, latency, or cost appears without recorded live inference; in a synthetic run, metrics are labelled as pipeline checks
  • recipes/19-ci-failure-classification/README.md says what the recipe teaches, how to run it, and what was and was not measured live
  • The pull request changes only recipes/19-ci-failure-classification/ and CI is green

Dependencies

Sources

Read these before writing the questions.

Out of scope

  • Changes to shared code, the catalog, or the root README. If the shared package is missing something, open a foundation issue and link it here.
  • Real side effects of any kind. Actions are simulated.

Metadata

Metadata

Assignees

No one assigned

    Labels

    cat: software engineeringCategory: Software engineeringdecision: choiceUses a Choice questionlevel: 2 easyCandidate sets and explicit uncertain or no-match outcomespriority: p1Next up once unblockedsize: MAbout a daystatus: blockedWaiting on the issues listed under Dependenciestype: recipeA cookbook notebook recipe

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions