Proof Portal

Project overview

Omarchy

omarchy75 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.

PR #13968
Evidence package#13968ff77cd023db8Synthetic merge tree

omarchy #13968

https://github.com/omacom/omarchy

Delivered by an unverified producer — not accepted as assurance.
← Review-by-exception view
  1. AcceptingFix menu JSONC parsing: commas in strings, array roots, inline comments (linked #13250, #13492, #13493). The spec change codifies it: 23 requirements (4 added, 19 modified).
  2. Affects5 files · 30 requirements in 1 area (23 changed in the spec, 7 via the changed files) · mapping is file-level, so this is an upper bound · 3 changed files trace to no requirement.
  3. Works?Not shown yet: 0 of 30 behavioral claims observed; every changed branch ran in a test.
  4. Unresolved5 introduced · 16 blockers not shown to pre-date this change · 1 weakened protection · 3 behaviors need a test · 2 missing evidence · 2 pre-existing (failed at base too).
  5. DecisionPolicy approver: decide whether the weakened protections are accepted under the prior approved policy — evaluated at 9f26c21 (head ff77cd0, base 6fe078f).

What am I accepting?

Intended change

“Fix menu JSONC parsing: commas in strings, array roots, inline comments”Declared by the change request· reason:#13250#13492#13493

The author's description (excerpt)
Fixes #13250, fixes #13492, fixes #13493.

Approved intent (spec changes)

Behavior that must be preserved

7 requirements are in reach (7 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?

30 requirements · 1 area

Changed code

  • Modified
  • ModifiedstripJsonc()modifiedparseMenuJsonc()modified
  • Modified
  • Modified
  • Modified
3 changed files trace to no requirement — read directly

Customer promises reached30

6 requirements changed by the spec itself — listed under What am I accepting? ↑

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

20 more

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 30 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

No test outcome recorded for any of the 30 requirements this change must keep holding — 0 of 30 claims observed (4 relevant tests, no per-test result).

The 30 claims, as a table
RequirementClaimObservedTestsDisclosures
SW-REQ-260922-2JZTChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-2JZTtest_outcome_unobserved:SW-REQ-260922-2JZT
2 non-passing records
  • test:test/shell.d/menu-guards-test.sh
  • test:test/shell.d/menu-guards-test.sh:1:prelude
SW-REQ-260922-3T3FChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-3T3Ftest_outcome_unobserved:SW-REQ-260922-3T3F
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-46HYChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-46HY
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-74BZChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-74BZtest_outcome_unobserved:SW-REQ-260922-74BZ
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-7NPEChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-7NPE
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-CYB9Changed as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-CYB9
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-DQ9PChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-DQ9P
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-E4J2Changed as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-E4J2
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
Show all 30 claims
SW-REQ-260922-EFNRChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-EFNR
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-JRW1Changed as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-JRW1test_outcome_unobserved:SW-REQ-260922-JRW1
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-MQ37Changed as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-MQ37test_outcome_unobserved:SW-REQ-260922-MQ37
2 non-passing records
  • test:test/shell.d/menu-guards-test.sh
  • test:test/shell.d/menu-guards-test.sh:1:prelude
SW-REQ-260922-N3RMStill holdsNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-N3RMtest_outcome_unobserved:SW-REQ-260922-N3RM
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-PRNVChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-PRNV
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-RGCVChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-RGCVtest_outcome_unobserved:SW-REQ-260922-RGCV
2 non-passing records
  • test:test/shell.d/menu-guards-test.sh
  • test:test/shell.d/menu-guards-test.sh:1:prelude
SW-REQ-260922-SJ7PChanged as intendedNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-SJ7P
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-TKDPStill holdsNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-TKDP
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-W17GChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-W17Gtest_outcome_unobserved:SW-REQ-260922-W17G
2 non-passing records
  • test:test/shell.d/menu-guards-test.sh
  • test:test/shell.d/menu-guards-test.sh:1:prelude
SW-REQ-260922-XW52Still holdsNot observed0✓ 0✗ 0∅ 2?
test_outcome_unobserved:SW-REQ-260922-XW52
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260922-Y58BChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-Y58Btest_outcome_unobserved:SW-REQ-260922-Y58B
2 non-passing records
  • test:test/shell.d/menu-guards-test.sh
  • test:test/shell.d/menu-guards-test.sh:1:prelude
SW-REQ-260922-Z680Changed as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260922-Z680test_outcome_unobserved:SW-REQ-260922-Z680
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260927-66FWnew in this changeChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260927-66FWtest_outcome_unobserved:SW-REQ-260927-66FW
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260928-8VJQChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260928-8VJQtest_outcome_unobserved:SW-REQ-260928-8VJQ
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260928-BMFEnew in this changeChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260928-BMFEtest_outcome_unobserved:SW-REQ-260928-BMFE
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-260928-C8W1new in this changeChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-260928-C8W1test_outcome_unobserved:SW-REQ-260928-C8W1
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SW-REQ-261001-BNZGnew in this changeChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SW-REQ-261001-BNZGtest_outcome_unobserved:SW-REQ-261001-BNZG
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SYS-REQ-260922-0M8AStill holdsNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SYS-REQ-260922-0M8Atest_outcome_unobserved:SYS-REQ-260922-0M8A
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SYS-REQ-260922-PPDWChanged as intendedNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SYS-REQ-260922-PPDWtest_outcome_unobserved:SYS-REQ-260922-PPDW
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SYS-REQ-260922-R8DQStill holdsNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SYS-REQ-260922-R8DQtest_outcome_unobserved:SYS-REQ-260922-R8DQ
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SYS-REQ-260922-V7W6Still holdsNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SYS-REQ-260922-V7W6test_outcome_unobserved:SYS-REQ-260922-V7W6
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1
SYS-REQ-260927-WC89Still holdsNot observed0✓ 0✗ 0∅ 2?
missing_obligation:SYS-REQ-260927-WC89test_outcome_unobserved:SYS-REQ-260927-WC89
2 non-passing records
  • test:test/shell.d/menu-test.sh
  • test:test/shell.d/menu-test.sh:1:menu-test.sh:1

Changed-code coverage

17 of 17 changed decision lines reached by tests · 34 of 34 decisions fully exercised the untested spots and the tests that would cover them ↓

What remains unresolved?

58 open disclosures — each listed once, introduced first

Failures not shown to pre-date this change21

  • highUnresolved finding

    SW-REQ-260922-2JZT has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-3T3F has required obligations with no covering evidence — missing: boundary, error_handling.

  • highUnresolved finding

    SW-REQ-260922-74BZ has required obligations with no covering evidence — missing: boundary.

  • highUnresolved finding

    SW-REQ-260922-JRW1 has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-MQ37 has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-N3RM has required obligations with no covering evidence — missing: error_handling.

  • highUnresolved finding

    SW-REQ-260922-RGCV has required obligations with no covering evidence — missing: error_handling, external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-W17G has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-Y58B has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-Z680 has required obligations with no covering evidence — missing: atomicity.

  • highUnresolved findingintroduced by this change

    SW-REQ-260927-66FW has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260927-66FWnew in this change
  • highUnresolved finding

    SW-REQ-260928-8VJQ has required obligations with no covering evidence — missing: path_pair_agreement.

  • highUnresolved findingintroduced by this change

    SW-REQ-260928-BMFE has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260928-BMFEnew in this change
  • highUnresolved findingintroduced by this change

    SW-REQ-260928-C8W1 has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260928-C8W1new in this change
  • highUnresolved findingMeasuredintroduced by this change

    SW-REQ-261001-BNZG has required obligations with no covering evidence — missing: malformed_input, totality.

    SW-REQ-261001-BNZGnew in this change
  • highUnresolved finding

    SYS-REQ-260922-0M8A has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-PPDW has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-R8DQ has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-V7W6 has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260927-WC89 has required obligations with no covering evidence — missing: error_handling.

  • mediumUnresolved findingMeasuredintroduced (not applicable at base)

    Required check known_issue_sibling_disposition failed at the evaluated revision (it passed at the baseline: introduced).

Missing evidence6

  • highMissing evidence

    3 changed code files trace to no requirement: that behaviour has no stated intent and no claim to check.

  • mediumMissing evidence

    Per-test results could not be read (test results weren't collected for this evaluation), so none of the 59 obligation cells in scope has an observed outcome.

    testResults

3 behaviors need a test

  • Unverified hazard — needs a testQuestion: if upstream merges ff77cd02 WITHOUT b2dae8db, does a menu file with a BOM or a Unicode space before a // comment stop loading?

    Test that would settle it: Run the BNZG whitespace witnesses against the upstream PR head ff77cd02

    How to write it

    Shows whether the public PR, as it stands, regresses Unicode whitespace before a // comment. It should go green once b2dae8db (or an equivalent) is in the upstream PR.

  • Unverified hazard — needs a testQuestion: does the scanner behave the same under Qt's QV4 engine as under node?

    Test that would settle it: QML-side witness: parse the default menu and a BOM/NBSP extension in Quickshell

    How to write it

    Moves the BNZG and performance facts from node to the engine the shell runs, e.g. from menu-compositor-test.sh or a qml test harness.

  • Unverified hazard — needs a testQuestion: do user extensions that were silently ignored before now load and override shipped entries?

    Test that would settle it: Upgrade witness: an inline-commented user extension that overrides a shipped id

    How to write it

    Pins the newly effective override so the release note can say that previously ignored extensions now load.

The tests verifying 30 requirements have no observed outcome at the evaluated revision (60 test records). Claims → Why should I believe it works? ↑

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

The code and the spec agree — no code-vs-spec question was raised for this change.

Limitations

Exceptions and weakened protections1

This change weakens a protection

The PR's own policy is Changed unclassified relative to the approved policy at 6fe078f26d. Readiness is judged against the approved policy — the PR cannot change it.

  • changed (unclassified)proof.yaml:project.checks.proof_complexity_clean.max_variables128 → 130 (Unclassified)
  • highWeakened protection · introduced by this changeneeds prior-policy signoff

    The change modifies policy in a way the engine cannot prove is not a weakening (1 change); a policy approver must judge it under the prior policy.

    policy:proof.yaml:project.checks.proof_complexity_clean.max_variables
2 pre-existing — failed at base toonot introduced by this change, still unresolved
  • mediumUnresolved findingpre-existing (failed at base)

    Required check obligation_decomposition_complete failed at the evaluated revision (it also failed at the baseline).

  • mediumUnresolved findingpre-existing (failed at base)

    Required check obligation_evidence_complete failed at the evaluated revision (it also failed at the baseline).

What decision is mine?

Next decision

Human judgementbecause a protection is weakened

Should the 1 protection reduction this change makes be accepted under the prior approved policy?

Required authority

Policy approver — under the approved policy at 6fe078f26d

Requires signoff under the PRIOR approved policy

Accepted identities: GitHub login or portal user · enforced by the portal / GitHub

Evaluated revision

Evaluated
9f26c2135302Synthetic merge
PR head
ff77cd023db8
Base
6fe078f26da9quattro-proof
Policy
sha256:ab4b5f1a57…

Compared against base audit run-a1d72522a758 at 6fe078f26da9 — failed checks are split into pre-existing vs introduced.

An immutable record of this revision — freshness is judged on the PR page.

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
Every disclosure, by consequence23 block · 33 prevent ready · 0 need judgement · 2 for information

23 block · 33 prevent ready · 0 need judgement · 2 for information · 1 weakened protection

This change weakens a protection

The PR's own policy is Changed unclassified relative to the approved policy at 6fe078f26d. Readiness is judged against the approved policy — the PR cannot change it.

  • changed (unclassified)proof.yaml:project.checks.proof_complexity_clean.max_variables128 → 130 (Unclassified)
  • highWeakened protection · introduced by this changeneeds prior-policy signoff

    The change modifies policy in a way the engine cannot prove is not a weakening (1 change); a policy approver must judge it under the prior policy.

    policy:proof.yaml:project.checks.proof_complexity_clean.max_variables
Blocks readiness23· 2 pre-existing

Introduced by this PR(21)

  • highUnresolved finding

    SW-REQ-260922-2JZT has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-3T3F has required obligations with no covering evidence — missing: boundary, error_handling.

  • highUnresolved finding

    SW-REQ-260922-74BZ has required obligations with no covering evidence — missing: boundary.

  • highUnresolved finding

    SW-REQ-260922-JRW1 has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-MQ37 has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-N3RM has required obligations with no covering evidence — missing: error_handling.

  • highUnresolved finding

    SW-REQ-260922-RGCV has required obligations with no covering evidence — missing: error_handling, external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-W17G has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-Y58B has required obligations with no covering evidence — missing: external_call_timeout_bounded.

  • highUnresolved finding

    SW-REQ-260922-Z680 has required obligations with no covering evidence — missing: atomicity.

Show all 21 (11 more)
  • highUnresolved findingintroduced by this change

    SW-REQ-260927-66FW has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260927-66FWnew in this change
  • highUnresolved finding

    SW-REQ-260928-8VJQ has required obligations with no covering evidence — missing: path_pair_agreement.

  • highUnresolved findingintroduced by this change

    SW-REQ-260928-BMFE has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260928-BMFEnew in this change
  • highUnresolved findingintroduced by this change

    SW-REQ-260928-C8W1 has required obligations with no covering evidence — missing: malformed_input.

    SW-REQ-260928-C8W1new in this change
  • highUnresolved findingintroduced by this change

    SW-REQ-261001-BNZG has required obligations with no covering evidence — missing: malformed_input, totality.

    SW-REQ-261001-BNZGnew in this change
  • highUnresolved finding

    SYS-REQ-260922-0M8A has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-PPDW has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-R8DQ has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260922-V7W6 has required obligations with no covering evidence — missing: nominal.

  • highUnresolved finding

    SYS-REQ-260927-WC89 has required obligations with no covering evidence — missing: error_handling.

  • mediumUnresolved findingintroduced (not applicable at base)

    Required check known_issue_sibling_disposition failed at the evaluated revision (it passed at the baseline: introduced).

Pre-existing — failed at base too(2)
  • mediumUnresolved findingpre-existing (failed at base)

    Required check obligation_decomposition_complete failed at the evaluated revision (it also failed at the baseline).

  • mediumUnresolved findingpre-existing (failed at base)

    Required check obligation_evidence_complete failed at the evaluated revision (it also failed at the baseline).

Prevents a ready verdict33
  • Weakened protectionpolicy_changed_unclassified— shown above
  • highMissing evidence

    3 changed code files trace to no requirement: that behaviour has no stated intent and no claim to check.

  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-2JZT (The rewrite touches only the plain $(reader) form, mapping it to the captured slot. command -v reader, VAR=x reader, and…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-guards-test.shtest:test/shell.d/menu-guards-test.sh:1:prelude
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-3T3F (Unparseable input (after stripping), non-object JSON, and non-object entries yield an empty or skipped item set; no exce…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-46HY (An entry with action is an action, with target a link, otherwise a menu. An undeclared parent derives from the dotted id…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-74BZ (A route matching no id and no alias resolves to the literal input. A misspelling still attempts to open that id without…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-7NPE (A user entry overrides the default per key while keeping the row's original order slot. The model injects a root item wi…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-CYB9 (Absent an exact id, a route equal to a declared alias resolves to the id of the item declaring the alias. Alias comparis…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-DQ9P (A row matches only when every query term appears in its name text (label, leaf id, aliases) or as a whole word in its de…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-E4J2 (The parser strips // comments and trailing commas outside string literals before JSON parsing, so the authored JSONC par…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
Show all 33 (23 more)
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-EFNR (swapProviderRows drops exactly the rows carrying the re-run provider's providerMenu and appends the new batch, leaving s…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-JRW1 (Applied guard results drive the view. A row hides when its when: is false. A static submenu or link hides when no descen…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-MQ37 (The generated guard script holds exactly one if-line per declared when, checked, or disabled, each echoing <id>:<w|c|d>:…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-guards-test.shtest:test/shell.d/menu-guards-test.sh:1:prelude
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-N3RM (When a route resolves to an action item with a non-empty action, the action runs directly and no menu opens.) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-PRNV (An exact id match wins over every alias. App rows are never routable, so an installed app's keywords cannot shadow a men…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-RGCV (The prelude's omarchy-pkg-present/missing shadows agree with pacman -Q everywhere. This covers provides resolution, vers…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-guards-test.shtest:test/shell.d/menu-guards-test.sh:1:prelude
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-SJ7P (Scores tier exact label, whole-word app name, label prefix, label substring, name text, then description. Menus and link…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-TKDP (Search lists current-menu matches before deeper (drilldown) matches, with a divider section exactly when both groups are…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-W17G (A value command shared by several guards (e.g. omarchy-default-browser across seven rows) runs once per batch, captured…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-guards-test.shtest:test/shell.d/menu-guards-test.sh:1:prelude
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-XW52 (When a route resolves to a link item, the menu opens at the link's target.) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-Y58B (When no item declares a guard, the guard script is empty and no guard process runs.) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-guards-test.shtest:test/shell.d/menu-guards-test.sh:1:prelude
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260922-Z680 (mergeAppRows and swapProviderRows return fresh maps that drop orphan ids and the replaced batch. They list a duplicated…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260927-66FW (The JSONC stripper looks ahead from each comma outside every string literal. The look-ahead skips whitespace and each //…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260928-8VJQ (A menu action may exactly match the bare-summon grammar: omarchy-shell shell summon <id>, plus an optional single-quoted…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260928-BMFE (A top-level JSON array is not an object map of menu entries. The parser returns an empty item set for it, as it does for…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-260928-C8W1 (When the JSONC stripper meets a // comment opener outside every string literal, it drops the comment wherever the opener…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SW-REQ-261001-BNZG (The JSONC stripper takes any text as input. Outside string literals, each character that JS \s matches is whitespace. Th…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SYS-REQ-260922-0M8A (Dynamic rows (apps, provider enumerations) replace their source's previous batch atomically: orphans dropped, duplicates…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SYS-REQ-260922-PPDW (The default JSONC and the user extension merge into one ordered item tree: per-key user overrides, stable order, inferre…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SYS-REQ-260922-R8DQ (A route string (exact id, declared alias, or normalized spelling) opens the item it denotes; unknown strings fall throug…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SYS-REQ-260922-V7W6 (A filter query narrows to visible, selectable rows whose name or description matches every term, ranked by match quality…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    2 of 2 tests verifying SYS-REQ-260927-WC89 (The menu Lock row invokes the lock component's CLI entry point omarchy-system-lock with no arguments. The callee engages…) have no observed outcome at the evaluated revision.

    test:test/shell.d/menu-test.shtest:test/shell.d/menu-test.sh:1:menu-test.sh:1
  • mediumMissing evidence

    Per-test results could not be read (test results weren't collected for this evaluation), so none of the 59 obligation cells in scope has an observed outcome.

    testResults
For information2

Routine evidence:173 checks passed · 26 advisory · 1 not applicable · 0 verifying tests passed · 0 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 risk2 weeks agoderived from the evidence — not a verdict

What the PR does. omacom/omarchy#13968 (buger) replaces stripJsonc's two regex passes with one string-aware scanner and makes parseMenuJsonc return no rows for an array root. Fixes #13250 (comma in a string eaten), #13492 (array root -> rows "0","1") and #13493 (inline // empties the file); docs/menu.md states the rules. The evaluated tree 9f26c213 is AHEAD of the PR head ff77cd02: it also contains the pending, not-yet-public follow-up b2dae8db, which reads any JS \s character outside strings (BOM, Unicode spaces, VT, FF) as a space. The rest of the mirror is dogfood proof work. This is an advisory, audit-only review of an upstream PR we observe: it is not an approval.

Risk rationale: Small, well-covered parser change with differential evidence for all three fixes. But the public PR head lacks the Unicode-whitespace fix the package evaluates, so the package does not show the head's behaviour. The policy budget raise is a protection_weakened disclosure a policy approver must judge, and no test outcome is observed. Not low risk.

Read the full review (4 more paragraphs)

Is the fix verified? The changed code is fully covered (17/17 decision lines, 34/34 decisions), and reviewer node differentials match each issue. No test outcome is observed (test_results_not_joined), so no obligation cell counts as covered. Engine readiness: blocked (introduced); 4 introduced missing_obligation blockers on 66FW/BMFE/C8W1/BNZG. Next decision: human_judgement on 1 protection reduction (policy_changed_unclassified: max_variables 128->130), by a policy_approver under the approved policy @ 6fe078f2 with prior-policy signoff.

Questions for a human. (1) At ff77cd02 WITHOUT b2dae8db, a BOM / NBSP / VT before a // comment yields 0 rows where baseline yields 1: the public PR still carries that regression. (2) Do QV4 (Quickshell) and node agree on /\s/ and on cost? (3) Previously ignored user extensions now load and override defaults.

Traceability. stripJsonc/parseMenuJsonc are traced at function level (E4J2, 3T3F, 66FW, C8W1, BNZG, BMFE); 24 more requirements are touched only through menu-test.sh's file-level trace. No spec-gap candidates. 3 unmapped files are proof/test code.

Not caused by this PR. obligation_* gates fail identically at baseline. known_issue_sibling_disposition is introduced via the KI ledger (3 open parsing siblings). Unavailable: change effects (JS), per-test outcomes.

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.

14 context notes (info — not a finding)
  • AI · confirmed#13250: a comma is dropped only when the next token is } or ] (SW-REQ-260927-66FW)

    Upstream change. stripJsonc's second regex pass ,(\s*[}\]]) did not know about strings, so , ] inside a label or action lost its comma. The new scanner copies string contents verbatim (MenuModel.js:13-19) and, outside strings, looks ahead from each comma past whitespace and // comments (MenuModel.js:26-38). It keeps the comma unless the next other character is } or ]. Reviewer differential (node, outside the package): {"b":{"label":"x, ]y","action":"mv f{.bak,}"}} gives label 'x ]y' / action 'mv f{.bak}' at baseline 6fe078f2 and 'x, ]y' / 'mv f{.bak,}' at the evaluated tree. SW-REQ-260927-66FW is re-applied dogfood proof work that states this rule.

  • AI · confirmed#13493: a // comment outside strings is dropped wherever it starts on the line (SW-REQ-260928-C8W1)

    Upstream change. The baseline removed only whole-line comments (^\s*\/\/ with the m flag), so an inline tail reached JSON.parse and the whole file gave 0 rows. The scanner drops from the opener up to, not including, the line feed (MenuModel.js:23-25), so the tokens on each side stay apart. Reviewer differential: {"a":{"label":"A"}} // note gives 0 rows at baseline and 1 at the evaluated tree. A CRLF file with inline comments and trailing commas also parses (the \r is read as a space). An opener inside a string (https://x.y//z) is still copied as data.

  • AI · confirmed#13492: an array root yields no rows (SW-REQ-260928-BMFE)

    Upstream change. typeof [] === "object", so the baseline let an array root through and for..in turned its indices into entries "0", "1". parseMenuJsonc now adds Array.isArray(parsed) to the non-object root check (MenuModel.js:100). Reviewer differential: [{"label":"x"},{"label":"y"}] gives ids 0,1 at baseline and [] at the evaluated tree.

  • AI · confirmedSW-REQ-260922-E4J2 (JSONC stripping) is reworded to the single-pass scanner

    E4J2's description and rationale change (dogfood proof work). It now says comments and trailing commas are stripped outside string literals before JSON.parse, so the authored JSONC parses. That matches stripJsonc as read (MenuModel.js:2-48). It is traced at function level to stripJsonc and parseMenuJsonc.

  • AI · confirmedSW-REQ-260922-3T3F (unparseable / non-object input gives an empty set) gains the array-root case in its rationale

    Only the rationale changes. An array root now joins null, numbers and strings as a non-object root (MenuModel.js:100). The parse-failure path (MenuModel.js:92-96) is unchanged: a file that still fails to parse (e.g. a /* */ block comment) contributes no entries.

  • AI opinion — unverified24 further requirements are touched only through the whole-file trace of menu-test.sh (and re-review stamps)

    test/shell.d/menu-test.sh is traced at file level to 25 requirements (weak_mapping), so every requirement it verifies is listed as changed, though the product change touches only stripJsonc/parseMenuJsonc. Their YAML diffs on this mirror are trace re-review stamps (c59dbbb7) and a PPDW wording change; the code they govern (merge, routing, guards, search) is not modified. Read against the code, none of their behaviour changes. Opinion: splitting menu-test.sh's file-level Verifies header into per-block markers would stop every JSONC test edit from touching ~25 requirements.

  • AI opinion — unverifiedThe purpose branches are covered: 17/17 changed decision lines and 34/34 changed decisions, but no test outcome is observed

    review.diffCoverage (mcdc:aggregate+bash+js+qml, measured) reports 0 uncovered lines and 0 uncovered outcomes in the changed code, which includes the string branch, the comment eater, the comma look-ahead, the \s branch and the array-root check. Coverage says those branches EXECUTE under the menu tests. It does not say an assertion passed: testResults is not_configured, so every obligation cell is unobserved or not_linked (test_results_not_joined). No test is recorded as passing or failing. Reviewer re-runs outside the package (node differential, see the other findings) agree with the stated behaviour.

  • AI · confirmedobligation_decomposition_complete and obligation_evidence_complete fail identically at baseline (inherited)

    Both are failed_behavior with delta unchanged against baseline run-a1d72522 (deferred obligations + accepted KI-debt). The package marks both disclosures preExisting.

  • AI opinion — unverified16 further missing_obligation reasons sit on requirements touched only at file level

    Not marked pre-existing in the package (preExisting unset). SW-REQ-260922-2JZT, SW-REQ-260922-3T3F, SW-REQ-260922-74BZ, SW-REQ-260922-JRW1, SW-REQ-260922-MQ37, SW-REQ-260922-N3RM, SW-REQ-260922-RGCV, SW-REQ-260922-W17G, SW-REQ-260922-Y58B, SW-REQ-260922-Z680, SW-REQ-260928-8VJQ, SYS-REQ-260922-0M8A, SYS-REQ-260922-PPDW, SYS-REQ-260922-R8DQ, SYS-REQ-260922-V7W6, SYS-REQ-260927-WC89. Context, not attribution: none of them governs stripJsonc/parseMenuJsonc. Each is listed because menu-test.sh is traced to it at file level, and the obligation gates that count them are unchanged from baseline. A human should confirm this against the baseline. The disclosures stay as the engine states them.

  • AI · confirmedUnmapped changed file proof.yaml: project configuration, no product intent

    proof.yaml changes only the max_variables budget and its comment (see the policy finding). It ships no product behaviour, so no requirement should claim it. It remains part of the unmapped_code disclosure, which stands.

  • AI · confirmedUnmapped changed file menumodel-replay.test.mjs: verification code that carries a Verifies header

    The node:test replay of menu-test.sh's MenuModel.js assertions (adds the 66FW/BMFE/C8W1/BNZG witnesses, MC/DC rows and the Unicode differential). Line 1 carries // Verifies: for 24 requirements including the four JSONC ones, yet the package records mapping none for it. Position intended: its intent is verification of those requirements. A human may want to check why the engine does not count the .mjs Verifies header as a trace. The unmapped_code disclosure stands.

  • AI · confirmedUnmapped changed file report-reproducers.test.mjs: the three JSONC report tests flipped from expected failure to fixed

    The #13250/#13492/#13493 reporter-script tests now expect exit 0 and the ok: line (report-reproducers.test.mjs:36-59). Their Reproduces: markers stay, so they guard against the defects returning. Test code bound to KIs, not product behaviour. The unmapped_code disclosure stands.

  • AI opinion — unverifiedChange-effects analysis is unavailable for JS; function-level facts are bounded

    review.effects is absent (effects_unavailable), so the package has no new callees, gained effects, callers or new mutable state for stripJsonc/parseMenuJsonc. Read by hand: the new code adds only locals (input, out, inString, i, next), no module state, and no calls beyond String, RegExp.test and Array.isArray. The callers are Menu.qml's wrappers (Menu.qml:245, 260). review.scope reports no spec-gap candidates and coherence single.

  • AI opinion — unverifiedMirror composition: upstream product change vs dogfood proof work

    0e28f60d = upstream PR ff77cd02 (MenuModel.js, docs/menu.md, its menu-test.sh hunk) + pending efa5170b, which was amended to b2dae8db in 0eec885b (VT and FF added to the whitespace tests). The rest is proof work: 66FW/BMFE/C8W1 re-applied and reworded, new SW-REQ-261001-BNZG, DEFECT-260927-CMMA/-4NG9/-7AX9, REVIEW-21/72/73/261001-ENZ2, three KIs set to fixed, the report-reproducer flip, witnesses/differentials, trace re-reviews, review-citation re-location and the menu budget 128->130. The shipped default menu parses to the same 344 rows at baseline and at the evaluated tree (reviewer-checked).

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 23findings, with the engine's verification
  • Infoengine-confirmed#13250: a comma is dropped only when the next token is } or ] (SW-REQ-260927-66FW)
  • Infoengine-confirmed#13493: a // comment outside strings is dropped wherever it starts on the line (SW-REQ-260928-C8W1)
  • Infoengine-confirmed#13492: an array root yields no rows (SW-REQ-260928-BMFE)
  • Mediumengine-confirmedUnicode whitespace outside strings becomes a plain space: this is the PENDING follow-up b2dae8db, not part of the public PR head ff77cd02 (SW-REQ-261001-BNZG)→ where it's shown
  • Infoengine-confirmedSW-REQ-260922-E4J2 (JSONC stripping) is reworded to the single-pass scanner
  • Infoengine-confirmedSW-REQ-260922-3T3F (unparseable / non-object input gives an empty set) gains the array-root case in its rationale
  • Infocommentary (no claim)24 further requirements are touched only through the whole-file trace of menu-test.sh (and re-review stamps)
  • Infocommentary (no claim)The purpose branches are covered: 17/17 changed decision lines and 34/34 changed decisions, but no test outcome is observed
  • Mediumneeds a testQuestion: if upstream merges ff77cd02 WITHOUT b2dae8db, does a menu file with a BOM or a Unicode space before a // comment stop loading?→ where it's shown
  • Lowneeds a testQuestion: does the scanner behave the same under Qt's QV4 engine as under node?→ where it's shown
  • Lowneeds a testQuestion: do user extensions that were silently ignored before now load and override shipped entries?→ where it's shown
  • Mediumengine-confirmedknown_issue_sibling_disposition fails only on the evaluated tree: the three fixed JSONC KIs leave 3 open parsing siblings without a disposition→ where it's shown
  • Infoengine-confirmedobligation_decomposition_complete and obligation_evidence_complete fail identically at baseline (inherited)
  • Mediumcommentary (no claim)Readiness is blocked (introduced): 4 missing_obligation reasons are new with this change→ where it's shown
  • Infocommentary (no claim)16 further missing_obligation reasons sit on requirements touched only at file level
  • Mediumcommentary (no claim)No obligation cell has an observed outcome: test results are not joined (project configuration)→ where it's shown
  • Mediumcommentary (no claim)policy_changed_unclassified: proof.yaml raises proof_complexity_clean.max_variables 128 -> 130; a policy approver must judge it→ where it's shown
  • Infoengine-confirmedUnmapped changed file proof.yaml: project configuration, no product intent→ spec question
  • Infoengine-confirmedUnmapped changed file menumodel-replay.test.mjs: verification code that carries a Verifies header→ spec question
  • Infoengine-confirmedUnmapped changed file report-reproducers.test.mjs: the three JSONC report tests flipped from expected failure to fixed→ spec question
  • Infocommentary (no claim)Change-effects analysis is unavailable for JS; function-level facts are bounded
  • Infocommentary (no claim)Mirror composition: upstream product change vs dogfood proof work
  • Lowcommentary (no claim)Opinion: block comments remain unsupported; the PR documents it rather than fixing it
Why the engine rates this risk level2 rules fired
  • 1 gate(s) newly failing vs the baseline run (introduced by this change): known_issue_sibling_disposition.
  • 3 changed code file(s) map to no requirement: proof.yaml, test/node/menumodel-replay.test.mjs, test/node/report-reproducers.test.mjs.
Relevant tests4
Audit checks1 attributable to this PR · 218 project-wide

Changed with this PR (vs the baseline run)

  • Warningknown_issue_sibling_dispositionfailed_behaviorNot requiredNewly failing

    raw status warn · severity warning

    4 known issue(s) need sibling disposition (3 open/reviewed siblings; 0 undispositioned isomorphic sites)

218 project-wide audit checks (173 passed · 3 with findings · 15 skipped or not run · 27 not applicable) — the rest are unchanged against the baseline run. Open Audit checks

All 218 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_completeskippedNot requiredSame 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_completeskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Skippeddocumentation_coverageskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Skippeddocumented_claim_verifiedskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Skippeddual_path_guards_equivalentskippedNot requiredSame 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_boundskippedNot requiredSame 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_template_transfernot_applicableNot requiredAdvisorySame as baseline

    raw status pass · severity warning

  • Skippedlemma_binding_freshnessskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Not applicablelemma_branch_coveragenot_applicableNot requiredSame as baseline

    raw status skip · severity warning

  • Skippedno_authored_change_surface_reviewedskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Warningobligation_decomposition_completefailed_behaviorNot requiredSame as baseline

    raw status warn · severity warning

    47 obligation(s) on 37 requirement(s) covered by satisfying children, 5 deferred (tracked), 9 accepted KI-debt (tripwire-backed, auto-expiring) — deferred obligations are tracked debt, not a pass

  • Warningobligation_evidence_completefailed_behaviorNot requiredSame as baseline

    raw status warn · severity warning

    69 covered, 6 deferred (tracked), 9 accepted KI-debt (tripwire-backed, auto-expiring) — deferred obligations are tracked debt, not a pass

  • 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_coveredskippedNot requiredSame as baseline

    raw status skip · severity error

  • Skippedsignal_fixtures_validskippedNot requiredSame as baseline

    raw status skip · severity error

  • Skippedslow_tests_cleanskippedNot requiredSame as baseline

    raw status skip · severity error

  • Skippedsolver_latency_cleanskippedNot requiredSame as baseline

    raw status skip · severity warning

  • 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_contradictedskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Skippedspec_lint_na_denies_property_enforced_unevenlyskippedNot requiredSame as baseline

    raw status skip · severity warning

  • Skippedspec_lint_na_denies_property_the_code_managesskippedNot requiredSame 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_witnessedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passacceptance_witness_qualitypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passambiguity_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passannotation_validitypassedNot requiredSame as baseline

    raw status pass · severity error

  • Passapproval_motivation_presentpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passapprovals_currentpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passassume_contract_consistencypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passauthored_delta_expectedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passbehavioral_implications_verifiedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passbuild_passespassedNot requiredSame as baseline

    raw status pass · severity error

  • Passcatalog_completenesspassedNot requiredSame as baseline

    raw status pass · severity error

  • Passcatalog_semantic_bindings_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcatalog_version_pinnedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passchange_evidence_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passchange_record_landspassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passchanged_requirements_reviewedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passcircular_deps_cleanpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passcode_mcdc_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcode_mcdc_measurepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passcode_predicates_modeledpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcode_signal_obligations_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcode_signal_suppressions_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcode_signal_unbindablepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passconsistency_pair_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcontract_alignment_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcoverage_metpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcoverage_thresholdpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcross_component_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcross_level_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcross_spec_consistency_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passcvss_severity_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passdata_constraint_z3_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passdata_constraints_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passdecomposition_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passdeletion_without_retirementpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passdescription_delta_reviewedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passdifferential_conformancepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passdisclosure_safepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passdocumentation_enforcedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passevidence_diversitypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passfixture_staleness_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passflip_fixtures_existpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passflip_test_alignmentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passformalization_lemma_verdict_consistencypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passfuzz_evidence_carrier_validpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passgaps_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passhigh_severity_reproducer_gradepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passintegration_evidence_witnessedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passinterface_contract_duplicatespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passinterface_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passinterface_formalization_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passinterface_staleness_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_affected_requirements_presentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_mirror_anchor_relevantpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_poc_quality_effectivepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_reproducer_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_reproducer_present_and_resolvespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_security_remediation_presentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issue_severity_prose_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passknown_issues_reviewedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passl0_stakeholder_completepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passl1_system_completepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passl2_software_completepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passlevels_connectedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passlint_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmcdc_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmcdc_ignore_classifiedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmcdc_known_issue_disposition_stalepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passmcdc_verifies_witnessespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmcdc_witness_drives_codepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmirror_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passmirror_stalepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passnegative_path_witness_requiredpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passnonbool_inputs_constrainedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_baselinepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_completenesspassedNot requiredSame as baseline

    raw status pass · severity error

  • Passobligation_delegation_resolvespassedNot requiredSame as baseline

    raw status pass · severity error

  • Passobligation_enforcement_backedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_profile_evidence_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_suppression_rationalepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_suppression_reviewerpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passobligation_witness_groundedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passorphan_code_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passorphan_tests_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passpartition_evidence_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passproof_complexity_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passproperty_fixtures_existpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passquality_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passretired_cleanuppassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passrole_prompt_hygienepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passrole_references_resolvepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passsecurity_relevance_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passsoftware_formalization_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passsolver_modeling_opportunitypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ac_inverse_coveragepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ac_subset_of_satisfiespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_acceptance_review_currentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_annotation_vs_authoredpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_assumption_dispositionpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_audit_ignore_reasonpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_auto_modifier_without_humanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_circularity_self_citationpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_complementary_flags_uninteractedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_data_constraint_parseablepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_decomposition_adds_refinementpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_degenerate_input_obligation_missingpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_evidence_tag_existspassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_formalization_qualitypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_fretish_bare_responsepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_fretish_tautologypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_governance_yaml_data_pathspassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_hallucinated_symbolspassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_hazard_review_currentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_id_shape_canonicalpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_inline_impact_review_driftpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_attacker_coherencepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_history_chronologypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_open_actionabilitypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_prose_shapepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_ki_stale_status_refspassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_numbering_gaps_has_tombstonepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_obligation_checklist_emptypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_obligation_coverage_gappassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_operational_invariant_varpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_parent_field_vs_satisfiespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_pinned_delimiter_undispositionedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_plan_of_record_currentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_prose_ste100passedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_reject_combination_composition_witnessedpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_req_type_vs_descriptionpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_review_cadence_currentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_satisfies_target_retiredpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_shared_state_rebuildpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_source_doc_hedgingpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_source_native_yaml_tracepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_spec_conformance_review_groundedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_status_vs_reviewpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_sw_informal_witnessedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_threat_surface_presentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_trace_review_evidence_currentpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passspec_lint_unjoined_effect_halvespassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passspec_lint_yaml_escape_artefactpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsrs_generatespassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsrs_no_uncheckedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passstakeholder_acceptance_criteriapassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passstakeholder_requirements_existpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsubmission_validatedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsuspect_cleanpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsys_has_software_childpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passsystem_formalization_completepassedNot requiredSame as baseline

    raw status pass · severity error

  • Passsystem_requirements_linkedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passtable_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passtable_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passtable_equivalencepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passtest_command_propagates_failurepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passtests_passpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passtrivial_lemmapassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passtrusted_outputs_from_untrusted_inputspassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passunder_modeled_requirements_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passvacuity_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passvalidate_passespassedNot requiredSame as baseline

    raw status pass · severity error

  • Passvariable_driftpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passvariable_orphans_cleanpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passvariables_declaredpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passverification_chain_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passverification_plan_evidencepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passverification_scope_completepassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passverification_state_consistentpassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passverify_passespassedNot requiredSame as baseline

    raw status pass · severity error

  • Passwaivers_reviewedpassedNot requiredSame as baseline

    raw status pass · severity error

  • Passz3_cross_layer_consistencypassedNot requiredSame as baseline

    raw status pass · severity warning

  • Passz3_properties_verifiedpassedNot requiredSame as baseline

    raw status pass · severity warning

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

Evaluated as this PR applied onto the audit baseline 6fe078f2 (commit 9f26c213), not the PR's own branch — findings reflect the PR's change on the audited code. Freshness still tracks the PR head it represents, ff77cd02.

Repository
https://github.com/omacom/omarchy
Pull request
#13968
Evaluated tree
Synthetic mergesynthetic_merge
PR head commit
ff77cd023db8f47b75f2917131063268581bd824
Evaluated commit
9f26c213530271f1b564484e788b15188f6ad565
Audit baseline
6fe078f26da9927eff6cd23c430a08c954d51155
Spec revision
3c3e148c9f5d081920b811f97b23cc7fe4f216e6
Policy revision
6fe078f26da9927eff6cd23c430a08c954d51155
Package digest
sha256:c16c31e01db7fbd3efbb291995dd4e5d065da433d576003fcd870274d7b19504
Schema version
reqproof.evidence-package.v1
Canonicalization
v1
Engine version
0.1.0-dev
Assembler version
0.1.0-dev+gd1dfe3c7494a
Package identity
epkg-692d81c692f2d2082871b5c2f3dd7d0a895f177d73266cb8f858a3e5d9914f9b
Assembled
Oct 1, 2026 · 2 weeks ago
Canonical digest
sha256:c16c31e01db7fbd3efbb291995dd4e5d065da433d576003fcd870274d7b19504