npx skills add ...
npx skills add equinor/fusion-skills --skill fusion-help-docs
Guides app teams through authoring, structuring, and publishing help documentation (articles, release notes, FAQs) using the fusion-help-cli. USE FOR: write help articles, create release notes, set up help docs, publish documentation, sync articles, configure help config file, maintain app help content. DO NOT USE FOR: building the CLI itself, modifying Fusion.Services.Help internals, or non-documentation tasks.
npx skills add equinor/fusion-skills --skill fusion-help-docs
Author, structure, and publish help docs (articles, release notes, FAQs) via fhelp CLI.
fusion-help-cli source (tooling/fusion-help-cli/)Collect before creating:
| Input | Required | Description |
|---|---|---|
| App key | Yes | The Fusion app key (e.g. my-app, resource-allocation-landingpage). User must be admin for this app. |
| Content type | Yes | articles, release-notes, or faqs |
| Docs root path | Yes | Where the team stores their docs (e.g. docs/help/) |
| Target environment | For publish | ci, fqa, tr, or fprd |
Unknown app key → check app admin:
https://fusion.ci.fusion-dev.net/apps/app-adminhttps://fusion.equinor.com/apps/app-adminLook in "Admins" section — must be listed as admin to publish.
Create folder layout:
Folder and config names are flexible — must match what you pass to
fhelp.
Create help-articles.json (tells CLI which articles to sync):
| Field | Required | Type | Description |
|---|---|---|---|
slug | Yes | string | Unique identifier. Must match a {slug}.md file in the articles root folder. Use kebab-case. |
title | Yes | string | Human-readable title displayed in Fusion Help. |
appKey | Yes | string | Fusion app key this article belongs to. You must be admin for this app. |
sortOrder | No | number | Controls display order. Lower numbers appear first. Default varies. Use decimals (1.0, 1.1, 2.0) for flexible ordering. |
summary | Yes | string | Short description shown in article listings. |
tags | No | string[] | Searchable tags for categorization. |
relevantApps | No | string[] | Additional app keys where this article should appear. |
Create markdown files in the articles root folder. The filename (without .md) must match the slug in the config.
Article writing guidelines:
##, ### for structure — avoid # (title comes from config)images/; reference with Example article (docs/help/articles/my-app-getting-started.md):
Create help-release-notes.json if team publishes release notes:
| Field | Required | Type | Description |
|---|---|---|---|
slug | Yes | string | Unique identifier. Must match a {slug}.md file in the release notes root folder. |
title | Yes | string | Release note title. |
appKey | Yes | string | Fusion app key. You must be admin. |
publishedDate | Yes | ISO 8601 date | When the release was published. |
tags | No | string[] | Searchable tags. |
relevantApps | No | string[] | Additional app keys. |
Example release note (docs/help/release-notes/my-app-v2-release.md):
Install from the Fusion Public feed:
Update an existing installation:
Authenticate via Azure CLI:
CLI uses DefaultAzureCredentials — picks up az login session automatically.
Sync articles:
Sync release notes:
Command flags:
| Flag | Description |
|---|---|
-f, --file | Path to the JSON config file |
-r, --root | Path to the folder containing markdown files |
-e, --env | Target environment: ci, fqa, tr, fprd |
-t, --token | Override the access token (optional) |
-v, --verbose | Show detailed logging output |
--no-validation | Skip source system check — use with caution, can overwrite UI-created content |
Environment promotion order: ci → fqa → fprd (skip tr unless testing infrastructure).
Test in ci before promoting to fqa then fprd.
Automate publishing via Azure DevOps or GitHub Actions.
Azure DevOps pipeline example:
GitHub Actions example:
FAQs use an Excel-based workflow and require app-level access. This is a temporary solution best suited for scenarios where FAQs span multiple apps.
For most teams, managing FAQs through the Fusion Help Admin UI at https://fusion.equinor.com/apps/fusion-help-admin is simpler.
docs/help/ folder with articles, images, and confighelp-articles.json (+ optional help-release-notes.json)fhelp| Problem | Cause | Solution |
|---|---|---|
DefaultAzureCredential failed to retrieve a token | Not authenticated | Run az login |
403 Forbidden | Not an admin for the app key | Check admin list at the app admin page, or verify the appKey in your config |
| Article not created (skipped) | No matching .md file in root folder | Ensure filename matches slug exactly: {slug}.md |
| Source system mismatch warning | Article was created via UI, CLI won't overwrite | Use --no-validation carefully, or use a different slug |
| Images not uploading | Wrong format | Images must be PNG format |
--no-validation without understanding — can overwrite UI-created contentci before publishing to fprdsourceSystem auto-set to Fusion.Help.Cli; CLI and UI articles have different source systems and won't conflict unless --no-validation is usedmy-app-getting-started)az login or pipeline service principals{
"articles": [
{
"slug": "my-app-getting-started", // Must match the .md filename (without extension)
"title": "Getting Started", // Display title in Fusion Help
"appKey": "my-app", // Your Fusion app key
"sortOrder": 1.0, // Controls display order (lower = first)
"summary": "Learn how to get started.", // Short description shown in article list
"tags": ["getting-started", "onboarding"],// Searchable tags
"relevantApps": [] // Optional: other app keys where this shows
}
]
}## Overview
This guide walks you through the basics of using My App.
## Prerequisites
Before you begin, make sure you have:
- Access to the Fusion portal
- The correct role assigned to your user
## Step 1: Navigate to the app
Open Fusion and search for "My App" in the app launcher.

## Step 2: Create your first item
Click the **New** button in the toolbar to create your first item.
## Need help?
Contact the team on Teams or check the FAQ section.{
"releaseNotes": [
{
"slug": "my-app-v2-release", // Must match the .md filename
"title": "Version 2.0 Release", // Display title
"appKey": "my-app", // Your Fusion app key
"publishedDate": "2026-03-14T00:00:00Z", // Publication date (ISO 8601)
"tags": ["release", "v2"], // Searchable tags
"relevantApps": [] // Optional: other app keys
}
]
}## What's new in Version 2.0
### New dashboard
We've completely redesigned the dashboard with new charts and filtering capabilities.

### Performance improvements
- Page load times reduced by 40%
- Search results now appear in under 1 second
### Bug fixes
- Fixed an issue where filters would reset on navigation
- Corrected date formatting in the export featuredotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" Fusion.Help.Clidotnet tool uninstall --global Fusion.Help.Cli
dotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" Fusion.Help.Cliaz loginfhelp article sync -f docs/help/help-articles.json -r docs/help/articles -e ci -vfhelp releasenotes sync -f docs/help/help-release-notes.json -r docs/help/release-notes -e ci -vparameters:
- name: environment
type: string
default: ci
values: [ci, fqa, fprd]
- name: azureSubscription
type: string
steps:
- checkout: self
- script: |
dotnet tool install --global --add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" Fusion.Help.Cli
displayName: "Install fusion help CLI"
- task: AzureCLI@2
displayName: "Sync help articles"
inputs:
azureSubscription: ${{ parameters.azureSubscription }}
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
fhelp article sync `
-f ./docs/help/help-articles.json `
-r ./docs/help/articles `
-e "${{ parameters.environment }}" `
-v
- task: AzureCLI@2
displayName: "Sync release notes"
inputs:
azureSubscription: ${{ parameters.azureSubscription }}
scriptType: pscore
scriptLocation: inlineScript
inlineScript: |
fhelp releasenotes sync `
-f ./docs/help/help-release-notes.json `
-r ./docs/help/release-notes `
-e "${{ parameters.environment }}" `
-vname: Sync Help Documentation
on:
push:
branches: [main]
paths: ['docs/help/**']
jobs:
sync-docs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup .NET
uses: actions/setup-dotnet@v4
with:
dotnet-version: '8.0.x'
- name: Install fusion help CLI
run: |
dotnet tool install --global \
--add-source "https://statoil-proview.pkgs.visualstudio.com/Fusion%20-%20Packages/_packaging/Fusion-Public/nuget/v3/index.json" \
Fusion.Help.Cli
- name: Azure Login
uses: azure/login@v2
with:
client-id: ${{ secrets.AZURE_CLIENT_ID }}
tenant-id: '3aa4a235-b6e2-48d5-9195-7fcf05b459b0'
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}
- name: Sync articles
run: |
fhelp article sync \
-f ./docs/help/help-articles.json \
-r ./docs/help/articles \
-e ci -vfhelp faq sync -f docs/help/faqs.xlsx -e ci -v