app-dev
Freshworks Platform 3.0 Development Skill
MOST IMPORTANT - ZERO TOLERANCE: An app is NEVER complete until fdk validate shows ZERO platform errors AND ZERO lint errors. NEVER say "app complete" or "app generated" with ANY errors remaining.
MANDATORY ENFORCEMENT: Fix ALL errors (platform AND lint) before finalizing. Keep iterating max 6 times with command fdk validate, until errors = 0. No exceptions.
README.md ENFORCEMENT: EVERY app MUST have a README.md file. Create it BEFORE running validation. If you generate an app without README.md, you have failed.
PRE-WRITE CHECKLIST (run mentally before writing or editing app files):
asynconly when the function body containsawait; otherwise usefunctionwithoutasync.- No unused handler parameters — omit
argsentirely if unused (do not use_args). - Helper functions after the
exports = { ... }block (server). - Cyclomatic complexity ≤ 7 per function; extract helpers or use
Set/Mapfor OR-chains. - Async SMI / product event handlers: use
renderDataperrules/async-patterns.mdc. - Every
config/requests.jsonkey declared undermodules.common.requestsinmanifest.json(and reverse: no orphan manifest entries). - OAuth:
integrationswrapper inoauth_config.json; templates use<%= access_token %>+ template-level"options": { "oauth": "..." }where applicable — not rawBearer <%= iparam.user_token %>for OAuth providers. - Frontend apps:
app/styles/images/icon.svg+ Crayons CDN in HTML (see templates). - FQDN
hostonly in request templates; paths start with/.
More from freshworks-developers/marketplace
freshworks-publish-skill
Pack and publish completed Freshworks custom apps to the marketplace. Use when the user wants to pack, publish, submit, or deploy a Freshworks app to the marketplace, prepare app for submission, create app package, or asks about app publishing workflow.
22freshworks-fdk-setup-skill
Complete FDK management for macOS and Windows - install, upgrade, downgrade, and uninstall. Use when the user needs to install/configure/upgrade/downgrade/uninstall the Freshworks Development Kit, set up FDK on a new machine, asks about FDK installation on Mac or Windows, wants to change FDK version, or encounters FDK/CLI setup issues.
22fdk-setup
Installs and manages Freshworks Development Kit (FDK) with Node.js via nvm for Platform 3.0 development. Supports FDK 10.x (Node 24, recommended) and FDK 9.x (Node 18, deprecated March 2026). Use when user explicitly requests FDK installation, upgrade, downgrade, uninstall, or status check. Provides slash commands /fdk-install, /fdk-upgrade, /fdk-downgrade, /fdk-uninstall, /fdk-status. Publishing to marketplace requires FDK 10.x + Node 24.
16fw-review
Full Freshworks marketplace app review — iparams, frontend, serverless, FDK, security, and structured text report output — in one skill.
6fw-app-dev
Expert-level development skill for building, debugging, reviewing, and migrating Freshworks Platform 3.0 marketplace applications. REQUIRES Node.js 24.x + FDK 10.x installed BEFORE use—checks prerequisites and refuses to proceed without them. Does NOT install or manage FDK/Node—use fw-setup skill. New apps default to FDK 10.0.1 and Node.js 24.x; FDK 9.x/Node 18.x allowed when explicitly requested with deprecation notice. Use for: (1) Creating Platform 3.0 apps (frontend, serverless, hybrid, OAuth), (2) Debugging validation errors, (3) Migrating Platform 2.x apps to 3.0, (4) Reviewing manifest.json, requests.json, oauth_config.json, (5) Implementing Crayons UI, (6) Integrating external APIs or OAuth providers, (7) Any Freshworks Platform 3.0 app development, FDK CLI, or marketplace submission task.
6fw-publish
Publish any Freshworks Platform 3.0 custom app via MCP tools: fdk validate/pack, app-upload, and submit/update through openai-server. Pre-publish: confirm Developer JWT matches manifest product modules (Freshdesk support_* vs Freshservice service_*; multiproduct sequential). At publish time, ask new vs existing listing; for new listings, prompt for supportEmail before create_app_upload_url (required for submit_custom_app). list_custom_apps for updates so the developer selects appId, then MCP handover (submit_custom_app or add_app_version with uploadId). Use when the user wants to push an app to the Marketplace for QA (test) or review, check publish status, or list existing apps. Pair with fw-app-dev for manifest or module fixes. Works with Cursor, Claude Code, and any MCP-compliant client.
5