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 pages), is encountering Forge CLI errors or deployment issues (e.g. forge install failures, environment errors), or needs help with Forge-specific concepts like resolvers, UI Kit, manifest scopes, or developer spaces. Do not use for general Jira configuration, automation rules, JQL queries, or Atlassian REST API usage outside of a Forge app context.
What this skill does
# Forge App Builder
**When building a Forge app, the agent MUST complete this workflow in order. Do not skip steps. Do not substitute manual instructions for running the scripts below.**
## Critical Rules
1. **Always use `forge create`** to scaffold apps — it registers the app and generates a valid app ID
2. **Never manually scaffold** — apps without valid app IDs cannot be deployed
3. **If `forge create` fails, STOP** — inform the user and provide the manual command
4. **Never ask for API tokens in chat** — direct users to run `forge login` in their terminal and enter credentials there
5. **Always ask the user to choose** when multiple options exist (developer spaces, sites) — never pick on their behalf
6. **Always ask the user for their Atlassian site URL during installation** — never try to discover it from other apps, environment variables, or any other source
7. **Always run the deploy script for deploy and install** — do not give the user only manual `forge deploy` / `forge install` commands as the primary outcome; run `scripts.deploy_forge_app.py` yourself
## MCP Server Prerequisites
This skill works best with the following MCP servers. The scripts and CLI workflow function without them, but the agent will lack access to up-to-date Forge documentation for template selection, module configuration, and code patterns.
| MCP Server | Required? | Purpose |
| ------------- | -------------------- | ------------------------------------------------------------------------- |
| **Forge MCP** | Strongly recommended | Template lookup, module discovery, manifest syntax, UI Kit/backend guides |
| **ADS MCP** | Optional | Atlaskit component/token/icon lookup (Custom UI apps only) |
If MCP servers are not connected, inform the user that code guidance may be based on the model's training data and could be outdated. Recommend they verify against [developer.atlassian.com/platform/forge](https://developer.atlassian.com/platform/forge/).
|
## Agent Workflow
**Complete steps 0–5 in order. Run the scripts yourself; do not only instruct the user to run them.**
### Step 0: Prerequisites (Install Automatically If Missing)
**Before any other steps**, call the `forge-development-guide` tool to get the current Node.js version requirement and CLI setup instructions. Then check and install prerequisites:
1. **Node.js** — Run `node -v`. If missing or below the version specified in the development guide:
- **macOS (Homebrew):** `brew install node`
- **nvm:** `nvm install <version>` then `nvm use <version>`
- **fnm:** `fnm install <version>` then `fnm use <version>`
- **Other:** [https://nodejs.org](https://nodejs.org) (LTS)
2. **Forge CLI** — Run `forge --version`. If missing:
```bash
npm install -g @forge/cli
```
3. **Forge login** — Run `forge whoami`. If not logged in:
- **Never ask for or accept API tokens in chat** — tokens are sensitive; the user must enter them only in their terminal
- Direct the user to create an API token: [https://id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens)
- Tell the user to run `forge login` **in their own terminal** (not via the agent). The CLI will prompt for:
- Atlassian email
- API token (paste only in the terminal when prompted)
- Example message: *"You need to log in to Forge. Create an API token at [https://id.atlassian.com/manage/api-tokens](https://id.atlassian.com/manage/api-tokens), then run `forge login` in your terminal. Enter your email and token when prompted — do not paste them here."*
- After the user confirms they've logged in, retry the workflow
Install in order: Node.js first (required for npm), then Forge CLI, then login. Retry the workflow after installing.
### Step 1: Discover Developer Spaces
```bash
forge developer-spaces list --json
```
### Step 2: Ask User to Choose Developer Space
**Do not proceed to Step 3 until the user has selected a developer space.** Present the list from Step 1 (names and IDs) and ask which space to use. If only one space exists, you may use it and briefly inform the user. Never pick one of multiple spaces on the user's behalf.
### Step 3: Create App
All `python3 -m scripts.`* commands must be run from the skill directory (the directory containing this SKILL.md file). Derive it from the SKILL.md path provided in the system prompt. Use `python3` on macOS if `python` is not available.
Run from the skill directory. The `--directory` flag sets the **parent directory** under which the app folder (named after `--name`) will be created. The script `cd`s into that directory before running `forge create`, so the app appears as a subdirectory (e.g. `<parent-directory>/<app-name>/`). If omitted, the app is created under the current directory.
```bash
python3 -m scripts.create_forge_app \
--template <template> \
--name <app-name> \
--dev-space-id <selected-id> \
--directory <parent-directory>
```
To find the right template for the user's needs:
- Call `list-forge-modules` to identify the appropriate module type
- Call `search-forge-docs` with a query like "template for " to find the matching template name
Validate a template: `python3 -m scripts.list_templates --validate <name>`
List all templates: `python3 -m scripts.list_templates --list`
### Step 4: Customize Code
After `forge create` succeeds:
```bash
cd <app-name>
npm install
```
#### UI Kit vs Custom UI — Choose the Right Tools
Before writing any UI code, determine which approach the app uses. **Getting this wrong causes import errors and broken builds.**
- **UI Kit** (most `forge create` templates): manifest uses `render: native` or code imports from `@forge/react`. Use `forge-ui-kit-developer-guide` as the ONLY UI reference. Do NOT suggest `@atlaskit/`* imports — they won't work.
- **Custom UI**: manifest has `resource` pointing to a `static/` directory. Use ADS MCP tools (`ads_plan`, `ads_get_components`, `ads_get_all_icons`) for component discovery. Do NOT use `forge-ui-kit-developer-guide` — it describes a different API.
#### Knowledge tools for implementation
- `forge-ui-kit-developer-guide` — Frontend components (**UI Kit only**)
- `ads_plan` / `ads_get_components` — Component and token lookup (**Custom UI only**)
- `forge-backend-developer-guide` — Backend resolvers and APIs
- `forge-app-manifest-guide` — Manifest configuration
- `search-forge-docs` — Search for specific APIs or props
### Step 5: Deploy and Install (run the deploy script)
**You MUST run the deploy script** — do not only paste manual `forge deploy` / `forge install` commands for the user to run. Execute the script from the skill directory.
- **If you have the user's Atlassian site URL** (e.g. they provided it earlier or in the request), run in one go:
```bash
python3 -m scripts.deploy_forge_app \
--app-dir <app-directory> \
--site <site-url> \
--product <jira|confluence>
```
- **If you do not have the site URL yet:** run deploy only, then ask for the site, then run again to install:
```bash
# 1) Deploy only
python3 -m scripts.deploy_forge_app \
--app-dir <app-directory> \
--product <jira|confluence> \
--deploy-only
# 2) Ask the user: "What is your Atlassian site URL (e.g. yourcompany.atlassian.net)?"
# 3) After they reply, run again with their site to complete install
python3 -m scripts.deploy_forge_app \
--app-dir <app-directory> \
--site <site-url> \
--product <jira|confluence> \
--skip-deps
```
**Always ask the user for their site URL** when needed for install; never try to discover it. If scopes changed from a previous install, add `--upgrade` to the install (or run the script again with `--site` and the script will handle it; for manual upgrade use `forge install ... --upgrade`).
#### Cross-product installation
When an app uses scopes from multiple products (e.g. a CRelated in Design
contribute
IncludedLocal-only OSS contribution command center. Auto-refreshes the user's in-flight PR and issue state on invoke so conversations start with full context — no need to brief Claude on what's in flight. Helps the user find issues to contribute to on GitHub, builds per-repo dossiers of what each upstream expects (CLA, DCO, branch convention, AI policy, draft-first, review bots, issue templates), runs deterministic gates before any external action so AI-assisted contributions don't reach maintainers as slop. State is markdown-only: candidate files at ~/.contribute-system/candidates/, repo dossiers at ~/.contribute-system/research/, append-only event log at ~/.contribute-system/log.jsonl. No database, no cloud calls. Use when the user asks about their PRs / issues / contributions, wants to find new work to take on, claim an issue, build/refresh a repo's dossier, or draft a Design Issue or PR. Trigger with "/contribute", "what's my PR status", "find a contribution", "claim issue X", "draft a Design Issue for Y", "refresh dossier for Z".
architectural-analysis
IncludedUser-triggered deep architectural analysis of a codebase or scoped subtree across eight modes — information architecture, data flow, integration points, UI surfaces, interaction patterns, data model, control flow, and failure modes. This skill should be used when the user asks to "diagram this codebase," "map the architecture," "show the data flow," "give me an ERD," "trace control flow," "find the integration points," "verify the layout pattern," "audit the UX architecture," or any similar request whose primary deliverable is mermaid diagrams plus cited reports under docs/architecture/. Dispatches haiku/sonnet sub-agents in parallel for per-mode exploration, then verifies every citation mechanically before any node lands in a diagram. Not for one-off prose explanations of code (use code-explanation) or for high-level system design from scratch (use system-design).
mcp
IncludedModel Context Protocol (MCP) server development and tool management. Languages: Python, TypeScript. Capabilities: build MCP servers, integrate external APIs, discover/execute MCP tools, manage multi-server configs, design agent-centric tools. Actions: create, build, integrate, discover, execute, configure MCP servers/tools. Keywords: MCP, Model Context Protocol, MCP server, MCP tool, stdio transport, SSE transport, tool discovery, resource provider, prompt template, external API integration, Gemini CLI MCP, Claude MCP, agent tools, tool execution, server config. Use when: building MCP servers, integrating external APIs as MCP tools, discovering available MCP tools, executing MCP capabilities, configuring multi-server setups, designing tools for AI agents.
react-native-skia
IncludedDesign, build, debug, and optimise high-polish animated graphics in React Native or Expo using @shopify/react-native-skia, Reanimated, and Gesture Handler. Use when the user wants canvas-driven UI, shaders, paths, rich text, image filters, sprite fields, Skottie, video frames, snapshots, web CanvasKit setup, or performance tuning for custom motion-heavy elements such as loaders, hero art, cards, charts, progress indicators, particle systems, or gesture-driven surfaces. Also use when the user asks for fluid, glow, glass, blob, parallax, 60fps/120fps, or GPU-friendly animated effects in React Native, even if they do not explicitly say "Skia". Do not use for ordinary form/layout work with standard views.
plaid
IncludedProduct Led AI Development — guides founders from idea to launched product. Six capabilities: Idea (discover a product idea), Validate (pressure-test the idea against fatal flaws, problem reality, competition, and 2-week MVP feasibility), Plan (vision intake + document generation), Design (translate image references into a design.md spec), Launch (go-to-market strategy), and Build (roadmap execution). Use when someone says "PLAID", "plaid idea", "help me find an idea", "product idea", "idea from my business", "idea from my expertise", "plaid validate", "validate my idea", "pressure-test", "is this idea good", "find fatal flaws", "validate the problem", "plan a product", "define my vision", "generate a PRD", "product strategy", "plaid design", "design from image", "translate image to design", "create design.md", "extract design tokens", "plaid launch", "go-to-market", "launch plan", "GTM strategy", "launch playbook", "plaid build", "build the app", "start building", or "execute the roadmap".
nextjs-framer-motion-animations
IncludedAdds production-safe Motion for React or Framer Motion animations to Next.js apps, including reveal, hover and tap micro-interactions, whileInView, stagger, AnimatePresence, layout and layoutId transitions, reorder, scroll-linked UI, and lightweight route-content transitions. Use when the user asks to add, refactor, or debug Motion or Framer Motion in App Router or Pages Router codebases, especially around server/client boundaries, reduced motion, LazyMotion, bundle size, hydration, or route transitions. Avoid for GSAP-style timelines, WebGL or 3D scenes, heavy scroll storytelling, or CSS-only effects unless Motion is explicitly requested.