opencodekit 0.18.1 → 0.18.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/dist/index.js +161 -38
  2. package/dist/template/.opencode/.version +1 -1
  3. package/dist/template/.opencode/AGENTS.md +39 -9
  4. package/dist/template/.opencode/AGENT_ALIGNMENT.md +6 -6
  5. package/dist/template/.opencode/agent/build.md +7 -103
  6. package/dist/template/.opencode/agent/general.md +0 -52
  7. package/dist/template/.opencode/agent/plan.md +10 -0
  8. package/dist/template/.opencode/agent/runner.md +79 -0
  9. package/dist/template/.opencode/command/create.md +13 -1
  10. package/dist/template/.opencode/command/init-context.md +20 -6
  11. package/dist/template/.opencode/command/init-user.md +18 -16
  12. package/dist/template/.opencode/command/lfg.md +3 -4
  13. package/dist/template/.opencode/command/ship.md +6 -48
  14. package/dist/template/.opencode/command/start.md +20 -3
  15. package/dist/template/.opencode/command/verify.md +12 -17
  16. package/dist/template/.opencode/context/README.md +29 -0
  17. package/dist/template/.opencode/memory/_templates/{STATE.md → state.md} +1 -1
  18. package/dist/template/.opencode/memory.db +0 -0
  19. package/dist/template/.opencode/memory.db-shm +0 -0
  20. package/dist/template/.opencode/memory.db-wal +0 -0
  21. package/dist/template/.opencode/opencode.json +131 -7
  22. package/dist/template/.opencode/package.json +1 -1
  23. package/dist/template/.opencode/plugin/lib/memory-helpers.ts +51 -16
  24. package/dist/template/.opencode/plugin/lib/memory-hooks.ts +1 -1
  25. package/dist/template/.opencode/skill/accessibility-audit/SKILL.md +11 -5
  26. package/dist/template/.opencode/skill/agent-browser/SKILL.md +55 -18
  27. package/dist/template/.opencode/skill/agent-teams/SKILL.md +12 -1
  28. package/dist/template/.opencode/skill/augment-context-engine/SKILL.md +11 -1
  29. package/dist/template/.opencode/skill/beads/SKILL.md +57 -390
  30. package/dist/template/.opencode/skill/beads/references/BEST_PRACTICES.md +27 -0
  31. package/dist/template/.opencode/skill/beads/references/EXAMPLES.md +45 -0
  32. package/dist/template/.opencode/skill/beads/references/FILE_CLAIMING.md +101 -0
  33. package/dist/template/.opencode/skill/beads/references/GIT_SYNC.md +25 -0
  34. package/dist/template/.opencode/skill/beads/references/HIERARCHY.md +71 -0
  35. package/dist/template/.opencode/skill/beads/references/MULTI_AGENT.md +40 -0
  36. package/dist/template/.opencode/skill/beads/references/SESSION_PROTOCOL.md +61 -0
  37. package/dist/template/.opencode/skill/beads/references/TASK_CREATION.md +38 -0
  38. package/dist/template/.opencode/skill/beads/references/TROUBLESHOOTING.md +38 -0
  39. package/dist/template/.opencode/skill/beads-bridge/SKILL.md +10 -10
  40. package/dist/template/.opencode/skill/brainstorming/SKILL.md +13 -0
  41. package/dist/template/.opencode/skill/chrome-devtools/SKILL.md +11 -1
  42. package/dist/template/.opencode/skill/cloudflare/SKILL.md +87 -67
  43. package/dist/template/.opencode/skill/compaction/SKILL.md +11 -3
  44. package/dist/template/.opencode/skill/condition-based-waiting/SKILL.md +11 -25
  45. package/dist/template/.opencode/skill/context-engineering/SKILL.md +13 -2
  46. package/dist/template/.opencode/skill/context-initialization/SKILL.md +11 -1
  47. package/dist/template/.opencode/skill/context-management/SKILL.md +13 -1
  48. package/dist/template/.opencode/skill/core-data-expert/SKILL.md +13 -2
  49. package/dist/template/.opencode/skill/deep-research/SKILL.md +5 -8
  50. package/dist/template/.opencode/skill/defense-in-depth/SKILL.md +13 -0
  51. package/dist/template/.opencode/skill/design-system-audit/SKILL.md +9 -3
  52. package/dist/template/.opencode/skill/development-lifecycle/SKILL.md +51 -0
  53. package/dist/template/.opencode/skill/dispatching-parallel-agents/SKILL.md +19 -30
  54. package/dist/template/.opencode/skill/executing-plans/SKILL.md +36 -0
  55. package/dist/template/.opencode/skill/figma/SKILL.md +11 -1
  56. package/dist/template/.opencode/skill/finishing-a-development-branch/SKILL.md +31 -0
  57. package/dist/template/.opencode/skill/frontend-design/SKILL.md +13 -3
  58. package/dist/template/.opencode/skill/gemini-large-context/SKILL.md +11 -0
  59. package/dist/template/.opencode/skill/index-knowledge/SKILL.md +11 -1
  60. package/dist/template/.opencode/skill/jira/SKILL.md +11 -1
  61. package/dist/template/.opencode/skill/memory-system/SKILL.md +13 -1
  62. package/dist/template/.opencode/skill/mockup-to-code/SKILL.md +9 -3
  63. package/dist/template/.opencode/skill/mqdh/SKILL.md +11 -1
  64. package/dist/template/.opencode/skill/obsidian/SKILL.md +11 -1
  65. package/dist/template/.opencode/skill/opensrc/SKILL.md +18 -6
  66. package/dist/template/.opencode/skill/pdf-extract/SKILL.md +11 -1
  67. package/dist/template/.opencode/skill/playwright/SKILL.md +11 -1
  68. package/dist/template/.opencode/skill/playwriter/SKILL.md +11 -1
  69. package/dist/template/.opencode/skill/polar/SKILL.md +11 -1
  70. package/dist/template/.opencode/skill/prd/SKILL.md +13 -4
  71. package/dist/template/.opencode/skill/prd-task/SKILL.md +13 -3
  72. package/dist/template/.opencode/skill/ralph/SKILL.md +4 -8
  73. package/dist/template/.opencode/skill/react-best-practices/SKILL.md +24 -16
  74. package/dist/template/.opencode/skill/receiving-code-review/SKILL.md +22 -0
  75. package/dist/template/.opencode/skill/requesting-code-review/SKILL.md +30 -2
  76. package/dist/template/.opencode/skill/resend/SKILL.md +11 -1
  77. package/dist/template/.opencode/skill/root-cause-tracing/SKILL.md +12 -23
  78. package/dist/template/.opencode/skill/session-management/SKILL.md +11 -1
  79. package/dist/template/.opencode/skill/sharing-skills/SKILL.md +11 -0
  80. package/dist/template/.opencode/skill/skill-creator/SKILL.md +12 -11
  81. package/dist/template/.opencode/skill/source-code-research/SKILL.md +20 -266
  82. package/dist/template/.opencode/skill/source-code-research/references/analysis-tips.md +43 -0
  83. package/dist/template/.opencode/skill/source-code-research/references/anti-patterns.md +36 -0
  84. package/dist/template/.opencode/skill/source-code-research/references/common-patterns.md +57 -0
  85. package/dist/template/.opencode/skill/source-code-research/references/example-workflow.md +60 -0
  86. package/dist/template/.opencode/skill/source-code-research/references/further-reading.md +5 -0
  87. package/dist/template/.opencode/skill/source-code-research/references/source-structure.md +45 -0
  88. package/dist/template/.opencode/skill/stitch/SKILL.md +11 -1
  89. package/dist/template/.opencode/skill/structured-edit/SKILL.md +13 -0
  90. package/dist/template/.opencode/skill/subagent-driven-development/SKILL.md +13 -14
  91. package/dist/template/.opencode/skill/supabase/SKILL.md +11 -1
  92. package/dist/template/.opencode/skill/supabase-postgres-best-practices/SKILL.md +23 -15
  93. package/dist/template/.opencode/skill/swarm-coordination/SKILL.md +23 -923
  94. package/dist/template/.opencode/skill/swarm-coordination/references/architecture.md +39 -0
  95. package/dist/template/.opencode/skill/swarm-coordination/references/delegation-worker-protocol.md +145 -0
  96. package/dist/template/.opencode/skill/swarm-coordination/references/dependency-graph.md +50 -0
  97. package/dist/template/.opencode/skill/swarm-coordination/references/drift-check.md +90 -0
  98. package/dist/template/.opencode/skill/swarm-coordination/references/integration-beads.md +20 -0
  99. package/dist/template/.opencode/skill/swarm-coordination/references/launch-flow.md +186 -0
  100. package/dist/template/.opencode/skill/swarm-coordination/references/reconciler.md +172 -0
  101. package/dist/template/.opencode/skill/swarm-coordination/references/tier-enforcement.md +78 -0
  102. package/dist/template/.opencode/skill/swarm-coordination/references/tmux-integration.md +134 -0
  103. package/dist/template/.opencode/skill/swift-concurrency/SKILL.md +22 -2
  104. package/dist/template/.opencode/skill/swiftui-expert-skill/SKILL.md +58 -19
  105. package/dist/template/.opencode/skill/systematic-debugging/SKILL.md +25 -25
  106. package/dist/template/.opencode/skill/test-driven-development/SKILL.md +19 -15
  107. package/dist/template/.opencode/skill/testing-anti-patterns/SKILL.md +13 -0
  108. package/dist/template/.opencode/skill/testing-skills-with-subagents/SKILL.md +13 -15
  109. package/dist/template/.opencode/skill/tool-priority/SKILL.md +13 -0
  110. package/dist/template/.opencode/skill/ui-ux-research/SKILL.md +9 -3
  111. package/dist/template/.opencode/skill/using-git-worktrees/SKILL.md +37 -0
  112. package/dist/template/.opencode/skill/using-skills/SKILL.md +13 -0
  113. package/dist/template/.opencode/skill/v0/SKILL.md +11 -1
  114. package/dist/template/.opencode/skill/v1-run/SKILL.md +11 -1
  115. package/dist/template/.opencode/skill/vercel-deploy-claimable/SKILL.md +14 -2
  116. package/dist/template/.opencode/skill/verification-before-completion/SKILL.md +22 -0
  117. package/dist/template/.opencode/skill/verification-before-completion/references/VERIFICATION_PROTOCOL.md +67 -0
  118. package/dist/template/.opencode/skill/visual-analysis/SKILL.md +9 -3
  119. package/dist/template/.opencode/skill/web-design-guidelines/SKILL.md +12 -5
  120. package/dist/template/.opencode/skill/writing-plans/SKILL.md +13 -0
  121. package/dist/template/.opencode/skill/writing-skills/SKILL.md +26 -421
  122. package/dist/template/.opencode/skill/writing-skills/references/anti-patterns.md +25 -0
  123. package/dist/template/.opencode/skill/writing-skills/references/claude-search-optimization.md +140 -0
  124. package/dist/template/.opencode/skill/writing-skills/references/discovery-workflow.md +11 -0
  125. package/dist/template/.opencode/skill/writing-skills/references/file-organization.md +32 -0
  126. package/dist/template/.opencode/skill/writing-skills/references/flowcharts-and-examples.md +57 -0
  127. package/dist/template/.opencode/skill/writing-skills/references/rationalization-hardening.md +75 -0
  128. package/dist/template/.opencode/skill/writing-skills/references/testing-skill-types.md +52 -0
  129. package/package.json +15 -4
  130. /package/dist/template/.opencode/memory/_templates/{PROJECT.md → project.md} +0 -0
  131. /package/dist/template/.opencode/memory/_templates/{ROADMAP.md → roadmap.md} +0 -0
@@ -1,16 +1,29 @@
1
1
  ---
2
2
  name: swiftui-expert-skill
3
3
  description: Write, review, or improve SwiftUI code following best practices for state management, view composition, performance, modern APIs, Swift concurrency, and iOS 26+ Liquid Glass adoption. Use when building new SwiftUI features, refactoring existing views, reviewing code quality, or adopting modern SwiftUI patterns.
4
+ version: 1.0.0
5
+ tags: [apple, ui]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # SwiftUI Expert Skill
7
10
 
11
+ ## When to Use
12
+
13
+ - When building, reviewing, or refactoring SwiftUI code with modern APIs and best practices.
14
+
15
+ ## When NOT to Use
16
+
17
+ - When the task does not involve SwiftUI (e.g., UIKit-only or non-Apple platforms).
18
+
8
19
  ## Overview
20
+
9
21
  Use this skill to build, review, or improve SwiftUI features with correct state management, modern API usage, Swift concurrency best practices, optimal view composition, and iOS 26+ Liquid Glass styling. Prioritize native APIs, Apple design guidance, and performance-conscious patterns. This skill focuses on facts and best practices without enforcing specific architectural patterns.
10
22
 
11
23
  ## Workflow Decision Tree
12
24
 
13
25
  ### 1) Review existing SwiftUI code
26
+
14
27
  - Check property wrapper usage against the selection guide (see `references/state-management.md`)
15
28
  - Verify modern API usage (see `references/modern-apis.md`)
16
29
  - Verify view composition follows extraction rules (see `references/view-structure.md`)
@@ -21,6 +34,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
21
34
  - Validate iOS 26+ availability handling with sensible fallbacks
22
35
 
23
36
  ### 2) Improve existing SwiftUI code
37
+
24
38
  - Audit state management for correct wrapper selection (prefer `@Observable` over `ObservableObject`)
25
39
  - Replace deprecated APIs with modern equivalents (see `references/modern-apis.md`)
26
40
  - Extract complex views into separate subviews (see `references/view-structure.md`)
@@ -31,6 +45,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
31
45
  - Adopt Liquid Glass only when explicitly requested by the user
32
46
 
33
47
  ### 3) Implement new SwiftUI feature
48
+
34
49
  - Design data flow first: identify owned vs injected state (see `references/state-management.md`)
35
50
  - Use modern APIs (no deprecated modifiers or patterns, see `references/modern-apis.md`)
36
51
  - Use `@Observable` for shared state (with `@MainActor` if not using default actor isolation)
@@ -43,6 +58,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
43
58
  ## Core Guidelines
44
59
 
45
60
  ### State Management
61
+
46
62
  - **Always prefer `@Observable` over `ObservableObject`** for new code
47
63
  - **Mark `@Observable` classes with `@MainActor`** unless using default actor isolation
48
64
  - **Always mark `@State` and `@StateObject` as `private`** (makes dependencies clear)
@@ -55,6 +71,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
55
71
  - Nested `ObservableObject` doesn't work (pass nested objects directly); `@Observable` handles nesting fine
56
72
 
57
73
  ### Modern APIs
74
+
58
75
  - Use `foregroundStyle()` instead of `foregroundColor()`
59
76
  - Use `clipShape(.rect(cornerRadius:))` instead of `cornerRadius()`
60
77
  - Use `Tab` API instead of `tabItem()`
@@ -70,6 +87,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
70
87
  - Avoid `GeometryReader` when alternatives exist (e.g., `containerRelativeFrame()`)
71
88
 
72
89
  ### Swift Best Practices
90
+
73
91
  - Use modern Text formatting (`.format` parameters, not `String(format:)`)
74
92
  - Use `localizedStandardContains()` for user-input filtering (not `contains()`)
75
93
  - Prefer static member lookup (`.blue` vs `Color.blue`)
@@ -77,6 +95,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
77
95
  - Use `.task(id:)` for value-dependent tasks
78
96
 
79
97
  ### View Composition
98
+
80
99
  - **Prefer modifiers over conditional views** for state changes (maintains view identity)
81
100
  - Extract complex views into separate subviews for better readability and performance
82
101
  - Keep views small for optimal performance
@@ -89,6 +108,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
89
108
  - Views should work in any context (don't assume screen size or presentation style)
90
109
 
91
110
  ### Performance
111
+
92
112
  - Pass only needed values to views (avoid large "config" or "context" objects)
93
113
  - Eliminate unnecessary dependencies to reduce update fan-out
94
114
  - Check for value changes before assigning state in hot paths
@@ -106,6 +126,7 @@ Use this skill to build, review, or improve SwiftUI features with correct state
106
126
  - Use `Self._printChanges()` to debug unexpected view updates
107
127
 
108
128
  ### Animations
129
+
109
130
  - Use `.animation(_:value:)` with value parameter (deprecated version without value is too broad)
110
131
  - Use `withAnimation` for event-driven animations (button taps, gestures)
111
132
  - Prefer transforms (`offset`, `scale`, `rotation`) over layout changes (`frame`) for performance
@@ -117,7 +138,9 @@ Use this skill to build, review, or improve SwiftUI features with correct state
117
138
  - Implicit animations override explicit animations (later in view tree wins)
118
139
 
119
140
  ### Liquid Glass (iOS 26+)
141
+
120
142
  **Only adopt when explicitly requested by the user.**
143
+
121
144
  - Use native `glassEffect`, `GlassEffectContainer`, and glass button styles
122
145
  - Wrap multiple glass elements in `GlassEffectContainer`
123
146
  - Apply `.glassEffect()` after layout and visual modifiers
@@ -127,13 +150,14 @@ Use this skill to build, review, or improve SwiftUI features with correct state
127
150
  ## Quick Reference
128
151
 
129
152
  ### Property Wrapper Selection (Modern)
130
- | Wrapper | Use When |
131
- |---------|----------|
132
- | `@State` | Internal view state (must be `private`), or owned `@Observable` class |
133
- | `@Binding` | Child modifies parent's state |
134
- | `@Bindable` | Injected `@Observable` needing bindings |
135
- | `let` | Read-only value from parent |
136
- | `var` | Read-only value watched via `.onChange()` |
153
+
154
+ | Wrapper | Use When |
155
+ | ----------- | --------------------------------------------------------------------- |
156
+ | `@State` | Internal view state (must be `private`), or owned `@Observable` class |
157
+ | `@Binding` | Child modifies parent's state |
158
+ | `@Bindable` | Injected `@Observable` needing bindings |
159
+ | `let` | Read-only value from parent |
160
+ | `var` | Read-only value watched via `.onChange()` |
137
161
 
138
162
  **Legacy (Pre-iOS 17):**
139
163
  | Wrapper | Use When |
@@ -142,21 +166,23 @@ Use this skill to build, review, or improve SwiftUI features with correct state
142
166
  | `@ObservedObject` | View receives an `ObservableObject` |
143
167
 
144
168
  ### Modern API Replacements
145
- | Deprecated | Modern Alternative |
146
- |------------|-------------------|
147
- | `foregroundColor()` | `foregroundStyle()` |
148
- | `cornerRadius()` | `clipShape(.rect(cornerRadius:))` |
149
- | `tabItem()` | `Tab` API |
150
- | `onTapGesture()` | `Button` (unless need location/count) |
151
- | `NavigationView` | `NavigationStack` |
152
- | `onChange(of:) { value in }` | `onChange(of:) { old, new in }` or `onChange(of:) { }` |
153
- | `fontWeight(.bold)` | `bold()` |
154
- | `GeometryReader` | `containerRelativeFrame()` or `visualEffect()` |
155
- | `showsIndicators: false` | `.scrollIndicators(.hidden)` |
169
+
170
+ | Deprecated | Modern Alternative |
171
+ | ------------------------------- | ------------------------------------------------------------ |
172
+ | `foregroundColor()` | `foregroundStyle()` |
173
+ | `cornerRadius()` | `clipShape(.rect(cornerRadius:))` |
174
+ | `tabItem()` | `Tab` API |
175
+ | `onTapGesture()` | `Button` (unless need location/count) |
176
+ | `NavigationView` | `NavigationStack` |
177
+ | `onChange(of:) { value in }` | `onChange(of:) { old, new in }` or `onChange(of:) { }` |
178
+ | `fontWeight(.bold)` | `bold()` |
179
+ | `GeometryReader` | `containerRelativeFrame()` or `visualEffect()` |
180
+ | `showsIndicators: false` | `.scrollIndicators(.hidden)` |
156
181
  | `String(format: "%.2f", value)` | `Text(value, format: .number.precision(.fractionLength(2)))` |
157
- | `string.contains(search)` | `string.localizedStandardContains(search)` (for user input) |
182
+ | `string.contains(search)` | `string.localizedStandardContains(search)` (for user input) |
158
183
 
159
184
  ### Liquid Glass Patterns
185
+
160
186
  ```swift
161
187
  // Basic glass effect with fallback
162
188
  if #available(iOS 26, *) {
@@ -185,6 +211,7 @@ Button("Confirm") { }
185
211
  ## Review Checklist
186
212
 
187
213
  ### State Management
214
+
188
215
  - [ ] Using `@Observable` instead of `ObservableObject` for new code
189
216
  - [ ] `@Observable` classes marked with `@MainActor` (if needed)
190
217
  - [ ] Using `@State` with `@Observable` classes (not `@StateObject`)
@@ -195,6 +222,7 @@ Button("Confirm") { }
195
222
  - [ ] Nested `ObservableObject` avoided (or passed directly to child views)
196
223
 
197
224
  ### Modern APIs (see `references/modern-apis.md`)
225
+
198
226
  - [ ] Using `foregroundStyle()` instead of `foregroundColor()`
199
227
  - [ ] Using `clipShape(.rect(cornerRadius:))` instead of `cornerRadius()`
200
228
  - [ ] Using `Tab` API instead of `tabItem()`
@@ -205,25 +233,30 @@ Button("Confirm") { }
205
233
  - [ ] Button images include text labels for accessibility
206
234
 
207
235
  ### Sheets & Navigation (see `references/sheet-navigation-patterns.md`)
236
+
208
237
  - [ ] Using `.sheet(item:)` for model-based sheets
209
238
  - [ ] Sheets own their actions and dismiss internally
210
239
  - [ ] Using `navigationDestination(for:)` for type-safe navigation
211
240
 
212
241
  ### ScrollView (see `references/scroll-patterns.md`)
242
+
213
243
  - [ ] Using `ScrollViewReader` with stable IDs for programmatic scrolling
214
244
  - [ ] Using `.scrollIndicators(.hidden)` instead of initializer parameter
215
245
 
216
246
  ### Text & Formatting (see `references/text-formatting.md`)
247
+
217
248
  - [ ] Using modern Text formatting (not `String(format:)`)
218
249
  - [ ] Using `localizedStandardContains()` for search filtering
219
250
 
220
251
  ### View Structure (see `references/view-structure.md`)
252
+
221
253
  - [ ] Using modifiers instead of conditionals for state changes
222
254
  - [ ] Complex views extracted to separate subviews
223
255
  - [ ] Views kept small for performance
224
256
  - [ ] Container views use `@ViewBuilder let content: Content`
225
257
 
226
258
  ### Performance (see `references/performance-patterns.md`)
259
+
227
260
  - [ ] View `body` kept simple and pure (no side effects)
228
261
  - [ ] Passing only needed values (not large config objects)
229
262
  - [ ] Eliminating unnecessary dependencies
@@ -233,12 +266,14 @@ Button("Confirm") { }
233
266
  - [ ] Heavy computation moved out of `body`
234
267
 
235
268
  ### List Patterns (see `references/list-patterns.md`)
269
+
236
270
  - [ ] ForEach uses stable identity (not `.indices`)
237
271
  - [ ] Constant number of views per ForEach element
238
272
  - [ ] No inline filtering in ForEach
239
273
  - [ ] No `AnyView` in list rows
240
274
 
241
275
  ### Layout (see `references/layout-best-practices.md`)
276
+
242
277
  - [ ] Avoiding layout thrash (deep hierarchies, excessive GeometryReader)
243
278
  - [ ] Gating frequent geometry updates by thresholds
244
279
  - [ ] Business logic separated into testable models
@@ -247,6 +282,7 @@ Button("Confirm") { }
247
282
  - [ ] Views work in any context (context-agnostic)
248
283
 
249
284
  ### Animations (see `references/animation-basics.md`, `references/animation-transitions.md`, `references/animation-advanced.md`)
285
+
250
286
  - [ ] Using `.animation(_:value:)` with value parameter
251
287
  - [ ] Using `withAnimation` for event-driven animations
252
288
  - [ ] Transitions paired with animations outside conditional structure
@@ -257,6 +293,7 @@ Button("Confirm") { }
257
293
  - [ ] Completion handlers use `.transaction(value:)` for reexecution
258
294
 
259
295
  ### Liquid Glass (iOS 26+)
296
+
260
297
  - [ ] `#available(iOS 26, *)` with fallback for Liquid Glass
261
298
  - [ ] Multiple glass views wrapped in `GlassEffectContainer`
262
299
  - [ ] `.glassEffect()` applied after layout/appearance modifiers
@@ -264,6 +301,7 @@ Button("Confirm") { }
264
301
  - [ ] Shapes and tints consistent across related elements
265
302
 
266
303
  ## References
304
+
267
305
  - `references/state-management.md` - Property wrappers and data flow (prefer `@Observable`)
268
306
  - `references/view-structure.md` - View composition, extraction, and container patterns
269
307
  - `references/performance-patterns.md` - Performance optimization techniques and anti-patterns
@@ -282,6 +320,7 @@ Button("Confirm") { }
282
320
  ## Philosophy
283
321
 
284
322
  This skill focuses on **facts and best practices**, not architectural opinions:
323
+
285
324
  - We don't enforce specific architectures (e.g., MVVM, VIPER)
286
325
  - We do encourage separating business logic for testability
287
326
  - We prioritize modern APIs over deprecated ones
@@ -1,10 +1,35 @@
1
1
  ---
2
2
  name: systematic-debugging
3
3
  description: Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes - four-phase framework (root cause investigation, pattern analysis, hypothesis testing, implementation) that ensures understanding before attempting solutions
4
+ version: 1.0.0
5
+ tags: [debugging, workflow]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # Systematic Debugging
7
10
 
11
+ ## When to Use
12
+
13
+ - Test failures, production bugs, build breaks, or unexpected behavior
14
+ - Issues with unclear root cause or multiple failed fix attempts
15
+ - Situations where time pressure makes “quick fixes” tempting
16
+
17
+ ## When NOT to Use
18
+
19
+ - Pure feature development with no failures to investigate
20
+ - Non-technical questions that don’t require root cause analysis
21
+
22
+ ## Debugging Checklist
23
+
24
+ - [ ] Read error messages/stack traces fully
25
+ - [ ] Reproduce consistently (or gather more data)
26
+ - [ ] Check recent changes (diffs, deps, config)
27
+ - [ ] Trace data flow to source (use root-cause-tracing if deep)
28
+ - [ ] Form a single hypothesis and test minimally
29
+ - [ ] Create a failing test before implementing the fix
30
+ - [ ] Implement one change and verify it resolves the issue
31
+ - [ ] If 3+ fixes fail, stop and question architecture
32
+
8
33
  ## Overview
9
34
 
10
35
  Random fixes waste time and create new bugs. Quick patches mask underlying issues.
@@ -21,31 +46,6 @@ NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST
21
46
 
22
47
  If you haven't completed Phase 1, you cannot propose fixes.
23
48
 
24
- ## When to Use
25
-
26
- Use for ANY technical issue:
27
-
28
- - Test failures
29
- - Bugs in production
30
- - Unexpected behavior
31
- - Performance problems
32
- - Build failures
33
- - Integration issues
34
-
35
- **Use this ESPECIALLY when:**
36
-
37
- - Under time pressure (emergencies make guessing tempting)
38
- - "Just one quick fix" seems obvious
39
- - You've already tried multiple fixes
40
- - Previous fix didn't work
41
- - You don't fully understand the issue
42
-
43
- **Don't skip when:**
44
-
45
- - Issue seems simple (simple bugs have root causes too)
46
- - You're in a hurry (rushing guarantees rework)
47
- - Manager wants it fixed NOW (systematic is faster than thrashing)
48
-
49
49
  ## The Four Phases
50
50
 
51
51
  You MUST complete each phase before proceeding to the next.
@@ -1,34 +1,38 @@
1
1
  ---
2
2
  name: test-driven-development
3
3
  description: Use when implementing any feature or bugfix, before writing implementation code - write the test first, watch it fail, write minimal code to pass; ensures tests actually verify behavior by requiring failure first
4
+ version: 1.0.0
5
+ tags: [testing, workflow]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # Test-Driven Development (TDD)
7
10
 
8
- ## Overview
11
+ ## When to Use
9
12
 
10
- Write the test first. Watch it fail. Write minimal code to pass.
13
+ - Implementing new features or behavior changes
14
+ - Fixing bugs that should be reproducible via a failing test first
11
15
 
12
- **Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.
16
+ ## When NOT to Use
13
17
 
14
- **Violating the letter of the rules is violating the spirit of the rules.**
18
+ - Throwaway prototypes or generated code where tests are out of scope
19
+ - Pure configuration edits with no executable behavior
15
20
 
16
- ## When to Use
21
+ ## TDD Checklist
17
22
 
18
- **Always:**
23
+ - [ ] Write a minimal failing test for one behavior
24
+ - [ ] Run tests and confirm the new test fails for the expected reason
25
+ - [ ] Write the minimal code to pass the test
26
+ - [ ] Re-run tests and confirm all pass
27
+ - [ ] Refactor only after green and keep tests passing
19
28
 
20
- - New features
21
- - Bug fixes
22
- - Refactoring
23
- - Behavior changes
29
+ ## Overview
24
30
 
25
- **Exceptions (ask your human partner):**
31
+ Write the test first. Watch it fail. Write minimal code to pass.
26
32
 
27
- - Throwaway prototypes
28
- - Generated code
29
- - Configuration files
33
+ **Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.
30
34
 
31
- Thinking "skip TDD just this once"? Stop. That's rationalization.
35
+ **Violating the letter of the rules is violating the spirit of the rules.**
32
36
 
33
37
  ## The Iron Law
34
38
 
@@ -1,10 +1,23 @@
1
1
  ---
2
2
  name: testing-anti-patterns
3
3
  description: Use when writing or changing tests, adding mocks, or tempted to add test-only methods to production code - prevents testing mock behavior, production pollution with test-only methods, and mocking without understanding dependencies
4
+ version: 1.0.0
5
+ tags: [testing, code-quality]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # Testing Anti-Patterns
7
10
 
11
+ ## When to Use
12
+
13
+ - Writing or refactoring tests that introduce mocks or test-only helpers
14
+ - Reviewing tests for mock misuse, incomplete mocks, or production pollution
15
+
16
+ ## When NOT to Use
17
+
18
+ - Pure production code changes with no test work
19
+ - Simple test updates that don’t involve mocks or structure changes
20
+
8
21
  ## Overview
9
22
 
10
23
  Tests must verify real behavior, not mock behavior. Mocks are a means to isolate, not the thing being tested.
@@ -1,10 +1,23 @@
1
1
  ---
2
2
  name: testing-skills-with-subagents
3
3
  description: Use when creating or editing skills, before deployment, to verify they work under pressure and resist rationalization - applies RED-GREEN-REFACTOR cycle to process documentation by running baseline without skill, writing to address failures, iterating to close loopholes
4
+ version: 1.0.0
5
+ tags: [testing, agent-coordination]
6
+ dependencies: [writing-skills]
4
7
  ---
5
8
 
6
9
  # Testing Skills With Subagents
7
10
 
11
+ ## When to Use
12
+
13
+ - You are creating or editing a skill and need to validate it under pressure
14
+ - You want to bulletproof discipline-enforcing skills against rationalization
15
+
16
+ ## When NOT to Use
17
+
18
+ - Pure reference skills that don’t enforce behavior or rules
19
+ - Minor typo fixes where no behavioral change is introduced
20
+
8
21
  ## Overview
9
22
 
10
23
  **Testing skills is just TDD applied to process documentation.**
@@ -17,21 +30,6 @@ You run scenarios without the skill (RED - watch agent fail), write skill addres
17
30
 
18
31
  **Complete worked example:** See examples/CLAUDE_MD_TESTING.md for a full test campaign testing CLAUDE.md documentation variants.
19
32
 
20
- ## When to Use
21
-
22
- Test skills that:
23
-
24
- - Enforce discipline (TDD, testing requirements)
25
- - Have compliance costs (time, effort, rework)
26
- - Could be rationalized away ("just this once")
27
- - Contradict immediate goals (speed over quality)
28
-
29
- Don't test:
30
-
31
- - Pure reference skills (API docs, syntax guides)
32
- - Skills without rules to violate
33
- - Skills agents have no incentive to bypass
34
-
35
33
  ## TDD Mapping for Skill Testing
36
34
 
37
35
  | TDD Phase | Skill Testing | What You Do |
@@ -1,10 +1,23 @@
1
1
  ---
2
2
  name: tool-priority
3
3
  description: Use when choosing between tools or need tool reference - covers LSP, search, swarm, memory, and research tools with correct syntax
4
+ version: 1.0.0
5
+ tags: [workflow, context]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # Tool Priority Skill
7
10
 
11
+ ## When to Use
12
+
13
+ - You need to decide which tool to use for a task or recall tool syntax
14
+ - You are about to edit code and want the correct discovery/order of operations
15
+
16
+ ## When NOT to Use
17
+
18
+ - You already know the exact tool and syntax required
19
+ - The task is purely conceptual with no tool usage
20
+
8
21
  ## Priority Order
9
22
 
10
23
  **LSP → Search → Swarm → Memory → File Operations**
@@ -1,12 +1,13 @@
1
1
  ---
2
2
  name: ui-ux-research
3
3
  description: Use when analyzing UI patterns across codebases, comparing design system implementations, auditing UI consistency, or understanding existing patterns before implementation
4
+ version: 1.0.0
5
+ tags: [design, research]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # UI/UX Research Skill
7
10
 
8
- Research UI patterns, design systems, and user experience across codebases.
9
-
10
11
  ## When to Use
11
12
 
12
13
  - Analyzing UI patterns across large codebases
@@ -14,6 +15,11 @@ Research UI patterns, design systems, and user experience across codebases.
14
15
  - Auditing UI consistency
15
16
  - Understanding existing patterns before implementation
16
17
 
18
+ ## When NOT to Use
19
+
20
+ - Single-file UI changes without broader pattern investigation.
21
+
22
+
17
23
  ## Research Patterns
18
24
 
19
25
  ### Find All UI Components
@@ -121,5 +127,5 @@ Save research findings to `.opencode/memory/design/research/`
121
127
  | After Research | Use Skill |
122
128
  | --------------------------- | --------------------- |
123
129
  | Need implementation | `mockup-to-code` |
124
- | Need aesthetic improvements | `frontend-design` |
130
+ | Need aesthetic improvements | `frontend-design` |
125
131
  | Need accessibility fixes | `accessibility-audit` |
@@ -1,10 +1,21 @@
1
1
  ---
2
2
  name: using-git-worktrees
3
3
  description: Use when starting feature work that needs isolation from current workspace or before executing implementation plans - creates isolated git worktrees with smart directory selection and safety verification
4
+ version: 1.0.0
5
+ tags: [git, workflow]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # Using Git Worktrees
7
10
 
11
+ ## When to Use
12
+
13
+ - When starting feature work that needs an isolated workspace or before executing an implementation plan.
14
+
15
+ ## When NOT to Use
16
+
17
+ - When a simple change can safely be done in the current working tree or the repo does not allow worktrees.
18
+
8
19
  ## Overview
9
20
 
10
21
  Git worktrees create isolated workspaces sharing the same repository, allowing work on multiple branches simultaneously without switching.
@@ -99,6 +110,32 @@ git worktree add "$path" -b "$BRANCH_NAME"
99
110
  cd "$path"
100
111
  ```
101
112
 
113
+ ## Worktree Tracking
114
+
115
+ After creating a worktree, persist its absolute path for session resume:
116
+
117
+ ```bash
118
+ # After creating worktree
119
+ mkdir -p .beads/artifacts/$BEAD_ID
120
+ echo "/absolute/path/to/worktree" > .beads/artifacts/$BEAD_ID/worktree.txt
121
+ ```
122
+
123
+ On session resume, restore the active worktree if tracking exists:
124
+
125
+ ```bash
126
+ # Check if worktree exists for active bead
127
+ if [ -f .beads/artifacts/$BEAD_ID/worktree.txt ]; then
128
+ WORKTREE_PATH=$(cat .beads/artifacts/$BEAD_ID/worktree.txt)
129
+ cd "$WORKTREE_PATH"
130
+ fi
131
+ ```
132
+
133
+ On worktree cleanup (after merge), remove the tracking file:
134
+
135
+ ```bash
136
+ rm -f .beads/artifacts/$BEAD_ID/worktree.txt
137
+ ```
138
+
102
139
  ### 3. Run Project Setup
103
140
 
104
141
  Auto-detect and run appropriate setup:
@@ -1,6 +1,9 @@
1
1
  ---
2
2
  name: using-skills
3
3
  description: Use when starting any conversation - establishes mandatory workflows for finding and using skills, including using Skill tool before announcing usage, following brainstorming before coding, and creating TodoWrite todos for checklists
4
+ version: 1.0.0
5
+ tags: [workflow, context]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  <EXTREMELY-IMPORTANT>
@@ -13,6 +16,16 @@ This is not negotiable. This is not optional. You cannot rationalize your way ou
13
16
 
14
17
  # Getting Started with Skills
15
18
 
19
+ ## When to Use
20
+
21
+ - At the start of any conversation or task to determine applicable skills
22
+ - Whenever you are about to act and need to check for mandatory workflows
23
+
24
+ ## When NOT to Use
25
+
26
+ - After you already loaded the correct skill and are executing it
27
+ - For a task that explicitly says to follow a different skill workflow
28
+
16
29
  ## MANDATORY FIRST RESPONSE PROTOCOL
17
30
 
18
31
  Before responding to ANY user message, you MUST complete this checklist:
@@ -7,11 +7,21 @@ mcp:
7
7
  args: ["mcp-remote", "https://mcp.v0.dev", "--header", "Authorization: Bearer ${V0_API_KEY}"]
8
8
  env:
9
9
  V0_API_KEY: "${V0_API_KEY}"
10
+ version: 1.0.0
11
+ tags: [ui, mcp, design]
12
+ dependencies: []
10
13
  ---
11
14
 
12
15
  # v0 AI Code Generation (MCP)
13
16
 
14
- Access v0's AI-powered code generation via MCP. When this skill is loaded, the `v0` MCP server auto-starts and exposes tools for creating and managing v0 chats.
17
+ ## When to Use
18
+
19
+ - When you need AI-generated UI components or chat-based design iteration via v0.
20
+
21
+ ## When NOT to Use
22
+
23
+ - When you need to implement UI from a fixed design system without AI generation.
24
+
15
25
 
16
26
  ## Prerequisites
17
27
 
@@ -1,11 +1,21 @@
1
1
  ---
2
2
  name: v1-run
3
3
  description: npm package intelligence via MCP. Real-time versions, vulnerability data, health scores, and package comparisons. Use when selecting npm packages, checking for vulnerabilities, or comparing alternatives.
4
+ version: 1.0.0
5
+ tags: [integration, mcp, research]
6
+ dependencies: []
4
7
  ---
5
8
 
6
9
  # v1.run MCP
7
10
 
8
- Fast, accurate npm package intelligence for AI agents via Model Context Protocol.
11
+ ## When to Use
12
+
13
+ - When you need real-time npm package health, vulnerabilities, or comparisons.
14
+
15
+ ## When NOT to Use
16
+
17
+ - When package selection or security analysis is not in scope.
18
+
9
19
 
10
20
  ## Overview
11
21
 
@@ -1,6 +1,9 @@
1
1
  ---
2
- name: vercel-deploy
2
+ name: vercel-deploy-claimable
3
3
  description: Deploy applications and websites to Vercel. Use this skill when the user requests deployment actions such as "Deploy my app", "Deploy this to production", "Create a preview deployment", "Deploy and give me the link", or "Push this live". No authentication required - returns preview URL and claimable deployment link.
4
+ version: 1.0.0
5
+ tags: [devops, integration]
6
+ dependencies: []
4
7
  metadata:
5
8
  author: vercel
6
9
  version: "1.0.0"
@@ -8,7 +11,14 @@ metadata:
8
11
 
9
12
  # Vercel Deploy
10
13
 
11
- Deploy any project to Vercel instantly. No authentication required.
14
+ ## When to Use
15
+
16
+ - When the user requests deploying a project to Vercel and needs preview/claim links.
17
+
18
+ ## When NOT to Use
19
+
20
+ - When deployment is not requested or targets a non-Vercel platform.
21
+
12
22
 
13
23
  ## How It Works
14
24
 
@@ -24,6 +34,7 @@ bash /mnt/skills/user/vercel-deploy/scripts/deploy.sh [path]
24
34
  ```
25
35
 
26
36
  **Arguments:**
37
+
27
38
  - `path` - Directory to deploy, or a `.tgz` file (defaults to current directory)
28
39
 
29
40
  **Examples:**
@@ -80,6 +91,7 @@ For static HTML projects (no `package.json`), framework is set to `null`.
80
91
  ## Static HTML Projects
81
92
 
82
93
  For projects without a `package.json`:
94
+
83
95
  - If there's a single `.html` file not named `index.html`, it gets renamed automatically
84
96
  - This ensures the page is served at the root URL (`/`)
85
97