Proof Portal

Project overview

Omarchy

ProbeLabsviewing a historical run

A proof layer — requirements, tests and verified fixes — for two of Omarchy's subsystems: the application menu (launcher scripts, QML model, JSONC config, search and selection) and the lock screen (lock scripts, QML, PAM authentication). Scope is deliberately limited to those components of omacom/omarchy; the rest of the distribution is not covered.

Viewing historical run e6a1a3eOct 2, 2026, 11:29 PMpr/9056Back to current
All requirements
RequirementSW-REQ-260922-B839SoftwareReview

With no prompt, or no options from arguments or stdin, a usage diagnostic prints to stderr and the script exits 1.

This requirement changed after its last recorded review, so approval is stale. Automated checks pass and 2/2 obligations are satisfied.
PriorityshallTypeguaranteeCategoryfunctionalComponentmenuAssuranceCFindingsnone open

Specification

The requirement exactly as authored — its complete prose text and, where present, the formal FRETish sentence it compiles to.

Description

With no prompt, or no options from arguments or stdin, a usage diagnostic prints to stderr and the script exits 1.

FRETish formula
when no_options_given the dmenu_protocol shall eventually satisfy usage_error_exit_one
View full formal model

Rationale & tags

Why this requirement exists, and how it is categorised.

bin/omarchy-menu-select lines 17-20 and 65-68.

Verification & provenance

How this requirement was checked: the review trail, edit history, and the machine-analysis status terms (each ⓘ explains what it means).

Assurance levelC
Formalizationvalid
Realizabilityrealizable
Vacuitychecked_ok
Strategyfretish

Review

Status
in_review
Reviewer
Kimi Zero Warnings · AI agent
Reviewed
Sep 27, 2026, 21:25 UTC

History

Created
Sep 22, 2026, 13:34 UTC · Kimi Dogfood · AI agent
Modified
Sep 27, 2026, 21:25 UTC · Kimi Zero Warnings · AI agent

Hazard review

Reviewed Oct 1, 2026, 21:26 UTCby agent:claude-baseline-passcatalog v1.11.0
  • scenarioreviewederror_handlingboundaryinput_domain

    Worst case: a script invoked with missing arguments proceeds silently and summons a menu nobody can answer, or worse exits 0 so the caller interprets no-answer as a legitimate empty input; the two unconditional usage+exit 1 gates (argv below the prompt floor, options map empty after parsing both argv and stdin paths) are the guard, and the diagnostic on stderr keeps stdout clean for pipelines. boundary: exactly-zero options versus one option is the tested floor; prompt-only invocation (options empty through the stdin mapfile path) is the second gate's edge. error_handling is the requirement's own declared class - usage failure is loud, exits 1, and never reaches the summon. Catalog 1.11.0 re-review: input_domain applied, inherited from SYS-REQ-260922-X6Z5; its partition is the empty stdin, witnessed on SW-REQ-260922-Q6ZS (usage and exit 1). concurrency_scale not applicable, one argument check per invocation.

  • propertyreviewedtotality

    Every argv/stdin shape resolves to one of two defined endings - usage diagnostic with exit 1 before any IPC, or a proceeded invocation with a prompt and at least one option - no shape reaches the summon half-configured.

  • structuralnot applicable

    Arg counting and an echo to stderr; no parsing of user content, no arithmetic beyond count checks, no encoding surface.

  • domainnot applicable

    Pre-IPC argument validation only; the usage path performs no summon, no file, and no network operation, so no domain class applies_when fires.

Change history

Every recorded revision of this requirement's source file — newest first, each with its commit message and the diff for that change.

Review history

Human and AI-agent approvals of this requirement — the 'why was this approved' lineage, each with the reviewer's justification and the code it cites.

  1. Kimi Zero Warnings · AI agentApprovedSpec conformanceSep 27, 2026 · 5 days agoREVIEW-44

    Read omarchy-menu-select. Both empty-option paths — no argv options and an empty stdin mapfile — fall through to the same unconditional usage-to-stderr plus exit 1. The no_options_given condition models both feeds; no other branch writes the usage diagnostic. Formula conforms to the code.

    Cited code (1)

Obligations

What this requirement must witness to be considered satisfied — the required evidence, and the tests that discharge each one.

1 obligation · 1 discharged

Browse the catalogue
Discharged

Behavior when operations fail or dependencies are unavailable.

Discharging evidence2/2 required witnessed
  • negativerequiredpresent
    Covered by 1 test
  • nominalrequiredpresent
    Covered by 1 test

Formula evidence

The formal formula behind this requirement, the variables it is written over, and the tests that exercise it (each term is explained inline).

FRETish formula

when no_options_given the dmenu_protocol shall eventually satisfy usage_error_exit_one

Witnesses· 2 scenarios total

  • menu-dmenu-test.sh:1
    exercises 2 condition scenarios

MC/DC truth table· 3 rows

Each row assigns the formula's conditions (T/F) and shows the Result— the formula's value for that input row, not a test pass/fail. A row proves a condition when flipping only that condition flips the outcome. The test that covers each row is linked.

Covereda test exercises this rowExempteda reviewed mcdc:ignoreNo-actionfalse-result row satisfied by designUncoveredneeds a covering test
#no_options_givenusage_error_exit_oneResultProvesCovering test
1FFTno_options_given
2TFFno_options_given—
3TTTusage_error_exit_one

Its place

How this requirement connects — what proves it, what it affects, and what it rests on. Authored links only here; automatically derived links come from the audit index.

Loading graph…

Trace evidence

The concrete artifacts linked to this requirement — implementing code, verifying tests, documents, and the findings raised against it.

No findings affect this requirement

Nothing was flagged against this requirement in the pinned run.

Impact

Blast radius — authored trace links only (automatically derived links come from the audit index and aren't shown here).

If you change this

Requirements
0
Files
1
Tests
1
At-risk contracts
0

Files to re-check (1)

  • omarchy-menu-selectbin/omarchy-menu-select

Tests to re-run (1)

  • menu-dmenu-test.shtest/shell.d/menu-dmenu-test.sh

What this rests on

Discussions

Discuss this with the proof team. Nothing changes in your audit automatically — you open a request and a staff member records any outcome inside the thread.

Sign in to discuss this with the proof team.Sign in