一键导入
new-screen
Scaffold a new Jetpack Compose screen following project patterns. Use when creating a new screen or view in the app.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Scaffold a new Jetpack Compose screen following project patterns. Use when creating a new screen or view in the app.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Fix a GitHub issue following the standard workflow. Reads the issue, creates a branch/PR, applies the fix, runs tests, and merges when CI passes.
Add a new translatable string to all locale files (English, Italian, Spanish, Catalan, German, Chinese). Use when adding user-visible text to the app.
Start the Teslamate API mock server to test car image rendering with different vehicle configurations. Takes a description of the car to mock. Can also simulate charging sessions (AC/DC).
Create a new release. Bumps version, updates changelog, creates fastlane changelog, commits, tags, and pushes.
Implement a new feature following the standard workflow. Explores the codebase, creates a plan, implements the feature, runs tests, creates a PR, and installs on the connected device.
Check Teslamate API response format for a given endpoint. Use when you need to understand the JSON structure returned by the API.
| name | new-screen |
| description | Scaffold a new Jetpack Compose screen following project patterns. Use when creating a new screen or view in the app. |
| allowed-tools | Read, Write, Edit, Glob |
Create a new Jetpack Compose screen following MateDroid's patterns.
Screens are located in app/src/main/java/com/matedroid/ui/screens/:
screens/
├── dashboard/
│ └── DashboardScreen.kt
├── drives/
│ ├── DrivesScreen.kt
│ └── DriveDetailScreen.kt
├── charges/
│ ├── ChargesScreen.kt
│ └── ChargeDetailScreen.kt
├── settings/
│ └── SettingsScreen.kt
└── {feature}/
└── {Feature}Screen.kt
Ask the user for:
Read an existing screen as reference (e.g., DashboardScreen.kt)
Create the new screen file following the pattern
package com.matedroid.ui.screens.{feature}
import androidx.compose.foundation.layout.*
import androidx.compose.material3.*
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.dp
import com.matedroid.R
@OptIn(ExperimentalMaterial3Api::class)
@Composable
fun {Feature}Screen(
onNavigateBack: () -> Unit,
modifier: Modifier = Modifier
) {
Scaffold(
topBar = {
TopAppBar(
title = { Text(stringResource(R.string.{feature}_title)) },
navigationIcon = {
IconButton(onClick = onNavigateBack) {
Icon(
imageVector = Icons.AutoMirrored.Filled.ArrowBack,
contentDescription = stringResource(R.string.back)
)
}
}
)
}
) { paddingValues ->
Column(
modifier = modifier
.fillMaxSize()
.padding(paddingValues)
.padding(16.dp)
) {
// Screen content here
}
}
}
var isLoading by remember { mutableStateOf(true) }
if (isLoading) {
CircularProgressIndicator()
} else {
// Content
}
LaunchedEffect(Unit) {
// Fetch data from TeslamateApiService
}
val pullRefreshState = rememberPullToRefreshState()
PullToRefreshBox(state = pullRefreshState, isRefreshing = isRefreshing) {
// Content
}
Card(
modifier = Modifier.fillMaxWidth(),
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.surfaceVariant
)
) {
// Card content
}