Skip to content

Commit f5123ff

Browse files
aRustyDevclaude
andcommitted
feat(plugin): add swiftui-dev plugin for SwiftUI development
P0 components implemented: - Skills: swiftui-architecture, swiftui-data-flow, swiftui-testing, duckdb-swift, swift-charts - Commands: /create-swiftui-view, /create-viewmodel, /create-xctest, /create-swift-package - Agents: swiftui-architect - Styles: swift-code, swiftui-view Inherited from central context: - lang-swift-dev, lang-swift-library-dev skills - swift-expert agent Planning docs: - brainstorm.md, research.md, roadmap.md Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 54366e9 commit f5123ff

40 files changed

Lines changed: 3479 additions & 0 deletions

.github/pre-commit/words/project.txt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,3 +97,24 @@ recieve
9797
Analyz
9898
getpid
9999
PRRTC
100+
swiftui
101+
SwiftUI
102+
swiftdata
103+
SwiftData
104+
xctest
105+
XCTest
106+
xcuitest
107+
XCUITest
108+
XCUI
109+
grdb
110+
GRDB
111+
swiftlint
112+
SwiftLint
113+
sourcekit
114+
viewmodel
115+
ViewModel
116+
groue
117+
subviews
118+
xcrun
119+
BLAS
120+
LAPACK
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
# Plugin Brainstorm: swiftui-dev
2+
3+
## Domain & Purpose
4+
5+
**Domain**: SwiftUI / macOS / iOS Native Development
6+
**Purpose**: Comprehensive SwiftUI development support focused on UI testing, integration testing, and interactive development practices with emphasis on data-driven applications.
7+
8+
## Use Cases
9+
10+
1. **Data Analytics App Development** - Building Marimo-like reactive notebooks with DuckDB, graph visualization, and Swift Charts
11+
2. **General SwiftUI Development** - Broad support for SwiftUI app architecture, components, and patterns
12+
3. **Portfolio Project Quality** - Ensuring production-ready polish, proper error handling, and architecture documentation
13+
14+
## Components
15+
16+
### Skills
17+
18+
| Name | Purpose | Priority |
19+
|------|---------|----------|
20+
| swiftui-architecture | SwiftUI app architecture patterns (MVVM, TCA, Clean Architecture) | must |
21+
| swiftui-components | Common UI component patterns (lists, forms, navigation, sheets) | must |
22+
| swiftui-data-flow | @Observable, @State, @Binding, environment values, data passing | must |
23+
| swiftui-testing | XCTest + XCUITest patterns, ViewInspector, test organization | must |
24+
| swift-concurrency | async/await, actors, structured concurrency, Task groups | must |
25+
| duckdb-swift | DuckDB integration, SQL queries, CSV/Parquet/SQLite bridging | must |
26+
| grdb-swift | GRDB.swift patterns, @Query, migrations, observation | should |
27+
| swiftdata-patterns | SwiftData models, queries, relationships, CloudKit sync | should |
28+
| kuzu-swift | Kuzu graph database integration, Cypher queries | should |
29+
| dolt-swift | Dolt version-controlled database patterns | nice |
30+
| swift-charts | Swift Charts API, PointMark, LineMark, BarMark, Chart3D | must |
31+
| grape-graphs | Force-directed graph visualization with Grape library | should |
32+
| accelerate-numerics | vDSP, BLAS, LAPACK for numerical computing | should |
33+
| sketch-to-swiftui | Translating Sketch designs to SwiftUI views | should |
34+
| xctest-patterns | Unit testing patterns, mocking, dependency injection | must |
35+
| xcuitest-patterns | UI testing, accessibility identifiers, test plans | must |
36+
| swift-package-manager | Package.swift, dependencies, targets, resources | must |
37+
| xcode-previews | Preview providers, sample data, preview modifiers | should |
38+
| instruments-profiling | Time Profiler, Allocations, Leaks, Metal System Trace | should |
39+
40+
### Commands
41+
42+
| Name | Purpose | Priority |
43+
|------|---------|----------|
44+
| /create-swiftui-view | Generate a new SwiftUI view with proper structure and previews | must |
45+
| /create-viewmodel | Generate an @Observable ViewModel with dependency injection | must |
46+
| /create-xctest | Generate XCTest unit test file with proper setup/teardown | must |
47+
| /create-xcuitest | Generate XCUITest UI test with page object pattern | should |
48+
| /create-swift-package | Initialize a new Swift Package with proper structure | must |
49+
| /swiftui-preview-data | Generate preview sample data for SwiftUI previews | should |
50+
| /analyze-view-performance | Analyze SwiftUI view for performance issues | nice |
51+
| /migrate-to-observable | Migrate ObservableObject to @Observable macro | should |
52+
53+
### Agents
54+
55+
| Name | Purpose | Priority |
56+
|------|---------|----------|
57+
| swiftui-architect | Design SwiftUI app architecture, module boundaries, data flow | must |
58+
| swiftui-code-reviewer | Review SwiftUI code for best practices, performance, accessibility | must |
59+
| swift-test-generator | Generate comprehensive test suites for Swift code | should |
60+
| sketch-translator | Translate Sketch designs into SwiftUI implementation plans | should |
61+
| swift-debugger | Debug SwiftUI issues, view rendering problems, data flow bugs | should |
62+
63+
### Output Styles
64+
65+
| Name | Purpose | Priority |
66+
|------|---------|----------|
67+
| swift-code | Swift code formatting with proper conventions | must |
68+
| swiftui-view | SwiftUI view code with preview providers | must |
69+
| xctest-output | Test file output with assertions and setup | must |
70+
| swift-package-manifest | Package.swift manifest formatting | should |
71+
72+
### Hooks
73+
74+
| Name | Purpose | Priority |
75+
|------|---------|----------|
76+
| swift-format-check | Run swift-format on Swift files | should |
77+
| swiftlint-check | Run SwiftLint on Swift files | should |
78+
| swift-build-check | Verify Swift package builds | should |
79+
80+
### MCP Servers
81+
82+
| Name | Purpose | Priority |
83+
|------|---------|----------|
84+
| xcode-mcp | Xcode project operations, build, test, run | must |
85+
| swift-lsp | SourceKit-LSP integration for code intelligence | must |
86+
| duckdb-mcp | DuckDB query execution and schema inspection | should |
87+
| kuzu-mcp | Kuzu graph database queries and visualization | nice |
88+
89+
### LSP Servers
90+
91+
| Name | Purpose | Priority |
92+
|------|---------|----------|
93+
| sourcekit-lsp | Apple's official Swift/Xcode LSP | must |
94+
95+
## Summary
96+
97+
| Category | Must | Should | Nice | Total |
98+
|----------|------|--------|------|-------|
99+
| Skills | 10 | 7 | 1 | 18 |
100+
| Commands | 4 | 3 | 1 | 8 |
101+
| Agents | 2 | 3 | 0 | 5 |
102+
| Styles | 3 | 1 | 0 | 4 |
103+
| Hooks | 0 | 3 | 0 | 3 |
104+
| MCP | 2 | 1 | 1 | 4 |
105+
| LSP | 1 | 0 | 0 | 1 |
106+
| **Total**| 22 | 18 | 3 | 43 |
Lines changed: 118 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,118 @@
1+
# Plugin Research: swiftui-dev
2+
3+
## Existing Plugins
4+
5+
| Plugin | Domain | Coverage | Recommendation |
6+
|--------|--------|----------|----------------|
7+
| ios-dev | iOS Development | 30% | Extend - has skeleton infrastructure |
8+
9+
## Component Research
10+
11+
### Skills
12+
13+
| Need | Existing | Source | Coverage | Action |
14+
|------|----------|--------|----------|--------|
15+
| swiftui-architecture | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 40% | extend |
16+
| swiftui-components | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 50% | extend |
17+
| swiftui-data-flow | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 60% | extend |
18+
| swiftui-testing | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 40% | extend |
19+
| swift-concurrency | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 70% | reuse |
20+
| duckdb-swift | None || 0% | create |
21+
| grdb-swift | None || 0% | create |
22+
| swiftdata-patterns | Partially in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 20% | create |
23+
| kuzu-swift | None || 0% | create |
24+
| dolt-swift | None || 0% | create |
25+
| swift-charts | None || 0% | create |
26+
| grape-graphs | None || 0% | create |
27+
| accelerate-numerics | None || 0% | create |
28+
| sketch-to-swiftui | None || 0% | create |
29+
| xctest-patterns | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 50% | extend |
30+
| xcuitest-patterns | Embedded in lang-swift-dev | context/skills/lang-swift-dev/SKILL.md | 30% | extend |
31+
| swift-package-manager | lang-swift-library-dev | context/skills/lang-swift-library-dev/SKILL.md | 80% | reuse |
32+
| xcode-previews | None || 0% | create |
33+
| instruments-profiling | None || 0% | create |
34+
35+
### Commands
36+
37+
| Need | Existing | Source | Coverage | Action |
38+
|------|----------|--------|----------|--------|
39+
| /create-swiftui-view | None || 0% | create |
40+
| /create-viewmodel | None || 0% | create |
41+
| /create-xctest | None || 0% | create |
42+
| /create-xcuitest | None || 0% | create |
43+
| /create-swift-package | None || 0% | create |
44+
| /swiftui-preview-data | None || 0% | create |
45+
| /analyze-view-performance | None || 0% | create |
46+
| /migrate-to-observable | None || 0% | create |
47+
48+
### Agents
49+
50+
| Need | Existing | Source | Coverage | Action |
51+
|------|----------|--------|----------|--------|
52+
| swiftui-architect | swift-expert | context/agents/swift-expert.md | 60% | extend |
53+
| swiftui-code-reviewer | swift-expert | context/agents/swift-expert.md | 50% | extend |
54+
| swift-test-generator | None || 0% | create |
55+
| sketch-translator | None || 0% | create |
56+
| swift-debugger | swift-expert | context/agents/swift-expert.md | 40% | extend |
57+
58+
### Output Styles
59+
60+
| Need | Existing | Source | Coverage | Action |
61+
|------|----------|--------|----------|--------|
62+
| swift-code | None || 0% | create |
63+
| swiftui-view | None || 0% | create |
64+
| xctest-output | None || 0% | create |
65+
| swift-package-manifest | None || 0% | create |
66+
67+
### Hooks
68+
69+
| Need | Existing | Source | Coverage | Action |
70+
|------|----------|--------|----------|--------|
71+
| swift-format-check | None || 0% | create |
72+
| swiftlint-check | None || 0% | create |
73+
| swift-build-check | None || 0% | create |
74+
75+
### MCP Servers
76+
77+
| Need | Existing | Source | Coverage | Action |
78+
|------|----------|--------|----------|--------|
79+
| xcode-mcp | None || 0% | research |
80+
| swift-lsp | sourcekit-lsp | system | 90% | configure |
81+
| duckdb-mcp | None || 0% | research |
82+
| kuzu-mcp | None || 0% | research |
83+
84+
### LSP Servers
85+
86+
| Need | Existing | Source | Coverage | Action |
87+
|------|----------|--------|----------|--------|
88+
| sourcekit-lsp | System installed | Xcode toolchain | 100% | configure |
89+
90+
## Summary
91+
92+
- **Reuse**: 3 components (swift-concurrency, swift-package-manager, sourcekit-lsp)
93+
- **Extend**: 9 components (existing skills/agents with gaps)
94+
- **Create**: 31 components (new skills, commands, styles, hooks)
95+
- **Research**: 3 components (MCP servers to find/evaluate)
96+
97+
## Key Findings
98+
99+
### Strengths
100+
101+
1. Strong Swift foundation in `lang-swift-dev` skill (SwiftUI basics covered)
102+
2. `swift-expert` agent available for architecture decisions
103+
3. `lang-swift-library-dev` covers SPM workflows
104+
4. `ios-dev` plugin skeleton exists for extension
105+
106+
### Gaps
107+
108+
1. No dedicated SwiftUI-specific skills (architecture, components, data flow)
109+
2. No data layer skills (DuckDB, GRDB, Kuzu, Dolt)
110+
3. No visualization skills (Swift Charts, Grape)
111+
4. No SwiftUI testing commands
112+
5. No output styles for Swift code
113+
6. No hooks for Swift tooling (swift-format, SwiftLint)
114+
115+
### Legacy Assets to Activate
116+
117+
- SwiftUI guidelines in `.wip/` directory (migrate to production)
118+
- iOS plugin skeleton (extend for swiftui-dev)

0 commit comments

Comments
 (0)