[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7C2HTMMZSGX14PBYC4FMMVH":3,"skill-same:01M7C2HTMMZSGX14PBYC4FMMVH":56},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":34,"commitSha":35,"skillDirectory":36,"forksCount":37,"repositoryHtmlUrl":38,"repositoryHomepageUrl":6,"ownerHtmlUrl":39,"ownerBlogUrl":6,"ownerDescription":40,"updatedAt":41,"install":42,"resources":55},"01M7C2HTMMZSGX14PBYC4FMMVH","fusion-help-docs",null,"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.","om-scogo\u002Fskillsh-scraper","om-scogo","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F160466840?v=4","01M79AWB6DFVCQ7RK70CS34B96","Om Achrekar","01M79AWB6ZM9SKR8KDH1WSSM22",0,"MIT","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fequinor-fusion-skills\u002Ffusion-help-docs\u002Fskills\u002Ffusion-help-docs\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: fusion-help-docs\ndescription: '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.'\nlicense: MIT\nmetadata:\n  version: \"0.0.2\"\n  status: active\n  owner: \"@equinor\u002Ffusion-core\"\n  tags:\n    - help-documentation\n    - fusion-help-cli\n    - articles\n    - release-notes\n    - faq\n---\n\n# Fusion Help Documentation\n\nAuthor, structure, and publish help docs (articles, release notes, FAQs) via `fhelp` CLI.\n\n## When to use\n\n- Write help article for Fusion app\n- Create\u002Fupdate release notes\n- Set up docs folder structure + config\n- Structure markdown for help system\n- Publish\u002Fsync docs to Fusion environment\n- Add FAQ entries\n- Set up CI\u002FCD pipeline to auto-publish\n\n## When not to use\n\n- Modifying `fusion-help-cli` source (`tooling\u002Ffusion-help-cli\u002F`)\n- Changing Fusion.Services.Help backend API\n- General markdown editing unrelated to Fusion Help\n- Non-documentation tasks\n\n## Required inputs\n\nCollect before creating:\n\n| Input | Required | Description |\n|-------|----------|-------------|\n| **App key** | Yes | The Fusion app key (e.g. `my-app`, `resource-allocation-landingpage`). User must be admin for this app. |\n| **Content type** | Yes | `articles`, `release-notes`, or `faqs` |\n| **Docs root path** | Yes | Where the team stores their docs (e.g. `docs\u002Fhelp\u002F`) |\n| **Target environment** | For publish | `ci`, `fqa`, `tr`, or `fprd` |\n\nUnknown app key → check app admin:\n- **CI**: `https:\u002F\u002Ffusion.ci.fusion-dev.net\u002Fapps\u002Fapp-admin`\n- **Production**: `https:\u002F\u002Ffusion.equinor.com\u002Fapps\u002Fapp-admin`\n\nLook in \"Admins\" section — must be listed as admin to publish.\n\n## Instructions\n\n### 1. Set up docs folder structure\n\nCreate folder layout:\n\n```\ndocs\u002F\n  help\u002F\n    articles\u002F                    # Markdown article files\n      images\u002F                    # Article images (PNG format)\n    release-notes\u002F               # Markdown release note files\n      images\u002F                    # Release note images (PNG format)\n    faqs\u002F                        # Optional: markdown FAQ body overrides\n    help-articles.json           # Article config\n    help-release-notes.json      # Release notes config (if using release notes)\n```\n\n> Folder and config names are flexible — must match what you pass to `fhelp`.\n\n### 2. Create the article config file\n\nCreate `help-articles.json` (tells CLI which articles to sync):\n\n```jsonc\n{\n  \"articles\": [\n    {\n      \"slug\": \"my-app-getting-started\",        \u002F\u002F Must match the .md filename (without extension)\n      \"title\": \"Getting Started\",               \u002F\u002F Display title in Fusion Help\n      \"appKey\": \"my-app\",                       \u002F\u002F Your Fusion app key\n      \"sortOrder\": 1.0,                         \u002F\u002F Controls display order (lower = first)\n      \"summary\": \"Learn how to get started.\",   \u002F\u002F Short description shown in article list\n      \"tags\": [\"getting-started\", \"onboarding\"],\u002F\u002F Searchable tags\n      \"relevantApps\": []                        \u002F\u002F Optional: other app keys where this shows\n    }\n  ]\n}\n```\n\n#### Config field reference\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `slug` | Yes | string | Unique identifier. Must match a `{slug}.md` file in the articles root folder. Use kebab-case. |\n| `title` | Yes | string | Human-readable title displayed in Fusion Help. |\n| `appKey` | Yes | string | Fusion app key this article belongs to. You must be admin for this app. |\n| `sortOrder` | No | number | Controls display order. Lower numbers appear first. Default varies. Use decimals (1.0, 1.1, 2.0) for flexible ordering. |\n| `summary` | Yes | string | Short description shown in article listings. |\n| `tags` | No | string[] | Searchable tags for categorization. |\n| `relevantApps` | No | string[] | Additional app keys where this article should appear. |\n\n### 3. Write article content\n\nCreate markdown files in the articles root folder. The filename (without `.md`) must match the `slug` in the config.\n\n**Article writing guidelines:**\n\n- Write for end-users of the Fusion app\n- Use `##`, `###` for structure — avoid `#` (title comes from config)\n- Place images in `images\u002F`; reference with `![Alt text](images\u002Fmy-screenshot.png)`\n- CLI auto-uploads images + rewrites paths to CDN\n- **Images must be PNG** (CLI limitation)\n- One topic per article\n- Link related articles by title (platform handles deep linking)\n\n**Example article** (`docs\u002Fhelp\u002Farticles\u002Fmy-app-getting-started.md`):\n\n```markdown\n## Overview\n\nThis guide walks you through the basics of using My App.\n\n## Prerequisites\n\nBefore you begin, make sure you have:\n- Access to the Fusion portal\n- The correct role assigned to your user\n\n## Step 1: Navigate to the app\n\nOpen Fusion and search for \"My App\" in the app launcher.\n\n![App launcher](images\u002Fapp-launcher.png)\n\n## Step 2: Create your first item\n\nClick the **New** button in the toolbar to create your first item.\n\n## Need help?\n\nContact the team on Teams or check the FAQ section.\n```\n\n### 4. Create the release notes config file (optional)\n\nCreate `help-release-notes.json` if team publishes release notes:\n\n```jsonc\n{\n  \"releaseNotes\": [\n    {\n      \"slug\": \"my-app-v2-release\",              \u002F\u002F Must match the .md filename\n      \"title\": \"Version 2.0 Release\",           \u002F\u002F Display title\n      \"appKey\": \"my-app\",                       \u002F\u002F Your Fusion app key\n      \"publishedDate\": \"2026-03-14T00:00:00Z\",  \u002F\u002F Publication date (ISO 8601)\n      \"tags\": [\"release\", \"v2\"],                \u002F\u002F Searchable tags\n      \"relevantApps\": []                        \u002F\u002F Optional: other app keys\n    }\n  ]\n}\n```\n\n#### Release notes config field reference\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `slug` | Yes | string | Unique identifier. Must match a `{slug}.md` file in the release notes root folder. |\n| `title` | Yes | string | Release note title. |\n| `appKey` | Yes | string | Fusion app key. You must be admin. |\n| `publishedDate` | Yes | ISO 8601 date | When the release was published. |\n| `tags` | No | string[] | Searchable tags. |\n| `relevantApps` | No | string[] | Additional app keys. |\n\n**Example release note** (`docs\u002Fhelp\u002Frelease-notes\u002Fmy-app-v2-release.md`):\n\n```markdown\n## What's new in Version 2.0\n\n### New dashboard\n\nWe've completely redesigned the dashboard with new charts and filtering capabilities.\n\n![New dashboard](images\u002Fnew-dashboard.png)\n\n### Performance improvements\n\n- Page load times reduced by 40%\n- Search results now appear in under 1 second\n\n### Bug fixes\n\n- Fixed an issue where filters would reset on navigation\n- Corrected date formatting in the export feature\n```\n\n### 5. Install and authenticate the CLI\n\n**Install from the Fusion Public feed:**\n\n```powershell\ndotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n```\n\n**Update an existing installation:**\n\n```powershell\ndotnet tool uninstall --global Fusion.Help.Cli\ndotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n```\n\n**Authenticate via Azure CLI:**\n\n```powershell\naz login\n```\n\nCLI uses `DefaultAzureCredentials` — picks up `az login` session automatically.\n\n### 6. Publish documentation\n\n**Sync articles:**\n\n```powershell\nfhelp article sync -f docs\u002Fhelp\u002Fhelp-articles.json -r docs\u002Fhelp\u002Farticles -e ci -v\n```\n\n**Sync release notes:**\n\n```powershell\nfhelp releasenotes sync -f docs\u002Fhelp\u002Fhelp-release-notes.json -r docs\u002Fhelp\u002Frelease-notes -e ci -v\n```\n\n**Command flags:**\n\n| Flag | Description |\n|------|-------------|\n| `-f`, `--file` | Path to the JSON config file |\n| `-r`, `--root` | Path to the folder containing markdown files |\n| `-e`, `--env` | Target environment: `ci`, `fqa`, `tr`, `fprd` |\n| `-t`, `--token` | Override the access token (optional) |\n| `-v`, `--verbose` | Show detailed logging output |\n| `--no-validation` | Skip source system check — **use with caution**, can overwrite UI-created content |\n\n**Environment promotion order:** `ci` → `fqa` → `fprd` (skip `tr` unless testing infrastructure).\n\nTest in `ci` before promoting to `fqa` then `fprd`.\n\n### 7. Set up CI\u002FCD pipeline (recommended)\n\nAutomate publishing via Azure DevOps or GitHub Actions.\n\n**Azure DevOps pipeline example:**\n\n```yaml\nparameters:\n  - name: environment\n    type: string\n    default: ci\n    values: [ci, fqa, fprd]\n  - name: azureSubscription\n    type: string\n\nsteps:\n  - checkout: self\n\n  - script: |\n      dotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n    displayName: \"Install fusion help CLI\"\n\n  - task: AzureCLI@2\n    displayName: \"Sync help articles\"\n    inputs:\n      azureSubscription: ${{ parameters.azureSubscription }}\n      scriptType: pscore\n      scriptLocation: inlineScript\n      inlineScript: |\n        fhelp article sync `\n          -f .\u002Fdocs\u002Fhelp\u002Fhelp-articles.json `\n          -r .\u002Fdocs\u002Fhelp\u002Farticles `\n          -e \"${{ parameters.environment }}\" `\n          -v\n\n  - task: AzureCLI@2\n    displayName: \"Sync release notes\"\n    inputs:\n      azureSubscription: ${{ parameters.azureSubscription }}\n      scriptType: pscore\n      scriptLocation: inlineScript\n      inlineScript: |\n        fhelp releasenotes sync `\n          -f .\u002Fdocs\u002Fhelp\u002Fhelp-release-notes.json `\n          -r .\u002Fdocs\u002Fhelp\u002Frelease-notes `\n          -e \"${{ parameters.environment }}\" `\n          -v\n```\n\n**GitHub Actions example:**\n\n```yaml\nname: Sync Help Documentation\n\non:\n  push:\n    branches: [main]\n    paths: ['docs\u002Fhelp\u002F**']\n\njobs:\n  sync-docs:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - name: Setup .NET\n        uses: actions\u002Fsetup-dotnet@v4\n        with:\n          dotnet-version: '8.0.x'\n\n      - name: Install fusion help CLI\n        run: |\n          dotnet tool install --global \\\n            --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" \\\n            Fusion.Help.Cli\n\n      - name: Azure Login\n        uses: azure\u002Flogin@v2\n        with:\n          client-id: ${{ secrets.AZURE_CLIENT_ID }}\n          tenant-id: '3aa4a235-b6e2-48d5-9195-7fcf05b459b0'\n          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}\n\n      - name: Sync articles\n        run: |\n          fhelp article sync \\\n            -f .\u002Fdocs\u002Fhelp\u002Fhelp-articles.json \\\n            -r .\u002Fdocs\u002Fhelp\u002Farticles \\\n            -e ci -v\n```\n\n### 8. FAQs (supplementary)\n\nFAQs use an Excel-based workflow and require app-level access. This is a temporary solution best suited for scenarios where FAQs span multiple apps.\n\n```powershell\nfhelp faq sync -f docs\u002Fhelp\u002Ffaqs.xlsx -e ci -v\n```\n\nFor most teams, managing FAQs through the Fusion Help Admin UI at `https:\u002F\u002Ffusion.equinor.com\u002Fapps\u002Ffusion-help-admin` is simpler.\n\n## Expected output\n\n- `docs\u002Fhelp\u002F` folder with articles, images, and config\n- Markdown article file(s) with proper content\n- Valid `help-articles.json` (+ optional `help-release-notes.json`)\n- How to install, auth, and run `fhelp`\n- CI\u002FCD pipeline snippet (optional)\n\n## Troubleshooting\n\n| Problem | Cause | Solution |\n|---------|-------|----------|\n| `DefaultAzureCredential failed to retrieve a token` | Not authenticated | Run `az login` |\n| `403 Forbidden` | Not an admin for the app key | Check admin list at the app admin page, or verify the `appKey` in your config |\n| Article not created (skipped) | No matching `.md` file in root folder | Ensure filename matches slug exactly: `{slug}.md` |\n| Source system mismatch warning | Article was created via UI, CLI won't overwrite | Use `--no-validation` carefully, or use a different slug |\n| Images not uploading | Wrong format | Images must be **PNG** format |\n\n## Safety & constraints\n\n- **Never use `--no-validation` without understanding** — can overwrite UI-created content\n- Test in `ci` before publishing to `fprd`\n- `sourceSystem` auto-set to `Fusion.Help.Cli`; CLI and UI articles have different source systems and won't conflict unless `--no-validation` is used\n- Slugs must be globally unique — use app-specific prefix (e.g. `my-app-getting-started`)\n- Never commit access tokens — use `az login` or pipeline service principals\n","# Fusion Help Documentation\n\nAuthor, structure, and publish help docs (articles, release notes, FAQs) via `fhelp` CLI.\n\n## When to use\n\n- Write help article for Fusion app\n- Create\u002Fupdate release notes\n- Set up docs folder structure + config\n- Structure markdown for help system\n- Publish\u002Fsync docs to Fusion environment\n- Add FAQ entries\n- Set up CI\u002FCD pipeline to auto-publish\n\n## When not to use\n\n- Modifying `fusion-help-cli` source (`tooling\u002Ffusion-help-cli\u002F`)\n- Changing Fusion.Services.Help backend API\n- General markdown editing unrelated to Fusion Help\n- Non-documentation tasks\n\n## Required inputs\n\nCollect before creating:\n\n| Input | Required | Description |\n|-------|----------|-------------|\n| **App key** | Yes | The Fusion app key (e.g. `my-app`, `resource-allocation-landingpage`). User must be admin for this app. |\n| **Content type** | Yes | `articles`, `release-notes`, or `faqs` |\n| **Docs root path** | Yes | Where the team stores their docs (e.g. `docs\u002Fhelp\u002F`) |\n| **Target environment** | For publish | `ci`, `fqa`, `tr`, or `fprd` |\n\nUnknown app key → check app admin:\n- **CI**: `https:\u002F\u002Ffusion.ci.fusion-dev.net\u002Fapps\u002Fapp-admin`\n- **Production**: `https:\u002F\u002Ffusion.equinor.com\u002Fapps\u002Fapp-admin`\n\nLook in \"Admins\" section — must be listed as admin to publish.\n\n## Instructions\n\n### 1. Set up docs folder structure\n\nCreate folder layout:\n\n```\ndocs\u002F\n  help\u002F\n    articles\u002F                    # Markdown article files\n      images\u002F                    # Article images (PNG format)\n    release-notes\u002F               # Markdown release note files\n      images\u002F                    # Release note images (PNG format)\n    faqs\u002F                        # Optional: markdown FAQ body overrides\n    help-articles.json           # Article config\n    help-release-notes.json      # Release notes config (if using release notes)\n```\n\n> Folder and config names are flexible — must match what you pass to `fhelp`.\n\n### 2. Create the article config file\n\nCreate `help-articles.json` (tells CLI which articles to sync):\n\n```jsonc\n{\n  \"articles\": [\n    {\n      \"slug\": \"my-app-getting-started\",        \u002F\u002F Must match the .md filename (without extension)\n      \"title\": \"Getting Started\",               \u002F\u002F Display title in Fusion Help\n      \"appKey\": \"my-app\",                       \u002F\u002F Your Fusion app key\n      \"sortOrder\": 1.0,                         \u002F\u002F Controls display order (lower = first)\n      \"summary\": \"Learn how to get started.\",   \u002F\u002F Short description shown in article list\n      \"tags\": [\"getting-started\", \"onboarding\"],\u002F\u002F Searchable tags\n      \"relevantApps\": []                        \u002F\u002F Optional: other app keys where this shows\n    }\n  ]\n}\n```\n\n#### Config field reference\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `slug` | Yes | string | Unique identifier. Must match a `{slug}.md` file in the articles root folder. Use kebab-case. |\n| `title` | Yes | string | Human-readable title displayed in Fusion Help. |\n| `appKey` | Yes | string | Fusion app key this article belongs to. You must be admin for this app. |\n| `sortOrder` | No | number | Controls display order. Lower numbers appear first. Default varies. Use decimals (1.0, 1.1, 2.0) for flexible ordering. |\n| `summary` | Yes | string | Short description shown in article listings. |\n| `tags` | No | string[] | Searchable tags for categorization. |\n| `relevantApps` | No | string[] | Additional app keys where this article should appear. |\n\n### 3. Write article content\n\nCreate markdown files in the articles root folder. The filename (without `.md`) must match the `slug` in the config.\n\n**Article writing guidelines:**\n\n- Write for end-users of the Fusion app\n- Use `##`, `###` for structure — avoid `#` (title comes from config)\n- Place images in `images\u002F`; reference with `![Alt text](images\u002Fmy-screenshot.png)`\n- CLI auto-uploads images + rewrites paths to CDN\n- **Images must be PNG** (CLI limitation)\n- One topic per article\n- Link related articles by title (platform handles deep linking)\n\n**Example article** (`docs\u002Fhelp\u002Farticles\u002Fmy-app-getting-started.md`):\n\n```markdown\n## Overview\n\nThis guide walks you through the basics of using My App.\n\n## Prerequisites\n\nBefore you begin, make sure you have:\n- Access to the Fusion portal\n- The correct role assigned to your user\n\n## Step 1: Navigate to the app\n\nOpen Fusion and search for \"My App\" in the app launcher.\n\n![App launcher](images\u002Fapp-launcher.png)\n\n## Step 2: Create your first item\n\nClick the **New** button in the toolbar to create your first item.\n\n## Need help?\n\nContact the team on Teams or check the FAQ section.\n```\n\n### 4. Create the release notes config file (optional)\n\nCreate `help-release-notes.json` if team publishes release notes:\n\n```jsonc\n{\n  \"releaseNotes\": [\n    {\n      \"slug\": \"my-app-v2-release\",              \u002F\u002F Must match the .md filename\n      \"title\": \"Version 2.0 Release\",           \u002F\u002F Display title\n      \"appKey\": \"my-app\",                       \u002F\u002F Your Fusion app key\n      \"publishedDate\": \"2026-03-14T00:00:00Z\",  \u002F\u002F Publication date (ISO 8601)\n      \"tags\": [\"release\", \"v2\"],                \u002F\u002F Searchable tags\n      \"relevantApps\": []                        \u002F\u002F Optional: other app keys\n    }\n  ]\n}\n```\n\n#### Release notes config field reference\n\n| Field | Required | Type | Description |\n|-------|----------|------|-------------|\n| `slug` | Yes | string | Unique identifier. Must match a `{slug}.md` file in the release notes root folder. |\n| `title` | Yes | string | Release note title. |\n| `appKey` | Yes | string | Fusion app key. You must be admin. |\n| `publishedDate` | Yes | ISO 8601 date | When the release was published. |\n| `tags` | No | string[] | Searchable tags. |\n| `relevantApps` | No | string[] | Additional app keys. |\n\n**Example release note** (`docs\u002Fhelp\u002Frelease-notes\u002Fmy-app-v2-release.md`):\n\n```markdown\n## What's new in Version 2.0\n\n### New dashboard\n\nWe've completely redesigned the dashboard with new charts and filtering capabilities.\n\n![New dashboard](images\u002Fnew-dashboard.png)\n\n### Performance improvements\n\n- Page load times reduced by 40%\n- Search results now appear in under 1 second\n\n### Bug fixes\n\n- Fixed an issue where filters would reset on navigation\n- Corrected date formatting in the export feature\n```\n\n### 5. Install and authenticate the CLI\n\n**Install from the Fusion Public feed:**\n\n```powershell\ndotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n```\n\n**Update an existing installation:**\n\n```powershell\ndotnet tool uninstall --global Fusion.Help.Cli\ndotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n```\n\n**Authenticate via Azure CLI:**\n\n```powershell\naz login\n```\n\nCLI uses `DefaultAzureCredentials` — picks up `az login` session automatically.\n\n### 6. Publish documentation\n\n**Sync articles:**\n\n```powershell\nfhelp article sync -f docs\u002Fhelp\u002Fhelp-articles.json -r docs\u002Fhelp\u002Farticles -e ci -v\n```\n\n**Sync release notes:**\n\n```powershell\nfhelp releasenotes sync -f docs\u002Fhelp\u002Fhelp-release-notes.json -r docs\u002Fhelp\u002Frelease-notes -e ci -v\n```\n\n**Command flags:**\n\n| Flag | Description |\n|------|-------------|\n| `-f`, `--file` | Path to the JSON config file |\n| `-r`, `--root` | Path to the folder containing markdown files |\n| `-e`, `--env` | Target environment: `ci`, `fqa`, `tr`, `fprd` |\n| `-t`, `--token` | Override the access token (optional) |\n| `-v`, `--verbose` | Show detailed logging output |\n| `--no-validation` | Skip source system check — **use with caution**, can overwrite UI-created content |\n\n**Environment promotion order:** `ci` → `fqa` → `fprd` (skip `tr` unless testing infrastructure).\n\nTest in `ci` before promoting to `fqa` then `fprd`.\n\n### 7. Set up CI\u002FCD pipeline (recommended)\n\nAutomate publishing via Azure DevOps or GitHub Actions.\n\n**Azure DevOps pipeline example:**\n\n```yaml\nparameters:\n  - name: environment\n    type: string\n    default: ci\n    values: [ci, fqa, fprd]\n  - name: azureSubscription\n    type: string\n\nsteps:\n  - checkout: self\n\n  - script: |\n      dotnet tool install --global --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" Fusion.Help.Cli\n    displayName: \"Install fusion help CLI\"\n\n  - task: AzureCLI@2\n    displayName: \"Sync help articles\"\n    inputs:\n      azureSubscription: ${{ parameters.azureSubscription }}\n      scriptType: pscore\n      scriptLocation: inlineScript\n      inlineScript: |\n        fhelp article sync `\n          -f .\u002Fdocs\u002Fhelp\u002Fhelp-articles.json `\n          -r .\u002Fdocs\u002Fhelp\u002Farticles `\n          -e \"${{ parameters.environment }}\" `\n          -v\n\n  - task: AzureCLI@2\n    displayName: \"Sync release notes\"\n    inputs:\n      azureSubscription: ${{ parameters.azureSubscription }}\n      scriptType: pscore\n      scriptLocation: inlineScript\n      inlineScript: |\n        fhelp releasenotes sync `\n          -f .\u002Fdocs\u002Fhelp\u002Fhelp-release-notes.json `\n          -r .\u002Fdocs\u002Fhelp\u002Frelease-notes `\n          -e \"${{ parameters.environment }}\" `\n          -v\n```\n\n**GitHub Actions example:**\n\n```yaml\nname: Sync Help Documentation\n\non:\n  push:\n    branches: [main]\n    paths: ['docs\u002Fhelp\u002F**']\n\njobs:\n  sync-docs:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n\n      - name: Setup .NET\n        uses: actions\u002Fsetup-dotnet@v4\n        with:\n          dotnet-version: '8.0.x'\n\n      - name: Install fusion help CLI\n        run: |\n          dotnet tool install --global \\\n            --add-source \"https:\u002F\u002Fstatoil-proview.pkgs.visualstudio.com\u002FFusion%20-%20Packages\u002F_packaging\u002FFusion-Public\u002Fnuget\u002Fv3\u002Findex.json\" \\\n            Fusion.Help.Cli\n\n      - name: Azure Login\n        uses: azure\u002Flogin@v2\n        with:\n          client-id: ${{ secrets.AZURE_CLIENT_ID }}\n          tenant-id: '3aa4a235-b6e2-48d5-9195-7fcf05b459b0'\n          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}\n\n      - name: Sync articles\n        run: |\n          fhelp article sync \\\n            -f .\u002Fdocs\u002Fhelp\u002Fhelp-articles.json \\\n            -r .\u002Fdocs\u002Fhelp\u002Farticles \\\n            -e ci -v\n```\n\n### 8. FAQs (supplementary)\n\nFAQs use an Excel-based workflow and require app-level access. This is a temporary solution best suited for scenarios where FAQs span multiple apps.\n\n```powershell\nfhelp faq sync -f docs\u002Fhelp\u002Ffaqs.xlsx -e ci -v\n```\n\nFor most teams, managing FAQs through the Fusion Help Admin UI at `https:\u002F\u002Ffusion.equinor.com\u002Fapps\u002Ffusion-help-admin` is simpler.\n\n## Expected output\n\n- `docs\u002Fhelp\u002F` folder with articles, images, and config\n- Markdown article file(s) with proper content\n- Valid `help-articles.json` (+ optional `help-release-notes.json`)\n- How to install, auth, and run `fhelp`\n- CI\u002FCD pipeline snippet (optional)\n\n## Troubleshooting\n\n| Problem | Cause | Solution |\n|---------|-------|----------|\n| `DefaultAzureCredential failed to retrieve a token` | Not authenticated | Run `az login` |\n| `403 Forbidden` | Not an admin for the app key | Check admin list at the app admin page, or verify the `appKey` in your config |\n| Article not created (skipped) | No matching `.md` file in root folder | Ensure filename matches slug exactly: `{slug}.md` |\n| Source system mismatch warning | Article was created via UI, CLI won't overwrite | Use `--no-validation` carefully, or use a different slug |\n| Images not uploading | Wrong format | Images must be **PNG** format |\n\n## Safety & constraints\n\n- **Never use `--no-validation` without understanding** — can overwrite UI-created content\n- Test in `ci` before publishing to `fprd`\n- `sourceSystem` auto-set to `Fusion.Help.Cli`; CLI and UI articles have different source systems and won't conflict unless `--no-validation` is used\n- Slugs must be globally unique — use app-specific prefix (e.g. `my-app-getting-started`)\n- Never commit access tokens — use `az login` or pipeline service principals\n",{"name":5,"license":15,"metadata":24,"description":7},{"tags":25,"owner":31,"status":32,"version":33},[26,27,28,29,30],"help-documentation","fusion-help-cli","articles","release-notes","faq","@equinor\u002Ffusion-core","active","0.0.2","main","8859218955d9504cd18b59e7892100718039d3b4","data\u002Fskills\u002Fequinor-fusion-skills\u002Ffusion-help-docs\u002Fskills\u002Ffusion-help-docs",1,"https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper","https:\u002F\u002Fgithub.com\u002Fom-scogo","SDE-1 @ Scogo ","2026-07-18 12:22:46",{"source":8,"skillName":5,"commands":43,"prompt":53,"zipAvailable":54},[44,47,50],{"tool":45,"command":46},"npx","npx skills add om-scogo\u002Fskillsh-scraper --skill fusion-help-docs",{"tool":48,"command":49},"bunx","bunx skills add om-scogo\u002Fskillsh-scraper --skill fusion-help-docs",{"tool":51,"command":52},"pnpm","pnpm dlx skills add om-scogo\u002Fskillsh-scraper --skill fusion-help-docs","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fequinor-fusion-skills\u002Ffusion-help-docs\u002Fskills\u002Ffusion-help-docs\u002FSKILL.md",true,[],[57,64,69,76,81,88],{"skillNo":58,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":61,"categories":62,"keywords":63,"publishedAt":19},"01M7D6MC9FAAEV4CMNYX8W7JTG","arxiv-search","Search arXiv physics, math, and computer science preprints using natural language queries. Powered by Valyu semantic search.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002Fskills\u002Farxiv-search\u002FSKILL.md",[],[],{"skillNo":65,"name":59,"nameZh":6,"description":60,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":19},"01M7D6M85CKKN87TA98VCQV4H7","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fyorkeccak-scientific-skills\u002Farxiv-search\u002FSkill.md",[],[],{"skillNo":70,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":73,"categories":74,"keywords":75,"publishedAt":19},"01M7D4ZTCS4DR3CE4JY06X84T2","working-with-legacy-code","Safely change and test untested codebases using Feathers' \"Working Effectively with Legacy Code\". Use when the user mentions \"legacy code\", \"no tests\", \"untested codebase\", \"how do I test this\", \"seams\", \"characterization tests\", \"golden master\", \"sprout method\", \"afraid to change this code\", \"monster method\", \"dependency breaking\", or \"inherited a messy codebase\". Also trigger when changing code without tests safely, getting a class under test when constructors, statics, or singletons block it, adding features to tangled modules, or planning incremental test coverage for an old codebase. Covers the legacy-code change algorithm, seams, characterization tests, sprout\u002Fwrap, and dependency-breaking techniques. For refactoring code that already has tests, see refactoring-patterns. For day-to-day code quality, see clean-code.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002Fworking-with-legacy-code\u002FSKILL.md",[],[],{"skillNo":77,"name":71,"nameZh":6,"description":72,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M7D4ZHZKJD2RSNGAF63V14P4","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fworking-with-legacy-code\u002FSkill.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M7D4ZB4CJBFW5JE67CPH2QRV","web-typography","Select, pair, and implement typefaces for web projects. Use when the user mentions \"font pairing\", \"which typeface\", \"line height\", \"responsive typography\", \"web font loading\", \"type hierarchy\", \"variable fonts\", \"FOUT\u002FFOIT\", \"typographic scale\", or \"the text is hard to read\". Also trigger when choosing between system fonts and web fonts, optimizing font-loading performance, or designing readable long-form content. Covers readability evaluation, CSS implementation, and performance optimization. For overall UI design systems, see refactoring-ui. For dramatic typographic experiences, see top-design.","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002Fweb-typography\u002FSKILL.md",[],[],{"skillNo":89,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":19},"01M7D4Z4MVYVY3NMJ18BNV6WNA","https:\u002F\u002Fgithub.com\u002Fom-scogo\u002Fskillsh-scraper\u002Fblob\u002Fmain\u002Fdata\u002Fskills\u002Fwondelai-skills\u002Fweb-typography\u002FSkill.md",[],[]]