skills/fusion-help-integration/SKILL.md
Wires Fusion Help Center into app pages — creates article slug constants, adds useHelpCenter hook, and connects PageLayout props so users can open contextual help articles. USE FOR: add help button to page, wire useHelpCenter, create helpArticles constants, integrate Fusion Help in app, connect PageLayout to help center, add openHelpArticle to page. DO NOT USE FOR: authoring markdown help articles (use fusion-help-docs), direct Help REST API calls (use fusion-help-api), modifying @fra/ui shared components.
npx skillsauth add equinor/fusion-skills fusion-help-integrationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Wire the Fusion Help Center into app pages so users can open contextual help articles via the PageLayout help button.
useHelpCenter into a page componentPageLayout to Fusion Help CenterPageLayout without openHelpArticlefusion-help-docsfusion-help-api@fra/ui shared components (PageLayout, PageHeader, FusionHelpButton)Collect before making changes:
| Input | Required | Default | Description |
|-------|----------|---------|-------------|
| App name | Yes | — | The app directory name under apps/ (e.g., fra-app-management) |
| Target pages | Yes | — | Which page(s) to wire up, or "all" for every page using PageLayout |
| Article slugs | Yes | Auto-derive | Slug strings for each page. If not provided, derive as {app-name}-{page-kebab} |
| Include release notes | No | true | Whether to also pass openReleaseNotes to PageLayout |
| Constants file location | No | src/constants/helpArticles.ts | Path for the FUSION_HELP_ARTICLES object |
If article slugs are auto-derived, confirm with user before applying — slugs must match articles published via fhelp.
Search target app for existing help wiring:
apps/{app-name}/src/**/helpArticles.ts
apps/{app-name}/src/**/fusionHelpArticles.ts
Also search for useHelpCenter imports. If app already has partial integration, extend rather than duplicate.
Check if app already has a constants file with slugs:
{app-name}-{page-kebab} conventionReference existing conventions:
| App | Convention | Example |
|-----|-----------|---------|
| fra-access-manager | {app-name}-{page-kebab} | fra-access-manager-access-groups |
| fra-app-management | Unprefixed page name | overview, requests |
| personnel-allocation | {app-name}-{page-kebab} | personnel-allocation-overview |
Prefer prefixed convention for new apps — avoids slug collisions across apps.
Create src/constants/helpArticles.ts (or the app's chosen location):
export const FUSION_HELP_ARTICLES = {
PAGE_NAME: '{app-name}-{page-kebab}',
};
Keys are SCREAMING_SNAKE_CASE matching the page concept. Values are kebab-case slug strings.
See references/wiring-pattern.md for the full canonical pattern with real examples.
For each page component that uses PageLayout:
a. Add imports (externals first, then @fra/*, then @/* aliases, then relative):
import { useHelpCenter } from '@equinor/fusion-framework-react-app/help-center';
import { PageLayout } from '@fra/ui';
import { FUSION_HELP_ARTICLES } from '@/constants/helpArticles';
b. Destructure the hook inside the component body:
const { openArticle, openReleaseNotes } = useHelpCenter();
If release notes not needed, destructure only { openArticle }.
c. Pass props to PageLayout:
<PageLayout
title="Page Title"
openHelpArticle={() => openArticle(FUSION_HELP_ARTICLES.PAGE_NAME)}
openReleaseNotes={openReleaseNotes}
>
Important: openHelpArticle must be a callback wrapper () => openArticle(slug), not a direct reference — openArticle requires the slug argument.
After wiring:
pnpm --filter {app-name} exec tsc --noEmitpnpm --filter {app-name} exec eslint src/Each slug in FUSION_HELP_ARTICLES must correspond to a published article. If articles don't exist:
fusion-help-docs for authoringslug field in help-articles.jsonfhelpuseHelpCenter + PageLayout propsfusion-help-docs)@fra/ui components — PageLayout, PageHeader, FusionHelpButton already support help props@equinor/fusion-framework-react-app is already in every app@/* → src/*type for type-only imports, maintain import group orderinguseHelpCenter, extend rather than re-addtools
Use Fusion DevTools CLI (fdev) for API testing, token acquisition, service discovery, and person lookup during development. USE FOR: calling Fusion REST APIs, getting access tokens as JSON, discovering services and environments, resolving persons, PIM role activation. DO NOT USE FOR: modifying backend service code, deploying services, infrastructure changes, CI/CD pipeline configuration, or Service Bus operations.
testing
Main Copilot skill gate for the Fusion ecosystem — cross-domain router. USE FOR: routing between different Fusion domains (skills, issues, PRs, reviews) when the right domain skill is unclear; getting install guidance for missing skills. DO NOT USE FOR: skill lifecycle operations (use fusion-skills directly), tasks where a specific Fusion skill is already active.
tools
Entrypoint for all Fusion skill lifecycle operations. USE FOR: finding, installing, updating, syncing, or greenkeeping skills; setting up skill automation; creating or authoring a new skill; reporting a bug with a skill. DO NOT USE FOR: resolving GitHub issues, reviewing PRs, planning task breakdowns, or authoring GitHub issues — those are handled by other Fusion skills.
tools
Creates or modernizes repository skills with clear activation cues, purposeful support files, and practical review loops. USE FOR: creating a new skill, tightening an existing skill, improving discovery wording, and structuring references/assets/optional helper agents when they genuinely add value. DO NOT USE FOR: product-code changes, routine copy edits outside skills/, or documentation that should not become an installable skill.