Install
openclaw skills install combine-code-reviewReviews Combine framework code for memory leaks, operator misuse, and error handling. Use when reviewing code with import Combine, AnyPublisher, @Published, PassthroughSubject, or CurrentValueSubject.
openclaw skills install combine-code-review| Issue Type | Reference |
|---|---|
| Publishers, Subjects, AnyPublisher | references/publishers.md |
| map, flatMap, combineLatest, switchToLatest | references/operators.md |
| AnyCancellable, retain cycles, [weak self] | references/memory.md |
| tryMap, catch, replaceError, Never | references/error-handling.md |
sink closures use [weak self] when self owns cancellableassign(to:on:self) usage (use assign(to: &$property) or sink)AnyPublisher via eraseToAnyPublisher()flatMap used correctly (not when map + switchToLatest needed)flatMap to keep main chain alivetryMap followed by mapError to restore error typesreceive(on: DispatchQueue.main) before UI updatesComplete in order. Do not skip ahead while a prior gate is open.
AnyPublisher, @Published, PassthroughSubject). If none apply, stop with “out of scope.”sink, assign, and store(in:) in scope, you state where the AnyCancellable is retained (property, Set, task lifetime) or mark ephemeral with a one-line reason (e.g. synchronous one-shot that cannot outlive caller). If you cannot tell from the snippet, say unknown and ask for surrounding storage, do not assume safe.[weak self], [unowned self], or non-capturing patterns you relied on.receive(on: DispatchQueue.main), @MainActor, or equivalent before the UI work, or flag missing scheduling with file:line.file:line (or exact pasted lines) and names which Review Checklist row it breaks. Lower-severity notes may omit line numbers but must still be reproducible from named files.