/forge-app-review
Performs a lightweight pre-release readiness review of Atlassian Forge apps across manifest/module wiring, architecture, runtime compatibility, dependency posture, tests, deploy readiness, and obvious security, cost, or reliability smells. Use when the user asks "review my Forge
$ npx -y skills add atlassian/forge-skills --skill forge-app-review --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/forge-app-review
Context preview
The summary Claude sees to decide when to auto-load this skill.
Performs a lightweight pre-release readiness review of Atlassian Forge apps across manifest/module wiring, architecture, runtime compatibility, dependency posture, tests, deploy readiness, and obvious security, cost, or reliability smells. Use when the user asks "review my Forge
SKILL.md
forge-app-review.SKILL.mdname: forge-app-review
description: >
Performs a lightweight pre-release readiness review of Atlassian Forge apps across manifest/module wiring,
architecture, runtime compatibility, dependency posture, tests, deploy readiness, and obvious security,
cost, or reliability smells. Use when the user asks "review my Forge app", "pre-deploy check",
"is this app ready to ship", "review manifest", "general app review", "release readiness", or asks for a
broad quality pass. Do not use for deep security audits/SAST/exploitability review, cost optimization,
or diagnosing a known broken app; route those to forge-security-review, forge-cost-optimizer, or
forge-debugger respectively.
Forge App Review
Run a general Forge release-readiness review. This skill is the front door for broad app review, not a replacement for specialist security, cost, or debugging skills.
Boundaries
Use this skill for:
- Pre-deploy and release-readiness checks.
- General architecture and maintainability review.
- Manifest/module/resource/function wiring.
- Runtime, dependency, package, and script sanity checks.
- Basic tests/deploy readiness and operational hygiene.
- Obvious security, cost, or reliability smells that should trigger a deeper specialist pass.
Use another skill instead when the user's primary intent is:
- Deep security audit, SAST, authz, secrets, tenant isolation, exploitability, or CVSS reporting -> `forge-security-review`.
- Cost optimization, invocations, GB-seconds, storage/log volume, trigger frequency, or memory tuning -> `forge-cost-optimizer`.
- A known failure, error message, blank UI, failed deploy/install, broken resolver, missing app, or logs/tunnel diagnosis -> `forge-debugger`.
If a broad review finds a deep security/cost/debug concern, include it as a handoff recommendation rather than duplicating the specialist workflow.
Review Rules
- Audit first. Do not modify app files unless the user explicitly asks to apply fixes.
- Read the codebase before making claims.
- Prefer concrete file/line evidence.
- Keep findings focused on bugs, release blockers, meaningful risks, and missing validation.
- Do not run full SAST or cost tooling from this skill. Recommend the specialist skill when warranted.
- Do not report speculative security or cost observations as confirmed vulnerabilities or savings.
Workflow
1. Read `manifest.yml` or `manifest.yaml`.
- Identify modules, resources, functions, resolver bindings, triggers, web triggers, remotes, permissions, runtime, and memory settings.
- Verify referenced handlers/resources exist.
2. Read `package.json`.
- Check Forge package fit, scripts, runtime assumptions, direct dependencies, and obvious unused/missing packages.
3. Inspect source files.
- Backend/resolvers: `resolver.define`, handler exports, product API calls, storage usage, external fetches, logging, error handling.
- Frontend: UI Kit or Custom UI resource entry points, `invoke()` patterns, bridge usage, loading/error states.
4. Inspect tests and project docs when present.
- Note missing tests only when behavior risk justifies it.
5. Produce a prioritized readiness report.
What To Check
Release Blockers
- Manifest references a missing handler, resource path, or module key.
- Resolver names called by the frontend do not match `resolver.define()` names.
- Required scopes or egress permissions are missing for actual API/fetch usage.
- Runtime, package versions, or module syntax likely fail `forge lint`, build, deploy, or install.
- App has no clear way to exercise its primary user flow.
Architecture And Maintainability
- Module type matches the intended UX surface.
- Resolver boundaries are coherent and not overly monolithic for the app size.
- Sensitive or privileged logic stays backend-side.
- UI-only formatting/transforms are not unnecessarily forced through backend functions.
- Error handling is sufficient for user-facing workflows.
- Code organization matches existing project style.
Lightweight Security Signals
Only flag obvious signals and recommend `forge-security-review` for deep validation:
- Broad/write/admin scopes without visible usage.
- `api.asApp()` in user-triggered resolvers without obvious authorization checks.
- Hardcoded credentials or token-like literals.
- External fetches without manifest egress entries.
- Web triggers without visible authentication strategy.
- Full payload/request logging that may expose user, tenant, or secret data.
Lightweight Cost Signals
Only flag obvious signals and recommend `forge-cost-optimizer` for deep analysis:
- Resolver invoked only to return static data or product context.
- Multiple independent `invoke()` calls on page load.
- Scheduled triggers that look like broad polling.
- Product triggers without filters or `ignoreSelf` where applicable.
- Full payload/API response logging in hot paths.
- Storage writes on every invocation.
Lightweight Debuggability Signals
Only flag readiness gaps; use `forge-debugger` when there is an observed failure:
- Missing loading/error states around async UI paths.
- Logs are either too noisy or absent around important failures.
- README or scripts do not explain how to lint/build/deploy/test.
- App has no obvious local verification command besides `forge lint`.
Output Format
Return a concise Markdown report:
# Forge App Review Results
## Summary
- Readiness: Ready | Needs changes | Blocked
- Highest-risk area: <manifest | resolver wiring | permissions | dependencies | tests | operational hygiene>
- Files inspected: <short list>
- Specialist handoffs: <none | security | cost | debugger>
## Findings
1. [Critical | Warning | Info] <title>
- Evidence: `<file:line>` and observed pattern
- Impact: <why this affects readiness>
- Recommendation: <specific fix or specialist handoff>
## Clean Areas
- <important categories checked with no issues>
## Suggested Next Step
- <apply fixes | run specialist
Read more
name: forge-app-review description: > Performs a lightweight pre-release readiness review of Atlassian Forge apps across manifest/module wiring, architecture, runtime compatibility, dependency posture, tests, deploy readiness, and obvious security, cost, or reliability smells. Use when the user asks "review my Forge app", "pre-deploy check", "is this app ready to ship", "review manifest", "general app review", "release readiness", or asks for a broad quality pass. Do not use for deep security audits/SAST/exploitability review, cost optimization, or diagnosing a known broken app; route those to forge-security-review, forge-cost-optimizer, or forge-debugger respectively.
Forge App Review
Run a general Forge release-readiness review. This skill is the front door for broad app review, not a replacement for specialist security, cost, or debugging skills.
Boundaries
Use this skill for:
- Pre-deploy and release-readiness checks.
- General architecture and maintainability review.
- Manifest/module/resource/function wiring.
- Runtime, dependency, package, and script sanity checks.
- Basic tests/deploy readiness and operational hygiene.
- Obvious security, cost, or reliability smells that should trigger a deeper specialist pass.
Use another skill instead when the user's primary intent is:
- Deep security audit, SAST, authz, secrets, tenant isolation, exploitability, or CVSS reporting -> `forge-security-review`.
- Cost optimization, invocations, GB-seconds, storage/log volume, trigger frequency, or memory tuning -> `forge-cost-optimizer`.
- A known failure, error message, blank UI, failed deploy/install, broken resolver, missing app, or logs/tunnel diagnosis -> `forge-debugger`.
If a broad review finds a deep security/cost/debug concern, include it as a handoff recommendation rather than duplicating the specialist workflow.
Review Rules
- Audit first. Do not modify app files unless the user explicitly asks to apply fixes.
- Read the codebase before making claims.
- Prefer concrete file/line evidence.
- Keep findings focused on bugs, release blockers, meaningful risks, and missing validation.
- Do not run full SAST or cost tooling from this skill. Recommend the specialist skill when warranted.
- Do not report speculative security or cost observations as confirmed vulnerabilities or savings.
Workflow
1. Read `manifest.yml` or `manifest.yaml`.
- Identify modules, resources, functions, resolver bindings, triggers, web triggers, remotes, permissions, runtime, and memory settings.
- Verify referenced handlers/resources exist.
2. Read `package.json`.
- Check Forge package fit, scripts, runtime assumptions, direct dependencies, and obvious unused/missing packages.
3. Inspect source files.
- Backend/resolvers: `resolver.define`, handler exports, product API calls, storage usage, external fetches, logging, error handling.
- Frontend: UI Kit or Custom UI resource entry points, `invoke()` patterns, bridge usage, loading/error states.
4. Inspect tests and project docs when present.
- Note missing tests only when behavior risk justifies it.
5. Produce a prioritized readiness report.
What To Check
Release Blockers
- Manifest references a missing handler, resource path, or module key.
- Resolver names called by the frontend do not match `resolver.define()` names.
- Required scopes or egress permissions are missing for actual API/fetch usage.
- Runtime, package versions, or module syntax likely fail `forge lint`, build, deploy, or install.
- App has no clear way to exercise its primary user flow.
Architecture And Maintainability
- Module type matches the intended UX surface.
- Resolver boundaries are coherent and not overly monolithic for the app size.
- Sensitive or privileged logic stays backend-side.
- UI-only formatting/transforms are not unnecessarily forced through backend functions.
- Error handling is sufficient for user-facing workflows.
- Code organization matches existing project style.
Lightweight Security Signals
Only flag obvious signals and recommend `forge-security-review` for deep validation:
- Broad/write/admin scopes without visible usage.
- `api.asApp()` in user-triggered resolvers without obvious authorization checks.
- Hardcoded credentials or token-like literals.
- External fetches without manifest egress entries.
- Web triggers without visible authentication strategy.
- Full payload/request logging that may expose user, tenant, or secret data.
Lightweight Cost Signals
Only flag obvious signals and recommend `forge-cost-optimizer` for deep analysis:
- Resolver invoked only to return static data or product context.
- Multiple independent `invoke()` calls on page load.
- Scheduled triggers that look like broad polling.
- Product triggers without filters or `ignoreSelf` where applicable.
- Full payload/API response logging in hot paths.
- Storage writes on every invocation.
Lightweight Debuggability Signals
Only flag readiness gaps; use `forge-debugger` when there is an observed failure:
- Missing loading/error states around async UI paths.
- Logs are either too noisy or absent around important failures.
- README or scripts do not explain how to lint/build/deploy/test.
- App has no obvious local verification command besides `forge lint`.
Output Format
Return a concise Markdown report:
# Forge App Review Results ## Summary - Readiness: Ready | Needs changes | Blocked - Highest-risk area: <manifest | resolver wiring | permissions | dependencies | tests | operational hygiene> - Files inspected: <short list> - Specialist handoffs: <none | security | cost | debugger> ## Findings 1. [Critical | Warning | Info] <title> - Evidence: `<file:line>` and observed pattern - Impact: <why this affects readiness> - Recommendation: <specific fix or specialist handoff> ## Clean Areas - <important categories checked with no issues> ## Suggested Next Step - <apply fixes | run specialist
Showing the first part of this file.
Atlassian Forge lets you build and deploy apps directly on the Atlassian platform - issue panels, Confluence macros, dashboard gadgets, and more.
Repo: atlassian/forge-skills
Other skills on forge-skills.
- /forge-app-builder
Guides building, deploying, troubleshooting, and installing Atlassian Forge apps — custom extensions built with the Forge CLI (forge create, forge deploy, forge install). Use when the user wants to create a Forge app (issue panels, dashboard gadgets, Confluence macros, global
Open skill - /forge-connector
Guides building and deploying Atlassian Forge Teamwork Graph connector apps that ingest external data into Atlassian's Teamwork Graph, making it searchable in Rovo Search and surfaced in Rovo Chat. Use when the user wants to build a Forge connector, ingest external data into
Open skill - /forge-cost-optimizer
Optimizes Atlassian Forge apps to reduce platform consumption and avoid unnecessary costs using Atlassian's "Optimise Forge platform costs" guidance. Use when the user asks to optimize Forge app costs, reduce Forge invocations, lower GB-seconds, reduce storage or log usage, tune
Open skill - /forge-debugger
Diagnoses and fixes issues in Atlassian Forge apps. Use this skill whenever a Forge app has errors, crashes, shows blank UI, fails to deploy, doesn't appear after installation, has permission issues, or produces unexpected output. Trigger on any mention of forge logs, forge
Open skill - /forge-security-review
Performs a white-box security review of Atlassian Forge apps using structured, Forge-specific security rules and evidence-driven reporting. Use when the user asks for a Forge security review, security audit, vuln assessment, pentest-style code review, authz review, tenant
Open skill

