Swift Analyzer
Documentation sections

SWIFT ANALYZER / RULE CATALOG

Problem. Evidence. Boundary.

138 rules about whole-program Swift behavior, from state that becomes stale across await to repeated collection work and sensitive data reaching logs.

138 rules141 conditions33 accepted in bounded scopes10 families

Rules: 138 · conditions: 141

ARCHAccepted subset

Unused declaration or declaration group

repository-unused@1.0.0

Unused declaration or declaration group. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-01Contract violation
ARCHAccepted subset

Production code used only by tests

architecture.production-used-only-by-tests@1.0.0

Production code used only by tests. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-02Contract violation
ARCHAccepted subset

Forbidden dependency or layer bypass

architecture.forbidden-dependency@1.0.0

Forbidden dependency or layer bypass. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-03Contract violation
ARCHAccepted subset

Excessive API visibility

api.access-narrowing@1.0.0

Excessive API visibility. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-04Improvement opportunity
ARCHAccepted subset

Unused product dependency

architecture.unused-product-dependency@1.0.0

Unused product dependency. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-05Improvement opportunity
ARCHAccepted subset

Undeclared direct provider

architecture.undeclared-direct-provider@1.0.0

Undeclared direct provider. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-06Contract violation
ARCHAccepted subset

Disallowed component cycle

architecture.dependency-cycle@1.0.0

Disallowed component cycle. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-07Contract violation
ARCHAccepted subset

Implementation type exposed through an API

api.implementation-type-leakage@1.0.0

Implementation type exposed through an API. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-08Contract violation
ARCHAccepted subset

Incompatible registration or entry point

architecture.registration-contract-mismatch@1.0.0

Incompatible registration or entry point. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-09Defect
ARCHAccepted subset

Required resource missing from a shipping variant

portfolio.arch.10@1.0.0

Required resource missing from a shipping variant. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-10Defect
ARCHAccepted subset

Parameter unused across its dispatch family

portfolio.arch.11@1.0.0

Parameter unused across its dispatch family. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-11Improvement opportunity
ARCHAccepted subset

Property is written but never observed

portfolio.arch.12@1.0.0

Property is written but never observed. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-12Improvement opportunity
ARCHAccepted subset

Redundant protocol or conformance

portfolio.arch.13@1.0.0

Redundant protocol or conformance. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-13Improvement opportunity
ARCHAccepted subset

Semantically redundant import

portfolio.arch.14@1.0.0

Semantically redundant import. It examines repository-wide reachability, dependencies, resources, and API boundaries. The result remains unknown when the required evidence is incomplete.

V-ARCH-14Improvement opportunity
EXECRecovery required

Call crosses incompatible isolation

concurrency.incompatible-isolation@1.0.0

Call crosses incompatible isolation. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-01Defect
EXECRecovery required

MainActor entry without a proven context

concurrency.unproven-mainactor-entry@1.0.0

MainActor entry without a proven context. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-02Review signal
EXECRecovery required

Required context lost through detachment

concurrency.detached-task-context-loss@1.0.0

Required context lost through detachment. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-03Contract violation
EXECRecovery required

Callback runs in an incompatible scheduler context

concurrency.dispatch-isolation-mismatch@1.0.0

Callback runs in an incompatible scheduler context. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-04Defect
EXECRecovery required

Invalid isolation assumption

portfolio.exec.05@1.0.0

Invalid isolation assumption. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-05Defect
EXECRecovery required

Resource used outside its execution domain

portfolio.exec.06@1.0.0

Resource used outside its execution domain. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-06Defect
EXECRecovery required

Thread-affine value survives a suspension

portfolio.exec.07@1.0.0

Thread-affine value survives a suspension. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-07Defect
EXECRecovery required

Required task-local value or executor preference is lost

portfolio.exec.08@1.0.0

Required task-local value or executor preference is lost. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-08Contract violation
EXECRecovery required

Blocking call on a critical executor

concurrency.main-actor-blocking@1.0.0

Blocking call on a critical executor. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-09Contract violation
EXECRecovery required

Expensive computation on a critical executor

portfolio.exec.10@1.0.0

Expensive computation on a critical executor. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-10Improvement opportunity
EXECRecovery required

Removable scheduling boundary

portfolio.exec.11@1.0.0

Removable scheduling boundary. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-11Improvement opportunity
EXECRecovery required

Cost amplified by actor crossings

portfolio.exec.12@1.0.0

Cost amplified by actor crossings. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-12Improvement opportunity
EXECRecovery required

Independent work is unintentionally serialized

portfolio.exec.13@1.0.0

Independent work is unintentionally serialized. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-13Improvement opportunity
EXECRecovery required

Custom SerialExecutor violates serialization

portfolio.exec.14@1.0.0

Custom SerialExecutor violates serialization. It examines isolation, executor, scheduler, and execution-domain relationships. The result remains unknown when the required evidence is incomplete.

V-EXEC-14Defect
ASYNCRecovery required

State check becomes stale across await

concurrency.state-freshness-across-suspension@1.0.0

State check becomes stale across await. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-01Defect
ASYNCRecovery required

Broken invariant is observable during suspension

concurrency.actor-invariant-exposure@1.0.0

Broken invariant is observable during suspension. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-02Defect
ASYNCRecovery required

Stale result overwrites a newer generation

concurrency.obsolete-generation-commit@1.0.0

Stale result overwrites a newer generation. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-03Defect
ASYNCRecovery required

Operation requiring single-flight starts more than once

portfolio.async.04@1.0.0

Operation requiring single-flight starts more than once. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-04Contract violation
ASYNCRecovery required

Code depends on an unspecified actor-task order

portfolio.async.05@1.0.0

Code depends on an unspecified actor-task order. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-05Defect
ASYNCRecovery required

Continuation can finish without resume

concurrency.lost-continuation-resume@1.0.0

Continuation can finish without resume. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-06Defect
ASYNCRecovery required

Continuation can resume more than once

concurrency.double-continuation-resume@1.0.0

Continuation can resume more than once. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-07Defect
ASYNCRecovery required

Cancellation is lost between registration and start

concurrency.cancel-register-start-race@1.0.0

Cancellation is lost between registration and start. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-08Defect
ASYNCRecovery required

Forbidden commit after cancellation or rejection

concurrency.cancelled-forbidden-effect@1.0.0

Forbidden commit after cancellation or rejection. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-09Defect
ASYNCRecovery required

Work does not honor its cancellation contract

concurrency.unresponsive-cancellation-work@1.0.0

Work does not honor its cancellation contract. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-10Contract violation
ASYNCRecovery required

Timeout or first result does not finish its scope

concurrency.timeout-sibling-outlives-race@1.0.0

Timeout or first result does not finish its scope. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-11Defect
ASYNCRecovery required

Task outlives its required lifecycle scope

concurrency.task-outlives-scope@1.0.0

Task outlives its required lifecycle scope. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-12Contract violation
ASYNCRecovery required

Required task result or error is lost

portfolio.async.13@1.0.0

Required task result or error is lost. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-13Contract violation
ASYNCRecovery required

Guard is held across a disallowed await

concurrency.guard-held-across-suspension@1.0.0

Guard is held across a disallowed await. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-14Defect
ASYNCRecovery required

Wait cycle blocks required producers

concurrency.sole-producer-self-block@1.0.0

Wait cycle blocks required producers. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-15Defect
ASYNCRecovery required

Synchronous waits exhaust the cooperative pool

portfolio.async.16@1.0.0

Synchronous waits exhaust the cooperative pool. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-16Review signal
ASYNCRecovery required

Priority inversion through opaque waiting

portfolio.async.17@1.0.0

Priority inversion through opaque waiting. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-17Improvement opportunity
ASYNCRecovery required

Shared-memory race across an unsafe or legacy boundary

portfolio.async.18@1.0.0

Shared-memory race across an unsafe or legacy boundary. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-18Defect
ASYNCRecovery required

Synchronous callback re-enters an unfinished protocol

portfolio.async.19@1.0.0

Synchronous callback re-enters an unfinished protocol. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-19Defect
ASYNCRecovery required

Custom executor loses or repeats a job

portfolio.async.20@1.0.0

Custom executor loses or repeats a job. It examines task ordering, suspension, cancellation, progress, and async obligations. The result remains unknown when the required evidence is incomplete.

V-ASYNC-20Defect
LIFERecovery required

Borrowed pointer or view escapes its lifetime

lifetime.escaping-value@1.0.0

Borrowed pointer or view escapes its lifetime. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-01Defect
LIFERecovery required

Use after free

portfolio.life.02@1.0.0

Use after free. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-02Defect
LIFERecovery required

Repeated or incompatible deallocation

portfolio.life.03@1.0.0

Repeated or incompatible deallocation. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-03Defect
LIFERecovery required

Unowned access after owner deallocation

portfolio.life.04@1.0.0

Unowned access after owner deallocation. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-04Defect
LIFERecovery required

Unmanaged ownership imbalance

lifetime.unmanaged-ownership-balance@1.0.0

Unmanaged ownership imbalance. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-05Defect
LIFERecovery required

Strong ownership cycle without a valid termination

lifetime.ownership-cycle@1.0.0

Strong ownership cycle without a valid termination. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-06Review signal
LIFERecovery required

Required weak consumer is released too early

portfolio.life.07@1.0.0

Required weak consumer is released too early. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-07Defect
LIFERecovery required

Registration outlives its allowed scope

lifetime.registration-outlives-scope@1.0.0

Registration outlives its allowed scope. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-08Contract violation
LIFERecovery required

Cleanup obligation is not discharged

lifetime.undischarged-resource-obligation@1.0.0

Cleanup obligation is not discharged. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-09Defect
LIFERecovery required

Closed or transferred resource is still used

portfolio.life.10@1.0.0

Closed or transferred resource is still used. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-10Defect
LIFERecovery required

Read from an uninitialized buffer region

portfolio.life.11@1.0.0

Read from an uninitialized buffer region. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-11Defect
LIFERecovery required

Pointer or count exceeds its valid extent

correctness.pointer-count-initialization@1.0.0

Pointer or count exceeds its valid extent. It examines ownership, resource state, and lifetime obligations across program paths. The result remains unknown when the required evidence is incomplete.

V-LIFE-12Defect
PERFRecovery required

Repeated linear traversal / Lazy pipeline is recomputed

performance.repeated-linear-traversal@1.0.0

Repeated linear traversal. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-01 · V-PERF-05Improvement opportunity
PERFRecovery required

Repeated invariant sorting

performance.repeated-sorting@1.0.0

Repeated invariant sorting. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-02Improvement opportunity
PERFRecovery required

Array used as a growing shifting FIFO

performance.array-fifo-shifts@1.0.0

Array used as a growing shifting FIFO. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-04Improvement opportunity
PERFRecovery required

Full sort used for an extremum or top-k result

portfolio.perf.06@1.0.0

Full sort used for an extremum or top-k result. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-06Improvement opportunity
PERFRecovery required

Expensive projection repeated by a comparator

performance.comparator-projection-amplification@1.0.0

Expensive projection repeated by a comparator. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-07Improvement opportunity
PERFRecovery required

Eager materialization before a short consumer

portfolio.perf.08@1.0.0

Eager materialization before a short consumer. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-08Improvement opportunity
PERFRecovery required

Repeated physical copy-on-write detach

portfolio.perf.09@1.0.0

Repeated physical copy-on-write detach. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-09Improvement opportunity
PERFRecovery required

Get-copy-modify-set amplifies cost

portfolio.perf.10@1.0.0

Get-copy-modify-set amplifies cost. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-10Improvement opportunity
PERFRecovery required

Capacity policy violates the amortized bound

portfolio.perf.12@1.0.0

Capacity policy violates the amortized bound. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-12Improvement opportunity
PERFRecovery required

Repeated element-by-element bridging

portfolio.perf.13@1.0.0

Repeated element-by-element bridging. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-13Improvement opportunity
PERFRecovery required

Repeated expensive hashing or equality work

portfolio.perf.14@1.0.0

Repeated expensive hashing or equality work. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-14Improvement opportunity
PERFRecovery required

Small slice retains large storage

portfolio.perf.15@1.0.0

Small slice retains large storage. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-15Improvement opportunity
PERFRecovery required

Fine-grained tasks amplify scheduling work

portfolio.perf.16@1.0.0

Fine-grained tasks amplify scheduling work. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-16Improvement opportunity
PERFRecovery required

Fanout retains excessive live data

portfolio.perf.17@1.0.0

Fanout retains excessive live data. It examines repeated work, allocation, traversal, retention, and scheduling cost. The result remains unknown when the required evidence is incomplete.

V-PERF-17Improvement opportunity
SECRecovery required

SQL injection

security.sql-structure-injection@1.0.0

SQL injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-03Defect
SECRecovery required

Shell injection

security.shell-command-injection@1.0.0

Shell injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-04Defect
SECRecovery required

Format-string injection

security.format-position-injection@1.0.0

Format-string injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-05Defect
SECRecovery required

Path traversal outside the extraction root

security.path-traversal@1.0.0

Path traversal outside the extraction root. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-06Defect
SECRecovery required

JavaScript or HTML context injection

security.javascript-code-injection@1.0.0

JavaScript or HTML context injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-07Defect
SECRecovery required

Unprivileged input controls a privileged URL sink

security.privileged-url-input@1.0.0

Unprivileged input controls a privileged URL sink. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-08Defect
SECRecovery required

Predicate injection

portfolio.sec.09@1.0.0

Predicate injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-09Defect
SECRecovery required

Regular-expression injection

portfolio.sec.10@1.0.0

Regular-expression injection. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-10Defect
SECRecovery required

Algorithmic denial of service through a regular expression

portfolio.sec.11@1.0.0

Algorithmic denial of service through a regular expression. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-11Defect
SECRecovery required

External-entity expansion from untrusted XML

portfolio.sec.12@1.0.0

External-entity expansion from untrusted XML. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-12Defect
SECRecovery required

TLS trust evaluation is effectively disabled

portfolio.sec.13@1.0.0

TLS trust evaluation is effectively disabled. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-13Defect
SECRecovery required

Cryptography does not provide the claimed property

portfolio.sec.14@1.0.0

Cryptography does not provide the claimed property. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-14Defect
SECRecovery required

Keyed nonce or IV is reused in an unsafe mode

portfolio.sec.15@1.0.0

Keyed nonce or IV is reused in an unsafe mode. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-15Defect
SECRecovery required

Unsafe password-derivation contract

portfolio.sec.16@1.0.0

Unsafe password-derivation contract. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-16Defect
SECRecovery required

Predictable randomness in a security-sensitive value

portfolio.sec.17@1.0.0

Predictable randomness in a security-sensitive value. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-17Defect
SECRecovery required

Untrusted deserialization crosses the allowed-type boundary

portfolio.sec.18@1.0.0

Untrusted deserialization crosses the allowed-type boundary. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-18Defect
SECRecovery required

Privileged effect bypasses required authorization

portfolio.sec.19@1.0.0

Privileged effect bypasses required authorization. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-19Contract violation
SECRecovery required

Security validator or sanitizer is bypassed

portfolio.sec.20@1.0.0

Security validator or sanitizer is bypassed. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-20Defect
SECRecovery required

Embedded secret reaches a security-sensitive use

portfolio.sec.21@1.0.0

Embedded secret reaches a security-sensitive use. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-21Defect
SECRecovery required

WebView receives forbidden capabilities

portfolio.sec.22@1.0.0

WebView receives forbidden capabilities. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-22Contract violation
SECRecovery required

Cryptographic key has insufficient strength

portfolio.sec.23@1.0.0

Cryptographic key has insufficient strength. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-23Contract violation
SECRecovery required

Dependency is fetched over an untrusted channel

portfolio.sec.24@1.0.0

Dependency is fetched over an untrusted channel. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-24Contract violation
SECRecovery required

Non-reproducible dependency resolution violates policy

portfolio.sec.25@1.0.0

Non-reproducible dependency resolution violates policy. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-25Contract violation
SECRecovery required

Debug capability is exposed in a shipping product

portfolio.sec.26@1.0.0

Debug capability is exposed in a shipping product. It examines trust boundaries, sensitive flows, validation, and security-sensitive effects. The result remains unknown when the required evidence is incomplete.

V-SEC-26Contract violation
CORAccepted subset

Equality and hashing disagree

correctness.equality-hash-contract@1.0.0

Equality and hashing disagree. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-01Defect
CORAccepted subset

Process-local hash is used as a stable identity

correctness.persisted-process-hash@1.0.0

Process-local hash is used as a stable identity. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-02Defect
CORAccepted subset

Incompatible length or index units

correctness.regex-range-units@1.0.0

Incompatible length or index units. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-03Defect
CORAccepted subset

Invalidated collection index is used

correctness.invalidated-collection-index@1.0.0

Invalidated collection index is used. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-04Defect
CORAccepted subset

Key changes equality or hash while in a collection

correctness.mutable-collection-key@1.0.0

Key changes equality or hash while in a collection. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-05Defect
CORAccepted subset

Ordering laws are violated

correctness.bounded-ordering-law@1.0.0

Ordering laws are violated. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-06Defect
CORAccepted subset

Unstable ordering reaches canonical output

correctness.canonical-output-nondeterminism@1.0.0

Unstable ordering reaches canonical output. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-07Defect
CORAccepted subset

Size or count exceeds its numeric range

portfolio.cor.08@1.0.0

Size or count exceeds its numeric range. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-08Defect
CORAccepted subset

Non-finite value reaches a finite-only consumer

portfolio.cor.09@1.0.0

Non-finite value reaches a finite-only consumer. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-09Defect
CORAccepted subset

Interprocedural path reaches an invalid force operation

portfolio.cor.10@1.0.0

Interprocedural path reaches an invalid force operation. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-10Defect
CORAccepted subset

Single-pass sequence is consumed more than once

portfolio.cor.11@1.0.0

Single-pass sequence is consumed more than once. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-11Defect
CORAccepted subset

Copy violates the state-independence contract

portfolio.cor.12@1.0.0

Copy violates the state-independence contract. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-12Defect
CORAccepted subset

Producer and consumer canonicalize identity differently

portfolio.cor.13@1.0.0

Producer and consumer canonicalize identity differently. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-13Defect
CORAccepted subset

Written value is lost before observation

portfolio.cor.14@1.0.0

Written value is lost before observation. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-14Improvement opportunity
CORAccepted subset

Predicate does not distinguish valid states

portfolio.cor.15@1.0.0

Predicate does not distinguish valid states. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-15Defect
CORAccepted subset

Conditional-result branches are semantically identical

portfolio.cor.16@1.0.0

Conditional-result branches are semantically identical. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-16Improvement opportunity
CORAccepted subset

Control-flow region is unreachable

portfolio.cor.17@1.0.0

Control-flow region is unreachable. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-17Defect
CORAccepted subset

Computed result is discarded without a useful effect

portfolio.cor.18@1.0.0

Computed result is discarded without a useful effect. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-18Improvement opportunity
CORAccepted subset

Comparison violates its numeric precision contract

portfolio.cor.19@1.0.0

Comparison violates its numeric precision contract. It examines value, collection, identity, ordering, and control-flow contracts. The result remains unknown when the required evidence is incomplete.

V-COR-19Contract violation
STREAMRecovery required

Buffer or accumulator lacks a required bound

portfolio.stream.01@1.0.0

Buffer or accumulator lacks a required bound. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-01Contract violation
STREAMRecovery required

Drop policy violates required event delivery

portfolio.stream.02@1.0.0

Drop policy violates required event delivery. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-02Defect
STREAMRecovery required

Concurrent next calls on a single-consumer iterator

portfolio.stream.03@1.0.0

Concurrent next calls on a single-consumer iterator. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-03Defect
STREAMRecovery required

Stream is not finished on a required terminal path

portfolio.stream.04@1.0.0

Stream is not finished on a required terminal path. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-04Defect
STREAMRecovery required

Retry or refresh forms a loop without progress or budget

portfolio.stream.05@1.0.0

Retry or refresh forms a loop without progress or budget. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-05Contract violation
STREAMRecovery required

Retry duplicates a non-idempotent effect

portfolio.stream.06@1.0.0

Retry duplicates a non-idempotent effect. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-06Defect
STREAMRecovery required

Related changes escape a required transaction

portfolio.stream.07@1.0.0

Related changes escape a required transaction. It examines buffering, delivery, progress, retry, and transaction boundaries. The result remains unknown when the required evidence is incomplete.

V-STREAM-07Defect
UIRecovery required

Element identity is unstable across updates

portfolio.ui.01@1.0.0

Element identity is unstable across updates. It examines SwiftUI identity, update, and state-lifecycle behavior. The result remains unknown when the required evidence is incomplete.

V-UI-01Defect
UIRecovery required

Distinct elements share one identity

portfolio.ui.02@1.0.0

Distinct elements share one identity. It examines SwiftUI identity, update, and state-lifecycle behavior. The result remains unknown when the required evidence is incomplete.

V-UI-02Defect
UIRecovery required

View computation causes a state-update cycle

portfolio.ui.03@1.0.0

View computation causes a state-update cycle. It examines SwiftUI identity, update, and state-lifecycle behavior. The result remains unknown when the required evidence is incomplete.

V-UI-03Defect
UIRecovery required

One-time state does not update with required input

portfolio.ui.04@1.0.0

One-time state does not update with required input. It examines SwiftUI identity, update, and state-lifecycle behavior. The result remains unknown when the required evidence is incomplete.

V-UI-04Contract violation
CHANGERecovery required

Source API change breaks an admitted consumer

portfolio.change.01@1.0.0

Source API change breaks an admitted consumer. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-01Defect
CHANGERecovery required

ABI change breaks binary compatibility

portfolio.change.02@1.0.0

ABI change breaks binary compatibility. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-02Defect
CHANGERecovery required

Existing signature gains incompatible behavior

portfolio.change.03@1.0.0

Existing signature gains incompatible behavior. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-03Defect
CHANGERecovery required

Consumer silently binds to a different symbol

portfolio.change.04@1.0.0

Consumer silently binds to a different symbol. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-04Review signal
CHANGERecovery required

Version range admits an incompatible provider

portfolio.change.05@1.0.0

Version range admits an incompatible provider. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-05Contract violation
CHANGERecovery required

Change bypasses required consumer review

portfolio.change.06@1.0.0

Change bypasses required consumer review. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-06Contract violation
CHANGERecovery required

Comparable resource bound regresses

portfolio.change.07@1.0.0

Comparable resource bound regresses. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-07Improvement opportunity
CHANGERecovery required

Cache key or invalidation omits a result dependency

portfolio.change.08@1.0.0

Cache key or invalidation omits a result dependency. It examines source, ABI, dependency, resource, and cache compatibility across changes. The result remains unknown when the required evidence is incomplete.

V-CHANGE-08Defect

One RuleID can group several conditions. Result kind does not define severity, and first-result strategy does not imply readiness.