@kata-sh/cli 0.1.0 → 0.1.1
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.
- package/LICENSE +21 -0
- package/README.md +156 -0
- package/dist/app-paths.d.ts +4 -0
- package/dist/app-paths.js +6 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +56 -0
- package/dist/loader.d.ts +2 -0
- package/dist/loader.js +95 -0
- package/dist/resource-loader.d.ts +18 -0
- package/dist/resource-loader.js +50 -0
- package/dist/wizard.d.ts +15 -0
- package/dist/wizard.js +159 -0
- package/package.json +50 -21
- package/pkg/dist/modes/interactive/theme/dark.json +85 -0
- package/pkg/dist/modes/interactive/theme/light.json +84 -0
- package/pkg/dist/modes/interactive/theme/theme-schema.json +335 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts +78 -0
- package/pkg/dist/modes/interactive/theme/theme.d.ts.map +1 -0
- package/pkg/dist/modes/interactive/theme/theme.js +949 -0
- package/pkg/dist/modes/interactive/theme/theme.js.map +1 -0
- package/pkg/package.json +8 -0
- package/scripts/postinstall.js +45 -0
- package/src/resources/AGENTS.md +108 -0
- package/src/resources/KATA-WORKFLOW.md +661 -0
- package/src/resources/agents/researcher.md +29 -0
- package/src/resources/agents/scout.md +56 -0
- package/src/resources/agents/worker.md +31 -0
- package/src/resources/extensions/ask-user-questions.ts +200 -0
- package/src/resources/extensions/bg-shell/index.ts +2758 -0
- package/src/resources/extensions/browser-tools/BROWSER-TOOLS-V2-PROPOSAL.md +1277 -0
- package/src/resources/extensions/browser-tools/core.js +1057 -0
- package/src/resources/extensions/browser-tools/index.ts +4916 -0
- package/src/resources/extensions/browser-tools/package.json +20 -0
- package/src/resources/extensions/context7/index.ts +428 -0
- package/src/resources/extensions/context7/package.json +11 -0
- package/src/resources/extensions/get-secrets-from-user.ts +352 -0
- package/src/resources/extensions/github/formatters.ts +207 -0
- package/src/resources/extensions/github/gh-api.ts +537 -0
- package/src/resources/extensions/github/index.ts +778 -0
- package/src/resources/extensions/kata/activity-log.ts +88 -0
- package/src/resources/extensions/kata/auto.ts +2786 -0
- package/src/resources/extensions/kata/commands.ts +355 -0
- package/src/resources/extensions/kata/crash-recovery.ts +85 -0
- package/src/resources/extensions/kata/dashboard-overlay.ts +516 -0
- package/src/resources/extensions/kata/docs/preferences-reference.md +103 -0
- package/src/resources/extensions/kata/doctor.ts +683 -0
- package/src/resources/extensions/kata/files.ts +730 -0
- package/src/resources/extensions/kata/gitignore.ts +165 -0
- package/src/resources/extensions/kata/guided-flow.ts +976 -0
- package/src/resources/extensions/kata/index.ts +556 -0
- package/src/resources/extensions/kata/metrics.ts +397 -0
- package/src/resources/extensions/kata/observability-validator.ts +408 -0
- package/src/resources/extensions/kata/package.json +11 -0
- package/src/resources/extensions/kata/paths.ts +346 -0
- package/src/resources/extensions/kata/preferences.ts +695 -0
- package/src/resources/extensions/kata/prompt-loader.ts +50 -0
- package/src/resources/extensions/kata/prompts/complete-milestone.md +25 -0
- package/src/resources/extensions/kata/prompts/complete-slice.md +27 -0
- package/src/resources/extensions/kata/prompts/discuss.md +151 -0
- package/src/resources/extensions/kata/prompts/doctor-heal.md +29 -0
- package/src/resources/extensions/kata/prompts/execute-task.md +64 -0
- package/src/resources/extensions/kata/prompts/guided-complete-slice.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-discuss-milestone.md +3 -0
- package/src/resources/extensions/kata/prompts/guided-discuss-slice.md +59 -0
- package/src/resources/extensions/kata/prompts/guided-execute-task.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-plan-milestone.md +23 -0
- package/src/resources/extensions/kata/prompts/guided-plan-slice.md +1 -0
- package/src/resources/extensions/kata/prompts/guided-research-slice.md +11 -0
- package/src/resources/extensions/kata/prompts/guided-resume-task.md +1 -0
- package/src/resources/extensions/kata/prompts/plan-milestone.md +47 -0
- package/src/resources/extensions/kata/prompts/plan-slice.md +63 -0
- package/src/resources/extensions/kata/prompts/queue.md +85 -0
- package/src/resources/extensions/kata/prompts/reassess-roadmap.md +48 -0
- package/src/resources/extensions/kata/prompts/replan-slice.md +39 -0
- package/src/resources/extensions/kata/prompts/research-milestone.md +37 -0
- package/src/resources/extensions/kata/prompts/research-slice.md +28 -0
- package/src/resources/extensions/kata/prompts/run-uat.md +109 -0
- package/src/resources/extensions/kata/prompts/system.md +341 -0
- package/src/resources/extensions/kata/session-forensics.ts +550 -0
- package/src/resources/extensions/kata/skill-discovery.ts +137 -0
- package/src/resources/extensions/kata/state.ts +509 -0
- package/src/resources/extensions/kata/templates/context.md +76 -0
- package/src/resources/extensions/kata/templates/decisions.md +8 -0
- package/src/resources/extensions/kata/templates/milestone-summary.md +73 -0
- package/src/resources/extensions/kata/templates/plan.md +133 -0
- package/src/resources/extensions/kata/templates/preferences.md +15 -0
- package/src/resources/extensions/kata/templates/project.md +31 -0
- package/src/resources/extensions/kata/templates/reassessment.md +28 -0
- package/src/resources/extensions/kata/templates/requirements.md +81 -0
- package/src/resources/extensions/kata/templates/research.md +46 -0
- package/src/resources/extensions/kata/templates/roadmap.md +118 -0
- package/src/resources/extensions/kata/templates/slice-context.md +58 -0
- package/src/resources/extensions/kata/templates/slice-summary.md +99 -0
- package/src/resources/extensions/kata/templates/state.md +19 -0
- package/src/resources/extensions/kata/templates/task-plan.md +52 -0
- package/src/resources/extensions/kata/templates/task-summary.md +57 -0
- package/src/resources/extensions/kata/templates/uat.md +54 -0
- package/src/resources/extensions/kata/tests/activity-log-prune.test.ts +327 -0
- package/src/resources/extensions/kata/tests/auto-preflight.test.ts +97 -0
- package/src/resources/extensions/kata/tests/auto-supervisor.test.mjs +53 -0
- package/src/resources/extensions/kata/tests/complete-milestone.test.ts +317 -0
- package/src/resources/extensions/kata/tests/cost-projection.test.ts +160 -0
- package/src/resources/extensions/kata/tests/derive-state-deps.test.ts +477 -0
- package/src/resources/extensions/kata/tests/derive-state.test.ts +1013 -0
- package/src/resources/extensions/kata/tests/doctor.test.ts +718 -0
- package/src/resources/extensions/kata/tests/idle-recovery.test.ts +490 -0
- package/src/resources/extensions/kata/tests/metrics-io.test.ts +254 -0
- package/src/resources/extensions/kata/tests/metrics.test.ts +217 -0
- package/src/resources/extensions/kata/tests/must-have-parser.test.ts +309 -0
- package/src/resources/extensions/kata/tests/parsers.test.ts +1257 -0
- package/src/resources/extensions/kata/tests/plan-milestone.test.ts +185 -0
- package/src/resources/extensions/kata/tests/plan-quality-validator.test.ts +386 -0
- package/src/resources/extensions/kata/tests/reassess-prompt.test.ts +208 -0
- package/src/resources/extensions/kata/tests/replan-slice.test.ts +686 -0
- package/src/resources/extensions/kata/tests/requirements.test.ts +151 -0
- package/src/resources/extensions/kata/tests/resolve-ts-hooks.mjs +17 -0
- package/src/resources/extensions/kata/tests/resolve-ts.mjs +11 -0
- package/src/resources/extensions/kata/tests/run-uat.test.ts +383 -0
- package/src/resources/extensions/kata/tests/unit-runtime.test.ts +388 -0
- package/src/resources/extensions/kata/tests/workspace-index.test.ts +118 -0
- package/src/resources/extensions/kata/tests/worktree.test.ts +222 -0
- package/src/resources/extensions/kata/types.ts +159 -0
- package/src/resources/extensions/kata/unit-runtime.ts +163 -0
- package/src/resources/extensions/kata/workspace-index.ts +203 -0
- package/src/resources/extensions/kata/worktree.ts +182 -0
- package/src/resources/extensions/mac-tools/index.ts +852 -0
- package/src/resources/extensions/mac-tools/swift-cli/Package.swift +22 -0
- package/src/resources/extensions/mac-tools/swift-cli/Sources/main.swift +1318 -0
- package/src/resources/extensions/search-the-web/cache.ts +78 -0
- package/src/resources/extensions/search-the-web/format.ts +258 -0
- package/src/resources/extensions/search-the-web/http.ts +238 -0
- package/src/resources/extensions/search-the-web/index.ts +68 -0
- package/src/resources/extensions/search-the-web/tool-fetch-page.ts +519 -0
- package/src/resources/extensions/search-the-web/tool-llm-context.ts +404 -0
- package/src/resources/extensions/search-the-web/tool-search.ts +503 -0
- package/src/resources/extensions/search-the-web/url-utils.ts +91 -0
- package/src/resources/extensions/shared/confirm-ui.ts +126 -0
- package/src/resources/extensions/shared/interview-ui.ts +822 -0
- package/src/resources/extensions/shared/next-action-ui.ts +235 -0
- package/src/resources/extensions/shared/progress-widget.ts +282 -0
- package/src/resources/extensions/shared/thinking-widget.ts +107 -0
- package/src/resources/extensions/shared/ui.ts +400 -0
- package/src/resources/extensions/shared/wizard-ui.ts +551 -0
- package/src/resources/extensions/slash-commands/audit.ts +92 -0
- package/src/resources/extensions/slash-commands/create-extension.ts +375 -0
- package/src/resources/extensions/slash-commands/create-slash-command.ts +280 -0
- package/src/resources/extensions/slash-commands/index.ts +12 -0
- package/src/resources/extensions/slash-commands/kata-run.ts +34 -0
- package/src/resources/extensions/subagent/agents.ts +126 -0
- package/src/resources/extensions/subagent/index.ts +1293 -0
- package/src/resources/skills/debug-like-expert/SKILL.md +231 -0
- package/src/resources/skills/debug-like-expert/references/debugging-mindset.md +253 -0
- package/src/resources/skills/debug-like-expert/references/hypothesis-testing.md +373 -0
- package/src/resources/skills/debug-like-expert/references/investigation-techniques.md +337 -0
- package/src/resources/skills/debug-like-expert/references/verification-patterns.md +425 -0
- package/src/resources/skills/debug-like-expert/references/when-to-research.md +361 -0
- package/src/resources/skills/frontend-design/SKILL.md +45 -0
- package/src/resources/skills/swiftui/SKILL.md +208 -0
- package/src/resources/skills/swiftui/references/animations.md +921 -0
- package/src/resources/skills/swiftui/references/architecture.md +1561 -0
- package/src/resources/skills/swiftui/references/layout-system.md +1186 -0
- package/src/resources/skills/swiftui/references/navigation.md +1492 -0
- package/src/resources/skills/swiftui/references/networking-async.md +214 -0
- package/src/resources/skills/swiftui/references/performance.md +1706 -0
- package/src/resources/skills/swiftui/references/platform-integration.md +204 -0
- package/src/resources/skills/swiftui/references/state-management.md +1443 -0
- package/src/resources/skills/swiftui/references/swiftdata.md +297 -0
- package/src/resources/skills/swiftui/references/testing-debugging.md +247 -0
- package/src/resources/skills/swiftui/references/uikit-appkit-interop.md +218 -0
- package/src/resources/skills/swiftui/workflows/add-feature.md +191 -0
- package/src/resources/skills/swiftui/workflows/build-new-app.md +311 -0
- package/src/resources/skills/swiftui/workflows/debug-swiftui.md +192 -0
- package/src/resources/skills/swiftui/workflows/optimize-performance.md +197 -0
- package/src/resources/skills/swiftui/workflows/ship-app.md +203 -0
- package/src/resources/skills/swiftui/workflows/write-tests.md +235 -0
- package/dist/commands/task.d.ts +0 -9
- package/dist/commands/task.d.ts.map +0 -1
- package/dist/commands/task.js +0 -129
- package/dist/commands/task.js.map +0 -1
- package/dist/commands/task.test.d.ts +0 -2
- package/dist/commands/task.test.d.ts.map +0 -1
- package/dist/commands/task.test.js +0 -169
- package/dist/commands/task.test.js.map +0 -1
- package/dist/e2e/task-e2e.test.d.ts +0 -2
- package/dist/e2e/task-e2e.test.d.ts.map +0 -1
- package/dist/e2e/task-e2e.test.js +0 -173
- package/dist/e2e/task-e2e.test.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -93
- package/dist/index.js.map +0 -1
- package/dist/slug.d.ts +0 -2
- package/dist/slug.d.ts.map +0 -1
- package/dist/slug.js +0 -12
- package/dist/slug.js.map +0 -1
- package/dist/slug.test.d.ts +0 -2
- package/dist/slug.test.d.ts.map +0 -1
- package/dist/slug.test.js +0 -32
- package/dist/slug.test.js.map +0 -1
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
<overview>
|
|
2
|
+
SwiftUI enables true multiplatform development: write once, adapt per platform. A single codebase can target iOS, iPadOS, macOS, watchOS, tvOS, and visionOS while respecting each platform's unique conventions and capabilities.
|
|
3
|
+
|
|
4
|
+
**Key insight:** SwiftUI's declarative syntax works everywhere, but each platform has distinct interaction models. iOS uses touch and gestures, macOS has precise mouse input and keyboard shortcuts, watchOS centers on the Digital Crown, and visionOS introduces spatial computing with gaze and hand tracking.
|
|
5
|
+
|
|
6
|
+
**When to read this:**
|
|
7
|
+
- Building multiplatform apps with shared logic but platform-specific UI
|
|
8
|
+
- Implementing macOS menu bar utilities or Settings windows
|
|
9
|
+
- Creating watchOS complications or Digital Crown interactions
|
|
10
|
+
- Developing visionOS apps with immersive spaces and ornaments
|
|
11
|
+
- Adapting layouts responsively across iPhone, iPad, and Mac
|
|
12
|
+
</overview>
|
|
13
|
+
|
|
14
|
+
<platform_conditionals>
|
|
15
|
+
## Platform Conditionals
|
|
16
|
+
|
|
17
|
+
**Compile-time platform checks:**
|
|
18
|
+
```swift
|
|
19
|
+
#if os(iOS)
|
|
20
|
+
// iOS-only code
|
|
21
|
+
#elseif os(macOS)
|
|
22
|
+
// macOS-only code
|
|
23
|
+
#elseif os(watchOS)
|
|
24
|
+
// watchOS-only code
|
|
25
|
+
#elseif os(visionOS)
|
|
26
|
+
// visionOS-only code
|
|
27
|
+
#endif
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
**Runtime API availability:**
|
|
31
|
+
```swift
|
|
32
|
+
if #available(iOS 17, macOS 14, *) {
|
|
33
|
+
// Use iOS 17+/macOS 14+ API
|
|
34
|
+
}
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Target environment:**
|
|
38
|
+
```swift
|
|
39
|
+
#if targetEnvironment(simulator)
|
|
40
|
+
// Running in simulator
|
|
41
|
+
#endif
|
|
42
|
+
|
|
43
|
+
#if canImport(UIKit)
|
|
44
|
+
// UIKit available
|
|
45
|
+
#endif
|
|
46
|
+
```
|
|
47
|
+
</platform_conditionals>
|
|
48
|
+
|
|
49
|
+
<ios_specifics>
|
|
50
|
+
## iOS-Specific Features
|
|
51
|
+
|
|
52
|
+
**Navigation patterns:**
|
|
53
|
+
- Tab bar at bottom
|
|
54
|
+
- Full-screen covers
|
|
55
|
+
- Pull-to-refresh with .refreshable
|
|
56
|
+
|
|
57
|
+
**System integration:**
|
|
58
|
+
- Push notifications
|
|
59
|
+
- Widgets and Live Activities
|
|
60
|
+
- App Intents / Siri
|
|
61
|
+
|
|
62
|
+
**Device variations:**
|
|
63
|
+
```swift
|
|
64
|
+
@Environment(\.horizontalSizeClass) var horizontalSizeClass
|
|
65
|
+
|
|
66
|
+
if horizontalSizeClass == .regular {
|
|
67
|
+
// iPad layout
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
</ios_specifics>
|
|
71
|
+
|
|
72
|
+
<macos_specifics>
|
|
73
|
+
## macOS-Specific Features
|
|
74
|
+
|
|
75
|
+
**Window management:**
|
|
76
|
+
```swift
|
|
77
|
+
WindowGroup("Main") { ContentView() }
|
|
78
|
+
.defaultSize(width: 800, height: 600)
|
|
79
|
+
|
|
80
|
+
Window("Settings") { SettingsView() }
|
|
81
|
+
|
|
82
|
+
Settings { SettingsView() }
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
**MenuBarExtra:**
|
|
86
|
+
```swift
|
|
87
|
+
MenuBarExtra("App Name", systemImage: "star") {
|
|
88
|
+
MenuBarContentView()
|
|
89
|
+
}
|
|
90
|
+
.menuBarExtraStyle(.window)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
**Commands:**
|
|
94
|
+
```swift
|
|
95
|
+
.commands {
|
|
96
|
+
CommandGroup(replacing: .newItem) {
|
|
97
|
+
Button("New Document") { }
|
|
98
|
+
}
|
|
99
|
+
CommandMenu("Custom") {
|
|
100
|
+
Button("Action") { }
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
```
|
|
104
|
+
</macos_specifics>
|
|
105
|
+
|
|
106
|
+
<watchos_specifics>
|
|
107
|
+
## watchOS-Specific Features
|
|
108
|
+
|
|
109
|
+
**Digital Crown:**
|
|
110
|
+
```swift
|
|
111
|
+
@State private var crownValue: Double = 0.0
|
|
112
|
+
|
|
113
|
+
VStack { Text("\(crownValue)") }
|
|
114
|
+
.focusable()
|
|
115
|
+
.digitalCrownRotation($crownValue)
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
**Always-on display:**
|
|
119
|
+
```swift
|
|
120
|
+
@Environment(\.isLuminanceReduced) var isLuminanceReduced
|
|
121
|
+
```
|
|
122
|
+
</watchos_specifics>
|
|
123
|
+
|
|
124
|
+
<visionos_specifics>
|
|
125
|
+
## visionOS-Specific Features
|
|
126
|
+
|
|
127
|
+
**Immersive spaces:**
|
|
128
|
+
```swift
|
|
129
|
+
ImmersiveSpace(id: "immersive") {
|
|
130
|
+
RealityView { content in
|
|
131
|
+
// 3D content
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
**Window styles:**
|
|
137
|
+
```swift
|
|
138
|
+
.windowStyle(.volumetric)
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
**Ornaments:**
|
|
142
|
+
```swift
|
|
143
|
+
.ornament(attachmentAnchor: .scene(.bottom)) {
|
|
144
|
+
BottomControls()
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
</visionos_specifics>
|
|
148
|
+
|
|
149
|
+
<responsive_design>
|
|
150
|
+
## Responsive Design
|
|
151
|
+
|
|
152
|
+
**Size classes:**
|
|
153
|
+
```swift
|
|
154
|
+
@Environment(\.horizontalSizeClass) var horizontalSizeClass
|
|
155
|
+
@Environment(\.verticalSizeClass) var verticalSizeClass
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
**ViewThatFits (iOS 16+):**
|
|
159
|
+
```swift
|
|
160
|
+
ViewThatFits {
|
|
161
|
+
WideLayout()
|
|
162
|
+
CompactLayout()
|
|
163
|
+
}
|
|
164
|
+
```
|
|
165
|
+
|
|
166
|
+
**containerRelativeFrame (iOS 17+):**
|
|
167
|
+
```swift
|
|
168
|
+
.containerRelativeFrame(.horizontal) { length, axis in
|
|
169
|
+
length * 0.8
|
|
170
|
+
}
|
|
171
|
+
```
|
|
172
|
+
</responsive_design>
|
|
173
|
+
|
|
174
|
+
<decision_tree>
|
|
175
|
+
## Platform Strategy
|
|
176
|
+
|
|
177
|
+
**Shared codebase structure:**
|
|
178
|
+
- Models, ViewModels, Services: All platforms
|
|
179
|
+
- Views: Platform-specific where needed
|
|
180
|
+
|
|
181
|
+
**When to use conditionals:**
|
|
182
|
+
- Platform-exclusive APIs
|
|
183
|
+
- Different navigation patterns
|
|
184
|
+
- Different default sizes
|
|
185
|
+
</decision_tree>
|
|
186
|
+
|
|
187
|
+
<anti_patterns>
|
|
188
|
+
## What NOT to Do
|
|
189
|
+
|
|
190
|
+
<anti_pattern name="Scattered #if os() conditionals">
|
|
191
|
+
**Problem:** Platform checks everywhere
|
|
192
|
+
**Instead:** Extract to platform-specific files
|
|
193
|
+
</anti_pattern>
|
|
194
|
+
|
|
195
|
+
<anti_pattern name="Ignoring platform idioms">
|
|
196
|
+
**Problem:** iOS patterns on macOS
|
|
197
|
+
**Instead:** Respect each platform's conventions
|
|
198
|
+
</anti_pattern>
|
|
199
|
+
|
|
200
|
+
<anti_pattern name="Testing only in simulator">
|
|
201
|
+
**Problem:** Missing real device behaviors
|
|
202
|
+
**Instead:** Test on physical devices
|
|
203
|
+
</anti_pattern>
|
|
204
|
+
</anti_patterns>
|