mirror of
https://github.com/Code-with-Beto/skills.git
synced 2026-09-14 20:17:15 +08:00
Update plugin versions and add logo assets for cwb-app-icon, cwb-local-build, cwb-ship, and cwb-theming; create OPENAI-SUBMISSION.md for plugin directory submission.
This commit is contained in:
+2
-1
@@ -1 +1,2 @@
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
dist/
|
||||
|
||||
@@ -0,0 +1,147 @@
|
||||
# OpenAI Plugin Directory Submission — Working Doc
|
||||
|
||||
Prep sheet for submitting the four CWB plugins to the public plugin directory via
|
||||
**platform.openai.com/plugins**. Each plugin is a separate skills-only submission
|
||||
(no MCP tab needed). Delete this file after publishing, or keep it for future releases.
|
||||
|
||||
## One-time prerequisites (do these first, in the OpenAI Platform)
|
||||
|
||||
- [ ] Verify a **developer or business identity** for the org. The identity's name,
|
||||
website, support contact, privacy policy, and terms must match what's below:
|
||||
- Name: **Code with Beto**
|
||||
- Website: **https://codewithbeto.dev**
|
||||
- Privacy: **https://codewithbeto.dev/privacy**
|
||||
- Terms: **https://codewithbeto.dev/terms**
|
||||
- [ ] Make sure your account has the **Apps Management** write permission in the org.
|
||||
|
||||
## Shared listing info (Info tab, all four plugins)
|
||||
|
||||
- Developer: Code with Beto
|
||||
- Category: Developer Tools
|
||||
- Logo: `plugins/<name>/assets/logo.png` (1024×1024 PNG)
|
||||
- Website / support: https://codewithbeto.dev
|
||||
- Privacy: https://codewithbeto.dev/privacy · Terms: https://codewithbeto.dev/terms
|
||||
- Skill bundle: upload the plugin's `skills/` directory (contains `SKILL.md`)
|
||||
- Release notes (first submission, all plugins): "Initial public release."
|
||||
|
||||
---
|
||||
|
||||
## 1. cwb-app-icon v1.0.4
|
||||
|
||||
**Starter prompts** (from manifest): "Generate a new app icon for my Expo app" ·
|
||||
"Update my app icon with iOS 26 Liquid Glass support"
|
||||
|
||||
**Positive test cases (5):**
|
||||
1. Prompt: "Generate a new app icon for my Expo app" in an Expo project.
|
||||
Expected: skill triggers, generates an icon via the SnapAI CLI, and updates the
|
||||
app config to reference it.
|
||||
2. Prompt: "Update my app icon with iOS 26 Liquid Glass support."
|
||||
Expected: produces the iOS 26 `.icon` folder format with Liquid Glass layers.
|
||||
3. Prompt: "Add an Android adaptive icon with Material You theming."
|
||||
Expected: generates foreground/background (and monochrome) layers and wires them
|
||||
into the Android config.
|
||||
4. Prompt: "Create a minimalist app icon for a meditation app."
|
||||
Expected: applies the minimalism style option when generating.
|
||||
5. Prompt: "My app icon looks low-res on Android, regenerate it."
|
||||
Expected: regenerates at correct resolutions and fixes the adaptive icon config.
|
||||
Test data: an Expo project with an existing low-res icon.
|
||||
|
||||
**Negative test cases (3):**
|
||||
1. Prompt: "Generate an app icon" in a directory that is not a React Native/Expo
|
||||
project. Expected: skill explains the requirement instead of writing config files.
|
||||
2. Prompt: icon generation with no SnapAI API key configured.
|
||||
Expected: clear setup instructions for the key; no fabricated output.
|
||||
3. Prompt: "Publish my app to the App Store."
|
||||
Expected: skill does not trigger; out of scope.
|
||||
|
||||
---
|
||||
|
||||
## 2. cwb-local-build v1.0.3
|
||||
|
||||
**Starter prompts:** "Build a release APK for my Expo app locally" ·
|
||||
"Create a simulator .app build for e2e testing"
|
||||
|
||||
**Positive test cases (5):**
|
||||
1. Prompt: "Build a release APK for my Expo app locally."
|
||||
Expected: writes a gradlew-based build script, runs it, and copies the `.apk`
|
||||
into `builds/`.
|
||||
2. Prompt: "Create a simulator .app build for e2e testing."
|
||||
Expected: xcodebuild simulator build; `.app` copied into `builds/`.
|
||||
3. Prompt: "Build both Android and iOS artifacts for my Maestro tests."
|
||||
Expected: both artifacts produced with predictable paths under `builds/`.
|
||||
4. Prompt: "Build an APK without using EAS."
|
||||
Expected: local gradlew path used; no EAS commands run.
|
||||
5. Test data: an Expo project with a custom scheme and slug in app config.
|
||||
Expected: skill reads app name, slug, scheme, and bundle ID from the config and
|
||||
names artifacts accordingly.
|
||||
|
||||
**Negative test cases (3):**
|
||||
1. Prompt: "Build a release APK" in a non-Expo project.
|
||||
Expected: explains the Expo project requirement; writes nothing.
|
||||
2. Test data: machine without the Android SDK (or without Xcode for iOS).
|
||||
Expected: surfaces the actionable environment error instead of looping on retries.
|
||||
3. Prompt: "Submit my build to the Play Store."
|
||||
Expected: skill does not trigger; out of scope.
|
||||
|
||||
---
|
||||
|
||||
## 3. cwb-ship v1.0.3
|
||||
|
||||
**Starter prompts:** "Scaffold a new React Native app with the ship CLI" ·
|
||||
"Create a revenue-ready AI image app from the Platano template"
|
||||
|
||||
**Positive test cases (5):**
|
||||
1. Prompt: "Scaffold a new React Native app with the ship CLI."
|
||||
Expected: runs `bunx @codewithbeto/ship`, collects the app name, scaffolds project.
|
||||
2. Prompt: "Create a revenue-ready AI image app from the Platano template."
|
||||
Expected: Platano template scaffolded with RevenueCat payments pre-configured.
|
||||
3. Prompt: "Scaffold Platano as 'Glow' with bundle ID com.beto.glow."
|
||||
Expected: app name, bundle ID, and slug set from the prompt.
|
||||
4. Prompt: any scaffold request. Expected: dependencies installed and git initialized
|
||||
in the new project without extra prompting.
|
||||
5. Prompt: "What templates can I ship with the ship CLI?"
|
||||
Expected: lists available templates and what each includes.
|
||||
|
||||
**Negative test cases (3):**
|
||||
1. Prompt: scaffold request run inside an existing app directory.
|
||||
Expected: warns and asks before writing into a non-empty directory.
|
||||
2. Test data: machine without bun/node available.
|
||||
Expected: actionable install guidance, not a raw stack trace loop.
|
||||
3. Prompt: "Write a blog post about React Native."
|
||||
Expected: skill does not trigger; out of scope.
|
||||
|
||||
---
|
||||
|
||||
## 4. cwb-theming v1.0.3
|
||||
|
||||
**Starter prompts:** "Set up theming and dark mode in my Expo app" ·
|
||||
"Add Material You dynamic colors to my React Native app"
|
||||
|
||||
**Positive test cases (5):**
|
||||
1. Prompt: "Set up theming and dark mode in my Expo app" in an Expo Router project.
|
||||
Expected: scaffolds the semantic color token system and the `useColors()` hook.
|
||||
2. Prompt: "Add Material You dynamic colors to my React Native app."
|
||||
Expected: Android tokens resolve to Material You dynamic colors.
|
||||
3. Prompt: "Make my colors use native iOS system colors."
|
||||
Expected: iOS tokens resolve to native iOS colors.
|
||||
4. Prompt: "Make my app switch between light and dark mode automatically."
|
||||
Expected: tokens flip with the system appearance without extra wiring.
|
||||
5. Test data: project with an existing partial color file.
|
||||
Expected: integrates without breaking existing imports; migration steps explained.
|
||||
|
||||
**Negative test cases (3):**
|
||||
1. Prompt: theming request in a project without Expo Router.
|
||||
Expected: explains the Expo Router requirement before scaffolding.
|
||||
2. Test data: bare React Native project (no Expo).
|
||||
Expected: states the limitation and offers guidance rather than writing files.
|
||||
3. Prompt: "Theme my website with CSS variables."
|
||||
Expected: skill does not trigger; web CSS is out of scope.
|
||||
|
||||
---
|
||||
|
||||
## Submit tab (each plugin)
|
||||
|
||||
- Release notes: "Initial public release."
|
||||
- Policy attestations: review and accept in the portal.
|
||||
- Global tab: select availability (suggest: all countries).
|
||||
- After approval, hit **Publish** — approval alone doesn't list the plugin.
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cwb-app-icon",
|
||||
"version": "1.0.2",
|
||||
"version": "1.0.4",
|
||||
"description": "AI-powered app icon generation for React Native and Expo apps, with iOS 26 Liquid Glass and Android adaptive icon support.",
|
||||
"author": {
|
||||
"name": "Beto",
|
||||
@@ -10,7 +10,7 @@
|
||||
"homepage": "https://codewithbeto.dev",
|
||||
"repository": "https://github.com/Code-with-Beto/skills",
|
||||
"license": "MIT",
|
||||
"keywords": ["expo", "react-native", "app-icon", "ios", "android", "snapai"],
|
||||
"keywords": ["expo", "react-native", "app-icon", "ios", "android", "snapai", "codewithbeto"],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "CWB App Icon",
|
||||
@@ -23,6 +23,11 @@
|
||||
"Write"
|
||||
],
|
||||
"websiteURL": "https://codewithbeto.dev",
|
||||
"privacyPolicyURL": "https://codewithbeto.dev/privacy",
|
||||
"termsOfServiceURL": "https://codewithbeto.dev/terms",
|
||||
"brandColor": "#000000",
|
||||
"composerIcon": "./assets/logo.png",
|
||||
"logo": "./assets/logo.png",
|
||||
"defaultPrompt": [
|
||||
"Generate a new app icon for my Expo app",
|
||||
"Update my app icon with iOS 26 Liquid Glass support"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cwb-local-build",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.3",
|
||||
"description": "Build release APK and simulator .app artifacts locally for Expo apps using gradlew and xcodebuild directly.",
|
||||
"author": {
|
||||
"name": "Beto",
|
||||
@@ -10,7 +10,7 @@
|
||||
"homepage": "https://codewithbeto.dev",
|
||||
"repository": "https://github.com/Code-with-Beto/skills",
|
||||
"license": "MIT",
|
||||
"keywords": ["expo", "react-native", "build", "apk", "xcodebuild", "gradle"],
|
||||
"keywords": ["expo", "react-native", "build", "apk", "xcodebuild", "gradle", "codewithbeto"],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "CWB Local Build",
|
||||
@@ -23,6 +23,11 @@
|
||||
"Write"
|
||||
],
|
||||
"websiteURL": "https://codewithbeto.dev",
|
||||
"privacyPolicyURL": "https://codewithbeto.dev/privacy",
|
||||
"termsOfServiceURL": "https://codewithbeto.dev/terms",
|
||||
"brandColor": "#000000",
|
||||
"composerIcon": "./assets/logo.png",
|
||||
"logo": "./assets/logo.png",
|
||||
"defaultPrompt": [
|
||||
"Build a release APK for my Expo app locally",
|
||||
"Create a simulator .app build for e2e testing"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"name": "cwb-ship",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.3",
|
||||
"description": "Scaffold production-ready React Native apps from Code with Beto templates using the @codewithbeto/ship CLI.",
|
||||
"author": {
|
||||
"name": "Beto",
|
||||
"email": "beto@codewithbeto.dev",
|
||||
"url": "https://codewithbeto.dev"
|
||||
},
|
||||
"homepage": "https://cwb.sh/platano",
|
||||
"homepage": "https://codewithbeto.dev/platano",
|
||||
"repository": "https://github.com/Code-with-Beto/skills",
|
||||
"license": "MIT",
|
||||
"keywords": ["expo", "react-native", "scaffold", "template", "platano", "revenuecat"],
|
||||
"keywords": ["expo", "react-native", "scaffold", "template", "platano", "revenuecat", "codewithbeto"],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "CWB Ship",
|
||||
@@ -22,7 +22,12 @@
|
||||
"Read",
|
||||
"Write"
|
||||
],
|
||||
"websiteURL": "https://cwb.sh/platano",
|
||||
"websiteURL": "https://codewithbeto.dev/platano",
|
||||
"privacyPolicyURL": "https://codewithbeto.dev/privacy",
|
||||
"termsOfServiceURL": "https://codewithbeto.dev/terms",
|
||||
"brandColor": "#000000",
|
||||
"composerIcon": "./assets/logo.png",
|
||||
"logo": "./assets/logo.png",
|
||||
"defaultPrompt": [
|
||||
"Scaffold a new React Native app with the ship CLI",
|
||||
"Create a revenue-ready AI image app from the Platano template"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cwb-theming",
|
||||
"version": "1.0.1",
|
||||
"version": "1.0.3",
|
||||
"description": "Scaffold a unified cross-platform color theme system (native iOS + Android Material You) into an Expo Router app.",
|
||||
"author": {
|
||||
"name": "Beto",
|
||||
@@ -10,7 +10,7 @@
|
||||
"homepage": "https://codewithbeto.dev",
|
||||
"repository": "https://github.com/Code-with-Beto/skills",
|
||||
"license": "MIT",
|
||||
"keywords": ["expo", "react-native", "theming", "dark-mode", "material-you", "expo-router"],
|
||||
"keywords": ["expo", "react-native", "theming", "dark-mode", "material-you", "expo-router", "codewithbeto"],
|
||||
"skills": "./skills/",
|
||||
"interface": {
|
||||
"displayName": "CWB Theming",
|
||||
@@ -23,6 +23,11 @@
|
||||
"Write"
|
||||
],
|
||||
"websiteURL": "https://codewithbeto.dev",
|
||||
"privacyPolicyURL": "https://codewithbeto.dev/privacy",
|
||||
"termsOfServiceURL": "https://codewithbeto.dev/terms",
|
||||
"brandColor": "#000000",
|
||||
"composerIcon": "./assets/logo.png",
|
||||
"logo": "./assets/logo.png",
|
||||
"defaultPrompt": [
|
||||
"Set up theming and dark mode in my Expo app",
|
||||
"Add Material You dynamic colors to my React Native app"
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 19 KiB |
Reference in New Issue
Block a user