|
| 1 | +# Forge Onboarding Skill |
| 2 | + |
| 3 | +The **first guided experience for someone new to Atlassian Forge**, optimized for AI-native development. Takes a first-time builder from zero to a running Rovo Agent — **Forge Guru**, a permanent Forge development companion that lives on their dev site and answers Forge questions live from the official developer docs. |
| 4 | + |
| 5 | +Use this skill for your **first** Forge app. For everything after that, use `forge-app-builder`. |
| 6 | + |
| 7 | +## What Makes This Different |
| 8 | + |
| 9 | +The artifact you build is **something you keep using**, not a throwaway hello-world. Forge Guru stays on your dev site forever and answers real Forge questions: |
| 10 | + |
| 11 | +- *"What can I build with Forge?"* |
| 12 | +- *"Which Forge module should I use for [my idea]?"* |
| 13 | +- *"How do I add something to a Jira issue?"* |
| 14 | +- *"How do I call the Jira REST API from a Forge resolver?"* |
| 15 | +- *"What's the difference between UI Kit and Custom UI?"* |
| 16 | + |
| 17 | +Each answer is generated by searching Atlassian's official developer documentation live and citing the exact page — no hallucination. |
| 18 | + |
| 19 | +## ⏱ How Long This Takes |
| 20 | + |
| 21 | +- **~15 minutes** if your environment is already set up (Node.js 22+, Forge CLI, `forge login` done, developer site with Rovo enabled) |
| 22 | +- **~25 minutes** if the skill needs to install Node, install the Forge CLI, and provision a fresh developer site along the way |
| 23 | + |
| 24 | +Per-step time estimates appear in each section header inside the skill so users can pace themselves. |
| 25 | + |
| 26 | +## What This Skill Walks Through |
| 27 | + |
| 28 | +Progressive disclosure — one stage at a time. The onboarding is structured as a **two-loop arc**: first ship a real, minimal, working Hello World Rovo Agent end-to-end (so the user's first Forge experience is a working app they understand and can chat with), then evolve that same app into Forge Guru (so the throwaway feeling of hello-world becomes a keep-forever tool). |
| 29 | + |
| 30 | +Users see section titles (e.g. *"Deploy your first Forge app"*, *"See Hello World live"*) — the step numbers below are for internal reference only. |
| 31 | + |
| 32 | +**Setup:** |
| 33 | + |
| 34 | +0. **Welcome & frame** — Introduce Forge Guru by name in the very first line, sketch the two-loop shape of the onboarding (Set up → Loop 1 → Loop 2 → What next), and set the expectation that today's artifact is a keep-forever tool. |
| 35 | +1. **Set up your local machine** — Verify (and install, with permission) Node.js, the Forge CLI, and `forge login`. This is the *local* half of setup — the tools on your machine. The *Atlassian* half comes later in Step 4. |
| 36 | +2. **The AI-native Forge app mental model** — The four concepts of every Forge app, presented as a scannable table: **manifest**, **modules & extension points**, **the Context Moat (Teamwork Graph + MCP)**, and **backend (actions & resolvers)**. Includes a 6-step "what actually happens when you chat with a Rovo Agent" walkthrough. |
| 37 | +3. **Meet Forge Guru** — Purely conceptual: introduce the specific agent we're building (what it is, what you'll be able to ask it, what it's built from, why it's worth keeping). No user inputs collected here. |
| 38 | +4. **Set up your Atlassian environment** — A super-step with three symmetric micro-beats, each in its own visible section so no beat disappears into narration. This is the *Atlassian* half of setup — where the app will live, who will own it, and where it'll run. The *local* half was handled in Step 1. |
| 39 | + - **4a — Choose where your Forge agent will live** (working directory on disk). |
| 40 | + - **4b — Pick a Developer Space to register the app in** (introduces what a Developer Space is, then queries the user's via `forge developer-spaces list --json` and lets them pick). |
| 41 | + - **4c — Pick the Atlassian dev site where the app will be installed** (moved out of the pre-loop flow so it sits alongside the other two "what does the scaffold need to know?" questions; user can bring their own URL or run `forge site provision` for a free demo site with Rovo pre-activated). |
| 42 | + |
| 43 | +**Loop 1 — ship a stock Hello World Rovo Agent:** |
| 44 | + |
| 45 | +5. **Scaffold your Rovo Agent** — Delegate to the **`forge-app-builder`** skill's non-interactive helper (`scripts.create_forge_app --template rovo-agent-rovo --name forge-guru`) to scaffold a stock Hello World Rovo Agent from the official template. A short teaching beat at the end of this step reinforces how `forge create` names things: the `--name` flag locks three names to the same value at once — the folder on disk (`forge-guru/`), the app's immutable ID in the Developer Console (`forge-guru`), and the Rovo Agent's display name (`Forge Guru`). The name doesn't change again — Loop 2 only customizes what Guru *does*, not what it's called. |
| 46 | +6. **Take a look at what the scaffold gave us** — Two messages, one per file. Chat carries a compact concept summary (what the file is for, what blocks it contains, how the pieces connect, cross-referenced to Step-3 concepts). Each message ends with the exact path to the file on disk so a curious user can open it in their editor to see the syntax. **No files are modified in this step** — the on-disk scaffold stays exactly as `forge create` produced it until Step 9. |
| 47 | +7. **Deploy your first Forge app** — Delegate to `scripts.deploy_forge_app`, which runs `forge deploy` + `forge install` in one non-interactive call (with `npm install` handled automatically as part of deploy). Explicit user confirmation required. First Forge deploy of the user's career — celebrate it. |
| 48 | +8. **See Hello World live on your dev site** — Click-by-click instructions for opening Rovo, finding the agent, and chatting with it. First confidence beat — the user sees their own code respond in Rovo. |
| 49 | + |
| 50 | +**Loop 2 — turn the same app into Forge Guru:** |
| 51 | + |
| 52 | +9. **Turn Hello World into Forge Guru** — Two per-file confirm-gates, one for `manifest.yml` and one for `src/index.js`. Chat carries a compact **change list** (what's changing and why, cross-referenced to Step-3 concepts) — not a full target-file paste. Escape hatch: if the user says *"show me the file"* the agent pastes the full target YAML/JS from the pinned reference. On confirm, files are overwritten with **clean, production-shaped Guru code** (short 2-line header + code) so the app now looks like a real Forge app. **The `src/index.js` gate also updates `package.json`** as an inline side-effect — the new Guru handler imports `@forge/api`, which the stock scaffold may not declare as a dependency, so the agent adds it and tells the user in the same message. All pinned target-file YAML in the skill is hard-wrapped so every source line is ≤160 characters — this keeps the redeploy in Step 10 from failing `forge lint`. |
| 53 | +10. **Redeploy — this time as Forge Guru** — Same `scripts.deploy_forge_app` helper, second time. `forge deploy` picks up the new `@forge/api` dependency automatically as part of its install-and-deploy pipeline. The daily-rhythm beat — the user sees that iterating on a Forge app is just *edit → redeploy → see it live*. |
| 54 | +11. **See Forge Guru live** — Same shape as Step 8, but this time the user asks Guru a real Forge question and gets back an answer with a cited doc link. |
| 55 | +12. **What next — the rest of your Forge journey** — Framed around Atlassian's official [*Build and launch your Forge app*](https://developer.atlassian.com/platform/forge/build-and-launch-your-forge-app/) doc: the user just finished the guided *Build* stage; here's the map for *Prepare to publish*, *Distribute*, and *Grow*. Includes a *"Get inspired"* section that points at three open-source Forge apps on [atlassian-labs/forge-inspired](https://github.com/atlassian-labs/forge-inspired) (Sprint Ready Agent, Smart Workflow Follow-up, Team Pulse Board), plus specialist skills routed to the stage where they help (`forge-security-review` / `forge-app-review` / `forge-cost-optimizer` under *Prepare to publish*; `forge-app-builder` / `forge-connector` / `forge-debugger` for continuing to build). Guru is the "one Rovo chat away" CTA. |
| 56 | + |
| 57 | +## Design Principles |
| 58 | + |
| 59 | +- **Outcome over information** — every step moves the user toward a Guru they'll keep using. |
| 60 | +- **Progressive disclosure** — one stage at a time, confirm success before advancing. |
| 61 | +- **AI guides, not hides** — the skill actively performs setup where possible, narrating what it's doing and why. |
| 62 | +- **Make the first success visible** — deploying isn't the win; asking Guru a real question and getting a cited answer is. |
| 63 | +- **Build a keep-forever artifact** — the tutorial's output is genuinely useful on day 2, day 20, and day 200. |
| 64 | +- **Verify everything against the Forge MCP** — never rely on remembered CLI commands, module names, or manifest properties. |
| 65 | + |
| 66 | +## Prerequisites |
| 67 | + |
| 68 | +The skill handles missing prerequisites for you (with permission), but if you want to prep manually: |
| 69 | + |
| 70 | +- **Node.js 22+** — `node -v` (the skill will install via `nvm` if missing) |
| 71 | +- **Forge CLI** — `npm install -g @forge/cli@latest` (the skill will install if missing; needs a version that supports Rovo Agent templates) |
| 72 | +- **An Atlassian account** — needed for `forge login` |
| 73 | +- **Rovo activated on the target site** — free demo sites from `forge site provision` have Rovo enabled by default |
| 74 | + |
| 75 | +## Installation |
| 76 | + |
| 77 | +This skill ships inside the **[Forge Skills](https://github.com/atlassian/forge-skills)** plugin bundle (`skills/forge-onboarding/`). Install that repo as a plugin in your editor or CLI to get the skill plus the Forge MCP configuration — the skill assumes the Forge MCP is available for verification lookups. |
| 78 | + |
| 79 | +See the [forge-skills README](https://github.com/atlassian/forge-skills/blob/main/README.md) for Cursor, Claude Code, Gemini, Codex, and Copilot CLI setup. |
| 80 | + |
| 81 | +### Sibling skill dependency |
| 82 | + |
| 83 | +This onboarding skill is a **thin, guided wrapper** around the `forge-app-builder` skill's helper scripts. Every step that actually mutates the Forge platform is delegated to `forge-app-builder` rather than reimplemented here: |
| 84 | + |
| 85 | +| `forge-app-builder` helper | Used in | What it does | |
| 86 | +|---|---|---| |
| 87 | +| `scripts.create_forge_app` | Step 5 (Scaffold your Rovo Agent) | Non-interactive `forge create` — registers a new app, drops the starter project, bypasses the interactive template picker | |
| 88 | +| `scripts.deploy_forge_app` | Step 7 (Deploy Hello World) and Step 10 (Redeploy as Forge Guru) | Non-interactive `forge deploy` + `forge install` in one call — invoked twice, once per loop of the arc | |
| 89 | +| `scripts.list_templates` | Step 5 (fallback path) | Validates the Rovo Agent template name if the CLI ever renames it | |
| 90 | + |
| 91 | +The onboarding skill only invokes read-only Forge CLI commands directly — `forge --version`, `forge whoami`, `forge site provision`, `forge developer-spaces list`, `forge install list`, `forge logs`. Everything else routes through the helpers above. |
| 92 | + |
| 93 | +Both skills ship together in the [Forge Skills](https://github.com/atlassian/forge-skills) plugin bundle, so installing the bundle covers you. **If you're symlinking or hand-copying skills individually, install `forge-app-builder` alongside `forge-onboarding`** — otherwise Step 5 (Scaffold) will stop with a dependency-check error and ask you to install the sibling skill before continuing. |
| 94 | + |
| 95 | +## How to Trigger |
| 96 | + |
| 97 | +In your agent chat, use any of these phrases: |
| 98 | + |
| 99 | +- "Onboard me to Forge" |
| 100 | +- "Build my first Rovo Agent" |
| 101 | +- "Build my first AI app in Atlassian" |
| 102 | +- "Forge hello world" / "Rovo agent hello world" |
| 103 | +- "I want to build an agent that lives in Jira/Confluence" |
| 104 | +- "I've never used Forge before, walk me through it" |
| 105 | + |
| 106 | +## When NOT to Use |
| 107 | + |
| 108 | +This skill is only for **first-time** Forge users. Once you have Guru running, route to the appropriate specialist skill: |
| 109 | + |
| 110 | +| Situation | Skill | |
| 111 | +| ------------------------------------------------- | ------------------------ | |
| 112 | +| Extending an existing Forge app | `forge-app-builder` | |
| 113 | +| Debugging a broken deploy or Agent | `forge-debugger` | |
| 114 | +| Pre-release review | `forge-app-review` | |
| 115 | +| Security review or static analysis | `forge-security-review` | |
| 116 | +| Cost / consumption optimization | `forge-cost-optimizer` | |
| 117 | +| Teamwork Graph connector (ingest external data) | `forge-connector` | |
| 118 | + |
| 119 | +## Scripts |
| 120 | + |
| 121 | +This skill has no scripts of its own — it's purely instructional so the user sees each command as it runs and understands the mechanics. Every step that mutates Forge state delegates to a `forge-app-builder` helper: `scripts.create_forge_app` for the scaffold (Step 5), and `scripts.deploy_forge_app` for deploy + install — invoked twice, once for the stock Hello World in Step 7 and again for Forge Guru in Step 10. See the [Sibling skill dependency](#sibling-skill-dependency) section above. |
| 122 | + |
| 123 | +## See Also |
| 124 | + |
| 125 | +- [Forge documentation](https://developer.atlassian.com/platform/forge/) |
| 126 | +- [Rovo modules overview](https://developer.atlassian.com/platform/forge/manifest-reference/modules/rovo-index/) |
| 127 | +- [`rovo:agent` manifest reference](https://developer.atlassian.com/platform/forge/manifest-reference/modules/rovo-agent/) |
| 128 | +- [Build a Rovo Agent hello world app](https://developer.atlassian.com/platform/forge/build-a-hello-world-rovo-agent/) |
| 129 | +- [Runtime egress permissions](https://developer.atlassian.com/platform/forge/runtime-egress-permissions/) |
| 130 | +- [Forge CLI reference](https://developer.atlassian.com/platform/forge/cli-reference/) |
| 131 | +- [Provision a demo development site](https://developer.atlassian.com/platform/forge/provision-a-demo-development-site/) |
0 commit comments