← The board

C1 Diagnostics

Area
C — Trust & correctness
Audience
operator
Kind
feature
Status
accepted
Maturity
built
Labels
verification
Relates to
C2C3C5C7C8C9G4G7

The feature in the specification · Read at

Requirements

  1. C1-R1acceptedMUST

    Every check MUST establish its finding empirically, not infer it from configuration.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@ee934aee0dlemonfiber@6b56f17f0b
  2. C1-R2acceptedMUST

    Every non-passing result MUST carry a remedy stating what to do.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@7229d1adac
  3. C1-R3acceptedMUST

    unverified MUST be distinct from pass, and a check that could not run MUST NOT report as passing.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@90bc931905lemonfiber@4ccc9f6bf1
  4. C1-R4acceptedMUST

    Checks MUST be independent; one failing MUST NOT prevent others running.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@4ccc9f6bf1
  5. C1-R5acceptedMUST

    Checks that disturb the running system MUST be opt-in and MUST state what they disturb and for how long.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/narrowing.rscrates/lemonfiber-core/src/app/engine/diagnosis.rs
    cited by
    lemonfiber@90bc931905lemonfiber@77a76fd4f2lemonfiber@4ccc9f6bf1
  6. C1-R6acceptedMUST

    The suite, a category, or a single check MUST be individually runnable.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/narrowing.rscrates/lemonfiber-core/src/app/engine/diagnosis.rs
    cited by
    lemonfiber@77a76fd4f2lemonfiber@4ccc9f6bf1
  7. C1-R7acceptedMUST

    Every check MUST have a bounded timeout and MUST report unverified on expiry.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@4ccc9f6bf1
  8. C1-R8acceptedMUST

    An error inside a check MUST be reported as a check error, never as a finding about the stack.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@4ccc9f6bf1
  9. C1-R9acceptedMUST

    Diagnostics MUST emit machine-readable output alongside human-readable output.

    locked by
    0.1.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@4ccc9f6bf1
  10. C1-R10acceptedMUST

    Findings sharing a root cause MUST indicate that relationship.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@c69db7090blemonfiber@3fbfe07fe3
  11. C1-R11acceptedMUST

    Checks whose prerequisites are absent MUST report skipped with a reason, not fail.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@90bc931905lemonfiber@7229d1adac
  12. C1-R12acceptedSHOULD

    A full non-disruptive run SHOULD complete within 30 seconds.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rs
    cited by
    lemonfiber@b80b5548a7
  13. C1-R13acceptedMUST

    Setup MUST use the same checks as diagnostics, not a parallel implementation.

    locked by
    0.2.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/environment.rscrates/lemonfiber/src/setup.rscrates/lemonfiber/src/setup/boot.rscrates/lemonfiber-core/src/wizard.rscrates/lemonfiber-core/src/journal.rscrates/lemonfiber-core/src/app/apply.rs
    cited by
    lemonfiber@122972daeblemonfiber@01ce82d8f3lemonfiber@7229d1adac
  14. C1-R14acceptedMUST

    Filesystem check timeouts MUST accommodate network and external storage.

    locked by
    0.8.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor.rscrates/lemonfiber-core/src/doctor/headroom.rscrates/lemonfiber-core/src/doctor/storage.rs
    cited by
    lemonfiber@07b2d3a474
  15. C1-R15acceptedMUST

    A proof an installed plugin declares MUST run as a check like any other, a run proof on the cadence ARCH-R287 sets, — under a bounded timeout, reporting the same verdicts — MUST be attributed to the plugin, and an error inside it MUST be reported as that plugin's check error rather than as a finding about the stack.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/proved.rscrates/lemonfiber-core/src/doctor/requested.rscrates/lemonfiber-core/src/doctor/asking.rscrates/lemonfiber-core/src/doctor/contributed.rscrates/lemonfiber-core/src/app/engine/diagnosis.rscrates/lemonfiber-core/src/plugin/installed/proved.rscrates/lemonfiber-core/src/doctor/requested/tests.rs::a_request_proof_that_holds_passes_as_the_plugins_checkcrates/lemonfiber-core/src/doctor/requested/tests.rs::a_request_proof_that_does_not_hold_fails_naming_the_plugin_and_each_faultcrates/lemonfiber-core/src/doctor/requested/tests.rs::a_service_nobody_can_reach_leaves_the_proof_unverified_and_the_pluginscrates/lemonfiber-core/src/doctor/proved/tests.rs::a_run_proofs_check_is_the_plugins_and_bounded_by_its_own_limit
    recorded partial
    lemonfiber-companionapp-modules/kernel/src/Api/Finding.phpapp-modules/sdk/src/Api/Reports.phpapp-modules/sdk/tests/Api/ReportsTest.phptests/Feature/SeeingWhoPutACheckThereTest.php
    cited by
    lemonfiber@cc1b83cf00lemonfiber-web@77c956d903lemonfiber-companion@f610d53258
  16. C1-R16acceptedMUST

    A finding about a service MUST carry, beside the service's identifier, the name the stack gives that service in front of an operator, and the title lemonfiber writes for a finding MUST name a service by that name, never by its identifier.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/examining.rscrates/lemonfiber-core/src/doctor/vpn/pair.rscrates/lemonfiber-core/src/bundle/run.rs
    cited by
    lemonfiber@c1ccda0afcsdk-ts@9e6088edeelemonfiber-companion@408939a224lemonfiber-companion@ca4d83973alemonfiber-companion@2089952d94
  17. C1-R17acceptedMUST

    A check reported wrong MUST carry its onset, the time the stack first saw it wrong since it last saw it right; the onset MUST survive a restart of lemonfiber and MUST be the same on every surface that reports the check, and a check that comes right and goes wrong again MUST carry the later time.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/app/conditions.rs
    cited by
    lemonfiber@493287299clemonfiber-web@0b9b5932d0
  18. C1-R18acceptedMUST

    The doctor MUST ask the filler of media.serve, over that capability's contract alone, how many seasons and episodes each series holds, and MUST report each series holding episodes and no seasons as a warning of its own that names the series; where nothing fills media.serve it MUST report skipped, where the filler cannot be asked it MUST report unverified, and nothing a member is shown MUST name the finding.

    locked by
    0.18.0 met
    recorded done
    lemonfibercrates/lemonfiber-core/src/doctor/seasons.rscrates/lemonfiber-core/src/app/engine/diagnosis/deferring.rscrates/lemonfiber-contract/src/capabilities/media.rs
    cited by
    lemonfiber@589089b80flemonfiber@7bfd5a6505