Skip to content

Add expiry-enforced local risk review - #2

Merged
MohammadThabetHassan merged 2 commits into
mainfrom
feat/findings-risk-baselines
Aug 13, 2026
Merged

MohammadThabetHassan merged 2 commits into
mainfrom
feat/findings-risk-baselines

Conversation

@AhmedSamiAlameri

Copy link
Copy Markdown
Collaborator

Summary

  • Add trustweave risk-check to normalize supplied local review findings into stable fingerprints.
  • Add explicit, reasoned, expiry-enforced baseline and suppression contracts with deterministic severity gates.
  • Add safe empty templates and maintainer guidance while preserving the local, non-executing evidence boundary.

Contributor attribution

  • Core implementation and regression coverage: AbdulrahmanRezki <abderrahmanrezki2005@gmail.com>
  • Maintainer documentation and reviewed templates: omaralraas <20220001549@students.cud.ac.ae>
  • Group-lead review and merge owner: @MohammadThabetHassan

Verification

  • ruff format --check .
  • ruff check .
  • mypy src
  • bandit -r src/trustweave -q
  • pytest (80 passed; 90.50% coverage)
  • python3 scripts/reality_check.py
  • package build, distribution validation, and fixed-epoch wheel reproducibility
  • deterministic local risk-check workflow with an active medium-severity finding

Scope

This PR evaluates only existing supplied local review artifacts. Baselines and suppressions document temporary reviewer decisions; they do not remediate a condition, connect to ticketing, authenticate an approver, or create a runtime control.

@MohammadThabetHassan
MohammadThabetHassan merged commit 0d276eb into main Aug 13, 2026
8 checks passed
@MohammadThabetHassan
MohammadThabetHassan deleted the feat/findings-risk-baselines branch August 19, 2026 12:10
MohammadThabetHassan added a commit that referenced this pull request Oct 4, 2026
…velopment faults

scripts/rego_real_faults_study.py runs the protocol fixed in docs/REAL_FAULTS_PROTOCOL_REGO.md:
for each behaviour fix in the Gatekeeper and Config Validator histories, the module at the fix's
parent (the policy in use) and at the fix, each with its own commit's libraries; both suites'
inputs and settings; the exact study's witness space from the two versions together, its
completeness check, and OPA's decisions; the policy's own quotient as the Rego payoff study
builds it; and each strategy's exposure probability in closed form, the settings' misses
multiplied. Membership is the paper's procedure, run on the corpus as it stood at each commit.

Config Validator passes the asset at input.asset and the Constraint at input.constraint, and
decides with deny; the analysis reads a renamed copy of the syntax tree, while OPA decides on
the module as written. Only the fixtures a test reads are loaded: one malformed fixture
elsewhere in a 2019 tree stopped the whole suite, which is how the Config Validator
development fault first came back with no inputs.

The two development faults the protocol names (Gatekeeper #2, Config Validator #34) are the
only ones run so far.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants