with one click
fw-review
// Full Freshworks marketplace app review — iparams, frontend, serverless, FDK, security, and structured text report output — in one skill.
// Full Freshworks marketplace app review — iparams, frontend, serverless, FDK, security, and structured text report output — in one skill.
| name | fw-review |
| description | Full Freshworks marketplace app review — iparams, frontend, serverless, FDK, security, and structured text report output — in one skill. |
| version | 1.0.0 |
| compatibility | Freshworks Platform 3.0; optional FDK on PATH for validate-oriented phases (use fw-setup when missing) |
This is an automated pipeline. After the app directory is determined (Q1 pre-flight below), do not ask further questions or interact with the user for disambiguation — execute the remaining phases silently and produce only the formatted App Review Result block in rules/report.md. Do not prefix or suffix that block with commentary (no Pass/N/A rationales, script notes, or pipeline status).
Exception: If fdk is missing, follow FDK CLI availability below (STOP → offer /fw-setup-install → optional y/n) — that interaction overrides “silent only” until the CLI exists or the user declines install.
Before the workflow, follow the same steps as fw-app-dev /fdk-fix Step 1: Determine app directory:
manifest.json files.All app files in the workflow below are relative to that directory (the folder containing manifest.json). Run deterministic check scripts from this skill’s scripts/ against <app-directory> (see README.md).
Run these phases in order. Detailed inspection criteria: [rules/**.md]. Emit failures only via the Issue / Location / Fix format in rules/report.md—no separate prose summary of passes, N/A, or omitted checks.
Pre-requisite
The Freshworks FDK CLI (fdk) is not bundled with this repository and is not assumed to exist in generic CI images. Jenkins or Kubernetes node images typically include Node only, not fdk. Verify FDK is installed (for example /fw-setup-status from the fw-setup skill, or fdk --version when the CLI is on PATH).
If fdk is missing (fdk --version fails / command not found):
fdk validate were available.fdk CLI is required for a complete review where validation applies, and that fw-review does not install it.fw-setup: /fw-setup-install (FDK 10.x + Node 24.11 defaults) or /fw-setup-status. Do not auto-install without consent./fw-setup-install now? (y/n)” — only on yes, route to skills/fw-setup/; on no, instruct the user to install and re-run fw-review.## App Review Result block — do not emit a full App Review Result pretending all phases ran until fdk is available and the pipeline can execute.manifest.json in the app directory first for platform version, modules, requests, events, and install flow.config/iparams.json or custom config/iparams.html / config/assets/iparams.js using rules/iparam-rules.md. Follow the discovery order in that file.scripts/ against <app-directory>. Treat any returned internal metadata such as internal.rule_id as internal only.rules/*.md files for those IDs.## App Review Result; do not add lines above it or below it (aside from what report.md defines inside the block: heading, then successful or the numbered list). No rule IDs (GN-*, IP-*, FF-*, FFS-*, CR-*), no internal filenames (script-check-rules.md, other rules/*.md, scripts/*.js), and no citations to skill paths.\``text` around the whole block); emit the Markdown directly so headings, lists, and links render in the chat client.## App Review Result with no suffix. Below it: the word successful alone on its own line when there are zero failures; when there are failures, omit successful and emit the numbered list per rules/report.md.<issue>. [ [<filename>(<qualifier>)](<filename>#L<start>-L<end>) ].**Fix:** <imperative remediation> paragraph attached to the same list item, separated from the issue paragraph by one blank line.<qualifier> is (N) for a single line, (A-B) for a range, (<scope label>) for a named scope without a precise line, or omitted entirely for a whole-file reference. Link target is <filename>#L<N> / <filename>#L<A>-L<B> / <filename> accordingly. Multiple co-located occurrences are placed inside a single pair of outer brackets, comma-separated.[ and ] around the location link are literal characters with one space inside each bracket.IP-*), Structure (FFS-*), Frontend (FF-*), Readability (CR-*), Miscellaneous (GN-*).internal.rule_id, from the final user-visible report.scripts/*.js.| Area | IDs |
|---|---|
| iparams | IP-04A, IP-05A, IP-06A |
| File and folder structure | FFS-02L, FFS-04L, FFS-05L |
| Frontend | FF-01L, FF-07L, FF-02M, FF-03A, FF-04A, FF-05A, FF-06A, FF-08A |
| Code readability | CR-05L |
| Miscellaneous | GN-02L, GN-08L, GN-12L |
[HINT] Download the complete skill directory including SKILL.md and all related files