{"data":{"skill":{"slug":"avdlee-swiftui-expert-skill","name":"swiftui-expert-skill","icon":"📦","repo":"https://github.com/avdlee/swiftui-agent-skill/tree/main/swiftui-expert-skill/","status":"approved","author":"avdlee","authorVersion":null,"skillstoreRevision":2},"audit":{"id":"4fecb46e-e505-4329-b8a8-5a9c6840e7c6","skill_id":"6c28cfe2-2d6f-4d60-93e9-d883d9195567","version":6,"content_hash":"v3:194714deee7b9b088e8f12ccbfae81a852db6228:e74c27b66f5ff5da524ede219348e7f9ddb7602ca9288cc5e3972e8e05e3ba29:fd822895d92c05b8151e9e3fa7923d57ebe41f994dbb6b825074ce8a088c7f93:736b696c6c732f6176646c65652f737769667475692d6578706572742d736b696c6c:ef80cada84e9bb1469241ad9d82cc581","risk_level":"safe","is_blocked":false,"safe_to_publish":true,"analysis_status":"ok","agent_auto_install_policy":"allowed","manual_install_policy":"allowed","summary":"All 276 static findings were adjudicated as false positives. Most are documentation or identifier matches; the bundled scripts perform only the documented local Instruments workflow with argument-array subprocess calls. No prompt injection, credential access, data exfiltration, or command-injection intent was found.","remediation":[{"issue":"Trace recording executes local Xcode Instruments commands when explicitly requested.","severity":"low","suggestion":"Keep command arguments as arrays, require an explicit user target, and display the proposed recording command before execution."},{"issue":"A predictable temporary stop-file can be created by another local user to stop a recording.","severity":"low","suggestion":"Use a per-session stop-file in a private directory when concurrent local users are a concern."}],"risk_factor_evidence":[{"factor":"network","evidence":[{"file":"references/latest-apis.md","line_end":455,"line_start":455}]},{"factor":"external_commands","evidence":[{"file":"references/trace-recording.md","line_end":117,"line_start":115},{"file":"references/view-structure.md","line_end":159,"line_start":151},{"file":"scripts/analyze_trace.py","line_end":255,"line_start":255},{"file":"scripts/instruments_parser/causes.py","line_end":1,"line_start":1},{"file":"scripts/instruments_parser/causes.py","line_end":12,"line_start":12},{"file":"scripts/instruments_parser/causes.py","line_end":18,"line_start":18},{"file":"scripts/instruments_parser/causes.py","line_end":136,"line_start":136},{"file":"scripts/instruments_parser/causes.py","line_end":138,"line_start":138},{"file":"scripts/instruments_parser/correlate.py","line_end":16,"line_start":16},{"file":"scripts/instruments_parser/events.py","line_end":31,"line_start":31},{"file":"scripts/instruments_parser/events.py","line_end":105,"line_start":105},{"file":"scripts/instruments_parser/events.py","line_end":107,"line_start":107},{"file":"scripts/instruments_parser/events.py","line_end":111,"line_start":111},{"file":"scripts/instruments_parser/events.py","line_end":112,"line_start":112},{"file":"scripts/instruments_parser/events.py","line_end":115,"line_start":115},{"file":"scripts/instruments_parser/events.py","line_end":116,"line_start":116},{"file":"scripts/instruments_parser/events.py","line_end":117,"line_start":117},{"file":"scripts/instruments_parser/hangs.py","line_end":1,"line_start":1},{"file":"scripts/instruments_parser/hitches.py","line_end":3,"line_start":3},{"file":"scripts/instruments_parser/hitches.py","line_end":72,"line_start":72},{"file":"scripts/instruments_parser/summary.py","line_end":12,"line_start":12},{"file":"scripts/instruments_parser/summary.py","line_end":54,"line_start":54},{"file":"scripts/instruments_parser/summary.py","line_end":139,"line_start":139},{"file":"scripts/instruments_parser/summary.py","line_end":148,"line_start":148},{"file":"scripts/instruments_parser/summary.py","line_end":167,"line_start":167},{"file":"scripts/instruments_parser/summary.py","line_end":170,"line_start":170},{"file":"scripts/instruments_parser/summary.py","line_end":176,"line_start":176},{"file":"scripts/instruments_parser/summary.py","line_end":179,"line_start":179},{"file":"scripts/instruments_parser/summary.py","line_end":209,"line_start":209},{"file":"scripts/instruments_parser/summary.py","line_end":219,"line_start":219},{"file":"scripts/instruments_parser/swiftui.py","line_end":3,"line_start":3},{"file":"scripts/instruments_parser/time_profiler.py","line_end":1,"line_start":1},{"file":"scripts/instruments_parser/time_profiler.py","line_end":108,"line_start":108},{"file":"scripts/instruments_parser/xctrace.py","line_end":35,"line_start":35},{"file":"scripts/instruments_parser/xctrace.py","line_end":106,"line_start":106},{"file":"scripts/instruments_parser/xctrace.py","line_end":1,"line_start":1},{"file":"scripts/instruments_parser/xml_utils.py","line_end":3,"line_start":3},{"file":"scripts/instruments_parser/xml_utils.py","line_end":23,"line_start":23},{"file":"scripts/instruments_parser/xml_utils.py","line_end":25,"line_start":25},{"file":"scripts/instruments_parser/xml_utils.py","line_end":44,"line_start":44},{"file":"scripts/instruments_parser/xml_utils.py","line_end":45,"line_start":45},{"file":"scripts/instruments_parser/xml_utils.py","line_end":48,"line_start":48},{"file":"scripts/instruments_parser/xml_utils.py","line_end":49,"line_start":49},{"file":"scripts/instruments_parser/xml_utils.py","line_end":50,"line_start":50},{"file":"scripts/instruments_parser/xml_utils.py","line_end":120,"line_start":120},{"file":"scripts/instruments_parser/xml_utils.py","line_end":196,"line_start":196},{"file":"scripts/instruments_parser/xml_utils.py","line_end":198,"line_start":198},{"file":"scripts/record_trace.py","line_end":197,"line_start":197},{"file":"scripts/record_trace.py","line_end":226,"line_start":226},{"file":"scripts/record_trace.py","line_end":111,"line_start":111}]},{"factor":"filesystem","evidence":[{"file":"references/trace-recording.md","line_end":47,"line_start":47},{"file":"references/trace-recording.md","line_end":53,"line_start":53},{"file":"references/trace-recording.md","line_end":116,"line_start":116},{"file":"SKILL.md","line_end":54,"line_start":54},{"file":"SKILL.md","line_end":57,"line_start":57}]},{"factor":"scripts","evidence":[{"file":"scripts/analyze_trace.py","line_end":30,"line_start":20}]}],"critical_findings":[],"high_findings":[],"medium_findings":[],"low_findings":[],"dangerous_patterns":[],"files_scanned":40,"total_lines":11171,"audit_model":"claude","audited_at":"2026-07-17T10:10:33.629+00:00","created_at":"2026-07-17T16:18:32.238595+00:00","static_findings":[{"id":"blocker:references/accessibility-patterns.md:43:system-reconnaissance","file":"references/accessibility-patterns.md","pattern":"System reconnaissance","snippet":"`Font.custom(_:size:relativeTo:)` lets you match a specific text style. `Font.custom(_:size:)` scale","category":"blocker","line_end":43,"severity":"low","line_start":43},{"id":"sensitive:references/animation-advanced.md:187:certificate-key-files","file":"references/animation-advanced.md","pattern":"Certificate/key files","snippet":".keyframeAnimator(","category":"sensitive","line_end":187,"severity":"high","line_start":187},{"id":"sensitive:references/animation-advanced.md:233:certificate-key-files","file":"references/animation-advanced.md","pattern":"Certificate/key files","snippet":".keyframeAnimator(","category":"sensitive","line_end":233,"severity":"high","line_start":233},{"id":"blocker:references/animation-basics.md:201:system-reconnaissance","file":"references/animation-basics.md","pattern":"System reconnaissance","snippet":"### Avoid Animation in Hot Paths","category":"blocker","line_end":201,"severity":"low","line_start":201},{"id":"blocker:references/charts.md:78:system-reconnaissance","file":"references/charts.md","pattern":"System reconnaissance","snippet":"If your model cannot conform to `Identifiable`, provide an explicit id key path:","category":"blocker","line_end":78,"severity":"low","line_start":78},{"id":"blocker:references/charts.md:272:system-reconnaissance","file":"references/charts.md","pattern":"System reconnaissance","snippet":"Use `AxisMarks` to control tick placement, labels, and grid lines.","category":"blocker","line_end":272,"severity":"low","line_start":272},{"id":"blocker:references/image-optimization.md:45:system-reconnaissance","file":"references/image-optimization.md","pattern":"System reconnaissance","snippet":"// Unsafe - force unwrap can crash if imageData is invalid","category":"blocker","line_end":46,"severity":"low","line_start":45},{"id":"blocker:references/image-optimization.md:133:system-reconnaissance","file":"references/image-optimization.md","pattern":"System reconnaissance","snippet":"- Grid layouts with many images","category":"blocker","line_end":133,"severity":"low","line_start":133},{"id":"network:references/latest-apis.md:455:hardcoded-url","file":"references/latest-apis.md","pattern":"Hardcoded URL","snippet":"WebView(url: URL(string: \"https://example.com\")!)","category":"network","line_end":455,"severity":"low","line_start":455},{"id":"blocker:references/latest-apis.md:149:system-reconnaissance","file":"references/latest-apis.md","pattern":"System reconnaissance","snippet":"**Prefer `PasteButton` for user-initiated paste UI** to avoid paste prompts. It handles permissions ","category":"blocker","line_end":149,"severity":"low","line_start":149},{"id":"blocker:references/latest-apis.md:255:system-reconnaissance","file":"references/latest-apis.md","pattern":"System reconnaissance","snippet":"For Liquid Glass APIs (`glassEffect`, `GlassEffectContainer`, glass button styles), see [liquid-glas","category":"blocker","line_end":255,"severity":"low","line_start":255},{"id":"blocker:references/latest-apis.md:272:system-reconnaissance","file":"references/latest-apis.md","pattern":"System reconnaissance","snippet":"Views behind a Liquid Glass sidebar can appear clipped. This modifier mirrors and blurs content outs","category":"blocker","line_end":272,"severity":"low","line_start":272},{"id":"blocker:references/latest-apis.md:527:system-reconnaissance","file":"references/latest-apis.md","pattern":"System reconnaissance","snippet":"| `presentationBackground(_:)` on sheets | Default Liquid Glass sheet material | iOS 26+ |","category":"blocker","line_end":527,"severity":"low","line_start":527},{"id":"blocker:references/layout-best-practices.md:28:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"// Avoid - magic numbers that don't adapt","category":"blocker","line_end":28,"severity":"low","line_start":28},{"id":"blocker:references/layout-best-practices.md:59:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"// Avoid - assumes full screen","category":"blocker","line_end":59,"severity":"low","line_start":59},{"id":"blocker:references/layout-best-practices.md:91:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"// Avoid - missing container","category":"blocker","line_end":91,"severity":"low","line_start":91},{"id":"blocker:references/layout-best-practices.md:116:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"### Avoid Layout Thrash","category":"blocker","line_end":116,"severity":"low","line_start":116},{"id":"blocker:references/layout-best-practices.md:141:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"**Avoid excessive `GeometryReader` and preference chains:**","category":"blocker","line_end":141,"severity":"low","line_start":141},{"id":"blocker:references/layout-best-practices.md:218:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"Avoid embedding business logic directly in view closures (e.g., validation checks inside a `Button` ","category":"blocker","line_end":218,"severity":"low","line_start":218},{"id":"blocker:references/layout-best-practices.md:231:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"// Avoid - unnecessary stack and spacer","category":"blocker","line_end":231,"severity":"low","line_start":231},{"id":"blocker:references/layout-best-practices.md:248:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"// Avoid - multi-line logic in closure","category":"blocker","line_end":248,"severity":"low","line_start":248},{"id":"blocker:references/layout-best-practices.md:260:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid deep view hierarchies (layout thrash)","category":"blocker","line_end":260,"severity":"low","line_start":260},{"id":"blocker:references/layout-best-practices.md:265:system-reconnaissance","file":"references/layout-best-practices.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid excessive `GeometryReader` usage","category":"blocker","line_end":265,"severity":"low","line_start":265},{"id":"blocker:references/liquid-glass.md:1:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"# SwiftUI Liquid Glass Reference (iOS 26+)","category":"blocker","line_end":1,"severity":"low","line_start":1},{"id":"blocker:references/liquid-glass.md:20:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"Liquid Glass is Apple's new design language introduced in iOS 26. It provides translucent, dynamic s","category":"blocker","line_end":20,"severity":"low","line_start":20},{"id":"blocker:references/liquid-glass.md:22:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"**Only adopt Liquid Glass when explicitly requested by the user.** Do not proactively convert existi","category":"blocker","line_end":22,"severity":"low","line_start":22},{"id":"blocker:references/liquid-glass.md:26:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"All Liquid Glass APIs require iOS 26 or later. Always provide fallbacks:","category":"blocker","line_end":26,"severity":"low","line_start":26},{"id":"blocker:references/liquid-glass.md:30:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"// Liquid Glass implementation","category":"blocker","line_end":30,"severity":"low","line_start":30},{"id":"blocker:references/liquid-glass.md:250:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"let action: () -> Void","category":"blocker","line_end":252,"severity":"low","line_start":250},{"id":"blocker:references/liquid-glass.md:384:system-reconnaissance","file":"references/liquid-glass.md","pattern":"System reconnaissance","snippet":"Partial-height sheets use a Liquid Glass background by default. If you previously used `presentation","category":"blocker","line_end":384,"severity":"low","line_start":384},{"id":"blocker:references/liquid-glass.md:99:network-reconnaissance","file":"references/liquid-glass.md","pattern":"Network reconnaissance","snippet":"// Interactive glass - responds to user interaction","category":"blocker","line_end":99,"severity":"low","line_start":99},{"id":"blocker:references/list-patterns.md:63:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"**Avoid inline filtering:**","category":"blocker","line_end":63,"severity":"low","line_start":63},{"id":"blocker:references/list-patterns.md:84:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"**Avoid `AnyView` in list rows:**","category":"blocker","line_end":84,"severity":"low","line_start":84},{"id":"blocker:references/list-patterns.md:118:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"`List` needs the identity of every row up front. When each row's body produces a **single top-level ","category":"blocker","line_end":118,"severity":"low","line_start":118},{"id":"blocker:references/list-patterns.md:128:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"- **The id must outlive the view and not change on edit.** Don't derive `id` from a mutable property","category":"blocker","line_end":128,"severity":"low","line_start":128},{"id":"blocker:references/list-patterns.md:129:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"- **Don't synthesize a fresh id inside `body`.** `ForEach(items.map { Item(title: $0) })` creates ne","category":"blocker","line_end":129,"severity":"low","line_start":129},{"id":"blocker:references/list-patterns.md:130:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"- **Keep the id cheap to hash.** Avoid `id: \\.self` on a large `Hashable` struct; hashing walks ever","category":"blocker","line_end":130,"severity":"low","line_start":130},{"id":"blocker:references/list-patterns.md:156:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"**Using `.enumerated()` is fine; the index just must not be the identity.** Using `\\.offset` as the ","category":"blocker","line_end":156,"severity":"low","line_start":156},{"id":"blocker:references/list-patterns.md:164:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"// Correct - id comes from the element; index is just data","category":"blocker","line_end":164,"severity":"low","line_start":164},{"id":"blocker:references/list-patterns.md:252:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"let id = UUID()","category":"blocker","line_end":252,"severity":"low","line_start":252},{"id":"blocker:references/list-patterns.md:353:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"let id = UUID()","category":"blocker","line_end":353,"severity":"low","line_start":353},{"id":"blocker:references/list-patterns.md:383:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"If the number of columns is not known at runtime use `TableColumnForEach` to create columns based on","category":"blocker","line_end":383,"severity":"low","line_start":383},{"id":"blocker:references/list-patterns.md:457:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"- [ ] id is stable across edits (not derived from a mutable property), created outside `body`, and c","category":"blocker","line_end":457,"severity":"low","line_start":457},{"id":"blocker:references/list-patterns.md:461:system-reconnaissance","file":"references/list-patterns.md","pattern":"System reconnaissance","snippet":"- [ ] `.enumerated()` uses the element's id (not `\\.offset`); no `Array(...)` wrapper needed on Swif","category":"blocker","line_end":461,"severity":"low","line_start":461},{"id":"blocker:references/macos-views.md:87:system-reconnaissance","file":"references/macos-views.md","pattern":"System reconnaissance","snippet":"// Bordered with visible grid lines (macOS-only)","category":"blocker","line_end":87,"severity":"low","line_start":87},{"id":"sensitive:references/macos-window-styling.md:247:certificate-key-files","file":"references/macos-window-styling.md","pattern":"Certificate/key files","snippet":".keyboardShortcut(\"r\", modifiers: [.command, .shift])","category":"sensitive","line_end":247,"severity":"high","line_start":247},{"id":"sensitive:references/macos-window-styling.md:265:certificate-key-files","file":"references/macos-window-styling.md","pattern":"Certificate/key files","snippet":".keyboardShortcut(\"s\", modifiers: .command)","category":"sensitive","line_end":265,"severity":"high","line_start":265},{"id":"sensitive:references/macos-window-styling.md:270:certificate-key-files","file":"references/macos-window-styling.md","pattern":"Certificate/key files","snippet":".keyboardShortcut(.delete, modifiers: .command)","category":"sensitive","line_end":270,"severity":"high","line_start":270},{"id":"sensitive:references/performance-patterns.md:235:certificate-key-files","file":"references/performance-patterns.md","pattern":"Certificate/key files","snippet":"**Avoid storing frequently-changing values in the environment.** Every write to *any* environment ke","category":"sensitive","line_end":235,"severity":"high","line_start":235},{"id":"blocker:references/performance-patterns.md:11:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"### 1. Avoid Redundant State Updates","category":"blocker","line_end":11,"severity":"low","line_start":11},{"id":"blocker:references/performance-patterns.md:50:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"**Avoid passing large \"config\" or \"context\" objects.** Pass only the specific values each view needs","category":"blocker","line_end":50,"severity":"low","line_start":50},{"id":"blocker:references/performance-patterns.md:57:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"// Avoid - passing entire config (creates broad dependency)","category":"blocker","line_end":57,"severity":"low","line_start":57},{"id":"blocker:references/performance-patterns.md:72:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"lhs.data.id == rhs.data.id  // Custom equality check","category":"blocker","line_end":72,"severity":"low","line_start":72},{"id":"blocker:references/performance-patterns.md:235:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"**Avoid storing frequently-changing values in the environment.** Every write to *any* environment ke","category":"blocker","line_end":235,"severity":"low","line_start":235},{"id":"blocker:references/performance-patterns.md:309:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"**SwiftUI may call certain closures on a background thread for performance.** These closures must be","category":"blocker","line_end":309,"severity":"low","line_start":309},{"id":"blocker:references/performance-patterns.md:368:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"**Keep view body simple and pure.** Avoid side effects, dispatching, or complex logic.","category":"blocker","line_end":368,"severity":"low","line_start":368},{"id":"blocker:references/performance-patterns.md:406:system-reconnaissance","file":"references/performance-patterns.md","pattern":"System reconnaissance","snippet":"- [ ] Pass only needed values to views (avoid large config objects)","category":"blocker","line_end":406,"severity":"low","line_start":406},{"id":"blocker:references/previews.md:307:system-reconnaissance","file":"references/previews.md","pattern":"System reconnaissance","snippet":"- [ ] Prefer `#Preview` for new previews; `PreviewProvider` is still valid for older code","category":"blocker","line_end":307,"severity":"low","line_start":307},{"id":"blocker:references/sheet-navigation-patterns.md:33:system-reconnaissance","file":"references/sheet-navigation-patterns.md","pattern":"System reconnaissance","snippet":"// Avoid - boolean flag requires separate state","category":"blocker","line_end":33,"severity":"low","line_start":33},{"id":"blocker:references/sheet-navigation-patterns.md:56:system-reconnaissance","file":"references/sheet-navigation-patterns.md","pattern":"System reconnaissance","snippet":"**Sheets should handle their own dismiss and actions internally** using `@Environment(\\.dismiss)`. A","category":"blocker","line_end":56,"severity":"low","line_start":56},{"id":"blocker:references/sheet-navigation-patterns.md:194:system-reconnaissance","file":"references/sheet-navigation-patterns.md","pattern":"System reconnaissance","snippet":"if let selectedItem, let item = items.first(where: { $0.id == selectedItem }) {","category":"blocker","line_end":194,"severity":"low","line_start":194},{"id":"blocker:references/sheet-navigation-patterns.md:361:system-reconnaissance","file":"references/sheet-navigation-patterns.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid passing dismiss/save callbacks to sheets","category":"blocker","line_end":361,"severity":"low","line_start":361},{"id":"blocker:references/state-management.md:19:system-reconnaissance","file":"references/state-management.md","pattern":"System reconnaissance","snippet":"- [Avoid Nested ObservableObject](#avoid-nested-observableobject)","category":"blocker","line_end":19,"severity":"low","line_start":19},{"id":"blocker:references/state-management.md:129:system-reconnaissance","file":"references/state-management.md","pattern":"System reconnaissance","snippet":"- **A computed property establishes dependencies transitively.** `var currentUser: User? { users.fir","category":"blocker","line_end":129,"severity":"low","line_start":129},{"id":"blocker:references/state-management.md:141:system-reconnaissance","file":"references/state-management.md","pattern":"System reconnaissance","snippet":"private func recomputeCurrentUser() { currentUser = users.first { $0.id == currentID } }","category":"blocker","line_end":141,"severity":"low","line_start":141},{"id":"blocker:references/state-management.md:365:system-reconnaissance","file":"references/state-management.md","pattern":"System reconnaissance","snippet":"@Entry var submit: (String) -> Void = { _ in }","category":"blocker","line_end":365,"severity":"low","line_start":365},{"id":"blocker:references/state-management.md:474:system-reconnaissance","file":"references/state-management.md","pattern":"System reconnaissance","snippet":"## Avoid Nested ObservableObject","category":"blocker","line_end":474,"severity":"low","line_start":474},{"id":"blocker:references/trace-analysis.md:194:system-reconnaissance","file":"references/trace-analysis.md","pattern":"System reconnaissance","snippet":"out of view bodies, cache derived values, avoid per-frame allocation,","category":"blocker","line_end":194,"severity":"low","line_start":194},{"id":"external_commands:references/trace-recording.md:115:shell-command-substitution","file":"references/trace-recording.md","pattern":"Shell command substitution","snippet":"TRACE=$(python3 \"${SKILL_DIR}/scripts/record_trace.py\" \\","category":"external_commands","line_end":117,"severity":"medium","line_start":115},{"id":"filesystem:references/trace-recording.md:47:temp-directory-access","file":"references/trace-recording.md","pattern":"Temp directory access","snippet":"--attach Helm --stop-file /tmp/stop-trace \\","category":"filesystem","line_end":47,"severity":"medium","line_start":47},{"id":"filesystem:references/trace-recording.md:53:temp-directory-access","file":"references/trace-recording.md","pattern":"Temp directory access","snippet":"touch /tmp/stop-trace","category":"filesystem","line_end":53,"severity":"medium","line_start":53},{"id":"filesystem:references/trace-recording.md:116:temp-directory-access","file":"references/trace-recording.md","pattern":"Temp directory access","snippet":"--attach Helm --stop-file /tmp/stop-trace --output ~/Desktop/session.trace \\","category":"filesystem","line_end":116,"severity":"medium","line_start":116},{"id":"external_commands:references/view-structure.md:151:ruby-shell-backtick-execution","file":"references/view-structure.md","pattern":"Ruby/shell backtick execution","snippet":"@ViewBuilder func `if`<T: View>(_ condition: Bool, transform: (Self) -> T) -> some View {","category":"external_commands","line_end":159,"severity":"medium","line_start":151},{"id":"blocker:references/view-structure.md:11:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [Keep View Body Simple and Avoid High-Cost Operations](#keep-view-body-simple-and-avoid-high-cost-","category":"blocker","line_end":11,"severity":"low","line_start":11},{"id":"blocker:references/view-structure.md:118:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"// Avoid - creates/destroys view identity","category":"blocker","line_end":118,"severity":"low","line_start":118},{"id":"blocker:references/view-structure.md:311:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"## Keep View Body Simple and Avoid High-Cost Operations","category":"blocker","line_end":311,"severity":"low","line_start":311},{"id":"blocker:references/view-structure.md:316:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"// Avoid such things ...","category":"blocker","line_end":316,"severity":"low","line_start":316},{"id":"blocker:references/view-structure.md:356:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- avoid filtering, sorting, and mapping inline in `body`","category":"blocker","line_end":356,"severity":"low","line_start":356},{"id":"blocker:references/view-structure.md:357:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- avoid constructing expensive formatters in `body`","category":"blocker","line_end":357,"severity":"low","line_start":357},{"id":"blocker:references/view-structure.md:358:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- avoid heavy branching in large view trees","category":"blocker","line_end":358,"severity":"low","line_start":358},{"id":"blocker:references/view-structure.md:418:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"### Avoid Closure-Based Content","category":"blocker","line_end":418,"severity":"low","line_start":418},{"id":"blocker:references/view-structure.md:714:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"Avoid patterns like:","category":"blocker","line_end":714,"severity":"low","line_start":714},{"id":"blocker:references/view-structure.md:736:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- The representable struct itself is **recreated on every redraw** -- avoid heavy work in its init","category":"blocker","line_end":736,"severity":"low","line_start":736},{"id":"blocker:references/view-structure.md:831:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- avoid huge inline closures","category":"blocker","line_end":831,"severity":"low","line_start":831},{"id":"blocker:references/view-structure.md:836:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid `if`-based conditional modifier extensions (they break view identity)","category":"blocker","line_end":836,"severity":"low","line_start":836},{"id":"blocker:references/view-structure.md:840:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid heavy filtering, mapping, sorting, or formatter creation inside `body`","category":"blocker","line_end":840,"severity":"low","line_start":840},{"id":"blocker:references/view-structure.md:842:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid single-child `Group { OneView() }` (chain modifiers directly on the child)","category":"blocker","line_end":842,"severity":"low","line_start":842},{"id":"blocker:references/view-structure.md:846:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [ ] `.compositingGroup()` before `.clipShape()` on layered views to avoid antialiasing fringes","category":"blocker","line_end":846,"severity":"low","line_start":846},{"id":"blocker:references/view-structure.md:851:system-reconnaissance","file":"references/view-structure.md","pattern":"System reconnaissance","snippet":"- [ ] Avoid `AnyView` unless type erasure is truly needed","category":"blocker","line_end":851,"severity":"low","line_start":851},{"id":"scripts:scripts/analyze_trace.py:20:dynamic-import-expression","file":"scripts/analyze_trace.py","pattern":"Dynamic import() expression","snippet":"from instruments_parser import (","category":"scripts","line_end":30,"severity":"medium","line_start":20},{"id":"external_commands:scripts/analyze_trace.py:255:ruby-shell-backtick-execution","file":"scripts/analyze_trace.py","pattern":"Ruby/shell backtick execution","snippet":"If `requested` is given, return that run or None on miss (with a friendly","category":"external_commands","line_end":255,"severity":"medium","line_start":255},{"id":"blocker:scripts/analyze_trace.py:48:system-reconnaissance","file":"scripts/analyze_trace.py","pattern":"System reconnaissance","snippet":"help=\"Correlate only the N worst hitches (avoid flooding output).\",","category":"blocker","line_end":48,"severity":"low","line_start":48},{"id":"blocker:scripts/analyze_trace.py:273:network-reconnaissance","file":"scripts/analyze_trace.py","pattern":"Network reconnaissance","snippet":"f\"error: trace has {len(info.runs)} runs ({available}); pass --run N. \"","category":"blocker","line_end":273,"severity":"low","line_start":273},{"id":"external_commands:scripts/instruments_parser/causes.py:1:ruby-shell-backtick-execution","file":"scripts/instruments_parser/causes.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"SwiftUI cause-graph lane (`swiftui-causes` schema).","category":"external_commands","line_end":1,"severity":"medium","line_start":1},{"id":"external_commands:scripts/instruments_parser/causes.py:12:ruby-shell-backtick-execution","file":"scripts/instruments_parser/causes.py","pattern":"Ruby/shell backtick execution","snippet":"`UserDefaultObserver.send()` showing up with 11k outgoing edges is a","category":"external_commands","line_end":12,"severity":"medium","line_start":12},{"id":"external_commands:scripts/instruments_parser/causes.py:18:ruby-shell-backtick-execution","file":"scripts/instruments_parser/causes.py","pattern":"Ruby/shell backtick execution","snippet":"The analyzer's main lane (`swiftui`) tells you *what* updates are","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:scripts/instruments_parser/causes.py:136:ruby-shell-backtick-execution","file":"scripts/instruments_parser/causes.py","pattern":"Ruby/shell backtick execution","snippet":"contains `destination_contains` (case-insensitive substring).","category":"external_commands","line_end":136,"severity":"medium","line_start":136},{"id":"external_commands:scripts/instruments_parser/causes.py:138:ruby-shell-backtick-execution","file":"scripts/instruments_parser/causes.py","pattern":"Ruby/shell backtick execution","snippet":"Used when the agent has a suspect view from the `swiftui` lane and wants","category":"external_commands","line_end":138,"severity":"medium","line_start":138},{"id":"external_commands:scripts/instruments_parser/correlate.py:16:ruby-shell-backtick-execution","file":"scripts/instruments_parser/correlate.py","pattern":"Ruby/shell backtick execution","snippet":"`lanes` is a dict keyed by lane name (time-profiler, hangs, hitches,","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:scripts/instruments_parser/events.py:31:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"`limit` counts *post-filter* matches — including the window filter — so","category":"external_commands","line_end":31,"severity":"medium","line_start":31},{"id":"external_commands:scripts/instruments_parser/events.py:105:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"* `os-signpost-interval`: already-paired intervals (this is where","category":"external_commands","line_end":105,"severity":"medium","line_start":105},{"id":"external_commands:scripts/instruments_parser/events.py:107:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"* `os-signpost`: raw begin/end/event rows; we pair begins with ends","category":"external_commands","line_end":107,"severity":"medium","line_start":107},{"id":"external_commands:scripts/instruments_parser/events.py:111:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"Filters are AND-combined. `name_contains` is a case-insensitive substring","category":"external_commands","line_end":111,"severity":"medium","line_start":111},{"id":"external_commands:scripts/instruments_parser/events.py:112:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"match. `window_ns` keeps intervals that overlap the window (not strict","category":"external_commands","line_end":112,"severity":"medium","line_start":112},{"id":"external_commands:scripts/instruments_parser/events.py:115:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"# The two signpost schemas overlap: every paired begin/end in `os-signpost`","category":"external_commands","line_end":115,"severity":"medium","line_start":115},{"id":"external_commands:scripts/instruments_parser/events.py:116:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"# also shows up as a row in `os-signpost-interval`. To avoid duplicates we","category":"external_commands","line_end":116,"severity":"medium","line_start":116},{"id":"external_commands:scripts/instruments_parser/events.py:117:ruby-shell-backtick-execution","file":"scripts/instruments_parser/events.py","pattern":"Ruby/shell backtick execution","snippet":"# prefer the pre-paired schema for intervals and only mine `os-signpost`","category":"external_commands","line_end":117,"severity":"medium","line_start":117},{"id":"blocker:scripts/instruments_parser/events.py:116:system-reconnaissance","file":"scripts/instruments_parser/events.py","pattern":"System reconnaissance","snippet":"# also shows up as a row in `os-signpost-interval`. To avoid duplicates we","category":"blocker","line_end":116,"severity":"low","line_start":116},{"id":"blocker:scripts/instruments_parser/events.py:182:system-reconnaissance","file":"scripts/instruments_parser/events.py","pattern":"System reconnaissance","snippet":"signpost_id = _str_of(row, stream, \"identifier\") or _str_of(row, stream, \"signpost-id\")","category":"blocker","line_end":182,"severity":"low","line_start":182},{"id":"blocker:scripts/instruments_parser/events.py:229:system-reconnaissance","file":"scripts/instruments_parser/events.py","pattern":"System reconnaissance","snippet":"signpost_id = _str_of(row, stream, \"signpost-id\") or _str_of(row, stream, \"identifier\")","category":"blocker","line_end":229,"severity":"low","line_start":229},{"id":"external_commands:scripts/instruments_parser/hangs.py:1:ruby-shell-backtick-execution","file":"scripts/instruments_parser/hangs.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"Hangs lane parser (schema `potential-hangs`).","category":"external_commands","line_end":1,"severity":"medium","line_start":1},{"id":"external_commands:scripts/instruments_parser/hitches.py:3:ruby-shell-backtick-execution","file":"scripts/instruments_parser/hitches.py","pattern":"Ruby/shell backtick execution","snippet":"Xcode 26 schema `hitches` columns: start, duration (hitch time), process,","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:scripts/instruments_parser/hitches.py:72:ruby-shell-backtick-execution","file":"scripts/instruments_parser/hitches.py","pattern":"Ruby/shell backtick execution","snippet":"\"hitch_duration_ns\": duration_ns,  # Xcode 26 `duration` == hitch time","category":"external_commands","line_end":72,"severity":"medium","line_start":72},{"id":"external_commands:scripts/instruments_parser/summary.py:12:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"meta = [p for p in [f\"Trace: `{trace}`\", header, template] if p]","category":"external_commands","line_end":12,"severity":"medium","line_start":12},{"id":"external_commands:scripts/instruments_parser/summary.py:54:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"{i}. `{_truncate(o['symbol'], 90)}` — \"","category":"external_commands","line_end":54,"severity":"medium","line_start":54},{"id":"external_commands:scripts/instruments_parser/summary.py:139:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"{i}. `{_truncate(v['view'], 80)}` — {v['total_ms']:.0f}ms total, \"","category":"external_commands","line_end":139,"severity":"medium","line_start":139},{"id":"external_commands:scripts/instruments_parser/summary.py:148:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"{i}. `{_truncate(e['view'], 60)}` — \"","category":"external_commands","line_end":148,"severity":"medium","line_start":148},{"id":"external_commands:scripts/instruments_parser/summary.py:167:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"lines.append(f\"{i}. `{_truncate(s['source'], 80)}` — {s['edges']:,} edges\")","category":"external_commands","line_end":167,"severity":"medium","line_start":167},{"id":"external_commands:scripts/instruments_parser/summary.py:170:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"    → `{_truncate(d['destination'], 70)}` {d['edges']:,}\"","category":"external_commands","line_end":170,"severity":"medium","line_start":170},{"id":"external_commands:scripts/instruments_parser/summary.py:176:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"lines.append(f\"{i}. `{_truncate(d['destination'], 80)}` — {d['edges']:,} edges\")","category":"external_commands","line_end":176,"severity":"medium","line_start":176},{"id":"external_commands:scripts/instruments_parser/summary.py:179:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"    ← `{_truncate(s['source'], 70)}` {s['edges']:,}\"","category":"external_commands","line_end":179,"severity":"medium","line_start":179},{"id":"external_commands:scripts/instruments_parser/summary.py:209:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"    · `{_truncate(s['symbol'], 80)}` \"","category":"external_commands","line_end":209,"severity":"medium","line_start":209},{"id":"external_commands:scripts/instruments_parser/summary.py:219:ruby-shell-backtick-execution","file":"scripts/instruments_parser/summary.py","pattern":"Ruby/shell backtick execution","snippet":"f\"  - SwiftUI: `{s['view']}` {s['duration_ms']:.2f}ms \"","category":"external_commands","line_end":219,"severity":"medium","line_start":219},{"id":"blocker:scripts/instruments_parser/summary.py:230:system-reconnaissance","file":"scripts/instruments_parser/summary.py","pattern":"System reconnaissance","snippet":"# \"NowPlaying Gigs (0x251990d) (NowPlaying Gigs, pid: 28401)\" -> \"tid 0x251990d\"","category":"blocker","line_end":230,"severity":"low","line_start":230},{"id":"blocker:scripts/instruments_parser/summary.py:236:system-reconnaissance","file":"scripts/instruments_parser/summary.py","pattern":"System reconnaissance","snippet":"return f\"tid {name[start:end]}\"","category":"blocker","line_end":236,"severity":"low","line_start":236},{"id":"external_commands:scripts/instruments_parser/swiftui.py:3:ruby-shell-backtick-execution","file":"scripts/instruments_parser/swiftui.py","pattern":"Ruby/shell backtick execution","snippet":"Primary schema is `swiftui-updates` with columns: start, duration, id,","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:scripts/instruments_parser/time_profiler.py:1:ruby-shell-backtick-execution","file":"scripts/instruments_parser/time_profiler.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"Time Profiler lane parser (schema `time-profile`).","category":"external_commands","line_end":1,"severity":"medium","line_start":1},{"id":"external_commands:scripts/instruments_parser/time_profiler.py:108:ruby-shell-backtick-execution","file":"scripts/instruments_parser/time_profiler.py","pattern":"Ruby/shell backtick execution","snippet":"f\"Using fallback schema `{schema}`; backtraces may be unsymbolicated.\"","category":"external_commands","line_end":108,"severity":"medium","line_start":108},{"id":"external_commands:scripts/instruments_parser/xctrace.py:35:python-subprocess-run","file":"scripts/instruments_parser/xctrace.py","pattern":"Python subprocess.run","snippet":"out = subprocess.run(","category":"external_commands","line_end":35,"severity":"high","line_start":35},{"id":"external_commands:scripts/instruments_parser/xctrace.py:106:python-subprocess-run","file":"scripts/instruments_parser/xctrace.py","pattern":"Python subprocess.run","snippet":"proc = subprocess.run(cmd, capture_output=True, check=False)","category":"external_commands","line_end":106,"severity":"high","line_start":106},{"id":"external_commands:scripts/instruments_parser/xctrace.py:1:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xctrace.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"Thin wrapper around the `xctrace` CLI.\"\"\"","category":"external_commands","line_end":1,"severity":"medium","line_start":1},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:3:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"Instruments XML deduplicates repeated values with `id`/`ref` attributes that","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:23:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"Yields `dict[str, Element]` keyed by column mnemonic. Elements inside a","category":"external_commands","line_end":23,"severity":"medium","line_start":23},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:25:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"so ref resolution via `resolve()` remains valid after the row is yielded).","category":"external_commands","line_end":25,"severity":"medium","line_start":25},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:44:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"# iterparse fires `end` events once an element is fully parsed, so ids","category":"external_commands","line_end":44,"severity":"medium","line_start":44},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:45:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"# are visible to descendants via the cache. We only need `end` events;","category":"external_commands","line_end":45,"severity":"medium","line_start":45},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:48:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"# NOTE: we intentionally don't call `elem.clear()` after yielding a row.","category":"external_commands","line_end":48,"severity":"medium","line_start":48},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:49:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"# Instruments' XML is a single shared doc where any row can `ref` an","category":"external_commands","line_end":49,"severity":"medium","line_start":49},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:50:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"# `id` defined earlier (threads, processes, stacks, metadata), and","category":"external_commands","line_end":50,"severity":"medium","line_start":50},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:120:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"Return the human-readable `fmt` attribute if present.\"\"\"","category":"external_commands","line_end":120,"severity":"medium","line_start":120},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:196:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"`row[key] or row[other_key]` is unsafe here: Element is falsy when it has","category":"external_commands","line_end":196,"severity":"medium","line_start":196},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:198:ruby-shell-backtick-execution","file":"scripts/instruments_parser/xml_utils.py","pattern":"Ruby/shell backtick execution","snippet":"`or` short-circuits past valid leaf elements. This walks keys explicitly.","category":"external_commands","line_end":198,"severity":"medium","line_start":198},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:16:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"mnemonic: str          # e.g. \"time\", \"weight\", \"stack\"","category":"sensitive","line_end":16,"severity":"high","line_start":16},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:23:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"Yields `dict[str, Element]` keyed by column mnemonic. Elements inside a","category":"sensitive","line_end":23,"severity":"high","line_start":23},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:76:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"mnemonic = (col.findtext(\"mnemonic\") or \"\").strip()","category":"sensitive","line_end":76,"severity":"high","line_start":76},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:78:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"if mnemonic:","category":"sensitive","line_end":78,"severity":"high","line_start":78},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:79:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"cols.append(Column(mnemonic=mnemonic, engineering_type=etype))","category":"sensitive","line_end":79,"severity":"high","line_start":79},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:93:crypto-seed-private-key-mention","file":"scripts/instruments_parser/xml_utils.py","pattern":"Crypto seed/private key mention","snippet":"result[cols[idx].mnemonic] = child","category":"sensitive","line_end":93,"severity":"high","line_start":93},{"id":"blocker:scripts/instruments_parser/xml_utils.py:5:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"a global id cache for later ref lookups.","category":"blocker","line_end":5,"severity":"low","line_start":5},{"id":"blocker:scripts/instruments_parser/xml_utils.py:24:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"yielded row are live ET elements (rooted in the id cache where applicable","category":"blocker","line_end":24,"severity":"low","line_start":24},{"id":"blocker:scripts/instruments_parser/xml_utils.py:25:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"so ref resolution via `resolve()` remains valid after the row is yielded).","category":"blocker","line_end":25,"severity":"low","line_start":25},{"id":"blocker:scripts/instruments_parser/xml_utils.py:59:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"eid = elem.get(\"id\")","category":"blocker","line_end":59,"severity":"low","line_start":59},{"id":"blocker:scripts/instruments_parser/xml_utils.py:60:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"if eid is not None:","category":"blocker","line_end":60,"severity":"low","line_start":60},{"id":"blocker:scripts/instruments_parser/xml_utils.py:70:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"# Do not clear elem — children referenced via id may still be needed.","category":"blocker","line_end":70,"severity":"low","line_start":70},{"id":"blocker:scripts/instruments_parser/xml_utils.py:129:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"Handles ref-style threads by resolving through the stream's id cache.","category":"blocker","line_end":129,"severity":"low","line_start":129},{"id":"blocker:scripts/instruments_parser/xml_utils.py:198:system-reconnaissance","file":"scripts/instruments_parser/xml_utils.py","pattern":"System reconnaissance","snippet":"`or` short-circuits past valid leaf elements. This walks keys explicitly.","category":"blocker","line_end":198,"severity":"low","line_start":198},{"id":"external_commands:scripts/record_trace.py:197:python-subprocess-run","file":"scripts/record_trace.py","pattern":"Python subprocess.run","snippet":"out = subprocess.run(","category":"external_commands","line_end":197,"severity":"high","line_start":197},{"id":"external_commands:scripts/record_trace.py:226:python-subprocess-run","file":"scripts/record_trace.py","pattern":"Python subprocess.run","snippet":"out = subprocess.run(","category":"external_commands","line_end":226,"severity":"high","line_start":226},{"id":"external_commands:scripts/record_trace.py:111:python-subprocess-popen","file":"scripts/record_trace.py","pattern":"Python subprocess.Popen","snippet":"proc = subprocess.Popen(cmd, start_new_session=True)","category":"external_commands","line_end":111,"severity":"high","line_start":111},{"id":"external_commands:scripts/record_trace.py:174:python-subprocess-popen","file":"scripts/record_trace.py","pattern":"Python subprocess.Popen","snippet":"def _wait_with_stop(proc: subprocess.Popen, stop_file: Path | None) -> None:","category":"external_commands","line_end":174,"severity":"high","line_start":174},{"id":"external_commands:scripts/record_trace.py:188:python-subprocess-popen","file":"scripts/record_trace.py","pattern":"Python subprocess.Popen","snippet":"def _forward_sigint(proc: subprocess.Popen) -> None:","category":"external_commands","line_end":188,"severity":"high","line_start":188},{"id":"external_commands:scripts/record_trace.py:2:ruby-shell-backtick-execution","file":"scripts/record_trace.py","pattern":"Ruby/shell backtick execution","snippet":"\"\"\"Record an Xcode Instruments .trace file via `xctrace record`.","category":"external_commands","line_end":2,"severity":"medium","line_start":2},{"id":"external_commands:scripts/record_trace.py:17:ruby-shell-backtick-execution","file":"scripts/record_trace.py","pattern":"Ruby/shell backtick execution","snippet":"sends SIGINT to xctrace. Useful for `Bash run_in_background`","category":"external_commands","line_end":17,"severity":"medium","line_start":17},{"id":"external_commands:scripts/record_trace.py:104:ruby-shell-backtick-execution","file":"scripts/record_trace.py","pattern":"Ruby/shell backtick execution","snippet":"stop_hints.append(f\"`touch {args.stop_file}`\")","category":"external_commands","line_end":104,"severity":"medium","line_start":104},{"id":"sensitive:scripts/record_trace.py:82:environment-file-access","file":"scripts/record_trace.py","pattern":"Environment file access","snippet":"if args.env and not args.launch:","category":"sensitive","line_end":82,"severity":"high","line_start":82},{"id":"sensitive:scripts/record_trace.py:146:environment-file-access","file":"scripts/record_trace.py","pattern":"Environment file access","snippet":"for env in args.env:","category":"sensitive","line_end":146,"severity":"high","line_start":146},{"id":"blocker:scripts/record_trace.py:64:system-reconnaissance","file":"scripts/record_trace.py","pattern":"System reconnaissance","snippet":"help=\"Attach to a running process by pid or name.\")","category":"blocker","line_end":64,"severity":"low","line_start":64},{"id":"blocker:scripts/record_trace.py:122:system-reconnaissance","file":"scripts/record_trace.py","pattern":"System reconnaissance","snippet":"print(\"[record] xctrace did not exit within 60s after stop; killing.\",","category":"blocker","line_end":122,"severity":"low","line_start":122},{"id":"blocker:scripts/record_trace.py:130:system-reconnaissance","file":"scripts/record_trace.py","pattern":"System reconnaissance","snippet":"print(\"[record] done but output file not found — did xctrace error?\",","category":"blocker","line_end":130,"severity":"low","line_start":130},{"id":"blocker:scripts/record_trace.py:215:system-reconnaissance","file":"scripts/record_trace.py","pattern":"System reconnaissance","snippet":"name, os_ver, udid = m.group(1).strip(), m.group(2), m.group(3)","category":"blocker","line_end":215,"severity":"low","line_start":215},{"id":"blocker:scripts/record_trace.py:16:network-reconnaissance","file":"scripts/record_trace.py","pattern":"Network reconnaissance","snippet":"* Pass --stop-file PATH; when that file appears on disk, this script","category":"blocker","line_end":16,"severity":"low","line_start":16},{"id":"blocker:scripts/record_trace.py:19:network-reconnaissance","file":"scripts/record_trace.py","pattern":"Network reconnaissance","snippet":"* Pass --time-limit 30s / 5m / etc. — xctrace stops itself.","category":"blocker","line_end":19,"severity":"low","line_start":19},{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"description: Use when writing, reviewing, or refactoring SwiftUI code for iOS or macOS, including st","category":"external_commands","line_end":3,"severity":"medium","line_start":3},{"id":"external_commands:SKILL.md:11:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Consult `references/latest-apis.md` at the start of every task to avoid deprecated APIs","category":"external_commands","line_end":11,"severity":"medium","line_start":11},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Only adopt Liquid Glass when explicitly requested by the user (see `references/liquid-glass.md`)","category":"external_commands","line_end":16,"severity":"medium","line_start":16},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Use `#available` gating with sensible fallbacks for version-specific APIs","category":"external_commands","line_end":18,"severity":"medium","line_start":18},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Flag deprecated APIs (compare against `references/latest-apis.md`)","category":"external_commands","line_end":24,"severity":"medium","line_start":24},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Validate `#available` gating and fallback paths for iOS 26+ features","category":"external_commands","line_end":26,"severity":"medium","line_start":26},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Replace deprecated APIs with modern equivalents from `references/latest-apis.md`","category":"external_commands","line_end":30,"severity":"medium","line_start":30},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Suggest image downsampling when `UIImage(data:)` is encountered (optional optimization, see `refer","category":"external_commands","line_end":33,"severity":"medium","line_start":33},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Use `Button` for all tappable elements; add accessibility grouping and labels","category":"external_commands","line_end":39,"severity":"medium","line_start":39},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- Gate version-specific APIs with `#available` and provide fallbacks","category":"external_commands","line_end":40,"severity":"medium","line_start":40},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Trigger when the user asks to \"record a trace\", \"profile the app\", \"capture a session\", etc. Full re","category":"external_commands","line_end":43,"severity":"medium","line_start":43},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":48,"severity":"medium","line_start":46},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":49,"severity":"medium","line_start":48},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"2. **Pick a template based on target kind** — the `SwiftUI` template populates the SwiftUI lane on a","category":"external_commands","line_end":49,"severity":"medium","line_start":49},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":55,"severity":"medium","line_start":51},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":57,"severity":"medium","line_start":55},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. **Signal stop** — when the user says they've finished exercising the app, `touch /tmp/stop-trace`","category":"external_commands","line_end":60,"severity":"medium","line_start":57},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"### Trace-driven improvement (Instruments `.trace` provided)","category":"external_commands","line_end":61,"severity":"medium","line_start":60},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Trigger whenever the user's request references a `.trace` file. A target SwiftUI source file is **op","category":"external_commands","line_end":63,"severity":"medium","line_start":61},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Full reference: `references/trace-analysis.md`. Summary of the composition pattern:","category":"external_commands","line_end":69,"severity":"medium","line_start":63},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":76,"severity":"medium","line_start":69},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":77,"severity":"medium","line_start":76},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"Both modes accept `--window START_MS:END_MS` to scope discovery. Pick the `time_ms` (for logs) or `s","category":"external_commands","line_end":77,"severity":"medium","line_start":77},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"3. **Run the main analysis** (with or without `--window`):","category":"external_commands","line_end":79,"severity":"medium","line_start":78},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```bash","category":"external_commands","line_end":82,"severity":"medium","line_start":79},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"```","category":"external_commands","line_end":83,"severity":"medium","line_start":82},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"4. **Interpret with `references/trace-analysis.md`** — key diagnostics:","category":"external_commands","line_end":84,"severity":"medium","line_start":83},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `main_running_coverage_pct` inside each correlation (<25% = blocked; ≥75% = CPU-bound).","category":"external_commands","line_end":85,"severity":"medium","line_start":84},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `swiftui-causes.top_sources` reveals *why* updates keep happening — high-edge-count sources like `","category":"external_commands","line_end":85,"severity":"medium","line_start":85},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"5. **When a specific view shows as expensive, ask who's invalidating it.** Use `--fanin-for \"<view n","category":"external_commands","line_end":97,"severity":"medium","line_start":86},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| State management | `references/state-management.md` |","category":"external_commands","line_end":98,"severity":"medium","line_start":97},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| View composition | `references/view-structure.md` |","category":"external_commands","line_end":99,"severity":"medium","line_start":98},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Performance | `references/performance-patterns.md` |","category":"external_commands","line_end":100,"severity":"medium","line_start":99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Lists and ForEach | `references/list-patterns.md` |","category":"external_commands","line_end":101,"severity":"medium","line_start":100},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Layout | `references/layout-best-practices.md` |","category":"external_commands","line_end":102,"severity":"medium","line_start":101},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Sheets and navigation | `references/sheet-navigation-patterns.md` |","category":"external_commands","line_end":103,"severity":"medium","line_start":102},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| ScrollView | `references/scroll-patterns.md` |","category":"external_commands","line_end":104,"severity":"medium","line_start":103},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Focus management | `references/focus-patterns.md` |","category":"external_commands","line_end":105,"severity":"medium","line_start":104},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Animations (basics) | `references/animation-basics.md` |","category":"external_commands","line_end":106,"severity":"medium","line_start":105},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Animations (transitions) | `references/animation-transitions.md` |","category":"external_commands","line_end":107,"severity":"medium","line_start":106},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Animations (advanced) | `references/animation-advanced.md` |","category":"external_commands","line_end":108,"severity":"medium","line_start":107},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Accessibility | `references/accessibility-patterns.md` |","category":"external_commands","line_end":109,"severity":"medium","line_start":108},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Swift Charts | `references/charts.md` |","category":"external_commands","line_end":110,"severity":"medium","line_start":109},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Charts accessibility | `references/charts-accessibility.md` |","category":"external_commands","line_end":111,"severity":"medium","line_start":110},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Image optimization | `references/image-optimization.md` |","category":"external_commands","line_end":112,"severity":"medium","line_start":111},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Liquid Glass (iOS 26+) | `references/liquid-glass.md` |","category":"external_commands","line_end":113,"severity":"medium","line_start":112},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| macOS scenes | `references/macos-scenes.md` |","category":"external_commands","line_end":114,"severity":"medium","line_start":113},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| macOS window styling | `references/macos-window-styling.md` |","category":"external_commands","line_end":115,"severity":"medium","line_start":114},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| macOS views | `references/macos-views.md` |","category":"external_commands","line_end":116,"severity":"medium","line_start":115},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Text patterns | `references/text-patterns.md` |","category":"external_commands","line_end":117,"severity":"medium","line_start":116},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Localization | `references/localization.md` |","category":"external_commands","line_end":118,"severity":"medium","line_start":117},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Deprecated API lookup | `references/latest-apis.md` |","category":"external_commands","line_end":119,"severity":"medium","line_start":118},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Handling soft-deprecated APIs | `references/soft-deprecation.md` |","category":"external_commands","line_end":120,"severity":"medium","line_start":119},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Previews | `references/previews.md` |","category":"external_commands","line_end":121,"severity":"medium","line_start":120},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Instruments trace analysis | `references/trace-analysis.md` |","category":"external_commands","line_end":122,"severity":"medium","line_start":121},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"| Instruments trace recording | `references/trace-recording.md` |","category":"external_commands","line_end":128,"severity":"medium","line_start":122},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `@State` properties are `private`","category":"external_commands","line_end":128,"severity":"medium","line_start":128},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `@Binding` only where a child modifies parent state","category":"external_commands","line_end":130,"severity":"medium","line_start":129},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] Passed values never declared as `@State` or `@StateObject` (they ignore updates)","category":"external_commands","line_end":130,"severity":"medium","line_start":130},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `@StateObject` for view-owned objects; `@ObservedObject` for injected","category":"external_commands","line_end":131,"severity":"medium","line_start":131},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] iOS 17+: `@State` with `@Observable`; `@Bindable` for injected observables needing bindings","category":"external_commands","line_end":132,"severity":"medium","line_start":132},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `ForEach` uses stable identity (never `.indices`/`\\.offset`; id outlives the view and isn't de","category":"external_commands","line_end":133,"severity":"medium","line_start":133},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] Constant number of views per `ForEach` element; `List` rows are unary","category":"external_commands","line_end":134,"severity":"medium","line_start":134},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] No closures stored in custom `@Environment`/`@FocusedValue` keys","category":"external_commands","line_end":135,"severity":"medium","line_start":135},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] Custom `@Entry` default values are stable (no `Model()`/`Date()`/`UUID()` expressions)","category":"external_commands","line_end":136,"severity":"medium","line_start":136},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `.animation(_:value:)` always includes the `value` parameter","category":"external_commands","line_end":137,"severity":"medium","line_start":137},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `@FocusState` properties are `private`","category":"external_commands","line_end":138,"severity":"medium","line_start":138},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] No redundant `@FocusState` writes inside tap gesture handlers on `.focusable()` views","category":"external_commands","line_end":139,"severity":"medium","line_start":139},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] iOS 26+ APIs gated with `#available` and fallback provided","category":"external_commands","line_end":141,"severity":"medium","line_start":140},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- [ ] `import Charts` present in files using chart types","category":"external_commands","line_end":146,"severity":"medium","line_start":141},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/latest-apis.md` -- **Read first for every task.** Deprecated-to-modern API transitions","category":"external_commands","line_end":147,"severity":"medium","line_start":146},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/state-management.md` -- Property wrappers, data flow, `@Observable` migration","category":"external_commands","line_end":147,"severity":"medium","line_start":147},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/view-structure.md` -- View extraction, container patterns, `@ViewBuilder`","category":"external_commands","line_end":148,"severity":"medium","line_start":148},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/performance-patterns.md` -- Hot-path optimization, update control, `_logChanges()`","category":"external_commands","line_end":149,"severity":"medium","line_start":149},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/list-patterns.md` -- ForEach identity, Table (iOS 16+), inline filtering pitfalls","category":"external_commands","line_end":151,"severity":"medium","line_start":150},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/layout-best-practices.md` -- Layout patterns, GeometryReader alternatives","category":"external_commands","line_end":152,"severity":"medium","line_start":151},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/accessibility-patterns.md` -- VoiceOver, Dynamic Type, grouping, traits","category":"external_commands","line_end":153,"severity":"medium","line_start":152},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/animation-basics.md` -- Implicit/explicit animations, timing, performance","category":"external_commands","line_end":154,"severity":"medium","line_start":153},{"id":"external_commands:SKILL.md:154:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/animation-transitions.md` -- View transitions, `matchedGeometryEffect`, `Animatable`","category":"external_commands","line_end":154,"severity":"medium","line_start":154},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/animation-advanced.md` -- Phase/keyframe animations (iOS 17+), `@Animatable` macro (iO","category":"external_commands","line_end":155,"severity":"medium","line_start":155},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/charts.md` -- Swift Charts marks, axes, selection, styling, Chart3D (iOS 26+)","category":"external_commands","line_end":157,"severity":"medium","line_start":156},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/charts-accessibility.md` -- Charts VoiceOver, Audio Graph, fallback strategies","category":"external_commands","line_end":158,"severity":"medium","line_start":157},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/sheet-navigation-patterns.md` -- Sheets, NavigationSplitView, Inspector","category":"external_commands","line_end":159,"severity":"medium","line_start":158},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/scroll-patterns.md` -- ScrollViewReader, programmatic scrolling","category":"external_commands","line_end":160,"severity":"medium","line_start":159},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/focus-patterns.md` -- Focus state, focusable views, focused values, default focus, com","category":"external_commands","line_end":161,"severity":"medium","line_start":160},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/image-optimization.md` -- AsyncImage, downsampling, caching","category":"external_commands","line_end":162,"severity":"medium","line_start":161},{"id":"external_commands:SKILL.md:162:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/liquid-glass.md` -- iOS 26+ Liquid Glass effects and fallback patterns","category":"external_commands","line_end":163,"severity":"medium","line_start":162},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/macos-scenes.md` -- Settings, MenuBarExtra, WindowGroup, multi-window","category":"external_commands","line_end":164,"severity":"medium","line_start":163},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/macos-window-styling.md` -- Toolbar styles, window sizing, Commands","category":"external_commands","line_end":165,"severity":"medium","line_start":164},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/macos-views.md` -- HSplitView, Table, PasteButton, AppKit interop","category":"external_commands","line_end":166,"severity":"medium","line_start":165},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/previews.md` -- `#Preview` macro, `@Previewable` (iOS 18+), preview traits, mock data ","category":"external_commands","line_end":166,"severity":"medium","line_start":166},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/text-patterns.md` -- Text initializer selection, verbatim vs localized","category":"external_commands","line_end":168,"severity":"medium","line_start":167},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/localization.md` -- String Catalogs, `#bundle` for packages, `LocalizedStringResource`","category":"external_commands","line_end":168,"severity":"medium","line_start":168},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/soft-deprecation.md` -- How to behave with soft-deprecated APIs (when to migrate, scop","category":"external_commands","line_end":170,"severity":"medium","line_start":169},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/trace-analysis.md` -- Parse Instruments `.trace` files via `scripts/analyze_trace.py`;","category":"external_commands","line_end":170,"severity":"medium","line_start":170},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","file":"SKILL.md","pattern":"Ruby/shell backtick execution","snippet":"- `references/trace-recording.md` -- Record a new trace via `scripts/record_trace.py`: attach to a r","category":"external_commands","line_end":171,"severity":"medium","line_start":171},{"id":"filesystem:SKILL.md:54:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"--stop-file /tmp/stop-trace --output ~/Desktop/session.trace","category":"filesystem","line_end":54,"severity":"medium","line_start":54},{"id":"filesystem:SKILL.md:57:temp-directory-access","file":"SKILL.md","pattern":"Temp directory access","snippet":"4. **Signal stop** — when the user says they've finished exercising the app, `touch /tmp/stop-trace`","category":"filesystem","line_end":57,"severity":"medium","line_start":57},{"id":"blocker:SKILL.md:3:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"description: Use when writing, reviewing, or refactoring SwiftUI code for iOS or macOS, including st","category":"blocker","line_end":3,"severity":"low","line_start":3},{"id":"blocker:SKILL.md:11:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Consult `references/latest-apis.md` at the start of every task to avoid deprecated APIs","category":"blocker","line_end":11,"severity":"low","line_start":11},{"id":"blocker:SKILL.md:16:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- Only adopt Liquid Glass when explicitly requested by the user (see `references/liquid-glass.md`)","category":"blocker","line_end":16,"severity":"low","line_start":16},{"id":"blocker:SKILL.md:112:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"| Liquid Glass (iOS 26+) | `references/liquid-glass.md` |","category":"blocker","line_end":112,"severity":"low","line_start":112},{"id":"blocker:SKILL.md:133:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- [ ] `ForEach` uses stable identity (never `.indices`/`\\.offset`; id outlives the view and isn't de","category":"blocker","line_end":133,"severity":"low","line_start":133},{"id":"blocker:SKILL.md:162:system-reconnaissance","file":"SKILL.md","pattern":"System reconnaissance","snippet":"- `references/liquid-glass.md` -- iOS 26+ Liquid Glass effects and fallback patterns","category":"blocker","line_end":162,"severity":"low","line_start":162}],"finding_verdicts":[{"id":"blocker:references/accessibility-patterns.md:43:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/animation-advanced.md:187:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/animation-advanced.md:233:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/animation-basics.md:201:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/charts.md:78:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/charts.md:272:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/image-optimization.md:45:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/image-optimization.md:133:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"network:references/latest-apis.md:455:hardcoded-url","reason":"The URL is the placeholder example.com in SwiftUI reference documentation. It is not a network request made by the skill.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/latest-apis.md:149:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/latest-apis.md:255:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/latest-apis.md:272:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/latest-apis.md:527:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:28:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:59:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:91:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:116:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:141:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:218:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:231:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:248:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:260:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/layout-best-practices.md:265:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:1:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:20:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:22:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:26:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:30:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:250:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:384:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/liquid-glass.md:99:network-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:63:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:84:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:118:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:128:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:129:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:130:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:156:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:164:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:252:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:353:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:383:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:457:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/list-patterns.md:461:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/macos-views.md:87:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/macos-window-styling.md:247:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/macos-window-styling.md:265:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/macos-window-styling.md:270:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:references/performance-patterns.md:235:certificate-key-files","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:11:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:50:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:57:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:72:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:235:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:309:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:368:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/performance-patterns.md:406:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/previews.md:307:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/sheet-navigation-patterns.md:33:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/sheet-navigation-patterns.md:56:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/sheet-navigation-patterns.md:194:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/sheet-navigation-patterns.md:361:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/state-management.md:19:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/state-management.md:129:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/state-management.md:141:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/state-management.md:365:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/state-management.md:474:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/trace-analysis.md:194:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:references/trace-recording.md:115:shell-command-substitution","reason":"This is documentation showing how to capture the local trace path from the bundled recorder. It is not hidden execution or a command injection vector.","verdict":"false_positive","confidence":0.93},{"id":"filesystem:references/trace-recording.md:47:temp-directory-access","reason":"The documented stop-file is an explicit local coordination mechanism for ending a requested trace recording. It does not expose sensitive files or escalate privileges.","verdict":"false_positive","confidence":0.92},{"id":"filesystem:references/trace-recording.md:53:temp-directory-access","reason":"The documented stop-file is an explicit local coordination mechanism for ending a requested trace recording. It does not expose sensitive files or escalate privileges.","verdict":"false_positive","confidence":0.92},{"id":"filesystem:references/trace-recording.md:116:temp-directory-access","reason":"The documented stop-file is an explicit local coordination mechanism for ending a requested trace recording. It does not expose sensitive files or escalate privileges.","verdict":"false_positive","confidence":0.92},{"id":"external_commands:references/view-structure.md:151:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:11:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:118:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:311:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:316:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:356:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:357:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:358:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:418:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:714:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:736:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:831:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:836:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:840:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:842:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:846:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:references/view-structure.md:851:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"scripts:scripts/analyze_trace.py:20:dynamic-import-expression","reason":"The Python import is a static local import of bundled Instruments parsers, not runtime loading of user-controlled code.","verdict":"false_positive","confidence":0.97},{"id":"external_commands:scripts/analyze_trace.py:255:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/analyze_trace.py:48:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/analyze_trace.py:273:network-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/causes.py:1:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/causes.py:12:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/causes.py:18:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/causes.py:136:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/causes.py:138:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/correlate.py:16:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:31:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:105:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:107:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:111:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:112:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:115:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:116:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/events.py:117:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/events.py:116:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/events.py:182:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/events.py:229:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/hangs.py:1:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/hitches.py:3:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/hitches.py:72:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:12:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:54:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:139:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:148:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:167:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:170:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:176:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:179:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:209:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/summary.py:219:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/summary.py:230:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/summary.py:236:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/swiftui.py:3:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/time_profiler.py:1:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/time_profiler.py:108:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xctrace.py:35:python-subprocess-run","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/instruments_parser/xctrace.py:106:python-subprocess-run","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/instruments_parser/xctrace.py:1:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:3:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:23:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:25:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:44:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:45:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:48:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:49:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:50:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:120:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:196:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/instruments_parser/xml_utils.py:198:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:16:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:23:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:76:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:78:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:79:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/instruments_parser/xml_utils.py:93:crypto-seed-private-key-mention","reason":"The matched terms are SwiftUI keyframe APIs or Instruments XML column mnemonics. No credentials, keys, or secret material are accessed.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:5:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:24:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:25:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:59:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:60:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:70:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:129:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/instruments_parser/xml_utils.py:198:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/record_trace.py:197:python-subprocess-run","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/record_trace.py:226:python-subprocess-run","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/record_trace.py:111:python-subprocess-popen","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/record_trace.py:174:python-subprocess-popen","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/record_trace.py:188:python-subprocess-popen","reason":"The trace utility invokes the local xctrace tool with argument arrays for its documented profiling workflow. No shell interpolation or untrusted command construction is indicated.","verdict":"false_positive","confidence":0.95},{"id":"external_commands:scripts/record_trace.py:2:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/record_trace.py:17:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:scripts/record_trace.py:104:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"sensitive:scripts/record_trace.py:82:environment-file-access","reason":"The script accepts explicit environment assignments for a user-requested app launch. It does not read environment files or transmit secrets.","verdict":"false_positive","confidence":0.94},{"id":"sensitive:scripts/record_trace.py:146:environment-file-access","reason":"The script accepts explicit environment assignments for a user-requested app launch. It does not read environment files or transmit secrets.","verdict":"false_positive","confidence":0.94},{"id":"blocker:scripts/record_trace.py:64:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/record_trace.py:122:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/record_trace.py:130:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/record_trace.py:215:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/record_trace.py:16:network-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:scripts/record_trace.py:19:network-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:3:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:11:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:16:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:18:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:24:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:26:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:30:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:33:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:39:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:40:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:43:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:46:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:48:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:49:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:51:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:55:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:57:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:60:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:61:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:63:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:69:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:76:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:77:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:78:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:79:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:82:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:83:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:84:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:85:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:86:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:97:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:98:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:99:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:100:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:101:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:102:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:103:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:104:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:105:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:106:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:107:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:108:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:109:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:110:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:111:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:112:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:113:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:114:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:115:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:116:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:117:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:118:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:119:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:120:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:121:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:122:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:128:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:129:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:130:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:131:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:132:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:133:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:134:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:135:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:136:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:137:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:138:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:139:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:140:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:141:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:146:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:147:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:148:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:149:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:150:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:151:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:152:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:153:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:154:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:155:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:156:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:157:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:158:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:159:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:160:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:161:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:162:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:163:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:164:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:165:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:166:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:167:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:168:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:169:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:170:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"external_commands:SKILL.md:171:ruby-shell-backtick-execution","reason":"The match is Markdown or Python documentation formatting using backticks, not a Ruby shell-execution expression.","verdict":"false_positive","confidence":0.99},{"id":"filesystem:SKILL.md:54:temp-directory-access","reason":"The documented stop-file is an explicit local coordination mechanism for ending a requested trace recording. It does not expose sensitive files or escalate privileges.","verdict":"false_positive","confidence":0.92},{"id":"filesystem:SKILL.md:57:temp-directory-access","reason":"The documented stop-file is an explicit local coordination mechanism for ending a requested trace recording. It does not expose sensitive files or escalate privileges.","verdict":"false_positive","confidence":0.92},{"id":"blocker:SKILL.md:3:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:11:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:16:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:112:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:133:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99},{"id":"blocker:SKILL.md:162:system-reconnaissance","reason":"The match is ordinary SwiftUI, trace, or XML terminology and does not enumerate systems or probe networks.","verdict":"false_positive","confidence":0.99}],"semantic_findings":[],"subject_marketplace_commit_sha":"194714deee7b9b088e8f12ccbfae81a852db6228","subject_content_hash":"e74c27b66f5ff5da524ede219348e7f9ddb7602ca9288cc5e3972e8e05e3ba29","subject_tree_hash":"fd822895d92c05b8151e9e3fa7923d57ebe41f994dbb6b825074ce8a088c7f93","subject_plugin_path":"skills/avdlee/swiftui-expert-skill","audit_payload_hash":"ef80cada84e9bb1469241ad9d82cc581","confirmed_risk_level":"safe","scanner_version":"3.0.0","policy_version":"skillstore-security-audit-policy-v1","subject":{"marketplaceCommitSha":"194714deee7b9b088e8f12ccbfae81a852db6228","contentHash":"e74c27b66f5ff5da524ede219348e7f9ddb7602ca9288cc5e3972e8e05e3ba29","treeHash":"fd822895d92c05b8151e9e3fa7923d57ebe41f994dbb6b825074ce8a088c7f93","pluginPath":"skills/avdlee/swiftui-expert-skill","auditPayloadHash":"ef80cada84e9bb1469241ad9d82cc581"},"scannerVersion":"3.0.0","policyVersion":"skillstore-security-audit-policy-v1"},"auditTranslation":null,"localization":{"requestedLocale":"en","contentLocale":"en","availableLocales":["en"],"fallbackToEnglish":false},"attestation":{"availability":"issued","url":"/api/skills/avdlee-swiftui-expert-skill/audits/6/attestation","status":"superseded"},"trust":{"publicState":"public","auditState":"complete","auditCurrentness":null,"confirmedRiskLevel":"safe","confirmedFindingCount":0,"capabilityReviewCount":0,"needsReviewCount":0,"falsePositiveCount":0,"agentAutoInstallPolicy":"allowed","manualInstallPolicy":"allowed","artifactSignatureState":"available","attestationState":"superseded","verificationState":"not_verified"},"isLatest":false}}