Skip to content

Failure Recovery

Failure recovery starts with knowing which artifacts, interfaces, and tests expose the problem.

This page should help a maintainer stabilize the situation before they try to improve it. The first question is not always how to fix the bug; it is how to locate the right evidence quickly.

Treat the operations pages for bijux-canon-index as the package's explicit operating memory. They should make common tasks repeatable without relearning the workflow from logs or oral history.

Visual Summary

flowchart LR
    page["Failure Recovery<br/>clarifies: repeat workflows | find diagnostics | release safely"]
    classDef page fill:#dbeafe,stroke:#1d4ed8,color:#1e3a8a,stroke-width:2px;
    classDef positive fill:#dcfce7,stroke:#16a34a,color:#14532d;
    classDef caution fill:#fee2e2,stroke:#dc2626,color:#7f1d1d;
    classDef anchor fill:#ede9fe,stroke:#7c3aed,color:#4c1d95;
    classDef action fill:#fef3c7,stroke:#d97706,color:#7c2d12;
    step1["CLI modules under src/bijux_canon_index/interfaces/cli"]
    step1 --> page
    step2["HTTP app under src/bijux_canon_index/api"]
    step2 --> page
    step3["packages/bijux-canon-index/pyproject.toml"]
    step3 --> page
    run1["tests/unit for API, application, contracts, domain, infra, and tooling"]
    page --> run1
    run2["tests/e2e for CLI workflows, API smoke, determinism gates, and provenance gates"]
    page --> run2
    run3["tests/conformance and tests/compat_v01 for compatibility behavior"]
    page --> run3
    release1["pyproject.toml"]
    run1 --> release1
    release2["README.md"]
    run2 --> release2
    release3["CHANGELOG.md"]
    run3 --> release3
    class page page;
    class step1,step2,step3 positive;
    class run1,run2,run3 anchor;
    class release1,release2,release3 action;

Recovery Anchors

  • interface surfaces: CLI modules under src/bijux_canon_index/interfaces/cli, HTTP app under src/bijux_canon_index/api, OpenAPI schema files under apis/bijux-canon-index/v1
  • artifacts to inspect: vector execution result collections, provenance and replay comparison reports, backend-specific metadata and audit output
  • tests to run: tests/unit for API, application, contracts, domain, infra, and tooling, tests/e2e for CLI workflows, API smoke, determinism gates, and provenance gates

Concrete Anchors

  • packages/bijux-canon-index/pyproject.toml for package metadata
  • packages/bijux-canon-index/README.md for local package framing
  • packages/bijux-canon-index/tests for executable operational backstops

Use This Page When

  • you are installing, running, diagnosing, or releasing the package
  • you need repeatable operational anchors rather than architectural framing
  • you are responding to package behavior in local work, CI, or incident pressure

Decision Rule

Use Failure Recovery to decide whether a maintainer can repeat the package workflow from checked-in assets instead of memory. If a step works only because someone already knows the trick, the workflow is not documented clearly enough yet.

What This Page Answers

  • how bijux-canon-index is installed, run, diagnosed, and released in practice
  • which checked-in files and tests anchor the operational story
  • where a maintainer should look first when the package behaves differently

Reviewer Lens

  • verify that setup, workflow, and release statements still match package metadata and current commands
  • check that operational guidance still points at real diagnostics and validation paths
  • confirm that maintainer advice still works under current local and CI expectations

Honesty Boundary

This page explains how bijux-canon-index is expected to be operated, but it does not replace package metadata, actual runtime behavior, or validation in a real environment. A workflow is only trustworthy if a maintainer can still repeat it from the checked-in assets named here.

Next Checks

  • move to interfaces when the operational path depends on a specific surface contract
  • move to quality when the question becomes whether the workflow is sufficiently proven
  • move back to architecture when operational complexity suggests a structural problem

Purpose

This page gives maintainers a durable frame for triaging package failures.

Stability

Keep it aligned with the package entrypoints and diagnostic outputs.