Proof Portal

Project overview

Omarchy

ProbeLabs65 findings · 95 requirements

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.

Changes
Pull request on omacom/omarchyPR#11851open7/8 · AI reviewedquattro03cbacb87d02AI: in scope · 100%

Dispatch Lua function keybindings from the menu

by vdvoorder · updated 5 days ago

Pipeline
  1. Detected
  2. Mirrored
  3. Baseline ready
  4. Audited
  5. Covered
  6. Evidence published
  7. AI reviewed
  8. Awaiting assessment

Next: Awaiting assessment. Derived by the engine for upstream head 03cbacb87d02 · refreshed at sync 2026-10-14 01:52 UTC.

Evaluated against proof baseline 1e43373 · baseline since moved to 18528a6 (quattro unchanged at 035ce29)The proof baseline moved since this evaluation (7 commits, proof records only); the evidence still applies.
← Review-by-exception view
Medium riskNot assessed — next: human judgement
  1. AcceptingDispatch Lua function keybindings from the menu. The spec change codifies it: 1 requirement (1 added).
  2. Affects2 files · 3 requirements in 1 area (1 changed in the spec, 2 via the changed files) · mapping is file-level, so this is an upper bound · 1 changed file is outside the verification scope.
  3. Works?Shown: all 3 behavioral claims observed passing; coverage of 1 changed file was not measured.
  4. Unresolved3 behaviors need a test · 2 missing evidence · 7 spec questions.
  5. DecisionReviewer: human judgement — evaluated at 90cbb43 (head 03cbacb, base 1e43373).
Evidence current

What am I accepting?

Intended change

“Dispatch Lua function keybindings from the menu”Declared by the change request

The author's description (excerpt)
`Super + K` lists Lua function bindings, but selecting one did nothing. For example, a user who zooms in, searches for `Reset zoom`, and presses Enter gets no reset or message; the script exits 1. Five of the 232 default bindings on Omarchy 4.0.2 are affected: `Zoom in`, `Reset zoom`, and the three universal clipboard actions. User-defined function binds have the same failure.

Approved intent (spec changes)

Behavior that must be preserved

2 requirements are in reach (1 whose traced function changed, 1 whose traced file changed); none is intended to change — each must keep holding. Listed by area under What could it affect? ↓

What could it affect?

3 requirements · 1 area

Changed code

  • Modifiedlua_bind_identity()addeddynamic_bindings()modifiedfile-level trace onlykeybindings_cache_key()modifiedfile-level trace onlymark_lua_state()addedunmark_lua_state()addedcurrent_lua_function_ref()addedcall_lua_function_if_marked()addeddispatch_lua_function_binding()addeddispatch_binding()modified
  • Modifiedhyprctl()modifieduntraced
  • Modifiedlua_function_bind()addedno requirementuse_pick_file_picker()addedno requirementrun_keybindings()modifiedfile-level trace onlystub_hyprctl_dispatch()addedno requirementcalled()addedno requirementcalled_nothing()addedno requirementleft_no_mark()addedno requirementpick_from_menu()addedno requirement
1 changed file is outside the verification scope (e.g. reproducers) — listed for transparency.

Areas (components)

2 requirements in 1 component (3 changed); around them: 1 parent requirement, 8 open findings, 1 test, 1 code file (1 not found in the requirement graph).

Open in Map

Not in the current requirement graph (as of 18528a61), so not drawn: SW-REQ-261005-4MKB — possibly new in this PR.

Customer promises reached3

1 requirement changed by the spec itself — listed under What am I accepting? ↑

Code changed (file-level — an upper bound) 1

Important boundaries

No interface contract is recorded as crossed by this change.

Uncertainty in this analysis

one coherent change · code is mapped to requirements by whole file, so “reached” is an upper bound

8 analysis limits · how this was computed

Engine note (spec clusters): All 3 touched requirement(s) are related in the intent graph (satisfies/parent, sibling or shared component).

Scope method: changed units from review.diff (function-granular where a parser exists, else file-granular) traced against the requirements' implemented_by/verified_by targets and local annotations; touched requirements clustered in the intent graph (satisfies/parent incl. siblings under a parent with <= 20 children, shared component, interface contracts); uncodified connections from call-level impact paths (review.changes impactPath); removed-code traces from trace targets and removed diff lines

  • Function-level mapping comes from trace targets path:symbol / line ranges (authored + derived) and function-local annotations; a whole-file trace is file-level (weak) and says nothing about which function a requirement needs.
  • Intent relations: requirement level = satisfies/parent or siblings under a parent with <= 20 children; component level = shared component (incl. traces.components); contract level = an interface requirement naming both components. A missing spec edge can make a real dependency look uncodified, and a broad contract can make an uncodified dependency look related — every candidate is a question for a reviewer, not a verdict on the code or the spec.
  • Removed-code traces: targets naming a removed/renamed/moved function or a deleted file, and requirement ids cited on removed diff lines that the evaluated file no longer cites. remainingTraces counts the requirement's other code targets at the evaluated revision without re-checking that each still resolves.
  • Renamed/moved detection is best effort: a removed and an added function with the same name in different files are "moved"; a different name with >= 80% identical normalized body lines (>= 3 lines) is "renamed"; anything else is removed + added.
  • Scope clusters are seeded only by directly touched requirements (spec changes and code_changed); behavior_affected requirements are what the change reaches and are judged by the uncodified-connection rule instead.
  • Uncodified connections need call-level impact (review.effects — C/C++ only today): this package has none, so NO uncodified connection could be detected. Absence of such candidates proves nothing here.
  • Units are function-granular only where a parser extracts function boundaries (tree-sitter languages, plus C/C++ function-like macros); other changed files are one file-granular unit, and hunks outside any function are attributed to the file only when no function of that file changed.
  • When a changed function is traced only at FILE level, every requirement of its file is a from-side seed: a relation through any of them counts as codified, so a coarse trace can MASK an uncodified connection (and inflate scope clusters — see coarse_trace).

Why should I believe it works?

observed results only — AI opinion never counts as evidence

Behavioral claims → observed results

All 3 claims observed passing.

The 3 claims, as a table
RequirementClaimObservedTestsDisclosures
SW-REQ-260922-0W96Still holdsObserved passing2✓ 0✗ 0∅ 0?
SW-REQ-260922-9DMSStill holdsObserved passing2✓ 0✗ 0∅ 0?
SW-REQ-261005-4MKBnew in this changeChanged as intendedObserved passing2✓ 0✗ 0∅ 0?

Changed-code coverage

0 of 0 changed decision lines reached by tests the untested spots and the tests that would cover them ↓

Not measured for bin/omarchy-menu-keybindings.

What remains unresolved?

15 open disclosures — each listed once, introduced first

Introduced failures0

None — every blocking finding also failed at the base.

Missing evidence5

  • highUnresolved finding · introduced by this changedrives the next decision

    MC/DC evidence changed at test/shell.d/keybindings-menu-test.sh: MC/DC witness test keybindings-menu-test.sh:1 of SW-REQ-260922-0W96 no longer witnesses it at the head (base "witness test/shell.d/keybindings-menu-test.sh:1:keybindings-"… → head ""); not approved as a compatibility change.

    compat:cf-4c5e34efd4c84e91
  • highUnresolved finding · introduced by this changedrives the next decision

    MC/DC evidence changed at test/shell.d/keybindings-menu-test.sh: MC/DC witness test keybindings-menu-test.sh:1 of SW-REQ-260922-9DMS no longer witnesses it at the head (base "witness test/shell.d/keybindings-menu-test.sh:1:keybindings-"… → head ""); not approved as a compatibility change.

    compat:cf-8507c81c0f32c95a

3 behaviors need a test

  • Unverified hazard — needs a testQuestion: does a pick run the function under a live Hyprland 0.56.2?

    Test that would settle it: Live Hyprland 0.56.2: pick Reset zoom and Zoom in from Super+K

    How to write it

    Settles whether hl.dispatch(registry[ref]) runs the function in a real compositor and leaves no mark, including a hyprctl reload between two picks. All package tests stub hyprctl.

  • Unverified hazard — needs a testQuestion: should a user rebind that keeps the shipped chord and description run the user's action?

    Test that would settle it: Rebind keeping the shipped chord and description runs the user's action

    How to write it

    Pick File manager after o.rebind("SUPER + SHIFT + F", "File manager", { launch = "flea" }) and assert flea is launched. Fails on this head (the cached shipped expression wins). Passes with #7564 also applied.

  • Unverified hazard — needs a testQuestion: are binds the source replay never reaches dispatched through their ref, and should a test pin it?

    Test that would settle it: A bind declared after a config error is called through its ref

    How to write it

    Append error("a personal module that fails to load") and o.bind("SUPER + ALT + P", "Personal bind", "true") to the user's bindings.lua, report it as __lua with ref 300, pick it, and assert ref 300 was called. Uses the PR's stub_hyprctl_dispatch, lua_function_bind, pick_from_menu and called helpers. Our run: passes on this head (34/34) and fails with quattro's script.

Spec questions and disagreements7— the engine raises · an AI may argue · a human decides

test/shell.d/keybindings-menu-test.sh traces at file level toSW-REQ-260922-0W96SW-REQ-260922-9DMSSW-REQ-261005-4MKBnew in this change

Every question here is one the AI argues is incidental.

7 questions the AI argues are incidental (noise) — still open for a human
  • LowNew called() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:called has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew called_nothing() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:called_nothing has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew left_no_mark() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:left_no_mark has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew lua_function_bind() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:lua_function_bind has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew pick_from_menu() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:pick_from_menu has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew stub_hyprctl_dispatch() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:stub_hyprctl_dispatch has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

  • LowNew use_pick_file_picker() in test/shell.d/keybindings-menu-test.sh has no function-level requirement

    open
    What the engine saw · what a reviewer could do

    New function test/shell.d/keybindings-menu-test.sh:use_pick_file_picker has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

    Suggestion: Give the new behaviour an intent: trace it to the requirement it realizes (Implements: <REQ> on the function), or add a requirement for it. If it is pure plumbing with no behaviour of its own, reject as noise.

Limitations

Exceptions and weakened protections

None — the PR leaves the approved policy unchanged; no suppression or waiver is recorded.

No pre-existing failure — nothing failed at the base too.

What decision is mine?

Evaluated revision

Evaluated
90cbb43b5ff9Synthetic merge
PR head
03cbacb87d02current
Base
1e43373287afquattro-proofcurrent
Policy
sha256:19ad4c0c6f…current

Compared against base audit run-f5b0e01eb640 at 1e43373287af — failed checks are split into pre-existing vs introduced.

Current: head, base and approved policy are unchanged.

Producer not verified (evidence is informational, not assurance). Provenance

Acceptance: none recorded in this evidence. Readiness is not acceptance, and the merge state is GitHub's.

Audit trail

the verbatim record — every disclosure, the AI review, risk rules, call routes, tests, audit checks, provenance, history
Every disclosure, by consequence0 block · 2 prevent ready · 7 need judgement · 6 for information

0 block · 2 prevent ready · 7 need judgement · 6 for information

Prevents a ready verdict2
  • highUnresolved finding · introduced by this changedrives the next decision

    MC/DC evidence changed at test/shell.d/keybindings-menu-test.sh: MC/DC witness test keybindings-menu-test.sh:1 of SW-REQ-260922-0W96 no longer witnesses it at the head (base "witness test/shell.d/keybindings-menu-test.sh:1:keybindings-"… → head ""); not approved as a compatibility change.

    compat:cf-4c5e34efd4c84e91
  • highUnresolved finding · introduced by this changedrives the next decision

    MC/DC evidence changed at test/shell.d/keybindings-menu-test.sh: MC/DC witness test keybindings-menu-test.sh:1 of SW-REQ-260922-9DMS no longer witnesses it at the head (base "witness test/shell.d/keybindings-menu-test.sh:1:keybindings-"… → head ""); not approved as a compatibility change.

    compat:cf-8507c81c0f32c95a
Needs a human judgement7
  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · called() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · called_nothing() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · left_no_mark() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · lua_function_bind() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · pick_from_menu() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · stub_hyprctl_dispatch() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

  • lowUnresolved finding

    Spec-gap candidate (unmapped_code): New function test/shell.d/keybindings-menu-test.sh · use_pick_file_picker() has no function-level trace; only its file is traced (to 3 requirement(s): SW-REQ-260922-0W96, SW-REQ-260922-9DMS, SW-REQ-261005-4MKB), which does not establish what this code is for.

For information6

Routine evidence:178 checks passed · 27 advisory · 1 not applicable · 2 verifying tests passed · 3 claims observed passing

AI review — supporting commentary11 ✓ · 3 need test · 0 refuted · cannot change readiness or the next decision
AI review · claude-code/claude-opus-5.5assessed Medium risk6 days agoderived from the evidence — not a verdict

What the PR does. Upstream #11851 (vdvoorder) makes Super + K run Lua function binds. Before, picking one exited 1 and ran nothing. Hyprland reports them as __lua with a registry ref. When the source replay has no expression for such a bind, the row now stores the bind's identity: mask, submap, key, keycode and description, base64-encoded (dynamic_bindings, line 322). On a pick, the script writes a mark in the Lua registry and re-reads hyprctl binds. If exactly one bind matches and its ref is numeric, it calls registry[ref], but only while the mark is still there. The picked row is now matched through ENVIRON, not awk -v. The cache key moves from v14 to v19. On the mirror that is commit e03ad1ea. Every later commit is our proof work: a reproducer fixture fix, KI status, SW-REQ-261005-4MKB, 3 test scenarios, 2 test-harness fixes, obligation tags, mcdc:ignore lines and trace reviews.

Risk rationale: A targeted fix. Its tests drive the new dispatch path through a stubbed hyprctl that runs the Lua, and they cover refusal on reload, ambiguity and bad refs. But changed-line coverage of the script was not measured, nothing ran against a live compositor, and the configured differential does not reach this script. Two compat findings (witness renames from an engine parsing artefact) prevent readiness until a reviewer decides. Rebinds that keep the shipped chord and description still run the shipped action without #7564. Advisory only.

Read the full review (5 more paragraphs)

Is the fix verified? Changed-line coverage was not measured for bin/omarchy-menu-keybindings (coverage_unmeasured), so the package has no coverage fact for it. Test report: 68 passed, 0 failed, current. The error_handling cells of 4MKB and 9DMS are observed_pass; joined via tags on the one file-level test. My stubbed run of the dispatch path calls ref 264 for one matching bind. It calls nothing for two matches, a non-numeric ref, a reload between lookup and call, or another submap.

Compatibility. compat reports 2 mcdc_diff findings: cf-4c5e34efd4c84e91 (0W96) and cf-8507c81c0f32c95a (9DMS). Both prevent readiness; only a reviewer can approve them. Each is the same witness renamed. A Lua type(action) line in the PR's test heredoc is read as a function name, so the witness keybindings-menu-test.sh:1 became type. Same file, line 1, scenarios 1-3, meets policy. An engine parsing artefact. The differential's 0 differences come from a harness that runs only Menu.qml/MenuModel.js. Readiness: not_assessed. Next decision: human_judgement (compat_changes_unapproved), by a reviewer. Nothing here is an approval.

Questions for a human. (1) Does it run under a live Hyprland? All tests are stubbed. (2) A rebind that keeps the shipped chord and description still runs the shipped action; #7564 fixes that half. (3) Should a test pin binds the replay never reaches?

Traceability. 4MKB and 0W96 match at function level, 9DMS only at file level. Change effects were not analyzed.

Not caused by this PR. No check failed; 13 were skipped by configuration.

AI-generated review opinion derived from the evidence package. It is not a verdict, does not change readiness, and must be confirmed by a human reviewer.

21 context notes (info — not a finding)
  • AI · confirmedThe PR's dispatch rule is codified as SW-REQ-261005-4MKB, added by our proof work

    4MKB: a picked row for a Lua function bind calls the function through the registry ref Hyprland reports, only when one reported bind, and no other, matches the row and Hyprland did not reload its Lua state after the lookup. It is new on the mirror (commit 19d55809, proof work, not upstream). Its 7 function-level matches are the functions the PR adds plus dispatch_binding. It satisfies SYS-REQ-260922-6642. The requirement is in review status, not approved.

  • AI · confirmeddispatch_binding gains a __lua arm (SW-REQ-260922-0W96)

    Line 735: __lua) [[ -n $arg ]] && dispatch_lua_function_binding "$arg". Before this change a __lua row with no cached expression reached the "") return 1 arm with an empty dispatcher. 0W96 says Lua binds "remain dispatchable", and before this change function binds were not. The PR closes that gap for binds whose ref Hyprland reports.

  • AI · confirmedSW-REQ-260922-9DMS (code:N key display) matches only through its file-level trace

    9DMS is code_changed because bin/omarchy-menu-keybindings and the test file changed. In dynamic_bindings, the PR keeps the code:$keycode derivation and stores the raw key separately (raw_key, line 301) for the identity. My reading: the displayed key for code:N binds goes through the same lines as at base. Its trace was re-reviewed on the mirror (proof work).

  • AI opinion — unverifiedOpinion (my own run): the dispatch path calls exactly the one matching bind and leaves no mark

    On the evaluated tree I extracted the PR's functions the way its test does and drove them with its stub_hyprctl_dispatch (macOS, luajit as lua). Results: one matching bind with ref 264 gives exit 0 and calls 264. Two binds with the same identity, a non-numeric ref, a reload between lookup and call, and the same chord and description in another submap each give exit 1, call nothing, and leave no mark. The picked-row awk: two identical exec rows dispatch the first, as before. An exec row and a __lua row that read the same give no record. A label containing \t matches through ENVIRON but not through the base's awk -v. In our Linux runs, keybindings-menu-test.sh passed 33/33 on the PR head and on its merge onto quattro 035ce29f, and 16/16 on quattro. These results are outside the package.

  • AI opinion — unverifiedOpinion (engine bounds): why a Lua line names a bash test's witness

    I reproduced the engine's witness-name scan on both versions of the test file. A bash function name() { matches none of its patterns. At base nothing matches, so the witness falls back to <file>:<line>. At the head, the first match is the generic "typed declaration" pattern (<type> <name>(), which reads if type( at line 333 as a declaration named type. The keyword filter checks only the captured name, not if. Both compat findings follow from this. The fix belongs in the engine (skip heredoc bodies in shell files, or use the shell function pattern), not in this PR. This is my reading of the engine, not a package fact.

  • AI opinion — unverifiedtest_diff: upstream adds tests only; our proof work moved the picker stub into a function

    test_diff reports that no existing test file was modified or deleted. Upstream e03ad1ea adds 323 lines to keybindings-menu-test.sh and removes none. On the mirror our proof work changed existing test code: the omarchy-menu-select stub moved into use_pick_file_picker(), which run_keybindings re-installs on every run (pick_from_menu overwrites it). It also extended the Verifies header to 4MKB. No existing assertion changed.

  • AI opinion — unverifiedRemoved behaviour 1: awk -v selection= read a backslash in a label as an escape

    At base the picked row was found with awk -v selection="$selection" '$1 == selection'. awk -v processes escape sequences, so a label containing \ matched no row, for every bind kind. At the head the selection is matched through ENVIRON (line 758), which is literal. The PR states the intent: "The picked row is now matched through the environment instead of awk -v, which reads a backslash in a description as an escape and then matches no row." The test at line 598 pins it. review.behaviorDiff.inventory is empty, so this is my inventory, not the engine's.

  • AI opinion — unverifiedRemoved behaviour 2: identical rows dispatched the first; now refused when one is a function bind

    At base, two rows with the same text dispatched the first ({ print; exit }). At the head (line 762) a single match is dispatched. Two or more matches are dispatched (first row) only when none of them is __lua; otherwise nothing is printed and the script exits 1 with no message. The PR states this: "When two rows read the same and one of them is a function bind, the pick is refused". Tests at lines 625 and 637 pin it. Our stubbed run of the shipped config found no two rows that read the same.

  • AI opinion — unverifiedSW-REQ-261005-4MKB MC/DC: 4 of 6 rows witnessed by the PR's tests, 2 marked defensive

    From the audit run (mcdc_coverage passed): keybindings-menu-test.sh witnesses 4MKB rows 1, 3, 4 and 5 (meets_policy true). Our proof work added the # MCDC markers (lines 393, 418, 456, 578) and the 3 new scenarios: undecodable identity, refused mark, and menu closed without a pick. The two remaining rows are mcdc:ignore:defensive (test lines 5-6, REVIEW-261005-THHB): a called function with the mark gone, and no call with one match and the mark present. Each needs the guard or the hand-off removed. These are requirement-level witnesses, not changed-line coverage.

  • AI opinion — unverifiedObligation cells: 4MKB and 9DMS error_handling observed_pass at file granularity; 9DMS timeout not_linked

    testResults is ingested and current (68 passed, 0 failed); 1 tagged test, joined. Our proof work (97e2bbf3) added obligation tags to keybindings-menu-test.sh: 9DMS error_handling nominal (line 181) and negative (line 202), and 4MKB error_handling nominal (line 394) and negative (lines 534, 566). The junit report records the whole file as one test, so each of those cells rests on that file's single pass (tests: 1), not on the individual scenarios. 9DMS external_call_timeout_bounded is not_linked: no test is tagged with that class, so it is not shown as tested. 0W96 error_handling is suppressed by a recorded suppression in the base data. The earlier test_results_not_joined disclosure is gone at this package.

  • AI · confirmedTest helper called() has no function-level trace: test plumbing (noise)

    called() asserts which registry ref the stub recorded as called. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper called_nothing() has no function-level trace: test plumbing (noise)

    called_nothing() asserts the stub recorded no call. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper left_no_mark() has no function-level trace: test plumbing (noise)

    left_no_mark() asserts no mark is left in the stub's Lua state. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper lua_function_bind() has no function-level trace: test plumbing (noise)

    lua_function_bind() prints one hyprctl binds record in the 0.56.2 function-bind shape. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper pick_from_menu() has no function-level trace: test plumbing (noise)

    pick_from_menu() installs a picker that returns one row and runs the real script. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper stub_hyprctl_dispatch() has no function-level trace: test plumbing (noise)

    stub_hyprctl_dispatch() installs a hyprctl stub that runs the dispatched Lua and records calls and marks. It is added by the upstream PR. It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedTest helper use_pick_file_picker() has no function-level trace: test plumbing (noise)

    use_pick_file_picker() re-installs the file-driven picker stub before each run. It is added by our proof work (it wraps the existing picker stub). It has no behaviour of its own beyond the scenarios that call it, and the file's # Verifies: header already ties those scenarios to 0W96, 9DMS and 4MKB. No requirement is missing. A function-level trace would add nothing.

  • AI · confirmedThe reproducer change is our proof work, outside the verification scope

    pocs/crs-260930-jvx8-c02.sh is the reproducer of KI-MENU-KEYBINDINGS-FUNC-BIND-NO-DISPATCH, not part of the upstream PR. Commit dc773390 makes its stub print arg: 264 for the Select all bind, the shape Hyprland 0.56.2 prints. With the old empty arg: a fix that dispatches through the ref still read as broken. Its hyprctl() stub is untraced and the file is out of scope (changed_files_out_of_scope). It realizes the KI's check on 0W96, so no product requirement is missing.

  • AI opinion — unverifiedKI-MENU-KEYBINDINGS-FUNC-BIND-NO-DISPATCH is marked fixed on the mirror (proof work)

    80236345 sets the KI's status to fixed by omacom/omarchy#11851. 49ebebcf re-captures its evidence as not reproduced. In our Linux runs the fixed reproducer exits 0 (defect present) on quattro-proof 1e433732 and exits 1 (fixed) on the PR head and its merge.

  • AI opinion — unverifiedOpinion (reading): six shipped binds are affected at this base, not five

    The PR text lists Zoom in, Reset zoom and the three universal clipboard actions. The base also ships Select all (default/hypr/bindings/clipboard.lua:45, send_shortcut_once("CTRL", "A")), a Lua function bind next to them. The fix is generic, so it covers that bind too; the reproducer uses it.

  • AI opinion — unverifiedChange effects were not analyzed (effects_unavailable): no call-level facts

    review.effects is absent for this bash change, so no new_call_path, effect_gain or new_mutable_state claim can be checked, and the scope analysis could not detect uncodified connections. From reading: the new callees are dispatch_lua_expression (existing; runs hyprctl dispatch) and hyprctl binds, base64 and awk. The only product caller of dispatch_binding is the script's own main block (line 767). These facts come from reading, not from the engine.

Supporting commentary only — it cannot change readiness or remove a disclosure. Open hazards it raised (engine: needs a test) are listed under What remains unresolved; everything else it said is here — commentary, never evidence of working. Its code-vs-spec arguments appear as “AI argues: …” on each spec question.

All 30findings, with the engine's verification
  • Infoengine-confirmedThe PR's dispatch rule is codified as SW-REQ-261005-4MKB, added by our proof work
  • Infoengine-confirmeddispatch_binding gains a __lua arm (SW-REQ-260922-0W96)
  • Infoengine-confirmedSW-REQ-260922-9DMS (code:N key display) matches only through its file-level trace
  • Mediumcommentary (no claim)Changed-line coverage of bin/omarchy-menu-keybindings was not measured→ where it's shown
  • Infocommentary (no claim)Opinion (my own run): the dispatch path calls exactly the one matching bind and leaves no mark
  • Mediumcommentary (no claim)My reading of compat cf-4c5e34efd4c84e91 (SW-REQ-260922-0W96): the same MC/DC witness under a new name
  • Mediumcommentary (no claim)My reading of compat cf-8507c81c0f32c95a (SW-REQ-260922-9DMS): the same rename, same cause
  • Infocommentary (no claim)Opinion (engine bounds): why a Lua line names a bash test's witness
  • Mediumcommentary (no claim)Opinion: the differential's 0 differences say nothing about this script→ where it's shown
  • Infocommentary (no claim)test_diff: upstream adds tests only; our proof work moved the picker stub into a function
  • Infocommentary (no claim)Removed behaviour 1: awk -v selection= read a backslash in a label as an escape
  • Infocommentary (no claim)Removed behaviour 2: identical rows dispatched the first; now refused when one is a function bind
  • Mediumneeds a testQuestion: does a pick run the function under a live Hyprland 0.56.2?→ where it's shown
  • Mediumneeds a testQuestion: should a user rebind that keeps the shipped chord and description run the user's action?→ where it's shown
  • Lowneeds a testQuestion: are binds the source replay never reaches dispatched through their ref, and should a test pin it?→ where it's shown
  • Lowcommentary (no claim)Opinion (reading): the per-pick mark is new state in Hyprland's Lua registry→ where it's shown
  • Infocommentary (no claim)SW-REQ-261005-4MKB MC/DC: 4 of 6 rows witnessed by the PR's tests, 2 marked defensive
  • Infocommentary (no claim)Obligation cells: 4MKB and 9DMS error_handling observed_pass at file granularity; 9DMS timeout not_linked
  • Infoengine-confirmedTest helper called() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper called_nothing() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper left_no_mark() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper lua_function_bind() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper pick_from_menu() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper stub_hyprctl_dispatch() has no function-level trace: test plumbing (noise)→ spec question
  • Infoengine-confirmedTest helper use_pick_file_picker() has no function-level trace: test plumbing (noise)→ spec question
  • Lowcommentary (no claim)Opinion: dynamic_bindings and keybindings_cache_key deserve function-level traces→ where it's shown
  • Infoengine-confirmedThe reproducer change is our proof work, outside the verification scope→ spec question
  • Infocommentary (no claim)KI-MENU-KEYBINDINGS-FUNC-BIND-NO-DISPATCH is marked fixed on the mirror (proof work)
  • Infocommentary (no claim)Opinion (reading): six shipped binds are affected at this base, not five
  • Infocommentary (no claim)Change effects were not analyzed (effects_unavailable): no call-level facts
Why the engine rates this risk level2 rules fired
  • 1 changed source file(s) not measured by any fresh coverage artifact: bin/omarchy-menu-keybindings.
  • 11 changed function(s) have no function-level requirement trace: bin/omarchy-menu-keybindings:dynamic_bindings (modified), bin/omarchy-menu-keybindings:keybindings_cache_key (modified), pocs/crs-260930-jvx8-c02.sh:hyprctl (modified), test/shell.d/keybindings-menu-test.sh:lua_function_bind (added), test/shell.d/keybindings-menu-test.sh:use_pick_file_picker (added) (+6 more); 1 requirement(s) match only at file level (possibly affected).
Relevant tests2
Audit checks1 cited by the review · 219 project-wide

Cited by this review (project-wide checks)

  • Passcode_mcdc_coveragepassedSame as baseline

    raw status pass · severity warning

219 project-wide audit checks (178 passed · 13 skipped or not run · 28 not applicable) — the rest are unchanged against the baseline run. Open Audit checks

All 219 checks exactly as recorded in this package
  • Not applicableaccepted_risks_reviewednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableapproved_guarantee_ki_conflictnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableassumptions_statusnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippedbuild_matrix_completeskippedSame as baseline

    raw status skip · severity warning

  • Not applicablecode_signal_deadline_cast_unreviewednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableconcern_adjudicatednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicabledefect_review_currentnot_applicableNot requiredAdvisorySame as baseline

    raw status info · severity warning

  • Not applicabledeployment_tvl_verifiednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippeddescription_grammar_enumeration_completeskippedSame as baseline

    raw status skip · severity warning

  • Skippeddocumentation_coverageskippedSame as baseline

    raw status skip · severity warning

  • Skippeddocumented_claim_verifiedskippedSame as baseline

    raw status skip · severity warning

  • Skippeddual_path_guards_equivalentskippedSame as baseline

    raw status skip · severity warning

  • Not applicablefailing_test_blocks_approvalnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicablehigh_severity_obligation_without_vectornot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippedknown_issue_closure_platform_boundskippedSame as baseline

    raw status skip · severity error

  • Not applicableknown_issue_completenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableknown_issue_platform_coveragenot_applicableNot requiredAdvisorySame as baseline

    raw status skip · severity warning

  • Not applicableknown_issue_recheck_duenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableknown_issue_sibling_dispositionnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableknown_issue_template_transfernot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippedlemma_binding_freshnessskippedSame as baseline

    raw status skip · severity warning

  • Not applicablelemma_branch_coveragenot_applicableNot requiredSame as baseline

    raw status skip · severity warning

  • Skippedno_authored_change_surface_reviewedskippedSame as baseline

    raw status skip · severity warning

  • Not applicablepoc_quality_checkednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableproblem_report_class_mitigation_evidencenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableproblem_reports_reviewednot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableprocess_checklistnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableproperty_based_test_coveragenot_applicableNot requiredAdvisorySame as baseline

    raw status warn · severity warning

  • Not applicableresidual_kill_hygienenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippedsecurity_surface_coveredskippedSame as baseline

    raw status skip · severity error

  • Skippedsignal_fixtures_validskippedSame as baseline

    raw status skip · severity error

  • Not applicablespec_lint_exemplar_missing_on_newnot_applicableNot requiredAdvisorySame as baseline

    raw status info · severity warning

  • Not applicablespec_lint_hazard_consequencenot_applicableNot requiredAdvisorySame as baseline

    raw status info · severity warning

  • Not applicablespec_lint_ki_banned_markersnot_applicableNot requiredAdvisorySame as baseline

    raw status info · severity warning

  • Skippedspec_lint_mediation_contract_contradictedskippedSame as baseline

    raw status skip · severity warning

  • Skippedspec_lint_na_denies_property_enforced_unevenlyskippedSame as baseline

    raw status skip · severity warning

  • Skippedspec_lint_na_denies_property_the_code_managesskippedSame as baseline

    raw status skip · severity warning

  • Not applicablesurface_coveragenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicableunresearched_p0_vectorsnot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicablevector_campaign_closurenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Not applicablevector_campaign_hygienenot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Passacceptance_criteria_witnessedpassedSame as baseline

    raw status pass · severity warning

  • Passacceptance_witness_qualitypassedSame as baseline

    raw status pass · severity warning

  • Passambiguity_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passannotation_validitypassedSame as baseline

    raw status pass · severity error

  • Passapproval_motivation_presentpassedSame as baseline

    raw status pass · severity error

  • Passapprovals_currentpassedSame as baseline

    raw status pass · severity error

  • Passassume_contract_consistencypassedSame as baseline

    raw status pass · severity warning

  • Passauthored_delta_expectedpassedSame as baseline

    raw status pass · severity warning

  • Passbehavioral_implications_verifiedpassedSame as baseline

    raw status pass · severity warning

  • Passbuild_passespassedSame as baseline

    raw status pass · severity error

  • Passcatalog_completenesspassedSame as baseline

    raw status pass · severity error

  • Passcatalog_semantic_bindings_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passcatalog_version_pinnedpassedSame as baseline

    raw status pass · severity warning

  • Passchange_evidence_completepassedSame as baseline

    raw status pass · severity warning

  • Passchange_record_landspassedSame as baseline

    raw status pass · severity warning

  • Passchanged_requirements_reviewedpassedSame as baseline

    raw status pass · severity error

  • Passcircular_deps_cleanpassedSame as baseline

    raw status pass · severity error

  • Passcode_mcdc_measurepassedSame as baseline

    raw status pass · severity error

  • Passcode_predicates_modeledpassedSame as baseline

    raw status pass · severity warning

  • Passcode_signal_obligations_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passcode_signal_suppressions_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passcode_signal_unbindablepassedSame as baseline

    raw status pass · severity warning

  • Passconsistency_pair_coveragepassedSame as baseline

    raw status pass · severity warning

  • Passcontract_alignment_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passcoverage_metpassedSame as baseline

    raw status pass · severity warning

  • Passcoverage_thresholdpassedSame as baseline

    raw status pass · severity warning

  • Passcross_component_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passcross_level_completepassedSame as baseline

    raw status pass · severity warning

  • Passcross_spec_consistency_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passcvss_severity_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passdata_constraint_z3_coveragepassedSame as baseline

    raw status pass · severity warning

  • Passdata_constraints_completepassedSame as baseline

    raw status pass · severity warning

  • Passdecomposition_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passdeletion_without_retirementpassedSame as baseline

    raw status pass · severity error

  • Passdescription_delta_reviewedpassedSame as baseline

    raw status pass · severity error

  • Passdifferential_conformancepassedSame as baseline

    raw status pass · severity warning

  • Passdisclosure_safepassedSame as baseline

    raw status pass · severity error

  • Passdocumentation_enforcedpassedSame as baseline

    raw status pass · severity warning

  • Passevidence_diversitypassedSame as baseline

    raw status pass · severity warning

  • Passfixture_staleness_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passflip_fixtures_existpassedSame as baseline

    raw status pass · severity warning

  • Passflip_test_alignmentpassedSame as baseline

    raw status pass · severity warning

  • Passformalization_lemma_verdict_consistencypassedSame as baseline

    raw status pass · severity warning

  • Passfuzz_evidence_carrier_validpassedSame as baseline

    raw status pass · severity warning

  • Passgaps_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passhigh_severity_reproducer_gradepassedSame as baseline

    raw status pass · severity error

  • Passintegration_evidence_witnessedpassedSame as baseline

    raw status pass · severity warning

  • Passinterface_contract_duplicatespassedSame as baseline

    raw status pass · severity warning

  • Passinterface_coveragepassedSame as baseline

    raw status pass · severity warning

  • Passinterface_formalization_completepassedSame as baseline

    raw status pass · severity warning

  • Passinterface_staleness_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_affected_requirements_presentpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_mirror_anchor_relevantpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_poc_quality_effectivepassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_reproducer_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_reproducer_present_and_resolvespassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_security_remediation_presentpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issue_severity_prose_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passknown_issues_reviewedpassedSame as baseline

    raw status pass · severity warning

  • Passl0_stakeholder_completepassedSame as baseline

    raw status pass · severity error

  • Passl1_system_completepassedSame as baseline

    raw status pass · severity error

  • Passl2_software_completepassedSame as baseline

    raw status pass · severity error

  • Passlevels_connectedpassedSame as baseline

    raw status pass · severity error

  • Passlint_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passmcdc_coveragepassedSame as baseline

    raw status pass · severity warning

  • Passmcdc_ignore_classifiedpassedSame as baseline

    raw status pass · severity warning

  • Passmcdc_known_issue_disposition_stalepassedSame as baseline

    raw status pass · severity error

  • Passmcdc_verifies_witnessespassedSame as baseline

    raw status pass · severity warning

  • Passmcdc_witness_drives_codepassedSame as baseline

    raw status pass · severity warning

  • Passmirror_completepassedSame as baseline

    raw status pass · severity warning

  • Passmirror_stalepassedSame as baseline

    raw status pass · severity warning

  • Passnegative_path_witness_requiredpassedSame as baseline

    raw status pass · severity error

  • Passnonbool_inputs_constrainedpassedSame as baseline

    raw status pass · severity warning

  • Passobligation_baselinepassedSame as baseline

    raw status pass · severity warning

  • Passobligation_completenesspassedSame as baseline

    raw status pass · severity error

  • Passobligation_decomposition_completepassedSame as baseline

    raw status pass · severity warning

  • Passobligation_delegation_resolvespassedSame as baseline

    raw status pass · severity error

  • Passobligation_enforcement_backedpassedSame as baseline

    raw status pass · severity warning

  • Passobligation_evidence_completepassedSame as baseline

    raw status pass · severity warning

  • Passobligation_profile_evidence_completepassedSame as baseline

    raw status pass · severity warning

  • Passobligation_suppression_rationalepassedSame as baseline

    raw status pass · severity warning

  • Passobligation_suppression_reviewerpassedSame as baseline

    raw status pass · severity warning

  • Passobligation_witness_groundedpassedSame as baseline

    raw status pass · severity warning

  • Passorphan_code_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passorphan_tests_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passpartition_evidence_completepassedSame as baseline

    raw status pass · severity warning

  • Passproof_complexity_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passproperty_fixtures_existpassedSame as baseline

    raw status pass · severity warning

  • Passquality_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passretired_cleanuppassedSame as baseline

    raw status pass · severity warning

  • Passrole_prompt_hygienepassedSame as baseline

    raw status pass · severity warning

  • Passrole_references_resolvepassedSame as baseline

    raw status pass · severity warning

  • Passsecurity_relevance_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passslow_tests_cleanpassedSame as baseline

    raw status pass · severity error

  • Passsoftware_formalization_completepassedSame as baseline

    raw status pass · severity warning

  • Passsolver_latency_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passsolver_modeling_opportunitypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ac_inverse_coveragepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ac_subset_of_satisfiespassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_acceptance_review_currentpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_annotation_vs_authoredpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_assumption_dispositionpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_audit_ignore_reasonpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_auto_modifier_without_humanpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_circularity_self_citationpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_complementary_flags_uninteractedpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_data_constraint_parseablepassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_decomposition_adds_refinementpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_degenerate_input_obligation_missingpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_evidence_tag_existspassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_formalization_qualitypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_fretish_bare_responsepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_fretish_tautologypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_governance_yaml_data_pathspassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_hallucinated_symbolspassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_hazard_review_currentpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_id_shape_canonicalpassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_inline_impact_review_driftpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_input_domain_obligation_missingpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_attacker_coherencepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_history_chronologypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_open_actionabilitypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_prose_shapepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_stale_status_refspassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_numbering_gaps_has_tombstonepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_obligation_checklist_emptypassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_obligation_coverage_gappassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_operational_invariant_varpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_parent_field_vs_satisfiespassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_pinned_delimiter_undispositionedpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_plan_of_record_currentpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_prose_ste100passedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_reject_combination_composition_witnessedpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_req_type_vs_descriptionpassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_review_cadence_currentpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_satisfies_target_retiredpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_shared_state_rebuildpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_source_doc_hedgingpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_source_native_yaml_tracepassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_spec_conformance_review_groundedpassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_status_vs_reviewpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_sw_informal_witnessedpassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_threat_surface_presentpassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_trace_review_evidence_currentpassedSame as baseline

    raw status pass · severity error

  • Passspec_lint_unjoined_effect_halvespassedSame as baseline

    raw status pass · severity warning

  • Passspec_lint_yaml_escape_artefactpassedSame as baseline

    raw status pass · severity error

  • Passsrs_generatespassedSame as baseline

    raw status pass · severity error

  • Passsrs_no_uncheckedpassedSame as baseline

    raw status pass · severity error

  • Passstakeholder_acceptance_criteriapassedSame as baseline

    raw status pass · severity warning

  • Passstakeholder_requirements_existpassedSame as baseline

    raw status pass · severity error

  • Passsubmission_validatedpassedSame as baseline

    raw status pass · severity error

  • Passsuspect_cleanpassedSame as baseline

    raw status pass · severity error

  • Passsys_has_software_childpassedSame as baseline

    raw status pass · severity warning

  • Passsystem_formalization_completepassedSame as baseline

    raw status pass · severity error

  • Passsystem_requirements_linkedpassedSame as baseline

    raw status pass · severity error

  • Passtable_completepassedSame as baseline

    raw status pass · severity warning

  • Passtable_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passtable_equivalencepassedSame as baseline

    raw status pass · severity warning

  • Passtest_command_propagates_failurepassedSame as baseline

    raw status pass · severity warning

  • Passtests_passpassedSame as baseline

    raw status pass · severity error

  • Passtrivial_lemmapassedSame as baseline

    raw status pass · severity warning

  • Passtrusted_outputs_from_untrusted_inputspassedSame as baseline

    raw status pass · severity warning

  • Passunder_modeled_requirements_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passvacuity_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passvalidate_passespassedSame as baseline

    raw status pass · severity error

  • Passvariable_driftpassedSame as baseline

    raw status pass · severity warning

  • Passvariable_orphans_cleanpassedSame as baseline

    raw status pass · severity warning

  • Passvariables_declaredpassedSame as baseline

    raw status pass · severity error

  • Passverification_chain_completepassedSame as baseline

    raw status pass · severity warning

  • Passverification_plan_evidencepassedSame as baseline

    raw status pass · severity warning

  • Passverification_scope_completepassedSame as baseline

    raw status pass · severity warning

  • Passverification_state_consistentpassedSame as baseline

    raw status pass · severity warning

  • Passverify_passespassedSame as baseline

    raw status pass · severity error

  • Passwaivers_reviewedpassedSame as baseline

    raw status pass · severity error

  • Passz3_cross_layer_consistencypassedSame as baseline

    raw status pass · severity warning

  • Passz3_properties_verifiedpassedSame as baseline

    raw status pass · severity warning

How this evidence was producedunverified producer · no evidence records attached
Unverified producer — not acceptedPackage permalink

Evaluated as this PR applied onto the audit baseline 1e433732 (commit 90cbb43b), not the PR's own branch — findings reflect the PR's change on the audited code. Freshness still tracks the PR head it represents, 03cbacb8.

Repository
https://github.com/omacom/omarchy
Pull request
#11851
Evaluated tree
Synthetic mergesynthetic_merge
PR head commit
03cbacb87d020bb2055aeb95d15aff8a319a2395
Evaluated commit
90cbb43b5ff907abbd926cffc6131986a193e259
Audit baseline
1e43373287afbd6dca4674ad463d5b5db7812358
Spec revision
41595b0d84f13b4e330d098a147328e1fe04205c
Policy revision
1e43373287afbd6dca4674ad463d5b5db7812358
Package digest
sha256:dd47c0fbb1c8c463427055a6ed000d64a973354c13127255e387080f77d6a7e3
Schema version
reqproof.evidence-package.v1
Canonicalization
v1
Engine version
0.1.0-dev
Assembler version
0.1.0-dev+geeb5981c
Package identity
epkg-1ed1a3975417539a0c8691fd37bffa994bf525791845385d528101180947d3f8
Assembled
Oct 6, 2026 · last week
Canonical digest
sha256:dd47c0fbb1c8c463427055a6ed000d64a973354c13127255e387080f77d6a7e3
History2 evidence packages for this change — each an immutable record of the commit it evaluated