Repository navigation
feat(sweep, framework-checks): Java, Rust and Ruby review checks; propose-rule; core pin - #315
Merged
Merged
Conversation
…inatra Four new sections, 57 checks, each with its CWE, ASVS 5.0 section and the route-guards or grpc-guards evidence that settles it, including the new matrix markers (method security off, conditional filter chains, unregistered actix macros, before_action skips). The audit skill names the new families and their tree-sitter extras. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…va, rust and ruby enumerators traust depends on traust-core[js,java,rust,ruby] at core#282's head, so audits enumerate Spring/JAX-RS, axum/actix-web/tonic and Rails/Sinatra. traust sweep propose-rule submits an inference-proposed rule to core's deterministic gate (exit 0 staged as a draft, 1 refused, 2 error), and /mine-ledger says when and how to use it. Rails app paths in the framework checks are written <app>/config/... for the docs gate. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: chubirka The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Step 8 of the Vercel comparison gap plan (
progress-tracker/plans/vercel-comparison-gap-plan.md, owner Michele), traust part. This is the last PR of the plan.Merge order: traust-core#282 (Ruby) → this PR. Core is pinned at #282's head (
aa38b06), which carries #276 (Java), #277 (the rule-proposal gate) and #281 (Rust).Changes
Dependencies
traust-core[js]→traust-core[js,java,rust,ruby], so audits enumerate Spring/JAX-RS, axum/actix-web/tonic and Rails/Sinatra by default.uv.lockrelocked withrevision = 3kept.Review checks (
framework-checks.md): four new sections, 57 checks, each with its CWE, ASVS 5.0 section and the deterministic evidence that settles it.method-security-not-enabled,spring-security:conditional-configandspring-security:defaultmarkers.actix:registration-not-found.skip_before_action:<callback>and callback asymmetries./secure-code-audit's route-guards section names the new families and extras. Rails app paths are written<app>/config/…for the docs gate.Rule proposals:
traust sweep propose-rule --rule --example --shape --checkout [--json]submits an inference-proposed rule to core's deterministic gate (#277). Exit codes:/mine-ledgersays when to propose, how, and that a refused proposal is fixed or dropped, never loosened. An admitted draft follows the same calibrate →sweep sweep→sweep emitpath, and promotion into the pack stays a human point.docs/cli-reference.mdlists the op.docs/skills.mdis unchanged (A13 waiver): its entries are skill descriptions.Verification
pytest tests/: 2,621 passed, 69 skipped. The alignment, security-posture, docs-consistency and content-licence gates pass.traust adapters route-guardson the seeded fixtures (traust-internal#53): each reports its family (spring,jax-rs,axum,rails) with no coverage gaps, and 3 judged rows each (the planted auth defects plus the by-design public route).traust sweep propose-rulewith real opengrep:os.system($CMD)proposal withruleid:/ok:examples passed all six checks and was staged (rule.skeleton.yaml,rule.skeleton.py,DRAFT.md), exit 0;(os)\1regex was refused at the regex check, exit 1, and never ran.Changed tests (approved by the owner, 2026-10-28)
test_framework_checks.py::test_every_section_is_present_and_ids_uniqueOP, GR, FA, EX→ +JV, RW, TN, RL, SN, with floors 14, 11, 6, 12, 6New tests:
test_framework_checks.py::test_jvm_rust_and_ruby_sections_name_their_matrix_markers,tests/test_sweep_propose.py(4).🤖 Generated with Claude Code