# Swift Analyzer rule catalog

Snapshot: 4558458d. 138 RuleIDs, 141 conditions; 33 bounded conditions accepted and 108 awaiting qualification.

An accepted subset does not imply full rule maturity. When required evidence is incomplete, the result remains unknown.

- [repository-unused@1.0.0 — Unused declaration or declaration group](https://docs.swift-analyzer.com/en/catalog/repository-unused/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/repository-unused/index.md)
- [architecture.production-used-only-by-tests@1.0.0 — Production code used only by tests](https://docs.swift-analyzer.com/en/catalog/architecture.production-used-only-by-tests/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.production-used-only-by-tests/index.md)
- [architecture.forbidden-dependency@1.0.0 — Forbidden dependency or layer bypass](https://docs.swift-analyzer.com/en/catalog/architecture.forbidden-dependency/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.forbidden-dependency/index.md)
- [api.access-narrowing@1.0.0 — Excessive API visibility](https://docs.swift-analyzer.com/en/catalog/api.access-narrowing/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/api.access-narrowing/index.md)
- [architecture.unused-product-dependency@1.0.0 — Unused product dependency](https://docs.swift-analyzer.com/en/catalog/architecture.unused-product-dependency/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.unused-product-dependency/index.md)
- [architecture.undeclared-direct-provider@1.0.0 — Undeclared direct provider](https://docs.swift-analyzer.com/en/catalog/architecture.undeclared-direct-provider/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.undeclared-direct-provider/index.md)
- [architecture.dependency-cycle@1.0.0 — Disallowed component cycle](https://docs.swift-analyzer.com/en/catalog/architecture.dependency-cycle/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.dependency-cycle/index.md)
- [api.implementation-type-leakage@1.0.0 — Implementation type exposed through an API](https://docs.swift-analyzer.com/en/catalog/api.implementation-type-leakage/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/api.implementation-type-leakage/index.md)
- [architecture.registration-contract-mismatch@1.0.0 — Incompatible registration or entry point](https://docs.swift-analyzer.com/en/catalog/architecture.registration-contract-mismatch/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/architecture.registration-contract-mismatch/index.md)
- [portfolio.arch.10@1.0.0 — Required resource missing from a shipping variant](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.10/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.10/index.md)
- [portfolio.arch.11@1.0.0 — Parameter unused across its dispatch family](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.11/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.11/index.md)
- [portfolio.arch.12@1.0.0 — Property is written but never observed](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.12/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.12/index.md)
- [portfolio.arch.13@1.0.0 — Redundant protocol or conformance](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.13/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.13/index.md)
- [portfolio.arch.14@1.0.0 — Semantically redundant import](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.14/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.arch.14/index.md)
- [concurrency.incompatible-isolation@1.0.0 — Call crosses incompatible isolation](https://docs.swift-analyzer.com/en/catalog/concurrency.incompatible-isolation/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.incompatible-isolation/index.md)
- [concurrency.unproven-mainactor-entry@1.0.0 — MainActor entry without a proven context](https://docs.swift-analyzer.com/en/catalog/concurrency.unproven-mainactor-entry/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.unproven-mainactor-entry/index.md)
- [concurrency.detached-task-context-loss@1.0.0 — Required context lost through detachment](https://docs.swift-analyzer.com/en/catalog/concurrency.detached-task-context-loss/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.detached-task-context-loss/index.md)
- [concurrency.dispatch-isolation-mismatch@1.0.0 — Callback runs in an incompatible scheduler context](https://docs.swift-analyzer.com/en/catalog/concurrency.dispatch-isolation-mismatch/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.dispatch-isolation-mismatch/index.md)
- [portfolio.exec.05@1.0.0 — Invalid isolation assumption](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.05/index.md)
- [portfolio.exec.06@1.0.0 — Resource used outside its execution domain](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.06/index.md)
- [portfolio.exec.07@1.0.0 — Thread-affine value survives a suspension](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.07/index.md)
- [portfolio.exec.08@1.0.0 — Required task-local value or executor preference is lost](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.08/index.md)
- [concurrency.main-actor-blocking@1.0.0 — Blocking call on a critical executor](https://docs.swift-analyzer.com/en/catalog/concurrency.main-actor-blocking/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.main-actor-blocking/index.md)
- [portfolio.exec.10@1.0.0 — Expensive computation on a critical executor](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.10/index.md)
- [portfolio.exec.11@1.0.0 — Removable scheduling boundary](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.11/index.md)
- [portfolio.exec.12@1.0.0 — Cost amplified by actor crossings](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.12/index.md)
- [portfolio.exec.13@1.0.0 — Independent work is unintentionally serialized](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.13/index.md)
- [portfolio.exec.14@1.0.0 — Custom SerialExecutor violates serialization](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.exec.14/index.md)
- [concurrency.state-freshness-across-suspension@1.0.0 — State check becomes stale across await](https://docs.swift-analyzer.com/en/catalog/concurrency.state-freshness-across-suspension/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.state-freshness-across-suspension/index.md)
- [concurrency.actor-invariant-exposure@1.0.0 — Broken invariant is observable during suspension](https://docs.swift-analyzer.com/en/catalog/concurrency.actor-invariant-exposure/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.actor-invariant-exposure/index.md)
- [concurrency.obsolete-generation-commit@1.0.0 — Stale result overwrites a newer generation](https://docs.swift-analyzer.com/en/catalog/concurrency.obsolete-generation-commit/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.obsolete-generation-commit/index.md)
- [portfolio.async.04@1.0.0 — Operation requiring single-flight starts more than once](https://docs.swift-analyzer.com/en/catalog/portfolio.async.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.04/index.md)
- [portfolio.async.05@1.0.0 — Code depends on an unspecified actor-task order](https://docs.swift-analyzer.com/en/catalog/portfolio.async.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.05/index.md)
- [concurrency.lost-continuation-resume@1.0.0 — Continuation can finish without resume](https://docs.swift-analyzer.com/en/catalog/concurrency.lost-continuation-resume/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.lost-continuation-resume/index.md)
- [concurrency.double-continuation-resume@1.0.0 — Continuation can resume more than once](https://docs.swift-analyzer.com/en/catalog/concurrency.double-continuation-resume/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.double-continuation-resume/index.md)
- [concurrency.cancel-register-start-race@1.0.0 — Cancellation is lost between registration and start](https://docs.swift-analyzer.com/en/catalog/concurrency.cancel-register-start-race/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.cancel-register-start-race/index.md)
- [concurrency.cancelled-forbidden-effect@1.0.0 — Forbidden commit after cancellation or rejection](https://docs.swift-analyzer.com/en/catalog/concurrency.cancelled-forbidden-effect/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.cancelled-forbidden-effect/index.md)
- [concurrency.unresponsive-cancellation-work@1.0.0 — Work does not honor its cancellation contract](https://docs.swift-analyzer.com/en/catalog/concurrency.unresponsive-cancellation-work/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.unresponsive-cancellation-work/index.md)
- [concurrency.timeout-sibling-outlives-race@1.0.0 — Timeout or first result does not finish its scope](https://docs.swift-analyzer.com/en/catalog/concurrency.timeout-sibling-outlives-race/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.timeout-sibling-outlives-race/index.md)
- [concurrency.task-outlives-scope@1.0.0 — Task outlives its required lifecycle scope](https://docs.swift-analyzer.com/en/catalog/concurrency.task-outlives-scope/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.task-outlives-scope/index.md)
- [portfolio.async.13@1.0.0 — Required task result or error is lost](https://docs.swift-analyzer.com/en/catalog/portfolio.async.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.13/index.md)
- [concurrency.guard-held-across-suspension@1.0.0 — Guard is held across a disallowed await](https://docs.swift-analyzer.com/en/catalog/concurrency.guard-held-across-suspension/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.guard-held-across-suspension/index.md)
- [concurrency.sole-producer-self-block@1.0.0 — Wait cycle blocks required producers](https://docs.swift-analyzer.com/en/catalog/concurrency.sole-producer-self-block/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/concurrency.sole-producer-self-block/index.md)
- [portfolio.async.16@1.0.0 — Synchronous waits exhaust the cooperative pool](https://docs.swift-analyzer.com/en/catalog/portfolio.async.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.16/index.md)
- [portfolio.async.17@1.0.0 — Priority inversion through opaque waiting](https://docs.swift-analyzer.com/en/catalog/portfolio.async.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.17/index.md)
- [portfolio.async.18@1.0.0 — Shared-memory race across an unsafe or legacy boundary](https://docs.swift-analyzer.com/en/catalog/portfolio.async.18/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.18/index.md)
- [portfolio.async.19@1.0.0 — Synchronous callback re-enters an unfinished protocol](https://docs.swift-analyzer.com/en/catalog/portfolio.async.19/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.19/index.md)
- [portfolio.async.20@1.0.0 — Custom executor loses or repeats a job](https://docs.swift-analyzer.com/en/catalog/portfolio.async.20/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.async.20/index.md)
- [lifetime.escaping-value@1.0.0 — Borrowed pointer or view escapes its lifetime](https://docs.swift-analyzer.com/en/catalog/lifetime.escaping-value/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/lifetime.escaping-value/index.md)
- [portfolio.life.02@1.0.0 — Use after free](https://docs.swift-analyzer.com/en/catalog/portfolio.life.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.02/index.md)
- [portfolio.life.03@1.0.0 — Repeated or incompatible deallocation](https://docs.swift-analyzer.com/en/catalog/portfolio.life.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.03/index.md)
- [portfolio.life.04@1.0.0 — Unowned access after owner deallocation](https://docs.swift-analyzer.com/en/catalog/portfolio.life.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.04/index.md)
- [lifetime.unmanaged-ownership-balance@1.0.0 — Unmanaged ownership imbalance](https://docs.swift-analyzer.com/en/catalog/lifetime.unmanaged-ownership-balance/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/lifetime.unmanaged-ownership-balance/index.md)
- [lifetime.ownership-cycle@1.0.0 — Strong ownership cycle without a valid termination](https://docs.swift-analyzer.com/en/catalog/lifetime.ownership-cycle/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/lifetime.ownership-cycle/index.md)
- [portfolio.life.07@1.0.0 — Required weak consumer is released too early](https://docs.swift-analyzer.com/en/catalog/portfolio.life.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.07/index.md)
- [lifetime.registration-outlives-scope@1.0.0 — Registration outlives its allowed scope](https://docs.swift-analyzer.com/en/catalog/lifetime.registration-outlives-scope/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/lifetime.registration-outlives-scope/index.md)
- [lifetime.undischarged-resource-obligation@1.0.0 — Cleanup obligation is not discharged](https://docs.swift-analyzer.com/en/catalog/lifetime.undischarged-resource-obligation/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/lifetime.undischarged-resource-obligation/index.md)
- [portfolio.life.10@1.0.0 — Closed or transferred resource is still used](https://docs.swift-analyzer.com/en/catalog/portfolio.life.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.10/index.md)
- [portfolio.life.11@1.0.0 — Read from an uninitialized buffer region](https://docs.swift-analyzer.com/en/catalog/portfolio.life.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.life.11/index.md)
- [correctness.pointer-count-initialization@1.0.0 — Pointer or count exceeds its valid extent](https://docs.swift-analyzer.com/en/catalog/correctness.pointer-count-initialization/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.pointer-count-initialization/index.md)
- [performance.repeated-linear-traversal@1.0.0 — Repeated linear traversal / Lazy pipeline is recomputed](https://docs.swift-analyzer.com/en/catalog/performance.repeated-linear-traversal/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/performance.repeated-linear-traversal/index.md)
- [performance.repeated-sorting@1.0.0 — Repeated invariant sorting](https://docs.swift-analyzer.com/en/catalog/performance.repeated-sorting/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/performance.repeated-sorting/index.md)
- [performance.repeated-consumed-materialization@1.0.0 — Repeated consumed materialization / Growing prefix is repeatedly materialized](https://docs.swift-analyzer.com/en/catalog/performance.repeated-consumed-materialization/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/performance.repeated-consumed-materialization/index.md)
- [performance.array-fifo-shifts@1.0.0 — Array used as a growing shifting FIFO](https://docs.swift-analyzer.com/en/catalog/performance.array-fifo-shifts/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/performance.array-fifo-shifts/index.md)
- [portfolio.perf.06@1.0.0 — Full sort used for an extremum or top-k result](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.06/index.md)
- [performance.comparator-projection-amplification@1.0.0 — Expensive projection repeated by a comparator](https://docs.swift-analyzer.com/en/catalog/performance.comparator-projection-amplification/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/performance.comparator-projection-amplification/index.md)
- [portfolio.perf.08@1.0.0 — Eager materialization before a short consumer](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.08/index.md)
- [portfolio.perf.09@1.0.0 — Repeated physical copy-on-write detach](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.09/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.09/index.md)
- [portfolio.perf.10@1.0.0 — Get-copy-modify-set amplifies cost](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.10/index.md)
- [portfolio.perf.12@1.0.0 — Capacity policy violates the amortized bound](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.12/index.md)
- [portfolio.perf.13@1.0.0 — Repeated element-by-element bridging](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.13/index.md)
- [portfolio.perf.14@1.0.0 — Repeated expensive hashing or equality work](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.14/index.md)
- [portfolio.perf.15@1.0.0 — Small slice retains large storage](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.15/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.15/index.md)
- [portfolio.perf.16@1.0.0 — Fine-grained tasks amplify scheduling work](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.16/index.md)
- [portfolio.perf.17@1.0.0 — Fanout retains excessive live data](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.perf.17/index.md)
- [security.sensitive-data-flow@1.0.0 — Sensitive data reaches logs / Sensitive data reaches a forbidden destination](https://docs.swift-analyzer.com/en/catalog/security.sensitive-data-flow/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.sensitive-data-flow/index.md)
- [security.sql-structure-injection@1.0.0 — SQL injection](https://docs.swift-analyzer.com/en/catalog/security.sql-structure-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.sql-structure-injection/index.md)
- [security.shell-command-injection@1.0.0 — Shell injection](https://docs.swift-analyzer.com/en/catalog/security.shell-command-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.shell-command-injection/index.md)
- [security.format-position-injection@1.0.0 — Format-string injection](https://docs.swift-analyzer.com/en/catalog/security.format-position-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.format-position-injection/index.md)
- [security.path-traversal@1.0.0 — Path traversal outside the extraction root](https://docs.swift-analyzer.com/en/catalog/security.path-traversal/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.path-traversal/index.md)
- [security.javascript-code-injection@1.0.0 — JavaScript or HTML context injection](https://docs.swift-analyzer.com/en/catalog/security.javascript-code-injection/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.javascript-code-injection/index.md)
- [security.privileged-url-input@1.0.0 — Unprivileged input controls a privileged URL sink](https://docs.swift-analyzer.com/en/catalog/security.privileged-url-input/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/security.privileged-url-input/index.md)
- [portfolio.sec.09@1.0.0 — Predicate injection](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.09/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.09/index.md)
- [portfolio.sec.10@1.0.0 — Regular-expression injection](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.10/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.10/index.md)
- [portfolio.sec.11@1.0.0 — Algorithmic denial of service through a regular expression](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.11/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.11/index.md)
- [portfolio.sec.12@1.0.0 — External-entity expansion from untrusted XML](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.12/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.12/index.md)
- [portfolio.sec.13@1.0.0 — TLS trust evaluation is effectively disabled](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.13/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.13/index.md)
- [portfolio.sec.14@1.0.0 — Cryptography does not provide the claimed property](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.14/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.14/index.md)
- [portfolio.sec.15@1.0.0 — Keyed nonce or IV is reused in an unsafe mode](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.15/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.15/index.md)
- [portfolio.sec.16@1.0.0 — Unsafe password-derivation contract](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.16/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.16/index.md)
- [portfolio.sec.17@1.0.0 — Predictable randomness in a security-sensitive value](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.17/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.17/index.md)
- [portfolio.sec.18@1.0.0 — Untrusted deserialization crosses the allowed-type boundary](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.18/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.18/index.md)
- [portfolio.sec.19@1.0.0 — Privileged effect bypasses required authorization](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.19/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.19/index.md)
- [portfolio.sec.20@1.0.0 — Security validator or sanitizer is bypassed](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.20/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.20/index.md)
- [portfolio.sec.21@1.0.0 — Embedded secret reaches a security-sensitive use](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.21/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.21/index.md)
- [portfolio.sec.22@1.0.0 — WebView receives forbidden capabilities](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.22/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.22/index.md)
- [portfolio.sec.23@1.0.0 — Cryptographic key has insufficient strength](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.23/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.23/index.md)
- [portfolio.sec.24@1.0.0 — Dependency is fetched over an untrusted channel](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.24/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.24/index.md)
- [portfolio.sec.25@1.0.0 — Non-reproducible dependency resolution violates policy](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.25/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.25/index.md)
- [portfolio.sec.26@1.0.0 — Debug capability is exposed in a shipping product](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.26/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.sec.26/index.md)
- [correctness.equality-hash-contract@1.0.0 — Equality and hashing disagree](https://docs.swift-analyzer.com/en/catalog/correctness.equality-hash-contract/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.equality-hash-contract/index.md)
- [correctness.persisted-process-hash@1.0.0 — Process-local hash is used as a stable identity](https://docs.swift-analyzer.com/en/catalog/correctness.persisted-process-hash/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.persisted-process-hash/index.md)
- [correctness.regex-range-units@1.0.0 — Incompatible length or index units](https://docs.swift-analyzer.com/en/catalog/correctness.regex-range-units/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.regex-range-units/index.md)
- [correctness.invalidated-collection-index@1.0.0 — Invalidated collection index is used](https://docs.swift-analyzer.com/en/catalog/correctness.invalidated-collection-index/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.invalidated-collection-index/index.md)
- [correctness.mutable-collection-key@1.0.0 — Key changes equality or hash while in a collection](https://docs.swift-analyzer.com/en/catalog/correctness.mutable-collection-key/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.mutable-collection-key/index.md)
- [correctness.bounded-ordering-law@1.0.0 — Ordering laws are violated](https://docs.swift-analyzer.com/en/catalog/correctness.bounded-ordering-law/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.bounded-ordering-law/index.md)
- [correctness.canonical-output-nondeterminism@1.0.0 — Unstable ordering reaches canonical output](https://docs.swift-analyzer.com/en/catalog/correctness.canonical-output-nondeterminism/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/correctness.canonical-output-nondeterminism/index.md)
- [portfolio.cor.08@1.0.0 — Size or count exceeds its numeric range](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.08/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.08/index.md)
- [portfolio.cor.09@1.0.0 — Non-finite value reaches a finite-only consumer](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.09/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.09/index.md)
- [portfolio.cor.10@1.0.0 — Interprocedural path reaches an invalid force operation](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.10/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.10/index.md)
- [portfolio.cor.11@1.0.0 — Single-pass sequence is consumed more than once](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.11/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.11/index.md)
- [portfolio.cor.12@1.0.0 — Copy violates the state-independence contract](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.12/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.12/index.md)
- [portfolio.cor.13@1.0.0 — Producer and consumer canonicalize identity differently](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.13/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.13/index.md)
- [portfolio.cor.14@1.0.0 — Written value is lost before observation](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.14/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.14/index.md)
- [portfolio.cor.15@1.0.0 — Predicate does not distinguish valid states](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.15/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.15/index.md)
- [portfolio.cor.16@1.0.0 — Conditional-result branches are semantically identical](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.16/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.16/index.md)
- [portfolio.cor.17@1.0.0 — Control-flow region is unreachable](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.17/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.17/index.md)
- [portfolio.cor.18@1.0.0 — Computed result is discarded without a useful effect](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.18/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.18/index.md)
- [portfolio.cor.19@1.0.0 — Comparison violates its numeric precision contract](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.19/) — accepted-subset; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.cor.19/index.md)
- [portfolio.stream.01@1.0.0 — Buffer or accumulator lacks a required bound](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.01/index.md)
- [portfolio.stream.02@1.0.0 — Drop policy violates required event delivery](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.02/index.md)
- [portfolio.stream.03@1.0.0 — Concurrent next calls on a single-consumer iterator](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.03/index.md)
- [portfolio.stream.04@1.0.0 — Stream is not finished on a required terminal path](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.04/index.md)
- [portfolio.stream.05@1.0.0 — Retry or refresh forms a loop without progress or budget](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.05/index.md)
- [portfolio.stream.06@1.0.0 — Retry duplicates a non-idempotent effect](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.06/index.md)
- [portfolio.stream.07@1.0.0 — Related changes escape a required transaction](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.stream.07/index.md)
- [portfolio.ui.01@1.0.0 — Element identity is unstable across updates](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.01/index.md)
- [portfolio.ui.02@1.0.0 — Distinct elements share one identity](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.02/index.md)
- [portfolio.ui.03@1.0.0 — View computation causes a state-update cycle](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.03/index.md)
- [portfolio.ui.04@1.0.0 — One-time state does not update with required input](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.ui.04/index.md)
- [portfolio.change.01@1.0.0 — Source API change breaks an admitted consumer](https://docs.swift-analyzer.com/en/catalog/portfolio.change.01/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.01/index.md)
- [portfolio.change.02@1.0.0 — ABI change breaks binary compatibility](https://docs.swift-analyzer.com/en/catalog/portfolio.change.02/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.02/index.md)
- [portfolio.change.03@1.0.0 — Existing signature gains incompatible behavior](https://docs.swift-analyzer.com/en/catalog/portfolio.change.03/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.03/index.md)
- [portfolio.change.04@1.0.0 — Consumer silently binds to a different symbol](https://docs.swift-analyzer.com/en/catalog/portfolio.change.04/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.04/index.md)
- [portfolio.change.05@1.0.0 — Version range admits an incompatible provider](https://docs.swift-analyzer.com/en/catalog/portfolio.change.05/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.05/index.md)
- [portfolio.change.06@1.0.0 — Change bypasses required consumer review](https://docs.swift-analyzer.com/en/catalog/portfolio.change.06/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.06/index.md)
- [portfolio.change.07@1.0.0 — Comparable resource bound regresses](https://docs.swift-analyzer.com/en/catalog/portfolio.change.07/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.07/index.md)
- [portfolio.change.08@1.0.0 — Cache key or invalidation omits a result dependency](https://docs.swift-analyzer.com/en/catalog/portfolio.change.08/) — recovery-required; [Markdown](https://docs.swift-analyzer.com/en/catalog/portfolio.change.08/index.md)

---
Language: en
Canonical: https://docs.swift-analyzer.com/en/catalog
Source revision: 4558458d
