Install
openclaw skills install aicade-create-app-builderBuild general aicade application prompts by taking the user's base prompt plus the platform additions from the bundled 3.1 workflow reference, then assembling a final integrated prompt in the style of 3.2.
openclaw skills install aicade-create-app-builderREAD BEFORE INSTALL
This skill follows the bundled prompt workflow reference exactly:
3.13.2
READ BEFORE INSTALLUse this skill when you want to generate a final AI prompt for an aicade app and you want the result to match the bundled documented workflow.
This skill does not invent a new requirement structure.
It uses:
3.1 as the required input model3.2 as the target output styleThat means:
node {baseDir}/scripts/check-aicade-env.mjs --mode all --cwd /path/to/project
node {baseDir}/scripts/save-aicade-env.mjs --cwd /path/to/project --set AICADE_API_KEY=... --set AICADE_API_SECRET_KEY=...
node {baseDir}/scripts/build-aicade-prompt.mjs \
--spec {baseDir}/assets/app-spec.template.json \
--lang en
Before collecting the final prompt inputs, first tell the user to open:
https://www.aicadegalaxy.com/The user should:
Launch AppDapp Management pageShow App key buttonOnly after completing that flow should the skill continue to collect the core AICADE environment variables required for integration:
AICADE_API_KEYAICADE_API_SECRET_KEYAlso keep:
AICADE_API_URLTreat AICADE_API_URL = VITE_AICADE_API_URL.
Its default value is https://aicadegalaxy.com/v1.
Keep this access check separate from the upload step.
The official scaffold upload flow does not read these access variable names directly from upload.js.
On the first use of this skill in a project, check the local environment first for these platform-access variables.
If any of them are missing, ask the user for the missing values one by one instead of asking for all values again at once.
After each value is provided, save it into the project's local .env file immediately.
If AICADE_API_URL is missing, use the default value and save it automatically.
Recommended check command:
node {baseDir}/scripts/check-aicade-env.mjs --mode access --cwd /path/to/project
Recommended save command:
node {baseDir}/scripts/save-aicade-env.mjs --cwd /path/to/project --set AICADE_API_KEY=...
Standard follow-up pattern:
.env, then move to the next missing value until the access set is complete.AICADE_API_URL is not set, write the default https://aicadegalaxy.com/v1 into .env automatically.Example:
I found AICADE_API_KEY locally.AICADE_API_SECRET_KEY is missing. Please provide AICADE_API_SECRET_KEY.AICADE_API_URL is not set locally, so I will use the default https://aicadegalaxy.com/v1 and save it for this project.Before entering implementation or prompt assembly, first read:
https://github.com/aicade-galaxy/aicade-ts-bootstrap/blob/main/README.mdThe target app or game environment must conform to the technical stack and integration conventions described there.
If the current project does not match that technical stack, do not proceed silently. You must stop and confirm with the user using only these two options:
Do not introduce a third option in this decision point.
If the user chooses option 1, start from the official scaffold directly:
https://github.com/aicade-galaxy/aicade-ts-bootstrapUse that repository as the project scaffold for the reimplementation. Do not rebuild the scaffold structure from scratch. The scaffold already includes the official upload script and upload command.
When migrating from a non-matching project into the scaffold:
3.1-shaped input.aicade-ts-bootstrap instead of patching the old structure in place.upload.js and npm commands as-is.Read the bundled references first:
references/sdk-capabilities.mdreferences/prompt-workflow.md3.1 ShapeThe user input should contain two parts:
The platform additions should cover the same kind of information highlighted in 3.1, such as:
After the README tech stack check passes, confirm integration in 3 layers:
Base requirements and compatibility requirements are mandatory and should not be skipped.
Extension SDK modules must be confirmed with the user before they are added to the final prompt.
If an extension module has configurable parameters, confirm those parameter values explicitly before prompt assembly. For example:
AicadeCurrency exchange is enabled, confirm the exchange ratioThe platform can expose multiple SDK modules. Choose only the real modules your app actually needs:
Application: app metadata and lifecycleTicket: access gate, subscription, or play/payment flowAppScore: score and leaderboardAicadeCurrency: point or platform currency operationsAIChat: AI chat session and messagesAICoinMarket: market assistant and streaming messagesToken: token balance and swap flowNftOwner: NFT ownership and avatarLocalStorageTools: app-scoped storage instead of browser localStorageRecommended confirmation order:
Run:
node {baseDir}/scripts/build-aicade-prompt.mjs --spec /path/to/spec.json --lang en
The script will output one final prompt that:
3.2Paste the generated prompt into Cursor, VS Code, or another AI IDE assistant.
Check these items before running the app:
LocalStorageTools replaces localStorageSecurityError, blocked frame access, and storage access failures are handled gracefullyOn the first use of this skill in a project, check the local environment first for the scaffold upload credentials listed below.
If a value is already present locally, confirm and reuse it.
If a value is missing, ask the user only for that missing value, one at a time.
Do not ask again for VITE_AICADE_API_KEY or VITE_AICADE_API_SECRET_KEY when AICADE_API_KEY and AICADE_API_SECRET_KEY have already been saved, because they should be mirrored into .env.
Recommended check command:
node {baseDir}/scripts/check-aicade-env.mjs --mode upload --cwd /path/to/project
Recommended save command:
node {baseDir}/scripts/save-aicade-env.mjs --cwd /path/to/project --set VITE_AICADE_API_URL=...
Standard follow-up pattern:
AICADE_API_KEY = VITE_AICADE_API_KEY and AICADE_API_SECRET_KEY = VITE_AICADE_API_SECRET_KEY..env immediately.VITE_AICADE_API_UPLOAD uses the scaffold default and should not be requested unless the user explicitly wants to override it.AICADE_API_URL = VITE_AICADE_API_URL, and the default should be https://aicadegalaxy.com/v1.Example:
I already have AICADE_API_KEY locally, so I will reuse it as VITE_AICADE_API_KEY as well.I already have AICADE_API_SECRET_KEY locally, so I will reuse it as VITE_AICADE_API_SECRET_KEY as well.I will use the default AICADE_API_URL / VITE_AICADE_API_URL value: https://aicadegalaxy.com/v1.Final upload confirmation: VITE_AICADE_API_KEY=..., VITE_AICADE_API_SECRET_KEY=..., VITE_AICADE_API_URL=https://aicadegalaxy.com/v1. Please confirm whether I should continue with these values.Before every upload, reconfirm the required values used by the scaffold upload.js flow:
AICADE_API_KEY / VITE_AICADE_API_KEY / DAPP_KEYAICADE_API_SECRET_KEY / VITE_AICADE_API_SECRET_KEY / DAPP_SECRET_KEYOptional overrides:
VITE_AICADE_API_UPLOAD or UPLOAD_URL only when the default upload URL must be replacedAICADE_API_URL / VITE_AICADE_API_URL only when the default base https://aicadegalaxy.com/v1 must be customizedDo this every time before upload, even if they were confirmed earlier in the same project.
For a new project, copy upload.js directly from:
https://github.com/aicade-galaxy/aicade-ts-bootstrap/blob/main/upload.jsDo not rewrite upload.js.
Do not regenerate its logic from scratch.
Use the official upstream file unless the user explicitly asks to compare or refresh it from the source repository.
npm install
npm run dev
npm run upload
The prompt builder accepts a JSON file like this:
{
"roleSetup": "You are a senior full-stack product engineer.",
"projectName": "AI Event Assistant",
"projectGoal": "Build an aicade application for event registration, check-in, and reward redemption.",
"basePromptSections": [
{
"title": "Core Business Requirements",
"items": [
"Put your original business prompt for the AI here."
]
}
],
"platformIntegration": {
"scaffoldReadmePath": "README.md",
"scaffoldSdkDocPath": "doc/README.md",
"scaffoldAppGuidePath": "doc/AICreateApplication-EN.md",
"sdkAlreadyIntegrated": true,
"requiredSdkModules": [
"Application",
"LocalStorageTools"
],
"baseRequirements": [
"Initialize AicadeSDK in the correct order with init(...), waitForReady(), and getModule(...)."
],
"compatibilityRequirements": [
"Respect iframe sandbox restrictions and opaque-origin limitations.",
"Replace browser localStorage usage with LocalStorageTools."
],
"replaceLocalStorageWith": "LocalStorageTools",
"showWalletAddress": true,
"showPointBalance": false,
"pointBalanceLabel": "Points",
"exchange": {
"enabled": false,
"ratio": "100:1",
"dailyLimit": "100 Aicade Points",
"trigger": "On each business settlement"
}
},
"technicalRequirements": [
"Generate within the current project environment."
],
"outputRequirements": [
"Output complete runnable code."
]
}
Use:
{baseDir}/assets/app-spec.template.json for the minimal 3.1-style input{baseDir}/assets/app-spec.example.json for a fuller examplescripts/build-aicade-prompt.mjsscripts/check-aicade-env.mjsscripts/save-aicade-env.mjsassets/app-spec.template.jsonassets/app-spec.example.jsonreferences/sdk-capabilities.mdreferences/prompt-workflow.mdThis skill:
This skill does not:
3.13.2upload.js environment variables before every uploadupload.js from the official aicade-ts-bootstrap repository instead of rewriting it